PO4A-GETTEXTIZE(1p) | Інструменти Po4a | PO4A-GETTEXTIZE(1p) |
po4a-gettextize — програма для перетворення початкового файла (і його перекладу) на файл PO
po4a-gettextize -f формат -m основний.документ -l XX.документ -p XX.po
(XX.po вказує на результат, усі інші вказують на вхідні дані)
po4a («PO for anything» або «PO для усього») спрощує супровід перекладу документації з використанням класичних інструментів gettext. Основною перевагою po4a є відокремлення придатного до перекладу вмісту документа від його структури. Будь ласка, зверніться до сторінки po4a(7), щоб ознайомитися зі вступними зауваженнями щодо цього проєкту.
Скрипт po4a-gettextize допоможе вам перетворити ваші наявні переклади до формату, придатного до робочої процедури на основі po4a. Таке перетворення до формату po4a для збереження наявного перекладу достатньо зробити один раз. Його не доведеться робити регулярно після перетворення вашого проєкту. Цю марудну процедуру докладно описано у розділі «Перетворення виконаного вручну перекладу до формату po4a» нижче.
Вам слід вказати і основний файл (наприклад файл початкового коду англійською), і файл наявного перекладу (наприклад спробу попереднього перекладу без po4a). Якщо вами буде вказано декілька основних файлів або декілька файлів перекладу, їх буде використано послідовно, але, ймовірно, простіше перетворити до формату gettext кожну сторінку або главу окремо, а потім скористатися msgmerge для об'єднання усіх створених файлів PO. Як вже захочете.
Якщо у основному документі є символи, як не є символами ASCII, новостворений файл PO буде записано у кодуванні UTF-8. У інших випадках (якщо основний документ містить лише символи ASCII), створений файл PO використовуватиме кодування перекладеного вхідного документа.
po4a-gettextize намагається виконати видобування перекладів з перекладених документів і зберегти як записи msgstr їх до записаного файла PO. Майте на увазі, що можливості із розбору тексту у цьому процесі доволі обмежено: програма просто вважатиме N-ий рядок із перекладеного файла перекладом N-го рядка із початкового файла. Звичайно ж, нічого не вийде, якщо структура двох файлів є різною.
Перетворення до формату gettext найкраще працює, якщо ви плануєте отримати точну версію початкового документа, який було використано для перекладу. Навіть у таких випадках у вас може виникнути потреба у коригуванні основного файла та перекладених файлів для вирівнювання структури, якщо її було змінено початковим перекладачем. Тому радимо працювати із копіями файлів.
На внутрішньому рівні обробник po4a повідомляє про синтаксичний тип кожної з видобутих рядків. У цей спосіб можна виявити розсинхронізацію під час перетворення до формату gettext. У наведеному нижче прикладі, дуже малоймовірним є те, що 4-й рядок у перекладі (типу «глава») є перекладом 4-го рядка оригіналу (типу «абзац»). Найімовірніше, до оригіналу було додано новий абзац або два абзаци в оригіналі було об'єднано у перекладі.
Оригінал Переклад глава глава абзац абзац абзац абзац абзац глава глава абзац абзац абзац
po4a-gettextize докладно повідомлятиме про усі виявлені розсинхронізації структури. Коли трапляється така розсинхронізація, вам слід виконати редагування файлів вручну для додавання фіктивних абзаців або вилучення частини вмісту у різних місцях, аж доки структура обох документів не стане однаковою. Нижче наведено деякі підказки, якщо допоможуть зберегти більшу частину наявного перекладу під час перетворення.
За сприятливих умов (тобто якщо обидва документи повністю збігаються за структурою), перетворення буде виконано без проблем, і воно триватиме декілька секунд. Якщо ж це не так, будьте готові до певної марудної роботи. Щоб там не було, пам'ятайте, що уся ця робота є платою за наступне комфортне використання po4a. Після перетворення синхронізація вмісту між основними документами і перекладами завжди буде повністю автоматичною.
Після успішного перетворення до формату gettext створені документи слід перевірити вручну для виявлення невідповідностей та помилок, які було пропущено програмою без повідомлень, як це описано нижче.
Підказки і настанови щодо процедури перетворення до формату gettext
Коли таке трапляється, усе зводиться до повторного вирівнювання структури файлів вручну. po4a-gettextize доволі докладно повідомляє про те, що не так. Програма повідомить вам про рядки, які не збігаються, їхнє розташування у тексті та тип кожного з них. Більше того, дані PO, які буде отримано на момент помилки, буде записано до файла gettextization.failed.po для подальшого вивчення.
Ось декілька підказок, які допоможуть вам у цій марудній справі і збережуть більшу частину попереднього перекладу:
Далі, у POD два абзаци може бути об'єднано, якщо рядок, який їх відокремлює містить пробіли, або якщо між рядком =item і вмістом запису немає порожнього рядка.
Усі файли, які створено po4a-gettextize має бути переглянуто вручну, навіть якщо роботу скрипту буде завершено без помилок. Вам слід передивитися увесь файл PO, переконавшись, що msgid і msgstr є насправді відповідними. Необхідності у ідеальній правильності перекладу поки немає, оскільки усі записи буде все одно позначено як неточні. Вам слід лише виявити явні невідповідності, оскільки погана відповідність перекладів зашкодить на наступних кроках спроби зберегти їх.
На щастя, цей крок не потребує знання мови перекладу — вам слід лише виявити подібні елементи у кожному msgid і його відповідному msgstr. Якщо ви маєте певні знання з французької, англійської або німецької, ви можете робити це принаймні для європейських мов, навіть якщо не знаєте жодного слова з цих мов. Іноді невідповідність рядків для мов, які не записано латинкою, можна за довжиною рядка, структурами речень (кількістю знаків пунктуації) та іншими ознаками. Втім, варто залучити знавця мови для рецензування.
Якщо вами буде виявлено невідповідність, внесіть зміни до початкового файла або файлів перекладу, як і у випадку повідомлення po4a-gettextize про помилку, і повторіть спробу. Щойно ви досягнете добрих результатів для файла PO вашого попереднього перекладу, створіть його резервну копію, аж доки належним чином не запрацює po4a.
Найпростішим способом налаштовування po4a є створення файла налаштувань po4a.conf і використання інтегрованої програми po4a (po4a-updatepo і po4a-translate вважаються застарілими). Будь ласка, ознайомтеся із розділом «ФАЙЛ НАЛАШТУВАНЬ» документації до po4a(1), щоб дізнатися більше.
Під час першого запуску po4a поточну версію основних документів буде використано для оновлення файлів PO, що містять застарілі переклади, які було збережено шляхом перетворення до формату gettext. На це можна знадобитися доволі багато часу, оскільки багато msgid з перетворених до формату gettext даних не точно відповідатимуть елементам файла POT, який побудовано на основі поточних основних файлів. Це примушує gettext до пошуку найближчого відповідника з використанням складного алгоритму пошуку близьких за вмістом рядків. Наприклад, перший запуск програми для перекладу документації Perl французькою мовою (файл PO розміром 5,5 МБ) тривав 48 годин (так, два дні), а наступні запускати триватимуть лише секунди.
Після першого запуску файли PO готові до рецензування перекладачами. Усі записи буде позначено як неточні у файлі PO програмою po4a-gettextization, примушуючи до ретельного рецензування до їхнього використання. Перекладачам слід переглянути кожен запис, щоб переконатися, що збережений переклад справді є перекладом поточного початкового тексту, оновити переклад, якщо це потрібно, і вилучити позначки неточного перекладу.
Щойно буде вилучено достатньо позначок неточного перекладу, po4a почне створювати файли перекладу на диску, і ви зможете перенести результати робочої процедури до робочого пакунка. Деякі проєкти вважають за потрібне покладатися на weblate для координації роботи між перекладачами і супровідниками, але це вже не стосується використання po4a.
po4a(1), po4a-normalize(1), po4a-translate(1), po4a-updatepo(1), po4a(7).
Denis Barbier <barbier@linuxfr.org> Nicolas François <nicolas.francois@centraliens.net> Martin Quinson (mquinson#debian.org)
© SPI, inc., 2002–2022.
Ця програма є вільним програмним забезпеченням; ви можете поширювати її і/або вносити до неї зміни за умов дотримання GPL (див. файл COPYING).
2023-01-03 | Інструменти Po4a |