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

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

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

Сообщение Chelobaka »

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

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

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

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

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

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


В общем немного не ясно как это сделать лучше. Буду рад помощи. Спасибо.
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

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

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

Сообщение Chelobaka »

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

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

Сообщение Chelobaka »

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