AndrewWB
(Igpanas)
August 20, 2009, 11:44am
1
Всем привет, смотрю на фреймфворк - в целом пока все нравится.
Вопрос стал боком на мультиязычности приложения.
перевод интерфейса - с этим все понятно.
Вопрос в данных в базе, которые языкозависимы.
Я так понимаю, что для возможности выборки данных по конкретному языку нужно отказаться от Active Record (( или переопределять вручную языковую зависимость…
Кто как решал эту проблему?
DARX
(Ioxanssen)
August 20, 2009, 12:39pm
2
Привет
Как понимаю, самый простой вариант с дополнительными полями в таблице отпадает?
Типа content_ru, content_en, etc.
samdark
(Alexander Makarov)
August 20, 2009, 2:06pm
3
Смотря как данные хранятся…
AndrewWB
(Igpanas)
August 20, 2009, 8:24pm
4
я считаю только два варианта достойных… в каждом из них есть свою плюсы и минусы.
все языковые версии храняться в однйо таблицес мультилэнг ид. Пример:
id | multilang_id | lang_id | content
работать удобно с такой таблицей и не нужно делать запросы по двум таблицам.
есть основная таблица с не зависимыми данными от языка и второстепенная с зависимыми данными news_index & news. Пример:
news_index
id | category_id | date_added | active
news
news_id | lang_id | title | content
Я бы наверное остановился бы для начала на первом варианте. Вот вопрос как под него адаптировать стандартные фишки ((
ppy
(Popeye)
August 20, 2009, 8:36pm
5
я не очень понял где проблема?
Решатся должно просто:
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();
AndrewWB
(Igpanas)
August 21, 2009, 2:08pm
6
оу… этого то я и не заметил ))) тогда проблема отпадает )