@@ -89,10 +89,24 @@ static std::string Translate(const char* psz)
8989 return QCoreApplication::translate (" bitcoin-core" , psz).toStdString ();
9090}
9191
92+ static QString GetLangTerritory ()
93+ {
94+ QSettings settings;
95+ // Get desired locale (e.g. "de_DE")
96+ // 1) System default language
97+ QString lang_territory = QLocale::system ().name ();
98+ // 2) Language from QSettings
99+ QString lang_territory_qsettings = settings.value (" language" , " " ).toString ();
100+ if (!lang_territory_qsettings.isEmpty ())
101+ lang_territory = lang_territory_qsettings;
102+ // 3) -lang command line argument
103+ lang_territory = QString::fromStdString (GetArg (" -lang" , lang_territory.toStdString ()));
104+ return lang_territory;
105+ }
106+
92107/* * Set up translations */
93108static void initTranslations (QTranslator &qtTranslatorBase, QTranslator &qtTranslator, QTranslator &translatorBase, QTranslator &translator)
94109{
95- QSettings settings;
96110
97111 // Remove old translators
98112 QApplication::removeTranslator (&qtTranslatorBase);
@@ -102,13 +116,7 @@ static void initTranslations(QTranslator &qtTranslatorBase, QTranslator &qtTrans
102116
103117 // Get desired locale (e.g. "de_DE")
104118 // 1) System default language
105- QString lang_territory = QLocale::system ().name ();
106- // 2) Language from QSettings
107- QString lang_territory_qsettings = settings.value (" language" , " " ).toString ();
108- if (!lang_territory_qsettings.isEmpty ())
109- lang_territory = lang_territory_qsettings;
110- // 3) -lang command line argument
111- lang_territory = QString::fromStdString (GetArg (" -lang" , lang_territory.toStdString ()));
119+ QString lang_territory = GetLangTerritory ();
112120
113121 // Convert to "de" only by truncating "_DE"
114122 QString lang = lang_territory;
@@ -498,8 +506,6 @@ int main(int argc, char *argv[])
498506 Q_INIT_RESOURCE (bitcoin);
499507 Q_INIT_RESOURCE (bitcoin_locale);
500508
501- GUIUtil::SubstituteFonts ();
502-
503509 BitcoinApplication app (argc, argv);
504510#if QT_VERSION > 0x050100
505511 // Generate high-dpi pixmaps
@@ -521,6 +527,7 @@ int main(int argc, char *argv[])
521527 QApplication::setOrganizationName (QAPP_ORG_NAME);
522528 QApplication::setOrganizationDomain (QAPP_ORG_DOMAIN);
523529 QApplication::setApplicationName (QAPP_APP_NAME_DEFAULT);
530+ GUIUtil::SubstituteFonts (GetLangTerritory ());
524531
525532 // / 4. Initialization of translations, so that intro dialog is in user's language
526533 // Now that QSettings are accessible, initialize translations
0 commit comments