Я занимаюсь переводом справки для програмы gretl (gretl.sf.net) - она
является частью проекта GNU, хотя и очень специализирована. Хочу
использовать для перевода launchpad.net - я так понял он принимает
только файлы .po Вот и хочу сделать для xml-файлов, из которых
создаётся справка для программы, po-файл.
Есть два xml файла со справкой по встроенным функциям -
gretl_commands.xml и genr_func.xml
(http://gretl.cvs.sourceforge.net/viewvc/gretl/gretl/doc/commands/).
Перевод (на другие языки он уже сделан, так что изменить что-либо в
процедуре вряд ли возможно) должен быть помещён в файлы
gretl_commands_ru.xml и genr_func_ru.xml. При этом в этих файлах
перевести надо только то что содержится внутри тегов <para></para> - и
любые теги внутри <para></para> за теги не считать и отдельно для
перевода не отмечать.
Как я понял самое адекватное решение для данной проблемы это po4a (http://po4a.alioth.debian.org/). Если кто-то может предложить другое решение - остальной тест поста лучше не читать.Я попытался сделать файл с конфигом для такого перевода:
[po4a_paths] doc/i10n/gretl_help.pot ru:doc/i10n/ru.po
[type: xml] doc/genr_funcs.xml ru:doc/ru/genr_func_ru.xml opt:"translated=<para> untranslated=<math>"
[type: xml] doc/gretl_commands.xml ru:doc/ru/gretl_commands_ru.xml opt:"translated=<para> untranslated=<math>"
и запускаю создание файла ru.po
$ po4a po4a.cfg
(4296 записей)
Отброшено doc/ru/genr_func_ru.xml (0 из 2278 строк; переведено только
0%; необходимо 80%).
Отброшено doc/ru/gretl_commands_ru.xml (0 из 5125 строк; переведено
только 0%; необходимо 80%).
Файл ru.po создаётся и если его изменить, то повторный запуск
переведённые строки видит (правда только если я делаю это при помощи
poedit - после изменения файла вручную po4a вылетает с ошибкой, ну да
это неважно).
$ po4a po4a.cfg
Отброшено doc/ru/genr_func_ru.xml (1 из 2278 строк; переведено только
0.04%; необходимо 80%).
Отброшено doc/ru/gretl_commands_ru.xml (0 из 5125 строк; переведено
только 0%; необходимо 80%).
Но проблема в том, что в ru.po есть строки вида
#. type: Content of: <commandlist><command><description><para><math>
#: doc/genr_funcs.xml:47 doc/genr_funcs.xml:54 doc/genr_funcs.xml:382
...
#: doc/gretl_commands.xml:1658 doc/gretl_commands.xml:2083
#, no-wrap
msgid "s"
msgstr ""
То есть для перевода отмечен текст из тега <math></math> вложенного в тег
<para></para> - этот текст переводить не нужно.
Кроме того есть и строки вида:
#. type: Content of: <funcref><funclist><function><description><code>
#: doc/genr_funcs.xml:64
#, no-wrap
msgid ""
...
"\t"
msgstr ""
То есть отмечаются для перевода и строки из тегов <code>, не вложенных в теги <para>
Не подскажите как можно сгенерировать po-файл (может быть как-нибудь по-другому)?

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум po4a-translate, perl, verbose (2014)
- Форум Создание xml элемента в Python (2015)
- Форум Создание html формы по XSD и XML (2014)
- Форум xml (2005)
- Форум xml (2005)