Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Переводы _ QHP Converter

Автор: iReset 25.12.2012, 14:12

Написал небольшую программку, которая позволит нам переводить qhp-файлы в OmegaT.
Написана без использования XML-парсеров, чисто на регулярных выражениях.
Общая суть простая - преобразует qhp-файл в ini-файл, который понимает OmegaT. Далее мы этот файл можем перевести и, снова используя qhpconverter, преобразовать в обратно в qhp-файл.

Описание из readme-файла
QHP Converter

Консольная программа для преобразования qhp-файлов.
Не имеет параметров командной строки.
При получении через командную строку файлов с расширением qhp
преобразовывает их в файлы формата ini, которые понимает OmegaT.
ВНИМАНИЕ: программа перезаписывает существующие файлы без запросов.

Правила преобразования:
1. Содержимое элемента namespace преобразуется в строку с ключом namespace.
Например, строка

<namespace>com.trolltech.qt.474</namespace>

будет преобразована в

# <namespace>
namespace=ru.trolltech.qt.474
#</namespace>

2. Теги name и title элементов преобразуются в строки, у которых ключи имеют
соответствующее название. Например, строки

<section ref="index.html" title="Qt Reference Documentation">
<section ref="qwidget.html" title="QWidget Class Reference">

будут преобразованы в

# <section ref="index.html"
title=Qt Reference Documentation
#>
# <section ref="qwidget.html"
title=QWidget Class Reference
#>

При этом у параметров убираются кавычки, а коды "&lt;", "&gt;", "&amp;",
"&quot;" заменяются на символы "<", ">", """, "&".
3. Все остальные строки комментируются символом "#".

В полученном ini-файле можно переводить незакомментированные строки. Программа
OmegaT понимает этот формат.

Переведённый ini-файл необходимо передать через командную строку программе
qhpconverter. Она преобразует его в qhp-файл, сохранив все оформление исходного
файла. При преобразовании из ini в qhp-файл в начало секции <filterSection>
добавляется элемент

<filterAttribute>ru</filterAttribute>

Формат файла ini выбран вместо txt потому, что:
1. хотелось сохранить ненужную для перевода информацию в оригинальном виде -
это позволяют делать комментарии;
2. в формате txt могут возникать проблемы, связанные с распознаванием абзацев.

Сборка
--------
При разработке использовались следующие программные продукты:
- MinGW 4.6.2
- Qt library 4.6.3
- Qt Creator 2.5.0

Думаю, она поможет нам в переводе qhp-файлов.

Есть одна тонкость, по которой мне нужна консультация. Сейчас я сделал так, что в сегменты для перевода попадают как названия разделов, так и ключевые слова. В уже переведённых qhp-файлах я не увидел перевода ключевых слов. Это сделано намеренно?

Исходники и бинарники доступны https://www.dropbox.com/sh/f3sy36dpssj84hd/7DfYFAOlq3.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)