Translations: Don't use QLocale::system::name

Older versions of the Qt documentation advocate using QLocale::system::name
for system language resolving. This is deprecated and causes misbehavior,
such as selecting the system unit language instead of system display language
on Windows.

Solution: Use QTranslator::load(QLocale(), ... ...), which is display language
aware.
This commit is contained in:
Felix Kauselmann 2022-10-09 11:15:34 +02:00 committed by Luis Ángel San Martín
parent 1243346e9a
commit 76a12cd7e3
2 changed files with 4 additions and 6 deletions

View File

@ -173,11 +173,10 @@ int main(int argc, char *argv[])
logger.addDestination(std::move(fileDestination)); logger.addDestination(std::move(fileDestination));
QTranslator translator; QTranslator translator;
QString sufix = QLocale::system().name();
#if defined Q_OS_UNIX && !defined Q_OS_MAC #if defined Q_OS_UNIX && !defined Q_OS_MAC
translator.load(QString(DATADIR) + "/yacreader/languages/yacreader_" + sufix); translator.load(QLocale(), "yacreader", "_", QString(DATADIR) + "/yacreader/languages");
#else #else
translator.load(QCoreApplication::applicationDirPath() + "/languages/yacreader_" + sufix); translator.load(QLocale(), "yacreader", "_", "languages");
#endif #endif
app.installTranslator(&translator); app.installTranslator(&translator);
auto mwv = new MainWindowViewer(); auto mwv = new MainWindowViewer();

View File

@ -164,11 +164,10 @@ int main(int argc, char **argv)
logger.addDestination(std::move(fileDestination)); logger.addDestination(std::move(fileDestination));
QTranslator translator; QTranslator translator;
QString sufix = QLocale::system().name();
#if defined Q_OS_UNIX && !defined Q_OS_MAC #if defined Q_OS_UNIX && !defined Q_OS_MAC
translator.load(QString(DATADIR) + "/yacreader/languages/yacreaderlibrary_" + sufix); translator.load(QLocale(), "yacreaderlibrary", "_", QString(DATADIR) + "/yacreader/languages");
#else #else
translator.load(QCoreApplication::applicationDirPath() + "/languages/yacreaderlibrary_" + sufix); translator.load(QLocale(), "yacreaderlibrary", "_", "languages");
#endif #endif
app.installTranslator(&translator); app.installTranslator(&translator);