aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp David <pd@3b.pm>2022-01-12 17:44:58 +0100
committerPhilipp David <pd@3b.pm>2022-01-17 09:52:04 +0100
commit236c0166f6b0f7fc2d726d509edd49b017b98b12 (patch)
treefa664bb88d4a544381f6c451b0436637eba6c222
parent2c2c22ccf8567de0410decdd6ef122170c70103f (diff)
downloadPrismLauncher-236c0166f6b0f7fc2d726d509edd49b017b98b12.tar.gz
PrismLauncher-236c0166f6b0f7fc2d726d509edd49b017b98b12.tar.bz2
PrismLauncher-236c0166f6b0f7fc2d726d509edd49b017b98b12.zip
Default to system locale language
-rw-r--r--launcher/translations/TranslationsModel.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/launcher/translations/TranslationsModel.cpp b/launcher/translations/TranslationsModel.cpp
index 2e744007..5533c082 100644
--- a/launcher/translations/TranslationsModel.cpp
+++ b/launcher/translations/TranslationsModel.cpp
@@ -143,6 +143,8 @@ struct TranslationsModel::Private
std::unique_ptr<POTranslator> m_po_translator;
QFileSystemWatcher *watcher;
+
+ bool no_language_set = false;
};
TranslationsModel::TranslationsModel(QString path, QObject* parent): QAbstractListModel(parent)
@@ -165,7 +167,26 @@ void TranslationsModel::translationDirChanged(const QString& path)
{
qDebug() << "Dir changed:" << path;
reloadLocalFiles();
- selectLanguage(selectedLanguage());
+
+ if (d->no_language_set)
+ {
+ auto bcp47Name = QLocale::system().name();
+ if (!findLanguage(bcp47Name))
+ {
+ bcp47Name = bcp47Name.split('_').front();
+ }
+ selectLanguage(bcp47Name);
+ if (selectedLanguage() != defaultLangCode)
+ {
+ updateLanguage(selectedLanguage());
+ APPLICATION->settings()->set("Language", selectedLanguage());
+ }
+ d->no_language_set = false;
+ }
+ else
+ {
+ selectLanguage(selectedLanguage());
+ }
}
void TranslationsModel::indexReceived()
@@ -439,6 +460,12 @@ bool TranslationsModel::selectLanguage(QString key)
{
QString &langCode = key;
auto langPtr = findLanguage(key);
+
+ if (langCode.length() == 0)
+ {
+ d->no_language_set = true;
+ }
+
if(!langPtr)
{
qWarning() << "Selected invalid language" << key << ", defaulting to" << defaultLangCode;