Каковы хорошие инструменты / фреймворки для i18n кодовой базы php?

StackOverflow https://stackoverflow.com/questions/155706

  •  03-07-2019
  •  | 
  •  

Вопрос

Я рассмотрел несколько вариантов включения локализации и интернационализации динамического php-приложения.По-видимому, доступно множество инструментов, таких как gettext и R3 от Yahoo, и мне интересно услышать как от разработчиков, так и от переводчиков о том, какие инструменты хороши в использовании и какая функциональность важна для облегчения задачи внедрения и перевода.

Это было полезно?

Решение

Реализация 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-mysql (доступ к переводу и т.д.)
  • затем переводы пишутся на php arrrays
  • эти массивы также кэшируются в APC для ускорения работы сайта.

итак, чтобы локализовать разные языки, вам нужно всего лишь включить

Нравится

<?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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top