Вот простая схема решения мультиязычности сайта которую я придумал для среднячковых сайтов типа "визитная карточка", т.е. закащик инфу менять почти небудет, но ему подавай супер-пупер админку и мультиязычный сайт...
Ну вообщем..... принцип в том, что все языки хранятся в одном поле в базе, чтоб не дублировать ее, и разделены они специальным разделителем, который мы прописываем во всех ланг-файлах, допустим @@@
Кроме того в каждом ланг-файле делаем конст. _OFFSET с разными значениями, от 0 и дальше.., это индекс языка.
DEFINE('_LANG_SEPARATOR','@lang@');
DEFINE('_OFFSET','0'); //for example 0-ru 1-de 2-en
Теперь для вывода достаточно написать простенькую ф-цию и юзать ее во всех компонентах, т.е. везде где идет вывод имени, описания и т.д и т.п. вместо
написать
Пример такой простой ф-ции:
function lang($text){
$text_sep=explode(_LANG_SEPARATOR,$text);
return $text_sep[_OFFSET];
}
Т.е. в базе хранится "русский текст@lang@english text@lang@deutsch text" а выдает только нужный текст.
Делать мультиязычную админку тоже просто: перед отправкой формы, все поля с разными языками скрепляюстся со всеми розделителями (или лучше уже при приеме формы - безопаснее
)
Если есть вопросы или советы, отпишите. Я таким макаром уже наклепал проектов, интересно мнение мастеров о таком маневре, безопасно ли это и вообще разумно ли, и стоит ли продолжать.