Я рассмотрел несколько вариантов включения локализации и интернационализации динамического приложения php. Похоже, что существует множество доступных инструментов, таких как gettext и Yahoo R3, и мне интересно услышать от разработчиков и переводчиков, какие инструменты хороши в использовании и какая функциональность важна для облегчения задачи внедрения и перевода.
PHP gettext-реализация работает очень плавно. И файлы po с po edit и gettext имеют такой же хороший способ, как вы можете справиться с локализацией, имея в виду, что никакое решение такого рода не может полностью справиться с сложностями различных языков. Например, метод gettext очень хорош в множественных формах, но ничто из того, что я видел, не может обрабатывать такие вещи, как сопряжение.
Для получения дополнительной информации см. Мой пост здесь: Как вы создаете многоязычный веб-сайт?
Мы занимались Zend_Translate , так как в любом случае мы используем Zend Framework. Он очень хорошо документирован и до сих пор чрезвычайно прочен.
Раньше я в основном использовал свое собственное доморощенное решение. Это включает в себя языковые файлы с константами или переменными, которые содержат все текстовые части и только что отображались в представлении / шаблоне позже.
Что касается gettext, то в прошлом я слышал, что ссылки на реализацию gettext PHP ошибочны, но я не могу действительно поддержать это, и у меня нет никаких ссылок прямо сейчас.
Существует ряд полезных расширений в pecl: http://pecl.php.net/packages.php?catpid=28&catname=Internationalization
В частности, вы можете проверить php-intl, который предоставляет большинство ключевых функций i18n из международных компонентов для Unicode (ICU)
решение, основанное на базе данных для показа сообщений, не всегда является хорошим, я работал на сайте с более чем 15 языками, и переводы были проблемой.
поэтому наш дизайн был:
поэтому для локализации разных языков вам нужно всего лишь включить
как
<?php include('lang/en.php'); include('lang/en_us.php'); // this file overrides few keys from the last one. ?>
Xataface можно использовать для того, чтобы довольно легко интернационализировать произвольное приложение PHP / MySQL. Он поддерживает перевод как вашего статического текста, так и данных вашей базы данных. Все, что вам нужно сделать, это добавить строку или 2 кода в пару мест в вашем приложении, и это хорошо.
http://xataface.com/documentation/tutorial/internationalization-with-dataface-0.6