When run on Windows 10, our installer doesn't seem to always correctly respect the user's language settings.
For example, our installer supports Italian localization. So we added the ' it' string to the <allowedLanguages> project property, and we added a valid language file to the <customLanguageFileList>.
Probably for historic reasons, on Windows the user's preferred language is determined through the ' Region -> Formats' Control Panel. There, three different Italian language options are available:
When changing this setting to either ' Italian (Italy)' or ' Italian (Switzerland)' , then our installer runs in Italian language; but when choosing the ' Italian (San Marino)' setting, the installer fails to run in Italian, instead choosing the installer's default language (english).
This problem persists with other languages as well, for example we're also supporting Russian language. There are six different variants of the Russian language, but only two of them are correctly recognized by our installer:
What am I missing? How do I make our installer recognize all variants of a certain language?
This is an excerpt from our project file:
<allowedLanguages>en de es es_AR fr it ja pt pt_BR zh_CN zh_TW ru</allowedLanguages>
<customLanguageFileList>
<!-- ' code' : supported language, ' file”: the localization file loaded for the supported language -->
<language code=' de' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_de.lng' />
<language code=' en' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_en.lng' />
<language code=' es' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_es.lng' />
<language code=' es_AR' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_es.lng' />
<language code=' fr' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_fr.lng' />
<language code=' it' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_it.lng' />
<language code=' ja' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_ja.lng' />
<language code=' pt' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_pt_BR.lng' />
<language code=' pt_BR' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_pt_BR.lng' />
<language code=' zh_CN' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_zh_CN.lng' />
<language code=' zh_TW' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_zh_CN.lng' />
<language code=' ru' encoding=' utf-8' file=' ../LocalizedStrings/LocalizedStrings_ru.lng' />
</customLanguageFileList>
Hi Dirk,
Could you tell us the value of the locale key in the HKEY_CURRENT_USER or or Control Panel or or International registry key?
Regards,
MIchiel D'Hont
Hi Dirk,
Please accept my apologies for the delay in my response. These languages are currently not recognized by InstallBuilder. We will look into improving this.
Regards,
Michiel
Hi Dirk,
The registry entry normally has 2 keys. locale and localeName. Could you tell the value of both?
Regards,
Michiel
BitRock Support
My bad, I mixed up those values... here is a correct list of Format name, localName und local:
Format / localName / local
Yes, the local value or ' 00000C00 or ' is used multiple times...
Hi Dirk,
On Windows the installer sets it's default language from the locale value. We use the codes from the following list for all our supported languages.
https://www.science.co.il/language/Locale-codes.php
The languages you mention appear as separate - currently unsupported - languages on the list. This will make the installer default to English. Another reason it defaults to English is that on your system these languages do not seem to have the corresponding locale value in the registry, which could explain it_SM defaulting to English.
Best regards,
Michiel