如果你开发的程序会在全球或其它国家发布,就需要对程序进行国际化处理,Google的工程师早就想到这一点,我们程序员只需按Google定义好的规则创建对应的目录,系统就会根据当前国家和语言来使用不用的资源文件。
具体方法是在目录res下创建不同的values,比如目录:values-zh-rCH(简体中文)、values-zh-rHK(繁体中文)、values-en-rHK(英语香港)、values-en-rUS(英语美国)
values-zh-rCH:values固定部分,zh:表示语言代码,rCH:表示区域代码,其中r为固定值
那我们怎么知道哪个国家的语言代码和区域代码呢?可以通过以下API来获取
Locale[] localList = Locale.getAvailableLocales();
for (int i = 0; i < localList.length; i++) {
System.out.println(localList[i].getDisplayCountry() + " = "
+ localList[i].getCountry() + " "
+ localList[i].getDisplayLanguage() + " = "
+ localList[i].getLanguage());
}
我的设备上打印出来的结果是:
01-01 08:39:14.259: I/System.out(1553): = 阿拉伯文 = ar
01-01 08:39:14.269: I/System.out(1553): 阿拉伯联合酋长国 = AE 阿拉伯文 = ar
01-01 08:39:14.269: I/System.out(1553): 巴林 = BH 阿拉伯文 = ar
01-01 08:39:14.269: I/System.out(1553): 阿尔及利亚 = DZ 阿拉伯文 = ar
01-01 08:39:14.269: I/System.out(1553): 埃及 = EG 阿拉伯文 = ar
01-01 08:39:14.279: I/System.out(1553): 伊拉克 = IQ 阿拉伯文 = ar
01-01 08:39:14.279: I/System.out(1553): 约旦 = JO 阿拉伯文 = ar
01-01 08:39:14.279: I/System.out(1553): 科威特 = KW 阿拉伯文 = ar
01-01 08:39:14.279: I/System.out(1553): 黎巴嫩 = LB 阿拉伯文 = ar
01-01 08:39:14.279: I/System.out(1553): 利比亚 = LY 阿拉伯文 = ar
01-01 08:39:14.279: I/System.out(1553): 摩洛哥 = MA 阿拉伯文 = ar
01-01 08:39:14.279: I/System.out(1553): 阿曼 = OM 阿拉伯文 = ar
01-01 08:39:14.289: I/System.out(1553): 卡塔尔 = QA 阿拉伯文 = ar
01-01 08:39:14.289: I/System.out(1553): 沙特阿拉伯 = SA 阿拉伯文 = ar
01-01 08:39:14.289: I/System.out(1553): 苏丹 = SD 阿拉伯文 = ar
01-01 08:39:14.309: I/System.out(1553): 叙利亚 = SY 阿拉伯文 = ar
01-01 08:39:14.309: I/System.out(1553): 突尼斯 = TN 阿拉伯文 = ar
01-01 08:39:14.309: I/System.out(1553): 也门 = YE 阿拉伯文 = ar
01-01 08:39:14.309: I/System.out(1553): = 保加利亚文 = bg
01-01 08:39:14.319: I/System.out(1553): 保加利亚 = BG 保加利亚文 = bg
01-01 08:39:14.319: I/System.out(1553): = 加泰罗尼亚文 = ca
01-01 08:39:14.319: I/System.out(1553): 西班牙 = ES 加泰罗尼亚文 = ca
01-01 08:39:14.319: I/S