Multilingual User Interface

Comparison of Windows 7 Start Menu with English selected in the left image, and Japanese selected in the right.

Multilingual User Interface (MUI) enables the localization of the user interface of an application.

MUI is provided by Microsoft as an integrated feature of its operating system Windows 11 down to Windows 2000 with some limitations in older versions.

MUI is used for localizing flagship Microsoft products Microsoft Windows and Microsoft Office and as an open technology can be used in any application that runs in a version of Windows that supports MUI.

The core feature of MUI is the user-defined, system settings for preferred language that can be used/shared by all applications on a computer. The next most core feature is system functions (i.e. LoadString) that use this preference to load user interface assets at runtime from resources in the user's preferred language. To be MUI-enabled, an application need only store user interface assets as language-specific resources and use LoadStrIng to load them at runtime.

MUI also supports storing user interface assets as separate, single-language files which provides for development and deployment flexibility. This feature is optional. The resources can be stored in the application binary.

MUI also provides system functions that allow for custom and extended localization behavior.

## Contents

* 1 Overview
* 1.1 Terminology
* 1.2 Language Preferences
* 1.3 Resource Storage
* 1.4 Resource Retrieval
* 1.5 Non-Resource Storage and Retrieval
* 1.6 Other Aspects
* 2 Implementing
* 3 Advantages over Localized Version
* 4 History
* 4.1 Windows 2000 and Windows XP
* 4.1.1 Languages in Windows XP
* 4.1.1.1 Set 1
* 4.1.1.2 Set 2
* 4.1.1.3 Set 3
* 4.1.1.4 Set 4
* 4.1.1.5 Set 5
* 4.2 Windows Vista
* 4.3 Windows 7
* 4.3.1 List of languages in Windows 7 (PC)
* 4.3.2 List of languages in Windows Phone 7
* 4.4 Windows 8/8.1/RT
* 4.5 Windows 10
* 5 Supported languages
* 5.1 PC
* 5.2 Mobile
* 6 Patent
* 7 See also
* 8 References

## Overview

The MUI technology[1] is integrated into the Windows OS and can be leveraged in an application by storing localizable assets as resources in a prescribed way and using MUI-enabled win32 functions to read the resources.

A relatively simple implementation of MUI in an application stores the strings of each language in a string-table resource of the binary file and uses the win32 function LoadString to load strings at runtime. No other MUI related configuration or code is required. The following optional capabilities of MUI can be implemented if desired:

* Store the resources of each language in a separate DLL in order to enable deployment/installation flexibility
* An application can use dedicated MUI functions to provide more control of localizable asset consumption such as using a language other than the system-defined user preference
* Localizable assets can be stored in a format other than resource

The design of MUI attempts to provide a common way to store application localization information that alleviates limitations of more traditional and monolithic designs for localization such as including all languages in the application logic files (i.e. resources). With MUI, the following deployment scenarios are possible:

* Add support for a language by installing only languages files -- without modifying application logic or other language files
* Add new features and fix bugs by installing only application logic files -- without modifying the installed language files

### Terminology

The following MUI related terms are either used in or derived from the Microsoft documentation.

Language-neutral (LN): Describes something that conveys a meaning regardless of the languages of the viewer, such as an image without text or other localizable aspects

LN resource: a resource that is shared by and installed for all language versions of the application

LN file: Windows binary containing the application logic and language-neutral resources

Language-specific (LS): Describes something that has significantly different meaning based on the languages of the viewer. The most common LS items are interface strings but can be other items such as an image with text in it

LS resource file: A set of resources localized for one language; a.k.a. MUI file

When localizing your content, multilingual seo services consider the cultural nuances and preferences of each target market. Tailor your messaging, tone, and imagery to align with the local culture. Incorporating local keywords naturally within the content helps improve its visibility in local search results.read more. https://webkeydigital.com/multilingual-seo-services/

### Language Preferences

A language selection is stored by the system for the system (shared by all users and maybe used as default for a new user) and for each user. These selections can be modified by the user via the system Control Panel but cannot be modified by an application.

These preferences control the language that the OS uses for UI elements. Applications can also use these preferences, and via MUI-enabled system functions (such as LoadString) the use is automatic and transparent (requires no MUI-specific code to use). But use of these preferences is optional and customizable. An application can be designed to ignore the language preferences. Or it may use them in ways other than that provided by MUI-enabled system functions.

An application can use MUI functions[2] to read language preferences -- that default to the user selection [assumed] and are a list of languages in preference order. These preferences are provided at the system, user, process and thread levels [assumed that changing at a higher level modifies the preferences for lower levels].

An application can modify these language preference lists (via SetThreadPreferredUILanguages and other functions) in order to influence the behavior of MUI. For example:

std::string languageIdSpec = "en-US";
languageIdSpec.push_back('\0'); // must be double-null terminated
ULONG langCount = 1;
if (!::SetThreadPreferredUILanguages(MUI_LANGUAGE_NAME, languageIdSpec.c_str(), &langCount))
throw std::runtime_error("Unable to set thread preferred UI language.");

### Resource Storage

MUI provides support for localized resources stored in Windows binary (a.k.a. Win32 PE) files (DLL, EXE, SYS) -- usually DLL files.

The resources for a language can either be stored in the application binary or in a MUI (a.k.a. LS) file -- one per language. For MUI to find resources, a MUI file must be in the same directory as its associated LN file and be named the same as the LN file plus ".LCID.mui". For example, for LN file my-lib.dll, the MUI file for en-US would be named my-lib.dll.0409.mui.

String resources are coded as string table like so:

LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
1 L"message text"
END

### Resource Retrieval

Several win32 functions that read application resources are MUI-enabled, including LoadString, FormatMessage, and LoadImage.[3]

Each function attempts to read a resource for a language as selected by global language preferences, from application resources or associated MUI files (co-located with LN file and following naming convention). Each uses the global language preferences to choose a language that is available. If loading the resource for the first preferred language fails either because the MUI file does not exist or the resource does not exist in the MUI file, the function will try the next preferred language and so on until all preferences have been tried. If load fails for all preferred languages, then tries the LN file.

The most commonly used function is LoadString which loads strings from a string-table resource. Example using LoadString:

wchar_t* resourceCharArray;
int resourceLength = ::LoadStringW(_moduleHandle, resourceId, (LPWSTR)&resourceCharArray, 0);
if (!resourceLength)
throw std::runtime_error("Unable to find resource.");
std::wstring text;
text.append(resourceCharArray, resourceLength);

This retrieves the address of the resource text character buffer which is not guaranteed to be null terminated. Then, this copies the characters to a std::string and its c_str() method is guaranteed to be null terminated. Therefore, there is no need to append a null. Another option is to have LoadString copy the string to a passed buffer, but that requires using a fixed-length buffer which has downsides like usually allocating more than needed or truncation if too short.

Oddly, MS documentation for LoadString does not mention its interaction with MUI -- use of language preference.

FormatMessage is also MUI-enabled. Its function reference page describes its interaction with the user's language preference when parameter dwLanguageId is passed as 0. But FormatMessage reads from a message table, not a string table and as Raymond Chen says, "nobody actually uses message tables".[4]

### Non-Resource Storage and Retrieval

MS documentation recommends storing UI assets as resources since MUI fully supports retrieving from this storage, but it notes that MUI supports any other file format, such as XML, JSON or flat text file.[5] This implies that using the resource retrieval aspect of MUI is not required for an application to be MUI-enabled. An application can use its own, custom UI asset retrieval logic.

To be MUI-enabled, the application must use the system language preferences. The custom UI asset retrieval logic might optionally use the MUI function GetFileMUIPath to leverage the MUI file location and naming conventions.

### Other Aspects

The MS MUI documentation describes the following concepts, but it is unclear how they relate to MUI and what value they offer:

* Resource Configuration File[6]
* Registry String Redirection[7]

## Implementing

Basic tasks to support/implement MUI:

* Use LoadString in the application code to read resources; it uses user preference, system settings to read resources that are in the language that is most preferred by the user based on availability
* Author resource source code (RC) for each language; recommended to store each language in a separate RC file

Upon completing the basic tasks, an application is MUI-enabled. But there are other features of MUI that an application can optionally take advantage of.

The basic tasks imply storing all languages in the resources of the application binary -- which means it is not language neutral. This structure provides all runtime localization benefits of MUI and simple, single-file deployment but does not allow for deployment flexibility that MUI provides. In order to take advantage of the deployment flexibility:

* Configure the application binary project to exclude all LS resources -- making it the LN file
* Configure project(s) to build each language to a resource DLL; named the same as the LN file + "LCID.mui" -- MUI files
* Deploy/install MUI files in same directory as the LN file

To store localized assets in formats other than resource, the application must implement a mechanism for reading assets at runtime based on the language preference system settings (see GetThreadUILanguage). In other words, the application loads UI assets based on the system language preference settings without using LoadString. The application might leverage the MUI file-per-language location and naming convention by using GetFileMUIPath.

## Advantages over Localized Version

The MUI technology was developed in response and as an improvement to localized versions \-- an older technology for globalizing and deploying software packages. This section describes the differences and advantages of MUI over localized versions.

Windows localized via a MUI pack achieves the same goal as a localized version, but there are key differences. While both display menus and dialogs in the targeted language, only a localized version uses translated file and folder names. [what does this mean? some special folders are localizable (Documents, Downloads, ...) but a user created file/folder is not localizable (by the OS). Doesn't a language pack localize the special folder names? What else could it do?]

A localized version of Windows translates the base operating system, as well as all included programs [what programs?], including file and folder names [so it does localize file/folder names. this contradicts above], objects names [what's an object?], strings in registry [really? what strings?], and any other internal strings used by Windows into a particular language. Localized versions of Windows support upgrading from a previous localized version and user interface resources are completely localized, which is not the case for MUI versions of a product. [what is not the case for MUI?]

A MUI version does not contain translated administrative functions such as registry entries [registry entries are functions?] and items in Microsoft Management Console.

One advantage of a MUI version is that each user of a computer can use a different language.[8] For a localized version of the OS, this is not possible. It may be possible for localized applications but requires installing multiple versions; one for each language, and this may lead to application storage space and side-by-side installation issues. With MUI, the single version supports multiple languages, and the OS and applications use the user's preferred language. Further, the same OS can host an application that uses any of the application's supported languages which may be different than the OS selected language and even a language that's not supported by the OS.

## History

MUI was introduced with Windows 2000 and is supported in each subsequent Windows release.

### Windows 2000 and Windows XP

MUI products for these versions were available only through volume agreements from Microsoft. They were not available through retail channels. However, some OEMs distributed the product.[citation needed]

#### Languages in Windows XP

Up to Windows XP, MUI packs for a product are applied on top of an English version to provide a localized user experience. There are a total of 5 sets of MUI packs.

##### Set 1

* Deutsch \- German
* Français \- French
* 한국어 \- Korean
* 中文 (简体) \- Chinese (Simplified)
* 中文 (繁體) \- Chinese (Traditional)
* 日本語 \- Japanese

##### Set 2

* Español \- Spanish
* Italiano \- Italian
* Nederlands \- Dutch
* Português (Brasil) \- Portuguese (Brazil)
* Svenska \- Swedish
* עברית \- Hebrew
* العربية \- Arabic

##### Set 3

* Čeština \- Czech
* Dansk \- Danish
* Norsk bokmål \- Norwegian Bokmål
* Suomi \- Finnish
* Русский \- Russian

##### Set 4

* Magyar \- Hungarian
* Polski \- Polish
* Português (Portugal) \- Portuguese (Portugal)
* Türkçe \- Turkish
* Ελληνικά \- Greek

##### Set 5

* Eesti \- Estonian
* Hrvatski \- Croatian
* Latviešu \- Latvian
* Lietuvių \- Lithuanian
* Română \- Romanian
* Slovenčina \- Slovak
* Slovenščina \- Slovenian
* Български \- Bulgarian
* ไทย \- Thai

### Windows Vista

Windows Vista enhanced MUI technology to separate the English resources from the application logic binary files. The application logic files are now language-neutral a.k.a. language-independent. In other words, the application logic files are no longer English-centric. This separation allows for changing languages completely without changing the core binaries of Windows, and to have multiple languages installed using the same application logic binaries. Languages are applied as language packs containing the resources required to localize part of or the entire user interface in Windows Vista.

MUI packs are available to Windows Vista Enterprise users and as an Ultimate Extras to Windows Vista Ultimate users.

Beginning with Windows Vista, the set of associated MUI APIs are also made available to developers for application development. [This allows anyone to use the MUI technology?]

At launch, the following 16 language packs were released:

* Dansk \- Danish
* Deutsch \- German
* English \- English
* Español \- Spanish
* Français \- French
* Italiano \- Italian
* Nederlands \- Dutch
* Norsk bokmål \- Norwegian Bokmål
* Português (Brasil) \- Portuguese (Brazil)
* Suomi \- Finnish
* Svenska \- Swedish
* Русский \- Russian
* 한국어 \- Korean
* 中文 (简体) \- Chinese (Simplified)
* 中文 (繁體) \- Chinese (Traditional)
* 日本語 \- Japanese

On October 23, 2007, the remaining 19 language packs were released:

* Čeština \- Czech
* Eesti \- Estonian
* Hrvatski \- Croatian
* Latviešu \- Latvian
* Lietuvių \- Lithuanian
* Magyar \- Hungarian
* Polski \- Polish
* Português (Portugal) \- Portuguese (Portugal)
* Română \- Romanian
* Slovenčina \- Slovak
* Slovenščina \- Slovenian
* Srpski \- Serbian (Latin)
* Türkçe \- Turkish
* Ελληνικά \- Greek
* Български \- Bulgarian
* Українська \- Ukrainian
* עברית \- Hebrew
* العربية \- Arabic
* ไทย \- Thai

### Windows 7

MUI is available to Windows 7 Enterprise and Ultimate edition users, as well as Windows Phone 7.

Beginning with Windows 7, Microsoft started referring to a "MUI pack" as a "Language Pack"; not to be confused with a Language Interface Pack (LIP).[9]

#### List of languages in Windows 7 (PC)

At launch, the following 15 language packs were released[10] (Chinese (Hong Kong) is not available on mobile):

* Deutsch \- German
* English (United Kingdom) \- English (United Kingdom)
* English (United States) \- English (United States)
* Español \- Spanish
* Français \- French
* Italiano \- Italian
* Nederlands \- Dutch
* Polski \- Polish
* Português (Brasil) \- Portuguese (Brazil)
* Русский \- Russian
* 한국어 \- Korean
* 中文 (简体) \- Chinese (Simplified)
* 中文 (繁體) \- Chinese (Traditional)
* 中文 (香港) \- Chinese (Hong Kong)
* 日本語 \- Japanese

On October 31, 2009, the remaining 22 language packs were released (Estonian, Croatian, Latvian, Lithuanian, Romanian, Slovak, Slovenian, Serbian, Bulgarian, Hebrew, Arabic, and Thai are not available on mobile):

* Čeština \- Czech
* Dansk \- Danish
* Eesti \- Estonian
* Hrvatski \- Croatian
* Latviešu \- Latvian
* Lietuvių \- Lithuanian
* Magyar \- Hungarian
* Norsk bokmål \- Norwegian Bokmål
* Português (Portugal) \- Portuguese (Portugal)
* Română \- Romanian
* Slovenčina \- Slovak
* Slovenščina \- Slovenian
* Srpski \- Serbian (Latin)
* Suomi \- Finnish
* Svenska \- Swedish
* Türkçe \- Turkish
* Ελληνικά \- Greek
* Български \- Bulgarian
* Українська \- Ukrainian
* עברית \- Hebrew
* العربية \- Arabic
* ไทย \- Thai

#### List of languages in Windows Phone 7

At launch, only six languages were supported.

* Deutsch \- German
* English (United Kingdom) \- English (United Kingdom)
* English (United States) \- English (United States)
* Español \- Spanish
* Français \- French
* Italiano \- Italian

With the launch of Windows Phone 7.5 on September 27, 2011, twenty more languages are added (Turkish and Ukrainian are not supported as display languages until Windows Phone 8).[11] The first LIPs for Windows Phone 7 were Indonesian and Malay with the Tango update.[12]

* Bahasa Indonesia \- Indonesian
* Bahasa Melayu \- Malay
* Čeština \- Czech
* Dansk \- Danish
* Magyar \- Hungarian
* Nederlands \- Dutch
* Norsk bokmål \- Norwegian Bokmål
* Polski \- Polish
* Português (Brasil) \- Portuguese (Brazil)
* Português (Portugal) \- Portuguese (Portugal)
* Suomi \- Finnish
* Svenska \- Swedish
* Türkçe \- Turkish
* Ελληνικά \- Greek
* Русский \- Russian
* Українська \- Ukrainian
* 한국어 \- Korean
* 中文 (简体) \- Chinese (Simplified)
* 中文 (繁體) \- Chinese (Traditional)
* 日本語 \- Japanese

### Windows 8/8.1/RT

Beginning with Windows 8/RT, most editions of Windows are able to download and install all Language Packs,[13] with a few exceptions:

* In Single Language editions of Windows, only one language pack is allowed to be installed, [14] the same behavior as editions of Windows 7 and earlier that are not Enterprise or Ultimate.
* In OEM editions of Windows, the exact language packs that are preinstalled/available for download depend on the device manufacturer and country/region of purchase (and the mobile operator for devices with cellular connectivity). This is a mixture of a local-market feature and a feature for everyone everywhere. There may be multiple display languages preinstalled on the device by the manufacturer and/or wireless carrier, but each manufacturer and/or wireless carrier installs two different sets of languages: one set of preloaded languages and one set of languages that can be installed by the end user. This rule is currently used in Windows Phones as of Windows Phone 7[15] and PCs as of Windows 8 (since Windows 8 and Windows Phone 8 share the same Windows NT kernel) and was later dropped in Windows 10 version 1803, but was later quietly reinstated as of Windows 10 version 1809. An end user could install a retail license on top of an OEM license by performing a clean install through the Media Creation Tool to circumvent the region locking and install any display language that they want.
* The Windows update process does not affect the currently installed display languages in any way, but it may give the end user access to newly released language packs made available by the OEM (PCs only). However, when installing a new feature update, it may change the display language back to the one set during the initial setup process. For example, if the Samsung ATIV Smart PC on AT&T is upgraded from Windows 8.1 to Windows 10 Anniversary Update (not necessarily done in one go), it will now be able to install Portuguese (Brazil), Vietnamese, Chinese (Simplified and Traditional), and Japanese in addition to English, Spanish, French, German, Italian, and Korean (the last three languages can be downloaded by the end user at the time of its launch), just like with the Galaxy S8 series and the Verizon-based Galaxy Book.
* On the other hand, a Samsung Galaxy Book device does not support Afrikaans as a display language, because Samsung apps do not officially support Afrikaans.[16] Furthermore, cellular variants of the Galaxy Book laptops sold in North America support fewer display languages than their Wi-Fi-only counterparts, just like on their smartphones.
* Certain language packs like English (Australia) and English (Canada) are only supported on the Xbox consoles and the Surface Duo.
* Some LIP packs require certain MUI packs (base languages) to be present or compatible.[17] If that base language is not present or compatible, then that LIP cannot be installed on that device.

### Windows 10

Beginning with Windows 10 version 1803, Microsoft started using the term "Local Experience Pack" (LXP) in some places [store?] instead of the older term "Language Pack", but they work the same way.[18] In addition to installing via Windows Settings, these 110 LXPs are also available through the Microsoft Store (app and web); the latter enabling remote installation for consumer editions of Windows.[19] As with all applications from the Microsoft Store, only the LXPs that are compatible with that Windows device are shown in the Microsoft Store app.

An LXP is updated through the Microsoft Store; outside of the normal Windows update cycle.[20]

## Supported languages

Supported languages by OS version is as follows:

### PC

MUI Language Packs by Windows version  Language  | English name  | 2000  | XP  | Vista  | 7.0  | 7.1  | 8.0  | 8.1  | 10  | 11

|
|
|
|
|
|
|
|
|
|

العربية | Arabic  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Български | Bulgarian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Català | Catalan (Spain)  | No  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | Yes
Čeština | Czech  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Dansk | Danish  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Deutsch | German  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Ελληνικά | Greek  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
English (United Kingdom) | English (United Kingdom)  | No  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes
English (United States) | English (United States)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Español (España) | Spanish (Spain)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Español (México) | Spanish (Mexico)  | No  | No  | No  | No  | No  | No  | No  | Yes  | Yes
Eesti | Estonian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Euskara | Basque  | No  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | Yes
Suomi | Finnish  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Français (Canada) | French (Canada)  | No  | No  | No  | No  | No  | No  | No  | Yes  | Yes
Français (France) | French (France)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Galego | Galician  | No  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | Yes
עברית | Hebrew  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Hrvatski | Croatian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Magyar | Hungarian  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Indonesia | Indonesian  | No  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | Yes
Italiano | Italian  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
日本語 | Japanese  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
한국어 | Korean  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Lietuvių | Lithuanian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Latviešu | Latvian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Norsk bokmål | Norwegian Bokmål  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Nederlands | Dutch  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Polski | Polish  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Português (Brasil) | Portuguese (Brazil)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Português (Portugal) | Portuguese (Portugal)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Română | Romanian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Русский | Russian  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Slovenčina | Slovak  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Slovenščina | Slovenian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Srpski | Serbian (Latin)  | No  | LIP  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Svenska | Swedish  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
ไทย | Thai  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Türkçe | Turkish  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Українська | Ukrainian  | No  | LIP  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Tiếng Việt | Vietnamese  | No  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | LIP  | Yes
中文 (简体) | Chinese (Simplified)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
中文 (香港特別行政區) | Chinese (Hong Kong)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
中文 (繁體) | Chinese (Traditional)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Language Interface Packs by Windows version  Language  | English name  | Base language required  | XP  | Vista  | 7.0  | 7.1  | 8.0  | 8.1  | 10  | 11

|
|
|
|
|
|
|
|
|
|

Afrikaans | Afrikaans  | English  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
አማርኛ | Amharic  | English  |  |  | Yes  | Yes  |  |  |  |
অসমীয়া | Assamese  | English  |  |  | Yes  | Yes  |  |  |  |
Azərbaycan | Azerbaijani  | English  | Yes  |  | Yes  | Yes  |  |  |  |
Беларуская | Belarusian  | Russian  |  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
বাংলা (বাংলাদেশ) | Bangla (Bangladesh)  | English  |  |  | Yes  | Yes  |  |  |  |
বাংলা (ভারত) | Bangla (India)  | English  | Yes  |  | Yes  | Yes  |  |  |  |
Босански | Bosnian (Cyrillic)  | Russian  |  |  | Yes  | Yes  |  |  |  |
Bosanski | Bosnian (Latin)  | English  | Yes  |  | Yes  | Yes  |  |  |  |
Català | Catalan (Spain)  | English  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | MUI
Valencià | Catalan (Spain, Valencian)  | Spanish  |  |  |  |  |  |  |  |
ᏣᎳᎩ | Cherokee  | English  |  |  |  |  |  |  |  |
Cymraeg | Welsh  | English  | Yes  |  | Yes  | Yes  |  |  |  |
Euskara | Basque  | Spanish  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | MUI
فارسى | Persian (Iran)  | English  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Filipino | Filipino  | English  |  |  | Yes  | Yes  |  |  |  |
Gaeilge | Irish  | English  | Yes  |  |  | Yes  |  |  |  |
Gàidhlig | Scottish Gaelic  | English  |  |  |  |  |  |  |  |
Galego | Galician  | Spanish  | Yes  |  |  | Yes  |  |  |  | MUI
ગુજરાતી | Gujarati  | English  | Yes  |  |  | Yes  |  |  |  |
Hausa | Hausa  | English  |  |  |  | Yes  |  |  |  |
हिन्दी | Hindi  | English  | Yes  |  |  | Yes  |  |  | Yes  |
Հայերեն | Armenian  | English  | Yes  |  |  | Yes  |  |  |  |
Indonesia | Indonesian  | English  | Yes  |  |  | Yes  |  |  |  | MUI
Igbo | Igbo  | English  |  |  |  | Yes  |  |  |  |
Íslenska | Icelandic  | English  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
ᐃᓄᒃᑎᑐᑦ | Inuktitut  | English  | Yes  |  |  | Yes  |  |  |  |
ქართული | Georgian  | English  | Yes  |  |  | Yes  |  |  |  |
Қазақ тілі | Kazakh  | English  | Yes  |  |  | Yes  |  |  |  |
ខ្មែរ | Khmer  | English  |  |  |  | Yes  |  |  |  |
ಕನ್ನಡ | Kannada  | English  | Yes  |  |  | Yes  |  |  |  |
कोंकणी | Konkani  | English  | Yes  |  |  | Yes  |  |  |  |
کوردیی ناوەڕاست | Central Kurdish  | English  |  |  |  |  |  |  |  |
Кыргызча | Kyrgyz  | Russian  |  |  |  | Yes  |  |  |  |
Lëtzebuergesch | Luxembourgish  | French  | Yes  |  |  | Yes  |  |  |  |
ລາວ | Lao  | ???  |  |  |  |  |  |  |  |
Te reo Māori | Maori  | English  | Yes  |  |  | Yes  |  |  |  |
Македонски | Macedonian  | English  | Yes  |  |  | Yes  |  |  |  |
മലയാളം | Malayalam  | English  | Yes  |  |  | Yes  |  |  |  |
Монгол | Mongolian  | English  |  |  |  |  |  |  |  |
मराठी | Marathi  | English  | Yes  |  |  | Yes  |  |  |  |
Melayu (Brunei) | Malay (Brunei)  | English  |  |  |  | Yes  |  |  |  |
Melayu (Malaysia) | Malay (Malaysia)  | English  | Yes  |  |  | Yes  |  |  |  |
Malti | Maltese  | English  | Yes  |  |  | Yes  |  |  |  |
नेपाली | Nepali  | English  | Yes  |  |  | Yes  |  |  |  |
Norsk nynorsk | Norwegian Nynorsk  | Norwegian Bokmål  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Sesotho sa Leboa | Southern Sotho  | English  |  |  |  | Yes  |  |  |  |
ଓଡ଼ିଆ | Odia  | English  |  |  |  | Yes  |  |  |  |
پنجابی | Punjabi (Arabic, Pakistan)  | English  |  |  |  |  |  |  |  |
ਪੰਜਾਬੀ | Punjabi (Gurmukhi, India)  | English  | Yes  |  |  | Yes  |  |  |  |
درى | Persian (Afghanistan)  | English  |  |  | Yes  | Yes  |  |  |  |
K'iche' | K'iche'  | Spanish  |  |  |  |  |  |  |  |
Runasimi | Quechua  | Spanish  | Yes  |  |  | Yes  |  |  |  |
Kinyarwanda | Kinyarwanda  | English  |  |  |  |  |  |  |  |
سنڌي | Sindhi  | English  |  |  |  |  |  |  |  |
සිංහල | Sinhala  | English  |  |  |  |  |  |  |  |
Shqip | Albanian  | English  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Српски (Босна и Херцеговина) | Serbian (Bosnia & Herzegovina)  | English  |  |  |  |  |  |  |  |
Српски (Србија) | Serbian (Serbia)  | Serbian (Latin)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Kiswahili | Swahili  | English  | Yes  |  |  | Yes  |  |  |  |
தமிழ் | Tamil  | English  | Yes  |  |  | Yes  |  |  |  |
తెలుగు | Telugu  | English  | Yes  |  |  | Yes  |  |  |  |
Тоҷикӣ | Tajik  | Russian  |  |  |  |  |  |  |  |
ትግር | Tigrinya  | English  |  |  |  |  |  |  |  |
Türkmen dili | Turkmen  | Russian  |  |  |  |  |  |  |  |
Setswana | Tswana  | English  | Yes  |  |  |  |  |  |  |
Татар | Tatar  | Russian  | Yes  |  |  | Yes  |  |  |  |
ئۇيغۇرچە | Uyghur  | Chinese (Simplified)  |  |  |  |  |  |  |  |
اُردو | Urdu  | English  | Yes  |  |  | Yes  |  |  |  |
O‘zbek | Uzbek  | English  |  |  |  |  |  |  |  |
Tiếng Việt | Vietnamese  | English  | Yes  |  |  | Yes  |  |  |  | MUI
Wolof | Wolof  | French  |  |  |  |  |  |  |  |
IsiXhosa | Xhosa  | English  |  |  |  | Yes  |  |  |  |
Èdè Yorùbá | Yoruba  | English  |  |  |  |  |  |  |  |
IsiZulu | Zulu  | English  |  |  |  | Yes  |  |  |  |

### Mobile

The multilingual user interface for Windows Phones did not appear until version 7.0.

Language packs for the new Windows Phone platform  Language  | English name  | 7.0  | 7.5  | 7.7  | 7.8  | 8.0  | 8.0.2  | 8.1  | 8.1.2  | 10

|
|
|
|
|
|
|
|
|
|

Afrikaans | Afrikaans  | No  | No  | No  | No  | No  | No  | Yes  | Yes  | Yes
አማርኛ | Amharic  | No  | No  | No  | No  | No  | No  | No  | No  | Yes
العربية | Arabic  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Azərbaycan | Azerbaijani  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Беларуская | Belarusian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Български | Bulgarian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
বাংলা | Bangla  | No  | No  | No  | No  | No  | No  | No  | Yes  | Yes
Català | Catalan  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Čeština | Czech  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Dansk | Danish  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Deutsch | German  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Ελληνικά | Greek  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
English (United Kingdom) | English (United Kingdom)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
English (United States) | English (United States)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Español (España) | Spanish (Spain)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Español (México) | Spanish (Mexico)  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Eesti | Estonian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Euskara | Basque  | No  | No  | No  | No  | No  | No  | Yes  | Yes  | Yes
فارسى | Persian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Suomi | Finnish  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Filipino | Filipino  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Français (Canada) | French (Canada)  | No  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes
Français (France) | French (France)  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Galego | Galician  | Yes  | Yes  | Yes  | Yes  | Yes  | No  | Yes  | Yes  | Yes
Hausa | Hausa  | No  | No  | No  | No  | No  | No  | Yes  | Yes  | Yes
עברית | Hebrew  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
हिन्दी | Hindi  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Hrvatski | Croatian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Magyar | Hungarian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Indonesia | Indonesian  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Íslenska | Icelandic  | No  | No  | No  | No  | No  | No  | No  | No  | Yes
Italiano | Italian  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
日本語 | Japanese  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Қазақ тілі | Kazakh  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
ខ្មែរ | Khmer  | No  | No  | No  | No  | No  | No  | No  | Yes  | Yes
ಕನ್ನಡ | Kannada  | No  | No  | No  | No  | No  | No  | No  | No  | Yes
한국어 | Korean  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
ລາວ | Lao  | No  | No  | No  | No  | No  | No  | No  | Yes  | Yes
Lietuvių | Lithuanian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Latviešu | Latvian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Македонски | Macedonian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
മലയാളം | Malayalam  | No  | No  | No  | No  | No  | No  | No  | No  | Yes
Melayu | Malay  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Norsk bokmål | Norwegian Bokmål  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Nederlands | Dutch  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Polski | Polish  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Português (Brasil) | Portuguese (Brazil)  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Português (Portugal) | Portuguese (Portugal)  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Română | Romanian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Русский | Russian  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Slovenčina | Slovak  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Slovenščina | Slovenian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Shqip | Albanian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Srpski | Serbian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Svenska | Swedish  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Kiswahili | Swahili  | No  | No  | No  | No  | No  | No  | No  | Yes  | Yes
தமிழ் | Tamil  | No  | No  | No  | No  | No  | No  | No  | No  | Yes
తెలుగు | Telugu  | No  | No  | No  | No  | No  | No  | No  | No  | Yes
ไทย | Thai  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Türkçe | Turkish  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Українська | Ukrainian  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
O‘zbek | Uzbek  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
Tiếng Việt | Vietnamese  | No  | No  | No  | No  | Yes  | Yes  | Yes  | Yes  | Yes
中文 (简体) | Chinese (Simplified)  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
中文 (香港特別行政區) | Chinese (Hong Kong)  | No  | No  | No  | No  | No  | No  | Yes  | Yes  | Yes
中文 (繁體) | Chinese (Traditional)  | No  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes

## Patent

The MUI technology is covered by an international patent titled "Multilingual User Interface for an Operating System".[21] The inventors are Bjorn C. Rettig, Edward S. Miller, Gregory Wilson, and Shan Xu.

## See also

* Windows MUI Knowledge Center (archived)
* Windows Language Packs (Microsoft reference)
* Language Interface Pack (LIP)
* GNU gettext: both a UNIX system for localization and a function similar to LoadString

## References

1. ↑ Karl-Bridge-Microsoft. "Multilingual User Interface - Win32 apps" (in en-us). https://docs.microsoft.com/en-us/windows/win32/intl/multilingual-user-interface.
2. ↑ Karl-Bridge-Microsoft. "Multilingual User Interface Functions - Win32 apps" (in en-us). https://docs.microsoft.com/en-us/windows/win32/intl/multilingual-user-interface-functions.
3. ↑ Karl-Bridge-Microsoft. "Loading Language Resources - Win32 apps" (in en-us). https://docs.microsoft.com/en-us/windows/win32/intl/loading-language-resources.
4. ↑ Chen, Raymond (2008-02-29). "Why can't I get FormatMessage to load my resource string?" (in en-US). https://devblogs.microsoft.com/oldnewthing/20080229-00/?p=23263.
5. ↑ Karl-Bridge-Microsoft. "Supporting System Language Settings - Win32 apps" (in en-us). https://docs.microsoft.com/en-us/windows/win32/intl/supporting-system-language-settings.
6. ↑ Karl-Bridge-Microsoft. "Preparing a Resource Configuration File - Win32 apps" (in en-us). https://docs.microsoft.com/en-us/windows/win32/intl/preparing-a-resource-configuration-file.
7. ↑ Karl-Bridge-Microsoft. "Using Registry String Redirection - Win32 apps" (in en-us). https://docs.microsoft.com/en-us/windows/win32/intl/using-registry-string-redirection.
8. ↑ "About Multilingual User Interface". Microsoft. https://docs.microsoft.com/en-us/windows/win32/intl/about-multilingual-user-interface.
9. ↑ "How To Install Language Packs In Windows 7". The Windows Club. http://www.thewindowsclub.com/how-to-install-language-packs-in-windows-7.
10. ↑ Team, My Digital Life Editorial (2009-07-12). "Windows 7 RTM GA Launch and MSDN/TechNet Release Schedule Roadmap « My Digital Life" (in en-US). https://www.mydigitallife.net/windows-7-rtm-ga-launch-and-msdntechnet-release-schedule-roadmap/.
11. ↑ Blog, Windows Experience; McConnell, John (2011-07-06). "Windows Phone around the world: Language support in Mango" (in en-US). https://blogs.windows.com/windowsexperience/2011/07/06/windows-phone-around-the-world-language-support-in-mango/.
12. ↑ Blog, Windows Experience; Myerson, Terry (2012-02-27). "Windows Phone at Mobile World Congress 2012" (in en-US). https://blogs.windows.com/windowsexperience/2012/02/27/windows-phone-at-mobile-world-congress-2012/.
13. ↑ "Language packs are available for Windows 8 and Windows RT". Microsoft. https://support.microsoft.com/en-us/kb/2607607.
14. ↑ "Check whether your version of Windows supports multiple languages". https://support.microsoft.com/en-us/windows/check-whether-your-version-of-windows-supports-multiple-languages-eaf060a6-3642-4612-6b75-b34e57a08abf.
15. ↑ Blog, Windows Experience (2011-07-06). "Windows Phone around the world: Language support in Mango" (in en-US). https://blogs.windows.com/windowsexperience/2011/07/06/windows-phone-around-the-world-language-support-in-mango/.
16. ↑ "Get Samsung Notes" (in en-us). https://www.microsoft.com/en-us/p/samsung-notes/9nblggh43vhv.
17. ↑ "Language packs for Windows". https://support.microsoft.com/en-us/windows/language-packs-for-windows-a5094319-a92d-18de-5b53-1cfc697cfca8.
18. ↑ "Local Experience Packs: What are they and when should you use them?" (in en). 2018-11-14. https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Local-Experience-Packs-What-are-they-and-when-should-you-use/ba-p/286841.
19. ↑ "Local Experience Packs" (in en-us). https://www.microsoft.com/en-us/store/collections/localexperiencepacks?cat0=devices.
20. ↑ "Local Experience Packs". https://support.microsoft.com/en-us/windows/local-experience-packs-4cf70f83-bc24-00bc-8bc5-420d22963fef.
21. ↑ "Multilingual user interface for an operating system" US patent 6252589, published 2003-05-14

* v
* t
* e

Microsoft APIs and frameworks

Graphics|

* Desktop Window Manager
* Direct2D
* Direct3D
* D3D (extensions)
* GDI / GDI+
* WPF
* Silverlight
* WinRT XAML
* Windows Color System
* Windows Image Acquisition
* Windows Imaging Component
* DirectX Graphics Infrastructure (DXGI)
* Windows Advanced Rasterization Platform
* WinG

Audio|

* DirectMusic
* DirectSound
* DirectX plugin
* XACT
* Speech API
* XAudio2

Multimedia|

* DirectX
* Media Objects
* Video Acceleration
* Xinput
* DirectInput
* DirectShow
* Image Mastering API
* Managed DirectX
* Media Foundation
* XNA
* Windows Media
* Video for Windows

Web|

* MSHTML
* RSS Platform
* JScript
* VBScript
* BHO
* XDR
* SideBar Gadgets
* TypeScript

Data access|

* Data Access Components (MDAC)
* ADO
* ADO.NET
* ODBC
* OLE DB
* Extensible Storage Engine
* Entity Framework
* Sync Framework
* Jet Engine
* MSXML
* OPC

Networking|

* Winsock
* LSP
* Winsock Kernel
* Filtering Platform
* NDIS
* Windows Rally
* BITS
* P2P API
* MSMQ
* MS MPI
* DirectPlay

Communication|

* Messaging API
* Telephony API
* WCF

Administration and
management|

* Win32 console
* Windows Script Host
* WMI (extensions)
* PowerShell
* Task Scheduler
* Offline Files
* Shadow Copy
* Windows Installer
* Error Reporting
* Event Log
* Common Log File System

Component model|

* COM
* COM+
* ActiveX
* Distributed Component Object Model
* .NET Framework

Libraries|

* Framework Class Library
* Microsoft Foundation Classes (MFC)
* Active Template Library (ATL)
* Windows Template Library (WTL)

Device drivers|

* WDM
* WDF
* KMDF
* UMDF
* WDDM
* NDIS
* UAA
* BDA
* VxD

Security|

* Crypto API
* CAPICOM
* Windows CardSpace
* Data Protection API
* Security Support Provider Interface (SSPI)

.NET|

* ASP.NET
* ADO.NET
* Remoting
* Silverlight
* TPL
* WCF
* WCS
* WPF
* WF

Software factories|

* EFx Factory
* Enterprise Library
* Composite UI
* CCF
* CSF

IPC|

* MSRPC
* Dynamic Data Exchange (DDE)
* Remoting
* WCF

Accessibility|

* Active Accessibility
* UI Automation

Text and multilingual
support|

* DirectWrite
* Text Services Framework
* Text Object Model
* Input method editor
* Language Interface Pack
* Multilingual User Interface
* Uniscribe

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Multilingual User Interface. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Multilingual_User_Interface&oldid=768859"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template