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.

Ответ 4

Ссылка ссылка на функцию говорит мне, что нет xgettext.

Может быть, они означают один из

ngettext dgettext dngettext dcgettext dcngettext

обработка "x" как шаблона