2017-06-17 3 views
1

Yii2を使用して、さまざまな言語に翻訳する必要のあるプロジェクトで作業しています。私は、私は必要なデータベーステーブルsource_messageとメッセージを追加した高度なテンプレートを使用してのでYii2 DbMessageSourceを使用して翻訳する必要があるすべてのテキストのリストを取得する

return [ 
    'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 
    'language' => 'en', 
    'sourceLanguage' => 'en', 
    'components' => [ 
     'i18n' => [ 
      'translations' => [ 
       'app' => [ 
        'class' => 'yii\i18n\DbMessageSource', 
        'sourceLanguage' => 'en', 
       ], 
      ], 
     ], 
     'cache' => [ 
      'class' => 'yii\caching\FileCache', 
     ], 
    ], 
    'as beforeRequest' => [ 
     'class' => 'common\components\CheckLanguage', 
    ], 
]; 

ように私の共通/ main.phpを設定しています。今私がYii :: t($ category、$ message)関数を使って翻訳しなければならないウェブサイトの各テキスト。

私の質問は、データベースに翻訳する必要があるウェブサイトのすべてのテキストのリストを取得するにはどうすればよいですか? Yii :: t($ category、$ message)関数呼び出しのために手動でサイトをスキャンする必要がありますか?

時間と入力を事前にお礼します

答えて

2

このスキャン機能にはconsoleコマンドが用意されています。

./yii message 

Guideのマニュアルを参照してください。あなたのニーズに合わせて新たに作成したconfig.phpを調整

./yii message/config-template your/path/to/saving/config.php 

は、スキャナ用の設定ファイルを生成します。

次のコマンドを実行します。

./yii message path/to/config.php 
+0

私はこれを試してみましたが、これに伴う問題は、私の翻訳がデータベースにあるので、それはYiiのすべてのインスタンスを持つファイルをスキャンして出力することです:: T(... )関数ですが、私がすでに翻訳したものと、まだ翻訳していないものとは区別されません。ドキュメントでは、DBMessageSourceを使用するシナリオのメッセージコマンドをどのように設定するかについて言及していません....これを行うための他の方法はありますか? – natral

+0

'message/config-template'を使ってconfigを生成すると、その下に' db 'という部分があります( '//' db 'の出力形式はメッセージをデータベースに保存するためです)。この設定で使用します。 – Bizley

関連する問題