是否可以应用 Struts 2 国际化(i18n),通过单击将网站所有网页上的语言从English更改为Hindi?
如果可以的话我该如何解决这个问题?
正如@RomanC提到的,可以做到这一点,你需要在你的包中有
i18n
拦截器。
之后,您需要 jsp 页面
submit
一个其中包含 request_locale
的表单,或者调用其参数中包含 request_locale
的操作。例如,如果您想使用 select
进行操作,您可以使用以下内容:
<s:form id="langselect" action="locale-manager" namespace="/common">
<s:select name="request_locale" headerKey="-1"
headerValue="Language"
list="#{'en_US':'English', 'fa_IR':'فارسی','ar_SA':'العربية','zh_CN':'中国的'}"
onchange="forms['langselect'].submit()" />
</s:form>
您的表单操作根本不需要更改区域设置,因为拦截器将为您完成所有工作。
更改区域设置会立即更改所有 20 个页面,当然,只要您重新加载页面即可。因此,如果您想使用
tab
执行此操作,您需要重新加载新页面(例如使用 ajax)或重新加载整个站点以从 struts 获取本地化的 jsp。
框架国际化。
您需要为每个语言环境添加对应的资源包 通过 struts 标签显示的本地化消息。使用
标签或text
可在 UI 中检索消息。getText()
浏览器语言通过HTTP请求和框架传递 创建与浏览器设置相对应的区域设置。交换 通过传递特殊参数
来执行区域设置request_locale
拦截器应该在你的堆栈上。i18n
您还可以配置此拦截器以接受用户定义的 参数。
通常,切换到区域设置会在用户会话中持续存在。 因此,您不必每次请求时都传递参数,但是 如果需要,也支持这种情况。看看你如何才能实现所有目标 上述内容使用 localization。