Flerspråkigt användargränssnitt

Jämförelse av Windows Vista Ultimate Start-menyn med engelska vald i den vänstra bilden och traditionell kinesiska vald i höger.

Multilingual User Interface ( MUI ) möjliggör lokalisering av användargränssnittet för en applikation .

MUI tillhandahålls av Microsoft som en integrerad funktion i dess operativsystem Windows 11 ner till Windows 2000 med vissa begränsningar i äldre versioner.

MUI används för att lokalisera flaggskepps Microsoft-produkter Microsoft Windows och Microsoft Office och kan som en öppen teknik användas i alla program som körs i en version av Windows som stöder MUI.

Kärnan i MUI är de användardefinierade systeminställningarna för önskat språk som kan användas/delas av alla applikationer på en dator. Den näst mest centrala funktionen är systemfunktioner (dvs. LoadString) som använder denna inställning för att ladda användargränssnittstillgångar vid körning från resurser på användarens föredragna språk. För att vara MUI-aktiverad behöver en applikation bara lagra användargränssnittstillgångar som språkspecifika resurser och använda LoadStrIng för att ladda dem under körning.

MUI stöder också lagring av användargränssnittstillgångar som separata, enspråkiga filer vilket ger flexibilitet för utveckling och distribution. Denna funktion är valfri. Resurserna kan lagras i applikationsbinären.

MUI tillhandahåller också systemfunktioner som möjliggör anpassat och utökat lokaliseringsbeteende.

Översikt

MUI-tekniken är integrerad i Windows OS och kan utnyttjas i en applikation genom att lagra lokaliserbara tillgångar som resurser på ett föreskrivet sätt och använda MUI-aktiverade win32-funktioner för att läsa resurserna.

En relativt enkel implementering av MUI i en applikation lagrar strängarna för varje språk i en strängtabellresurs för den binära filen och använder win32-funktionen LoadString för att ladda strängar vid körning. Ingen annan MUI-relaterad konfiguration eller kod krävs. Följande valfria funktioner för MUI kan implementeras om så önskas:

  • Lagra resurserna för varje språk i en separat DLL för att möjliggöra distributions-/installationsflexibilitet
  • En applikation kan använda dedikerade MUI-funktioner för att ge mer kontroll över lokaliserbar tillgångsförbrukning, till exempel att använda ett annat språk än den systemdefinierade användarinställningen
  • Lokaliserbara tillgångar kan lagras i ett annat format än resurs

Utformningen av MUI försöker tillhandahålla ett gemensamt sätt att lagra information om applikationslokalisering som lindrar begränsningar av mer traditionella och monolitiska konstruktioner för lokalisering, såsom att inkludera alla språk i applikationslogikfilerna (dvs. resurser). Med MUI är följande distributionsscenarier möjliga:

  • Lägg till stöd för ett språk genom att endast installera språkfiler -- utan att ändra programlogik eller andra språkfiler
  • Lägg till nya funktioner och fixa buggar genom att endast installera programlogikfiler -- utan att ändra de installerade språkfilerna

Terminologi

Följande MUI-relaterade termer används antingen i eller härledda från Microsofts dokumentation.

Språkneutral (LN): Beskriver något som förmedlar en mening oavsett tittarens språk, till exempel en bild utan text eller andra lokaliserbara aspekter

LN-resurs: en resurs som delas av och installeras för alla språkversioner av programmet

LN-fil: Windows binär innehållande applikationslogik och språkneutrala resurser

Språkspecifik (LS): Beskriver något som har väsentligt olika betydelse baserat på tittarens språk. De vanligaste LS-objekten är gränssnittssträngar men kan vara andra objekt som en bild med text i

LS resursfil: En uppsättning resurser lokaliserade för ett språk; aka MUI-fil

Språkinställningar

Ett språkval lagras av systemet för systemet (delas av alla användare och kanske används som standard för en ny användare) och för varje användare. Dessa val kan ändras av användaren via systemets kontrollpanel men kan inte ändras av en applikation.

Dessa inställningar styr språket som operativsystemet använder för UI-element. Applikationer kan också använda dessa inställningar, och via MUI-aktiverade systemfunktioner (som LoadString) är användningen automatisk och transparent (kräver ingen MUI-specifik kod för att använda). Men användningen av dessa inställningar är valfri och anpassningsbar. En applikation kan utformas för att ignorera språkinställningarna. Eller det kan använda dem på andra sätt än det som tillhandahålls av MUI-aktiverade systemfunktioner.

En applikation kan använda MUI-funktioner för att läsa språkpreferenser -- som standard är användarens val [antaget] och är en lista över språk i prioriterad ordning. Dessa inställningar tillhandahålls på system-, användar-, process- och trådnivåer [förutsatt att ändring på en högre nivå ändrar inställningarna för lägre nivåer].

En applikation kan modifiera dessa språkpreferenslistor (via SetThreadPreferredUILanguages ​​och andra funktioner) för att påverka MUI:s beteende. Till exempel:

std::string languageIdSpec = "en-US"; languageIdSpec.push_back('\0'); // måste avslutas med dubbelnull ULONG langCount = 1; if (!::SetThreadPreferredUILanguages(MUI_LANGUAGE_NAME, languageIdSpec.c_str(), &langCount)) throw std::runtime_error("Det gick inte att ange trådens föredragna UI-språk.");

Resurslagring

MUI ger stöd för lokaliserade resurser lagrade i Windows binära (alias Win32 PE) filer (DLL, EXE, SYS) - vanligtvis DLL-filer.

Resurserna för ett språk kan antingen lagras i den binära applikationen eller i en MUI-fil (aka LS) - en per språk. För att MUI ska hitta resurser måste en MUI-fil finnas i samma katalog som dess associerade LN-fil och ha samma namn som LN-filen plus ". LCID .mui". Till exempel, för LN-filen my-lib.dll , skulle MUI-filen för en-US heta my-lib.dll.0409.mui .

Strängresurser är kodade som strängtabeller så här:

LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN 1 L"meddelandetext" END

Resurshämtning

Flera win32-funktioner som läser programresurser är MUI-aktiverade, inklusive LoadString, FormatMessage och LoadImage.

Varje funktion försöker läsa en resurs för ett språk som valts av globala språkinställningar, från programresurser eller associerade MUI-filer (samlokaliserad med LN-fil och enligt namnkonvention). Var och en använder de globala språkinställningarna för att välja ett språk som är tillgängligt. Om laddningen av resursen för det första föredragna språket misslyckas antingen på grund av att MUI-filen inte finns eller att resursen inte finns i MUI-filen, kommer funktionen att försöka med nästa föredragna språk och så vidare tills alla inställningar har prövats. Om laddningen misslyckas för alla föredragna språk, försök sedan LN-filen.

Den mest använda funktionen är LoadString som laddar strängar från en strängtabellresurs. Exempel med LoadString:

wchar_t* resourceCharArray; int resourceLength = ::LoadStringW(_moduleHandle, resourceId, (LPWSTR)&resourceCharArray, 0); if (!resourceLength) throw std::runtime_error("Kan inte hitta resursen."); std::wstring text; text.append(resourceCharArray, resourceLength);

Detta hämtar adressen till resurstextteckenbufferten som inte garanteras vara noll-terminerad. Sedan kopierar detta tecknen till en std::string och dess c_str()-metod kommer garanterat att avslutas med null. Därför finns det inget behov av att lägga till en null. Ett annat alternativ är att låta LoadString kopiera strängen till en godkänd buffert, men det kräver att man använder en buffert med fast längd som har nackdelar som att vanligtvis allokera mer än vad som behövs eller trunkering om det är för kort.

Konstigt nog nämner MS-dokumentationen för LoadString inte dess interaktion med MUI -- användning av språkpreferens.

FormatMessage är också MUI-aktiverat. Dess funktionsreferenssida beskriver dess interaktion med användarens språkpreferens när parametern dwLanguageId skickas som 0. Men FormatMessage läser från en meddelandetabell , inte en strängtabell och som Raymond Chen säger, "ingen använder faktiskt meddelandetabeller".

Icke-resurslagring och hämtning

MS-dokumentationen rekommenderar att du lagrar UI-tillgångar som resurser eftersom MUI fullt ut stöder hämtning från denna lagring, men den noterar att MUI stöder alla andra filformat, som XML, JSON eller platt textfil. Detta innebär att användning av resurshämtningsaspekten av MUI inte krävs för att en applikation ska vara MUI-aktiverad. En applikation kan använda sin egen, anpassade logik för hämtning av UI-tillgångar.

För att vara MUI-aktiverad måste applikationen använda systemspråksinställningarna. Den anpassade logiken för hämtning av UI-tillgångar kan eventuellt använda MUI-funktionen GetFileMUIPath för att utnyttja MUI-filens plats och namnkonventioner.

Andra aspekter

MS MUI-dokumentationen beskriver följande begrepp, men det är oklart hur de relaterar till MUI och vilket värde de erbjuder:

  • Resurskonfigurationsfil
  • Omdirigering av registersträng

Genomförande

Grundläggande uppgifter för att stödja/implementera MUI:

  • Använd LoadString i applikationskoden för att läsa resurser; den använder användarpreferenser, systeminställningar för att läsa resurser som är på det språk som är mest föredraget av användaren baserat på tillgänglighet
  • Författare resurskällkod (RC) för varje språk; rekommenderas att lagra varje språk i en separat RC-fil

När de grundläggande uppgifterna har slutförts är en applikation MUI-aktiverad. Men det finns andra funktioner i MUI som en applikation valfritt kan dra nytta av.

De grundläggande uppgifterna innebär att alla språk lagras i applikationens binära resurser -- vilket betyder att det inte är språkneutralt. Den här strukturen ger alla fördelar för körtidslokalisering med MUI och enkel distribution av en fil men tillåter inte distributionsflexibilitet som MUI ger. För att dra fördel av distributionsflexibiliteten:

  • Konfigurera programmets binära projekt för att utesluta alla LS-resurser -- gör det till LN-filen
  • Konfigurera projekt för att bygga varje språk till en resurs-DLL; heter samma som LN-filen + " LCID .mui" -- MUI-filer
  • Distribuera/installera MUI-filer i samma katalog som LN-filen

För att lagra lokaliserade tillgångar i andra format än resurs, måste applikationen implementera en mekanism för att läsa tillgångar vid körning baserat på språkinställningarna (se GetThreadUILanguage). Med andra ord, applikationen laddar UI-tillgångar baserat på systemspråkinställningarna utan att använda LoadString. Applikationen kan utnyttja MUI-fil-per-språk-platsen och namnkonventionen genom att använda GetFileMUIPath.

Fördelar jämfört med lokaliserad version

MUI-tekniken utvecklades som svar och som en förbättring av lokaliserade versioner - en äldre teknik för att globalisera och distribuera mjukvarupaket. Det här avsnittet beskriver skillnaderna och fördelarna med MUI jämfört med lokaliserade versioner.

Windows lokaliserad via ett MUI-paket uppnår samma mål som en lokaliserad version, men det finns viktiga skillnader. Medan både menyer och dialogrutor visas på målspråket, använder bara en lokaliserad version översatta fil- och mappnamn. [vad betyder det här? vissa speciella mappar är lokaliserbara (dokument, nedladdningar, ...) men en användarskapad fil/mapp kan inte lokaliseras (av operativsystemet). Lokaliserar inte ett språkpaket de speciella mappnamnen? Vad mer kan det göra?]

En lokaliserad version av Windows översätter basoperativsystemet, såväl som alla inkluderade program [vilka program?], inklusive fil- och mappnamn [så den lokaliserar fil-/mappnamn. detta motsäger ovan], objektnamn [vad är ett objekt?], strängar i registret [på riktigt? vilka strängar?], och alla andra interna strängar som används av Windows till ett visst språk. Lokaliserade versioner av Windows stöder uppgradering från en tidigare lokaliserad version och användargränssnittsresurser är helt lokaliserade, vilket inte är fallet för MUI-versioner av en produkt. [vad är inte fallet för MUI?]

En MUI-version innehåller inte översatta administrativa funktioner som registerposter [registerposter är funktioner?] och objekt i Microsoft Management Console .

En fördel med en MUI-version är att varje användare av en dator kan använda ett annat språk. För en lokaliserad version av operativsystemet är detta inte möjligt. Det kan vara möjligt för lokaliserade applikationer men kräver installation av flera versioner; en för varje språk, och detta kan leda till programlagringsutrymme och installationsproblem sida vid sida. Med MUI stöder den enskilda versionen flera språk, och operativsystemet och applikationerna använder användarens föredragna språk. Vidare kan samma OS vara värd för ett program som använder något av programmets stödda språk som kan skilja sig från det valda OS-språket och till och med ett språk som inte stöds av OS.

Historia

MUI introducerades med Windows 2000 och stöds i varje efterföljande Windows-version.

Windows 2000 och Windows XP

MUI-produkter för dessa versioner var endast tillgängliga genom volymavtal från Microsoft. De var inte tillgängliga via detaljhandelskanaler. Vissa OEM-tillverkare distribuerade dock produkten. [ citat behövs ]

Språk i Windows XP

Upp till Windows XP appliceras MUI-paket för en produkt ovanpå en engelsk version för att ge en lokaliserad användarupplevelse. Det finns totalt 5 uppsättningar MUI-paket.

Set 1
  • tysk
  • franska
  • japanska
  • koreanska
  • Förenklad kinesiska)
  • Traditionell Kinesisk)
Set 2
  • arabiska
  • hebreiska
  • spanska
  • italienska
  • svenska
  • holländska
  • portugisiska (Brasilien)
Set 3
  • norska
  • danska
  • finska
  • ryska
  • tjeckiska
Set 4
  • putsa
  • ungerska
  • Portugisiska (Portugal)
  • turkiska
  • grekisk
Set 5
  • bulgariska
  • estniska
  • Kroatisk
  • lettiska
  • litauiska
  • rumänska
  • slovakiska
  • slovenska
  • Thai

Windows Vista

Windows Vista förbättrad MUI-teknik för att separera de engelska resurserna från applikationslogikens binära filer . Programlogikfilerna är nu språkneutrala aka språkoberoende. Med andra ord är applikationslogikfilerna inte längre engelskcentrerade. Denna separation gör det möjligt att ändra språk helt utan att ändra kärnbinärerna i Windows, och att ha flera språk installerade med samma applikationslogikbinärer. Språk används som språkpaket som innehåller de resurser som krävs för att lokalisera en del av eller hela användargränssnittet i Windows Vista.

MUI-paket är tillgängliga för Windows Vista Enterprise-användare och som ett Ultimate Extras för Windows Vista Ultimate-användare.

Från och med Windows Vista görs uppsättningen med tillhörande MUI API:er också tillgängliga för utvecklare för applikationsutveckling. [Detta tillåter vem som helst att använda MUI-tekniken?]

Vid lanseringen släpptes följande 16 språkpaket:

  • danska
  • tysk
  • engelsk
  • spanska
  • franska
  • italienska
  • holländska
  • norska
  • portugisiska (Brasilien)
  • finska
  • svenska
  • ryska
  • koreanska
  • Förenklad kinesiska)
  • Traditionell Kinesisk)
  • japanska

Den 23 oktober 2007 släpptes de återstående 19 språkpaketen:

  • tjeckiska
  • estniska
  • Kroatisk
  • lettiska
  • litauiska
  • ungerska
  • putsa
  • Portugisiska (Portugal)
  • rumänska
  • slovakiska
  • slovenska
  • serbiska
  • turkiska
  • grekisk
  • bulgariska
  • ukrainska
  • hebreiska
  • arabiska
  • Thai

Windows 7

MUI är tillgängligt för användare av Windows 7 Enterprise och Ultimate Edition.

Från och med Windows 7 började Microsoft hänvisa till ett "MUI-paket" som ett "språkpaket"; inte att förväxla med ett språkgränssnittspaket (LIP).

Windows 8/8.1/RT

Från och med Windows 8/RT kan de flesta versioner av Windows ladda ner och installera alla språkpaket, med några få undantag:

  • I Single Language-utgåvor av Windows tillåts endast ett språkpaket installeras, samma beteende som versioner av Windows 7 och tidigare som inte är Enterprise eller Ultimate.
  • I OEM-utgåvor av Windows beror de exakta språkpaketen som är förinstallerade/tillgängliga för nedladdning på enhetstillverkaren och inköpslandet/regionen (och mobiloperatören för enheter med mobilanslutning). Detta är en blandning av en lokal marknadsfunktion och en funktion för alla överallt. Det kan finnas flera skärmspråk förinstallerade på enheten av tillverkaren och/eller den trådlösa operatören, men varje tillverkare och/eller trådlös operatör installerar två olika uppsättningar språk: en uppsättning förinstallerade språk och en uppsättning språk som kan installeras av slutanvändare. Den här regeln används för närvarande i Windows Phones från och med Windows Phone 7 och datorer från och med Windows 8 (eftersom Windows 8 och Windows Phone 8 delar samma Windows NT-kärna) och släpptes senare i Windows 10 version 1803, men återställdes senare tyst som av Windows 10 version 1809. En slutanvändare kan installera en återförsäljarlicens ovanpå en OEM-licens genom att utföra en ren installation via Media Creation Tool för att kringgå regionlåsningen och installera vilket visningsspråk som helst.
    • Windows-uppdateringsprocessen påverkar inte de för närvarande installerade visningsspråken på något sätt, men den kan ge slutanvändaren tillgång till nyligen släppta språkpaket som gjorts tillgängliga av OEM (endast datorer). Men när du installerar en ny funktionsuppdatering kan den ändra visningsspråket tillbaka till det som sattes in under den första installationsprocessen. Till exempel, om Samsung ATIV Smart PC på AT&T uppgraderas från Windows 8.1 till Windows 10 Anniversary Update (inte nödvändigtvis gjort på en gång), kommer den nu att kunna installera portugisiska (Brasilien), vietnamesiska, kinesiska (förenklad och traditionell) , och japanska förutom engelska, spanska, franska, tyska, italienska och koreanska (de tre sista språken kan laddas ner av slutanvändaren vid tidpunkten för lanseringen), precis som med Galaxy S8-serien och den Verizon-baserade Galaxy bok.
    • Å andra sidan stöder inte en Samsung Galaxy Book-enhet afrikaans som visningsspråk, eftersom Samsung-appar inte officiellt stöder afrikaans. Dessutom stöder mobilvarianter av Galaxy Book-bärbara datorer som säljs i Nordamerika färre skärmspråk än deras Wi-Fi-bara motsvarigheter, precis som på deras smartphones.
    • Vissa språkpaket som engelska (Australien) och engelska (Kanada) stöds endast på Xbox-konsolerna och Surface Duo.
    • Vissa LIP-paket kräver att vissa MUI-paket (basspråk) finns eller är kompatibla. Om det basspråket inte finns eller är kompatibelt kan den LIP inte installeras på den enheten.

Windows 10

Från och med Windows 10 version 1803 började Microsoft använda termen "Local Experience Pack" (LXP) på vissa ställen [butik?] istället för den äldre termen "Language Pack", men de fungerar på samma sätt. Förutom att installera via Windows-inställningar är dessa 110 LXP också tillgängliga via Microsoft Store (app och webb); det senare möjliggör fjärrinstallation för konsumentversioner av Windows. Som med alla applikationer från Microsoft Store visas endast LXP:er som är kompatibla med den Windows-enheten i Microsoft Store-appen.

En LXP uppdateras via Microsoft Store; utanför den normala Windows-uppdateringscykeln.

Språk som stöds

Språk som stöds av OS-version är som följer:

PC

MUI-språkpaket av Windows-version
Språk engelskt namn 2000 XP Perspektiv 7,0 7.1 8,0 8.1 10 11
العربية arabiska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Български bulgariska LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Català katalanska (Spanien) LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP Ja
Čeština tjeckiska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Dansk danska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Deutsch tysk Ja Ja Ja Ja Ja Ja Ja Ja Ja
Ελληνικά grekisk Ja Ja Ja Ja Ja Ja Ja Ja Ja
engelska (Storbritannien) engelska (Storbritannien) Nej Nej Nej Nej Nej Ja Ja Ja Ja
Engelska Förenta Staterna) Engelska Förenta Staterna) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Español (España) Spanska (Spanien) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Español (Mexiko) spanska (Mexiko) Nej Nej Nej Nej Nej Nej Nej Ja Ja
Eesti estniska LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Euskara baskiska LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP Ja
Suomi finska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Français (Kanada) franska (Kanada) Nej Nej Nej Nej Nej Nej Nej Ja Ja
Français (Frankrike) franska (Frankrike) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Galego galiciska LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP Ja
עברית hebreiska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Hrvatski Kroatisk LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Magyar ungerska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Indonesien indonesiska LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP Ja
Italiano italienska Ja Ja Ja Ja Ja Ja Ja Ja Ja
日本語 japanska Ja Ja Ja Ja Ja Ja Ja Ja Ja
한국어 koreanska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Lietuvių litauiska LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Latviešu lettiska LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Norsk bokmål norskt bokmål Ja Ja Ja Ja Ja Ja Ja Ja Ja
Nederlands holländska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Polski putsa Ja Ja Ja Ja Ja Ja Ja Ja Ja
Português (Brasilien) portugisiska (Brasilien) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Português (Portugal) Portugisiska (Portugal) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Română rumänska LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Русский ryska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Slovenčina slovakiska LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Slovenščina slovenska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Srpski serbiska (latin) LÄPP LÄPP Ja Ja Ja Ja Ja Ja Ja
Svenska svenska Ja Ja Ja Ja Ja Ja Ja Ja Ja
ไทย Thai LÄPP Ja Ja Ja Ja Ja Ja Ja Ja
Türkçe turkiska Ja Ja Ja Ja Ja Ja Ja Ja Ja
Українська ukrainska LÄPP LÄPP Ja Ja Ja Ja Ja Ja Ja
Tiếng Việt vietnamesiska LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP LÄPP Ja
中文 (简体) Förenklad kinesiska) Ja Ja Ja Ja Ja Ja Ja Ja Ja
中文 (香港特別行政區) kinesiska (Hongkong) Ja Ja Ja Ja Ja Ja Ja Ja Ja
中文 (繁體) Traditionell Kinesisk) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Språkgränssnittspaket av Windows-version
Språk engelskt namn Grundspråk krävs 2000 XP Perspektiv 7,0 7.1 8,0 8.1 10 11
afrikaans afrikaans engelsk Ja Ja Ja Ja Ja Ja Ja Ja Ja
አማርኛ amhariska engelsk Ja Ja
অসমীয়া assamiska engelsk Ja Ja
Azərbaycan azerbajdzjanska engelsk Ja Ja Ja
Беларуская vitryska ryska Ja Ja Ja Ja Ja Ja Ja Ja
বাংলা (বাংলাদেশ) Bangla (Bangladesh) engelsk Ja Ja
বাংলা (ভারত) Bangla (Indien) engelsk Ja Ja Ja
Босански bosniska (kyrilliska) ryska Ja Ja
Bosanski bosniska (latin) engelsk Ja Ja Ja
Català katalanska (Spanien) engelsk Ja Ja Ja Ja Ja Ja Ja Ja MUI
Valencia katalanska (Spanien, valencianska) spanska
ᏣᎳᎩ Cherokee engelsk
Cymraeg walesiska engelsk Ja Ja Ja
Euskara baskiska spanska Ja Ja Ja Ja Ja Ja Ja Ja MUI
فارسى persiska (Iran) engelsk Ja Ja Ja Ja Ja Ja Ja Ja Ja
Filippinare Filippinare engelsk Ja Ja
Gaeilge irländska engelsk Ja Ja
Gàidhlig skotsk gaeliska engelsk
Galego galiciska spanska Ja Ja MUI
ગુજરાતી Gujarati engelsk Ja Ja
Hausa Hausa engelsk Ja
हिन्दी hindi engelsk Ja Ja
Հայերեն armeniska engelsk Ja Ja
Indonesien indonesiska engelsk Ja Ja MUI
Igbo Igbo engelsk Ja
Íslenska isländska engelsk Ja Ja Ja Ja Ja Ja Ja Ja Ja
ᐃᓄᒃᑎᑐᑦ Inuktitut engelsk Ja Ja
ქართული georgiska engelsk Ja Ja
Қазақ тілі Kazakiska engelsk Ja Ja
ខ្មែរ Khmer engelsk Ja
ಕನ್ನಡ Kannada engelsk Ja Ja
कोंकणी Konkani engelsk Ja Ja
کوردیی ناوەڕاست Centralkurdiska engelsk
Кыргызча kirgiziska ryska Ja
Lëtzebuergesch Luxemburgiska franska Ja Ja
ລາວ Lao ???
Te reo Māori Maori engelsk Ja Ja
Македонски makedonska engelsk Ja Ja
മലയാളം Malayalam engelsk Ja Ja
Монгол mongoliska engelsk
मराठी Marathi engelsk Ja Ja
Melayu (Brunei) Malajiska (Brunei) engelsk Ja
Melayu (Malaysia) Malaysia (Malaysia) engelsk Ja Ja
Malti maltesiska engelsk Ja Ja
नेपाली nepalesiska engelsk Ja Ja
Norsk nynorsk norsk nynorsk norskt bokmål Ja Ja Ja Ja Ja Ja Ja Ja Ja
Sesotho sa Leboa södra Sotho engelsk Ja
ଓଡ଼ିଆ Odia engelsk Ja
پنجابی Punjabi (arabiska, Pakistan) engelsk
ਪੰਜਾਬੀ Punjabi (Gurmukhi, Indien) engelsk Ja Ja
درى persiska (Afghanistan) engelsk Ja Ja
K'iche' K'iche' spanska
Runasimi Quechua spanska Ja Ja
Kinyarwanda Kinyarwanda engelsk
سنڌي Sindhi engelsk
සිංහල singalesiska engelsk
Shqip albanska engelsk Ja Ja Ja Ja Ja Ja Ja Ja Ja
Српски (Босна и Херцеговина) Serbiska (Bosnien och Hercegovina) engelsk
Српски (Србија) Serbien (Serbien) serbiska (latin) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Kiswahili Swahili engelsk Ja Ja
தமிழ் Tamil engelsk Ja Ja
తెలుగు Telugu engelsk Ja Ja
Тоҷикӣ tadzjikiska ryska
ትግር Tigrinya engelsk
Turkmensk dili turkmeniska ryska
Setswana Tswana engelsk Ja
Татар tatariska ryska Ja Ja
ئۇيغۇرچە uiguriska Förenklad kinesiska)
اُردو Urdu engelsk Ja Ja
O'zbekiska uzbekiska engelsk
Tiếng Việt vietnamesiska engelsk Ja Ja MUI
Wolof Wolof franska
IsiXhosa Xhosa engelsk Ja
Èdè Yorùbá Yoruba engelsk
IsiZulu Zulu engelsk Ja

Mobil

Det flerspråkiga användargränssnittet för Windows Phones dök inte upp förrän version 7.0.

Språkpaket för den nya Windows Phone-plattformen
Språk engelskt namn 7,0 7.5 7.7 7.8 8,0 8.0.2 8.1 8.1.2 10
afrikaans afrikaans Nej Nej Nej Nej Nej Nej Ja Ja Ja
አማርኛ amhariska Nej Nej Nej Nej Nej Nej Nej Nej Ja
العربية arabiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Azərbaycan azerbajdzjanska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Беларуская vitryska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Български bulgariska Nej Nej Nej Nej Ja Ja Ja Ja Ja
বাংলা Bangla Nej Nej Nej Nej Nej Nej Nej Ja Ja
Català katalanska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Čeština tjeckiska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Dansk danska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Deutsch tysk Ja Ja Ja Ja Ja Ja Ja Ja Ja
Ελληνικά grekisk Nej Ja Ja Ja Ja Ja Ja Ja Ja
engelska (Storbritannien) engelska (Storbritannien) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Engelska Förenta Staterna) Engelska Förenta Staterna) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Español (España) spanska (Spanien) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Español (Mexiko) spanska (Mexiko) Nej Nej Nej Nej Ja Ja Ja Ja Ja
Eesti estniska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Euskara baskiska Nej Nej Nej Nej Nej Nej Ja Ja Ja
فارسى persiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Suomi finska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Filippinare Filippinare Nej Nej Nej Nej Ja Ja Ja Ja Ja
Français (Kanada) franska (Kanada) Nej Nej Nej Nej Nej Ja Ja Ja Ja
Français (Frankrike) franska (Frankrike) Ja Ja Ja Ja Ja Ja Ja Ja Ja
Galego galiciska Ja Ja Ja Ja Ja Nej Ja Ja Ja
Hausa Hausa Nej Nej Nej Nej Nej Nej Ja Ja Ja
עברית hebreiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
हिन्दी hindi Nej Nej Nej Nej Ja Ja Ja Ja Ja
Hrvatski Kroatisk Nej Nej Nej Nej Ja Ja Ja Ja Ja
Magyar ungerska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Indonesien indonesiska Nej Nej Ja Ja Ja Ja Ja Ja Ja
Íslenska isländska Nej Nej Nej Nej Nej Nej Nej Nej Ja
Italiano italienska Ja Ja Ja Ja Ja Ja Ja Ja Ja
日本語 japanska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Қазақ тілі Kazakiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
ខ្មែរ Khmer Nej Nej Nej Nej Nej Nej Nej Ja Ja
ಕನ್ನಡ Kannada Nej Nej Nej Nej Nej Nej Nej Nej Ja
한국어 koreanska Nej Ja Ja Ja Ja Ja Ja Ja Ja
ລາວ Lao Nej Nej Nej Nej Nej Nej Nej Ja Ja
Lietuvių litauiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Latviešu lettiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Македонски makedonska Nej Nej Nej Nej Ja Ja Ja Ja Ja
മലയാളം Malayalam Nej Nej Nej Nej Nej Nej Nej Nej Ja
Melayu malajiska Nej Nej Ja Ja Ja Ja Ja Ja Ja
Norsk bokmål norskt bokmål Nej Ja Ja Ja Ja Ja Ja Ja Ja
Nederlands holländska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Polski putsa Nej Ja Ja Ja Ja Ja Ja Ja Ja
Português (Brasilien) portugisiska (Brasilien) Nej Ja Ja Ja Ja Ja Ja Ja Ja
Português (Portugal) Portugisiska (Portugal) Nej Ja Ja Ja Ja Ja Ja Ja Ja
Română rumänska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Русский ryska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Slovenčina slovakiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Slovenščina slovenska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Shqip albanska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Srpski serbiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Svenska svenska Nej Ja Ja Ja Ja Ja Ja Ja Ja
Kiswahili Swahili Nej Nej Nej Nej Nej Nej Nej Ja Ja
தமிழ் Tamil Nej Nej Nej Nej Nej Nej Nej Nej Ja
తెలుగు Telugu Nej Nej Nej Nej Nej Nej Nej Nej Ja
ไทย Thai Nej Nej Nej Nej Ja Ja Ja Ja Ja
Türkçe turkiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Українська ukrainska Nej Nej Nej Nej Ja Ja Ja Ja Ja
O'zbekiska uzbekiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
Tiếng Việt vietnamesiska Nej Nej Nej Nej Ja Ja Ja Ja Ja
中文 (简体) Förenklad kinesiska) Nej Ja Ja Ja Ja Ja Ja Ja Ja
中文 (香港特別行政區) kinesiska (Hongkong) Nej Nej Nej Nej Nej Nej Ja Ja Ja
中文 (繁體) Traditionell Kinesisk) Nej Ja Ja Ja Ja Ja Ja Ja Ja

Patent

MUI-tekniken täcks av ett internationellt patent med titeln "Multilingual User Interface for an Operating System". Uppfinnarna är Bjorn C. Rettig, Edward S. Miller, Gregory Wilson och Shan Xu.

Se även