From 76a12cd7e36fc20df955fc041ba7b0430c1f3807 Mon Sep 17 00:00:00 2001 From: Felix Kauselmann Date: Sun, 9 Oct 2022 11:15:34 +0200 Subject: [PATCH] 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. --- YACReader/main.cpp | 5 ++--- YACReaderLibrary/main.cpp | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/YACReader/main.cpp b/YACReader/main.cpp index b16cfd03..d7a2b48c 100644 --- a/YACReader/main.cpp +++ b/YACReader/main.cpp @@ -173,11 +173,10 @@ int main(int argc, char *argv[]) logger.addDestination(std::move(fileDestination)); QTranslator translator; - QString sufix = QLocale::system().name(); #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 - translator.load(QCoreApplication::applicationDirPath() + "/languages/yacreader_" + sufix); + translator.load(QLocale(), "yacreader", "_", "languages"); #endif app.installTranslator(&translator); auto mwv = new MainWindowViewer(); diff --git a/YACReaderLibrary/main.cpp b/YACReaderLibrary/main.cpp index ee86bf65..924c7396 100644 --- a/YACReaderLibrary/main.cpp +++ b/YACReaderLibrary/main.cpp @@ -164,11 +164,10 @@ int main(int argc, char **argv) logger.addDestination(std::move(fileDestination)); QTranslator translator; - QString sufix = QLocale::system().name(); #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 - translator.load(QCoreApplication::applicationDirPath() + "/languages/yacreaderlibrary_" + sufix); + translator.load(QLocale(), "yacreaderlibrary", "_", "languages"); #endif app.installTranslator(&translator);