国际化

保存一个文件到classpath下面,如message.properties,这个是西欧的默认资源文件,其他语言的方式是basename_语言代码_国家代码.properties,如message_zh_CN.properties。全局加载,struts2是struts.custom.i18n.resources=message,如果保存在包下面则是包名.资源名如,我们放到了com.test包下面就是struts.custom.i18n.resources=com.test.message。页面输出资源信息
<s:text name="messagekey" />
<s:property value=%{getTest("messageKey"}/>

在java中国际化主要是java.util.ResourceBundle加载资源包 java.util.Locale 对应一个特定的国家区域,语言环境,java.text.MessageFormat
资源文件可以有三种格式
basename_language_country.properties
basename_language.properties
basename.properties
通过Locale.getAvailaleLocales0来获取所有的支持的国家和语言


struts包范围资源文件
包名_language_country.properties,这里的报名不是action的包名,是资源文件所在的包名(不是完整包名),如com.test包下面就是test.properties,而com.test包的action和com.test的子包都可以访问
位于这个包下的action都可以访问

Action范围
ActionName_language_county.properties
和action类所在同一个包下。

加载顺序,先加载action,找不到的话,然后是父类的action,然后是action实现的action接口,然后是模型驱动的getModel返回的modle执行加载顺序类似的操作。找不到,找package的,一直找到第一级package,找不到找全局的。一直找不到,就输出这个key的字符串名。

为用户设置语言,ActionContext.getContext().setLocale(Locale arg);另一个有一个il8n的拦截器,会获取request_locale参数自动设置国家和语言。另外i18n拦截器会将上面说的生成的locale对象保存到session名为WW_TRANS_I18N_LOCALE。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值