android中的国际化
java国际化步骤:
定义资源文件:
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName是资源文件的基本名,用户可以自由的定义,但是language和country都不可以随意的变化,必须是java支持的语言和国家。
通过Locale 如下可以获取java支持的语言和国家的信息:
Locale[] locales = Locale.getAvailableLocales();
简单国际化示例:
定义资源文件:
mess_en_US.properties
hello=Welcome You!
mess_zh_CN.properties
hello=\u60A8\u597D!(此处中文为您好!的unicode编码)
代码:
public class Hello { public static void main(String[] args) { // 取得系统默认的国家/语言环境 Locale locale = Locale.getDefault(); // 根据指定国家/语言环境加载资源文件 ResourceBundle bundle = ResourceBundle.getBundle("mess", locale); // 打印从资源文件中取得的消息 System.out.println(bundle.getString("hello")); } }
android程序的国际化资源更加方便----因为android本身就采用了XML资源文件来管理所有的字符串消息,只要为各个消息提供不同的语言、国家对应的内容即可。
国际化资源文件存放在/res/values目录下,为了给消息提供不同语言、国家的版本,开发者需要为不同的values目录添加几个不同的语言国家版本,不同values文件的命名方式为:
values-语言代码-r国家代码
例如:values-zh-rCN、values-en-rUS.
/res/values-en-rUS目录下的strings.xml文件的内容如下:
/res/values-zh-rCN目录下的strings.xml文件的内容如下: