struts2怎么实现国际化资源的自动切换

发布于 2021-11-23 00:12:01 字数 882 浏览 760 评论 8

怎么实现自动化切换国际化资源,网上看了好多教程,但前提是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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

贱贱哒 2021-11-24 16:35:40

那就新建个过滤器 在struts过滤器之前 把请求头的accept-language改成需要的语言 不过注意格式

别的想法暂时没有,不知道struts有没有专门的方法使用

贱贱哒 2021-11-24 16:23:07

就是我通过后台改变浏览器传递的locale属性,然后返回我想要的语言,这样可以吗?就是想在页面设置个语言自动切换的功能

命硬 2021-11-24 16:18:43

通过点击切换,而不是改变浏览器语言选择来切换

白龙吟 2021-11-24 15:29:58

举个例子 如火狐浏览器   在选项——内容  里面有个语言 中国默认是中文  如果你选英文的话  请求头的信息就会改变 struts2 就会生成英文的信息了  这个要用户改的 不过一般下英文版就会对应引文首选的

情痴 2021-11-24 13:47:49

请问怎么通过后台改变本地locale呢?或者在传递本地locale过程中怎么改变这个值 使得后台返回通过改变的locale属性来加载对应的资源文件?

北笙凉宸 2021-11-24 08:31:22

回复
你想多了,后台是无法控制前台的语音设置的,你之需要后台按一定编码输出到前台展示即可,你管不着用户选择什么语音的.

青萝楚歌 2021-11-24 07:44:17

请问我想通过页面自动切换语言呢?有的说是通过改变session值或者通过过滤器改变accept-languag的头但是只要重定位 都会失效的?

白龙吟 2021-11-23 05:46:31

不用配置  按国家设置好语言  加载后    会自动根据浏览器带来的地区信息头自动选择匹配的云烟的

  1. accept-language:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文