Семейство функций Gettext
является хорошей отправной точкой:
Функции gettext реализуют NLS
(Поддержка родного языка) API, который
может быть использован для интернационализации вашего
PHP-приложения.
Zend_Translate
чрезвычайно гибок и имеет поточно-ориентированную реализацию gettext
. В руководстве говорится, что в нем рассматриваются следующие проблемы с собственными реализациями интернационализации:
- Несогласованный API: единого API для другого источника не существует
форматы. Использование gettext для
пример очень сложный.
- PHP поддерживает только gettext и собственный массив: сам PHP предлагает
поддержка только для массива или gettext.
Все остальные исходные форматы должны быть
закодированы вручную, потому что нет
нативная поддержка.
- Нет определения языка по умолчанию: язык по умолчанию
пользователь не может быть обнаружен без
более глубокое знание фона
для разных веб-браузеров.
- Gettext не является поточно-ориентированным: PHP-библиотека gettext не является поточно-ориентированной, и ее не следует использовать в многопоточной среде. Это связано с проблемами самого gettext, а не PHP, но это уже существующая проблема.
Стоит отметить, что Zend Framework
не является фреймворком full-stack - другими словами, вам не нужно будет использовать все это целиком, просто чтобы использовать его интернационализация API.
Что мне действительно нравится в этом, так это его поддержка нескольких адаптеров для разных источников данных , которые вы можете легко смешивать, сопоставлять и изменять, только применяя очень легкие изменения в вашем приложении. Надеюсь, это поможет.