我有一个JQueryUI模式对话框,一切正常,除了一个问题...如何本地化OK和Cancel按钮?我已经完成了演示和文档,除非我遗漏了一些非常明显的东西,否则无法弄清楚如何做到这一点......
我的代码:
$("#MyDialog").dialog({
.
.
.
buttons: {
OK: function () {
.
.
.
},
Cancel: function () {
.
.
.
}
}
});
显示一个带有两个按钮的对话框,“确定”和“取消”。如何让按钮读取,例如“Si”和“Cancellare”..?
我需要做的是能够注入本地化的值。所以我需要的是不要将“Si”或“Cancellare”硬编码到对话框设置代码中,而是能够设置OK按钮以显示“OK”或“Si”或任何其他值,具体取决于客户的机器。
关于对话框的其他所有内容都可以正常工作。
答案 0 :(得分:21)
本地化按钮的最佳方法是使用按钮选项的数组格式。
$( "#MyDialog" ).dialog({
buttons: [
{
text: "OK",
click: function() { ... }
},
{
text: "Cancel",
click: function() { ... }
}
]
});
这样可以自然地使用动态标签。使用此格式,您还可以指定任何其他属性,例如class
,disabled
等。
答案 1 :(得分:6)
您只需更改属性的名称......
var buttons = {};
buttons[getLocalizedCaptionForYesButton()] = function() { };
buttons[getLocalizedCaptionForCancelButton()] = function() { };
$("#MyDialog").dialog({
buttons: buttons
});
答案 2 :(得分:1)
好的,找到了这样做的方法:你需要创建一个带有翻译的对象(这个对象可以传递给函数),然后创建第二个对象,将你的动作函数与翻译元素联系起来对象:
var translations = {};
translations["ok"] = "Si";
translations["cancel"] = "Cancellare";
var buttonsOpts = {};
buttonsOpts[translations["ok"]] = function () {
.
.
.
};
buttonsOpts[translations["cancel"]] = function () {
.
.
.
};
$("#MyDialog").dialog({
.
.
.
buttons: buttonsOpts
});
Alexey Ogarkov提出的问题基本答案jQuery UI Dialog Buttons from variables