Language Codes: ISO 639, Microsoft and Macintosh

 

 1996.12.19 Mark Davis First version
 1997.04.14 Mark Davis Updates based on feedback from Michael Everson
 1997.07.08 Mark Davis Updates from K.D. Chang (Microsoft)
 2001.07.16 Michael S. Kaplan Updates from Microsoft and Apple for new languages
 2002.09.16 Magda Danish Updates from ISO 639-2 Change Notices

 

The following is a draft list of language code correspondences between ISO codes, Microsoft codes, and Macintosh codes. (USMARC language and country codes are not included in this list).

The correspondences are not 1-1. Macintosh codes sometimes have two variants, depending on the script the language is written. In such cases, the script is indicated in parantheses in the name (where not clear from the name itself), with a one-letter abbreviation on the code. Similarly, Microsoft codes are sometimes not script-specific and in cases where a language is not really properly identified without this information, the script information appears as well.

Macintosh constants and codes are defined in enumerations in the Mac header file Script.h and Windows constants and codes are defined in the Platform SDK header file winnt.h. Note that many of the Microsoft codes have no "Windows Name" constant (these are marked "(no constant defined)" and refer to codes that have been reserved for the languages in question. For more information about the LCID (Locale ID) parameter (of which the PRIMARY_LANGID codes given below are merely a part), see the Microsoft Platform SDK docs.

Unfortunately, ISO codes are not stable, and have changed over time. There are currently three languages with multiple codes (for Hebrew, Indonesian, and Yiddish). So that you can communicate both with new and old software, one strategy is the following:

  • When reading: always read and interpret both of the variants
  • When writing: write the second, (oldest) one - marked with an asterisk - for legacy applications that cannot manage correctly the new standard code or for classes of applications for which you are not certain that they can use the new standard. All applications, file formats and protocols specified after 1995 should work with the new standard code (this will include all XML and HTML4.01 applications, and all applications that can use version 3.0 of the Unicode standard)

If you find an error in this information, please contact the Unicode office. Please note, however, that the Unicode Consortium does not own or maintain ISO 639 and neither bears responsibility for its contents nor has the ability to change them. Please do not contact the Unicode Consortium if the ISO 639 language names are not what you believe they should be. Similarly, the Unicode is not responsible for the names or codes used by Microsoft or Macintosh.

LanguageISO CodeWindows NameWin CodeMac NameMac Code
Abkhazian ab        
Afar aa        
Afrikaans af LANG_AFRIKAANS 0x36 langAfricaans 141
Albanian sq LANG_ALBANIAN 0x1c langAlbanian 36
Amharic am (no constant defined) 0x5e langAmharic 85
Arabic ar LANG_ARABIC 0x01 langArabic 12
Armenian hy LANG_ARMENIAN 0x2b langArmenian 51
Assamese as LANG_ASSAMESE 0x4d langAssamese 68
Aymara ay     langAymara 134
Azerbaijani az LANG_AZERI 0x2c langAzerbaijani(Cyrllic), langAzerbaijanAr(Arabic) 49(C), 50(A)
Bashkir ba        
Basque eu LANG_BASQUE 0x2d langBasque 129
Bengali (Bangla) bn LANG_BENGALI 0x45 langBengali 67
Bhutani dz     langDzongkha 137
Bihari bh        
Bislama bi        
Breton br     langBreton 142
Bulgarian bg LANG_BULGARIAN 0x02 langBulgarian 44
Burmese my (no constant defined) 0x55 langBurmese 77
Byelorussian (Belarusian) be LANG_BELARUSIAN 0x23 langByelorussian 46
Cambodian km (no constant defined) 0x53 langKhmer 78
Catalan ca LANG_CATALAN 0x03 langCatalan 130
Cherokee   (no constant defined) 0x5c    
Chewa       langChewa 92
Chinese (Simplified) zh LANG_CHINESE (SUBLANG_CHINESE_SIMPLIFIED) 0x04 (0x0804) langSimpChinese 33
Chinese (Traditional) zh LANG_CHINESE (SUBLANG_CHINESE_TRADITIONAL) 0x04 (0x0404) langTradChinese 19
Corsican co        
Croatian hr LANG_CROATIAN 0x1a langCroatian 18
Czech cs LANG_CZECH 0x05 langCzech 38
Danish da LANG_DANISH 0x06 langDanish 7
Divehi   LANG_DIVEHI 0x65    
Dutch nl LANG_DUTCH 0x13 langDutch 4
Edo   (no constant defined) 0x66    
English en LANG_ENGLISH 0x09 langEnglish 0
Esperanto eo     langEsperanto 94
Estonian et LANG_ESTONIAN 0x25 langEstonian 27
Faeroese fo LANG_FAEROESE 0x38 langFaeroese 30
Farsi fa LANG_FARSI 0x29 langFarsi, langPersian 31
Fiji fj        
Finnish fi LANG_FINNISH 0x0b langFinnish 13
Flemish   LANG_DUTCH (SUBLANG_DUTCH_BELGIAN) 0x13 (0x0813) langFlemish 34
French fr LANG_FRENCH 0x0c langFrench 1
Frisian fy (no constant defined) 0x62    
Fulfulde   (no constant defined) 0x67    
Galician gl LANG_GALICIAN 0x56 langGalician 140
Gaelic (Scottish) gd (no constant defined) 0x3c (0x043c) langScottishGaelic 144
Gaelic (Manx) gv     langManxGaelic 145
Georgian ka LANG_GEORGIAN 0x37 langGeorgian 52
German de LANG_GERMAN 0x07 langGerman 2
Greek el LANG_GREEK 0x08 langGreek (monotonic), langGreekPoly (polytonic) 14(m), 148(p)
Greenlandic kl        
Guarani gn (no constant defined) 0x74 langGuarani 133
Gujarati gu LANG_GUJARATI 0x47 langGujarati 69
Hausa ha (no constant defined) 0x68    
Hawaiian   (no constant defined) 0x75    
Hebrew he, iw* LANG_HEBREW 0x0d langHebrew 10
Hindi hi LANG_HINDI 0x39 langHindi 21
Hungarian hu LANG_HUNGARIAN 0x0e langHungarian 26
Ibibio   (no constant defined) 0x69    
Icelandic is LANG_ICELANDIC 0x0f langIcelandic 15
Igbo   (no constant defined) 0x70    
Indonesian id, in* LANG_INDONESIAN 0x21 langIndonesian 81
Interlingua ia        
Interlingue ie        
Inuktitut iu (no constant defined) 0x5d langInuktitut 143
Inupiak ik        
Irish ga (no constant defined) 0x3c (0x083c) langIrishGaelic (normal), langIrishGaelicScr (dots above) 35, 146
Italian it LANG_ITALIAN 0x10 langItalian 3
Japanese ja LANG_JAPANESE 0x11 langJapanese 11
Javanese jv     langJavaneseRom 138
Kannada kn LANG_KANNADA 0x4b langKannada 73
Kanuri   (no constant defined) 0x71    
Kashmiri ks LANG_KASHMIRI 0x60 langKashmiri 61
Kazakh kk LANG_KAZAK 0x3f langKazakh 48
Kinyarwanda (Ruanda) rw     langKiryarwanda (langRuanda) 90
Kirghiz ky LANG_KYRGYZ 0x40 langKirghiz 54
Kirundi (Rundi) rn     langRundi 91
Konkani   LANG_KONKANI 0x57    
Korean ko LANG_KOREAN 0x12 langKorean 23
Kurdish ku     langKurdish 60
Laothian lo (no constant defined) 0x54 langLao 79
Latin la (no constant defined) 0x76 langLatin 131
Latvian (Lettish) lv LANG_LATVIAN 0x26 langLatvian 28
Limburgish ( Limburger) li        
Lingala ln        
Lithuanian lt LANG_LITHUANIAN 0x27 langLithuanian 24
Macedonian mk LANG_MACEDONIAN 0x2f langMacedonian 43
Malagasy mg     langMalagasy 93
Malay ms LANG_MALAY 0x3e langMalayRoman(Latin), langMalayArabic(Arabic) 83(L), 84(A)
Malayalam ml LANG_MALAYALAM 0x4c langMalayalam 72
    LANG_MANIPURI 0x58    
Maltese mt (no constant defined) 0x3a langMaltese 16
Maori mi        
Marathi mr LANG_MARATHI 0x4e langMarathi 66
Moldavian mo     langMoldavian 53
Mongolian mn LANG_MONGOLIAN 0x50 langMongolian(Mongolian), langMongolianCyr(Cyrillic) 57(M), 58(C)
Nauru na        
Nepali ne LANG_NEPALI 0x61 langNepali 64
Norwegian no LANG_NORWEGIAN 0x14 langNorwegian 9
Occitan oc        
Oriya or LANG_ORIYA 0x48 langOriya 71
Oromo (Afan, Galla) om (no constant defined) 0x72 langOromo (langGalla) 87
Papiamentu   (no constant defined) 0x79    
Pashto (Pushto) ps (no constant defined) 0x63 langPashto 59
Polish pl LANG_POLISH 0x15 langPolish 25
Portuguese pt LANG_PORTUGUESE 0x16 langPortuguese 8
Punjabi pa LANG_PUNJABI 0x46 langPunjabi 70
Quechua qu     langQuechua 132
Rhaeto-Romance rm (no constant defined) 0x17    
Romanian ro LANG_ROMANIAN 0x18 langRomanian 37
Russian ru LANG_RUSSIAN 0x19 langRussian 32
Sami (Lappish)   (no constant defined) 0x3b langSami (langLappish) 29
Samoan sm        
Sangro sg        
Sanskrit sa LANG_SANSKRIT 0x4f langSanskrit 65
Serbian sr LANG_SERBIAN (SUBLANG_SERBIAN_LATIN or SUBLANG_SERBIAN_CYRILLIC) 0x1a (0x081a or 0x0c1a) langSerbian 42
Serbo-Croatian sh        
Sesotho st        
Setswana tn        
Shona sn        
Sindhi sd LANG_SINDHI 0x59 langSindhi 62
Sinhalese si (no constant defined) 0x5b langSinhalese 76
Siswati ss        
Slovak sk LANG_SLOVAK 0x1b langSlovak 39
Slovenian sl LANG_SLOVENIAN 0x24 langSlovenian 40
Somali so (no constant defined) 0x77 langSomali 88
Spanish es LANG_SPANISH 0x0a langSpanish 6
Sundanese su     langSundaneseRom 139
Swahili (Kiswahili) sw LANG_SWAHILI 0x41 langSwahili 89
Swedish sv LANG_SWEDISH 0x1d langSwedish 5
Syriac   LANG_SYRIAC 0x5a    
Tagalog tl (no constant defined) 0x64 langTagalog 82
Tajik tg (no constant defined) 0x28 langTajiki 55
Tamazight   (no constant defined) 0x5f    
Tamil ta LANG_TAMIL 0x49 langTamil 74
Tatar tt LANG_TATAR 0x44 langTatar 135
Telugu te LANG_TELUGU 0x4a langTelugu 75
Thai th LANG_THAI 0x1e langThai 22
Tibetan bo (no constant defined) 0x51 langTibetan 63
Tigrinya ti (no constant defined) 0x73 langTigrinya 86
Tonga to     langTongan 147
Tsonga ts (no constant defined) 0x31    
Turkish tr LANG_TURKISH 0x1f langTurkish 17
Turkmen tk (no constant defined) 0x42 langTurkmen 56
Twi tw        
Uighur ug     langUighur 136
Ukrainian uk LANG_UKRAINIAN 0x22 langUkrainian 45
Urdu ur LANG_URDU 0x20 langUrdu 20
Uzbek uz LANG_UZBEK 0x43 langUzbek 47
Venda   (no constant defined) 0x33    
Vietnamese vi LANG_VIETNAMESE 0x2a langVietnamese 80
Volapük vo        
Welsh cy (no constant defined) 0x52 langWelsh 128
Wolof wo        
Xhosa xh (no constant defined) 0x34    
Yi   (no constant defined) 0x78    
Yiddish yi, ji* (no constant defined) 0x3d langYiddish 41
Yoruba yo (no constant defined) 0x6a    
Zulu zu (no constant defined) 0x35     

 

 

 

 

""(空字符串) 0x007F 固定区域性
af 0x0036 南非荷兰语
af-ZA 0x0436 南非荷兰语 - 南非
sq 0x001C 阿尔巴尼亚语
sq-AL 0x041C 阿尔巴尼亚语 - 阿尔巴尼亚
ar 0x0001 阿拉伯语
ar-DZ 0x1401 阿拉伯语 - 阿尔及利亚
ar-BH 0x3C01 阿拉伯语 - 巴林
ar-EG 0x0C01 阿拉伯语 - 埃及
ar-IQ 0x0801 阿拉伯语 - 伊拉克
ar-JO 0x2C01 阿拉伯语 - 约旦
ar-KW 0x3401 阿拉伯语 - 科威特
ar-LB 0x3001 阿拉伯语 - 黎巴嫩
ar-LY 0x1001 阿拉伯语 - 利比亚
ar-MA 0x1801 阿拉伯语 - 摩洛哥
ar-OM 0x2001 阿拉伯语 - 阿曼
ar-QA 0x4001 阿拉伯语 - 卡塔尔
ar-SA 0x0401 阿拉伯语 - 沙特阿拉伯
ar-SY 0x2801 阿拉伯语 - 叙利亚
ar-TN 0x1C01 阿拉伯语 - 突尼斯
ar-AE 0x3801 阿拉伯语 - 阿拉伯联合酋长国
ar-YE 0x2401 阿拉伯语 - 也门
hy 0x002B 亚美尼亚语
hy-AM 0x042B 亚美尼亚语 - 亚美尼亚
az 0x002C 阿泽里语
az-AZ-Cyrl 0x082C 阿泽里语(西里尔语)- 阿塞拜疆
az-AZ-Latn 0x042C 阿泽里语(拉丁)- 阿塞拜疆
eu 0x002D 巴斯克语
eu-ES 0x042D 巴斯克语 - 巴斯克地区
be 0x0023 白俄罗斯语
be-BY 0x0423 白俄罗斯语 - 白俄罗斯
bg 0x0002 保加利亚语
bg-BG 0x0402 保加利亚语 - 保加利亚
ca 0x0003 加泰罗尼亚语
ca-ES 0x0403 加泰罗尼亚语 - 加泰罗尼亚地区
zh-HK 0x0C04 中文 - 香港特别行政区
zh-MO 0x1404 中文 - 澳门特别行政区
zh-CN 0x0804 中文 - 中国
zh-CHS 0x0004 中文(简体)
zh-SG 0x1004 中文 - 新加坡
zh-TW 0x0404 中文 - 台湾
zh-CHT 0x7C04 中文(繁体)
hr 0x001A 克罗地亚语
hr-HR 0x041A 克罗地亚语 - 克罗地亚
cs 0x0005 捷克语
cs-CZ 0x0405 捷克语 - 捷克共和国
da 0x0006 丹麦语
da-DK 0x0406 丹麦语 - 丹麦
div 0x0065 马尔代夫语
div-MV 0x0465 马尔代夫语 - 马尔代夫
nl 0x0013 荷兰语
nl-BE 0x0813 荷兰语 - 比利时
nl-NL 0x0413 荷兰语 - 荷兰
en 0x0009 英语
en-AU 0x0C09 英语 - 澳大利亚
en-BZ 0x2809 英语 - 伯利兹
en-CA 0x1009 英语 - 加拿大
en-CB 0x2409 英语 - 加勒比
en-IE 0x1809 英语 - 爱尔兰
en-JM 0x2009 英语 - 牙买加
en-NZ 0x1409 英语 - 新西兰
en-PH 0x3409 英语 - 菲律宾
en-ZA 0x1C09 英语 - 南非
en-TT 0x2C09 英语 - 特立尼达和多巴哥
en-GB 0x0809 英语 - 英国
en-US 0x0409 英语 - 美国
en-ZW 0x3009 英语 - 津巴布韦
et 0x0025 爱沙尼亚语
et-EE 0x0425 爱沙尼亚语 - 爱沙尼亚
fo 0x0038 法罗语
fo-FO 0x0438 法罗语 - 法罗群岛
fa 0x0029 波斯语
fa-IR 0x0429 波斯语 - 伊朗
fi 0x000B 芬兰语
fi-FI 0x040B 芬兰语 - 芬兰
fr 0x000C 法语
fr-BE 0x080C 法语 - 比利时
fr-CA 0x0C0C 法语 - 加拿大
fr-FR 0x040C 法语 - 法国
fr-LU 0x140C 法语 - 卢森堡
fr-MC 0x180C 法语 - 摩纳哥
fr-CH 0x100C 法语 - 瑞士
gl 0x0056 加利西亚语
gl-ES 0x0456 加利西亚语 - 加利西亚地区
ka 0x0037 格鲁吉亚语
ka-GE 0x0437 格鲁吉亚语 - 格鲁吉亚
de 0x0007 德语
de-AT 0x0C07 德语 - 奥地利
de-DE 0x0407 德语 - 德国
de-LI 0x1407 德语 - 列支敦士登
de-LU 0x1007 德语 - 卢森堡
de-CH 0x0807 德语 - 瑞士
el 0x0008 希腊语
el-GR 0x0408 希腊语 - 希腊
gu 0x0047 古吉拉特语
gu-IN 0x0447 古吉拉特语 - 印度
he 0x000D 希伯来语
he-IL 0x040D 希伯来语 - 以色列
hi 0x0039 印地语
hi-IN 0x0439 印地语 - 印度
hu 0x000E 匈牙利语
hu-HU 0x040E 匈牙利语 - 匈牙利
is 0x000F 冰岛语
is-IS 0x040F 冰岛语 - 冰岛
id 0x0021 印度尼西亚语
id-ID 0x0421 印度尼西亚语 - 印度尼西亚
it 0x0010 意大利语
it-IT 0x0410 意大利语 - 意大利
it-CH 0x0810 意大利语 - 瑞士
ja 0x0011 日语
ja-JP 0x0411 日语 - 日本
kn 0x004B 卡纳达语
kn-IN 0x044B 卡纳达语 - 印度
kk 0x003F 哈萨克语
kk-KZ 0x043F 哈萨克语 - 哈萨克斯坦
kok 0x0057 贡根语
kok-IN 0x0457 贡根语 - 印度
ko 0x0012 朝鲜语
ko-KR 0x0412 朝鲜语 - 韩国
ky 0x0040 吉尔吉斯语
ky-KZ 0x0440 吉尔吉斯语 - 吉尔吉斯坦
lv 0x0026 拉脱维亚语
lv-LV 0x0426 拉脱维亚语 - 拉脱维亚
lt 0x0027 立陶宛语
lt-LT 0x0427 立陶宛语 - 立陶宛
mk 0x002F 马其顿语
mk-MK 0x042F 马其顿语 - FYROM
ms 0x003E 马来语
ms-BN 0x083E 马来语 - 文莱
ms-MY 0x043E 马来语 - 马来西亚
mr 0x004E 马拉地语
mr-IN 0x044E 马拉地语 - 印度
mn 0x0050 蒙古语
mn-MN 0x0450 蒙古语 - 蒙古
no 0x0014 挪威语
nb-NO 0x0414 挪威语(博克马尔)- 挪威
nn-NO 0x0814 挪威语(尼诺斯克)- 挪威
pl 0x0015 波兰语
pl-PL 0x0415 波兰语 - 波兰
pt 0x0016 葡萄牙语
pt-BR 0x0416 葡萄牙语 - 巴西
pt-PT 0x0816 葡萄牙语 - 葡萄牙
pa 0x0046 旁遮普语
pa-IN 0x0446 旁遮普语 - 印度
ro 0x0018 罗马尼亚语
ro-RO 0x0418 罗马尼亚语 - 罗马尼亚
ru 0x0019 俄语
ru-RU 0x0419 俄语 - 俄罗斯
sa 0x004F 梵语
sa-IN 0x044F 梵语 - 印度
sr-SP-Cyrl 0x0C1A 塞尔维亚语(西里尔语)- 塞尔维亚
sr-SP-Latn 0x081A 塞尔维亚语(拉丁)- 塞尔维亚
sk 0x001B 斯洛伐克语
sk-SK 0x041B 斯洛伐克语 - 斯洛伐克
sl 0x0024 斯洛文尼亚语
sl-SI 0x0424 斯洛文尼亚语 - 斯洛文尼亚
es 0x000A 西班牙语
es-AR 0x2C0A 西班牙语 - 阿根廷
es-BO 0x400A 西班牙语 - 玻利维亚
es-CL 0x340A 西班牙语 - 智利
es-CO 0x240A 西班牙语 - 哥伦比亚
es-CR 0x140A 西班牙语 - 哥斯达黎加
es-DO 0x1C0A 西班牙语 - 多米尼加共和国
es-EC 0x300A 西班牙语 - 厄瓜多尔
es-SV 0x440A 西班牙语 - 萨尔瓦多
es-GT 0x100A 西班牙语 - 危地马拉
es-HN 0x480A 西班牙语 - 洪都拉斯
es-MX 0x080A 西班牙语 - 墨西哥
es-NI 0x4C0A 西班牙语 - 尼加拉瓜
es-PA 0x180A 西班牙语 - 巴拿马
es-PY 0x3C0A 西班牙语 - 巴拉圭
es-PE 0x280A 西班牙 - 秘鲁
es-PR 0x500A 西班牙语 - 波多黎各
es-ES 0x0C0A 西班牙语 - 西班牙
es-UY 0x380A 西班牙语 - 乌拉圭
es-VE 0x200A 西班牙语 - 委内瑞拉
sw 0x0041 斯瓦希里语
sw-KE 0x0441 斯瓦希里语 - 肯尼亚
sv 0x001D 瑞典语
sv-FI 0x081D 瑞典语 - 芬兰
sv-SE 0x041D 瑞典语 - 瑞典
syr 0x005A 叙利亚语
syr-SY 0x045A 叙利亚语 - 叙利亚
ta 0x0049 泰米尔语
ta-IN 0x0449 泰米尔语 - 印度
tt 0x0044 鞑靼语
tt-RU 0x0444 鞑靼语 - 俄罗斯
te 0x004A 泰卢固语
te-IN 0x044A 泰卢固语 - 印度
th 0x001E 泰语
th-TH 0x041E 泰语 - 泰国
tr 0x001F 土耳其语
tr-TR 0x041F 土耳其语 - 土耳其
uk 0x0022 乌克兰语
uk-UA 0x0422 乌克兰语 - 乌克兰
ur 0x0020 乌尔都语
ur-PK 0x0420 乌尔都语 - 巴基斯坦
uz 0x0043 乌兹别克语
uz-UZ-Cyrl 0x0843 乌兹别克语(西里尔语)- 乌兹别克斯坦
uz-UZ-Latn 0x0443 乌兹别克语(拉丁)- 乌兹别克斯坦
vi 0x002A 越南语
vi-VN 0x042A 越南语 - 越南
posted @ 2011-12-16 18:48  Max Woods  阅读(741)  评论(0编辑  收藏  举报