2

YII で新しいサイトを作成した後、protected/messages に「fr」フォルダーを追加し、以下を含む「site.php」ファイルを追加しました。

return array('hello' => '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';
    }
 }

このようにして、すべてのコントローラーに適用する必要があるものを 1 か所で追加できます。

于 2013-03-10T19:23:34.973 に答える
0

ソース言語を設定するのを忘れました。

構成に:

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

またはアプリ:

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