Struts2的国际化

一、编写资源文件

在WEB-INF/classes路径下(eclipse中的src文件夹中)创建国际化资源文件,将需要进行国际化的内容以键值对的形式写入资源文件中。

Message_en_US.properties文件:

account=Please input your account
password=Please input your password
male=male
female=female

Message_zh_CN.properties文件:

account=请输入用户名
password=请输入密码
male=男
female=女
  • 资源文件命名规则:

baseName_language_country.properties
其中baseName自定义,language和country必须是java支持的语言和国家,命名方式已有明确规定。例如可以将中国大陆中文资源文件命名为message_zh_CN.properties,美国英文资源文件命名为message_en_US.properties。

列举几个:

中国:baseName_zh_CN.properties
台湾:baseName_zh_TW.properties
香港:baseName_zh_HK.properties
美国:baseName_en_US.properties
英国:baseName_en_GB.properties
加拿大:baseName_en_CA.properties
澳大利亚:baseName_en_AU.properties
日本:baseName_ja_JP.properties
法国:baseName_fr_FR.properties

  • 如何创建国际化资源文件?

单击选中src文件夹,点击菜单栏的File,依次选择New、File,输入资源文件名并点击Finish,创建完成。
选中src文件夹
在这里插入图片描述
在这里插入图片描述

二、中文资源文件转码

在创建中文资源文件时可以先将它命名为message_zh_CN_temp.properties。
打开命令行工具,进入资源文件所在的文件夹,用native2ascii工具对中文资源文件进行转码,命令为: Native2ascii –encoding UTF-8 message_zh_CN_temp.properties message_zh_CN.properties
意思是:用Native2ascii –encoding工具对message_zh_CN_temp.properties文件进行UTF-8格式的转码,转码后的文件名为message_zh_CN.properties。
最后,删除message_zh_CN_temp.properties文件。
在这里插入图片描述

三、访问国际化消息

3种方式:
1)在文本框中输出国际化消息:为<s:text …/>标签指定name属性,该属性指定资源文件中的key。
例:<s:text name="account"/>

2) 在表单元素的Label中输出国际化消息:为该表单标签指定一个key属性,该属性指定了国际化资源文件的key。
例:<s:password name="loginUser.password" key="password" />

3)在Action类中访问国际化消息:使用ActionSupport类的getText方法接收一个name参数,该参数指定了国际化资源文件的key。
例:<s:radio name="loginUser.sex" list="#{'1':getText('male'), '0':getText('female')}" />

四、加载资源文件

3种方式:
1)创建struts.properties文件,通过它加载资源文件:

struts.custom.i18n.resources=baseName
struts.i18n.encoding=GBK

2)在struts.xml文件中加载全局资源文件

<constant name="struts.custom.i18n.resources" value="baseName"/>
<constant name="struts.i18n.encoding" value="GBK" />

3)在JSP页面中临时加载资源文件

<s:i18n name="baseName">
<s:form action="login" method="post"> …… </s:form>
</s:i18n>

以上的baseName实际为资源文件的路径,例如,若将资源文件放在cn.edu.zjut.local包中,则baseName应改为cn.edu.zjut.local.baseName。由于我直接将资源文件放在src根目录下,故直接用baseName即可。(我如果把资源文件放在某个包中时就无法生效,I don’t know why…)

五、测试

通过以上步骤,已经实现了struts2的国际化。若要测试国际化是否成功,在浏览器中访问工程页面,打开浏览器的I你Internet选项(一般在工具中),选择“常规”一栏;
在这里插入图片描述
选择“外观”中的“语言”,就可以看到浏览器页面的语言首选项;
在这里插入图片描述
也可以点击右侧的“添加”来添加新语言;
在这里插入图片描述
添加好语言后,选中某一语言,通过右侧的“上移”和“下移”调整浏览器的语言选择顺序,排在最上面的语言最优选择。
在这里插入图片描述
调整好之后刷新页面,若页面变为相应的语言,那么国际化就成功啦!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值