-
Bug
-
Resolution: Out of scope
-
Not Evaluated
-
None
-
6.10.0 Beta3
-
None
-
Windows Server 2022 and Windows Server 2024, as provided by GitHub hosted runners.
Hi, I haven't had time to narrow this down to a small test case yet, but wanted to get it into Jira quickly in case is does indicate something Qt might consider as a blocker for the Qt 6.10 release.
Basically, on Windows only (tested x86-64 Windows Server 2022 and 2025), with MSVC, GCC and LLVM, it appears that Qt 6.10 has broken some locale detection.
Specifically, an open source project of mine executes some L10n tests like:
declare -Ar languages=( [en_AU]='Australia|Unrecognised' [en_GB]='United Kingdom|Unrecognised' [en_US]='United States|Unrecognized' ) for langId in "${!languages[@]}"; do ... output=$( LANG="${langId}.UTF-8" \ "$RUNNER_TEMP/release/src/cli/dokit" calibrate --debug --temperature x 2>&1 || :) ... done
And the code within the main function includes:
const QLocale locale; ... qCDebug(lc).noquote() << "Locale:" << locale << locale.uiLanguages(); ...
On all other versions of Qt, the output is something like:
Checking: United Kingdom (en_GB) qt.core.qtranslator: Searching translation for cli/QLocale::system()/* English, Latin, United Kingdom */ in :/i18n qt.core.qtranslator: Requested UI languages QList("en_Latn_GB", "en_GB", "en_Latn_US", "en_US", "en_Latn", "en") qt.core.qtranslator: Testing file ":/i18n/cli/en_Latn_GB.qm" false qt.core.qtranslator: Testing file ":/i18n/cli/en_Latn_GB" false qt.core.qtranslator: Testing file ":/i18n/cli/en_latn_gb.qm" false qt.core.qtranslator: Testing file ":/i18n/cli/en_latn_gb" false qt.core.qtranslator: Testing file ":/i18n/cli/en_GB.qm" true qt.core.qtranslator: Searching translation for lib/QLocale::system()/* English, Latin, United Kingdom */ in :/i18n qt.core.qtranslator: Requested UI languages QList("en_Latn_GB", "en_GB", "en_Latn_US", "en_US", "en_Latn", "en") qt.core.qtranslator: Testing file ":/i18n/lib/en_Latn_GB.qm" false qt.core.qtranslator: Testing file ":/i18n/lib/en_Latn_GB" false qt.core.qtranslator: Testing file ":/i18n/lib/en_latn_gb.qm" false qt.core.qtranslator: Testing file ":/i18n/lib/en_latn_gb" false qt.core.qtranslator: Testing file ":/i18n/lib/en_GB.qm" true 0.002 8236 debug dokit.cli.main: Dokit 0.5.6-pre+1664.win2025.x86-64.msvc.qt-6.9.1 0.002 8236 debug dokit.cli.main: Qt 6.9.1 compile-time 0.002 8236 debug dokit.cli.main: Qt 6.9.1 runtime 0.002 8236 debug dokit.cli.main: Locale: QLocale::system()/* English, Latin, United Kingdom */ QList(en-Latn-GB, en-GB, en-Latn-US, en-US, en-Latn, en)
There you can see Qt's "Requested UI languages" list correctly starts with *_GB entries.
However, with for Qt 6.10 only (on Windows), the output is like:
Checking: United Kingdom (en_GB) qt.core.qtranslator: Requested UI languages QList("en_Latn_US", "en_US", "en_Latn", "en", "en_Latn_GB", "en_GB") qt.core.qtranslator: Searching translation for cli/QList(en_Latn_US, en_US, en_Latn, en, en_Latn_GB, en_GB) in :/i18n qt.core.qtranslator: Requested UI languages QList("en_Latn_US", "en_US", "en_Latn", "en", "en_Latn_GB", "en_GB") qt.core.qtranslator: Searching translation for lib/QList(en_Latn_US, en_US, en_Latn, en, en_Latn_GB, en_GB) in :/i18n 0.000 4044 debug dokit.cli.main: Dokit 0.5.6-pre+1664.win2025.x86-64.msvc.qt-6.10.0 0.000 4044 debug dokit.cli.main: Qt 6.10.0 compile-time 0.000 4044 debug dokit.cli.main: Qt 6.10.0 runtime 0.000 4044 debug dokit.cli.main: Locale: QLocale::system()/* English, Latin, United Kingdom */ QList(en-Latn-US, en-US, en-Latn, en, en-Latn-GB, en-GB)
As you can see, for whatever reason, the "Requested UI languages" list is now in the wrong order (at least as far as I read it). And there's some earlier logging for the qt.core.qtranslator category that isn't happening either - not sure if that's relevant.
I suspect, this may be related to the following change mentioned on the "What's new in 6.10" page:
QLocale::uiLanguages() now includes truncated entries and is better-ordered"
As I mentioned above, there's no issues with any previous version of Qt, not does 6.10 have any issues on Linux (or macOS). So this definitely appears to be a change in Qt 6.10, but is it expected, or a regression?
I'll hopefully get some time to investigate further in a day or two, but in the meantime, any indication that this is expected or not would be much appreciated Thanks!
- resulted from
-
QTBUG-104930 QLocale shows German text for "en_DE"
-
- Closed
-