diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sdk/installerbase.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp index e6cf150ca..7613d12f4 100644 --- a/src/sdk/installerbase.cpp +++ b/src/sdk/installerbase.cpp @@ -272,12 +272,18 @@ int InstallerBase::run() } const QString directory = QLatin1String(":/translations"); + // Check if there is a modified translation first to enable people + // to easily provide corrected translations to Qt/IFW for their installers + const QString newDirectory = QLatin1String(":/translations_new"); const QStringList translations = m_core->settings().translations(); if (translations.isEmpty()) { foreach (const QLocale locale, QLocale().uiLanguages()) { QScopedPointer<QTranslator> qtTranslator(new QTranslator(QCoreApplication::instance())); - const bool qtLoaded = qtTranslator->load(locale, QLatin1String("qt"), + bool qtLoaded = qtTranslator->load(locale, QLatin1String("qt"), + QLatin1String("_"), newDirectory); + if (!qtLoaded) + qtLoaded = qtTranslator->load(locale, QLatin1String("qt"), QLatin1String("_"), directory); if (qtLoaded || locale.language() == QLocale::English) { @@ -285,7 +291,10 @@ int InstallerBase::run() QCoreApplication::instance()->installTranslator(qtTranslator.take()); QScopedPointer<QTranslator> ifwTranslator(new QTranslator(QCoreApplication::instance())); - if (ifwTranslator->load(locale, QLatin1String("ifw"), QLatin1String("_"), directory)) + bool ifwLoaded = ifwTranslator->load(locale, QLatin1String("ifw"), QLatin1String("_"), newDirectory); + if (!ifwLoaded) + ifwLoaded = ifwTranslator->load(locale, QLatin1String("ifw"), QLatin1String("_"), directory); + if (ifwLoaded) QCoreApplication::instance()->installTranslator(ifwTranslator.take()); // To stop loading other translations it's sufficient that |