天天看點

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****比特的二進制數來表示。後來,計算機在世界開始普及,為了适應多種文字,出現了多種編碼格式,例如中文漢字一般使用的編碼格式為GB2312、GBK。

由此,又産生了一個問題,不同字元編碼之間互相無法識别。于是,為了一統江湖,出現了 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
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
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
Colombia 哥倫比亞 CO 57
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
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
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