《研磨struts2》第九章 国际化 之 9.3 Struts2中的国际化入门

9.3  Struts2中的国际化入门

9.3.1引用国际化信息资源文件

要使用Struts2来实现国际化的支持,同样先来准备国际化信息资源文件,把三个国际化资源信息文件恢复到最初始的状态:

(1)默认语言文件:message.properties

 

java代码:
  1. labela = labela in zh_CN  
  2. labelb = labelb in zh_CN  

(2)中文语言文件:message_zh_CN.properties

 

java代码:
  1. #labela = labela in zh_CN  
  2. #labelb = labelb in zh_CN  

(3)英文语言文件:message_en_US.properties

 

java代码:
  1. labela = labela in en_US  
  2. labelb = labelb in en_US  

然后,设置Struts2引用国际化信息资源文件,只需要在struts.xml中设置一个常量:

 

java代码:
  1. <constant name="struts.custom.i18n.resources" value="message"/>  

其中的值message,就是这组文件名中共同的前缀。

扫描二维码关注公众号,回复: 709442 查看本文章

9.3.2JSP中访问国际化信息

在jsp中,可以直接选用Struts2的text标签来访问国际化信息,其中text标签的name属性就是要引用哪个key。示例如下:

 

java代码:
  1. <%@ page language="java" contentType="text/html; charset=gb2312"  
  2.     pageEncoding="gb2312"%>  
  3. <html>  
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
  6. <title>Insert title here</title>  
  7. </head>  
  8. <body>  
  9. <%@ taglib prefix="s" uri="/struts-tags" %>  
  10. <s:text name="labela"/>  
  11. </body>  
  12. </html>  

运行的结果就是在页面上输出要引用的labela这个key在默认语言中对应的值。

9.3.3指定浏览器使用的语种

首先,要去掉stuts.xml中的对中文支持所设置的常量,以防止对运行结果的干扰。

 

java代码:
  1. <constant name="struts.locale" value="zh_CN"/>  
  2. <constant name="struts.i18n.encoding" value="gb2312"/>  

注意:这一点非常重要,否则你将观察不到语言的变化。

然后,可以在浏览器中设置选用的语言。以笔者的浏览器为例,打开浏览器的属性页,如下图所示:

图9.1 IE浏览器的属性对话框

单击【外观】中的【语言】,得到浏览器的语言对话框。

图9.2 浏览器的语言对话框

       笔者的浏览器原来只有“中文(中国)[zh-cn]”这个选项,接下来点击添加按钮,在弹出的语言列表里面,选择“英语(美国)[en-US]”这个选项,如下图所示:

图9.3  添加语言选项

       然后点击确定按钮返回到语言首选项页面,再选中“英语(美国)[en-US]”这个选项,然后点击上移,使“英语(美国)[en-US]”这个选项成为第一选项,如下图所示:

图9.4  移动语言选项

现在,再去访问刚才编写的那个jsp页面,就会发现,现在显示的是英文信息,也就是在message_en_US.properties中设置的信息了,结果如下:

图9.5 访问英文信息

       如果把浏览器的【语言】对话框中,把中文排在上面,则会显示中文信息,也就是在message.properties中设置的信息,结果如下:

图9.6 访问中文信息

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4085.html

欢迎访问http://sishuok.com获取更多内容

猜你喜欢

转载自rubbing-struts2.iteye.com/blog/1525888