Там идет работа с классом. Процесс наполнения я не вижу. Если это имя свойства, то понятно. Наполнение класса происходит вручную? Если так, то я не понимаю, почему нельзя создать языковой файл по принципу КЛЮЧ=ЗНАЧЕНИЕ и наполнить класс на основе этого файла с помощью fopen и максимум 10-ти строчным циклом. Дальше просто подключить этот файл к скрипту вывода и использовать ключи в нужных местах. Вариант файла, естественно, подключается на основе локали юзера.
На фоне прочитанного я, вероятно, лишен выбора. Самым эффективным везде признается GetText. Единственное, что меня раздражает, так это тегирование.
Smarty обязательно использовать для работы GetText? Или можно обойтись без шаблонизатора?
Это решение аналогично GetText. У них есть общая особенность: основной язык английский и нужно писать английскую версию. По мне намного проще использовать ключ=текст.
UPD: GetText — хорошее решение, но не очень элегантное UPD2: Нашел метод создания класса на основе содержимого языкового файла. Т.е. в файле ERROR_NUMBER=«Ошибка номер », а в скрипте это вставляется как LocText::ERROR_NUMBER — интересует древность и программная чистота метода. Может кто юзал…