Столкнулся с такой проблемой. Есть модуль, у модуля есть конфиг
<?php
return [
'id' => 'Main site module',
'defaultRoute' => 'site/index',
'components' => [
'i18n' => [
'class' => 'yii\i18n\I18N',
'translations' => [
'site*' => [
'class' => 'yii\i18n\PhpMessageSource',
'sourceLanguage' => 'en-US',
'basePath' => '@app/modules/site/messages',
],
],
],
]
];
но к сожалению, при попытке вызвать локализацию Yii::t(‘site’,‘anything’) i18n не может найти файлы и как следствие массив translations в нем содержит только app и yii. Однако если перенести этот фрагмент в основной конфиг, с которым стартует приложение, то локализация работает и в translations появляется необходимый site*. В чем может быть проблема?
zelenin
(Aleksandr)
January 14, 2015, 9:23am
2
SonkoDmitry:
Столкнулся с такой проблемой. Есть модуль, у модуля есть конфиг
<?php
return [
'id' => 'Main site module',
'defaultRoute' => 'site/index',
'components' => [
'i18n' => [
'class' => 'yii\i18n\I18N',
'translations' => [
'site*' => [
'class' => 'yii\i18n\PhpMessageSource',
'sourceLanguage' => 'en-US',
'basePath' => '@app/modules/site/messages',
],
],
],
]
];
но к сожалению, при попытке вызвать локализацию Yii::t(‘site’,‘anything’) i18n не может найти файлы и как следствие массив translations в нем содержит только app и yii. Однако если перенести этот фрагмент в основной конфиг, с которым стартует приложение, то локализация работает и в translations появляется необходимый site*. В чем может быть проблема?
не вижу модуля, вижу компонент.
Это файл конфига внутри модуля
<?php
namespace app\modules\site;
class SiteModule extends \yii\base\Module
{
public $layout = 'main';
public function init()
{
parent::init();
\Yii::configure($this, require(__DIR__ . '/config.php'));
\Yii::setAlias('@site', __DIR__);
}
}
jilizart
(Jilizart)
March 7, 2015, 6:20pm
4
Я использую бутстрап файлы, можно так же сделать и через интерфейс указанный в модуле
<?php
namespace app\modules\site;
use yii\base\BootstrapInterface;
class Bootstrap implements BootstrapInterface
{
/**
* @inheritdoc
*/
public function bootstrap($app)
{
// Add module I18N category.
$app->i18n->translations['site/*'] = [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@app/modules/site/messages',
'forceTranslation' => true,
'fileMap' => [
'site/site' => 'ad.php',
'site/admin' => 'admin.php',
'site/model' => 'model.php',
]
];
}
}