I18n для XSLT (или что такое gettext () и xgettext из C ++ для XSLT)? - PullRequest
1 голос
/ 09 июля 2009

Завершите C ++ i18n gettext () Пример «Hello World» показывает стандартный способ обработки сообщений в программе на C ++ с использованием gettext (). Каталоги сообщений хранятся в файлах переносимых объектов на основе файла переносимых объектов, созданного непосредственно из исходного кода C ++ с использованием xgettext, msginit и msgfmt. Каков соответствующий метод для обработки сообщений с помощью XSLT?

В частности, чтобы обеспечить поддержку кода hello-world на 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.

  1. В примере C ++ есть набор включаемых файлов и объектных файлов, которые связаны в hellogt. Существует ли код для XSLT, который обеспечивает функциональность setlocale, bindtextdomain и textdomain? Как код соединяется с языком времени выполнения пользователя?
  2. Существует ли код XSLT, который обеспечивает преобразование во время выполнения из английского текста через файлы каталога сообщений, как это делает gettext ()?
  3. Существуют ли служебные программы для извлечения текста на английском языке из исходного XML-файла для использования переводчиками вместе с программами для преобразования результатов в пригодные для использования файлы каталога сообщений, такие как xgettext, msginit и msgfmt do?
  4. Каким образом определяется указанный язык среды выполнения пользователя?

Например, у меня есть приложение Javascript, Emle , которое обрабатывает XML с использованием XSLT в HTML. Сообщения определяются в определенной прикладной коллекции языковых XML-файлов. Они извлекаются с использованием специального XSLT-кода приложения. Хотя это относится к # 2, метод, по-видимому, не дает возможности воспользоваться услугами перевода, такими как LaunchPad . Пример Emle Английский файл сообщений , используемый Emle XSLT file

Ответы [ 2 ]

1 голос
/ 30 декабря 2009

Если не-XML-инструменты приемлемы, тогда этот Perl-инструмент выполняет генерацию и синхронизацию набора PO-файлов gettext файла данных XML и его переводов.

http://po4a.alioth.debian.org/man/man3pm/Locale::Po4a::Xml.3pm.php

0 голосов
/ 07 июня 2012

После некоторого поиска я нашел это: http://xmlguru.cz/2006/10/saxon-gettext Я еще не прочитал его полностью, чтобы узнать, отвечает ли он и как на него, но я предлагаю ссылку, надеясь, что это поможет.

...