Locale::Po4a::TeX(3pm) | Інструменти Po4a | Locale::Po4a::TeX(3pm) |
Locale::Po4a::TeX — перетворення документів TeX та похідних документів на файли PO, і навпаки
Метою проєкту po4a (PO для усього) є спрощення перекладу (та, що ще цікавіше, супровід перекладів) за допомогою інструментів gettext у областях, де такий переклад спочатку не передбачався, зокрема у документації.
Locale::Po4a::TeX — модуль, який допомагає у перекладі документів TeX іншими мовами (якими розмовляють люди). Модулем можна також скористатися як основою для побудови модулів для заснованих на TeX документів.
Ймовірно, користувачам варто скористатися модулем LaTeX, який є спадкоємцем модулі TeX і містити визначення загальних команд LaTeX.
Цим модулем можна скористатися безпосередньо для обробки типових документів TeX. Він поділить ваш документ на менші блоки (абзаци, середовища verbatim, заголовки і пункти списків).
Передбачено декілька параметрів (які описано у наступному розділі), за допомогою яких можна налаштувати поведінку модуля. Якщо модуль не відповідає формату вашого документа, вам варто написати власний модуль, який походитиме від цього, і у якому ви опишете параметри формату. Опис процедури написання наведено у розділі НАПИСАННЯ ПОХІДНИХ МОДУЛІВ нижче.
Цей модуль також можна налаштувати рядками, які починаються з «% po4a:» у файлі TeX. Процедуру описано у розділі НАЛАШТОВУВАННЯ НА МІСЦІ section.
Ось параметри, які можна передавати цьому модулю:
Зауважте, що між середовищами verbatim і no_wrap є різниця. У блоках verbatim не виконується аналіз команд та коментарів.
Якщо це середовища ще не було зареєстровано, po4a вважатиме, що у нього немає жодних параметрів.
Якщо це середовища ще не було зареєстровано, po4a вважатиме, що у нього немає жодних параметрів.
Скористайтеся цими параметрами для перевизначення типової поведінки визначених команд.
Налаштувати модуль TeX можна рядками, які починаються з % po4a:. Такі рядки вважатимуться командами, які віддаються засобу обробки. Передбачено такі команди:
Ви можете вказати перед командою команда1
Зауваження: у цьому випадку вам не потрібно вказувати, які параметри можна перекладати, але po4a має знати тип і кількість параметрів.
Аргумент
параметри
є набором []
(щоб
вказати
необов'язковий
аргумент)
або {} (щоб
вказати
обов'язковий
аргумент).
Ви можете
вказати
символи
підкреслювання
(_) між
дужками,
щоб
позначити,
що
параметр
слід
перекладати.
Приклад:
% po4a: command *chapter [_]{_}
Це вказує
на те, що у
команди chapter є
два
параметри:
необов'язковий
(скорочений
заголовок)
і
обов'язковий,
обидва має
бути
перекладено.
Якщо ви
хочете
вказати, що
команда href
має два
обов'язкові
параметри,
які ви не
хочете
перекладати,
адресу
(перший
параметр), і
що ви не
хочете, щоб
цю команду
було
відокремлено
від її
абзацу (щоб
перекладач
міг
пересунути
посилання
у реченні),
ви можете
зробити
так:
% po4a: command -href {}{_}
У цьому випадку відомості, що позначають, які аргументи має бути перекладено, використовуються, лише якщо абзац складається лише з цієї команди href.
Щодо команд, перед записом середовище можна додавати «плюс» (+), щоб вказати, що команду \begin слід перекладати із усіма її аргументами.
Формальний вираз у лапках. Не повинен містити зворотних посилань. Якщо потрібна група, слід використовувати (?:). Також може знадобитися екранування деяких символів.
Наприклад, у модулі LaTeX використовується формальний вираз "(?:&|\\\\)" для окремого перекладу усіх комірок таблиці (рядки відокремлюються «\\», а комірки — «&»).
Позначення середовища буде розширено до типу, показаного у файлі PO. Цим можна скористатися для поділу за «\\\\» у першому обов'язковому аргументі команди title. У нашому випадку, середовищем буде title{#1}.
Якщо це середовища ще не було зареєстровано, po4a вважатиме, що у нього немає жодних параметрів.
Коментарі до абзацу буде встановлено як коментар у PO для першого рядка цього абзацу, який можна перекладати.
Якщо у %translate_buffer_env визначено функцію для поточного середовища, цю функцію буде використано для перекладу буфера замість translate_buffer().
Окрім частини, пов'язаної із включенням файлів, це буквальна копія read з Transtractor.
Докладніший опис наведено у розділі НАЛАШТОВУВАННЯ НА МІСЦІ.
Функції команд і середовищ приймають такі аргументи (на додачу до об'єкта $self):
Перші 3 аргументи видобуваються get_leading_command або get_trailing_command.
Функції команд і середовищ повертають переклад команди із аргументами і нове середовище.
Функції середовищ викликаються, якщо виявлено команду \begin. Вони викликаються з командою \begin та її аргументами.
Модуль TeX пропонує лише одну функцію команд і одну функцію середовищ: generic_command і generic_environment.
generic_command
використовує
інформацію,
задану register_generic_command
або
додаванням
визначення
до файла TeX:
% po4a: command
команда1
параметри
generic_environment
використовує
інформацію,
задану
register_generic_environment або
додаванням
визначення
до файла TeX:
% po4a: environment
середовище
параметри
Обидві функції перекладають лише параметри, які було вказано як придатні до перекладу (за допомогою «_»). generic_environment дописує назву середовища до стосу середовищ, а generic_command дописує назву команди і ідентифікатором параметра (наприклад, {#7} або [#2]).
Цей модуль потребує тестування.
Його було перевірено на одній книзі та документації до Python.
Вади вказано у файлі FIXME архіву із початковим кодом.
Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)
Nicolas François <nicolas.francois@centraliens.net>
© Nicolas FRANÇOIS <nicolas.francois@centraliens.net>, 2004, 2005.
Ця програма є вільним програмним забезпеченням; ви можете поширювати її і/або вносити до неї зміни за умов дотримання GPL (див. файл COPYING).
2023-01-03 | Інструменти Po4a |