Страница 1 из 1

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

Добавлено: 2019.05.14, 16:00
Chelobaka
Здравствуйте,

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

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

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

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

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


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

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

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

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

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

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

Добавлено: 2019.05.17, 14:44
Chelobaka
Вот то что было нужно: https://github.com/OmgDef/yii2-multilingual-behavior
Плохо искал((