@ProgrammSM

Как настроить Yii2 i18n чтобы производился перевод c ru-RU (исходного языка) на ru-RU (язык перевода)?

Ситуация следующая. Проект реализован на русском языке, но в некоторых случаях могут пролетать сообщения на английском. Ранее стояло значение по умолчанию как en-US, но в настоящий момент внедряется интернационализация и появилась необходимость переводить интерфейс приложения на английский.

Есть конфигурация
return [
    ...,
    'language' => 'ru-RU',
    'sourceLanguage' => 'ru-RU',
    ...,
]

и

return [
    ...,
    'components' => [
        'i18n' => [
            'translations' => [
                'app*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@frontend/messages',
                    'fileMap' => [
                        'app' => 'app.php',
                        'app/error' => 'error.php',
                    ],
                ],
            ],
        ],
    ],
    ...,
];

Проблема в том, что если исходный язык и язык перевода совпадают, тогда Yii2 не переводит, что логично.

Нашёл три решения данной проблемы, но все костыльные:
  1. Сделать в @frontend/messages' директорию, на пример, ru-RU2 и язык перевода сделать ru-RU2.
  2. Сделать 'sourceLanguage' => null,
  3. Сделать 'sourceLanguage' => 'ru',


Есть ли более правильные способы решения данной проблемы через конфигурацию?

UPDATE.

Решение:
Добавить в конфигурацию 'forceTranslation' => true,

return [
    ...,
    'components' => [
        'i18n' => [
            'translations' => [
                'app*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@frontend/messages',
                    'fileMap' => [
                        'app' => 'app.php',
                        'app/error' => 'error.php',
                    ],
                    'forceTranslation' => true,
                ],
            ],
        ],
    ],
    ...,
];
  • Вопрос задан
  • 842 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
www.yiiframework.com/doc-2.0/yii-i18n-phpmessageso...
forceTranslation - Whether to force message translation when the source and target languages are the same.
Видимо это Вам и надо
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы