简单的Android客户端国际化(语言适配)方案

来源:互联网 发布:淘宝 第一套人民币 编辑:程序博客网 时间:2024/06/14 01:13
前言:

国际化,其实就是语言的适配,当你切换系统语言到别的国家语言,app显示的语言就是该国的语言.说明一下,这里适配的只是简单的app端的string字符串,完整的国际化,一些别的操作和后台的配合是必不可少的.

本文章基本参照http://blog.csdn.net/chenliguan/article/details/50678678这个博客的文章的,实际上就是细化一些操作,在这里取了巧,如果博客主人看到认为我做法不当,告知我,我弄成转载无妨

一、国际化步骤:


1、新建values包: 在该工程res中右击New—>Directory—>输入对应国家的values值 (例如,你想适配英文,包名就是"values-zh-rUS")

新建工程时候已经默认创建了一个values包(就是我们中文),里面有app_name,建议仍然创建中文的"values-zh-rCN"values包,并且保持app_name的values值一致,之后其他的字符串放在这个包下即可

注意:

values的命名格式"values-zh-rCN",没有下划线!!!!!!

创建好values包之后,新建的strings.xml文件会显示该国国旗(但是!!!就算你包名格式不对,也不报错,只在测试的时候字符串显示一串数字)

这里写图片描述


2、新建strings.xml放入相应的values位置 
这里写图片描述


3、在对应国家的string.xml中编辑字符串 

简而言之,就是你以后在strings.xml文件里面所写的字符串,需要在每一个适配的包都写上该国的语言

例如,在values-zh-rCN是  <string name="test_1">最近好吗</string>

在values-en-rUS就是 <string name="test_1">how is it going</string>

这里写图片描述

4、测试

运行demo,切换系统语言进行查看,如果发现字符串跟你切换的语言保持一致,那么说明语言适配基本OK了.(本人测试的是华为荣耀6 Android5.1系统)


二、Android多国语言文件夹汇总

复制粘贴的时候,记得将下划线改为横线!!!

Arabic, Egypt (ar_rEG) —————————–阿拉伯语,埃及 
Arabic, Israel (ar_rIL) ——————————-阿拉伯语,以色列 
Bulgarian, Bulgaria (bg_rBG) ———————保加利亚语,保加利亚 
Catalan, Spain (ca_rES) —————————加泰隆语,西班牙 
Czech, Czech Republic (cs_rCZ) —————–捷克语,捷克共和国 
Danish, Denmark(da_rDK) ————————丹麦语,丹麦 
German, Austria (de_rAT) ————————-德语,奥地利 
German, Switzerland (de_rCH) ——————-德语,瑞士 
German, Germany (de_rDE) ———————-德语,德国 
German, Liechtenstein (de_rLI) ——————德语,列支敦士登的 
Greek, Greece (el_rGR) —————————-希腊语,希腊 
English, Australia (en_rAU) ————————-英语,澳大利亚 
English, Canada (en_rCA) ————————–英语,加拿大 
English, Britain (en_rGB) —————————-英语,英国 
English, Ireland (en_rIE) —————————–英语,爱尔兰 
English, India (en_rIN) ——————————–英语,印度 
English, New Zealand (en_rNZ) ———————英语,新西兰 
English, Singapore(en_rSG) ————————–英语,新加坡 
English, US (en_rUS) ———————————–英语,美国 
English, Zimbabwe (en_rZA) ————————–英语,津巴布韦 
Spanish (es_rES) —————————————-西班牙 
Spanish, US (es_rUS) ———————————–西班牙语,美国 
Finnish, Finland (fi_rFI) ———————————芬兰语,芬兰 
French, Belgium (fr_rBE) ——————————-法语,比利时 
French, Canada (fr_rCA) ——————————-法语,加拿大 
French, Switzerland (fr_rCH) ————————–法语,瑞士 
French, France (fr_rFR) ——————————–法语,法国 
Hebrew, Israel (he_rIL) ———————————希伯来语,以色列 
Hindi, India (hi_rIN) ————————————-印地语,印度 
Croatian, Croatia (hr_rHR) —————————-克罗地亚语,克罗地亚 
Hungarian, Hungary (hu_rHU) ————————匈牙利语,匈牙利 
Indonesian, Indonesia (id_rID) ————————印尼语,印尼 
Italian, Switzerland (it_rCH) —————————-意大利语,瑞士 
Italian, Italy (it_rIT) —————————————意大利语,意大利 
Japanese (ja_rJP) —————————————-日语 
Korean (ko_rKR) ——————————————朝鲜语 
Lithuanian, Lithuania (lt_rLT) ————————–立陶宛语,立陶宛 
Latvian, Latvia (lv_rLV) ———————————拉托维亚语,拉托维亚 
Norwegian-Bokmol, Norway(nb_rNO) —————挪威语,挪威 
Dutch, Belgium (nl_rBE) ——————————–荷兰语,比利时 
Dutch, Netherlands (nl_rNL) —————————荷兰语,荷兰 
Polish (pl_rPL) ——————————————-波兰 
Portuguese, Brazil (pt_rBR) —————————葡萄牙语,巴西 
Portuguese, Portugal (pt_rPT) ————————葡萄牙语,葡萄牙 
Romanian, Romania (ro_rRO) ————————罗马尼亚语,罗马尼亚 
Russian (ru_rRU) —————————————-俄语 
Slovak, Slovakia (sk_rSK) ——————————斯洛伐克语,斯洛伐克 
Slovenian, Slovenia (sl_rSI) —————————-斯洛文尼亚语,斯洛文尼亚 
Serbian (sr_rRS) —————————————-塞尔维亚语 
Swedish, Sweden (sv_rSE) —————————-瑞典语,瑞典 
Thai, Thailand (th_rTH) ——————————–泰语,泰国 
Tagalog, Philippines (tl_rPH) ————————–菲律宾语,菲律宾 
Turkish, Turkey (tr_rTR) ——————————-土耳其语,土耳其 
Ukrainian, Ukraine (uk_rUA) ————————–联合王国 
Vietnamese, Vietnam (vi_rVN) ———————–越南语,越南 
Chinese, PRC (zh_rCN)——————————–中文,中国 
Chinese, Taiwan (zh_rTW)—————————–中文,台湾


来源: http://blog.csdn.net/chenliguan/article/details/50678678
1 0