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 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
浅谈JavaScript中的字符编码转换问题
Jul 07 Javascript
js提交form表单,并传递参数的实现方法
May 25 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 Javascript
原生js实现省市区三级联动代码分享
Feb 12 Javascript
深入理解vue-class-component源码阅读
Feb 18 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 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数据源表结构图示
2008/06/05 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
windows下ipython的安装与使用详解
2016/10/20 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
新领导上任欢迎词
2014/01/13 职场文书
报告会主持词
2014/04/02 职场文书
安全生产责任书范本
2014/04/15 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
先进典型事迹材料
2014/12/29 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
python实现Nao机器人的单目测距
2021/09/04 Python
asyncio异步编程之Task对象详解
2022/03/13 Python