如Struts,spring等框架以及Tomcat容器,都是通过ResourceBundle的方式从资源文件(如messages.properties)中自动读取并进行资源绑定的。java.util.ResourceBundle类非常地灵活,可以通过设置的Locale(语言环境)来选择读取的文件,进行国际化。
最近在看Tomcat的源码,看到了Tomcat国际化的实现方式,下面写一个例子介绍如何使用:
资源配置文件:
LocalStrings_fr.java:
package terry.codex;
import java.util.Collections;
import java.util.Enumeration;
import java.util.ResourceBundle;
/**
* @编写人: yh.zeng
* @编写时间:2017-12-3 下午4:58:26
* @文件描述: LocalStrings法语配置文件
*/
public class LocalStrings_fr extends ResourceBundle{
@Override
protected Object handleGetObject(String key) {
if(key.equals("tmpdir")){
return "{0} itinéraires désignés avec moins";
}
return null;
}
@Override
public Enumeration<String> getKeys() {
return Collections.enumeration(keySet());
}
}
LocalStrings_en.properties:
tmpdir=Cannot find specified temporary folder at {0}
LocalStrings_zh.properties:
tmpdir=\u5728{0}\u8def\u5f84\u4e0b\u627e\u4e0d\u5230\u6307\u5b9a\u7684\u6587\u4ef6\u5939
LocalStrings.properties:
tmpdir=\u5728{0}\u8def\u5f84\u4e0b\u627e\u4e0d\u5230\u6307\u5b9a\u7684\u6587\u4ef6\u5939
测试例子demo
</