xgettext против gettext - PullRequest
       13

xgettext против gettext

10 голосов
/ 30 августа 2009

У меня есть несколько вопросов:

Я знаю, что такое gettext. Я прочитал несколько постов, в которых упоминается xgettext, и мне было любопытно, в чем разница между ними.

Как я могу установить xgettext в Windows?

И, наконец, есть ли у кого-нибудь руководство по установке библиотеки php-gettext http://savannah.nongnu.org/projects/php-gettext/ (эта обычно не поставляется с PHP) Я читал об этом в статье, но я не уверен, как заставить это работать в Windows. Дело в том, что иногда, когда вы вносите изменения, вам нужно перезапустить Apache, чтобы увидеть новые данные с помощью gettext, который поставляется с PHP (но с библиотекой вам не нужно перезапускать его), поэтому я хотел использовать библиотеку для разработки , Спасибо!

Ответы [ 4 ]

14 голосов
/ 05 июня 2010

По вопросу:

Я знаю, что такое gettext. Я прочитал несколько постов, в которых упоминается xgettext, и мне было любопытно, в чем разница между ними.

Короче говоря, gettext() - это функция, а xgettext - служебная программа для извлечения сообщений из исходного кода.

В общем, SO ответ на Завершить C ++ i18n gettext () "hello world" пример показан как часть файла исходного кода C ++ 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().

4 голосов
/ 01 сентября 2009

Установите Cygwin и выберите пакет gettext-devel.
Это установит xgettext.exe

Zend Framework имеет gettext Zend_Translate адаптер , который не требует расширения php gettext.

0 голосов
/ 30 августа 2009

xgettext является частью gettext, программы, которая извлекает переводимые строки из программных источников. См. Руководство gettext .

Я не знаю о его доступности в Windows, Google сообщает мне, что есть порт .

0 голосов
/ 30 августа 2009

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

Может быть, они имеют в виду один из

ngettext dgettext dngettext dcgettext dcngettext

обрабатывая 'x' как подстановочный знак

...