Struts的国际化处理流程

Posted on 2007-12-08 10:37 探佚 阅读(189) 评论(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.propertiesmessage_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将数据传递到RequestProcessorprocessLocale()方法来处理。

   具体实现如下:

   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);

 

Copyright © 探佚