Мультиязычные таблицы

Всем привет, смотрю на фреймфворк - в целом пока все нравится.

Вопрос стал боком на мультиязычности приложения.

перевод интерфейса - с этим все понятно.

Вопрос в данных в базе, которые языкозависимы.

Я так понимаю, что для возможности выборки данных по конкретному языку нужно отказаться от Active Record (( или переопределять вручную языковую зависимость…

Кто как решал эту проблему?

Привет

Как понимаю, самый простой вариант с дополнительными полями в таблице отпадает?

Типа content_ru, content_en, etc.

Смотря как данные хранятся…

я считаю только два варианта достойных… в каждом из них есть свою плюсы и минусы.

  1. все языковые версии храняться в однйо таблицес мультилэнг ид. Пример:

id | multilang_id | lang_id | content

работать удобно с такой таблицей и не нужно делать запросы по двум таблицам.

  1. есть основная таблица с не зависимыми данными от языка и второстепенная с зависимыми данными news_index & news. Пример:

news_index

id | category_id | date_added | active

news

news_id | lang_id | title | content

Я бы наверное остановился бы для начала на первом варианте. Вот вопрос как под него адаптировать стандартные фишки ((

я не очень понял где проблема?

Решатся должно просто:

http://www.yiiframework.ru/doc/guide/ru/database.ar

в модели описываем:




class Content extends CActiveRecord

{

    public function defaultScope()

    {

        return array(

            'condition'=>"language='".Yii::app()->language."'",

        );

    }

}



и все твои запросы будут вытаскиваться из базы с language=‘ru’:

$contents=Content::model()->findAll();

ну или когда надо вытаскиваем так:

$contents=Content::model()->width(‘language=en’)->findAll();

оу… этого то я и не заметил ))) тогда проблема отпадает )