i18n Мультиязычность

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Chelobaka
Сообщения: 87
Зарегистрирован: 2018.06.01, 09:54

i18n Мультиязычность

Сообщение Chelobaka » 2019.05.14, 16:00

Здравствуйте,

Есть существующая таблица с текстами.
Предполагается сделать мультиязычный сайт но перевода всех текстов нет.
Имеет ли смысл делать 2 модели для работы с 2 таблицами с одинаковыми полями но разными языками?

То есть я хочу сделать модель фабрику Post которая будет возвращать PostEn или PostRu в записимости от \Yii::$app->language.
Правильно ли это?
Как лучше сделать?

Проблема в том что большая часть кода завязана на статических методах типа:

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

Menupoint::find()
            ->where(['url' => $url])
            ->orderBy(['title' => 'ASC'])
            ->one();
И если будут 2 модели MenupointRu, MenupointEn то как избежать if {} else {} для выбора нужной модели? В при расширении switch?


В общем немного не ясно как это сделать лучше. Буду рад помощи. Спасибо.

someweb
Сообщения: 535
Зарегистрирован: 2017.03.09, 10:12

Re: i18n Мультиязычность

Сообщение someweb » 2019.05.15, 08:45

В AR есть public static function tableName()
Возвращайте там таблицу с нужным языком.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.

Аватара пользователя
Chelobaka
Сообщения: 87
Зарегистрирован: 2018.06.01, 09:54

Re: i18n Мультиязычность

Сообщение Chelobaka » 2019.05.15, 13:08

someweb писал(а):
2019.05.15, 08:45
В AR есть public static function tableName()
Возвращайте там таблицу с нужным языком.
Но тогда отпадают все связи модели (hasMany, hasOne);

Аватара пользователя
Chelobaka
Сообщения: 87
Зарегистрирован: 2018.06.01, 09:54

Re: i18n Мультиязычность

Сообщение Chelobaka » 2019.05.17, 14:44

Вот то что было нужно: https://github.com/OmgDef/yii2-multilingual-behavior
Плохо искал((

Ответить