common: Initialize translations in Quassel::init()
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 26 Jul 2018 20:58:40 +0000 (22:58 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 18 Nov 2018 10:06:43 +0000 (11:06 +0100)
In order to have localized strings during initialization, e.g. for
command line options, the translation catalogue must be loaded
early.

Since at this point the UI configuration is not available yet,
the system locale is used. QtUi will reload translations afterwards
later if a language different from the system locale is configured
for the UI.

src/common/quassel.cpp
src/core/core.cpp

index b7a6fbf..ee8876f 100644 (file)
@@ -70,6 +70,9 @@ void Quassel::init(RunMode runMode)
     setupEnvironment();
     registerMetaTypes();
 
     setupEnvironment();
     registerMetaTypes();
 
+    // Initial translation (may be overridden in UI settings)
+    loadTranslation(QLocale::system());
+
     Network::setDefaultCodecForServer("UTF-8");
     Network::setDefaultCodecForEncoding("UTF-8");
     Network::setDefaultCodecForDecoding("ISO-8859-15");
     Network::setDefaultCodecForServer("UTF-8");
     Network::setDefaultCodecForEncoding("UTF-8");
     Network::setDefaultCodecForDecoding("ISO-8859-15");
@@ -536,11 +539,9 @@ void Quassel::loadTranslation(const QLocale &locale)
 
     qtTranslator = new QTranslator(qApp);
     qtTranslator->setObjectName("QtTr");
 
     qtTranslator = new QTranslator(qApp);
     qtTranslator->setObjectName("QtTr");
-    qApp->installTranslator(qtTranslator);
 
     quasselTranslator = new QTranslator(qApp);
     quasselTranslator->setObjectName("QuasselTr");
 
     quasselTranslator = new QTranslator(qApp);
     quasselTranslator->setObjectName("QuasselTr");
-    qApp->installTranslator(quasselTranslator);
 
 #ifndef Q_OS_MAC
     bool success = qtTranslator->load(locale, QString("qt_"), translationDirPath());
 
 #ifndef Q_OS_MAC
     bool success = qtTranslator->load(locale, QString("qt_"), translationDirPath());
@@ -553,6 +554,9 @@ void Quassel::loadTranslation(const QLocale &locale)
         qtTranslator->load(QString("qt_%1").arg(locale.name()), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
     quasselTranslator->load(QString("%1").arg(locale.name()), translationDirPath());
 #endif
         qtTranslator->load(QString("qt_%1").arg(locale.name()), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
     quasselTranslator->load(QString("%1").arg(locale.name()), translationDirPath());
 #endif
+
+    qApp->installTranslator(quasselTranslator);
+    qApp->installTranslator(qtTranslator);
 }
 
 
 }
 
 
index 2634dd2..db30b30 100644 (file)
@@ -91,10 +91,6 @@ void Core::init()
 {
     _startTime = QDateTime::currentDateTime().toUTC(); // for uptime :)
 
 {
     _startTime = QDateTime::currentDateTime().toUTC(); // for uptime :)
 
-    if (Quassel::runMode() == Quassel::RunMode::CoreOnly) {
-        Quassel::loadTranslation(QLocale::system());
-    }
-
     // check settings version
     // so far, we only have 1
     CoreSettings s;
     // check settings version
     // so far, we only have 1
     CoreSettings s;