Wenn Sie Übersetzungen für jedes im Modul enthaltene Modul haben möchten, müssen Sie die Übersetzungen für dieses Modul registrieren. Es kann nicht einfach aus der Konfigurationsdatei gemacht werden. Wahrscheinlich haben Sie dies bereits in Ihrer Moduldatei, ich füge nur zur Vollständigkeit hinzu. Der Code wird aus der Dokumentation kopiert und muss in der Moduldatei sein, also in 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);
}
}
In Ihrem Fall ist es nicht so aussehen wie Sie Datei zur Verfügung stellen müssen könnte mapping.You einfach dieses Format verwendet für Ihre Dateien
[[basePath]]/LanguageID/CategoryName.php
Leider kann ich keine Liste der verfügbaren Kategorien finden.
Wenn Sie dann einige der Modulübersetzungen überschreiben möchten, müssen Sie die zu verwendende Kategorie angeben, wie dies in Ihrer Konfigurationsdatei der Fall ist. Es überschreibt speziell die Kategorie module/foo/bar.
'i18n' => [
'translations' => [
'modules/foo*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@app/messages',
],
],
],
Ihre Bedürfnisse Übersetzungsdatei einer Ordnerstruktur wie in der Übersetzung Beschreibung zu folgen, so in dem obigen Beispiel wäre es
app/messages/ [language code] /modules/foo/bar.php
Otherise sein, Sie fileMap
an verschiedenen Orten zur Karte verwenden können, wie wenn Ihre bar.php Datei in app/Nachrichten/[Sprachcode] ist
'fileMap' => [
'modules/foo/bar' => 'bar.php'
]
Bitte zeigen Sie uns, wie dieses Modul – soju