モジュール内に含まれる各モジュールの翻訳を行う場合は、そのモジュールの翻訳を登録する必要があります。これは設定ファイルから単純に行うことはできません。あなたはおそらくすでにこれをあなたのモジュールファイルに持っているでしょう、私は完全性のためにインクルードします。あなたはmapping.Youは、単にのために、このフォーマットを使用することができ、ファイルを提供する必要があるようapp/modules/Foo.php
<?php
namespace app\modules\foo;
use Yii;
class Module extends \yii\base\Module
{
public $controllerNamespace = 'app\modules\foo\controllers';
public function init()
{
parent::init();
/** Register custom translations for this module **/
$this->registerTranslations();
}
public function registerTranslations()
{
/**This registers translations for the Foo module **/
Yii::$app->i18n->translations['modules/foo/*'] = [
'class' => 'yii\i18n\PhpMessageSource',
'sourceLanguage' => 'en-US',
'basePath' => '@app/modules/foo/messages',
/**Tells yii where to find the translations for validation and form categories **/
'fileMap' => [
'modules/foo/validation' => 'validation.php',
'modules/foo/form' => 'form.php',
...
],
];
}
public static function t($category, $message, $params = [], $language = null)
{
return Yii::t('modules/users/' . $category, $message, $params, $language);
}
}
にあなたのケースでは、それは見ていないので、コードは、ドキュメントからコピーし、あなたのモジュールファイルにする必要がありますあなたのファイル
[[basePath]]/LanguageID/CategoryName.php
残念ながら、私は利用可能なカテゴリのリストを見つけることができません。
モジュール翻訳のいくつかを無効にする場合は、設定ファイルで使用するカテゴリを指定する必要があります。 modules/foo/barカテゴリを特に上書きします。
'i18n' => [
'translations' => [
'modules/foo*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@app/messages',
],
],
],
あなたの翻訳ファイルは、上記の例では、それは
app/messages/ [language code] /modules/foo/bar.php
Otheriseになるので、翻訳の説明でそのようなフォルダ構造を追跡する必要がある、あなたは別の場所にマッピングするためにfileMap
を使用することができ、あなたのbar.phpファイルはアプリ/メッセージ/ [言語コード]
'fileMap' => [
'modules/foo/bar' => 'bar.php'
]
にある場合と同様に、このモジュールはその翻訳 – soju