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 获取用户客户端操作系统版本
Aug 25 Javascript
js返回前一页刷新本页重载页面
Jul 29 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
js一维数组、多维数组和对象的混合使用方法
Apr 03 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
解决layer.msg 不居中 ifram中的问题
Sep 05 Javascript
es6函数name属性功能与用法实例分析
Apr 18 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
输入框跟随文字内容适配宽实现示例
Aug 14 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
Terran历史背景
2020/03/14 星际争霸
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
php 错误处理经验分享
2011/10/11 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
菜单效果
2006/10/14 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
深入理解vue中的$set
2017/06/01 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
Python开发编码规范
2006/09/08 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
python输出数学符号实例
2020/05/11 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
PHP如何自定义函数
2016/09/16 面试题
PHP开发工程师面试问题集锦
2012/11/01 面试题
初中生自我评价
2014/02/01 职场文书
导师推荐信范文
2014/05/09 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python