# @KBLayout, @MUILang, @OSLang values/codes

Possible return values (strings) of @KBLayout, @MUILang, @OSLang
List was generated from "Language Identifier Constants and Strings" in MSDN.
Note: Codes that contain letters could possible have the letters in uppercase.

Hex | Dec | Country code | Meaning
--- | --- | --- | ---
0401 | 1025 | ar-SA | Arabic - Saudi Arabia
0402 | 1026 | bg-BG | Bulgarian - Bulgaria
0403 | 1027 | ca-ES | Catalan - Spain
0404 | 1028 | zh-TW | Chinese (Traditional) - Taiwan
0405 | 1029 | cs-CZ | Czech - Czech Republic
0406 | 1030 | da-DK | Danish - Denmark
0407 | 1031 | de-DE | German - Germany
0408 | 1032 | el-GR | Greek - Greece
0409 | 1033 | en-US | English - United States
040A | 1034 | es-ES_tradnl | Spanish - Spain
040B | 1035 | fi-FI | Finnish - Finland
040C | 1036 | fr-FR | French - France
040D | 1037 | he-IL | Hebrew - Israel
040E | 1038 | hu-HU | Hungarian - Hungary
040F | 1039 | is-IS | Icelandic - Iceland
0410 | 1040 | it-IT | Italian - Italy
0411 | 1041 | ja-JP | Japanese - Japan
0412 | 1042 | ko-KR | Korean - Korea
0413 | 1043 | nl-NL | Dutch - Netherlands
0414 | 1044 | nb-NO | Norwegian (Bokmal) - Norway
0415 | 1045 | pl-PL | Polish - Poland
0416 | 1046 | pt-BR | Portuguese - Brazil
0417 | 1047 | rm-CH | Romansh - Switzerland
0418 | 1048 | ro-RO | Romanian - Romania
0419 | 1049 | ru-RU | Russian - Russia
041A | 1050 | hr-HR | Croatian - Croatia
041B | 1051 | sk-SK | Slovak - Slovakia
041C | 1052 | sq-AL | Albanian - Albania
041D | 1053 | sv-SE | Swedish - Sweden
041E | 1054 | th-TH | Thai - Thailand
041F | 1055 | tr-TR | Turkish - Turkey
0420 | 1056 | ur-PK | Urdu - Islamic Republic of Pakistan
0421 | 1057 | id-ID | Indonesian - Indonesia
0422 | 1058 | uk-UA | Ukrainian - Ukraine
0423 | 1059 | be-BY | Belarusian - Belarus
0424 | 1060 | sl-SI | Slovenian - Slovenia
0425 | 1061 | et-EE | Estonian - Estonia
0426 | 1062 | lv-LV | Latvian - Latvia
0427 | 1063 | lt-LT | Lithuanian - Lithuania
0428 | 1064 | tg-Cyrl-TJ | Tajik (Cyrillic) - Tajikistan
0429 | 1065 | fa-IR | Persian - Iran
042A | 1066 | vi-VN | Vietnamese - Vietnam
042B | 1067 | hy-AM | Armenian - Armenia
042C | 1068 | az-Latn-AZ | Azerbaijani (Latin) - Azerbaijan
042D | 1069 | eu-ES | Basque - Spain
042E | 1070 | hsb-DE | Upper Sorbian - Germany
042F | 1071 | mk-MK | Macedonian - North Macedonia
0430 | 1072 | st-ZA | Sotho - South Africa
0431 | 1073 | ts-ZA | Tsonga - South Africa
0432 | 1074 | tn-ZA | Setswana - South Africa
0433 | 1075 | ve-ZA | Venda - South Africa
0434 | 1076 | xh-ZA | Xhosa - South Africa
0435 | 1077 | zu-ZA | Zulu - South Africa
0436 | 1078 | af-ZA | Afrikaans - South Africa
0437 | 1079 | ka-GE | Georgian - Georgia
0438 | 1080 | fo-FO | Faroese - Faroe Islands
0439 | 1081 | hi-IN | Hindi - India
043A | 1082 | mt-MT | Maltese - Malta
043B | 1083 | se-NO | Sami (Northern) - Norway
043D | 1085 | yi-001 | Yiddish - World
043E | 1086 | ms-MY | Malay - Malaysia
043F | 1087 | kk-KZ | Kazakh - Kazakhstan
0440 | 1088 | ky-KG | Kyrgyz - Kyrgyzstan
0441 | 1089 | sw-KE | Kiswahili - Kenya
0442 | 1090 | tk-TM | Turkmen - Turkmenistan
0443 | 1091 | uz-Latn-UZ | Uzbek (Latin) - Uzbekistan
0444 | 1092 | tt-RU | Tatar - Russia
0445 | 1093 | bn-IN | Bangla - India
0446 | 1094 | pa-IN | Punjabi - India
0447 | 1095 | gu-IN | Gujarati - India
0448 | 1096 | or-IN | Odia - India
0449 | 1097 | ta-IN | Tamil - India
044A | 1098 | te-IN | Telugu - India
044B | 1099 | kn-IN | Kannada - India
044C | 1100 | ml-IN | Malayalam - India
044D | 1101 | as-IN | Assamese - India
044E | 1102 | mr-IN | Marathi - India
044F | 1103 | sa-IN | Sanskrit - India
0450 | 1104 | mn-MN | Mongolian (Cyrillic) - Mongolia
0451 | 1105 | bo-CN | Tibetan - People's Republic of China
0452 | 1106 | cy-GB | Welsh - United Kingdom
0453 | 1107 | km-KH | Khmer - Cambodia
0454 | 1108 | lo-LA | Lao - Lao P.D.R.
0455 | 1109 | my-MM | Burmese - Myanmar
0456 | 1110 | gl-ES | Galician - Spain
0457 | 1111 | kok-IN | Konkani - India
045A | 1114 | syr-SY | Syriac - Syria
045B | 1115 | si-LK | Sinhala - Sri Lanka
045C | 1116 | chr-Cher-US | Cherokee - United States
045D | 1117 | iu-Cans-CA | Inuktitut (Syllabics) - Canada
045E | 1118 | am-ET | Amharic - Ethiopia
045F | 1119 | tzm-Arab-MA | Central Atlas Tamazight (Arabic) - Morocco
0460 | 1120 | ks-Arab | Kashmiri - Perso-Arabic
0461 | 1121 | ne-NP | Nepali - Nepal
0462 | 1122 | fy-NL | Frisian - Netherlands
0463 | 1123 | ps-AF | Pashto - Afghanistan
0464 | 1124 | fil-PH | Filipino - Philippines
0465 | 1125 | dv-MV | Divehi - Maldives
0467 | 1127 | ff-Latn-NG | Fulah (Latin) - Nigeria
0467 | 1127 | ff-NG | Fulah - Nigeria
0468 | 1128 | ha-Latn-NG | Hausa (Latin) - Nigeria
046A | 1130 | yo-NG | Yoruba - Nigeria
046B | 1131 | quz-BO | Quechua - Bolivia
046C | 1132 | nso-ZA | Sesotho sa Leboa - South Africa
046D | 1133 | ba-RU | Bashkir - Russia
046E | 1134 | lb-LU | Luxembourgish - Luxembourg
046F | 1135 | kl-GL | Greenlandic - Greenland
0470 | 1136 | ig-NG | Igbo - Nigeria
0471 | 1137 | kr-Latn-NG | Kanuri (Latin) - Nigeria
0472 | 1138 | om-ET | Oromo - Ethiopia
0473 | 1139 | ti-ET | Tigrinya - Ethiopia
0474 | 1140 | gn-PY | Guarani - Paraguay
0475 | 1141 | haw-US | Hawaiian - United States
0476 | 1142 | la-VA | Latin - Vatican City
0477 | 1143 | so-SO | Somali - Somalia
0478 | 1144 | ii-CN | Yi - People's Republic of China
047A | 1146 | arn-CL | Mapudungun - Chile
047C | 1148 | moh-CA | Mohawk - Canada
047E | 1150 | br-FR | Breton - France
0480 | 1152 | ug-CN | Uyghur - People's Republic of China
0481 | 1153 | mi-NZ | Maori - New Zealand
0482 | 1154 | oc-FR | Occitan - France
0483 | 1155 | co-FR | Corsican - France
0484 | 1156 | gsw-FR | Alsatian - France
0485 | 1157 | sah-RU | Sakha - Russia
0486 | 1158 | quc-Latn-GT | K'iche - Guatemala
0487 | 1159 | rw-RW | Kinyarwanda - Rwanda
0488 | 1160 | wo-SN | Wolof - Senegal
048C | 1164 | prs-AF | Dari - Afghanistan
0491 | 1169 | gd-GB | Scottish Gaelic - United Kingdom
0492 | 1170 | ku-Arab-IQ | Central Kurdish - Iraq
0501 | 1281 | qps-ploc | Pseudo Language - Pseudo locale used for localization testing
05FE | 1534 | qps-ploca | Pseudo Language - Pseudo locale for east Asian/complex script localization testing
0801 | 2049 | ar-IQ | Arabic - Iraq
0803 | 2051 | ca-ES-valencia | Valencian - Spain
0804 | 2052 | zh-CN | Chinese (Simplified) - People's Republic of China
0807 | 2055 | de-CH | German - Switzerland
0809 | 2057 | en-GB | English - United Kingdom
080A | 2058 | es-MX | Spanish - Mexico
080C | 2060 | fr-BE | French - Belgium
0810 | 2064 | it-CH | Italian - Switzerland
0813 | 2067 | nl-BE | Dutch - Belgium
0814 | 2068 | nn-NO | Norwegian (Nynorsk) - Norway
0816 | 2070 | pt-PT | Portuguese - Portugal
0818 | 2072 | ro-MD | Romanian - Moldova
0819 | 2073 | ru-MD | Russian - Moldova
081A | 2074 | sr-Latn-CS | Serbian (Latin) - Serbia and Montenegro (Former)
081D | 2077 | sv-FI | Swedish - Finland
0820 | 2080 | ur-IN | Urdu - India
082C | 2092 | az-Cyrl-AZ | Azerbaijani (Cyrillic) - Azerbaijan
082E | 2094 | dsb-DE | Lower Sorbian - Germany
0832 | 2098 | tn-BW | Setswana - Botswana
083B | 2107 | se-SE | Sami (Northern) - Sweden
083C | 2108 | ga-IE | Irish - Ireland
083E | 2110 | ms-BN | Malay - Brunei Darussalam
0843 | 2115 | uz-Cyrl-UZ | Uzbek (Cyrillic) - Uzbekistan
0845 | 2117 | bn-BD | Bangla - Bangladesh
0846 | 2118 | pa-Arab-PK | Punjabi - Islamic Republic of Pakistan
0849 | 2121 | ta-LK | Tamil - Sri Lanka
0850 | 2128 | mn-Mong-CN | Mongolian (Traditional Mongolian) - People's Republic of China
0859 | 2137 | sd-Arab-PK | Sindhi - Islamic Republic of Pakistan
085D | 2141 | iu-Latn-CA | Inuktitut (Latin) - Canada
085F | 2143 | tzm-Latn-DZ | Tamazight (Latin) - Algeria
0860 | 2144 | ks-Deva-IN | Kashmiri (Devanagari) - India
0861 | 2145 | ne-IN | Nepali - India
0867 | 2151 | ff-Latn-SN | Fulah - Senegal
086B | 2155 | quz-EC | Quechua - Ecuador
0873 | 2163 | ti-ER | Tigrinya - Eritrea
09FF | 2559 | qps-plocm | Pseudo Language - Pseudo locale used for localization testing of mirrored locales
0C01 | 3073 | ar-EG | Arabic - Egypt
0C04 | 3076 | zh-HK | Chinese (Traditional) - Hong Kong S.A.R.
0C07 | 3079 | de-AT | German - Austria
0C09 | 3081 | en-AU | English - Australia
0C0A | 3082 | es-ES | Spanish - Spain
0C0C | 3084 | fr-CA | French - Canada
0C1A | 3098 | sr-Cyrl-CS | Serbian (Cyrillic) - Serbia and Montenegro (Former)
0C3B | 3131 | se-FI | Sami (Northern) - Finland
0C50 | 3152 | mn-Mong-MN | Mongolian (Traditional Mongolian) - Mongolia
0C51 | 3153 | dz-BT | Dzongkha - Bhutan
0C6B | 3179 | quz-PE | Quechua - Peru
1001 | 4097 | ar-LY | Arabic - Libya
1004 | 4100 | zh-SG | Chinese (Simplified) - Singapore
1007 | 4103 | de-LU | German - Luxembourg
1009 | 4105 | en-CA | English - Canada
100A | 4106 | es-GT | Spanish - Guatemala
100C | 4108 | fr-CH | French - Switzerland
101A | 4122 | hr-BA | Croatian (Latin) - Bosnia and Herzegovina
103B | 4155 | smj-NO | Sami (Lule) - Norway
1401 | 5121 | ar-DZ | Arabic - Algeria
1404 | 5124 | zh-MO | Chinese (Traditional) - Macao S.A.R.
1407 | 5127 | de-LI | German - Liechtenstein
1409 | 5129 | en-NZ | English - New Zealand
140A | 5130 | es-CR | Spanish - Costa Rica
140C | 5132 | fr-LU | French - Luxembourg
141A | 5146 | bs-Latn-BA | Bosnian (Latin) - Bosnia and Herzegovina
143B | 5179 | smj-SE | Sami (Lule) - Sweden
1801 | 6145 | ar-MA | Arabic - Morocco
1809 | 6153 | en-IE | English - Ireland
180A | 6154 | es-PA | Spanish - Panama
180C | 6156 | fr-MC | French - Principality of Monaco
181A | 6170 | sr-Latn-BA | Serbian (Latin) - Bosnia and Herzegovina
183B | 6203 | sma-NO | Sami (Southern) - Norway
1C01 | 7169 | ar-TN | Arabic - Tunisia
1C09 | 7177 | en-ZA | English - South Africa
1C0A | 7178 | es-DO | Spanish - Dominican Republic
1C0C | 7180 | fr-029 | French - Caribbean
1C1A | 7194 | sr-Cyrl-BA | Serbian (Cyrillic) - Bosnia and Herzegovina
1C3B | 7227 | sma-SE | Sami (Southern) - Sweden
2001 | 8193 | ar-OM | Arabic - Oman
2009 | 8201 | en-JM | English - Jamaica
200A | 8202 | es-VE | Spanish - Bolivarian Republic of Venezuela
200C | 8204 | fr-RE | French - Reunion
201A | 8218 | bs-Cyrl-BA | Bosnian (Cyrillic) - Bosnia and Herzegovina
203B | 8251 | sms-FI | Sami (Skolt) - Finland
2401 | 9217 | ar-YE | Arabic - Yemen
2409 | 9225 | en-029 | English - Caribbean
240A | 9226 | es-CO | Spanish - Colombia
240C | 9228 | fr-CD | French - Congo, DRC
241A | 9242 | sr-Latn-RS | Serbian (Latin) - Serbia
243B | 9275 | smn-FI | Sami (Inari) - Finland
2801 | 10241 | ar-SY | Arabic - Syria
2809 | 10249 | en-BZ | English - Belize
280A | 10250 | es-PE | Spanish - Peru
280C | 10252 | fr-SN | French - Senegal
281A | 10266 | sr-Cyrl-RS | Serbian (Cyrillic) - Serbia
2C01 | 11265 | ar-JO | Arabic - Jordan
2C09 | 11273 | en-TT | English - Trinidad and Tobago
2C0A | 11274 | es-AR | Spanish - Argentina
2C0C | 11276 | fr-CM | French - Cameroon
2C1A | 11290 | sr-Latn-ME | Serbian (Latin) - Montenegro
3001 | 12289 | ar-LB | Arabic - Lebanon
3009 | 12297 | en-ZW | English - Zimbabwe
300A | 12298 | es-EC | Spanish - Ecuador
300C | 12300 | fr-CI | French - Côte d'Ivoire
301A | 12314 | sr-Cyrl-ME | Serbian (Cyrillic) - Montenegro
3401 | 13313 | ar-KW | Arabic - Kuwait
3409 | 13321 | en-PH | English - Republic of the Philippines
340A | 13322 | es-CL | Spanish - Chile
340C | 13324 | fr-ML | French - Mali
3801 | 14337 | ar-AE | Arabic - U.A.E.
380A | 14346 | es-UY | Spanish - Uruguay
380C | 14348 | fr-MA | French - Morocco
3C01 | 15361 | ar-BH | Arabic - Bahrain
3C09 | 15369 | en-HK | English - Hong Kong
3C0A | 15370 | es-PY | Spanish - Paraguay
3C0C | 15372 | fr-HT | French - Haiti
4001 | 16385 | ar-QA | Arabic - Qatar
4009 | 16393 | en-IN | English - India
400A | 16394 | es-BO | Spanish - Bolivia
4409 | 17417 | en-MY | English - Malaysia
440A | 17418 | es-SV | Spanish - El Salvador
4809 | 18441 | en-SG | English - Singapore
480A | 18442 | es-HN | Spanish - Honduras
4C09 | 19465 | en-AE | English - United Arab Emirates
4C0A | 19466 | es-NI | Spanish - Nicaragua
500A | 20490 | es-PR | Spanish - Puerto Rico
540A | 21514 | es-US | Spanish - United States
580A | 22538 | es-419 | Spanish - Latin America
5C0A | 23562 | es-CU | Spanish - Cuba

## Example

    #include <MsgBoxConstants.au3>

    MsgBox($MB_SYSTEMMODAL, "", "The language of the OS is: " & _GetLanguage(@OSLang) & " (" & _WinAPI_LCIDToLocaleName("0x" & @OSLang) & ")")

    ; Retrieve the language of the operating system.
    Func _GetLanguage($sOSLang)
        ; @OSLang is four characters in length, the first two is the dialect and the remaining two are the language group.
        ; Therefore we only require the language group and therefore select the two right-most characters.
        $sOSLang = StringRight($sOSLang, 2)
        Local $aArray = [[131,""], _
                ["36", "Afrikaans"], ["1C", "Albanian"], ["84", "Alsatian"], ["5E", "Amharic"], ["01", "Arabic"], _
                ["2B", "Armenian"], ["4D", "Assamese"], ["2C", "Azerbaijani (*)"], ["45", "Bangla"], _
                ["6D", "Bashkir"], ["2D", "Basque"], ["23", "Belarusian"], ["7E", "Breton"], ["02", "Bulgarian"], _
                ["55", "Burmese"], ["03", "Catalan"], ["5F", "Central Atlas Tamazight (*)"], ["5C", "Cherokee"], _
                ["04", "Chinese (*)"], ["83", "Corsican"], ["05", "Czech"], ["06", "Danish"], ["8C", "Dari"], _
                ["65", "Divehi"], ["13", "Dutch"], ["09", "English"], ["25", "Estonian"], ["38", "Faroese"], _
                ["64", "Filipino"], ["0B", "Finnish"], ["0C", "French"], ["62", "Frisian"], ["67", "Fulah"], _
                ["56", "Galician"], ["37", "Georgian"], ["07", "German"], ["08", "Greek"], ["6F", "Greenlandic"], _
                ["74", "Guarani"], ["47", "Gujarati"], ["68", "Hausa (*)"], ["75", "Hawaiian"], ["0D", "Hebrew"], _
                ["39", "Hindi"], ["0E", "Hungarian"], ["0F", "Icelandic"], ["70", "Igbo"], ["21", "Indonesian"], _
                ["5D", "Inuktitut (*)"], ["3C", "Irish"], ["10", "Italian"], ["11", "Japanese"], ["4B", "Kannada"], _
                ["71", "Kanuri (*)"], ["60", "Kashmiri (*)"], ["3F", "Kazakh"], ["53", "Khmer"], ["86", "K'iche"], _
                ["87", "Kinyarwanda"], ["41", "Kiswahili"], ["57", "Konkani"], ["12", "Korean"], ["40", "Kyrgyz"], _
                ["54", "Lao"], ["76", "Latin"], ["26", "Latvian"], ["27", "Lithuanian"], ["2E", "Lower Sorbian"], _
                ["6E", "Luxembourgish"], ["2F", "Macedonian"], ["3E", "Malay"], ["4C", "Malayalam"], _
                ["3A", "Maltese"], ["81", "Maori"], ["7A", "Mapudungun"], ["4E", "Marathi"], ["7C", "Mohawk"], _
                ["50", "Mongolian (*)"], ["61", "Nepali"], ["14", "Norwegian (*)"], ["82", "Occitan"], _
                ["48", "Odia"], ["72", "Oromo"], ["63", "Pashto"], ["29", "Persian"], ["15", "Polish"], _
                ["16", "Portuguese"], ["46", "Punjabi"], ["6B", "Quechua"], ["18", "Romanian"], ["17", "Romansh"], _
                ["19", "Russian"], ["85", "Sakha"], ["3B", "Sami (*)"], ["4F", "Sanskrit"], ["91", "Scottish Gaelic"], _
                ["1A", "Serbian (*)"], ["6C", "Sesotho sa Leboa"], ["32", "Setswana"], ["59", "Sindhi"], _
                ["5B", "Sinhala"], ["1B", "Slovak"], ["24", "Slovenian"], ["77", "Somali"], ["30", "Sotho"], _
                ["0A", "Spanish"], ["1D", "Swedish"], ["5A", "Syriac"], ["28", "Tajik (*)"], ["49", "Tamil"], _
                ["44", "Tatar"], ["4A", "Telugu"], ["1E", "Thai"], ["51", "Tibetan"], ["73", "Tigrinya"], _
                ["31", "Tsonga"], ["1F", "Turkish"], ["42", "Turkmen"], ["22", "Ukrainian"], ["20", "Urdu"], _
                ["80", "Uyghur"], ["43", "Uzbek (*)"], ["33", "Venda"], ["2A", "Vietnamese"], ["52", "Welsh"], _
                ["88", "Wolof"], ["34", "Xhosa"], ["78", "Yi"], ["3D", "Yiddish"], ["6A", "Yoruba"]]

        For $n = 1 To $aArray[0][0]
            If $aArray[$n][0] = $sOSLang Then Return SetError(0, '0x' & $sOSLang, $aArray[$n][1])
        Next

        Return SetError(1, '0x' & $sOSLang, "Other (not included in this list)")
    EndFunc   ;==>_GetLanguage

    Func _WinAPI_LCIDToLocaleName($iLCID)
        Local $aRet = DllCall("kernel32.dll", "int", "LCIDToLocaleName", "int", $iLCID, "wstr", "", "int", 85, "dword", 0)
        Return $aRet[2]
    EndFunc   ;==>LCIDToLocaleName