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 докумената. Он ће да издели ваш документ на мање блокове (пасусе, дословне блокове, или чак мање, као што су наслови или индекси).

There are some options (described in the next section) that can customize this behavior. If this doesn't fit to your document format you're encouraged to write your own derivative module from this, to describe your format's details. See the section WRITING DERIVATE MODULES below, for the process description.

Овај модул такође може да се прилагоди линијама у 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 мора да зна типове и број параметара.

    знак минус (-)
        У овом случају команда неће да са издваја из било којег блока. Али ако се у блоку појави сама, онда ће се преводиоцу приказати само параметри означени као преводиви. Ово је корисно за фонт команде. У општем случају, ове команде не би требало да се одвајају од својих пасуса (да би се сачувао контекст), али нема разлога да се преводилац њима узнемирава ако је таквом командом уоквирен комплетан стринг.

    The parameters argument is a set of [] (to indicate an optional argument) or {} (to indicate a mandatory argument). You can place an underscore (_) between these brackets to indicate that the parameter must be translated. For example:
     % po4a: command *chapter [_]{_}

    This indicates that the chapter command has two parameters: an optional (short title) and a mandatory one, which must both be translated. If you want to specify that the href command has two mandatory parameters, that you don't want to translate the URL (first parameter), and that you don't want this command to be separated from its paragraph (which allow the translator to move the link in the sentence), you can use:
     % po4a: command -href {}{_}

    У овом случају, информација која говори који аргументи морају да се преведу, биће искоришћена само онда када је ова href команда једини садржај пасуса.

% po4a: environment окр параметри
    This defines the parameters accepted by the env environment and specifies the ones to be translated. This information is later used to check the number of arguments of the \begin command. The syntax of the parameters argument is the same as described for the others commands. The first parameter of the \begin command is the name of the environment. This parameter must not be specified in the list of parameters. Here are some examples:
     % 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 uses the information specified by register_generic_command or by adding definition to the TeX file:
 % po4a: command command1 parameters

generic_environment uses the information specified by register_generic_environment or by adding definition to the TeX file:
 % po4a: environment env parameters

Обе функције ће да преведу само параметре коју су били наведени као преводиви (са ’_’). generic_environment ће да дода име окружења на стек окружења, а generic_command ће да дода име команде иза које следе идентификатори параметара (као {#7} или [#2]).

СТАТУС ОВОГ МОДУЛА
Потребно је да се овај модул додатно тестира.

Тестиран је на књизи и Python документацији.

ЛИСТА СТВАРИ КОЈЕ ТРЕБА ДА СЕ УРАДЕ

Аутоматска детекција нових команди
    TeX модул би могао да парсира аргументе команде newcommand и да покуша да погоди број аргумената, њихов тип и да ли треба да се преведу или не.

Превод сепаратора окружења
    Када се као сепаратор окружења користи \item, аргумент ставке се прикључује наредном стрингу.

Неке команде би требало да се додају на стек окружења
    Ове команде би требало да буду наведене паровима. То може да се употреби за навођење команди које почињу или завршавају дословно окружење.

Остало
    Разне друге ствари су обележене са TODO и изворном коду.

ПОЗНАТИ БАГОВИ
Разне ствари обележене са FIXME у изворном коду.

ПОГЛЕДАЈТЕ ТАКОЂЕ
Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)

АУТОРИ
 Nicolas François <nicolas.francois@centraliens.net>

ПРАВА УМНОЖАВАЊА И ЛИЦЕНЦА
Права умножавања © 2004, 2005 Никола ФРАНСОА <nicolas.francois@centraliens.net>.

Овај програм је слободан софтвер; можете да га редистрибуирате и/или мењате под условима GPL v2.0 или новије (погледајте фајл COPYING).