locale国际化与相关对照表

背景知识

现代软件开发,往往做出的应用程序不止给一个国家的人去使用。不同国家的人往往存在语言文字不通的问题。由此产生了国际化(internationalization)、多语言(multi-language)、本地化(locale)这些词,它们其实都是一个意思,支持多种语言,提供给不同国家的用户使用。

语言编码、国家/地区编码

做web 开发的朋友可能多多少少接触过类似 zh-cn, en-us 这样的编码字样。

这些编码是用来表示指定的国家地区的语言类型的。那么,这些含有特殊含义的编码是如何产生的呢?

ISO-639标准使用编码定义了国际上常见的语言,每一种语言由两个小写字母表示。

ISO-3166标准使用编码定义了国家/地区,每个国家/地区由两个大写字母表示。

为什么要用语言+国家/地区来标示语言呢?

道理很简单:拿咱们中国来说,同样是中文,全国各地的方言就多如牛毛,更不要说世界上有那么多种语言,得有多少方言?

下表列举了一些常见国家、地区的语言编码:

国家/地区 语言编码 国家/地区 语言编码
简体中文(中国) zh-cn 繁体中文(台湾地区) zh-tw
繁体中文(香港) zh-hk 英语(香港) en-hk
英语(美国) en-us 英语(英国) en-gb
英语(全球) en-ww 英语(加拿大) en-ca
英语(澳大利亚) en-au 英语(爱尔兰) en-ie
英语(芬兰) en-fi 芬兰语(芬兰) fi-fi
英语(丹麦) en-dk 丹麦语(丹麦) da-dk
英语(以色列) en-il 希伯来语(以色列) he-il
英语(南非) en-za 英语(印度) en-in
英语(挪威) en-no 英语(新加坡) en-sg
英语(新西兰) en-nz 英语(印度尼西亚) en-id
英语(菲律宾) en-ph 英语(泰国) en-th
英语(马来西亚) en-my 英语(阿拉伯) en-xa
韩文(韩国) ko-kr 日语(日本) ja-jp
荷兰语(荷兰) nl-nl 荷兰语(比利时) nl-be
葡萄牙语(葡萄牙) pt-pt 葡萄牙语(巴西) pt-br
法语(法国) fr-fr 法语(卢森堡) fr-lu
法语(瑞士) fr-ch 法语(比利时) fr-be
法语(加拿大) fr-ca 西班牙语(拉丁美洲) es-la
西班牙语(西班牙) es-es 西班牙语(阿根廷) es-ar
西班牙语(美国) es-us 西班牙语(墨西哥) es-mx
西班牙语(哥伦比亚) es-co 西班牙语(波多黎各) es-pr
德语(德国) de-de 德语(奥地利) de-at
德语(瑞士) de-ch 俄语(俄罗斯) ru-ru
意大利语(意大利) it-it 希腊语(希腊) el-gr
挪威语(挪威) no-no 匈牙利语(匈牙利) hu-hu
土耳其语(土耳其) tr-tr 捷克语(捷克共和国) cs-cz
斯洛文尼亚语 sl-sl 波兰语(波兰) pl-pl
瑞典语(瑞典) sv-se

注:由表中可以看出*语言、国家/**地区* *编码一般都是英文单词的缩写。*

字符编码

在此处,引申一下字符编码的概念。

是不是有了语言、国家/****地区编码,计算机就可以识别各种语言了?

答案是否。作为程序员,相信每个人都会遇到过这样的情况:,期望打印中文,结果输出的却是乱码。

这种情况,往往是因为字符编码的问题。

计算机在设计之初,并没有考虑多个国家,多种不同语言的应用场景。当时定义一种ASCII码,将字母、数字和其他符号编号用7****比特的二进制数来表示。后来,计算机在世界开始普及,为了适应多种文字,出现了多种编码格式,例如中文汉字一般使用的编码格式为GB2312GBK

由此,又产生了一个问题,不同字符编码之间互相无法识别。于是,为了一统江湖,出现了 unicode编码。它为每种语言的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台的文本转换需求。

有人不禁要问,既然 Unicode 可以支持所有语言的字符,那还要其他字符编码做什么

Unicode 有一个缺点:为了支持所有语言的字符,所以它需要用更多位数去表示,比如ASCII表示一个英文字符只需要一个字节,而 Unicode 则需要两个字节。很明显,如果字符数多,这样的效率会很低。

为了解决这个问题,有出现了一些中间格式的字符编码:如UTF-8、UTF-16、UTF-32等。中国程序员一般使用UTF-8编码。

各种系统设置的语言代码

af 南非荷兰语 sq 阿尔巴尼亚语
ar-sa 阿拉伯语(沙特阿拉伯) ar-iq 阿拉伯语(伊拉克)
ar-eg 阿拉伯语(埃及) ar-ly 阿拉伯语(利比亚)
ar-dz 阿拉伯语(阿尔及利亚) ar-ma 阿拉伯语(摩洛哥)
ar-tn 阿拉伯语(突尼斯) ar-om 阿拉伯语(阿曼)
ar-ye 阿拉伯语(也门) ar-sy 阿拉伯语(叙利亚)
ar-jo 阿拉伯语(约旦) ar-lb 阿拉伯语(黎巴嫩)
ar-kw 阿拉伯语(科威特) ar-ae 阿拉伯语(阿拉伯联合酋长国)
ar-bh 阿拉伯语(巴林) ar-qa 阿拉伯语(卡塔尔)
eu 巴斯克语 bg 保加利亚语
be 贝劳语 ca 加泰罗尼亚语
zh-tw 中文(中国台湾) zh-cn 中文(中华人民共和国)
zh-hk 中文(中国香港特别行政区) zh-sg 中文(新加坡)
hr 克罗地亚语 cs 捷克语
da 丹麦语 nl 荷兰语(标准)
nl-be 荷兰语(比利时) en 英语
en-us 英语(美国) en-gb 英语(英国)
en-au 英语(澳大利亚) en-ca 英语(加拿大)
en-nz 英语(新西兰) en-ie 英语(爱尔兰)
en-za 英语(南非) en-jm 英语(牙买加)
en 英语(加勒比) en-bz 英语(伯利兹)
en-tt 英语(特立尼达) et 爱沙尼亚语
fo 法罗语 fa 波斯语
fi 芬兰语 fr 法语(标准)
fr-be 法语(比利时) fr-ca 法语(加拿大)
fr-ch 法语(瑞士) fr-lu 法语(卢森堡)
gd 盖尔语(苏格兰) gd-ie 盖尔语(爱尔兰)
de 德语(标准) de-ch 德语(瑞士)
de-at 德语(奥地利) de-lu 德语(卢森堡)
de-li 德语(列支敦士登) el 希腊语
he 希伯来语 hi 北印度语
hu 匈牙利语 is 冰岛语
in 印度尼西亚语 it 意大利语(标准)
it-ch 意大利语(瑞士) ja 日语
ko 朝鲜语 ko 朝鲜语(韩国)
lv 拉脱维亚语 lt 立陶宛语
mk FYRO 马其顿语 ms 马来西亚语
mt 马耳他语 no 挪威语(博克马尔)
no 挪威语(尼诺斯克) pl 波兰语
pt-br 葡萄牙语(巴西) pt 葡萄牙语(葡萄牙)
rm 拉丁语系 ro 罗马尼亚语
ro-mo 罗马尼亚语(摩尔达维亚) ru 俄语
ru-mo 俄语(摩尔达维亚) sz 萨摩斯语(拉普兰)
sr 塞尔维亚语(西里尔) sr 塞尔维亚语(拉丁)
sk 斯洛伐克语 sl 斯洛文尼亚语
sb 索布语 es 西班牙语(西班牙传统)
es-mx 西班牙语(墨西哥) es 西班牙语(西班牙现代)
es-gt 西班牙语(危地马拉) es-cr 西班牙语(哥斯达黎加)
es-pa 西班牙语(巴拿马) es-do 西班牙语(多米尼加共和国)
es-ve 西班牙语(委内瑞拉) es-co 西班牙语(哥伦比亚)
es-pe 西班牙语(秘鲁) es-ar 西班牙语(阿根廷)
es-ec 西班牙语(厄瓜多尔) es-cl 西班牙语(智利)
es-uy 西班牙语(乌拉圭) es-py 西班牙语(巴拉圭)
es-bo 西班牙语(玻利维亚) es-sv 西班牙语(萨尔瓦多)
es-hn 西班牙语(洪都拉斯) es-ni 西班牙语(尼加拉瓜)
es-pr 西班牙语(波多黎各) sx 苏图语
sv 瑞典语 sv-fi 瑞典语(芬兰)
th 泰语 ts 汤加语
tn 瓦纳语 tr 土耳其语
uk 乌克兰语 ur 乌尔都语
ve 文达语 vi 越南语
xh 科萨语 ji 依地语
zu 祖鲁语
Display Text (English) Display Text (Localized) SWITCH Locale DataKey Primary URL Pattern
Arabic Arabic Arabic Arabic (AR) [Remove "Middle East and Africa"] ar_EG
Chinese - Taiwan 中文 - 台彎 Chinese Chinese (ZH) Simplified zh_CN
Chinese - China 中文 - 中国 Chinese (Taiwan) Chinese (ZH) Traditional zh_TW
Czech Český Czech Czech (CS) cs_CZ
Danish Dansk Danish Danish (DA) da_DK
Dutch Nederlands Dutch Dutch (NL) nl_NL
English - United States English - United States English English (EN) United States en_US
English - United Kingdom English - United Kingdom English (United Kingdom) English (EN) United Kingdom en_GB
Finnish Suomi Finnish Finnish (FI) fi_FI
French - France Français - France French French (FR) France fr_FR
French - Canada Français - Canada French (Canada) French (FR) Canada fr_CA
French - Switzerland Français - Suisse French (Switzerland) French (FR) Switzerland fr_CH
German - Austria Deutsch - Österreich German (Austria) German (DE) Austrian de_AT
German - Germany Deutsch - Deutschland German German (DE) Germany de_DE
German - Switzerland Deutsch - Schweiz German (Switzerland) German (DE) Switzerland de_CH
Greek Greek Greek Greek (EL) el_GR
Hungarian Magyar Hungarian Hungarian (HU) hu_HU
Italian Italiano Italian Italian (IT) it_IT
Japanese 日本語 Japanese (Japan) Japanese (JA) ja_JP
Korean Korean Korean Korean (KO) ko_KR
Norwegian Norsk Norwegian Norwegian (NB) nb_NO
Polish Polski Polish Polish (PL) pl_PL
Portuguese - Portugal Português - Portugal Portuguese Portuguese (PT) Portugal pt_PT
Portuguese - Brazil Português - Brasil Protuguese (Brazil) Portuguese (PT) Brazil pt_BR
Romanian Romanian Romanian Romanian (RO) ro_RO
Russian Russian Russian Russian (RU) ru_RU
Spanish Español Spanish (Spain) Spanish (ES) es_ES
Swedish Svenska Swedish Swedish (SV) -- Sverige sv_SE
Thai Thai Thai Thai (TH) th_TH
Turkish Türkçe Turkish Turkish (TR) tr_TR
Vietnamese Vietnamese Vietnamese Vietnamese (VN)

国家代号与区号

Countries and Regions 国家或地区 国际域名缩写 电话代码 时差
Angola 安哥拉 AO 244 -7
Afghanistan 阿富汗 AF 93 0
Albania 阿尔巴尼亚 AL 355 -7
Algeria 阿尔及利亚 DZ 213 -8
Andorra 安道尔共和国 AD 376 -8
Anguilla 安圭拉岛 AI 1264 -12
Antigua and Barbuda 安提瓜和巴布达 AG 1268 -12
Argentina 阿根廷 AR 54 -11
Armenia 亚美尼亚 AM 374 -6
Ascension 阿森松 247 -8
Australia 澳大利亚 AU 61 +2
Austria 奥地利 AT 43 -7
Azerbaijan 阿塞拜疆 AZ 994 -5
Bahamas 巴哈马 BS 1242 -13
Bahrain 巴林 BH 973 -5
Bangladesh 孟加拉国 BD 880 -2
Barbados 巴巴多斯 BB 1246 -12
Belarus 白俄罗斯 BY 375 -6
Belgium 比利时 BE 32 -7
Belize 伯利兹 BZ 501 -14
Benin 贝宁 BJ 229 -7
Bermuda Is. 百慕大群岛 BM 1441 -12
Bolivia 玻利维亚 BO 591 -12
Botswana 博茨瓦纳 BW 267 -6
Brazil 巴西 BR 55 -11
Brunei 文莱 BN 673 0
Bulgaria 保加利亚 BG 359 -6
Burkina-faso 布基纳法索 BF 226 -8
Burma 缅甸 MM 95 -1.3
Burundi 布隆迪 BI 257 -6
Cameroon 喀麦隆 CM 237 -7
Canada 加拿大 CA 1 -13
Cayman Is. 开曼群岛 1345 -13
Central African Republic 中非共和国 CF 236 -7
Chad 乍得 TD 235 -7
Chile 智利 CL 56 -13
China 中国 CN 86 0
Colombia 哥伦比亚 CO 57 0
Congo 刚果 CG 242 -7
Cook Is. 库克群岛 CK 682 -18.3
Costa Rica 哥斯达黎加 CR 506 -14
Cuba 古巴 CU 53 -13
Cyprus 塞浦路斯 CY 357 -6
Czech Republic 捷克 CZ 420 -7
Denmark 丹麦 DK 45 -7
Djibouti 吉布提 DJ 253 -5
Dominica Rep. 多米尼加共和国 DO 1890 -13
Ecuador 厄瓜多尔 EC 593 -13
Egypt 埃及 EG 20 -6
EI Salvador 萨尔瓦多 SV 503 -14
Estonia 爱沙尼亚 EE 372 -5
Ethiopia 埃塞俄比亚 ET 251 -5
Fiji 斐济 FJ 679 +4
Finland 芬兰 FI 358 -6
France 法国 FR 33 -8
French Guiana 法属圭亚那 GF 594 -12
Gabon 加蓬 GA 241 -7
Gambia 冈比亚 GM 220 -8
Georgia 格鲁吉亚 GE 995 0
Germany 德国 DE 49 -7
Ghana 加纳 GH 233 -8
Gibraltar 直布罗陀 GI 350 -8
Greece 希腊 GR 30 -6
Grenada 格林纳达 GD 1809 -14
Guam 关岛 GU 1671 +2
Guatemala 危地马拉 GT 502 -14
Guinea 几内亚 GN 224 -8
Guyana 圭亚那 GY 592 -11
Haiti 海地 HT 509 -13
Honduras 洪都拉斯 HN 504 -14
Hongkong 香港 HK 852 0
Hungary 匈牙利 HU 36 -7
Iceland 冰岛 IS 354 -9
India 印度 IN 91 -2.3
Indonesia 印度尼西亚 ID 62 -0.3
Iran 伊朗 IR 98 -4.3
Iraq 伊拉克 IQ 964 -5
Ireland 爱尔兰 IE 353 -4.3
Israel 以色列 IL 972 -6
Italy 意大利 IT 39 -7
Ivory Coast 科特迪瓦 225 -6
Jamaica 牙买加 JM 1876 -12
Japan 日本 JP 81 +1
Jordan 约旦 JO 962 -6
Kampuchea (Cambodia ) 柬埔寨 KH 855 -1
Kazakstan 哈萨克斯坦 KZ 327 -5
Kenya 肯尼亚 KE 254 -5
Korea 韩国 KR 82 +1
Kuwait 科威特 KW 965 -5
Kyrgyzstan 吉尔吉斯坦 KG 331 -5
Laos 老挝 LA 856 -1
Latvia 拉脱维亚 LV 371 -5
Lebanon 黎巴嫩 LB 961 -6
Lesotho 莱索托 LS 266 -6
Liberia 利比里亚 LR 231 -8
Libya 利比亚 LY 218 -6
Liechtenstein 列支敦士登 LI 423 -7
Lithuania 立陶宛 LT 370
posted @ 2020-05-29 10:05  千年轮回  阅读(3002)  评论(0编辑  收藏  举报