Difference between revisions of "User:Alvinhochun/Localization"
Alvinhochun (talk | contribs) (→UI Language) |
Alvinhochun (talk | contribs) (→UI Language) |
||
Line 52: | Line 52: | ||
Registry location: <code>HKCU\Control Panel\Desktop\MultiUILanguageId</code> and <code>MUILanguagePending</code> ''(Note: Only applies when MUI packs are installed.)'' | Registry location: <code>HKCU\Control Panel\Desktop\MultiUILanguageId</code> and <code>MUILanguagePending</code> ''(Note: Only applies when MUI packs are installed.)'' | ||
+ | |||
+ | Installed MUI languages are under <code>HKLM\SYSTEM\CurrentControlSet\Control\Nls\MUILanguage</code>, 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 <code>InstalledLanguage</code>) but it is still English. Not sure where language-specific SKUs takes the language setting from. | When MUI packs are installed, without these two subkeys the UI language will be English. I tried changing multiple registry settings (including <code>InstalledLanguage</code>) but it is still English. Not sure where language-specific SKUs takes the language setting from. |
Revision as of 15:04, 13 May 2015
My notes on Internationalization and Localization.
Contents
Sub-topics
- Font Engine
- GDI Font Linking
- IME
Uniscribe(Not sure if I will cover this)
Glossary
MUI
Short for Multilingual User Interface.
XP: MUI Pack(s) can be installed only on 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 edition. 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 owns a patent on this: US Patent 6252589
MUI file
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.
User Locale
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[1]:
- 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)
Registry location: HKCU\Control Panel\International\Locale
System Locale
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.
Registry location: HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language\Default
UI Language
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.
Registry location: 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.