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

tpkey 发布于 2013/09/03 10:33
阅读 942
收藏 0

怎么实现自动化切换国际化资源,网上看了好多教程,但前提是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";
 
 }

 

加载中
0
首席打酱油
首席打酱油

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

  1. accept-language:
    zh-CN,zh;q=0.8,zh-TW;q=0.6,en-US;q=0.4,en;q=0.2
主要是zh-CN

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

界面上展示的文字等信息,做本地化处理,在页面用标签获取,后台也类似, Locale这个是可以在浏览器中设置的.


酷酷的就
酷酷的就
回复 @tpkey : 你想多了,后台是无法控制前台的语音设置的,你之需要后台按一定编码输出到前台展示即可,你管不着用户选择什么语音的.
t
tpkey
请问怎么通过后台改变本地locale呢?或者在传递本地locale过程中怎么改变这个值 使得后台返回通过改变的locale属性来加载对应的资源文件?
0
首席打酱油
首席打酱油
举个例子 如火狐浏览器   在选项——内容  里面有个语言 中国默认是中文  如果你选英文的话  请求头的信息就会改变 struts2 就会生成英文的信息了  这个要用户改的 不过一般下英文版就会对应引文首选的
t
tpkey
通过点击切换,而不是改变浏览器语言选择来切换
t
tpkey
就是我通过后台改变浏览器传递的locale属性,然后返回我想要的语言,这样可以吗?就是想在页面设置个语言自动切换的功能
0
首席打酱油
首席打酱油

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

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

返回顶部
顶部