如何在JQueryUI模式对话框上本地化按钮
我有一个JQueryUI模式对话框,一切正常,除了一个问题…如何本地化确定和取消按钮? 我已经完成了演示和文档,除非我遗漏了一些非常明显的东西,否则无法弄清楚如何做到这一点……
我的代码:
$("#MyDialog").dialog({ . . . buttons: { OK: function () { . . . }, Cancel: function () { . . . } } });
这将显示一个带有两个按钮的对话框,“确定”和“取消”。 如何让按钮读取,例如“Si”和“Cancellare”..?
我需要做的是能够注入本地化的值。 所以我需要的是不要将“Si”或“Cancellare”硬编码到对话框设置代码中,而是能够设置OK按钮以显示“OK”或“Si”或任何其他值,具体取决于客户的机器。
关于对话框的其他所有工作正常。
您只需更改属性的名称…
var buttons = {}; buttons[getLocalizedCaptionForYesButton()] = function() { }; buttons[getLocalizedCaptionForCancelButton()] = function() { }; $("#MyDialog").dialog({ buttons: buttons });
本地化按钮的最佳方法是使用按钮选项的数组格式。
$( "#MyDialog" ).dialog({ buttons: [ { text: "OK", click: function() { ... } }, { text: "Cancel", click: function() { ... } } ] });
这样就可以自然地使用动态标签。 使用此格式,您还可以指定任何其他属性,例如class
, disabled
等。
好的,找到了这样做的方法:你需要创建一个带有翻译的对象(这个对象可以传递给函数),然后创建第二个对象,将你的动作函数绑定到翻译对象的元素:
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对话框按钮提出质疑