diff --git a/launcher/Application.cpp b/launcher/Application.cpp index ff4013b1c..710b75162 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -937,15 +937,6 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv) qInfo() << "<> Network done."; } - // 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."; - } - // Instance icons { auto setting = APPLICATION->settings()->getSetting("IconsDir"); @@ -1024,8 +1015,16 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv) qInfo() << "<> Cache initialized."; } - // now we have network, download translation updates - m_translations->downloadIndex(); + // 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(); + } // FIXME: what to do with these? m_profilers.insert("jprofiler", std::shared_ptr(new JProfilerFactory())); diff --git a/launcher/translations/TranslationsModel.cpp b/launcher/translations/TranslationsModel.cpp index ebbd7cdb6..54d792f0c 100644 --- a/launcher/translations/TranslationsModel.cpp +++ b/launcher/translations/TranslationsModel.cpp @@ -267,7 +267,12 @@ void TranslationsModel::reloadLocalFiles() { QMap languages = { { g_defaultLangCode, Language(g_defaultLangCode) } }; - readIndex(d->m_dir.absoluteFilePath("index_v2.json"), languages); + const auto indexPath = d->m_dir.absoluteFilePath("index_v2.json"); + if (!QFileInfo::exists(indexPath)) { + downloadIndex(); + return; + } + readIndex(indexPath, languages); auto entries = d->m_dir.entryInfoList({ "mmc_*.qm", "*.po" }, QDir::Files | QDir::NoDotAndDotDot); for (auto& entry : entries) { auto completeSuffix = entry.completeSuffix();