Имеем два варианта:
1) Хранить `content_ru`,`content_en`, в моделе получать Yii::$app->language и как-то получать
get->'content_'.Yii::$app->language (Кстати, это возможно сделать?)
2) Хранить `id`, и хранить отдельно таблицу `id`,`ru`,`en`, ну это как-то как в Yii:t только с базой
Пример
1 таблица posts содержит только дату и URL и прочии данные которые не влияют на первод
2 таблица post_i18n содержит переводы ID, post_id, title, content, locale
Для перевода фраз есть нативные словари в файлах.
Можно и в БД сделать но это бред.
public function getI18n()
{
return $this->hasOne('PostI18n', array('id' => 'post_id'))
->where('post_I18n.local = :lang', [':lang' => Yii::app()->language ]);
}
Как то так вроде.
$lang можно параметр брать язык из
Использовать scope когда список joinWith('I18n')... или with(['I18n'])
Когда одна запись запись можно получить запись по
$post = Post::find(1);
$post->I18n->title;
Но такая манипуляция сделает 2 запроса первый запрос будет по post второй будет по post_I18n