2.7 完成程序国际化
因为一个企业应用经常需要面对多区域的用户,因此,程序国际化是一个企业应用必须实现的功能。Struts2提供了很好的程序国际化支持。
2.7.1 定义国际化资源文件
Struts2的程序国际化支持建立在Java程序国际化的基础之上,关于Java程序的国际化笔者将在第9章简要介绍。此处不会详细介绍,但我们要明白一个概念:程序国际化的设计思想是非常简单的,其主要思想是:程序界面中需要输出国际化信息的地方,我们不要在页面中直接输出信息,而是输出一个key值,该key值在不同语言环境下对应不同的字符串。当程序需要显示时,程序将根据不同的语言环境,加载该key对应该语言环境下的字符串——这样就可以完成程序的国际化。
图2.8显示了程序国际化的示意图。
从图2.8可以看出,如果需要程序支持更多的语言环境,只需要增加更多语言资源文件即可。
为了给本应用增加程序国际化支持(支持英文和中文),则应该提供两份语言资源文件。下面是本应用所使用的中文语言环境下资源文件的代码。
loginPage=登录页面 |
因为该资源文件中包含了非西欧字符,因此必须使用native2ascii命令来处理该文件。将上面文件保存在WEB-INF/classes路径下,文件名为“messageResouce.properties”。保存该文件后,必须使用native2ascii命令来处理该文件,处理该文件的命令格式为:
native2ascii messageResouce.properties messageResouce_zh_CN.properties |
上面命令将包含非西欧字符的资源文件处理成标准的ASCII格式,处理完成后生成了一份新文件:messageResouce_zh_CN.properties文件。这个文件的文件名符合资源文件的命名格式,资源文件的文件名命名格式为:
basename_语言代码_国家代码.properties |
当请求来自简体中文的语言环境时,系统将自动使用这种资源文件中的内容输出。
注意对于包含非西欧字符的资源文件,一定要使用native2assii命令来处理该文件,否则将看到一堆乱码。
除此之外,还应该提供如下英文语言环境的资源文件。
loginPage=Login Page |
将上面资源文件保存在WEB-INF/classes路径下,文件名为“messageResouce_en_US.properties”。当请求来自美国时,系统自动使用这份资源文件的内容输出。