【问题标题】:Is it possible to change all JQuery UI Dialog buttons (Yes/No/Cancel) titles?是否可以更改所有 JQuery UI 对话框按钮(是/否/取消)标题?
【发布时间】:2011-11-23 11:07:27
【问题描述】:

是否可以更改每个“是”、“否”和“取消”按钮的标题,还是我必须为每个对话框单独执行此操作?

根据要求提供更多详细信息:

在典型的 JQuery 对话框中,对话框按钮的定义如下:

buttons: {
   Yes: function () {
   },
   No: function () {
   }
}

我正在寻找一种方法来更改“是”、“否”和“取消”按钮文本,而无需更改每个对话框。

所以如果例如对话框定义如上,“是”按钮应自动具有正确的本地化标题。

【问题讨论】:

  • 请详细说明您要达到的目标。
  • 您的声望接近 4k,但仍然只提供一个完全没有细节的问题。还有更多信息,例如您使用的插件、源代码等?

标签: jquery localization dialog jquery-ui-dialog


【解决方案1】:

我假设我们正在谈论 jQuery UI 的对话框。我建议编写一个插件来包装对话框插件并传递所有选项,除了“是”、“否”或“取消”按钮的标题。这些你可以在你的包装插件中设置。

这很简单。这是开始的一种方法:

(function( $ ){

    $.fn.myDialog = function( options ) {  

        return this.each(function() {

    var settings = $.extend( {
          'buttons'         : buttons: [
        {
            text: "My Yes",
            click: options.myOkCallback
        },
        {
            text: "My Cancel",
            click: options.myCancelCallback
        },
        {
            text: "My No",
            click: options.myNoCallback
        }
    ]

    }, options);

    $(this).dialog(settings);

});

  };
})( jQuery );

【讨论】:

  • 你是对的。问题是关于 jQuery UI 对话框的。我更新了问题的标题。感谢您的建议,如果没有更简单的方法,我可能会使用您的解决方案。
  • 刚刚添加了一个相当简单的示例,以防您决定编写包装器
  • 非常感谢。是否可以修改原始对话框而不是使用不同的名称?否则我将不得不替换整个项目中的所有“对话框”。
  • 我不推荐它,但是,您可以将旧对话框功能分配给另一个功能 $.fn.oldDialog = $.fn.dialog; 在您的插件中使用 $(this).oldDialog(settings) 并将您的插件命名为 $.fn.dialog
【解决方案2】:
$(":button[value=Yes]").val("Evet");

它会将所有值为“Yes”的按钮翻译成 Tukish yes“Evet”。
你可以找到JSFiddleexample here

【讨论】:

  • 感谢您的建议。该解决方案(尚未)最有可能是因为对话框按钮有时是在执行翻译行之后定义的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 2013-07-03
  • 2012-12-29
  • 2014-04-04
相关资源
最近更新 更多