如何在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() { ... } } ] }); 

这样就可以自然地使用动态标签。 使用此格式,您还可以指定任何其他属性,例如classdisabled等。

http://api.jqueryui.com/dialog/#option-buttons

好的,找到了这样做的方法:你需要创建一个带有翻译的对象(这个对象可以传递给函数),然后创建第二个对象,将你的动作函数绑定到翻译对象的元素:

 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对话框按钮提出质疑