--- a/QTfrontend/main.cpp Fri Mar 23 03:37:07 2018 +0100
+++ b/QTfrontend/main.cpp Sat Mar 24 00:26:39 2018 +0100
@@ -372,21 +372,31 @@
if (cc.isEmpty())
{
cc = QLocale::system().name();
+ qDebug("Detected system locale: %s", qPrintable(cc));
// Fallback to current input locale if "C" locale is returned
if(cc == "C")
cc = HWApplication::inputMethod()->locale().name();
}
- qDebug("Frontend uses locale: %s", qPrintable(cc));
+ else
+ {
+ qDebug("Configured frontend locale: %s", qPrintable(cc));
+ }
+ QLocale::setDefault(cc);
+ QString defaultLocaleName = QLocale().name();
+ qDebug("Frontend uses locale: %s", qPrintable(defaultLocaleName));
- // Load locale files into translators
- if (!TranslatorHedgewars.load(QString("hedgewars_%1").arg(cc), QString("physfs://Locale")))
- qWarning("Failed to install Hedgewars translation (%s)", qPrintable(cc));
- if (!TranslatorQt.load(QString("qt_%1").arg(cc), QString(QLibraryInfo::location(QLibraryInfo::TranslationsPath))))
- qWarning("Failed to install Qt translation (%s)", qPrintable(cc));
- app.installTranslator(&TranslatorHedgewars);
- app.installTranslator(&TranslatorQt);
- app.setLayoutDirection(QLocale(cc).textDirection());
+ if (defaultLocaleName != "C")
+ {
+ // Load locale files into translators
+ if (!TranslatorHedgewars.load(QLocale(), "hedgewars", "_", QString("physfs://Locale")))
+ qWarning("Failed to install Hedgewars translation (%s)", qPrintable(defaultLocaleName));
+ if (!TranslatorQt.load(QLocale(), "qt", "_", QString(QLibraryInfo::location(QLibraryInfo::TranslationsPath))))
+ qWarning("Failed to install Qt translation (%s)", qPrintable(defaultLocaleName));
+ app.installTranslator(&TranslatorHedgewars);
+ app.installTranslator(&TranslatorQt);
+ }
+ app.setLayoutDirection(QLocale().textDirection());
}
#ifdef _WIN32