i18N: EN Messages для Yii

Уже исправленные репорты или принятые предложения
Ответить
Yuri
Сообщения: 11
Зарегистрирован: 2014.06.04, 22:19

i18N: EN Messages для Yii

Сообщение Yuri »

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

    'sourceLanguage' => 'en',
    'language' => 'en', 
включен i18n.

По логам дебагера проходит ошибка. Пытается найти несуществующий файл yii2/messages/en/yii.php

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

yii\i18n\PhpMessageSource::loadMessages

The message file for category 'yii' does not exist: /home/site/www/vendor/yiisoft/yii2/messages/en/yii.php
т.е. для исчезновения этой ошибки надо бы засунуть хотя бы пустой файл (ибо переводить с en на en нечего)
либо объяснить функции loadMessages, что не надо искать файл

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

        if ($fallbackLanguage != $language) {
         .....
        } else {
            if ($messages === null) {
                Yii::error("The message file for category '$category' does not exist: $messageFile", __METHOD__);
            }
        } 
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: i18N: EN Messages для Yii

Сообщение maleks »

Вот эта проверка должна бы была не допустить вашей ситуации. Подебажте вокруг данного кода, почему код идет дальше.
Yuri
Сообщения: 11
Зарегистрирован: 2014.06.04, 22:19

Re: i18N: EN Messages для Yii

Сообщение Yuri »

en !== en-US

в условии

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

 if ($this->forceTranslation || $language !== $this->sourceLanguage) {
sourceLanguage = en-US

происходит это когда выводятся поля ActiveForm у меня во вьюхе

Если закомментить

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

  <?= $form->field($model, 'username') ?>
  <?= $form->field($model, 'password')->passwordInput() ?>
  <?= Html::submitButton(Yii::t('app','Enter'), ['class' => 'btn btn-lg btn-primary', 'name' => 'login-button']) ?>
то язык становится en, и ошибка пропадает.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: i18N: EN Messages для Yii

Сообщение maleks »

Недавно исправили язык на полное обозначение, т.к. с коротким были вопросы.

Если вам перевод не нужен то установите и $language в en-US и тогда не будет искать перевод.

Тот ваш код ни при чем.
Ответить