ResourceBundle 资源包包含特定语言环境的对象。使用其可以加载并读取语言环境资源。
1 定位资源包
1.1 包名规则
- 包名_语言_国家:国家相关资源
- 包名_语言:语言相关资源
- 包名:默认资源
1.2 加载包
getBundle 方法试图匹配当前 locale 定义的语言和国家的包,直至默认包
ResourceBundle currentResource = ResourceBundle.getBundle(bundleName, currentLocale);
2 属性文件
对字符串进行国际化可以直接使用属性文件
MyProreamStrings.properties
MyProreamStrings_en.properties
MyProreamStrings_zh.properties
ResourceBundle bundle = ResourceBundle.getBundle("MyProreamStrings_zh", locale);
取值
String aaa = bundle.getString("aaa");
3 包类
对字符串之外的资源国际化,选哟定义类,必须扩展自 ResourceBundle 类。
MyProreamResourse.java
MyProreamResourse_en.java
实现资源包最简单的方法就是继承 ListResourceBundle 类。
public class programResource extends ListResourceBundle {
private static final Object[][] contents = {
{"color", Color.black},
{"defaultSize", new double[]{123, 456}}
};
@Override
protected Object[][] getContents() {
return contents;
}
}