关于ssh国际化的记录

最近一点时间,公司项目上需要用到国际化。小小的研究了下,脑袋头都大了。不是说国际化难,而是看合不合适自己。

接触到国际化的技术分类有两种

  1. 1.   前台js国际化
  2. a)     jquery.i18n.properties
  3. b)    jquery.i18n
  4. c)     i18next
  5. 2.   后台框架及java原生国际化方法
  6. a)     Java原生 ResourceBundle获取en_US.properties文件,获取值
  7. b)    Struts2配置相应配置文件 action继承ActionSupport方法,用getText方法取值页面引入Struts2标签库的方式取值。
  8. c)     Spring进行国际化. 和Struts2差不多。

因为项目框架的原因,我不得不使用Struts2 + i18next来进行国际化。这两种国际化的方式网上都有。我简单列下要注意的点

  1. 1.    Struts2国际化会针对游览器语言进行自动切换语言,但常常我们自己希望控制语言的切换。

我的方法如下:

    /**
     * 语言切换
     * @return
     */
    publicvoid doChageLanguage(){
        String language =contextPvd.getRequestStr("language");
        Locale locale = null;
        if (language.equals("zh_CN")) {
            locale = Locale.CHINA;
        } else {
            locale = Locale.US;
        }
        //使用cookie 保存用户语言信息
        Cookie cookie = new Cookie("language", language);
        contextPvd.addCookie(cookie);
        cookie.setMaxAge(60 * 60 * 24 * 14);
        cookie.setPath(contextPvd.getAppCxtPath());   
       
        //使用Session 保存用户语言信息
        contextPvd.setLocale(locale);       
        contextPvd.setSessionAttr("WW_TRANS_I18N_LOCALE", locale);
}

但是发现语言切换还是有问题,查询了下发下 Struts2有bug~(不知道现在修复了没,我用的版本比较老)

解决问题的方案见:

http://showtime520.iteye.com/blog/1042585(感谢分享)

我对上面代码进行了简单修改

见代码

publicMyRequestWrapper(HttpServletRequest request) { 
        super(request); 
        
        Cookie  cookie =null;
        Cookie[] cookies =  request.getCookies();
        if (cookies != null) {
            for (Cookie c : cookies) {
                if (c.getName().equals("language")) {
                    cookie =c ;
                }
            }
        }
        
        if(null !=cookie){
        Stringlanguage = cookie.getValue();
        if(!StringUtils.isBlank(language) ){
              if (language.equals("zh_CN")) {
                      locale = Locale.CHINA;
                  } else {
                      locale = Locale.US;
                  }
            }else{
                HttpSession session =request.getSession();  
                locale = (Locale) session.getAttribute("WW_TRANS_I18N_LOCALE"); 
            }
        }
    }

主要使用Cookie 获取语言~~。Struts2注意点就这些。

然后讲讲 i18next,说实话如果不是框架的原因  单单使用i18next就可以完全实现国际化。

而且i18next非常小。但是i18next的资料很少,笔者的英语很烂,也只能咬着呀看官方文档,但还是说同学们看文档吧~~

关键初始化:

               var option = {
                     ns: ‘i18n‘ , 
                              sendType: ‘post‘,
                              resGetPath: bootPATH+‘i18n/__lng__.json‘,
                              debug: true,
                              lng: language};
       i18n.init(option, function(err, t) {
$("body").i18n();
       }); 
       Json格式:
{  
"login":
    {    
        "msg":"land successfully,Get tothe system right away...", 
        "msg1": "landsuccessfully"
    } 
}

使用:

在页面中用   data-i18n="login.msg" 直接使用。js弹出 时用 直接用i18n.t("ogin.msg")的方式直接获取.

就写到这里。看看对你有没有帮助~~

时间: 2024-08-10 02:10:47

关于ssh国际化的记录的相关文章

Spring MVC异常统一处理(异常信息的国际化,日志记录)

JAVA EE项目中,不管是对底层的数据操作,还是业务层的处理过程,还是控制层的处理,都不可避免的会遇到各种可预知的(业务异常主动抛出).不可预知的异常需要处理.一般dao层.service层的异常都会直接抛出,最后由controller统一进行处理,每个过程都单独处理异常,且要考虑到异常信息和前端的反馈,代码的耦合度高,不统一,后期维护的工作也多. 同时还必须考虑异常模块和日志模块.国际化的支持. 因此需要一种异常处理机制将异常处理解耦出来,这样保证相关处理过程的功能单一,和系统其它模块解耦,

ubuntu修改网卡名称,找不到eth0,无法ssh链接问题记录

一.修改网卡名称: 如出现网卡名称不是eth0,可以将/etc/default/grub文件编辑,然后添加一下内容: vi /etc/default/grub 然后通过update-grub命令使之生效 update-grub 还要编辑 /etc/network/interfaces 添加图示中的两行 然后重启ubuntu系统,ip a 命令查看网卡名称. 二.ip a 查看网卡名称变成了eth1.   转载别人的------(用此方法问题解决了) 很多Linux distribution使用u

登录ssh之后不记录history

unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0

ssh登陆失败问题记录

用ssh登陆服务器时,出现如下报错 出现原因: ssh登陆时记录下了上次公钥,不一样则登陆失败,防止攻击 解决方案: 清除公钥 ssh-keygen -R 服务器地址

[SSH服务]——SSH详解

在总结ssh原理前,我先做了一个ssh过程的实验 首先我搭建了这样一个实验环境: (1) SSH Server:10.0.10.198 (2) SSH Client:10.0.10.158 在Server端 10.0.10.198,我执行了如下操作: (1)清空了服务器端提供的公钥与自己的密钥: [[email protected] ssh]# rm /etc/ssh/ssh_host* rm:是否删除普通文件 "/etc/ssh/ssh_host_dsa_key"?y rm:是否删除

Linux:SSH错误"WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! "

[email protected]:~$ scp /home/hadoop/.ssh/authorized_keys node3:/home/hadoop/.ssh/ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Linux下的ssh环境搭建与管理

Linux下的ssh环境搭建与管理 实验环境 1:网桥模式 2:安装好vmtoos 3:安装好yum 4:安装好ssh相关软件包 5:服务端:xuegod-63   IP:192.168.1.63 客户端:xuegod-64   IP:192.168.1.64 客户端普通用户:ceshi  密码:123456 6:安装好扫描软件rpm -ivh/mnt/Packages/nmap-5.21-4.el6.x86_64.rpm 实验目标 1:SSHD服务介绍 2:SSHD服务安装配置 3:两Linu

Puppet模块(五):SSH模块及ssh资源

作用:通过SSH模块管理客户端的ssh远程服务,并用key认证方式替代密码认证方式,提高安全性: 本例分两阶段,首先是ssh的安装.配置及服务管理,然后是使用如何转换成key认证方式. #第一阶段 1.服务端配置ssh模块 (1)模块清单 [[email protected] ~]# tree /etc/puppet/modules/ssh/ /etc/puppet/modules/yum/ ├── files │   └── sshd_config ├── manifests │   ├── 

ssh环境搭建与管理(详解)

ssh环境搭建与管理 (详解) 实验环境 服务端:xuegod-63   IP:192.168.1.63 客户端:xuegod-64   IP:192.168.1.64 客户端普通用户:ceshi  密码:123456 安装好扫描软件rpm -ivh /mnt/Packages/nmap-5.21-4.el6.x86_64.rpm 实验目标 1:SSHD服务介绍 2:SSHD服务安装配置 3:两Linux服务器之间数据拷贝 4:SSHD服务作用: 实验步骤 1:搭建环境 1):网桥模式 2):v