hanslinger да хоть 10
языков, не мне же переводить
Ambrella Да второй вариант, я реализовал.
Причем прикол может быть если в PHP в работе с MySQL отключено добавление колонок, тогда не добавишь через админку язык.
вот пару тонкостей на счет как это реализовать:
1) таблицы 2 lang_text lang_string, в них столбцы id, eng, rus, и т.д. первая для строк , вторая для текстов.
2) в эти таблицы можно добавить 2 колонки : table_name, tabel_id - где будет записываться, которая таблица к ней обращается и естественно индекс записи. Поможет в последствии в переводе.
3) запрос с переводом может выглядеть так:
"SELECT cont.$lang as text FROM object obj LEFT JOIN lang_text cont on cont.id=obj.name_id"4) Перевод шаблонов, всеравно каким шабланизатором, сделал так:
создаем еще 1 папку для шаблонов например instal_tpl и основная например templates.
Правим все шаблоны в папке instal_tpl, а в админке делаем функцию update, которая преобразует шаблоны следующим методом в папку templates:
а) Создадим дополнительные обозначение, например $S$ и $T$.
и все слова для перевода в шаблоне экранируем следующим методом " bla bla $S$Name$S$ bla bla $T$text$T$ bla bla " где S -означает строка а T- текст, соотвественно будет выбрана таблица для содержания текста. далее скрипт запишет в базу имя(индекс) шаблона и соотвественно начальное значение в одном из языков. А за место экранированных частей запишит
"bla bla echo $content.1; ?> bla bla echo $content.2; ?> bla bla "
перед запуском шаблона вытягиваем все переводы в нужном языке данного шаблона в массив $content - а 1,2, .... соотвественно индекс перевода.
P.S. Это только основа, что я использую (вообще я использую частично функционал Smarty). Функционала навесить можно много, и в итоге получиться очень удобно и для перевода и для программиста и для дизайнера.