Multilingual User Interface

Last updated
The Windows 7 Start menu in English (left) and Japanese (right), localized using MUI MUI Vista.PNG
The Windows 7 Start menu in English (left) and Japanese (right), localized using MUI

The Multilingual User Interface (MUI) is a localization framework used in Microsoft Windows and compatible Windows applications; it allows language files to be modular and separate from application logic. It is designed to simplify software development and deployment when localizing a user interface.

Contents

MUI provides a framework for localizing language strings, addressing the limitations of older localization methods; for instance, MUI uses dedicated language files (called Language Packs, or LPs) instead of hardcoding language strings into software. With MUI, it is possible to:

The MUI framework, API, and Language Packs were introduced in Windows 2000; Language Interface Packs (LIPs) were added in Windows 7 to supplement Language Packs. LIPs were replaced by Local Experience Packs (LXPs) in Windows 10 build 1809.

Overview

The MUI technology [1] is integrated into Windows and can be used in an application by storing localizable strings in a Language Pack and using the Win32 API to retrieve strings from it.

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:

Technological components

Terminology

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

Language-neutral (LN): 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: A Windows binary containing application logic and language-neutral resources.

Language-specific (LS): Describes something that varies significantly by language. The most common LS items are interface strings but can be other items, such as an image that contains text.

LS resource file: A set of resources localized for one language; also called an 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:

LPCWSTRlanguageIdSpec=L"en-US\0";ULONGlangCount=1;if(!SetThreadPreferredUILanguages(MUI_LANGUAGE_NAME,languageIdSpec,&langCount))MessageBoxW(NULL,L"Unable to set thread preferred UI language.",NULL,MB_ICONERROR);

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 compatible with MUI, 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;intresourceLength=LoadStringW(moduleHandle,resourceId,(LPWSTR)&resourceCharArray,0);if(!resourceLength){MessageBoxW(NULL,L"Unable to find resource.",NULL,MB_ICONERROR);return-1;}wchar_t*text=(LPWSTR)malloc((resourceLength+1)*sizeof(wchar_t));wcsncpy(text,resourceCharArray,resourceLength);text[resourceLength]=L'\0';// null terminate

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 new buffer and appends a null terminator. 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:

Implementation

Basic implementation of MUI entails the following:

Upon completing the basic tasks, an application is compatible with MUI; but there are other MUI features that an application can take advantage of.

A program that uses MUI can store localization directly in its binaries; this provides all the 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 resources, the application must implement a mechanism for reading assets at runtime based on the system's language preferences (see GetThreadUILanguage). In other words, the application loads UI assets based on preferences without using LoadString; the application may leverage the MUI file-per-language location and naming convention by using GetFileMUIPath.

Advantages over static localization

The MUI technology was developed in response to, and as an improvement over, static localization -- an older technology for globalizing and deploying software packages.

Software localized via a Language Pack achieves the same goal as a static localization, 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.[ citation needed ]

In Windows, a system-wide Language Pack translates the base operating system, as well as all MUI-capable applications, 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.[ citation needed ]

A Language Pack does not translate administrative content such as registry entries and items in the Microsoft Management Console.

One advantage of MUI is that each Windows user can set a different language. [8] For a version of Windows that only has static localization, this is not possible. With MUI, a single piece of software can support multiple languages, and the OS and applications use the user's set language. In addition, an operating system that is localized with a particular Language Pack can run applications that are localized with different Language Packs.

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

In Windows 2000 and XP, Language Packs for a product replace hardcoded American English strings. There are a total of 5 Language Pack sets.

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 updated the MUI protocol to separate language resources from the application logic binary files; the application logic files are now language-independent (no longer containing American English). This separation allows for true language switching, and to have multiple Language Packs independent of the application logic binaries. Languages are applied as Language Packs containing the resources required to localize the user interface.

Language Packs are available for Windows Vista Enterprise and as an optional extra for Windows Vista Ultimate.

Beginning with Windows Vista, MUI APIs were also made available to developers for application development. This allowed third-party developers 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, an additional 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

Language Packs are available for Windows 7 Enterprise and Ultimate, as well as Windows Phone 7.

Beginning with Windows 7, Microsoft introduced a new format of language pack, called a Language Interface Pack (abbreviated as LIP). These serve to provide partial translations that are not present in a base LP. [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, an additional 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, almost all editions of Windows are able to download and install Language Packs and LIPs, [13] with a few exceptions:

Windows 10

Beginning with Windows 10 version 1803, Microsoft phased out LIPs in favor of Local Experience Packs (LXPs).. [18] In addition to installation via Windows Settings, LXPs are also available through the Microsoft Store [19] ; the latter enabling remote installation for consumer editions of Windows. [20] 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.


Supported languages

Supported languages by OS version are 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
ລາວLaoThai
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

MUI principles in SaaS and Web Applications

Modern SaaS and web applications apply the core MUI principle by storing language-specific resources separately (often externally, like in JSON files) and selecting the user interface language automatically according to browser or account preferences. [21] [22] This separation allows new languages to be added or updated without modifying application logic. Industry research shows that each additional language can increase annual support and QA costs by 10–15%, and that incomplete localization—such as untranslated onboarding, billing, or support workflows—is a major reason for user churn in new markets. [23] Best practices include automating translation management, involving native-speaking testers, and ensuring that all customer-facing workflows are fully localized for every market.

Patent

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

See also

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". support.microsoft.com. Retrieved 2022-01-11.
  20. "Local Experience Packs". Microsoft Store. Retrieved 2022-01-10.
  21. "Multilingual User Interface - Win32 apps". docs.microsoft.com. Retrieved 2024-07-01.
  22. "SaaS Localization Strategies". lokalise.com. Retrieved 2024-07-01.
  23. "SaaS Localization Strategies". lokalise.com. Retrieved 2024-07-01.
  24. USpatent 6252589,"Multilingual user interface for an operating system",published 2003-05-14