summaryrefslogtreecommitdiffstats
path: root/src/sdk/installerbase.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2021-06-15 13:43:45 +0300
committerKatja Marttila <katja.marttila@qt.io>2021-06-17 09:41:25 +0300
commit081613fe8a5fa8dc419d3bf6205f9f0ca303c8da (patch)
tree975c4189755670af349f937669c37d4f5c0b8f10 /src/sdk/installerbase.cpp
parentbd10266110689199ad86d9d314b342f836c5cade (diff)
Load and install translations as early as possible
This will ensure that any early error messages are translated if there are any translations for them. Such as the already running instance string. As a result this means that a check if the installer is already running is done slightly later to allow the loading of the translations first before checking. Fixes: QTIFW-1888 Change-Id: I75ef22d98ca4de9a05e7dd485b5afed5652529bc Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'src/sdk/installerbase.cpp')
-rw-r--r--src/sdk/installerbase.cpp47
1 files changed, 2 insertions, 45 deletions
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp
index 78da6fb3a..32df0b550 100644
--- a/src/sdk/installerbase.cpp
+++ b/src/sdk/installerbase.cpp
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
@@ -40,7 +40,6 @@
#include <QDir>
#include <QDirIterator>
#include <QFontDatabase>
-#include <QTranslator>
#ifdef ENABLE_SQUISH
#include <qtbuiltinhook.h>
@@ -74,49 +73,7 @@ int InstallerBase::run()
qCDebug(QInstaller::lcInstallerInstallLog) << "Language:" << QLocale().uiLanguages()
.value(0, QLatin1String("No UI language set")).toUtf8().constData();
-#ifndef IFW_DISABLE_TRANSLATIONS
- 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()));
- 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) {
- if (qtLoaded)
- QCoreApplication::instance()->installTranslator(qtTranslator.take());
-
- QScopedPointer<QTranslator> ifwTranslator(new QTranslator(QCoreApplication::instance()));
- 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
- // qt was loaded successfully or we hit English as system language
- emit m_core->defaultTranslationsLoadedForLanguage(locale.language());
- break;
- }
- }
- } else {
- foreach (const QString &translation, translations) {
- QScopedPointer<QTranslator> translator(new QTranslator(QCoreApplication::instance()));
- if (translator->load(translation, QLatin1String(":/translations")))
- QCoreApplication::instance()->installTranslator(translator.take());
- }
- QLocale currentLocale(translations.at(0).section(QLatin1Char('_'), 1));
- emit m_core->defaultTranslationsLoadedForLanguage(currentLocale.language());
- }
-#endif
+
{
QDirIterator fontIt(QStringLiteral(":/fonts"));
while (fontIt.hasNext()) {