Java Web的Struts2的多语种网站的多语言切换实例

    先看图图;

图1:


图2:


图3:



图4:




一 

    首先下载Properties Editor插件,该插件是支持中文的资源文件编辑器;MyEclipse 10.6 以上不用安装该插件,使用自带资源文件编辑器即可;下载后解压,将features和plugins两个目录复制到MyEclipse安装目录,比如MyEclipse\MyEclipse 10\dropins,下,即可;


二 编写测试JSP页面

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<html>
 <head>
 <title><s:text name = "registerPage" /></title>
 <script type="text/javascript">
   function requestLocale()
   {
       localeForm.submit();
   }
 
 </script>
 </head>
    <body>
 
  <s:set name="locale" value="#session['WW_TRANS_I18N_LOCALE']" />
 
        <form name="localeForm" action="<s:url/>" method="post">
            <select name="request_locale" οnchange="requestLocale()">
                <option value="zh_CN"  >简体中文</option>
                <option value="en_US" <s:if test="#locale.language == 'en'">selected="selected"</s:if>  >美式英语
</option>
                <option value="ar_IL" <s:if test="#locale.language == 'ar'">selected="selected"</s:if>  >日语</option>
            </select>
           
        </form>    
        <s:form action = "register" name="form" >
                    
            <s:textfield name="username" key="username"  /> 
            <s:textfield name="password" key="password" />
            <s:textfield name="age" key="age" />
            <s:textfield name="birthday" key="birthday" />
	    
            <s:submit  key="register" />
        </s:form>
    
	<p>XXX </p>
	<p>XXX </p>
	<p>XXX </p>
	<p>XXX </p>
	<s:text name="teqtest" />
	<p>XXX </p>
	<p>XXX </p>
	<p>XXX </p>
	<p>XXX </p>

	<s:text name="testkey" />
   	
    </body> 
  </html> 

三 建立资源文件

    资源文件放在如下位置:WEB-INF的classes目录下,

    新建文件夹文件夹i18n,放入如下图资源文件;



四 编辑资源文件

    在MyEclipse中打开 globalResource_zh_CN.properties, 这是中文资源文件,新建key名称为testkey,值为一段中文;

    打开globalResource_en_US.properties,这是英文资源文件,新建key名称为testkey,值为一段英文;

    打开globalResource.properties,如上图4,新建key名称为testkey,值为一段日文;


五 在Struts2的配置文件中添加如下一段:

!-- 语言切换 -->
  <action name="*_jsp">
     <result>/xxxx/i18n/{1}.jsp</result>
  </action>

xxxx是项目中一个放页面的文件夹,为了清楚,新建一个i18n文件夹,测试JSP放在这里;

因为Struts2的多语言切换是通过叫i18n的内建拦截器实现的,所以起个名字叫i18n,好辨认;


六 在浏览器中查看结果

    在浏览器中输入:http://localhost:8080/dddd/xxxx/i18n/register_jsp.action

    在页面上用下拉列表切换语言,其效果分别如图1、图2、图3;实现了页面内容中中、英、日三种语种的切换;

    中间输出的一段是土耳其文,用于测试,顺带搞晕大家;


七 关于Struts2的国际化支持

    Struts2的国际化支持是用资源文件实现的;本身机制还是比较复杂;资源文件命名,资源文件查找顺序,等,都有一定规则;内建i18n拦截器支持国际化,简化编程。按我上述过程可操作成功,具体细节可参阅Struts2相关资料。

    使用了i18n后,大致只有三个内容,即可实现国际化:编辑资源文件,编写前台页面,配置action。如上述二的代码,页面中必须要提供正确的request_locale请求参数。

    找不到资源文件,或相应的key的内容,会在页面上直接输出key的名字。










  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值