From 078ad79b65692644a1d7230b4cfb9277a16d0310 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 5 Aug 2019 23:30:00 +0200 Subject: [PATCH] language setting --- include/aooptionsdialog.h | 2 ++ src/aooptionsdialog.cpp | 13 +++++++++++++ src/main.cpp | 11 +++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/include/aooptionsdialog.h b/include/aooptionsdialog.h index a65e3f5..83b84cb 100644 --- a/include/aooptionsdialog.h +++ b/include/aooptionsdialog.h @@ -55,6 +55,8 @@ private: QLineEdit *ui_ms_textbox; QLabel *ui_discord_lbl; QCheckBox *ui_discord_cb; + QLabel *ui_language_label; + QComboBox *ui_language_combobox; QWidget *ui_callwords_tab; QWidget *ui_callwords_widget; diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index 4bfe9de..d68f6cb 100644 --- a/src/aooptionsdialog.cpp +++ b/src/aooptionsdialog.cpp @@ -167,6 +167,18 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi ui_gameplay_form->setWidget(9, QFormLayout::FieldRole, ui_discord_cb); + ui_language_label = new QLabel(ui_form_layout_widget); + ui_language_label->setText(tr("Language:")); + ui_language_label->setToolTip(tr("Sets the language if you don't want to use your system language.")); + ui_gameplay_form->setWidget(10, QFormLayout::LabelRole, ui_language_label); + + ui_language_combobox = new QComboBox(ui_form_layout_widget); + ui_language_combobox->addItem(" - Default"); + ui_language_combobox->addItem("en - English"); + ui_language_combobox->addItem("de - German"); + ui_language_combobox->addItem("jp - Japanese"); + ui_gameplay_form->setWidget(10, QFormLayout::FieldRole, ui_language_combobox); + // Here we start the callwords tab. ui_callwords_tab = new QWidget(); ui_settings_tabs->addTab(ui_callwords_tab, tr("Callwords")); @@ -466,6 +478,7 @@ void AOOptionsDialog::save_pressed() configini->setValue("show_custom_shownames", ui_showname_cb->isChecked()); configini->setValue("master", ui_ms_textbox->text()); configini->setValue("discord", ui_discord_cb->isChecked()); + configini->setValue("language", ui_language_combobox->currentText().left(2)); QFile* callwordsini = new QFile(ao_app->get_base_path() + "callwords.ini"); diff --git a/src/main.cpp b/src/main.cpp index 7c2daa6..6c15e6f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -21,13 +21,20 @@ int main(int argc, char *argv[]) AOApplication main_app(argc, argv); + QSettings* configini = main_app.configini; + + QString p_language = configini->value("language",QLocale::system().name()).toString(); + if (p_language==" " || p_language=="") + p_language = QLocale::system().name(); + QTranslator qtTranslator; - qtTranslator.load("qt_" + QLocale::system().name(), + qtTranslator.load("qt_" + p_language, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); main_app.installTranslator(&qtTranslator); QTranslator appTranslator; - appTranslator.load("ao_" + QLocale::system().name(),":/resource/translations/"); + qDebug() << ":/resource/translations/ao_" + p_language; + appTranslator.load("ao_" + p_language,":/resource/translations/"); main_app.installTranslator(&appTranslator); main_app.construct_lobby();