2017-06-17 49 views
1

我正在使用Yii2來處理需要翻譯成各種語言的項目。我公司採用先進的模板,並建立了我的普通/ main.php像這樣獲取需要使用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', 
    ], 
]; 

我已經加入所需的數據庫表source_message和消息。現在我需要翻譯的網站中的每個文本都使用Yii :: t($ category,$ message)函數。

我的問題是;我如何獲得需要翻譯成數據庫的網站中的所有文本列表?我是否必須手動掃描我的網站以獲取所有Yii :: t($ category,$ message)函數調用?

在此先感謝您的時間和輸入

回答

2

有爲此掃描功能提供的控制檯命令。

./yii message 

請參閱Guide中的說明文件。

生成配置文件掃描儀:

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

調整新創建config.php您的需求。

運行命令:

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

我試過,但這樣做的問題是,由於我的翻譯是在數據庫中,它會掃描和輸出具有的Yii :: T的實例(一個文件... )函數,但不區分那些我已經編譯過的或我還沒有編譯過的編譯器......並且在文檔中沒有提及如何確認我使用DBMessageSource的場景的消息命令....有沒有其他辦法可以完成這項工作? – natral

+0

如果使用'message/config-template'生成配置,則在底部有'db'的部分註釋(以'//'開頭'db'輸出格式用於將消息保存到數據庫.')。在配置中使用這個。 – Bizley

相關問題