Struts2国际化
一、简介
所谓国际化是指你的web系统,在不同国家或地区被访问,其中的一些主要信息,如注册信息中字段,错误信息提示等显示结果应
该与该地区或国家语言相同。这样用户很好理解你的网页。
Web系统国际化通过两步来完成。第一通过将文字内容以特定的方式存放在特定的文件中。第二,在运行时根据当前的语言环境决
定从哪个文件中读取文字内容。
Java中国际化的概念是将不同国家的语言描述的相同的东西放在各自对应的属性文件中,如果这个文件的名字叫做Message,那么
对应语言的文件分别为:
中文中国 message_zh_CN.properties
日文日本 message_ja_JP.properties
英文美国 message_en_US.properties
二、四种方式的国际化
1、JSP页面上的国际化
<s:i18n name="message">
< !-- key="hello"依据读取资源文件中的hello关键字对应的内容,{0}表示第一个参数输出位置即${username}在这里输出-->
<s:text key="hello">
<s:param>${username}</s:param>
</s:text>
</s:i18n>
中英文资源如下:
message_en_US.properties文件配置:hello=hello world,{0}
message_zh_CN.properties文件配置:hello=你好,{0}
2、表单元素的Label国际化
未国际化:
<s:textfield name="username" label="username"></s:textfield>
<s:textfield name="password" label="password"></s:textfield>
国际化后:
<s:textfield name="username" key="uname"></s:textfield>
<s:textfield name="password" key="pword"></s:textfield>
中英文资源如下:
message_en_US.properties文件,配置:
uname=username
pword=password
message_zh_CN.properties文件,配置:
uname=用户名
pword=密码
3、Action中的国际化
未国际化:
this.addFieldError("username", "the username error!");
this.addFieldError("password", "the password error!");
国际化后:
this.addFieldError("username", "username.error");
this.addFieldError("password", "password.error");
中英文资源如下:
message_en_US.properties文件配置:
username.error = the username error !
password.error = the password error!
message_zh_CN.properties文件配置:
username.error=用户名错误!
username.error=密码错误!
4、配置文件中的国际化。以输入校验的LoginAction-validation.xml为例:
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="username.empty"></message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">12</param>
<message key="username.size"></message>
</field-validator>
</field>