JavaWeb——i18n国际化页面实现

i18n国际化

i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。

国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。

实现国际化步骤

  1. 用Locale类获取获取不同的位置和语言
  2. 配置.properties文件,命名规则:baseName_locale.properties
  3. 根据ResourceBundle类的getBundle(baseName,locale)方法获取配置文件的内容

比如创建配置文件: i18n_zh_CN.properties

@Test
    public void testI18n(){
        //得到我们需要的Locale对象
        Locale cn= Locale.CHINA;//zh_CN

        //通过指定的basename和Locale对象,读取相应的配置文件
        ResourceBundle bundle = ResourceBundle.getBundle("i18n", cn);
		//获取配置文件的内容
        System.out.println(bundle.getString("username"));
        System.out.println(bundle.getString("password"));
    }

浏览器页面实现国际化

<body>
<%
    //从请求头中获取Locale信息(语言)
//    Locale locale = request.getLocale();
//    System.out.println(locale);
    Locale locale = null;
    String country = request.getParameter("country");
    if ("cn".equals(country)){
        locale = Locale.CHINA;
    }else if ("usa".equals(country)){
        locale = Locale.US;
    }else {
        locale = request.getLocale();
    }

    //获取资源包(根据指定的baseName和Locale读取语言信息)
    ResourceBundle i18n = ResourceBundle.getBundle("i18n", locale);

%>

<a href="i18n.jsp?country=cn">中文</a>|
<a href="i18n.jsp?country=usa">english</a>
    <h1><%=i18n.getString("regist")%></h1>
</body>

使用taglib.jar包

<body>
<%--使用标签设置Locale信息--%>
	<fmt:setLocale value="${param.locale}"/>
<%--使用标签设置baseName--%>
	<fmt:setBundle basename="i18n"/>
<%--使用标签输出国际化信息--%>
<%--	<fmt:message key="username"/>--%>
	<a href="i18n_fmt.jsp?locale=zh_CN">中文</a>|
	<a href="i18n_fmt.jsp?locale=en_US">english</a>
		<h1><fmt:message key="regist"/></h1>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值