JAVA中有个ResourceBundle类可以实现简单的多语言国际化。
主要使用到两个类java.util.Locale;
和java.util.ResourceBundle;
下面写个简单的例子
1.新建几个多语言的properties文件
文件名随便起,比如language_zh.properties,后面的zh和Locale.CHINESE的值相同即可,这里面放中文language_ja.properties,后面的ja和Locale.JAPANESE的值相同,其他语言也是类似这样的方法,先看看Local里的命名是什么样的,然后用相同的后缀就可自动识别到这个properties文件。
2.新建一个工具类LanguageUtil。
声明一个根据key取value的静态方法
package cn.ways.util;
import java.util.Locale;
import java.util.ResourceBundle;
public class LanguageUtil {
public static String getValueByKey(String str, String languageType) {
ResourceBundle resourceBundle = null;
if("zh".equals(languageType)) {
resourceBundle = ResourceBundle.getBundle("language",Locale.CHINESE);
}
if("ja".equals(languageType)) {
resourceBundle = ResourceBundle.getBundle("language",Locale.JAPANESE);
}
return resourceBundle.getString(str);
}
}
3.利用工具类传参取值
上面的静态方法就可以拿到多语言环境下的相同命名,比如在language_zh.properties写入allModels=\u5168\u8F66\u578B
(全车型),language_ja.properties写入allModels=\u5168\u8ECA\u7A2E
(全車種),那么利用LanguageUtil.getValueByKey("allModels","ja");
就能拿到日版的文字,LanguageUtil.getValueByKey("allModels","zh");
就能拿到中文的文字,从而实现简单的国际化。
网友评论