6 资源包

Wu Jun 2018-12-18 21:53:14
05 Java > 00 Java 基础 > 14 国际化

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;
    }
}