2

如何在树枝模式中传递方法 Yii::t()?
为了能够使用它。
例如:

{{Yii.t('main', 'some_text')}}  
4

3 回答 3

4

我自己已经想通了。
谁能派上用场:
在文件:/protected/extensions/ETwigViewRenderer.php的init函数中添加:

$Yii = new ETwigViewRendererStaticClassProxy ('Yii');
$this->_twig-> addGlobal('lang', $Yii);

在 Twig 模板中使用如下方式:

{{lang.t ('main', 'Login') }}
{{lang.t ('main', 'Logout ({username})',{'{username}': App.user.name}) } }

于 2012-07-27T08:55:30.677 回答
3
'viewRenderer' => array(
        'class' => 'ext.yiiext.renderers.twig.ETwigViewRenderer',
        'registerAutoloader' => false,
        'globals' => array(
            'html' => 'CHtml'
        ),
        'functions' => array(
            't' => 'Yii::t',
        ),
    ),

然后你可以在你的树枝文件上使用 t('main', 'Some text')

于 2013-11-29T09:35:17.133 回答
0

@extends 尤金回答。

最好在配置中定义全局而不是编辑扩展文件:

'view' => [
            'class' => 'yii\web\View',
            'renderers' => [
                'twig' => [
                    'class' => 'yii\twig\ViewRenderer',
                    'cachePath' => '@runtime/Twig/cache',
                    // Array of twig options:
                    'options' => [
                        'auto_reload' => true,
                    ],
                    'globals' => ['html' => '\yii\helpers\Html', 'lang' => 'Yii'],
                    'uses' => ['yii\bootstrap'],
                ],
            ],
        ],

注意 'lang' => 'Yii',在 'globals' 设置中。

于 2016-07-23T20:53:07.133 回答