Struts 2.x权威指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.7.1 定义国际化资源文件

Struts 2的程序国际化支持建立在Java程序国际化的基础之上,关于Java程序国际化笔者将在第7章进行简要介绍。此处不会详细介绍,但我们要明白一个概念:程序国际化的思想非常简单。其主要思想是:程序界面中需要输出国际化信息的地方,我们不要在页面中直接输出信息,而是输出一个key值,该key值在不同语言环境下对应不同的字符串。当程序需要显示时,程序将根据不同的语言环境,加载该key对应该语言环境下的字符串——这样就可以完成程序的国际化。

图2.8显示了程序国际化示意图。

图2.8 程序国际化示意图

从图2.8可以看出,如果需要程序支持更多的语言环境,只需要增加更多的语言资源文件即可。

为了给本应用增加程序国际化支持(支持英文和中文),应该提供两份语言资源文件。下面是本应用所使用的中文语言环境下资源文件的代码。

程序清单:codes\02\2.7\struts2qsi18n\WEB-INF\src\messageResource.properties

loginPage=登录页面
errorPage=错误页面
succPage=成功页面
failTip=对不起,您不能登录!
succTip=欢迎,{0},您已经登录!
viewLink=查看作者李刚已出版的图书
bookPageTitle=作者李刚已出版的图书
bookName=书名:
user=用户名
pass=密  码
login=登录

因为该资源文件中包含了非西欧字符,因此必须使用 native2ascii 命令来处理该文件。将上面文件保存在WEB-INF/classes路径下,文件名为“messageResource.properties”。保存该文件后,必须使用native2ascii命令来处理该文件,处理该文件的命令格式为:

native2ascii messageResource.properties messageResource_zh_CN.properties

上面命令将包含非西欧字符的资源文件处理成标准的 ASCII 格式,处理完成后生成一份新文件:messageResource_zh_CN.properties文件。这个文件的文件名符合资源文件的命名格式,当请求来自简体中文环境时,系统自动使用这份资源文件。

资源文件的文件名命名格式为:

basename_语言代码_国家代码.properties

注意

对于包含非西欧字符的资源文件,一定要使用 native2ascii 命令来处理该文件,否则将看到一堆乱码。

除此之外,还应该提供如下英文语言环境的资源文件。

程序清单:codes\02\2.7\struts2qsi18n\WEB-INF\src\messageResource_en_US.properties

loginPage=Login Page
errorPage=Error Page
succPage=Welcome Page
failTip=Sorry,you can't log in!
succTip=Welcome,{0},you has logged in!
viewLink=View LiGang\'s Books
bookPageTitle=LiGang\'s Books
bookName=BookName:
user=User Name
pass=User Pass
login=Login

将上面的资源文件保存到 WEB-INF/classes 路径下,文件名为“messageResource_en_US.properties”。当请求来自美国时,系统自动使用这份资源文件。