struts2怎么实现国际化资源的自动切换
怎么实现自动化切换国际化资源,网上看了好多教程,但前提是ActionSupport使用redirect转发之后就又恢复原样:
private String lan;@Action(
value = "amendLanguage",
results = {
@Result(name = "tt",type="redirect",location="/login.jsp")
})
public String amendLanguage(){
Locale locale = null;
if( lan != null && lan.equalsIgnoreCase("en_us")){
locale = new Locale("en","US");
}else{
locale = new Locale("zh","CN");
}
ActionContext.getContext().setLocale(locale);
this.getSession().setAttribute("WW_TRANS_I18N_LOCALE", locale);
return "tt";
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
那就新建个过滤器 在struts过滤器之前 把请求头的accept-language改成需要的语言 不过注意格式
别的想法暂时没有,不知道struts有没有专门的方法使用
就是我通过后台改变浏览器传递的locale属性,然后返回我想要的语言,这样可以吗?就是想在页面设置个语言自动切换的功能
通过点击切换,而不是改变浏览器语言选择来切换
举个例子 如火狐浏览器 在选项——内容 里面有个语言 中国默认是中文 如果你选英文的话 请求头的信息就会改变 struts2 就会生成英文的信息了 这个要用户改的 不过一般下英文版就会对应引文首选的
请问怎么通过后台改变本地locale呢?或者在传递本地locale过程中怎么改变这个值 使得后台返回通过改变的locale属性来加载对应的资源文件?
回复
你想多了,后台是无法控制前台的语音设置的,你之需要后台按一定编码输出到前台展示即可,你管不着用户选择什么语音的.
请问我想通过页面自动切换语言呢?有的说是通过改变session值或者通过过滤器改变accept-languag的头但是只要重定位 都会失效的?
不用配置 按国家设置好语言 加载后 会自动根据浏览器带来的地区信息头自动选择匹配的云烟的
如
accept-language: