javaWeb国际化

1 国际化概念

所谓国际化就是,让页面可以有语言的选择,如 英文|中文。二具体实现方法有两种。

2 国际化实现方法

2.1 编写两种语言的页面

部分公司会选用这种方法,事先编写不同语言的页面,通过不同的服务器来控制语言,或者是使用不同的路径来控制语言。具体实现方法这里不做深究。

2.2 使用专门的配置文件来管理不同语言

类似于 map 的使用,在配置文件中使用相同的文件来配置不同的语言的词汇或语句,在需要时通过命令调用。通过这种方法会使语言的控制更加灵活。

具体实现框架如下:
在这里插入图片描述
配置文件的准备 ,在这里需要注意配置文件的名称是有固定格式的如果格式不对,会无法读取,而且要放在根目录下。

  1. 英文
username=username
password=password
sex=sex
age=age
regist=regist
boy=boy
email=email
girl=girl
reset=reset
submit=submit
  1. 中文
//用户名
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());

当所有数据都准备好之后,就是将数据显示到前端了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值