2009-07-09 3 views
1

Complete C++ i18n gettext() “hello world” example показывает стандартный способ обработки сообщений в программе на C++ с использованием gettext(). Каталоги сообщений хранятся в файлах Portable Object на основе файла Portable Object Template, созданного непосредственно из исходного кода C++ с использованием xgettext, msginit и msgfmt. Каков соответствующий метод обработки сообщений с помощью XSLT?I18n для XSLT (или что такое gettext() и xgettext для C++ для XSLT)?

В частности, чтобы сделать C++ Привет-всемерная поддержка код i18n один просто добавляет два включает в себя, вызывает некоторые функции настройки и обертывает строк в вызовах GetText():

#include <libintl.h> 
#include <locale.h> 
.. 
    setlocale(LC_ALL, ""); 
    bindtextdomain("hellogt", "."); 
    textdomain("hellogt"); 
    std::cout << gettext("hello, world!") << std::endl; 
... 

Затем английский текст извлекается из исходную программу и преобразован в переносимый шаблон объекта для использования переводчиками, которые создают файлы каталога файлов Machine Object для использования программой времени выполнения с помощью программ утилит: xgettext, msginit и msgfmt. Наконец, при запуске программы отображается команда оболочки Linux для идентификации языка времени исполнения как испанского.

Основная цель выполнения программы hello-world - соединить все части системы, чтобы получить практически бесполезный пример для работы. Итак, как показывает пример C++ для C++ в среде Linux, я ищу то же самое, но вместо XSLT.

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

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

+0

Вы ищете общий способ сопоставления данного сообщения, такого как misc-all-fireFoxOnly, из исходного файла во все экземпляры соответствующего целевого HTML-файла для всех экземпляров misc-all-fireFoxOnly в целевой среде, используя только XSLT ? Итак, вы начинаете с какого-то файла, который имеет в нем Misc-all-fireFoxOnly, и в конечном итоге с HTML-файлом, который использует misc-all-fireFoxOnly, не имея на самом деле карты из источника в цель, правильно ли я понимаю? –

+0

Я ищу XSLT-код для добавления в свой код вместе с утилитами поддержки для обработки сообщений.Я добавил дополнительные сведения к вопросу. –

ответ

1

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

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

+0

В этом разделе рассматривается часть 3 вопроса - служебные программы, которые предоставляют текст для переводчиков. –

0

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