1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-17 01:32:21 +02:00

Less noise when switching languages in launcher

* Check if .qm file exists
* Don't call installTranslator() for English

Fixes #4277
This commit is contained in:
Alexander Wilms
2024-07-18 17:29:46 +02:00
parent d02251f6a8
commit 6599db4461
2 changed files with 42 additions and 10 deletions

View File

@ -237,15 +237,31 @@ void MainWindow::updateTranslation()
{
#ifdef ENABLE_QT_TRANSLATIONS
const std::string translationFile = settings["general"]["language"].String()+ ".qm";
logGlobal->info("Loading translation '%s'", translationFile);
QString translationFileResourcePath = QString{":/translation/%1"}.arg(translationFile.c_str());
if (!translator.load(QString{":/translation/%1"}.arg(translationFile.c_str())))
logGlobal->info("Loading translation %s", translationFile);
if(!QFile::exists(translationFileResourcePath))
{
logGlobal->error("Failed to load translation");
logGlobal->warn("Translation file %s does not exist", translationFileResourcePath.toStdString());
return;
}
if (!translator.load(translationFileResourcePath))
{
logGlobal->error("Failed to load translation file %s", translationFileResourcePath.toStdString());
return;
}
if(translationFile == "english.qm")
{
// translator doesn't need to be installed for English
return;
}
if (!qApp->installTranslator(&translator))
logGlobal->error("Failed to install translator");
{
logGlobal->error("Failed to install translator for translation file %s", translationFileResourcePath.toStdString());
}
#endif
}

View File

@ -134,16 +134,32 @@ void MainWindow::loadTranslation()
{
#ifdef ENABLE_QT_TRANSLATIONS
const std::string translationFile = settings["general"]["language"].String()+ ".qm";
logGlobal->info("Loading translation '%s'", translationFile);
QString translationFileResourcePath = QString{":/translation/%1"}.arg(translationFile.c_str());
if (!translator.load(QString{":/translation/%1"}.arg(translationFile.c_str())))
logGlobal->info("Loading translation %s", translationFile);
if(!QFile::exists(translationFileResourcePath))
{
logGlobal->error("Failed to load translation");
logGlobal->warn("Translation file %s does not exist", translationFileResourcePath.toStdString());
return;
}
if (!translator.load(translationFileResourcePath))
{
logGlobal->error("Failed to load translation file %s", translationFileResourcePath.toStdString());
return;
}
if(translationFile == "english.qm")
{
// translator doesn't need to be installed for English
return;
}
if (!qApp->installTranslator(&translator))
logGlobal->error("Failed to install translator");
{
logGlobal->error("Failed to install translator for translation file %s", translationFileResourcePath.toStdString());
}
#endif
}