Posted on 2007-12-08 10:37 
探佚 阅读(193) 
评论(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);