首页 > 技术文章 > (二)ASP.NET中JavaScript的中英文(多语言)实现方案(二)

jxlsomnus 2015-02-03 17:05 原文

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";

 

推荐阅读