Я делаю своей решение (мини фреймворк) для себя и решил добавить i18n. Возник вопрос в подходе к организации процесса. Как я понял, то придется заводить новые таблицы для контента (новости, категории и другие) и постфиксом "_locale", где будет код записи (смотря куда относится запись) и колонка с текстами: ru, eng и другие. Класс Localization будет принимать параметры языка и в соответствии с этим выводить контент уже из этой таблицы, а не из основной. Логика верная для добавляющегося контента сайта или есть другие пути решения? P.S. Не предлагайте готовые решения, так как я хочу понять процесс работы локализации на сайтах.
Кто-то так делает как ты написал. На самом деле об этом регулярно говорят в т.ч. здесь на форуме. Не хочется в очередной раз то де самое писать. Гугли "site:php.ru локализация" Моё мнение вкратце: держать локализацию интерфейса и версии контента для разных языков раздельно. Это концептуально разные вещи. И я не вижу необходимости в куче полей с префиксами/постфиксами для поддерки языков.
Для динамического контента вы не видите смысл или для интерфейсов? По поводу интерфейсов я полностью согласен, что проще иметь некие переменные, которые бы изменялись в соответствии с языком, но как быть с новостями и другим динамическим контентом?
Ни для чего я не вижу необходимости в костылях-постфиксах. Хоть ты и пишешь "не предлагайте готовые решения", но знай: фреймворки предлагают интернационализировать приложение через файлы переводов ))) Это отлично работает для интерфейсных элементов. Это то, что описывает программист, то что хранится в системе контроля версий. А вот вводимые пользователем статьи можно хранить в таблицах. Почему бы не иметь одну таблицу статей с полем content для содержимого и language для указания языка. А ссылки на варианты переводов в отдельной таблице.