android开发 多语言和国际化(转)

来源:互联网 发布:触摸屏幕软件 编辑:程序博客网 时间:2024/05/22 00:44

我们建好一个android 的项目后,默认的res下面 有layout、values、drawable等目录

这些都是程序默认的资源文件目录,如果要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件。

首先我们点击添加Android Xml File按钮,会出现下面的界面:

image

输入文件名:string.xml,选中Values单选框,并把下面左列表中的Region添加到左边的列表里面,并在Region输入框里输入cn,如下图

 

image

这时,上面的消息提示:如果用Region的话,需要使用语言项,和Region一样,我们把Language也添加到右面的列表里面,填入zh,如下图

image

 

 

 

点击Finish按钮,资源文件就会建好了,目录:res\values-zh-rCN(其实上面一大堆操作,就是为生成这个目录

image

默认生成的string.xml的代码:

<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><?</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">xml</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">version</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="1.0"</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">encoding</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="utf-8"</span>?<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">resources</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">name</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="hello"</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span>Hello World, Test!<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"></</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">name</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="app_name"</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span>Test-Multilingual<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"></</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"></</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">resources</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span>

修改刚刚生成的res\values-zh-rCN目录下的string.xml:

<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><?</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">xml</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">version</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="1.0"</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">encoding</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="utf-8"</span>?<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">resources</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">name</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="app_name"</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span>测试多语言<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"></</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"><</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span> <span class="attr" style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">name</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">="hello"</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span>你好 多语言测试<span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"></</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">string</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);"></</span><span class="html" style="margin: 0px; padding: 0px; color: rgb(128, 0, 0);">resources</span><span class="kwrd" style="margin: 0px; padding: 0px; color: rgb(0, 0, 255);">></span>

 

运行结果:

en-us:英文

image image

zh-cn:中国大陆

image image image

zh-tw:台湾

image image image

 

因为设置了region为CN,所以zh-tw的时候,没有找到res\values-zh-rTW的目录,加载了默认的res\values目录下的string.xml

 

这里只用了Values做例子,其余的Resource都可以,图片了,布局了等等

(出处和作者:www.cnblogs.com/wuyunan Ready Wu)


附1:

在代码中切换语言:

     

[java] view plaincopy
  1. Resources resources = getResources();//获得res资源对象  
  2.      Configuration config = resources.getConfiguration();//获得设置对象  
  3.      DisplayMetrics dm = resources .getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。  
  4.      config.locale = Locale.SIMPLIFIED_CHINESE; //简体中文  
  5.      resources.updateConfiguration(config, dm);  


附2:

国家代号与区号
Countries and Regions国家或地区国际域名缩写电话代码时差Angola安哥拉AO244-7Afghanistan阿富汗AF930Albania阿尔巴尼亚AL355-7Algeria阿尔及利亚DZ213-8Andorra安道尔共和国AD376-8Anguilla安圭拉岛AI1264-12Antigua and Barbuda安提瓜和巴布达AG1268-12Argentina阿根廷AR54-11Armenia亚美尼亚AM374-6Ascension阿森松 247-8Australia澳大利亚AU61+2Austria奥地利AT43-7Azerbaijan阿塞拜疆AZ994-5Bahamas巴哈马BS1242-13Bahrain巴林BH973-5Bangladesh孟加拉国BD880-2Barbados巴巴多斯BB1246-12Belarus白俄罗斯BY375-6Belgium比利时BE32-7Belize伯利兹BZ501-14Benin贝宁BJ229-7Bermuda Is.百慕大群岛BM1441-12Bolivia玻利维亚BO591-12Botswana博茨瓦纳BW267-6Brazil巴西BR55-11Brunei文莱BN6730Bulgaria保加利亚BG359-6Burkina-faso布基纳法索BF226-8Burma缅甸MM95-1.3Burundi布隆迪BI257-6Cameroon喀麦隆CM237-7Canada加拿大CA1-13Cayman Is.开曼群岛 1345-13Central African Republic中非共和国CF236-7Chad乍得TD235-7Chile智利CL56-13China中国CN860Colombia哥伦比亚CO570Congo刚果CG242-7Cook Is.库克群岛CK682-18.3Costa Rica哥斯达黎加CR506-14Cuba古巴CU53-13Cyprus塞浦路斯CY357-6Czech Republic捷克CZ420-7Denmark丹麦DK45-7Djibouti吉布提DJ253-5Dominica Rep.多米尼加共和国DO1890-13Ecuador厄瓜多尔EC593-13Egypt埃及EG20-6EI Salvador萨尔瓦多SV503-14Estonia爱沙尼亚EE372-5Ethiopia埃塞俄比亚ET251-5Fiji斐济FJ679+4Finland芬兰FI358-6France法国FR33-8French Guiana法属圭亚那GF594-12Gabon加蓬GA241-7Gambia冈比亚GM220-8Georgia格鲁吉亚GE9950Germany德国DE49-7Ghana加纳GH233-8Gibraltar直布罗陀GI350-8Greece希腊GR30-6Grenada格林纳达GD1809-14Guam关岛GU1671+2Guatemala危地马拉GT502-14Guinea几内亚GN224-8Guyana圭亚那GY592-11Haiti海地HT509-13Honduras洪都拉斯HN504-14Hongkong香港HK8520Hungary匈牙利HU36-7Iceland冰岛IS354-9India印度IN91-2.3Indonesia印度尼西亚ID62-0.3Iran伊朗IR98-4.3Iraq伊拉克IQ964-5Ireland爱尔兰IE353-4.3Israel以色列IL972-6Italy意大利IT39-7Ivory Coast科特迪瓦 225-6Jamaica牙买加JM1876-12Japan日本JP81+1Jordan约旦JO962-6Kampuchea (Cambodia )柬埔寨KH855-1Kazakstan哈萨克斯坦KZ327-5Kenya肯尼亚KE254-5Korea韩国KR82+1Kuwait科威特KW965-5Kyrgyzstan吉尔吉斯坦KG331-5Laos老挝LA856-1Latvia拉脱维亚LV371-5Lebanon黎巴嫩LB961-6Lesotho莱索托LS266-6Liberia利比里亚LR231-8Libya利比亚LY218-6Liechtenstein列支敦士登LI423-7Lithuania立陶宛LT370-5Luxembourg卢森堡LU352-7Macao澳门MO8530Madagascar马达加斯加MG261-5Malawi马拉维MW265-6Malaysia马来西亚MY60-0.5Maldives马尔代夫MV960-7Mali马里ML223-8Malta马耳他MT356-7Mariana Is马里亚那群岛 1670+1Martinique马提尼克 596-12Mauritius毛里求斯MU230-4Mexico墨西哥MX52-15Moldova Republic of摩尔多瓦MD373-5Monaco摩纳哥MC377-7Mongolia蒙古MN9760Montserrat Is蒙特塞拉特岛MS1664-12Morocco摩洛哥MA212-6Mozambique莫桑比克MZ258-6Namibia纳米比亚NA264-7Nauru瑙鲁NR674+4Nepal尼泊尔NP977-2.3Netheriands Antilles荷属安的列斯 599-12Netherlands荷兰NL31-7New Zealand新西兰NZ64+4Nicaragua尼加拉瓜NI505-14Niger尼日尔NE227-8Nigeria尼日利亚NG234-7North Korea朝鲜KP850+1Norway挪威NO47-7Oman阿曼OM968-4Pakistan巴基斯坦PK92-2.3Panama巴拿马PA507-13Papua New Cuinea巴布亚新几内亚PG675+2Paraguay巴拉圭PY595-12Peru秘鲁PE51-13Philippines菲律宾PH630Poland波兰PL48-7French Polynesia法属玻利尼西亚PF689+3Portugal葡萄牙PT351-8Puerto Rico波多黎各PR1787-12Qatar卡塔尔QA974-5Reunion留尼旺 262-4Romania罗马尼亚RO40-6Russia俄罗斯RU7-5Saint Lueia圣卢西亚LC1758-12Saint Vincent圣文森特岛VC1784-12Samoa Eastern东萨摩亚(美) 684-19Samoa Western西萨摩亚 685-19San Marino圣马力诺SM378-7Sao Tome and Principe圣多美和普林西比ST239-8Saudi Arabia沙特阿拉伯SA966-5Senegal塞内加尔SN221-8Seychelles塞舌尔SC248-4Sierra Leone塞拉利昂SL232-8Singapore新加坡SG65+0.3Slovakia斯洛伐克SK421-7Slovenia斯洛文尼亚SI386-7Solomon Is所罗门群岛SB677+3Somali索马里SO252-5South Africa南非ZA27-6Spain西班牙ES34-8Sri Lanka斯里兰卡LK940St.Lucia圣卢西亚LC1758-12St.Vincent圣文森特VC1784-12Sudan苏丹SD249-6Suriname苏里南SR597-11.3Swaziland斯威士兰SZ268-6Sweden瑞典SE46-7Switzerland瑞士CH41-7Syria叙利亚SY963-6Taiwan台湾省TW8860Tajikstan塔吉克斯坦TJ992-5Tanzania坦桑尼亚TZ255-5Thailand泰国TH66-1Togo多哥TG228-8Tonga汤加TO676+4Trinidad and Tobago特立尼达和多巴哥TT1809-12Tunisia突尼斯TN216-7Turkey土耳其TR90-6Turkmenistan土库曼斯坦TM993-5Uganda乌干达UG256-5Ukraine乌克兰UA380-5United Arab Emirates阿拉伯联合酋长国AE971-4United Kiongdom英国GB44-8United States of America美国US1-13Uruguay乌拉圭UY598-10.3Uzbekistan乌兹别克斯坦UZ233-5Venezuela委内瑞拉VE58-12.3Vietnam越南VN84-1Yemen也门YE967-5Yugoslavia南斯拉夫YU381-7Zimbabwe津巴布韦ZW263-6Zaire扎伊尔ZR243-7Zambia赞比亚ZM260-6附3:

各国语言缩写

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 中文 (台湾)
0 0
原创粉丝点击