|
|
@@ -132,26 +132,31 @@ MainWindow::MainWindow(QWidget * parent)
|
|
|
|
|
|
void MainWindow::detectPreferredLanguage()
|
|
|
{
|
|
|
- auto preferredLanguages = QLocale::system().uiLanguages();
|
|
|
-
|
|
|
- std::string selectedLanguage;
|
|
|
-
|
|
|
- for (auto const & userLang : preferredLanguages)
|
|
|
- {
|
|
|
- logGlobal->info("Preferred language: %s", userLang.toStdString());
|
|
|
-
|
|
|
- for (auto const & vcmiLang : Languages::getLanguageList())
|
|
|
- if (vcmiLang.tagIETF == userLang.toStdString() && vcmiLang.selectable)
|
|
|
- selectedLanguage = vcmiLang.identifier;
|
|
|
-
|
|
|
- if (!selectedLanguage.empty())
|
|
|
- {
|
|
|
- logGlobal->info("Selected language: %s", selectedLanguage);
|
|
|
- Settings node = settings.write["general"]["language"];
|
|
|
- node->String() = selectedLanguage;
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
+ auto appLanguages = QLocale().uiLanguages();
|
|
|
+ auto sysLanguages = QLocale::system().uiLanguages();
|
|
|
+
|
|
|
+ const auto &preferredLanguages = (appLanguages != sysLanguages && !appLanguages.isEmpty()) ? appLanguages : sysLanguages;
|
|
|
+
|
|
|
+ std::string selectedLanguage;
|
|
|
+
|
|
|
+ for (auto const & userLang : preferredLanguages)
|
|
|
+ {
|
|
|
+ logGlobal->info("Preferred language: %s", userLang.toStdString());
|
|
|
+
|
|
|
+ for (auto const & vcmiLang : Languages::getLanguageList())
|
|
|
+ {
|
|
|
+ if (vcmiLang.tagIETF == userLang.toStdString() && vcmiLang.selectable)
|
|
|
+ selectedLanguage = vcmiLang.identifier;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!selectedLanguage.empty())
|
|
|
+ {
|
|
|
+ logGlobal->info("Selected language: %s", selectedLanguage);
|
|
|
+ Settings node = settings.write["general"]["language"];
|
|
|
+ node->String() = selectedLanguage;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void MainWindow::enterSetup()
|