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 相关文章推荐
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
Jan 06 Javascript
使用Javascript接收get传递的值的代码
Nov 30 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
简述Jquery与DOM对象
Jul 10 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
详谈js原型继承的一些问题
Sep 06 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
Sep 16 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
May 30 Javascript
新手快速入门JavaScript装饰者模式与AOP
Jun 24 Javascript
react实现移动端下拉菜单的示例代码
Jan 16 Javascript
Node 使用express-http-proxy 做api网关的实现
Oct 15 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数字转汉字代码(算法)
2011/10/08 PHP
获取URL文件名后缀
2013/10/24 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
python实现txt文件格式转换为arff格式
2018/05/31 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
Django 拆分model和view的实现方法
2019/08/16 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
全球最大的游戏市场:G2A
2018/07/05 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
人事任命书格式
2014/06/05 职场文书
中文专业自荐书
2014/06/29 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
培根随笔读书笔记
2015/07/01 职场文书
结婚主持人致辞
2015/07/28 职场文书
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技