xmoonlight: да код то вообще тут примитивный, на практике там у меня класс переводчик, с блэкджеком админкой и базой данных, ибо почти все сайты делаем на 2-3 языках.
ThunderCat: я делаю глобальный массив для выбранного языка с динамически подключаемыми строками. Подгружаю динамически из файлов перевода в зависимости от используемых модулей на формируемой странице и использую обычную функцию перевода.
Решил сделать так, чтобы работало быстрее и экономнее в плане памяти, т.к. мне не нужны никакие объекты и состояния для перевода (только перечень строк в ассоциативном массиве).
xmoonlight: тут есть нюанс, у сайта кроме инлайн переводов есть еще и материалы на нескольких языках, по этому у меня есть объект который из роутинга получает текущий язык, по нему уже выбирает на каком языке сейчас работает сайт и достает из базы массив переводов для текущего языка(тот же глобальный массив, но только для 1 языка (соблюдаем принцип использования необходимого) + удобная админка для добавления переводов), ну и материалы из базы тащит на этом языке.
ThunderCat: ну у меня тоже тащит для выбранного языка и ещё ТОЛЬКО для загружаемых модулей, т.е. не всё подряд для этого языка..
В общем, опять всё так же одинаково)))