在struts2 中的Localization这章中,讲述了很多实现多国语言的方法,我在使用中也感觉到了struts给我们带来的巨大便利,我这里选择一种较为复杂,也非常使用的一种实践办法。
上面的 i18n_en.properties 和 i18n_zh.properties是全局的资源文件,这里其实可以包含大部分的中英文信息,是非常重要的2个文件,而BookTypeAction.properties则是针对每个action比较特殊的信息,而且这些信息可能会在全局资源文件中重复,一般我们不去用,同样可以加_zh,_en等后缀,不过一般都不加了。
其次,配置struts.properties文件
struts.locale=zh 默认一进入网站用什么语言
struts.i18n.encoding=UTF-8
struts.custom.i18n.resources=i18n这个就是描述那2个全局资源文件的,注意,各个action旁边的资源文件不用在任何地方配置,struts会自动去查找
好了,现在还有最后一步,
<action name="someAction">
<interceptor-ref name="i18n"/>
<result name="success"></result>
</action>
这样,我们 就可以这样来动态且切换语言了,someAction.action?request_locale=zh
注意:request_locale是内定的,必须这样写
好了,试试在页面中用<s:text name="name"></s:text>吧
上面的 i18n_en.properties 和 i18n_zh.properties是全局的资源文件,这里其实可以包含大部分的中英文信息,是非常重要的2个文件,而BookTypeAction.properties则是针对每个action比较特殊的信息,而且这些信息可能会在全局资源文件中重复,一般我们不去用,同样可以加_zh,_en等后缀,不过一般都不加了。
其次,配置struts.properties文件
struts.locale=zh 默认一进入网站用什么语言
struts.i18n.encoding=UTF-8
struts.custom.i18n.resources=i18n这个就是描述那2个全局资源文件的,注意,各个action旁边的资源文件不用在任何地方配置,struts会自动去查找
好了,现在还有最后一步,
<action name="someAction">
<interceptor-ref name="i18n"/>
<result name="success"></result>
</action>
这样,我们 就可以这样来动态且切换语言了,someAction.action?request_locale=zh
注意:request_locale是内定的,必须这样写
好了,试试在页面中用<s:text name="name"></s:text>吧