Hi,
I have a yii2 project hosted here (based on advanced template):
And i have a small problem. When i get translation from common and backend messages inside backend module it work. If i get common and frontend from frontend module it works. But when i get common, backend and default yii translations from “ws” module, it don’t work.
First attemp is use a model that has validation that use backend messages. If i not configure ws module i get error:
{
“name”: “Invalid Configuration”,
“message”: “Unable to locate message source for category ‘backend’.”,
“code”: 0,
“type”: “yii\base\InvalidConfigException”,
“file”: “/usr/share/nginx/html/vendor/yiisoft/yii2/i18n/I18N.php”,
“line”: 201,
“stack-trace”: [
“#0 /usr/share/nginx/html/vendor/yiisoft/yii2/i18n/I18N.php(89): yii\i18n\I18N->getMessageSource(‘backend’)”,
“#1 /usr/share/nginx/html/vendor/yiisoft/yii2/BaseYii.php(538): yii\i18n\I18N->translate(‘backend’, ‘Message.Externa…’, Array, ‘e888da945f60fc4…’)”,
“#2 /usr/share/nginx/html/common/models/domain/Product.php(122): yii\BaseYii::t(‘backend’, ‘Message.Externa…’)”,
“#3 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Model.php(464): common\models\domain\Product->rules()”,
“#4 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Model.php(420): yii\base\Model->createValidators()”,
“#5 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Model.php(189): yii\base\Model->getValidators()”,
“#6 /usr/share/nginx/html/common/models/domain/Product.php(98): yii\base\Model->scenarios()”,
“#7 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Model.php(795): common\models\domain\Product->scenarios()”,
“#8 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Model.php(739): yii\base\Model->safeAttributes()”,
“#9 /usr/share/nginx/html/ws/controllers/user/ProductController.php(39): yii\base\Model->setAttributes(Array)”,
“#10 [internal function]: ws\controllers\user\ProductController->actionCreate()”,
“#11 /usr/share/nginx/html/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)”,
“#12 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)”,
“#13 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Module.php(528): yii\base\Controller->runAction(‘create’, Array)”,
“#14 /usr/share/nginx/html/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction(‘user/product/cr…’, Array)”,
“#15 /usr/share/nginx/html/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))”,
“#16 /usr/share/nginx/html/ws/web/index.php(17): yii\base\Application->run()”,
“#17 {main}”
]
}
Ok, so i put all configs inside “ws” module:
'i18n' => [
'translations' => [
'ws*' => [
'class' => 'yii\i18n\PhpMessageSource',
'forceTranslation' => true,
'basePath' => '@ws/messages',
],
'backend*' => [
'class' => 'yii\i18n\PhpMessageSource',
'forceTranslation' => true,
'basePath' => '@backend/messages',
],
'common*' => [
'class' => 'yii\i18n\PhpMessageSource',
'forceTranslation' => true,
'basePath' => '@common/messages',
],
],
],
But instead of show correct message it is showing:
{
"success": false,
"message": "validate",
"data": {
"errors": {
"ean13_1": [
"Model.Ean13_1 cannot be blank."
]
}
}
}
The yii2 translations and module translations are never working.
What im doing wrong?
Thanks.