ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

i18n国际化语言实现英文切换

2021-12-03 12:02:35  阅读:206  来源: 互联网

标签:国际化 Locale System bundle println 切换 i18n public out


js代码:

必须导包:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="Expires" content="0">
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Title</title>
</head>
<body>
<!--使用标签设置locale信息-->
<fmt:setLocale value="${param.locale}"/>
<!--使用标签设置basename-->
<fmt:setBundle basename="i18n"/>
<a href="i18.jsp?locale=zh_CN">中文</a>|
<a href="i18.jsp?locale=en_US">english</a>
<center>
    <h1><fmt:message key="regist"/></h1>
    <table>
        <form>
            <tr>
                <!--使用标签设置输出国际化信息,key填写的是配置文件里对象信息-->
                <td><fmt:message key="username"/></td>
                <td><input name="username" type="text"/></td>
            </tr>
            <tr>
                <td><fmt:message key="password"/></td>
                <td><input name="password"/></td>
            </tr>
            <tr>
                <td><fmt:message key="sex"/></td>
                <td><input type="radio"/><fmt:message key="boy"/>
                    <input type="radio"/><fmt:message key="girl"/>
                </td>
            </tr>
            <tr>
                <td><fmt:message key="email"/></td>
                <td><input type="text"/></td>
            </tr>
            <tr>
                <td colspan="2" align="cemter">
                    <input type="reset" value="<fmt:message key="reset"/>"/>
                    <input type="submit" value="<fmt:message key="submit"/>"/>
                </td>
            </tr>
        </form>
    </table>
    <br/> <br/> <br/> <br/>
</center>
</body>
</html>
package i18n;

import java.util.Locale;
import java.util.ResourceBundle;

public class i18ntext {
    public static void main(String[] args) {
        //new i18ntext().test();
        new i18ntext().test1();
    }
    public void test() {
        //获取系统默认的语言,国家信息
        Locale aDefault = Locale.getDefault();
        System.out.println(aDefault);//zh_CN
        //查看全部语言
        for (Locale availableLocale : Locale.getAvailableLocales()) {
            System.out.println(availableLocale);
        }
        //获取中文,中文的常量的Locale 对象
        System.out.println(Locale.CHINA);//zh_CN
        // 获取英文,美国的常量的Locale 对象
        System.out.println(Locale.US);//en_US
    }

    public void test1(){
        //获取中文Locale对象
        Locale locale = Locale.CHINA;
        //根据上面的Locale对象,加载不同的配置文件
        ResourceBundle bundle = ResourceBundle.getBundle("i18n", locale);
        System.out.println(bundle.getString("username"));
        System.out.println(bundle.getString("password"));
    }

}

servlet下的资源包配置

 

 结果:

 

 如果出现中文乱码解决方案:

右击文件---设置---以下全部改成utf-8即可

 注意配置文件必须放在src下面,否则报Can't find bundle for base name XXXX, locale zh_CN错误

 

 

标签:国际化,Locale,System,bundle,println,切换,i18n,public,out
来源: https://blog.csdn.net/lu__lala/article/details/121695280

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有