js使用i18n实现页面国际化的方法

页面引用的插件

<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则是文字的语言内容

中文的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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • AngularJs 国际化(I18n/L10n)详解

    一.I18n and L10n in AngularJS 1. 什么是I18n和L10n? 国际化(Internationalization),简称I18n,是让产品开发在一个他们可以简单地对产品进行语言.文化的本地化的方法的规范.本地化(Localization),简称L10n,一个使得应用.文本有适应特殊的文化或者语言市场的能力的规范.对于应用开发者,使一个程序国际化,意味着需要从程序中抽取所有字符串和其他区域较为特别的地方(例如日期和货币格式).使一个程序本地化,意味着需要提供根据I18n

  • js使用i18n实现页面国际化的方法

    页面引用的插件 <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&

  • angular.js + require.js构建模块化单页面应用的方法步骤

    前言 本文主要给大家介绍的是关于利用angular.js + require.js构建模块化单页面应用的方法,分享出来供大家参考学习,需要的朋友们下面来一起看看详细的介绍吧. AngularJS描述: angularjs是可以用来构建WEB应用的,WEB应用中的一种端对端的完整解决方案.通过开发者呈现一个更高层次的抽象来简化应用的开发.最适合的就是用它来构建一个CRUD应用,它提供了非常方便的且统一高效的解决方案,其数据绑定.基本模版标识符.表单验证.路由.深度链接.组件重用.依赖注入.以及HT

  • JS实现刷新父页面不弹出提示框的方法

    本文实例讲述了JS实现刷新父页面不弹出提示框的方法.分享给大家供大家参考,具体如下: A页面 open方式出 B页面 ,当B页面做了类如保存动作后,需要关闭B页面,刷新A页面的情况下,会弹出一个提示框,要求点重试,这个就是发生预料之外的情况,用户体验很差. 解决方案分两种情况: 1.A页面很简单的情况(没有frame/iframe) 在B页面中的function中: function close(){ window.opener.location.reload(); window.opener

  • js实现iframe跨页面调用函数的方法

    本文实例讲述了js实现iframe跨页面调用函数的方法.分享给大家供大家参考.具体实现方法如下: 在项目中难免会遇到这样一个问题就是页面引入了IFrame并且需要父页面调用子页面函数或者子页面需要调用父页面函数.比如说:现在有两个页面parent.html和child.html.其中parent.html中含有IFrame并且IFrame指向child.html.现在需要在parent.html/child.html中调用child.html/parent.html的一个js方法. 具体的代码实

  • django+js+ajax实现刷新页面的方法

    本文实例讲述了django+js+ajax实现刷新页面的方法.分享给大家供大家参考,具体如下: 在服务器开发的时候,为了方便将服务器对外开一个接口来操作,可以使用django制作网页,通过页面来操作服务器.这样可以将服务器的维护工作暴漏在更加友好的界面操作,而非通过SecureCRT去敲指令.而且还能提供给策划运维人员来处理一些常规的事情. 这里将会讲解一个非常小的知识点: ① js如何发起一次请求 ② django如何响应请求 ③ js接收到响应如何区域刷新页面 js部分 我们先在html中定

  • JS实现获取键盘按下的按键并显示在页面上的方法

    本文实例讲述了JS实现获取键盘按下的按键并显示在页面上的方法.分享给大家供大家参考,具体如下: 请你使用键盘输入一些字符,这些字符就被显示在网页的空白处,是不是少了文本框或文本域之类的东西,觉得挺不习惯呢?这个效果是应用了JavaScript中的document.onkeypress对象,监测键盘的一举一动,并记录下哪些键被按下,有意思吧,想研究Js的朋友,就从这些小例子开始吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-web-sh

  • JS实现点击按钮获取页面高度的方法

    本文实例讲述了JS实现点击按钮获取页面高度的方法.分享给大家供大家参考,具体如下: 这是一个JavaScript特效代码,点击获取网页高度,在ie6下实现position-fixed的效果,另外针对遮罩的问题(大概是做lightBox吧),个人觉得纯css法(不包括其显示/隐藏)将更适合. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-click-btn-web-height-codes/ 具体代码如下: <!DOCTYPE html P

  • JS控制弹出新页面窗口位置和大小的方法

    本文实例讲述了JS控制弹出新页面窗口位置和大小的方法.分享给大家供大家参考.具体如下: 相信很多朋友都想做一个弹出用来弹出公告或者重要信息,但是弹出的框口位置和大小又不能太大,所以我们今天使用JS来控制弹出窗口的位置和大小,想弹多大就多大 复制代码 代码如下: <html> <head> <title>指定弹出窗口位置(IE)</title> <script language="javascript"> <!-- fun

  • JS实现加载时锁定HTML页面元素的方法

    本文实例讲述了JS实现加载时锁定HTML页面元素的方法.分享给大家供大家参考,具体如下: 在html加载时js锁定页面内所有input,textarea,select  具体js如下 index.js for(z=0;z<document.getElementsByTagName('input').length;z++) { document.getElementsByTagName('input')[z].setAttribute('disabled','disabled') } for(zz

  • js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)

    本文实例讲述了js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件).分享给大家供大家参考.具体如下: 用户离开页面前,提示是否离开此页面(包括浏览器按钮事件) <script type="text/javascript"> window.onbeforeunload = function(){ return "您的文章尚未保存!"; } </script> 如果在退出页面时需要弹出对话框,提示用户将要退出页面,类似当设置某个功

随机推荐