语言资源国际化步骤:
1、定义资源文件(如:language),需要使用命令native2ascii命令进行转码;(native2ascii是jdk中的转码工具,在jdk的bin目录下)
2、定义工具类(LangusgeUtils)读取资源文件;
3、定义调用资源文件类(TestResourceBundle)
注意:native2ascii 命令必须进入到工程下面的资源文件夹发使用,例如:
D:AdobeeclipseJavaObjectjdbc_pool_dao_shopetc>native2ascii -encoding UTF-8 language language_zh_CN.properties
# 设置资源编码
# -encoding UTF-8 对源文件(language)进行编码,编码的方式为UTF-8
# 转码之后的文件language_zh_CN.properties zh表示语言为简体中文 CN表示国家
native2ascii -encoding UTF-8 language language_zh_CN.properties
相关配置文件
# 编码之前的资源文件 language
user.login.info=1.用户登录
user.reg.info=2.用户注册
# 编码之后的资源文件 language_zh_CN.properties
user.login.info=1.u7528u6237u767bu5f55
user.reg.info=2.u7528u6237u6ce8u518c
工具类
import java.util.Locale;
import java.util.ResourceBundle;
/**
* 对象的序列化和反序列化
*/
public class LanguageUtils {
// private static ResourceBundle rBundle = ResourceBundle.getBundle("j0812",new Locale("en", "US"));
// 注意:参数只写资源文件的前缀,不要写语言和国家相关的字符串
// 没有向上面一样定义语言和国家,那么程序运行时会找到操作系统当前使用的语言和国家
private static ResourceBundle rBundle = ResourceBundle.getBundle("language");
public static String getResourceByKey(String key) {
return rBundle.getString(key);
}
}
测试调用工具类
public class TestResourceBundle {
public static void main(String[] args) {
String loginInfo =LanguageUtils.getResourceByKey("user.login.info");
String regInfo =LanguageUtils.getResourceByKey("user.reg.info");
System.out.println(loginInfo);
System.out.println(regInfo);
}
}