系统中所有的文字信息都放入全局性的配置文件中,这样既方便以后的系统维护,又利于使用国际化支持。
1,Struts2支持国际化的原理:
系统中需要输出的国际化信息都以key-value的形式存在配置文件中,不同的语言存在不同的配置文件,不同的文件拥有相同的key值,差异化的value值,在程序中我们输出的是key值,这样程序需要显示语言时,根据环境加载key所对应的value值,从而实现国际化。
2,资源文件的命名格式:
资源文件的命名可以有如下3种形式
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName是资源文件的基本名,用户可以自由定义。而language和country都不可随意变化,必须是java所支持的语言和国家。
如果需要获取java所支持的语言和国家,可调用Locale类的getAvailableLocale方法获取,该方法返回一个Locale数组,该数组里包含了Java所支持的语言和国家。
如中文如下:
messageResouce_zh_CN.properties
美国英文如下:
messageResouce_en_US.properties
messageResouce_zh_CN.properties
美国英文如下:
messageResouce_en_US.properties
3,如何加载资源文件:
struts2提供了很多加载国际化资源文件的方式,最简单,最常用的就是加载全局的国际化 资源文件,加载全局的国际化资源文件的方式通过配置常量来实现。不管在struts.xml文件中配置常量,还是在struts.properties文 件中配置常量,只需要配置struts.custom.i18n.resources常量即可。指定全局国际化资源文件的baseName.
<
constant
name
=
"struts.custom.i18n.resources"
value
=
"messageResource"
/>
PS:系统中可以使用Struts2的<s:text name="key">标签直接显示信息内容,key就是资源文件中信息的key值。