gettext является «стандартом» для многоязычного хранения текста, но, в конце концов, это просто механизм хранения. Это не делает ничего, чтобы поместить правильный текст на вашу страницу. Вам необходимо абстрагировать текст от вашего представления, чтобы можно было вставить правильный текст.
В конце концов, вам нужен способ разместить текст на языке вашего документа. Это означает «помечать» текст определенным образом, чтобы его можно было искать и заменять текстом на желаемом языке. Для сайта электронной коммерции, которым я управляю (3 языка), я использовал метод, полученный из системы тегов Facebook FBML.
Вы можете заключить текст в «теги» <trans id="slt">something like this</trans>
. Затем используйте инструменты DOM в PHP для извлечения идентификатора, ищите переведенный текст на основе идентификатора, заменяйте содержимое между тегами текстом соответствующего языка. Вы все еще можете использовать gettext для своего механизма хранения или вашей базы данных. Ваш браузер будет игнорировать теги, поэтому ваша страница все равно будет хорошо выглядеть во время разработки.
Это только один пример тегирования. Вы можете использовать любой механизм тегов и использовать grep вместо того, чтобы извлекать, искать и заменять.
Для статических страниц вы можете предварительно сгенерировать переведенные версии и загрузить версию на соответствующем языке. Таким образом, нет никакой дополнительной нагрузки для разных языков.