2

我找到了如何 i18n 提交按钮的消息,例如:

echo CHtml::submitButton(Yii::t('tr','Print'),array('confirm'=>Yii::t('tr','Please confirm printing'),));

那么设置语言也能很好的翻译系统消息但是如何翻译提交确认弹出消息框的CANCEL/OK按钮呢?

4

1 回答 1

3

使用CJuiDialog的替代解决方案:

  1. jqueryui对话框的代码(CJuiDialog 是一个带有一些额外 yii 细节的包装器):

    <?php
        $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
            'id'=>'mydialog',
            // additional javascript options for the dialog plugin
            'options'=>array(
                'title'=>Yii::t('tr', 'Title'),
                'autoOpen'=>false,
                'modal'=>true,
                'closeOnEscape'=>true,
                'closeText'=>Yii::t('tr', 'Cancel'),
                'resizable'=>false,
                'buttons'=>array(
                    Yii::t('tr', 'Ok')=>'js:function(){$("#myform-id").submit();$(this).dialog("close");}',
                    Yii::t('tr', 'Cancel')=>'js:function(){$(this).dialog("close");}'
                )
            ),
        ));
    
        echo Yii::t('tr','Please confirm printing');
    
        $this->endWidget('zii.widgets.jui.CJuiDialog');
    ?>
    
  2. onclick为提交按钮的事件显示此对话框:

    echo CHtml::submitButton(Yii::t('tr','Print'),array('onclick'=>'$("#mydialog").dialog("open"); return false;'));
    

当然,这个对话框看起来不像默认的浏览器/js 确认对话框,但如果需要,可以使用它。正如 ors 在评论中已经提到的,默认的确认对话框不能更改,本地化的浏览器应该有本地化的消息。

在这个示例中,我刚刚提交了一个带有 id 的表单myform-id,但是任何事情都可以在 ok 按钮的功能中完成。

于 2012-07-10T05:09:45.130 回答