2016-05-21 16 views
1

私はちょっと今、何が起こっているのですか? 多言語機能を持つサイトを設定したいと考えています。そのために、私はガイドの国際化に関するトピックを読んでいます。私はtext-/file-versionを使いたくないので、代わりにDBを使いたいと思っています。Yii2での国際化(データベース)

私は、DbMessageSourceのようなものがあることを知りました。私は、マイグレーションを適用し、私のDBに以下のテーブルを持っている:

message message_source

私の設定ファイルでは、私はこれらの行addes:私の見解では

'components' => [ 
    'cache' => [ 
     'class' => 'yii\caching\FileCache', 
    ], 
    'i18n' => [ 
     'translations' => [ 
      '*' => [ 
       'class' => 'yii\i18n\DbMessageSource', 
       'forceTranslation' => true, 
       'sourceMessageTable' => '{{%source_message}}', 
       'messageTable' => '{{%message}}', 
       'enableCaching' => false, 
       'cachingDuration' => 3600, 
       'sourceLanguage' => 'en_US' 
      ], 
     ], 
    ], 
], 

を、私は翻訳を呼び出します

echo yii::t('header_menu', 'news'); 

実際には「ニュース」が表示されますが、に関係なくDBに何も格納されていません。何か不足していますか?翻訳機能に含まれるすべての文字列はDBに格納されると思いましたか?

ありがとうございます。

答えて

1

それだけでDBにはありません。データが既に存在するかどうかを選択するだけです。あなた自身でそれを行うか、lajax translate manager extensionを使用して、すべてのプロジェクトを自動的にスキャンし、メッセージでデータベースを埋めます。