2

使用 YII 创建新站点后,我在 protected/messages 中添加了一个文件夹“fr”,并添加了一个文件“site.php”,其中包含:

返回数组('你好' => 'bonjour');

在 view/layout/main.php 中,我添加了以下代码:

<?php 
    // I change the language to english and french using session. 
    //  This is just for example.
    Yii::app()->language = 'fr'; 

    // I also used Yii::app()->setLanguage('fr');
    echo Yii::t('site','hello');
?>

但是语言没有翻译..我错在哪里。请建议

4

3 回答 3

8

如果您希望翻译在所有视图中正常工作,您应该在控制器中设置语言。

为了使语言适用于所有控制器,请在 components 文件夹中创建包含extends的新Controller.php文件,然后所有控制器都应扩展类。在类覆盖方法中(不要忘记调用)并在那里设置语言。例如:class ControllerCControllerControllerControllerinit()parent::init()

class Controller extends CController
{
    public $layout='//layouts/column1';

    function init()
    {
        parent::init();
        Yii::app()->language = 'fr';
    }
 }

通过这种方式,您可以在一处添加适用于所有控制器的其他内容

于 2013-03-10T19:23:34.973 回答
0

您忘记设置源语言。

进入配置:

return array(
   'sourceLanguage'=>'en',
),

或应用程序:

Yii::app()->sourceLanguage = 'en';
于 2013-03-10T18:46:50.067 回答
0

您可以将 config/main.php 中的默认语言设置为

return array(
    ...
    'sourceLanguage' => 'fr',
    'language'=>'en',
    ...
    'params' => array(
               ...
               'languages'=>array('en_us'=>'English', 'fr'=>'French', 'fa_ir'=>'فارسی'),
               ....
               ), 
); 

并在您喜欢的任何地方更改您的语言:

Yii::app()->language = Yii::app()->params->languages['fa_ir'];

也为了更多的经验,也许:

Yii::app()->language = Yii::app()->params->languages[$_GET['lang']];
于 2013-04-20T14:23:32.693 回答