I18n текста ошибки

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
t3rmit
Сообщения: 23
Зарегистрирован: 2014.04.29, 10:46

I18n текста ошибки

Сообщение t3rmit »

Использую обычную форму входа. Только хочу получать сообщения на русском.

Код: Выделить всё

<?php $form = ActiveForm::begin([
        'id' => 'login-form',
        'options' => ['class' => 'form-horizontal'],
        'fieldConfig' => [
            'template' => "{label}\n<div class=\"col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
            'labelOptions' => ['class' => 'col-lg-1 control-label'],
        ],
    ]); ?>

    <?= $form->field($model, 'username')
            ->textInput()
            ->hint(Yii::t("frontend","Please, enter the username"))
            ->label(Yii::t("frontend","Username")); ?>
Установил русский язык:

Код: Выделить всё

Yii::$app->language = "ru-RU"; 
создал файл перевода, настроил конфиг, все работает.

Код: Выделить всё

"Please, enter the username" => "Пожалуйста, введите логин",
        "Please, enter the password" => "Пожалуйста, введите пароль",
        "Username"                  => "Логин",
        "Password"              => "Пароль",
{label} и {hint} переводятся нормально.

Но, при валидации логина, когда поле логин пустое получаю ошибку:
Необходимо заполнить «Username».
Как добиться того, чтобы выдавало ошибку:
Необходимо заполнить «Логин».
begin
Сообщения: 55
Зарегистрирован: 2013.12.15, 13:26

Re: I18n текста ошибки

Сообщение begin »

А попробуйте в файле перевода username c маленькой буквы написать)
t3rmit
Сообщения: 23
Зарегистрирован: 2014.04.29, 10:46

Re: I18n текста ошибки

Сообщение t3rmit »

Попробовал, не помогло.
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: I18n текста ошибки

Сообщение lancedevnull »

для frontend категории нужно подключить source
t3rmit
Сообщения: 23
Зарегистрирован: 2014.04.29, 10:46

Re: I18n текста ошибки

Сообщение t3rmit »

lancedevnull писал(а):для frontend категории нужно подключить source
можно поподробнее, что за source?
Если в web.php, то он такой

Код: Выделить всё

'i18n' => [
            'translations' => [
                'app*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@app/messages',
                    'fileMap' => [
                        'app' => 'app.php',
                        'app/error' => 'error.php',
                    ],
                ],
                'frontend' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@app/messages',                    
                    'fileMap' => [
                        'frontend' => 'frontend.php',
                        'frontend/error' => 'error.php',
                    ],
                ],
            ],
Последний раз редактировалось t3rmit 2014.05.06, 17:26, всего редактировалось 1 раз.
dmeroff
Сообщения: 101
Зарегистрирован: 2012.06.05, 14:32
Откуда: Петрозаводск
Контактная информация:

Re: I18n текста ошибки

Сообщение dmeroff »

А в модели метод attributeLabels есть? Перевод атрибутов для сообщений об ошибках валидации берется оттуда.
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: I18n текста ошибки

Сообщение lancedevnull »

или вот так для всего
https://github.com/yiisoft/yii2/blob/ma ... ranslation
t3rmit
Сообщения: 23
Зарегистрирован: 2014.04.29, 10:46

Re: I18n текста ошибки

Сообщение t3rmit »

dmeroff писал(а):А в модели метод attributeLabels есть? Перевод атрибутов для сообщений об ошибках валидации берется оттуда.
Спасибо. Это было моей ошибкой.
Все решилось добавлением в модели

Код: Выделить всё

public function attributeLabels()
    {
        return [
            'username' => Yii::t("frontend", "Username"),
            'password' => Yii::t("frontend", "Password"),
        ];
    }
Закрыто