现在的位置: 首页 > 综合 > 正文

struts2_i18n

2013年11月13日 ⁄ 综合 ⁄ 共 1200字 ⁄ 字号 评论关闭

1.资源文件的准备,格式如下:
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName是资源文件的基本名,可以自定义,但language和country必须是java支持的语言和国家
如:
中国大陆:baseName_zh_CN.properties
美国:baseName_en_US.properties

对于中文的属性文件,如果编写后开发工具不能帮我们进行转码,
我们可以使用jdk提供的native2ascii命令把文件转换为unicode编码的
文件,命令使用如下:native2ascii 源文件.properties 目标文件.properties

2当准备好资源文件后,我们可以在struts.xml中将资源文件配置为全局资源文件
具体配置如下:
<constant name="struts.custom.i18n.resources" value="softeem">
softeem指的是资源文件的基本名

3.在页面或action中访问国际化信息:
在jsp页面中使用<s:text name="welcome"/>标签中输出国际化信息
如<s:text name="welcome"/>name为资源文件中的key
在action中可以继承ActionSupport,使用getText()方法获得国际化信息,该方法中的参数用于指定资源文件中的key
在表单标签中,通过key属性指定资源文件中的key如:
<s:textfield name="realname" key="user"/>
页面中取得国际化后的字符串:<s:property value="getText('username')"/>

*国际化语言动态切换request_locale=en_US/zh_CN
<a href="language?request_locale=en_US">EN</a>
<a href="language?request_locale=zh_CN">CN</a>

i18n的原理:根据参数不同的值,根据相同的key在不同的文件中
   取到不同的value

properties文件的级别
   *action级别:配置文件的前缀名必须和类名保持一致,只在访问
    这一个action的时候加载
   *package级别:配置文件的前缀名必须是package,在访问当前
    包下面的action都会加载
   *application:配置文件的前缀名没有要求,需要在struts.xml
    中进行配置,在服务器启动时加载
总结
使用国际化步骤:
①创建全局的properties资源文件(注意命名)
②在struts.xml中加载properties资源文件
③在页面使用<s:text name="key"/>取到对应的资源文件中的值

抱歉!评论已关闭.