From a62db8de1d75c5c9759911fc53a7aeccea219e3b Mon Sep 17 00:00:00 2001 From: QwQ <59914293+Qv2ray-dev@users.noreply.github.com> Date: Sun, 2 Aug 2020 09:04:52 +0800 Subject: [PATCH] fix: fixed #845 --- makespec/BUILDVERSION | 2 +- src/Qv2rayApplication.cpp | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/makespec/BUILDVERSION b/makespec/BUILDVERSION index 6838a64c..d01f253a 100644 --- a/makespec/BUILDVERSION +++ b/makespec/BUILDVERSION @@ -1 +1 @@ -5819 +5820 diff --git a/src/Qv2rayApplication.cpp b/src/Qv2rayApplication.cpp index 117d39bf..1398a059 100644 --- a/src/Qv2rayApplication.cpp +++ b/src/Qv2rayApplication.cpp @@ -396,11 +396,17 @@ namespace Qv2ray // Load config object from upgraded config QJsonObject auto confObject = Qv2rayConfigObject::fromJson(conf); - if (!Qv2rayTranslator->GetAvailableLanguages().contains(confObject.uiConfig.language)) + const auto allTranslations = Qv2rayTranslator->GetAvailableLanguages(); + const auto osLanguage = QLocale::system().name(); + if (!allTranslations.contains(confObject.uiConfig.language) && allTranslations.contains(osLanguage)) { - // Prevent empty. - LOG(MODULE_UI, "Setting default UI language to system locale.") - confObject.uiConfig.language = QLocale::system().name(); + // If configured language is not found. Set to system language. + LOG(MODULE_UI, "Fall back language setting to: " + osLanguage) + confObject.uiConfig.language = osLanguage; + } + else if (!allTranslations.isEmpty()) + { + confObject.uiConfig.language = allTranslations.first(); } if (!Qv2rayTranslator->InstallTranslation(confObject.uiConfig.language)) @@ -409,6 +415,7 @@ namespace Qv2ray "Cannot load translation for " + confObject.uiConfig.language + NEWLINE + // "English is now used." + NEWLINE + NEWLINE + // "Please go to Preferences Window to change language or open an Issue"); + confObject.uiConfig.language = "en_US"; } // Let's save the config.