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 29 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
javascript从右边截取指定字符串的三种实现方法
Nov 29 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
Dec 31 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
Jun 05 Javascript
Angular2库初探
Mar 01 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
Apr 27 Javascript
React中使用外部样式的3种方式(小结)
May 28 Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 Javascript
微信小游戏中three.js离屏画布的示例代码
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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
jQuery动态添加
2016/04/07 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
js的三种继承方式详解
2017/01/21 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
详解python中的Turtle函数库
2018/11/19 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
护士在校生自荐信
2014/02/01 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
贷款收入证明格式
2015/06/24 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS