Многоязычность Mysql Smarty

-faqer-

Я только учусь
Многоязычность Mysql Smarty

Раньше многоязыковых сайтов у меня не было, бог миловал. Сегодня миловать перестал
Всплыла необходимость сразу для двух контор разработать трехъязычные сайты. Количество языков меняться в будущем не будет (им и эти три не нужны, но понты не позволяют сделать меньше), в админовке будет только один язык.

Есть многократно опробованный движок для сайтов. Он конечно не идеален, но меня и клиентов устраивает. Все работает в тесной связке PHP, MySQL, Smarty. В пхп держу только код, ниодному сообщению там места не оставил. Все вынес в базу и в шаблоны.

Если с многоязычностью шаблонов при помощи .конф файлов все понятно, то вот с выводом из базы ясности пока нет.
Самым простым вариантом кажется во всех таблицах использовать поля типа rus_field, eng_field, ukr_field
При выборке использовать
PHP:
“SELECT “.$lng.”_field as field….
Ну а в шаблоне ставить {$field}

Есть какие-то еще варианты, что можно почитать, что можете посоветовать???
 

kvf77

Red Devil
http://php.russofile.ru/ru/authors/multilangual/dynamic/
http://php.russofile.ru/ru/authors/multilangual/php_gettext_prof/
 

SlaydeR

Новичок
я делал так, главная таблица в которой находятся разделы, титлы, кейворды,
дескриптионы, отображение банеров и т.д, добавил еще одно поле lang и в админке таскаешь с собой переменную lang можешь в сессию записать
главное что бы при добавлении нового раздела в админке ты мог выбрать какому языку пренадлежит раздел
делал так
Название раздела
Ключевые слова
Описание
Язык
<select name="lang">
<option value="ru" {if ($lang == "ru")}selected{/if}>
Русский
</option>
<option value="eu" {if ($lang == "eu")}selected{/if}>Английский
</option>
</select>
форма на добавление и редактирование раздела должна быть одна потом в админке изменишь не много запрос к главной таблицы
"SELECT * FROM razdels WHERE lang = '$lang' "

на сайте в index.php сделал что бы по умолчанию если lang не выбрали загружался ru
записывай переменную в сессию потом, в индексе запрос
"SELECT * FROM razdels WHERE lang = '$lang' "
потом создал каталоги ru en ua в каталоге templates и templates_c
по такой схеме я загружал те языки которые были на сайте..
$smarty->template_dir = "templates/".$lang;
$smarty->compile_dir = "templates_c/".$lang;
 
Сверху