#####添加多语言资源文件
######第一步:
######第二步:
######第三步:
######第四步:
######第五步:
以上步骤仅仅是添加values-zh-rCN文件夹,并没有strings.xml文件,将系统默认的strings.xml文件复制进去再修改里面的内容为对应语言的文字内容即可!
#####多国语言的value文件夹命名方式
区域 | 文件名 |
---|---|
中文(中國)(简体) | 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 |
要使用多语言,首先肯定要有为不同语言准备的资源。 | |
只需要按照Android提供的规范,对不同语言下的资源文件夹进行对应的命名即可。 | |
比如我们知道/valus是Android的默认简单资源(字符串、数值、颜色等)的文件夹,那么对不同语言下提供的values文件夹命名方式就形如: |
- /values-zh
- /values-zh-rCN
- /values-zh-rTW
其中values保持不变;
后缀的zh表示语言;
后缀的rCN、rTW其中‘r’是一个标记,表示后面跟着的CN、TW是国家或地区标志。
所以以上三个资源文件夹表示所对应的语言环境分别为:
中文
中文-中国 (即中文简体)
中文-台湾 (即中文繁体)
默认情况下,Android会根据系统的语言地区设置,自动选择对应的资源。
会首先尝试语言地区全匹配,如果没有权匹配的资源包,则会尝试匹配语言,最后则会取默认的。
比如如果Android系统的语言地区是中文简体,则首先会尝试从/values-zh-rCN中获取资源,如果没有此文件夹或者文件夹中没有响应的资源,则会尝试/values-zh,都获取不到的情况下即从/values中获取。
(/values是必须存在的,否则不能通过编译)
当然,也可以在代码中手动进行控制,指定所选择的语言:
Configuration config = getResources().getConfiguration();//获取系统的配置1
2config.locale = Locale.TRADITIONAL_CHINESE;//将语言更改为繁体中文
getResources().updateConfiguration(config, getResources().getDisplayMetrics());//更新配置
#####切换语言
切换语言后需重启当前activity,给用户的感知不好,我实现的逻辑都是记录用户想要切换的语言,然后提示用户重启APP生效,再在启动的第一个activity进行语言切换功能实现:
1 | //详细代码: |