Silentland
Новичок
Перечитал все статьи по этой теме, в т.ч. http://phpclub.ru/faq/multilang. В голове каша теперь. Объясню лучше свою ситуацию:
Делаю простой сайт с БД из 20 таблиц и тремя языками. Пишу под него движок. Большой соблазн не заморачиваться и просто расширить нужные столбцы дополнительными переводами, но внутренний голос подсказывает, что это не путь самурая.
Движок планирую использовать и в других проектах, поэтому хочется сделать сразу хорошо, но в любом случае это не будут проекты с сотней языков, иероглифов, поддержкой падежей, множественного числа и проч. Так же там точно не будет кучи статей на разных языках. В основном будут переводы интерфейса и нескольких информационных страниц.
Смотрел в сторону GetText, но не понял как она поможет в моем случае.
Движок большей частью клиентский. Т.е. абсолютно все данные он выдают в JSON, а JS уже рисует страницу. Все строки (кроме технических) хранятся в БД.
Наиболее приглянувшийся вариант создать одну табличку с переводами:
Кажется достаточно просто. А способы с отдельной табличкой переводов для каждой таблички, каким-то идентификатором языка и проч.совсем не понятны.
Какую архитектуру посоветуете в моем случае?
Делаю простой сайт с БД из 20 таблиц и тремя языками. Пишу под него движок. Большой соблазн не заморачиваться и просто расширить нужные столбцы дополнительными переводами, но внутренний голос подсказывает, что это не путь самурая.
Движок планирую использовать и в других проектах, поэтому хочется сделать сразу хорошо, но в любом случае это не будут проекты с сотней языков, иероглифов, поддержкой падежей, множественного числа и проч. Так же там точно не будет кучи статей на разных языках. В основном будут переводы интерфейса и нескольких информационных страниц.
Смотрел в сторону GetText, но не понял как она поможет в моем случае.
Движок большей частью клиентский. Т.е. абсолютно все данные он выдают в JSON, а JS уже рисует страницу. Все строки (кроме технических) хранятся в БД.
Наиболее приглянувшийся вариант создать одну табличку с переводами:
и везде ссылаться на id строк из нее:Strings
id, ru, en, de, fr, ...
Article
id, iser_id, title_id, text_id
ну и INSERT, DELETE, UPDATE придумать как записать.select Strings.$lang from Article, Strings where Article.title_id = Strings.id
Кажется достаточно просто. А способы с отдельной табличкой переводов для каждой таблички, каким-то идентификатором языка и проч.совсем не понятны.
Какую архитектуру посоветуете в моем случае?