一 定义国际化资源文件
程序国际化的设计思想:程序界面中需要输出国际化信息的地方,我们不要在页面中直接输出信息,而是输出一个key值,该key值在不同语言环境下对应不同的字符串。当程序需要显示时,程序将根据不同的语言环境,加载该key对应该语言环境下的字符串——这样就可以完成程序的国际化。
为了给本应用增加程序国际化支持(支持英文和中文),则应该提供两份语言资源文件。
messageResouce.properties:
因为该资源文件中包含了非西欧字符,因此必须使用native2ascii命令来处理该文件。将上面文件保存在WEB-INF/classes路径下,文件名为“messageResouce.properties”。保存该文件后,必须使用native2ascii命令来处理该文件,处理该文件的命令格式为:
native2ascii messageResouce.properties messageResouce_zh_CN.properties
这个文件的文件名符合资源文件的命名格式,资源文件的文件名命名格式为:
basename_语言代码_国家代码.properties
英文语言环境的资源文件
二 加载资源文件
加载资源文件可以通过struts.properties文件来定义
在struts.properties文件中增加上面的代码定义后,表明该应用使用的资源文件的baseNam为“messageResouce"与前面保存资源文件的baseName是一致的。
三 输出国际化信息
为了让程序可以显示国际化信息,则需要在JSP页面中输出key,而不是直接输出字符串常量。
Struts 2提供了如下两种方式来输出国际化信息:
— <s:text key="messageKey"/>:使用s:text标签来输出国际化信息。
— <s:property value="%{getText("messageKey")}"/>:使用表达式方式输出国际化信息。