Java Web的Struts2的多语种网站的多语言切换实例
2015-05-28 11:22
399 查看
先看图图;
图1:
图2:
图3:
图4:
一
首先下载Properties Editor插件,该插件是支持中文的资源文件编辑器;MyEclipse 10.6 以上不用安装该插件,使用自带资源文件编辑器即可;下载后解压,将features和plugins两个目录复制到MyEclipse安装目录,比如MyEclipse\MyEclipse 10\dropins,下,即可;
二 编写测试JSP页面
三 建立资源文件
资源文件放在如下位置: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:
图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" onchange="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的名字。
相关文章推荐
- struts2的国际化实现网站整体中英文切换实例代码
- struts2的国际化(即实现网站整体中英文切换)实例
- [原创]java WEB学习笔记69:Struts2 学习之路-- 消息处理与国际化,概述,配置国际资源文件,访问国际化消息,通过超链接切换语言
- Struts2入门(10):国际化(i18n)和页面切换语言实例
- struts2的国际化(即实现网站整体中英文切换)实例
- 怎么用wordpress建中英文双语及多语言切换的网站
- Qt 界面实现多国语言的切换实例
- Struts2中I18N原理及动态语言切换
- struts2通过ajax动态改变系统后台的语言来达到国际化页面切换的功能
- Debian改变系统语言环境(中文切换到英文)实例
- yii框架下 i18nDemo 模式 网站多种语言切换
- struts2国际化多语言自动切换和手动切换
- 【Android 多语言切换简单实例分享】
- iOS实现应用内切换本地化语言的方法实例
- 网站设计之asp.net网站多语言版本[实例下载]
- 这可能是目前最方便的网站中英文切换(理论支持所有语言)
- js网站国际化,多国语言切换【详解】
- struts2漏洞攻击一例 怎样利用Struts2的漏洞(2.0.0<=version<=2.3.15)搞垮一个基于Struts2写的网站? Struts是java web framewor
- JS版网站风格切换实例代码
- JSF:中英文语言环境切换实例