1 国际化概念
所谓国际化就是,让页面可以有语言的选择,如 英文|中文。二具体实现方法有两种。
2 国际化实现方法
2.1 编写两种语言的页面
部分公司会选用这种方法,事先编写不同语言的页面,通过不同的服务器来控制语言,或者是使用不同的路径来控制语言。具体实现方法这里不做深究。
2.2 使用专门的配置文件来管理不同语言
类似于 map 的使用,在配置文件中使用相同的文件来配置不同的语言的词汇或语句,在需要时通过命令调用。通过这种方法会使语言的控制更加灵活。
具体实现框架如下:
配置文件的准备 ,在这里需要注意配置文件的名称是有固定格式的如果格式不对,会无法读取,而且要放在根目录下。
- 英文
username=username
password=password
sex=sex
age=age
regist=regist
boy=boy
email=email
girl=girl
reset=reset
submit=submit
- 中文
//用户名
username=\u7528\u6237\u540D
//密码
password=\u5BC6\u7801
//性别
sex=\u6027\u522B
//年龄
age=\u5E74\u9F84
//注册
regist=\u6CE8\u518C
//男
boy=\u7537
//女
girl=\u5973
//邮箱
email=\u90AE\u7BB1
//重置
reset=\u91CD\u7F6E
提交
submit=\u63D0\u4EA4
使用编码是为了防止数据传输时发生乱码问题。
import org.junit.Test;
import java.util.Locale;
import java.util.ResourceBundle;
public class I18nTest {
@Test
public void testLocale(){
// 获取中文,中文的常量的Locale对象
System.out.println(Locale.CHINA);
// 获取英文,美国的常量的Locale对象
System.out.println(Locale.US);
}
@Test
public void testI18n(){
// 得到我们需要的Locale对象
Locale locale = Locale.CHINA;
// 通过指定的basename和Locale对象,读取 相应的配置文件
ResourceBundle bundle = ResourceBundle.getBundle("i18n", locale);
System.out.println("username:" + bundle.getString("username"));
System.out.println("password:" + bundle.getString("password"));
System.out.println("Sex:" + bundle.getString("sex"));
System.out.println("age:" + bundle.getString("age"));
}
}
查看所有java支持的国际化
for (Locale availableLocale : Locale.getAvailableLocales()) {
System.out.println(availableLocale);
}
查看计算机默认的 Locale
System.out.println(Locale.getDefault());
当所有数据都准备好之后,就是将数据显示到前端了。