Полный пример «привет, мир» C ++ i18n gettext () показывает стандартный способ обработки сообщений в программе на C ++ с помощью gettext (). Каталоги сообщений хранятся в файлах переносимых объектов на основе файла шаблона переносимых объектов, созданного непосредственно из исходного кода C ++ с использованием xgettext, msginit и msgfmt. Каков соответствующий метод обработки сообщений с помощью XSLT?
В частности, чтобы сделать код приветствия C ++ поддержкой i18n, нужно просто добавить два включения, вызвать некоторые функции настройки и обернуть строки в вызовы gettext ():
#include <libintl.h>
#include <locale.h>
..
setlocale(LC_ALL, "");
bindtextdomain("hellogt", ".");
textdomain( "hellogt");
std::cout << gettext("hello, world!") << std::endl;
...
Затем английский текст извлекается из исходной программы и преобразуется в шаблон переносимого объекта для использования переводчиками, которые создают файлы каталога сообщений машинных объектов для использования исполняемой программой с помощью служебных программ: xgettext, msginit и msgfmt. Наконец, при запуске программы отображается команда оболочки Linux для определения испанского языка выполнения.
Основная цель создания программы hello-world - соединить все части системы, чтобы получить практически бесполезный пример работы. Итак, как показывает пример C ++ для C ++ в среде Linux, я ищу то же самое, но вместо этого для XSLT.
- В примере C ++ есть набор включаемых файлов и объектных файлов, связанных с hellogt. Есть ли код для XSLT, который обеспечивает функциональность setlocale, bindtextdomain и textdomain? Как код подключается к языку среды выполнения пользователя?
- Есть ли код XSLT, который обеспечивает преобразование во время выполнения из английского текста с помощью файлов каталога сообщений, таких как gettext ()?
- Существуют ли служебные программы для извлечения текста на английском из исходного XML-файла для использования переводчиками вместе с программами для преобразования результатов в файлы каталога сообщений, пригодные для использования во время выполнения, такие как xgettext, msginit и msgfmt do?
- Как определяется язык среды выполнения пользователя?
Например, у меня есть приложение Javascript, Emle, которое преобразует XML с помощью XSLT в HTML. Сообщения определены в коллекции файлов XML для конкретного приложения. Они извлекаются с использованием кода XSLT для конкретного приложения. Хотя это относится к пункту 2, похоже, что метод не дает возможности воспользоваться услугами перевода, подобными тем, которые предоставляет LaunchPad а>. Пример файла сообщений Emle на английском языке, используемый XSLT-файл Emle