Почему не работают переводы лейблов в форме YII2?
- Есть приложение, собранное на последней версии Yii2 из advanced сборки.
- Админка, в ней есть формы CRUD на несколько сущностей.
- В админ панели все формы работают с нормальным переводом.
- Эти же формы работают на публичной части сайта, и так же с переводом.
- Файл
frontend\messages\ru\app.phpприсутствует, все константы в нем имеются и работают во всех формах которые были сделаны Gii. - А в двух стандартных формах, которые идут в комплекте, Вход и Регистрация, перевод не работает.
- Сообщения об ошибках для этих полей, выводятся на русском, а сами лейблы как были на английском, так и остаются.
- В конфиге фронтенда все прописано, и 3 формы переводятся, а 2 нет.
В модели common\models\User.php имеется метод.
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'username' => Yii::t('app', 'Login'),
'phone' => Yii::t('app', 'Phone'),
'religion' => Yii::t('app', 'Religion'),
'password' => Yii::t('app', 'Password'),
];
}
Куда смотреть, сбился уже с толку?
Ответы (1 шт):
Автор решения: Дмитрий Гвоздь
→ Ссылка
Все банально и просто.
Как я указывал выше, что метод attributeLabels находился в common\models\User.php а модели форм не наследуют его, они наследуют Moldel, следовательно данный метод надо было добавить в common\models\LoginForm.php и frontend\models\SignupForm.php