diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a17fc7a..8807b45 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -212,17 +212,23 @@ void switchTranslator(QTranslator& translator, const QString& filename) { void MainWindow::loadLanguage(QString& rLanguage) { qDebug() << __func__ << ": currLang=" << m_currLang << " rLanguage=" << rLanguage; - if(m_currLang != rLanguage) { - qDebug() << __func__ << ": changing language"; - if(rLanguage == "Russian") { - rLanguage = "ru"; - } - m_currLang = rLanguage; + + QString lang = rLanguage; + lang.chop(1); // remove trailing ) + lang = lang.right(2); // last 2 chars are the language code + + if(m_currLang != lang) { + qDebug() << __func__ << ": changing language to " << lang; + m_currLang = lang; QLocale locale = QLocale(m_currLang); + qDebug() << __func__ << ": locale=" << locale; QLocale::setDefault(locale); QString languageName = QLocale::languageToString(locale.language()); - switchTranslator(m_translator, QString("silentdragon_%1.qm").arg(rLanguage)); - switchTranslator(m_translatorQt, QString("qt_%1.qm").arg(rLanguage)); + qDebug() << __func__ << ": languageName=" << languageName; + + switchTranslator(m_translator, QString("silentdragon_%1.qm").arg(lang)); + switchTranslator(m_translatorQt, QString("qt_%1.qm").arg(lang)); + ui->statusBar->showMessage(tr("Current Language changed to %1").arg(languageName)); } } @@ -232,7 +238,7 @@ void MainWindow::changeEvent(QEvent* event) { switch(event->type()) { // this event is sent if a translator is loaded case QEvent::LanguageChange: - qDebug() << "QEvent::LanguageChange changeEvent"; + qDebug() << __func__ << ": QEvent::LanguageChange changeEvent"; ui->retranslateUi(this); break; @@ -241,7 +247,7 @@ void MainWindow::changeEvent(QEvent* event) { { QString locale = QLocale::system().name(); locale.truncate(locale.lastIndexOf('_')); - qDebug() << "QEvent::LocaleChange changeEvent locale=" << locale; + qDebug() << __func__ << ": QEvent::LocaleChange changeEvent locale=" << locale; loadLanguage(locale); } break; @@ -505,7 +511,7 @@ void MainWindow::setupSettingsModal() { defaultLocale.truncate(defaultLocale.lastIndexOf('_')); // e.g. "de" //QString defaultLang = QLocale::languageToString(QLocale("en").language()); - settings.comboBoxLanguage->addItem("English"); + settings.comboBoxLanguage->addItem("English (en)"); m_langPath = QApplication::applicationDirPath(); m_langPath.append("/res"); @@ -533,9 +539,9 @@ void MainWindow::setupSettingsModal() { action->setData(locale); //settings.comboBoxLanguage->addItem(action); - settings.comboBoxLanguage->addItem(lang); + settings.comboBoxLanguage->addItem(lang + " (" + locale + ")"); langGroup->addAction(action); - qDebug() << __func__ << ": added language=" << locale; + qDebug() << __func__ << ": added lang=" << lang << " locale=" << locale; // set default translators and language checked if (defaultLocale == locale) {