Изменение директории при переводах в yii2

135
09 января 2019, 21:00

Всем привет.

Возникла такая ситуация, что на проекте есть украинский язык,и в базовом yii2 пакете есть переводы (в моём случае стандартные валидационные переводы), НО, они находятся по пути "vendor/yii2/messages/uk/yii.php".

Таким образом, когда у меня ссылка выглядит как www.siteName.com/ua/... то всё кроме базовых сообщений отображается нормально, а если www.siteName.com/uk/.... то всё переводится на английский.

Что я пытался сделать: переименовать саму директорию uk => ua, и это помогло, НО это неправильно, и есть какой-то другой вариант. Из представленных нашел:

    'app*' => [
                    'class'    => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@frontend/messages',
                    //'sourceLanguage' => 'en-US',
                    'fileMap'  => [
                        'app'       => 'app.php',
                        'app/error' => 'error.php',
                    ],
                ],

но как сюда адекватно описать, что мне нужно корректно заменить всего лишь одну языковую версию, я пока не придумал.

Answer 1

Решение пришло неожиданно, как и понимание некоторых вещей:

  1. uk - адекватное имя для Укр версии, тк исп. международное обозначение uk_UA
  2. Данная проблема решается через Yii::$app->language = "uk" в нужном вам месте

Проблема возникла из-за специфики архитектуры проекта, где языки загружались с БД в виде:

1 => [
        'id'    => 1,
        'lang'  => 'ua'

], .....

READ ALSO
cmd команда в php

cmd команда в php

Мне необходимо в своем php скрипте в цикле выполнять windows cmd команду icacls

153
Как удалить символ char из его же массива

Как удалить символ char из его же массива

Всем приветЕсть такая задача : В Входном файле дается никнейм, нам надо, чтобы в таблице сортировки по имени этот ник стоял как можно ниже,...

196
Как сделать переменную в if, глобальной

Как сделать переменную в if, глобальной

Нужно сделать простейший калькулятор чтобы он работал с числовыми и строковыми значениямиОперации + - * /

159
Почему у меня вылетает программа когда я ввожу данные студента?

Почему у меня вылетает программа когда я ввожу данные студента?

Задача у меня была вот в чём: Создайте программу, имитирующую многоквартирный домНеобходимо иметь классы “Человек”, “Квартира”, “Дом”

209