Загальні зауваження
Загалом кажучи, цього без кончої потреби робити не слід. Кожен з форматів перекладу певним чином пасує до програми чи остаточного вигляду перекладу. Але...
Translate Toolkit
Було розроблено програми для перетворення майже всіх даних перекладу з одного формату на інший і назад. Тепер це все трохи забуто і libtranslate повільно вкривається пилом. Втім, ВПЗ ніколи не помирає остаточно, тому результатами роботи можна скористатися і зараз (хоча творці Launchpad про це і досі не знають). Достатньо просто звантажити найсвіжішу версію Translate toolkit звідси або встановити зі сховища вашого улюбленого дистрибутива (це можна зробити навіть у Windows). Після цього ви можете обробити відповідним інструментом, наприклад ось так:
html2po autoupdate.html >autoupdate.po
ваш файл HTML, перекласти його у звичний спосіб, а потім виконати команду
po2html -i autoupdate.po -t autoupdate.html -o autoupdate.html
в результаті матимете аж дві переваги: звичайний спосіб перекладу і переклад без втрат уже перекладених повідомлень. Можливі такі перетворення:
- moz2po — перетворення файлів Mozilla .properties і .dtd. Працює у Firefox і Thunderbird
- oo2po — перетворення OpenOffice.org SDF (див. також oo2xliff).
- csv2po — перетворення файлів значень, відокремлених комами (Comma Separated Value або CSV). Корисні для перекладів електронних таблиць.
- csv2tbx — створення файлів TBX (TermBase eXchange) на основі файлів CSV
- html2po — перетворення HTML
- ical2po — перетворення файлів iCalendar
- ini2po — перетворення файлів Windows INI
- odf2xliff — перетворення файлів OpenDocument (ODF) на XLIFF і навпаки
- php2po — перетворення файлів PHP з рядками для локалізації
- po2wordfast — перетворення пам’яті перекладів Wordfast
- po2tmx — перетворення TMX (Translation Memory Exchange)
- pot2po — ініціалізація файлів шаблонів PO для перекладу
- prop2po — перетворення файлів властивостей Java (.properties)
- web2py2po — перетворення перекладів web2py на PO
- rc2po — перетворення файлів ресурсів Windows .rc
- sub2po — перетворення різноманітних файлів субтитрів
- symb2po — перетворення перекладів у стилі Symbian на PO
- tiki2po — перетворення файлів TikiWiki мова.php
- ts2po — перетворення файлів .ts Qt Linguist
- txt2po — перетворення звичайного тексту на PO
- xliff2po — перетворення XLIFF (XML Localisation Interchange File Format)
Як бачите перетворюється майже все. Але один нюанс: перетворюється досить добре, але кінцевий результат (після зворотного злиття) місцями нагадує машинний код (хоча і є повністю функціональним).
Графічним інтерфейсом для перекладу звичайних текстових файлів OpenOffice/LibreOffice (ODF) може слугувати Lokalize (докладний опис можна знайти тут).
po4a
po4a — ще одна програма для перетворення форматів з/на PO-формат
Домашня сторінка: http://po4a.alioth.debian.org/
Може застосовуватися, наприклад, для перекладу man-сторінок:
po4a-updatepo -f man `for file in man8/*.8; do echo -n "-m $file "; done` -M utf-8 -p man-pages-man8.pot
Зворотне перетворення:
po4a-translate -f man -m <сторінка довідки> -p <файл перекладу.po> -l <перекладена сторінка довідки>
Lconvert
Якщо йдеться про файли перекладів Qt (TS), до типових пакунків Qt входить спеціальний інструмент, lconvert, який можна застосувати для перетворення даних у звичний формат PO ось за такою схемою:
lconvert -i quassel.ts -o quassel.po
lconvert -i quassel.po -of qm -o quassel.qm
Звичайно ж, отриманий файл QM можна використати у вже згаданий спосіб (подальших перетворень не потрібно), але ви не зможете скористатися підказками, які надасть у ваше розпорядження звичайна локалізація у Linguist.
Файли документації у форматі Docbook (XML)
docbook XML — дуже поширений формат структурного оформлення документів, використовується у LDP, для довідки дистрибутивів (Fedora, Ubuntu), GNOME, KDE та безлічі інших програм. Подібні файли попередньо перетворюються на файли PO розробниками дистрибутивів. Якщо ж цього не зроблено, їх можна перекладати за допомогою xml2po, що є складовою gnome-doc-utils і kdesdk-po2xml.
Перетворення кількох документів docbook XML на POT-шаблон
/usr/bin/xml2po -o book.pot chapter1.xml chapter2.xml
новий переклад
cp book.pot uk.po
оновлення старого перекладу відносно нового шаблону
msgmerge -o uk.po uk.po book.pot
Після перекладу файлу uk.po:
/usr/bin/xml2po -p uk.po chapter1.xml > chapter1.uk.xml
/usr/bin/xml2po -p uk.po chapter2.xml > chapter2.uk.xml
Зауваження:
Не забудьте перевірити синтаксис отриманих docbook командою
checkXML chapter1.uk.xml
Перетворити створений підручник DocBook (побіжно перевіривши його на коректність) на сторінки HTML можна командою
meinproc4 chapter1.uk.xml