diff --git a/launcher/Application.cpp b/launcher/Application.cpp index 710b75162..efd63714d 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -1018,12 +1018,9 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv) // load translations { m_translations.reset(new TranslationsModel("translations")); - auto bcp47Name = m_settings->get("Language").toString(); - m_translations->selectLanguage(bcp47Name); - qInfo() << "Your language is" << bcp47Name; - qInfo() << "<> Translations loaded."; - m_translations->downloadIndex(); + qInfo() << "Your language is" << m_translations->selectedLanguage(); + qInfo() << "<> Translations loaded."; } // FIXME: what to do with these? diff --git a/launcher/translations/TranslationsModel.cpp b/launcher/translations/TranslationsModel.cpp index 54d792f0c..7f905608b 100644 --- a/launcher/translations/TranslationsModel.cpp +++ b/launcher/translations/TranslationsModel.cpp @@ -179,6 +179,7 @@ TranslationsModel::TranslationsModel(const QString& path, QObject* parent) : QAb { d = std::make_unique(); d->m_dir.setPath(path); + d->m_selectedLanguage = APPLICATION->settings()->get("Language").toString(); FS::ensureFolderPathExists(path); reloadLocalFiles(); @@ -202,22 +203,20 @@ void TranslationsModel::indexReceived() { qDebug() << "Got translations index!"; d->m_indexJob.reset(); + reloadLocalFiles(); if (d->m_noLanguageSet) { - reloadLocalFiles(); - auto language = getSystemLocaleName(); if (!findLanguageAsOptional(language).has_value()) { language = getSystemLanguage(); } selectLanguage(language); - if (selectedLanguage() != g_defaultLangCode) { - updateLanguage(selectedLanguage()); - } APPLICATION->settings()->set("Language", selectedLanguage()); d->m_noLanguageSet = false; - } else if (d->m_selectedLanguage != g_defaultLangCode) { - downloadTranslation(d->m_selectedLanguage); + } + + if (selectedLanguage() != g_defaultLangCode) { + updateLanguage(selectedLanguage()); } }