js使用i18n实现页面国际化的方法


Posted in Javascript onMay 09, 2017

页面引用的插件

<script type="text/JavaScript" src="${path}/plugings/jQuery-easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${path}/js/jquery.i18n.properties.min.js"></script>

以下是页面引用的js

/**
 * 设置语言类型: 默认为中文 
 */ 
var i18nLanguage = "zh-CN"; 
 
/* 
设置一下网站支持的语言种类 
zh-CN(中文简体)、en(英语) 
 */ 
var webLanguage = ['zh-CN', 'en']; 
 
//获取网站语言 
function getWebLanguage(){ 
   //1.cookie是否存在 
  if (jQuery.cookie("userLanguage")) { 
    i18nLanguage = jQuery.cookie("userLanguage"); 
    console.log("language cookie is "+i18nLanguage); 
  } else { 
    //2.1 获取用户设置的浏览器语言 
    var navLanguage = getNavLanguage(); 
    console.log("user set browser language is "+navLanguage); 
    if (navLanguage) { 
      // 判断是否在网站支持语言数组里 
      var charSize = $.inArray(navLanguage, webLanguage); 
      if (charSize > -1) { 
        i18nLanguage = navLanguage; 
        // 存到缓存中 
        jQuery.cookie("userLanguage ",navLanguage, {  
          expires : 7  
        }); 
      }; 
    } else{ 
      console.log("not navigator"); 
      return false; 
    } 
  } 
   
}
//国际化easyui中英文包 
function changeEasyuiLanguage(languageName) { 
  // when login in China the language=zh-CN  
  var src =$.contextPath+"/plugings/jquery-easyui/locale/easyui-lang-"+languageName.replace('-','_')+".js"; 
 console.log(src); 
 $.getScript(src); 
};
/** 
 * 执行页面i18n方法 
 * @return 
 * @author LH 
 */  
var execI18n = function(){ 
  //获取网站语言(i18nLanguage,默认为中文简体) 
  getWebLanguage(); 
    //国际化页面 
    jQuery.i18n.properties({ 
      name : "common", //资源文件名称 
      path : $.contextPath+"/i18n/"+i18nLanguage+"/", //资源文件路径 
      mode : 'map', //用Map的方式使用资源文件中的值 
      language : i18nLanguage, 
      cache:false, //指定浏览器是否对资源文件进行缓存,默认false 
      encoding: 'UTF-8', //加载资源文件时使用的编码。默认为 UTF-8。  
      callback : function() {//加载成功后设置显示内容 
        //以下是将要国际化的文字内容 
        //退出 
        $("#logOut").html($.i18n.prop('logOut')); 
        //用户 
        $("#loginUser").html($.i18n.prop('loginUser')) 
      } 
    }); 
}
/*页面执行加载执行*/ 
$(function(){ 
  /*执行I18n翻译*/ 
  execI18n(); 
  console.log("网站语言: "+i18nLanguage); 
  //国际化easyui 
  changeEasyuiLanguage(i18nLanguage);  
});

国际化的文件存放路径,zh-CN表示简体中文;en表示英语;也可扩展其它语言,只要在i18n文件夹下添加对应的文件;key要一一对应,value则是文字的语言内容

js使用i18n实现页面国际化的方法

中文的common.properties文件内容

login.userName=Username
login.passWord=Password
login.sub=Login
login.reset=Reset
login.anonymous=Anonymous

英文的common.properties文件内容

login.userName=Username
login.passWord=Password
login.sub=Login
login.reset=Reset
login.anonymous=Anonymous

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
FireFox与IE 下js兼容触发click事件的代码
Nov 20 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
js获取select默认选中的Option并不是当前选中值
May 07 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
Dec 01 Javascript
js实现遍历含有input的table实例
Dec 07 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
Aug 26 Javascript
JS实现最简单的冒泡排序算法
Feb 15 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
Jul 13 Javascript
vue中input的v-model清空操作
Sep 06 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
Angular中$state.go页面跳转并传递参数的方法
May 09 #Javascript
Vue 2.0中生命周期与钩子函数的一些理解
May 09 #Javascript
JavaScript中splice与slice的区别
May 09 #Javascript
详解node中创建服务进程
May 09 #Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
May 08 #Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 #jQuery
微信小程序 标签传入数据
May 08 #Javascript
You might like
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
理解php Hash函数,增强密码安全
2011/02/25 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
JS正则中的RegExp对象对象
2012/11/07 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
详解webpack-dev-server的简单使用
2018/04/02 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
Python 对输入的数字进行排序的方法
2018/06/23 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
怎样声明接口
2014/09/19 面试题
儿科主治医生个人求职信
2013/09/23 职场文书
安全生产检查通报
2014/01/29 职场文书
药学职务聘任书
2014/03/29 职场文书
员工年终自我评价
2014/09/14 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
保险公司增员口号
2015/12/25 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android