Xgettext vs gettext
У меня есть несколько вопросов:
Я знаю, что такое gettext. Я прочитал несколько сообщений, где они упомянули xgettext, и было любопытно, в чем разница между ними.
Как установить xgettext в Windows?
И, наконец, есть ли у кого-нибудь учебник по установке библиотеки php-gettext http://savannah.nongnu.org/projects/php-gettext/ (этого обычно не приходит с PHP). Я читал об этом в статье, но я не уверен, как заставить ее работать в Windows. Дело в том, что иногда, когда вы вносите изменения, вам нужно перезапустить Apache, чтобы увидеть новые данные с gettext, который поставляется с PHP (но с библиотекой, которую вам не нужно перезапускать), поэтому я хотел использовать библиотеку для разработки, Спасибо!
Ответы
Ответ 1
В отношении вопроса:
Я знаю, что такое gettext. Я прочитал несколько сообщений, где они упомянули xgettext, и было любопытно, в чем разница между ними.
Короче говоря, gettext()
- это функция, а xgettext
- служебная программа для извлечения сообщений из исходного кода.
В длинном, SO answer в Полный С++ i18n gettext() пример "привет мир" показывает как часть файла исходного кода С++ hellogt.cxx
:
gettext("hello, world!")
Функция gettext()
передается текстовой строкой, которая используется как индекс для сообщения, которое будет использоваться во время выполнения. Он возвращает указанное сообщение для языка, который указан либо в коде, либо во время вызова программы.
Затем он показывает:
xgettext --package-name hellogt --package-version 1.2 --default-domain hellogt --output hellogt.pot hellogt.cxx
который является служебной программой, используемой во время сборки, для изучения файла исходного кода hellogt.cxx
для текстовых строк, переданных в gettext()
. Они извлекаются и используются для создания файла шаблона переносимого объекта hellogt.pot
.
Шаблон файла .pot
используется переводчиками в процессе доставки файла с двоичным переведенным сообщением hellogt.mo
, используемого во время выполнения gettext()
.
Ответ 2
Установите Cygwin и выберите пакет gettext-devel.
Это установит xgettext.exe
В Zend Framework есть gettext адаптер Zend_Translate, который не требует расширения php gettext.
Ответ 3
xgettext является частью gettext, это программа, которая извлекает переводимые строки из источников программы. См. gettext manual.
Я не знаю о его доступности в Windows, Google сообщает мне, что есть порт.
Ответ 4
Ссылка ссылка на функцию говорит мне, что нет xgettext.
Может быть, они означают один из
ngettext dgettext dngettext dcgettext dcngettext
обработка "x" как шаблона