summaryrefslogtreecommitdiffstats
path: root/src/sdk/installerbase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdk/installerbase.cpp')
-rw-r--r--src/sdk/installerbase.cpp22
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));