Почему не работают переводы лейблов в форме 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

→ Ссылка