(二)ASP.NET中JavaScript的中英文(多语言)实现方案(二)
在ASP.NET中JavaScript的中英文(多语言)实现方案中简单的介绍了js实现多语言的一种方案。下面将要讲述另外一种方法,尽管很相似,但是有些地方也是需要细细琢磨的,不说了,先看看。
在Lang.html中代码如下:因为本文中用到了jquery所以要先加载jquery的js文件。另外再分别加载所需要的两个自定义js
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title></title> <script src="/common/jquery-1.8.2.min.js" type="text/javascript"> </script> <script src="/common/common.js"></script> <script src="/common/CommonGlobalVariables.js"></script> </head> <body> <a href="javascript: SetEn()" >En</a> <a href="javascript: SetZh()" >Cn</a> <a href="javascript:commonAlert()">common</a> <a href="javascript:globalAlert()">Global</a> </body> </html>
本文中的js多语言实现了两种格式的。
第一种:
先来看common.js
//动态加载js function loadJavascriptInHead(file) { var head = $('head'); $("<script></script>").attr({ src: file, type: 'text/javascript', id: 'loadscript' }).appendTo(head); } //comm init language function InitPublicLanguageculture() { if (document.cookie.indexOf("en")>0) { loadJavascriptInHead('/common/en-us.js'); loadJavascriptInHead('/common/enGlobalVariables.js'); } else{ loadJavascriptInHead("/common/zh-cn.js"); loadJavascriptInHead('/common/cnGlobalVariables.js'); } } function commonAlert() { InitPublicLanguageculture(); alert($.common.lang.User); } function SetEn() { document.cookie = "lg=en"; } function SetZh() { document.cookie = "lg=cn"; }
common.js中定义了SetEn() SetZh()commonAlert()三个方法,分别对应了html文件中的超链接。
loadJavascriptInHead()是动态加载js的方法,具体详见JQuery动态加载js的三种方法。
在初始化语言是通过选择动态加载中英文两种语言的js对应分别如下:
en-us.js代码:
(function ($) { if (typeof ($.common) == 'undefined') { $.common = {}; } $.common.lang = { User: "UserName", Pwd: "Password" } })(jQuery);
zh-cn.js代码:
(function ($) { if (typeof ($.common) == 'undefined') { $.common = {}; } $.common.lang = { User: "用户名", Pwd:"密码" } })(jQuery);
第二种:
CommonGlobalVariables.js代码如下:
var tipmsg = { errmsg: "错误", successmsg:"正确" } $.Tipmsg = tipmsg; function globalAlert() { InitPublicLanguageculture(); alert(tipmsg.errmsg); }
这里面是设置了全局变量$.Tipmsg。然后通过修改全局变量的值就可以实现中英文切换。
加载的中英文js代码如下:
cnGlobalVariables.js代码:
$.Tipmsg.errmsg = "错误全局变量"; $.Tipmsg.successmsg = "正确全局变量";
enGlobalVariables.js代码:
$.Tipmsg.errmsg = "Error"; $.Tipmsg.successmsg = "Right";