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 相关文章推荐
js获取网页高度(详细整理)
Dec 28 Javascript
Jquery 动态循环输出表格具体方法
Nov 23 Javascript
js setTimeout()函数介绍及应用以倒计时为例
Dec 12 Javascript
jQuery实现延迟跳转的方法
Jun 05 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
使用Vuex实现一个笔记应用的方法
Mar 13 Javascript
LayerClose弹窗关闭刷新方法
Aug 17 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
微信小程序 下拉刷新及上拉加载原理解析
Nov 06 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
Jun 05 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
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
JQuery写动态树示例代码
2013/07/31 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
小试小程序云开发(小结)
2019/06/06 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python+logging+yaml实现日志分割
2019/07/22 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
幼儿园老师寄语
2014/04/03 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
人代会标语
2014/06/30 职场文书
商铺门面租房协议书
2014/10/21 职场文书
社区重阳节活动总结
2015/03/24 职场文书