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 相关文章推荐
JavaScript 对象模型 执行模型
Oct 15 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
Dec 30 Javascript
javascript模拟订火车票和退票示例
Apr 24 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 Javascript
axios基本入门用法教程
Mar 25 Javascript
以v-model与promise两种方式实现vue弹窗组件
May 21 Javascript
详解JSON和JSONP劫持以及解决方法
Mar 08 Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
Jul 24 Javascript
JavaScript实现拖动对话框效果的实现代码
Oct 12 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
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
Python for循环与getitem的关系详解
2020/01/02 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
python3跳出一个循环的实例操作
2020/08/18 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
Java面试题汇总
2015/12/06 面试题
纪念建党演讲稿范文
2014/01/13 职场文书
社团活动总结
2014/04/28 职场文书
宣传标语大全
2014/07/01 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2014年销售部工作总结
2014/12/01 职场文书
党校党性分析材料
2014/12/19 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
李强感恩观后感
2015/06/17 职场文书
Python基础之字符串格式化详解
2021/04/21 Python