1

我有一个简单的 html 页面,那里有几个文本元素。这个我想本地化,英语,德语等等。

在这里我找到了一些片段,但我没有让它们工作: 仅使用 JQuery 处理多语言 为什么这不是正确的语法:

js:

label["login"]["fr"]="Connection";
label["login"]["en"]="Login";
...
//some Click-Listener change all language elements
$("*[tag='ist_ml']").each(function() {
    $(this).html(label[$(this).attr("ml_label")]["en"]);
});
//End Click-Listener

html:

<label tag='ist_ml' ml_label='login' for='txtLogin'></label>

一些帮助很大的地方,或者其他一些简单的想法。

4

4 回答 4

0

在尝试存储数据之前定义变量:

label = {};
label["login"] = {};
label["login"]["fr"]="Connection";
label["login"]["en"]="Login";

或者

label = {
    login : {
        fr : "Connection",
        en : "Login"
    }
};
于 2013-07-18T07:06:20.160 回答
0

我认为可能缺少或未清除的内容:

var label = new Array();
label["login"] = new Array();
label["login"]["en"] = "Bla...";
于 2013-07-18T07:06:38.397 回答
0

您的代码已经过完善并且可以在这里工作

JS代码:

var lb = {};
lb["login"] = {};

lb["login"]["fr"] = "Connection";
lb["login"]["en"] = "Login";

//some Click-Listener change all language elements
  $("label[class='is']").each(function () {
  $(this).html(lb[$(this).attr("ml_label")]["en"]);
});
//End Click-Listener

HTML 代码:

<label class='is' ml_label='login' for='txtLogin'></label>
<label class='is' ml_label='login' for='txtLogin'></label>

这是与您的代码一起玩的 J SFIDDLE

活着,梦想,珍惜:)

于 2013-07-18T07:09:30.770 回答
0

派对迟到了几分钟,但这是我的工作解决方案供参考:

http://jsfiddle.net/adnrw/jStET/1/

如上所述,您需要在开始添加内容之前声明array()for 。label

于 2013-07-18T07:13:33.610 回答