Multilingual User Interface

Last updated
Comparison of Windows 7 Start Menu with English selected in the left image, and Japanese selected in the right. MUI Vista.PNG
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.

Contents

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.

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:

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:

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

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:

Implementing

Basic tasks to support/implement MUI:

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:

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:

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
LanguageEnglish name2000XPVista7.07.18.08.11011
العربيةArabicYesYesYesYesYesYesYesYesYes
БългарскиBulgarianNoYesYesYesYesYesYesYesYes
CatalàCatalan (Spain)NoLIPLIPLIPLIPLIPLIPLIPYes
ČeštinaCzechYesYesYesYesYesYesYesYesYes
DanskDanishYesYesYesYesYesYesYesYesYes
DeutschGermanYesYesYesYesYesYesYesYesYes
ΕλληνικάGreekYesYesYesYesYesYesYesYesYes
English (United Kingdom)English (United Kingdom)NoNoNoNoNoYesYesYesYes
English (United States)English (United States)YesYesYesYesYesYesYesYesYes
Español (España)Spanish (Spain)YesYesYesYesYesYesYesYesYes
Español (México)Spanish (Mexico)NoNoNoNoNoNoNoYesYes
EestiEstonianNoYesYesYesYesYesYesYesYes
EuskaraBasqueNoLIPLIPLIPLIPLIPLIPLIPYes
SuomiFinnishYesYesYesYesYesYesYesYesYes
Français (Canada)French (Canada)NoNoNoNoNoNoNoYesYes
Français (France)French (France)YesYesYesYesYesYesYesYesYes
GalegoGalicianNoLIPLIPLIPLIPLIPLIPLIPYes
עבריתHebrewYesYesYesYesYesYesYesYesYes
HrvatskiCroatianNoYesYesYesYesYesYesYesYes
MagyarHungarianYesYesYesYesYesYesYesYesYes
IndonesiaIndonesianNoLIPLIPLIPLIPLIPLIPLIPYes
ItalianoItalianYesYesYesYesYesYesYesYesYes
日本語JapaneseYesYesYesYesYesYesYesYesYes
한국어KoreanYesYesYesYesYesYesYesYesYes
LietuviųLithuanianNoYesYesYesYesYesYesYesYes
LatviešuLatvianNoYesYesYesYesYesYesYesYes
Norsk bokmålNorwegian BokmålYesYesYesYesYesYesYesYesYes
NederlandsDutchYesYesYesYesYesYesYesYesYes
PolskiPolishYesYesYesYesYesYesYesYesYes
Português (Brasil)Portuguese (Brazil)YesYesYesYesYesYesYesYesYes
Português (Portugal)Portuguese (Portugal)YesYesYesYesYesYesYesYesYes
RomânăRomanianNoYesYesYesYesYesYesYesYes
РусскийRussianYesYesYesYesYesYesYesYesYes
SlovenčinaSlovakNoYesYesYesYesYesYesYesYes
SlovenščinaSlovenianNoYesYesYesYesYesYesYesYes
SrpskiSerbian (Latin)NoLIPYesYesYesYesYesYesYes
SvenskaSwedishYesYesYesYesYesYesYesYesYes
ไทยThaiNoYesYesYesYesYesYesYesYes
TürkçeTurkishYesYesYesYesYesYesYesYesYes
УкраїнськаUkrainianNoLIPYesYesYesYesYesYesYes
Tiếng ViệtVietnameseNoLIPLIPLIPLIPLIPLIPLIPYes
中文 (简体)Chinese (Simplified)YesYesYesYesYesYesYesYesYes
中文 (香港特別行政區)Chinese (Hong Kong)YesYesYesYesYesYesYesYesYes
中文 (繁體)Chinese (Traditional)YesYesYesYesYesYesYesYesYes
Language Interface Packs by Windows version
LanguageEnglish nameBase language requiredXPVista7.07.18.08.11011
AfrikaansAfrikaansEnglishYesYesYesYesYesYesYesYes
አማርኛAmharicEnglishYesYes
অসমীয়াAssameseEnglishYesYes
AzərbaycanAzerbaijaniEnglishYesYesYes
БеларускаяBelarusianRussianYesYesYesYesYesYesYes
বাংলা (বাংলাদেশ)Bangla (Bangladesh)EnglishYesYes
বাংলা (ভারত)Bangla (India)EnglishYesYesYes
БосанскиBosnian (Cyrillic)RussianYesYes
BosanskiBosnian (Latin)EnglishYesYesYes
CatalàCatalan (Spain)EnglishYesYesYesYesYesYesYesMUI
ValenciàCatalan (Spain, Valencian)Spanish
ᏣᎳᎩCherokeeEnglish
CymraegWelshEnglishYesYesYes
EuskaraBasqueSpanishYesYesYesYesYesYesYesMUI
فارسىPersian (Iran)EnglishYesYesYesYesYesYesYesYes
FilipinoFilipinoEnglishYesYes
GaeilgeIrishEnglishYesYes
GàidhligScottish GaelicEnglish
GalegoGalicianSpanishYesYesMUI
ગુજરાતીGujaratiEnglishYesYes
HausaHausaEnglishYes
हिन्दीHindiEnglishYesYesYes
ՀայերենArmenianEnglishYesYes
IndonesiaIndonesianEnglishYesYesMUI
IgboIgboEnglishYes
ÍslenskaIcelandicEnglishYesYesYesYesYesYesYesYes
ᐃᓄᒃᑎᑐᑦInuktitutEnglishYesYes
ქართულიGeorgianEnglishYesYes
Қазақ тіліKazakhEnglishYesYes
ខ្មែរKhmerEnglishYes
ಕನ್ನಡKannadaEnglishYesYes
कोंकणीKonkaniEnglishYesYes
کوردیی ناوەڕاستCentral KurdishEnglish
КыргызчаKyrgyzRussianYes
LëtzebuergeschLuxembourgishFrenchYesYes
ລາວLao???
Te reo MāoriMaoriEnglishYesYes
МакедонскиMacedonianEnglishYesYes
മലയാളംMalayalamEnglishYesYes
МонголMongolianEnglish
मराठीMarathiEnglishYesYes
Melayu (Brunei)Malay (Brunei)EnglishYes
Melayu (Malaysia)Malay (Malaysia)EnglishYesYes
MaltiMalteseEnglishYesYes
नेपालीNepaliEnglishYesYes
Norsk nynorskNorwegian NynorskNorwegian BokmålYesYesYesYesYesYesYesYes
Sesotho sa LeboaSouthern SothoEnglishYes
ଓଡ଼ିଆOdiaEnglishYes
پنجابیPunjabi (Arabic, Pakistan)English
ਪੰਜਾਬੀPunjabi (Gurmukhi, India)EnglishYesYes
درىPersian (Afghanistan)EnglishYesYes
K'iche'K'iche'Spanish
RunasimiQuechuaSpanishYesYes
KinyarwandaKinyarwandaEnglish
سنڌيSindhiEnglish
සිංහලSinhalaEnglish
ShqipAlbanianEnglishYesYesYesYesYesYesYesYes
Српски (Босна и Херцеговина)Serbian (Bosnia & Herzegovina)English
Српски (Србија)Serbian (Serbia)Serbian (Latin)YesYesYesYesYesYesYesYes
KiswahiliSwahiliEnglishYesYes
தமிழ்TamilEnglishYesYes
తెలుగుTeluguEnglishYesYes
ТоҷикӣTajikRussian
ትግርTigrinyaEnglish
Türkmen diliTurkmenRussian
SetswanaTswanaEnglishYes
ТатарTatarRussianYesYes
ئۇيغۇرچەUyghurChinese (Simplified)
اُردوUrduEnglishYesYes
O‘zbekUzbekEnglish
Tiếng ViệtVietnameseEnglishYesYesMUI
WolofWolofFrench
IsiXhosaXhosaEnglishYes
Èdè YorùbáYorubaEnglish
IsiZuluZuluEnglishYes

Mobile

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

Language packs for the new Windows Phone platform
LanguageEnglish name7.07.57.77.88.08.0.28.18.1.210
AfrikaansAfrikaansNoNoNoNoNoNoYesYesYes
አማርኛAmharicNoNoNoNoNoNoNoNoYes
العربيةArabicNoNoNoNoYesYesYesYesYes
AzərbaycanAzerbaijaniNoNoNoNoYesYesYesYesYes
БеларускаяBelarusianNoNoNoNoYesYesYesYesYes
БългарскиBulgarianNoNoNoNoYesYesYesYesYes
বাংলাBanglaNoNoNoNoNoNoNoYesYes
CatalàCatalanNoNoNoNoYesYesYesYesYes
ČeštinaCzechNoYesYesYesYesYesYesYesYes
DanskDanishNoYesYesYesYesYesYesYesYes
DeutschGermanYesYesYesYesYesYesYesYesYes
ΕλληνικάGreekNoYesYesYesYesYesYesYesYes
English (United Kingdom)English (United Kingdom)YesYesYesYesYesYesYesYesYes
English (United States)English (United States)YesYesYesYesYesYesYesYesYes
Español (España)Spanish (Spain)YesYesYesYesYesYesYesYesYes
Español (México)Spanish (Mexico)NoNoNoNoYesYesYesYesYes
EestiEstonianNoNoNoNoYesYesYesYesYes
EuskaraBasqueNoNoNoNoNoNoYesYesYes
فارسىPersianNoNoNoNoYesYesYesYesYes
SuomiFinnishNoYesYesYesYesYesYesYesYes
FilipinoFilipinoNoNoNoNoYesYesYesYesYes
Français (Canada)French (Canada)NoNoNoNoNoYesYesYesYes
Français (France)French (France)YesYesYesYesYesYesYesYesYes
GalegoGalicianYesYesYesYesYesNoYesYesYes
HausaHausaNoNoNoNoNoNoYesYesYes
עבריתHebrewNoNoNoNoYesYesYesYesYes
हिन्दीHindiNoNoNoNoYesYesYesYesYes
HrvatskiCroatianNoNoNoNoYesYesYesYesYes
MagyarHungarianNoYesYesYesYesYesYesYesYes
IndonesiaIndonesianNoNoYesYesYesYesYesYesYes
ÍslenskaIcelandicNoNoNoNoNoNoNoNoYes
ItalianoItalianYesYesYesYesYesYesYesYesYes
日本語JapaneseNoYesYesYesYesYesYesYesYes
Қазақ тіліKazakhNoNoNoNoYesYesYesYesYes
ខ្មែរKhmerNoNoNoNoNoNoNoYesYes
ಕನ್ನಡKannadaNoNoNoNoNoNoNoNoYes
한국어KoreanNoYesYesYesYesYesYesYesYes
ລາວLaoNoNoNoNoNoNoNoYesYes
LietuviųLithuanianNoNoNoNoYesYesYesYesYes
LatviešuLatvianNoNoNoNoYesYesYesYesYes
МакедонскиMacedonianNoNoNoNoYesYesYesYesYes
മലയാളംMalayalamNoNoNoNoNoNoNoNoYes
MelayuMalayNoNoYesYesYesYesYesYesYes
Norsk bokmålNorwegian BokmålNoYesYesYesYesYesYesYesYes
NederlandsDutchNoYesYesYesYesYesYesYesYes
PolskiPolishNoYesYesYesYesYesYesYesYes
Português (Brasil)Portuguese (Brazil)NoYesYesYesYesYesYesYesYes
Português (Portugal)Portuguese (Portugal)NoYesYesYesYesYesYesYesYes
RomânăRomanianNoNoNoNoYesYesYesYesYes
РусскийRussianNoYesYesYesYesYesYesYesYes
SlovenčinaSlovakNoNoNoNoYesYesYesYesYes
SlovenščinaSlovenianNoNoNoNoYesYesYesYesYes
ShqipAlbanianNoNoNoNoYesYesYesYesYes
SrpskiSerbianNoNoNoNoYesYesYesYesYes
SvenskaSwedishNoYesYesYesYesYesYesYesYes
KiswahiliSwahiliNoNoNoNoNoNoNoYesYes
தமிழ்TamilNoNoNoNoNoNoNoNoYes
తెలుగుTeluguNoNoNoNoNoNoNoNoYes
ไทยThaiNoNoNoNoYesYesYesYesYes
TürkçeTurkishNoNoNoNoYesYesYesYesYes
УкраїнськаUkrainianNoNoNoNoYesYesYesYesYes
O‘zbekUzbekNoNoNoNoYesYesYesYesYes
Tiếng ViệtVietnameseNoNoNoNoYesYesYesYesYes
中文 (简体)Chinese (Simplified)NoYesYesYesYesYesYesYesYes
中文 (香港特別行政區)Chinese (Hong Kong)NoNoNoNoNoNoYesYesYes
中文 (繁體)Chinese (Traditional)NoYesYesYesYesYesYesYesYes

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

Related Research Articles

VBScript is a deprecated Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

The Portable Executable (PE) format is a file format for executables, object code, DLLs and others used in 32-bit and 64-bit versions of Windows operating systems, and in UEFI environments. The PE format is a data structure that encapsulates the information necessary for the Windows OS loader to manage the wrapped executable code. This includes dynamic library references for linking, API export and import tables, resource management data and thread-local storage (TLS) data. On NT operating systems, the PE format is used for EXE, DLL, SYS, MUI and other file types. The Unified Extensible Firmware Interface (UEFI) specification states that PE is the standard executable format in EFI environments.

<span class="mw-page-title-main">Windows API</span> Microsofts core set of application programming interfaces on Windows

The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running.

<span class="mw-page-title-main">Windows 9x</span> Series of Microsoft Windows computer operating systems

Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subsequent versions. The first version in the 9x series was Windows 95, which was succeeded by Windows 98 and then Windows Me, which was the third and last version of Windows on the 9x line, until the series was superseded by Windows XP.

<span class="mw-page-title-main">Windows NT 3.1</span> First major release of Windows NT, released in 1993

Windows NT 3.1 is the first major release of the Windows NT operating system developed by Microsoft, released on July 27, 1993.

<span class="mw-page-title-main">Microsoft Project</span> Project management software

Microsoft Project is a project management software product, developed and sold by Microsoft. It is designed to assist a project manager in developing a schedule, assigning resources to tasks, tracking progress, managing the budget, and analyzing workloads.

<span class="mw-page-title-main">Windows Registry</span> Database for Microsoft Windows

The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and user interfaces can all use the registry. The registry also allows access to counters for profiling system performance.

<span class="mw-page-title-main">Architecture of Windows NT</span> Overview of the architecture of the Microsoft Windows NT line of operating systems

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, it uses packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

Defined by Microsoft for use in recent versions of Windows, an assembly in the Common Language Infrastructure (CLI) is a compiled code library used for deployment, versioning, and security. There are two types: process assemblies (EXE) and library assemblies (DLL). A process assembly represents a process that will use classes defined in library assemblies. CLI assemblies contain code in CIL, which is usually generated from a CLI language, and then compiled into machine language at run time by the just-in-time compiler. In the .NET Framework implementation, this compiler is part of the Common Language Runtime (CLR).

In computing, a file shortcut is a handle in a user interface that allows the user to find a file or resource located in a different directory or folder from the place where the shortcut is located. Similarly, an Internet shortcut allows the user to open a page, file or resource located at a remote Internet location or Web site.

In Microsoft terminology, a Language Interface Pack (LIP) is a skin for localizing a Windows operating system in languages such as Lithuanian, Serbian, Hindi, Marathi, Kannada, Tamil, and Thai. Based on Multilingual User Interface (MUI) "technology", a LIP also requires the software to have a base installed language and provides users with an approximately 80 percent localized user experience by translating a reduced set of user interface elements. Unlike MUI packs which are available only to Microsoft volume license customers and for specific SKUs of Windows Vista, a Language Interface Pack is available for free and can be installed on a licensed copy of Microsoft Windows or Office and a fixed "base language". In other words, if the desired additional language has incomplete localization, users may add it for free, while if the language has complete localization, the user must pay for it by licensing a premium version of Windows. (In Windows Vista and Windows 7, only the Enterprise and Ultimate editions are "multilingual".)

A dynamic-link library (DLL) is a shared library in the Microsoft Windows or OS/2 operating system.

In Microsoft Windows, a resource is an identifiable, read-only chunk of data embedded in an executable file -- specifically a PE file.

As the next version of Windows NT after Windows 2000, as well as the successor to Windows Me, Windows XP introduced many new features but it also removed some others.

The booting process of Windows NT is the process run to start Windows NT. The process has been changed between releases, with the biggest changes being made with Windows Vista. In versions before Vista, the booting process begins when the BIOS loads the Windows NT bootloader, NTLDR. Starting with Vista, the booting process begins with either the BIOS or UEFI load the Windows Boot Manager, which replaces NTLDR as the bootloader. Next, the bootloader starts the kernel, which starts the session manager, which begins the login process. Once the user is logged in, File Explorer, the graphical user interface used by Windows NT, is started.

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

There are a number of security and safety features new to Windows Vista, most of which are not available in any prior Microsoft Windows operating system release.

Program Files is the directory name of a standard folder in Microsoft Windows operating systems in which applications that are not part of the operating system are conventionally installed. Typically, each application installed under the 'Program Files' directory will have a subdirectory for its application-specific resources. Shared resources, for example resources used by multiple applications from one company, are typically stored in the 'Common Files' directory.

Remote Desktop Services (RDS), known as Terminal Services in Windows Server 2008 and earlier, is one of the components of Microsoft Windows that allow a user to initiate and control an interactive session on a remote computer or virtual machine over a network connection. RDS was first released in 1998 as Terminal Server in Windows NT 4.0 Terminal Server Edition, a stand-alone edition of Windows NT 4.0 Server that allowed users to log in remotely. Starting with Windows 2000, it was integrated under the name of Terminal Services as an optional component in the server editions of the Windows NT family of operating systems, receiving updates and improvements with each version of Windows. Terminal Services were then renamed to Remote Desktop Services with Windows Server 2008 R2 in 2009.

<span class="mw-page-title-main">Windows Search</span> Desktop search platform by Microsoft

Windows Search is a content index desktop search platform by Microsoft introduced in Windows Vista as a replacement for both the previous Indexing Service of Windows 2000 and the optional MSN Desktop Search for Windows XP and Windows Server 2003, designed to facilitate local and remote queries for files and non-file items in compatible applications including Windows Explorer. It was developed after the postponement of WinFS and introduced to Windows constituents originally touted as benefits of that platform.

References

  1. Karl-Bridge-Microsoft. "Multilingual User Interface - Win32 apps". docs.microsoft.com. Retrieved 2022-07-10.
  2. Karl-Bridge-Microsoft. "Multilingual User Interface Functions - Win32 apps". docs.microsoft.com. Retrieved 2022-07-10.
  3. Karl-Bridge-Microsoft. "Loading Language Resources - Win32 apps". docs.microsoft.com. Retrieved 2022-07-10.
  4. Chen, Raymond (2008-02-29). "Why can't I get FormatMessage to load my resource string?". The Old New Thing. Retrieved 2022-07-08.
  5. Karl-Bridge-Microsoft. "Supporting System Language Settings - Win32 apps". docs.microsoft.com. Retrieved 2022-07-09.
  6. Karl-Bridge-Microsoft. "Preparing a Resource Configuration File - Win32 apps". docs.microsoft.com. Retrieved 2022-07-10.
  7. Karl-Bridge-Microsoft. "Using Registry String Redirection - Win32 apps". docs.microsoft.com. Retrieved 2022-07-10.
  8. "About Multilingual User Interface". Microsoft . Retrieved 22 June 2022.
  9. "How To Install Language Packs In Windows 7". The Windows Club. Archived from the original on 1 August 2010. Retrieved 29 April 2016.
  10. Team, My Digital Life Editorial (2009-07-12). "Windows 7 RTM GA Launch and MSDN/TechNet Release Schedule Roadmap « My Digital Life". My Digital Life. Retrieved 2023-07-26.
  11. Blog, Windows Experience; McConnell, John (2011-07-06). "Windows Phone around the world: Language support in Mango". Windows Experience Blog. Retrieved 2023-11-22.
  12. Blog, Windows Experience; Myerson, Terry (2012-02-27). "Windows Phone at Mobile World Congress 2012". Windows Experience Blog. Retrieved 2023-11-22.
  13. "Language packs are available for Windows 8 and Windows RT". Microsoft . Retrieved 29 April 2016.
  14. "Check whether your version of Windows supports multiple languages". support.microsoft.com. Retrieved 2022-01-10.
  15. Blog, Windows Experience (2011-07-06). "Windows Phone around the world: Language support in Mango". Windows Experience Blog. Retrieved 2022-01-10.
  16. "Get Samsung Notes". Microsoft Store. Retrieved 2022-01-10.
  17. "Language packs for Windows". support.microsoft.com. Retrieved 2022-01-11.
  18. "Local Experience Packs: What are they and when should you use them?". TECHCOMMUNITY.MICROSOFT.COM. 2018-11-14. Retrieved 2022-01-10.
  19. "Local Experience Packs". Microsoft Store. Retrieved 2022-01-10.
  20. "Local Experience Packs". support.microsoft.com. Retrieved 2022-01-11.
  21. USpatent 6252589,"Multilingual user interface for an operating system",published 2003-05-14