My notes on Internationalization and Localization.
Short for Multilingual User Interface.
XP: MUI Pack(s) can be installed only on specific base version (in the case of CJK packs: the English build), which seems to enable certain hacks in the system in order to support loading of localized resources. The MUI files are installed under
%SystemRoot%\mui\FALLBACK\<LCID>\ with the filename
<MODULE_NAME_WITH_EXT>.mui. TODO: Check if it is really called
LCID A combobox is also enabled in the "Languages" tab of
intl.cpl for selecting the display language.
Vista and 7: Language packs can be installed via Windows Update for Ultimate and Enterprise editions. The display language can be changed via a combobox in the "Keyboards and Languages" tab of
intl.cpl. The mui files are installed under the
<LANGUAGE_NAME>\ directory in the directory where the module is located, with the filename
<MODULE_NAME_WITH_EXT>.mui. Unlike XP, most of the modules only contain the language-neutral resources instead of those native to the installed SKU TODO: What is a SKU?. Language-specific resources are all inside the MUI files. Despite this, the language of the installed SKU is still a thing for backwards-compatibility. [Citation Needed]
Microsoft apparently has a patent on this: US Patent 6252589
A file in the PE executable format, except only containing resources.
TODO: Document more on this and the differences for before and after Vista.
User Locale, System Locale, UI Language
Note: I am unsure if the information here is accurate.
Date formats, number formats, digit substitution, etc., for the current user or "system wide".
When the setting is applied "system wide", it is actually applied to the following user profiles:
- The NetworkService profile
- The LocalService profile
- The Default User profile (used as the template for all new user accounts created on the machine)
- The .DEFAULT profile (used for the LocalSystem account)
SetLocaleInfo to set it.
Also called "Language for non-Unicode programs" under
intl.cpl since XP.
Sets the ACP, OEMCP and MACCP. Also changes stuff about font linking and font substitution. Not sure if it fiddles with the input languages and IMEs.
GDI loads localized font names according to this setting.
The language that the UI is displayed in. Affects resource loading. See #MUI
It can also be set for the current user and "system wide" like the user locale.
HKCU\Control Panel\Desktop\MultiUILanguageId and
MUILanguagePending (Note: Only applies when MUI packs are installed.)
Installed MUI languages are under
HKLM\SYSTEM\CurrentControlSet\Control\Nls\MUILanguage, with the 4-digit LCID as subkey name and value "1".
When MUI packs are installed, without these two subkeys the UI language will be English. I tried changing multiple registry settings (including
InstalledLanguage) but it is still English. Not sure where language-specific SKUs takes the language setting from.