По вопросу:
Я знаю, что такое 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()
.