diff options
-rw-r--r-- | src/sdk/installerbase.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp index 71f45301e..870182e13 100644 --- a/src/sdk/installerbase.cpp +++ b/src/sdk/installerbase.cpp @@ -317,8 +317,16 @@ int main(int argc, char *argv[]) // install the default Qt translator QScopedPointer<QTranslator> translator(new QTranslator(&app)); - if (translator->load(QLocale(), QLatin1String("qt"), QString::fromLatin1("_"), directory)) - app.installTranslator(translator.take()); + foreach (const QLocale locale, QLocale().uiLanguages()) { + // As there is no qt_en.qm, we simply end the search when the next + // preferred language is English. + if (locale.language() == QLocale::English) + break; + if (translator->load(locale, QLatin1String("qt"), QString::fromLatin1("_"), directory)) { + app.installTranslator(translator.take()); + break; + } + } translator.reset(new QTranslator(&app)); // install English translation as fallback so that correct license button text is used @@ -327,10 +335,12 @@ int main(int argc, char *argv[]) if (translations.isEmpty()) { translator.reset(new QTranslator(&app)); - const QString name = QLocale().uiLanguages().value(0).replace(QLatin1Char('-'), QLatin1Char('_')) - .toLower(); // install "our" default translator - if (translator->load(name, directory)) - app.installTranslator(translator.take()); + foreach (const QLocale locale, QLocale().uiLanguages()) { + if (translator->load(locale, QLatin1String(""), QLatin1String(""), directory)) { + app.installTranslator(translator.take()); + break; + } + } } else { foreach (const QString &translation, translations) { translator.reset(new QTranslator(&app)); |