[Interest] Locale detection of Qt application hosted via WASM

Kai Köhne Kai.Koehne at qt.io
Thu Apr 29 08:14:19 CEST 2021



> Von: Interest <interest-bounces at qt-project.org> Im Auftrag von Nicholas Yue
> Gesendet: Mittwoch, 28. April 2021 18:41
> An: interest at qt-project.org
> Betreff: [Interest] Locale detection of Qt application hosted via WASM
>
> Hi,
>
> I have the following code (part of a small project) which is being built both as a standalone executable and a wasm web application.
>
> They both work except the locale determination.
>
> On my Linux console, I can set the LANGUAGE environment to de and the executable will load the correct labels
>
> However, when I run it wasm web app and connect to it via a German language OS web browser, it keeps thinking that the locale is still "C" and not "de_DE"
> 
[...]
> if (QLocale::system().name().startsWith("de_")) {
> if (translator.load(":/language/.qm/cme_de.qm")) {

I don't know whether it fixes your specific problem, but using QLocale::name() / QLocale::system().name() for loading translations is an anti-pattern. There might be people that configure a certain locale because they like the date/time formats there, but still prefer another language for the UI etc. What you should use instead is QLocale::uiLanguages(). Or just pass the locale to QTranslator::load:

  If (translator.load(QLocale::system(), "cme", "_", ":/language/.qm")

Regards

Kai


More information about the Interest mailing list