【问题标题】:Translate "Buttons" in jQuery UI Dialogs在 jQuery UI 对话框中翻译“按钮”
【发布时间】:2011-08-01 06:12:15
【问题描述】:

我有两个带有翻译的 JavaScript 文件,将根据用户的语言包含这些文件。这适用于大多数情况。但不适用于 jQuery UI 对话框中的 Buttons 对象。任何想法如何解决这个问题?

if (data.status == 'success') {
    options = {
        buttons: {
            CLOSE: function() {
                      $(this).dialog('close');
                   }
            }
        };

CLOSE 必须翻译。

【问题讨论】:

    标签: jquery button internationalization translation jquery-ui-dialog


    【解决方案1】:

    只需要加引号:P

    if (data.status == 'success') {
      options = {
        buttons: {
          'translated text for close': function() {
                      $(this).dialog('close');
                   }
           }
      };
    

    【讨论】:

    • 翻译存储在一个 JS 文件中,例如:var CLOSE = 'Schließen';所以你的解决方案不起作用。
    【解决方案2】:

    像这样创建按钮对象:

    var myButtons = {};
    myButtons[CLOSE] = function() { $(this).dialog('close'); };
    
    if (data.status == 'success') {
      options = {
        buttons: myButtons
      };
    }
    

    编辑:更新为使用 CLOSE 变量。

    【讨论】:

    • +1 这就是我在整个 jQuery UI 中进行翻译的方式。我们需要对我们的代码稍作改动,但效果很好。
    【解决方案3】:

    two ways to specify buttons in a dialog (since 1.8.5)。其中只有一个对国际化有用。像这样定义您的选项:

    if (data.status == 'success') {
        options = {
            buttons: [{
                text: CLOSE,
                click: function() {
                          $(this).dialog('close');
                       }
            }]
        }
    }
    

    @dioslaska 的解决方案也可以,但我认为这种方式更漂亮。

    【讨论】:

    • 我也更喜欢这个答案,因为翻译的来源更明显。
    【解决方案4】:

    您必须在 jquery-ui javascript 文件中修改 Dialog 小部件的声明。

    找线

    closeText: "Close",
    

    并用您的翻译替换“关闭”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 2010-10-31
      • 2011-02-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多