如何在树枝模式中传递方法 Yii::t()?
为了能够使用它。
例如:
{{Yii.t('main', 'some_text')}}
我自己已经想通了。
谁能派上用场:
在文件:/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}) } }
'viewRenderer' => array(
'class' => 'ext.yiiext.renderers.twig.ETwigViewRenderer',
'registerAutoloader' => false,
'globals' => array(
'html' => 'CHtml'
),
'functions' => array(
't' => 'Yii::t',
),
),
然后你可以在你的树枝文件上使用 t('main', 'Some text')
@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' 设置中。