Android studio进阶之多语言编程--国际化
前段时间接到一个关于PDA的项目 , 其中需要用到国际化 , 之前做Java 的时候是丢jar对应的国际化语言的jar .开发过程中踩了点,本文就是记录自己的开发过程.
国际化,听着高大上,跨国际,满足更多市场以及产品需求.
Android 中这种独特的资源管理方式。程序的代码可以不直接和资源发生关系。Android 中,我们通常通过 R 文件提供的索引来间接的引用某一个资源。而如何维护资源索引和真正的资源之间的关系,这个活,却是 Android 系统来做的。以及面试中经常问到的屏幕适配,相信每个人都有自己的理解。
总体是份为三个步骤:
- 在该工程res中右击New—>Directory—>输入对应国家的values值
-
新建strings.xml放入相应的values位置 (最简便的方式就是复制选择对应第一步骤values值)
在对应国家的string.xml中编辑字符串
当然 , 最了解用户手机的,不是用户也不是程序员,而是Android操作系统。它最了解用户当前使用的是什么语言,最了解用户当前手机的分辨率是多少,了解电量,了解内存情况...等等。系统的环境选择语言。
那么图片国际化 呢?
同理。
在 res 下新建 drawable-zh 文件夹,存放中文环境下的图片
新建 drawable-en 作为英语环境下的图片
在 eclipse /android studio下新建 Android 项目时,会在 res 目录下自动创建三个默认语言环境的文件夹:
drawable-hdpi /drawable-xxhdpi
drawable-ldpi /drawable-xhdpi
drawable-mdpi /drawable-hdpi
分别用于存放高、中。低分辨率的图片。Android 系统会根据手机的分辨率,而自动从不同的对应的某一个文件夹下去加载图片。
同样,它们也可以国际化,命名规则如:
drawable-zh-hdpi
drawable-en-ldpi
drawable-en-rUS-mdpi
使用。在 XML 中需要使用到图片的地方用表达式: @drawable/icon
代码中使用:R.drawable.icon。因为图片资源同样也会在 R 文件中生成一个索引
*** android多国语言文件夹文件汇总如下:
中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values--r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN
===========================================
还有在网上找的其他国家string格式
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) ———————–越南语,越南