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实现仿Windows关机效果
Mar 10 Javascript
Javascript this 的一些学习总结
Aug 02 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
js关于字符长度限制的问题示例探讨
Jan 24 Javascript
jquery特效 点击展示与隐藏全文
Dec 09 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
Bootstrap每天必学之折叠
Apr 12 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
Nov 09 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
Mar 13 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
Oct 09 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
vue+iview实现手机号分段输入框
Mar 25 Vue.js
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
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
php数组去重实例及分析
2013/11/26 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
jquery选择器简述
2015/08/31 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
中科前程Java笔试题
2016/11/20 面试题
百日安全生产活动总结
2014/07/05 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
避暑山庄导游词
2015/02/04 职场文书
图文详解matlab原始处理图像几何变换
2021/07/09 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python