table of contents
LOCALE::PO4A::TEX.3PM(1) | User Contributed Perl Documentation | LOCALE::PO4A::TEX.3PM(1) |
ИМЕ¶
Locale::Po4a::TeX - двосмерна конверзија TeX (и изведених из њега) докумената и PO фајлова
ОПИС¶
Циљ po4a (PO for anything – PO за било шта) пројекта је да поједностави превођење (и што је још интересантније, одржавање превода) употребом gettext алата на деловима на којима се не очекује њихова употреба, као што је документација.
Locale::Po4a::TeX је модул који помаже превођење TeX докумената на друге [људске] језике. Може да се користи и као основа за изградњу модула који обрађују документе базиране на TeX.
Корисници би углавном требало да користе LaTeX модул, јер је он изведен из TeX модула и садржи дефиниције уобичајених LaTeX команди.
ПРЕВОЂЕЊЕ СА PO4A::TEX¶
Овај модул може директно да се користи за обраду генеричких TeX докумената. Он ће да издели ваш документ на мање блокове (пасусе, дословне блокове, или чак мање, као што су наслови или индекси).
Постоје неке опције (описане у наредном одељку) које могу да прилагоде ово понашање. Ако се не уклапа у формат вашег документа, најбоље је да напишете ваш сопствени модул изведен из овога, који ће да опише детаље вашег формата. Погледајте одељак ПИСАЊЕ ИЗВЕДЕНИХ МОДУЛА испод, да сазнате више о том процесу.
Овај модул такође може да се прилагоди линијама у TeX фајлу које почињу са „% po4a:”. Овај процес је описан у одељку ПРИЛАГОЂАВАЊЕ ИЗ САМОГ ФАЈЛА.
ОПЦИЈЕ КОЈЕ ПРИХВАТА ОВАЈ МОДУЛ¶
Ово су опције везане само за овај модул:
- debug
- Активира дибаговање за неке интерне механизме овог модула. Погледајте изворни код да сазнате за који делове може да се користи дибаг.
- no_wrap
- Листа
окружења
раздвојених
зарезима
која не би
требало да
се поново
обавијају.
Имајте на уму да постоји разлика између дословног и no_wrap окружења. У дословним блоковима се не ради анализа команди и коментара.
Ако ово окружење није већ раније регистровано, програм po4a ће сматрати да ово окружење не узима никакве параметре.
- exclude_include
- Листа фајлова раздвојених зарезима које команде \input и \include не би требало да прикључе.
- definitions
- Име фајла који садржи дефиниције за po4a, као што је дефинисано у одељку ПРИЛАГОЂАВАЊЕ ИЗ САМОГ ФАЈЛА. Ову опцију можете користити у случају да није могуће постављање дефиниција у документ који се преводи.
- verbatim
- Листа
окружења
раздвојених
зарезима
која би
требало да
се пренесу
дословно.
Ако ово окружење није већ раније регистровано, програм po4a ће сматрати да ово окружење не узима никакве параметре.
Употребите ове опције да преиначите подразумевано понашање дефинисаних команди.
ПРИЛАГОЂАВАЊЕ ИЗ САМОГ ФАЈЛА¶
TeX модул може да се прилагоди линијама које почињу са % po4a:. Ове линије се интерпретирају као команде парсера. Препознају се следеће команде:
- % po4a: command команда1 alias команда2
- Наводи да би аргументи команде команда1 требало да се третирају као аргументи команде команда2.
- % po4a: command команда1 параметри
- Ово
детаљно
описује
параметре
команде
команда1.
Ова
информација
ће да се
употреби
за проверу
броја
аргумената
и њихових
типова.
Испред команде команда1 можете да ставите
- звездицу (*)
- Програм po4a ће ову команду да издвоји из пасуса (ако се налази на почетку или крају пасуса). Преводиоци ће онда морати да преведу параметре који су обележени као преводиви.
- знак плус (+)
- Као за
звездицу,
команда ће
да се
издвоји у
случају да
се налази
на
крајевима
блока, али
параметри
се неће
преводити
одвојено.
Преводилац
ће морати
да преведе
команду
спојену са
свим
својим
параметрима.
На овај
начин се
задржава
више
контекста,
и корисно
је за
команде са
малим
речима у
параметрима,
које могу
да имају
вишеструка
значења (и
преводе).
Напомена: у овом случају не морате да наведете који параметри су преводиви, али програм po4a мора да зна типове и број параметара.
- знак минус (-)
- У овом случају команда неће да са издваја из било којег блока. Али ако се у блоку појави сама, онда ће се преводиоцу приказати само параметри означени као преводиви. Ово је корисно за фонт команде. У општем случају, ове команде не би требало да се одвајају од својих пасуса (да би се сачувао контекст), али нема разлога да се преводилац њима узнемирава ако је таквом командом уоквирен комплетан стринг.
Аргумент
параметри
је скуп [] (да
се наведе
опционални
аргумент)
или {} (да се
наведе
обавезан
аргумент).
Између
ових
заграда
можете да
ставите
доњу црту (_)
да бисте
назначили
да
параметар
мора да се
преведе. На
пример:
% po4a: command *chapter [_]{_}
Ово
указује да
команда chapter
има два
параметра:
опционални
(кратак
наслов) и
обавезни, и
да оба
морају да
се преведу.
Ако желите
да
наведете
да команда
href има два
обавезна
параметра,
и да не
желите да
преведете URL
(први
параметар),
и да не
желите да
се ова
команда
издвоји из
свог
пасуса (што
преводиоцу
омогућава
да помера
везу по
реченици),
можете да
употребите:
% po4a: command -href {}{_}
У овом случају, информација која говори који аргументи морају да се преведу, биће искоришћена само онда када је ова href команда једини садржај пасуса.
- % po4a: environment окр параметри
- Ово
дефинише
параметре
које
прихвата
окружење
окр и
наводи оне
који треба
да се
преведу. Та
информација
се касније
користи за
проверу
броја
аргумената
команде \begin, и
дозвољава
да се
наведе
који од њих
морају да
се преведу.
Синтакса
аргумента
параметри
је иста као
што је
описано за
остале
команде.
Први
параметар
команде \begin
је име
окружења.
Овај
параметар
не сме да
се наведе у
листи
параметара.
Ево
неколико
примера:
% po4a: environment multicols {}
% po4a: environment equationШто се тиче команди, испред окр може да се стави (+) чиме се назначава да команда \begin мора бити преведена заједно са свим својим аргументима.
- % po4a: separator окр "регизраз"
- Назначава
да би
окружење
требало да
се подели
сагласно
са датим
регуларним
изразом.
Регуларни израз је омеђен знацима навода. Не би требало да креира никакве повратне референце. Ако вам је потребна група, употребите (?:). Могуће је да ће бити потребно означавање специјалних карактера.
На пример, LaTeX модул користи регуларни израз "(?:&|\\\\)" за одвојено превођење сваке ћелије табеле (линије се раздвајају са ’\\’ а ћелије са ’&’).
Појам окружења се пребацује у тип приказан у PO фајлу. Ово може да се искористи за поделу на „\\\\” у првом обавезном аргументу команде наслова. У овом случају, окружење је title{#1}.
- % po4a: verbatim environment окр
- Назначава
да је окр
дословно
окружење. У
овом
окружењу
ће да се
игноришу
команде и
коментари.
Ако ово окружење није већ раније регистровано, програм po4a ће сматрати да ово окружење не узима никакве параметре.
ПИСАЊЕ ИЗВЕДЕНИХ МОДУЛА¶
- pre_trans
- post_trans
- add_comment
- Додаје стринг као коментар који се додаје око наредног преводивог елемента. Ово је углавном корисно за texinfo модул, јер TeX аутоматски води рачуна о коментарима.
- translate
- Окружујућа
класа око
translate методе
класе Transtractor, са
филтерима
за пре- и
пост-процесирање.
Коментари пасуса се умећу као PO коментар за први преводиви стринг тог пасуса.
- get_leading_command($buffer)
- Ова функција враћа:
- Име команде
- Ако се на почетку датог бафера не пронађе ниједна команда, овај стринг ће да буде празан. У обзир се узимају само команде које могу да се раздвоје. Хеш %separated_command садржи листу ових команди.
- Варијанту
- Ово назначава да се користи варијанта. На пример, на крај команде краја одељка може да се дода звездица (*) чиме се наводи да одељци не би требало да се нумеришу. У том случају, ово поље ће да садржи „*”. Ако нема варијанте, ово поље ће бити празно.
- Низ дублета (тип аргумента, аргумент)
- Типа аргумента може да буде или ’{’ (за обавезне аргументе) или ’[’ (за опционалне аргументе).
- Остатак бафера
- Остатак бафера након уклањања ове водеће команде и њених аргумената. Ако се не пронађе никаква команда, оригинални бафер остаје неизмењен и враћа се у овом пољу.
- get_trailing_command($buffer)
- Исто као get_leading_command, али за команде на крају бафера.
- translate_buffer
- Рекурзивно
преводи
бафер
раздвајањем
из бафера
водећих
команди и
команди са
краја (оне
које би
требало да
се преведу
одвојено).
Ако је за текуће окружење дефинисана функција у %translate_buffer_env, за превођење бафера ће уместо translate_buffer() да се употреби та функција.
- read
- Преиначује функцију read() из класе Transtractor.
- read_file
- Чита фајл
рекурзивно,
додајући
на крај
прикључене
фајлове
који нису
наведени у
низу @exclude_include.
Прикључени
фајлови се
траже
командом
kpsewhich из Kpathsea
библиотеке.
Осим дела за прикључивање фајла, ово је чиста копија функције за читање из класе Transtractor.
- parse_definition_file
- Подрутина за парсирање фајла са директивама за програм po4a (дефиниције за нове команде).
- parse_definition_line
- Парсира
линију
дефиниције
у облику „% po4a:
”.
За више детаља, погледајте одељак ПРИЛАГОЂАВАЊЕ ИЗ САМОГ ФАЈЛА.
- is_closed
- parse
- docheader
ИНТЕРНЕ ФУНКЦИЈЕ које се користе за писање изведених парсера¶
Функције за команде и окружења узимају следеће аргументе (поред $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 документацији.
ЛИСТА СТВАРИ КОЈЕ ТРЕБА ДА СЕ УРАДЕ¶
- Аутоматска детекција нових команди
- TeX модул би могао да парсира аргументе команде newcommand и да покуша да погоди број аргумената, њихов тип и да ли треба да се преведу или не.
- Превод сепаратора окружења
- Када се као сепаратор окружења користи \item, аргумент ставке се прикључује наредном стрингу.
- Неке команде би требало да се додају на стек окружења
- Ове команде би требало да буду наведене паровима. То може да се употреби за навођење команди које почињу или завршавају дословно окружење.
- Остало
- Разне друге ствари су обележене са TODO и изворном коду.
ПОЗНАТИ БАГОВИ¶
Разне ствари обележене са FIXME у изворном коду.
ПОГЛЕДАЈТЕ ТАКОЂЕ¶
Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)
АУТОРИ¶
Никола Франсоа <nicolas.francois@centraliens.net>
ПРАВА УМНОЖАВАЊА И ЛИЦЕНЦА¶
Права умножавања © 2004, 2005 Никола ФРАНСОА <nicolas.francois@centraliens.net>.
Овај програм је слободан софтвер; можете да га редистрибуирате и/или мењате под условима GPL v2.0 или новије (погледајте фајл COPYING).
2024-07-02 | perl v5.40.0 |