Posted on 2007-12-08 10:37
探佚 阅读(187)
评论(0) 编辑 收藏 所属分类:
Java EE技术
Struts的国际化步骤
1、编写资源文件
文件名命名格式:文件名_语种_国家或地区.properties
例如、美国:message_en_US.properties
中国大陆:message_zh_CN.properties
2、资源文件中数据以键值对的形式存在
下面编写两个资源文件(中英)
message_en_US.properties
name=User Name
passwrod=User Password
submit=Login
message_temp.properties
name=用户名
passwrod=密码
submit=登录
3、编译非ASCII编码的资源文件
由于英文采用ASCII编码,所以我们不需要编码,而简体中文采用GBK,所以必须转换为ASCII码的资源文件。
利用JDK自带的native2ascii.exe来处理
运行如下命令:
native2ascii –encoding gbk message_temp.properties message_zh_CN.properties
4、将编码后生成的message_zh_CN.properties和message_en_US.properties文件,
保存到src/com/xaccp/resource目录下,在TomCat部署项目以后,资源文件会和类文件一起放到WEB-INF/classes/目录下。
5、加载资源文件
在struts-config.xml文件中配置:
<message-resources parameter="com.xaccp.resource.message" />
注意文件名最后是message,后面的语言和地区不填写。
若是中文环境,服务器加载资源文件的顺序依次是:
message_zh_CN.properties
message_zh.properties
message.properties
即:有小到大。
6、在JSP页面通过<bean:message>来调用资源文件中值。
例如:<bean:message key=”name”/>
7、语言的切换。
在Struts中,用户的区域信息是通过Session将数据传递到RequestProcessor的processLocale()方法来处理。
具体实现如下:
Jsp页面
<form action="selectLanguage.do" method="post">
<select name="language">
<option value="zh_CN">中国大陆</option>
<option value="en_US">美国</option>
</select>
<input type="submit" value="确定">
</form>
Action类的execute()方法
// 获取用户的区域信息
String language = request.getParameter("language");
String[] aryLocalInfo = language.split("_");
Locale locale = new Locale(aryLocalInfo[0], aryLocalInfo[1]);
// 保存区域信息到Session中,RequestProcessor类的processLocale()方法会进行设置
request.getSession().setAttribute(Globals.LOCALE_KEY, locale);