1. 程式人生 > >我的Java開發學習之旅------>Java資源的國際化詳解

我的Java開發學習之旅------>Java資源的國際化詳解

國際化相關的Java類

Java國際化主要通過如下3個類完成

  • java.util.ResourceBundle:用於載入一個資源包
  • java.util.Locale:對應一個特定的國家/區域、語言環境。
  • java.text.MessageFormat:用於將訊息格式化

國際化資原始檔

為實現程式的國際化,必須提供程式所需要的資原始檔。資原始檔的內容由key-value對組成。

資原始檔的命名可以有3種格式:

  • basename_language_country.properties
  • basename_language.properties
  • basename_properties

若資原始檔包含非西方字元,則需要用JDK自帶的工具來處理:native2ascii,這個工具的語法格式如下:

native2ascii 資原始檔名 目標資原始檔名

如:

native2ascii mess_zh_XXX.proerties mess_zh_CN.proerties

Locale類可獲取各國區域環境(如:Locale.ENGLISH、Locale.CHINESE,這些常量返回一個Locale例項),也可以獲取當前系統所使用的區域語言環境。

ResourceBundle類可根據指定引數獲取相應的資源,常用方法如下

ResourceBundle.getBundle(basename)//獲取當前系統所使用的區域環境獲得指定資原始檔

ResourceBundle.getBundle(basename,locale)//根據指定的區域獲取對應的資原始檔

語言環境


在 Java 語言中,語言環境(locale)僅僅是一個識別符號,而不是一組本地化的屬性。java.util.Locale 類的一個例項表示一個特定的地理政治區域,使用表示語言、區域以及國家或地區的引數建立。每個與語言環境相關的類都維護著它自己的一組本地化屬性,並且確定如何對含有 Locale 引數的方法請求做出響應。

Java支援的語言和國家

若要獲取Java所支援的語言和國家,可呼叫Locale類的getAvailableLocale方法獲取,該方法返回一個Locale陣列,該數組裡包含了java所支援的語言和國家。

java程式碼如下:

Locale[] localeList = Locale.getAvailableLocales();
for(int i=0; i<localeList.length; i++) {
System.out.println(localeList[i].getDisplayCountry()+"="+localeList[i].getCounrtry() + " " + localeList[i].getDisplayLanguage() + "=" +localeList[i].getLanguage());
}
}


1、各國語言縮寫

en 英文
en_US 英文 (美國)
ar 阿拉伯文
ar_AE 阿拉伯文 (阿拉伯聯合大公國)
ar_BH 阿拉伯文 (巴林)
ar_DZ 阿拉伯文 (阿爾及利亞)
ar_EG 阿拉伯文 (埃及)
ar_IQ 阿拉伯文 (伊拉克)
ar_JO 阿拉伯文 (約旦)
ar_KW 阿拉伯文 (科威特)
ar_LB 阿拉伯文 (黎巴嫩)
ar_LY 阿拉伯文 (利比亞)
ar_MA 阿拉伯文 (摩洛哥)
ar_OM 阿拉伯文 (阿曼)
ar_QA 阿拉伯文 (卡達)
ar_SA 阿拉伯文 (沙烏地阿拉伯)
ar_SD 阿拉伯文 (蘇丹)
ar_SY 阿拉伯文 (敘利亞)
ar_TN 阿拉伯文 (突尼西亞)
ar_YE 阿拉伯文 (葉門)
be 白俄羅斯文
be_BY 白俄羅斯文 (白俄羅斯)
bg 保加利亞文
bg_BG 保加利亞文 (保加利亞)
ca 加泰羅尼亞文
ca_ES 加泰羅尼亞文 (西班牙)
ca_ES_EURO 加泰羅尼亞文 (西班牙,Euro)
cs 捷克文
cs_CZ 捷克文 (捷克共和國)
da 丹麥文
da_DK 丹麥文 (丹麥)
de 德文
de_AT 德文 (奧地利)
de_AT_EURO 德文 (奧地利,Euro)
de_CH 德文 (瑞士)
de_DE 德文 (德國)
de_DE_EURO 德文 (德國,Euro)
de_LU 德文 (盧森堡)
de_LU_EURO 德文 (盧森堡,Euro)
el 希臘文
el_GR 希臘文 (希臘)
en_AU 英文 (澳大利亞)
en_CA 英文 (加拿大)
en_GB 英文 (英國)
en_IE 英文 (愛爾蘭)
en_IE_EURO 英文 (愛爾蘭,Euro)
en_NZ 英文 (紐西蘭)
en_ZA 英文 (南非)
es 西班牙文
es_BO 西班牙文 (玻利維亞)
es_AR 西班牙文 (阿根廷)
es_CL 西班牙文 (智利)
es_CO 西班牙文 (哥倫比亞)
es_CR 西班牙文 (哥斯大黎加)
es_DO 西班牙文 (多明尼加共和國)
es_EC 西班牙文 (厄瓜多)
es_ES 西班牙文 (西班牙)
es_ES_EURO 西班牙文 (西班牙,Euro)
es_GT 西班牙文 (瓜地馬拉)
es_HN 西班牙文 (宏都拉斯)
es_MX 西班牙文 (墨西哥)
es_NI 西班牙文 (尼加拉瓜)
et 愛沙尼亞文
es_PA 西班牙文 (巴拿馬)
es_PE 西班牙文 (祕魯)
es_PR 西班牙文 (波多黎哥)
es_PY 西班牙文 (巴拉圭)
es_SV 西班牙文 (薩爾瓦多)
es_UY 西班牙文 (烏拉圭)
es_VE 西班牙文 (委內瑞拉)
et_EE 愛沙尼亞文 (愛沙尼亞)
fi 芬蘭文
fi_FI 芬蘭文 (芬蘭)
fi_FI_EURO 芬蘭文 (芬蘭,Euro)
fr 法文
fr_BE 法文 (比利時)
fr_BE_EURO 法文 (比利時,Euro)
fr_CA 法文 (加拿大)
fr_CH 法文 (瑞士)
fr_FR 法文 (法國)
fr_FR_EURO 法文 (法國,Euro)
fr_LU 法文 (盧森堡)
fr_LU_EURO 法文 (盧森堡,Euro)
hr 克羅埃西亞文
hr_HR 克羅埃西亞文 (克羅埃西亞)
hu 匈牙利文
hu_HU 匈牙利文 (匈牙利)
is 冰島文
is_IS 冰島文 (冰島)
it 義大利文
it_CH 義大利文 (瑞士)
it_IT 義大利文 (義大利)
it_IT_EURO 義大利文 (義大利,Euro)
iw 希伯來文
iw_IL 希伯來文 (以色列)
ja 日文
ja_JP 日文 (日本)
ko 朝鮮文
ko_KR 朝鮮文 (南朝鮮)
lt 立陶宛文
lt_LT 立陶宛文 (立陶宛)
lv 拉托維亞文(列託)
lv_LV 拉托維亞文(列託) (拉脫維亞)
mk 馬其頓文
mk_MK 馬其頓文 (馬其頓王國)
nl 荷蘭文
nl_BE 荷蘭文 (比利時)
nl_BE_EURO 荷蘭文 (比利時,Euro)
nl_NL 荷蘭文 (荷蘭)
nl_NL_EURO 荷蘭文 (荷蘭,Euro)
no 挪威文
no_NO 挪威文 (挪威)
no_NO_NY 挪威文 (挪威,Nynorsk)
pl 波蘭文
pl_PL 波蘭文 (波蘭)
pt 葡萄牙文
pt_BR 葡萄牙文 (巴西)
pt_PT 葡萄牙文 (葡萄牙)
pt_PT_EURO 葡萄牙文 (葡萄牙,Euro)
ro 羅馬尼亞文
ro_RO 羅馬尼亞文 (羅馬尼亞)
ru 俄文
ru_RU 俄文 (俄羅斯)
sh 塞波尼斯-克羅埃西亞文
sh_YU 塞波尼斯-克羅埃西亞文 (南斯拉夫)
sk 斯洛伐克文
sk_SK 斯洛伐克文 (斯洛伐克)
sl 斯洛維尼亞文
sl_SI 斯洛維尼亞文 (斯洛維尼亞)
sq 阿爾巴尼亞文
sq_AL 阿爾巴尼亞文 (阿爾巴尼亞)
sr 塞爾維亞文
sr_YU 塞爾維亞文 (南斯拉夫)
sv 瑞典文
sv_SE 瑞典文 (瑞典)
th 泰文
th_TH 泰文 (泰國)
tr 土耳其文
tr_TR 土耳其文 (土耳其)
uk 烏克蘭文
uk_UA 烏克蘭文 (烏克蘭)
zh 中文
zh_CN 中文 (中國)
zh_HK 中文 (香港)
zh_TW 中文 (臺灣) 


2、國家和地區簡寫及全稱

阿爾巴尼亞  AL  Albania
阿爾及利亞  DZ  Algeria
阿富汗  AF  Afghanistan
阿根廷  AR  Argentina
阿拉伯聯合大公國  AZ  Azerbaijan
阿拉伯聯合大公國  AE  United Arab Emirates
阿拉伯葉門共和國    
阿拉斯加    
阿魯巴  AW  Aruba
阿魯巴島    
阿曼    
阿曼  OM  Oman
亞塞拜然共和國    
阿森鬆    
埃及  EG  Egypt
衣索比亞  ET  Ethiopia
愛爾蘭  IE  Ireland
愛沙尼亞  EE  Estonia
安道爾  AD  Andorra
安哥拉  AO  Angola
安圭拉  AI  Angola
安地卡及巴布達  AG  Ntigua and Barbuda
奧地利  AT  Austria
澳大利亞  AU  Australia
巴貝多  BB  Barbados
巴布亞紐幾內亞  PG  Papua,Territory of
巴哈馬  BS  Bahamas
巴基斯坦  PK  Pakistan
國家或地區名稱(中文)  地區程式碼  國家或地區名稱(英文)
巴拉圭  PY  Paraguay
巴勒斯坦    
巴林  BH  Bahrain
巴拿馬  PA  Panama
巴西  BR  Brazil
白俄羅斯共和  BY  White Russia
白俄羅斯共和  BY  Byelorussian SSR
百慕大  BM  Bermuda
保加利亞  BG  Bulgaria
北馬裡亞納群島    
貝南  BJ  Benin
比利時  BE  Belgium
冰島  IS  Iceland
波多黎各(美)  PR  Puerto Rico
波蘭  PL  Poland
波斯尼亞和黑塞哥維那 BA  Bosnia Hercegovina
玻利維亞  BO  Bolivia
貝里斯  BZ  Belize
波札那  BW  Botswana
不丹  BT  Bhutan
不列顛島(美)  VI  Vigin Islands(U.S.)
不列顛島(英)  VG  Virgin Islands(British)
布吉納法索  BF  Burkina Faso
蒲隆地  BI  Burundi
布維島  BV  Bouvet Island
朝鮮  KP  North Korea
赤道幾內亞  GQ  Equatorial Guinea
大西洋東區(海事衛星)    
大西洋區(海事衛星)    
丹麥  DK  Denmark
德國  DE  Grmany
東帝  TP  East Timor
東非共同體    
東薩摩亞    
多哥  TG  Togo
多明尼加共和國  DO  Dominica
多明哥  DM  Gominica
俄羅斯聯邦  RU  Russia
厄瓜多  EC  Ecuador
厄利垂亞    
法國  FR  France
法屬玻里尼西亞  PF  French Polynesia
法屬蓋亞那  GF  French Guiana
國家或地區名稱(中文)  地區程式碼  國家或地區名稱(英文)
法屬南方領土  TF  French Southern Territoties
梵蒂岡(羅馬教庭)  VA  Vatican
菲律賓  PH  Philippines
斐濟  FJ  Fiji
芬蘭  FI  Finland
維德角  CV  Cape Verde,Republic of
福克蘭群島  FK  Falkland Islands
甘比亞  GM  Gambia
剛果(布) CG  Congo
剛果(金)    
哥倫比亞  CO  Colombia
哥斯大黎加  CR  Costa rica
格瑞那達  GD  Grenada
格陵蘭  GL  Greenland
喬治亞  GE  Georgia
古巴  CU  Cuba
瓜德羅普  GP  Guadeloupe
關島  GU  Guam
蓋亞那  GY  Guyana
哈薩克  KZ  Kazakstan
海地共和國 HT  Haiti
韓國  KR  Korea
豪蘭和貝克群島    
荷蘭  NL  Netherlands
荷屬安的列斯    
宏都拉斯  HN  Honduras
吉里巴斯  KI  Kiribati
吉布提  DJ  Djibouti
吉爾吉斯共和國 KG  Kyrgyzstan
幾內亞  GN  Guinea
幾內亞比索  GW  Guinea-Bissau
加拿大  CA  Canada
加那利群島    
迦納  GH  Ghana
加彭  GA  Gabon
賈維斯島    
柬埔寨  KH  Cambodia
捷克共和國  CZ  Czech Republic
辛巴威  ZW  Zimbabwe
喀麥隆  CM  Cameroon
卡達  QA  Qatar
開曼群島  KY  Cayman Islands
科科斯島    
國家或地區名稱(中文)  地區程式碼  國家或地區名稱(英文)
科克群島(新)    
葛摩  KM  Comoros
象牙海岸    
科威特  KW  kuwait
可可島  CC  COCOS Islands
克羅埃西亞  HR  Croatia
肯亞  KE  Kenya
庫克群島  CK  Cook Island
拉托維亞  LV  Latvia
賴索托  LS  Lesotho
寮國  LA  Laos
黎巴嫩  LB  Lebanon
立陶宛共和國 LT  Lithuania
賴比瑞亞  LR  Liberia
利比亞  LY  Libya
列支敦斯登  LI  Liechtenstein
留尼汪    
盧森堡  LU  Luxembourg
盧安達  RW  Rwanda
羅馬尼亞  RO  Romania
馬達加斯加  MG  Malagasy
馬爾地夫  MV  Maldives
馬爾他  MT  Malta
馬爾維納斯群島  MW  Malawi
馬耳他    
馬耳他    
馬來西亞  MY  Malaysia
馬裡  ML  Mali
馬里亞納群島    
馬其頓    
馬紹爾群島共和國 MH  Marshall Islands
馬提尼克    
模里西斯  MU  Mauritius
茅利塔尼亞  MR  Mauritania
美國  US  America
美屬薩摩亞 UM     
美屬維爾京群島    
蒙古  MN  Mongolia
蒙特塞拉特    
孟加拉  BD  Bangladesh
祕魯  PE  Peru
密克羅尼西亞聯邦 FM  Micronesia
緬甸  MM  Burma
國家或地區名稱(中文)  地區程式碼  國家或地區名稱(英文)
摩爾多瓦  MD  Moldova,Republic of
摩洛哥  MA  Morocco
摩納哥  MC  Monaco
莫三比克  MZ  Mozambique
墨西哥  MX  Mexico
納米比亞  NA  Namibia
南非  ZA  South Africa
南極洲  AQ  Antarctica
南斯拉夫  YU  Yugoslavia
諾魯  NR  Naura
尼泊爾  NP  Nepal
尼加拉瓜  NI  Nicaragua
尼日  NE  Niger
奈及利亞  NG  Nigeria
紐埃  NU  Niue
挪威  NO  Norway
諾福克島    
帛琉  PW  Palau
皮特開恩群島  PN  Pitcairn Islands
葡萄牙  PT  Portugal
日本  JP  Japan
瑞典  SE  Sweden
瑞士  CH  Switzerland
薩爾瓦多  SV  El Salvador
薩摩亞    
獅子山  SL  Sierra leone
塞內加爾  SN  Senegal
塞普勒斯  CY  Cyprus
塞席爾  SC  Seychelles
沙烏地阿拉伯  SA  Saudi Arabia
聖誕島  CX  Christmas Island
聖多美與普林西比  ST  Sao Tome and Principe
聖赫勒那  SH  St.Helena
聖克里斯多福及尼維斯    
聖露西亞  LC  St. Lucia
聖馬利諾  SM  San Marino
聖文森及格瑞那丁     
斯里蘭卡  LK  Sri Lanka
斯洛伐克  SK  Slovakia
斯洛維尼亞  SI  Slovene
史瓦濟蘭  SZ  Swaziland
蘇丹  SD  Sudan
蘇利南  SR  Surinam
國家或地區名稱(中文)  地區程式碼  國家或地區名稱(英文)
蘇聯(前)  SU  USSR(formerly)
索羅門群島  SB  Solomon Islands
索馬利亞  SO  Somali
塔吉克  TJ  Tsjikistan
塔吉克     
太平洋地區(海事衛星)    
泰國  TH  Thailand
坦尚尼亞  TZ  Tanzania
湯加  TO  Tonga
特克斯和凱科斯群島    
千里達及托巴哥  TT  Trinidad and Tobago
突尼西亞  TN  Tunisia
吐瓦魯      TV  Tuvalu
土爾其  TR  Turkey
土庫曼  TM  Turkomanstan
托克勞  TK  Tokela
瓦利斯和富圖納群島    
萬那杜    
瓜地馬拉  GT  Guatemala
威克島    
維爾京群島(美)    
維爾京群島(英)    
委內瑞拉  VE  Venezuela
汶萊  BN  Brunei Darussalam
烏干達  UG  Uganda
烏克蘭  UA  Ukiain
烏拉圭  UY  uruguay
烏茲別克  UZ  Uzbekstan
西班牙  ES  Spain
西撒哈拉  EH  West Sahara
西薩摩亞  WS  Western Samoa
希臘  GR  Greece
錫金    
夏威夷    
象牙海岸  CI  Lvory Coast
新加坡  SG  Singapore
新喀里多尼亞  NC  New Caledonia
紐西蘭  NZ  New Zealand
匈牙利  HU  Hungary
敘利亞  SY  Syria
牙買加  JM  Jamaica
亞美尼亞共和國 AM  Armenia
葉門  YE  Yemen
國家或地區名稱(中文)  地區程式碼  國家或地區名稱(英文)
伊拉克  IQ  Iraq
伊朗  IR  Iran
以色列  IL  Israel
義大利  IT  Italy
印度  IN  India
印度尼西亞  ID  Indonesia
印度洋地區(海事衛星)    
英國  GB  United Kingdom
英國(正式程式碼為GB)  UK  England
英聯邦的印度洋領域  IO  British Indian Ocean Territory
英屬維爾京群島    
約旦  JO  Jordan
約翰斯頓島    
越南  VN  Vietnam
尚比亞  ZM  Zambia
扎伊爾  ZR  Zaire
查德  TD  Chad
直布羅陀  GI  Gibraltar
智利  CL  Chile
中非共和國  CF  The Central African Republic
中國  CN  China
中國澳門  MO  Macao
中國臺灣  TW  Taiwan
中國香港  HK  Hong Kong