i18n 国际化

463 阅读1分钟
  1. 所需工具:
  • jquery-3.3.1.js 下载地址:jquery
  • jquery.i18n.properties.js jquery.i18n.properties.js 搭建项目目录如下: 创建一个文件夹 名字随意 最好要有意义 看到就知道里面放的东西 写上一定的测试页面代码,如下所示:
<head>  
 <meta charset="UTF-8">  
 <meta name="viewport"  
  content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">  
 <meta http-equiv="X-UA-Compatible" content="ie=edge">  
 <title>国际化样例</title>  
</head>  
<body>  
  
<form>  
	 <select class="lan_select">  
		 <option class="lan_zh">中文</option>  
		 <option class="lan_en">英文</option>  
	 </select>
 </form>  
  
<label class="username"><!--用户名:--></label><input type="text">  
<label class="password"><!--密码:--></label><input type="password">  
  
<script type="application/javascript" src="JS/jquery-3.3.1.js"></script>  
<script type="application/javascript" src="JS/jquery.i18n.properties.js"></script>  
<script type="application/javascript" src="JS/language.js"></script>  
  
</body>  
</html>

下面我们在两个语言中分别定义需要显示的文字:

password=密码: 
lan_zh=中文  
lan_en=英文

password=Password:  
lan_zh=Chinese  
lan_en=English

注册点击事件 点击切换

var LANGUAGE_Index = "zh_CN"; //标识语言  
  
jQuery(document).ready(function () {  
    // alert("页面加载时调用的方法");  
  
  LANGUAGE_Index = jQuery.i18n.normaliseLanguageCode({}); //获取浏览器的语言  
  loadProperties(LANGUAGE_Index);  
});  
  
  
$(".lan_select").change(function () {  
  
  
    if (($(".lan_select").val() === "英文") || ($(".lan_select").val() === "English")) {  
        LANGUAGE_Index = "en_US";  
  } else {  
        LANGUAGE_Index = "zh_CN";  
  }  
  
    loadProperties(LANGUAGE_Index);  
  
});  
  
  
function loadProperties(type) {  
    jQuery.i18n.properties({  
        name: 'strings', // 资源文件名称  
		path: 'Languages/', // 资源文件所在目录路径  
	    mode: 'map', // 模式:变量或 Map  
	    language: type, // 对应的语言  
	    cache: false,  
	    encoding: 'UTF-8',  
	    callback: function () { // 回调方法  
		    $('.lan_zh').html($.i18n.prop('lan_zh'));  
		    $('.lan_en').html($.i18n.prop('lan_en'));  
		    $('.username').html($.i18n.prop('username'));  
		    $('.password').html($.i18n.prop('password'));  
	    }  
	});  
}