.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "Locale::Po4a::Xml 3pm"
.TH Locale::Po4a::Xml 3pm "2016-01-05" "Narzędzia po4a" "Narzędzia po4a"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAZWA"
.IX Header "NAZWA"
Locale::Po4a::Xml \- konwersja dokumentów \s-1XML\s0 i pochodnych z/do plików \s-1PO\s0
.SH "OPIS"
.IX Header "OPIS"
Celem projektu po4a (\*(L"\s-1PO\s0 for anything\*(R") jest ułatwienie tłumaczeń (oraz, co
ciekawsze, zarządzania tłumaczeniami) przy użyciu narzędzi gettext w tych
obszarach, gdzie nie były używane, jak na przykład w obszarze dokumentacji.
.PP
Locale::Po4a::XML jest modułem ułatwiającym tłumaczenie dokumentów \s-1XML\s0 do
innych języków [używanych przez ludzi].
.SH "TŁUMACZENIE Z POMOCĄ PO4A::XML"
.IX Header "TŁUMACZENIE Z POMOCĄ PO4A::XML"
Tego modułu można użyć bezpośrednio do obsługi ogólnych dokumentów w
formacie \s-1XML.\s0 Wyciągnie on zawartość wszystkich elementów, bez żadnych
atrybutów, ponieważ to właśnie w elementach jest zapisywany tekst w
większości dokumentów opartych na XML-u.
.PP
Istnieje kilka opcji (opisanych w następnej sekcji), które mogą dostosować
zachowanie do Twoich wymagań. Jeśli nie pasuje ono do formatu Twojego
dokumentu, zachęcamy do napisania własnego modułu dziedziczącego z tego,
opisującego szczegóły formatu. Szczegóły można znaleźć w sekcji \fB\s-1PRACA\s0
ZMODUŁAMI \s-1POCHODNYMI\s0\fR poniżej.
.SH "OPCJE AKCEPTOWANE PRZEZ MODUŁ"
.IX Header "OPCJE AKCEPTOWANE PRZEZ MODUŁ"
Globalna opcja debug powoduje, że ten moduł pokaże wyłączone komunikaty, aby
móc sprawdzić, czy przypadkiem nie pomija czegoś istotnego.
.PP
Opcje tego modułu:
.IP "\fBnostrip\fR" 4
.IX Item "nostrip"
Uniemożliwia usuwanie spacji otaczających wyodrębnione komunikaty.
.IP "\fBwrap\fR" 4
.IX Item "wrap"
Canonicalizes the string to translate, considering that whitespaces are not
important, and wraps the translated document. This option can be overridden
by custom tag options. See the \*(L"tags\*(R" option below.
.IP "\fBcaseinsensitive\fR" 4
.IX Item "caseinsensitive"
Powoduje, że elementy i atrybuty są wyszukiwane z pominięciem rozpoznawania
wielkości liter. Jeśli jest to zdefiniowane, to <BooK>laNG i
<\s-1BOOK\s0>Lang zostaną potraktowane tak samo jak <book>lang.
.IP "\fBincludeexternal\fR" 4
.IX Item "includeexternal"
Jeżeli zdefiniowano, zewnętrzne encje są dołączane do wygenerowanego
(przetłumaczonego) dokumentu oraz do wyodrębnionych łańcuchów znaków. Jeżeli
nie zdefiniowano, będzie trzeba przetłumaczyć zewnętrzne encje jako
niezależne dokumenty.
.IP "\fBontagerror\fR" 4
.IX Item "ontagerror"
This option defines the behavior of the module when it encounters invalid
\&\s-1XML\s0 syntax (a closing tag which does not match the last opening tag, or a
tag's attribute without value).  It can take the following values:
.RS 4
.IP "\fIfail\fR" 4
.IX Item "fail"
Jest to domyślna wartość. Działanie modułu zakończy się błędem.
.IP "\fIwarn\fR" 4
.IX Item "warn"
Moduł wyświetli ostrzeżenie i będzie kontynuował działanie,
.IP "\fIsilent\fR" 4
.IX Item "silent"
Moduł będzie kontynuował bez wypisywania żadnych ostrzeżeń.
.RE
.RS 4
.Sp
Proszę zachować ostrożność, używając tej opcji. Rekomendowanym zachowaniem
jest poprawienie pliku wejściowego.
.RE
.IP "\fBtagsonly\fR" 4
.IX Item "tagsonly"
Wyodrębnia tylko elementy podane w opcji \*(L"tags\*(R". W przeciwnym wypadku
wyodrębni wszystkie elementy poza podanymi w tej opcji.
.Sp
Uwaga: Opcja ta jest przestarzała.
.IP "\fBdoctype\fR" 4
.IX Item "doctype"
Łańcuch znaków, który będziemy próbowali dopasować do pierwszej linii typu
dokumentu (doctype; jeśli zdefiniowany). Jeśli nie pasuje, to zostanie
wypisane ostrzeżenie, że dokument może mieć niepoprawny typ.
.IP "\fBaddlang\fR" 4
.IX Item "addlang"
Łańcuch znaków oznaczający ścieżkę (np. <bbb><aaa>))
znacznika, do którego powinien zostać dodany atrybut lang=\*(L"...\*(R" . Język jest
zdefiniowany jako nazwa bazowa pliku \s-1PO\s0 z usuniętym rozszerzeniem .po.
.IP "\fBtags\fR" 4
.IX Item "tags"
Rozdzielona spacjami lista elementów, które mają być przetłumaczone lub
opuszczone. Domyślnie podane elementy będę opuszczone, ale użycie opcji
\&\*(L"tagsonly\*(R" oznacza, że podane elementy będą jedynymi elementami
włączonymi. Elementy muszą mieć postać <aaa>, jednak można połączyć
kilka z nich (<bbb><aaa>), aby określić, że zawartość
elementu <aaa> będzie przetłumaczona tylko wtedy, gdy sam element
jest zawarty w elemencie <bbb>.
.Sp
Można podać także kilka opcji elementów dodając pewne znaki na początku
hierarchii elementów. Na przykład można dodać \*(L"w\*(R" (zawijaj tekst) lub \*(L"W\*(R"
(nie zawijaj), aby nadpisać domyślne zachowanie określone przez globalną
opcję \*(L"wrap\*(R".
.Sp
Przykład: W<chapter><title>
.Sp
Uwaga: Opcja ta jest przestarzała. Prosimy zamiast niej używać opcji
\&\fBtranslated\fR i \fBuntranslated\fR.
.IP "\fBattributes\fR" 4
.IX Item "attributes"
Space-separated list of tag's attributes you want to translate.  You can
specify the attributes by their name (for example, \*(L"lang\*(R"), but you can
prefix it with a tag hierarchy, to specify that this attribute will only be
translated when it's in the specified tag. For example:
<bbb><aaa>lang specifies that the lang attribute will only
be translated if it's in an <aaa> tag, and it's in a <bbb>
tag.
.IP "\fBfoldattributes\fR" 4
.IX Item "foldattributes"
Nie tłumaczy atrybutów elementów włączanych. Zamiast tego zastępuje
wszystkie atrybuty elementu przez po4a\-id=<id>.
.Sp
Jest to użyteczne w przypadku atrybutów, które nie powinny być tłumaczone \-
upraszcza komunikaty do tłumaczenia i zapobiega pomyłkom tłumaczy.
.IP "\fBcustomtag\fR" 4
.IX Item "customtag"
Rozdzielona spacjami lista elementów, które nie powinny być traktowane jako
elementy.Tagi te są traktowane jako włączane i nie muszą być zamykane.
.IP "\fBbreak\fR" 4
.IX Item "break"
Rozdzielona spacjami lista elementów, które powinny przerwać
sekwencję. Domyślnie wszystkie elementy przerywają sekwencję.
.Sp
The tags must be in the form <aaa>, but you can join some (<bbb><aaa>), if a
tag (<aaa>) should only be considered when it's within another tag (<bbb>).
.IP "\fBinline\fR" 4
.IX Item "inline"
Rozdzielona spacjami lista elementów, które powinny zostać potraktowane jako
włączane. Domyślnie wszystkie elementy przerywają sekwencję.
.Sp
The tags must be in the form <aaa>, but you can join some (<bbb><aaa>), if a
tag (<aaa>) should only be considered when it's within another tag (<bbb>).
.IP "\fBplaceholder\fR" 4
.IX Item "placeholder"
Rozdzielona spacjami lista elementów, które powinny zostać potraktowane jako
wypełniacze miejsca (placeholder). Wypełniacze miejsca nie przerywają
sekwencji, jednak ich zawartość jest tłumaczona osobno.
.Sp
Położenie wypełniaczy miejsca w bloku będzie oznaczone łańcuchem znaków
podobnym do:
.Sp
.Vb 1
\&  <placeholder type=\e"footnote\e" id=\e"0\e"/>
.Ve
.Sp
The tags must be in the form <aaa>, but you can join some (<bbb><aaa>), if a
tag (<aaa>) should only be considered when it's within another tag (<bbb>).
.IP "\fBnodefault\fR" 4
.IX Item "nodefault"
Rozdzielona spacjami lista elementów, których moduł nie powinien próbować
domyślnie umieszczać jakiejkolwiek kategorii.
.IP "\fBcpp\fR" 4
.IX Item "cpp"
Wspiera dyrektywy preprocesora C. Jeśli opcja zostanie włączona, po4a będzie
przetwarzał dyrektywy preprocesora jako separatory akapitów. Jest to ważne,
jeśli plik \s-1XML\s0 jest przetwarzany przez preprocesor, ponieważ jeśli nie użyje
się tej opcji, a dyrektywy preprocesora trafią w środek linii, to po4a
przyjmie, ża należą do bieżącego paragramu, co spowoduje, że preprocesor ich
już nie rozpozna. Uwaga: dyrektywy preprocesora muszą być umieszczone między
elementami (nie mogą rozdzielać elementu).
.IP "\fBtranslated\fR" 4
.IX Item "translated"
Rozdzielona spacjami lista elementów do przetłumaczenia.
.Sp
The tags must be in the form <aaa>, but you can join some (<bbb><aaa>), if a
tag (<aaa>) should only be considered when it's within another tag (<bbb>).
.Sp
Można podać także kilka opcji elementów dodając pewne znaki na początku
hierarchii elementów. Na przykład można dodać \*(L"w\*(R" (zawijaj tekst) lub \*(L"W\*(R"
(nie zawijaj), aby nadpisać domyślne zachowanie określone przez globalną
opcję \*(L"wrap\*(R".
.Sp
Przykład: W<chapter><title>
.IP "\fBuntranslated\fR" 4
.IX Item "untranslated"
Rozdzielona spacjami lista elementów, które nie mają być tłumaczone.
.Sp
The tags must be in the form <aaa>, but you can join some (<bbb><aaa>), if a
tag (<aaa>) should only be considered when it's within another tag (<bbb>).
.IP "\fBdefaulttranslateoption\fR" 4
.IX Item "defaulttranslateoption"
Domyślne kategorie tych elementów które nie są tłumaczone (translated),
nietłumaczone (untranslated), przerywaczami (break), włączane (inline), ani
wypełniaczami miejsca (placeholder).
.Sp
Jest to zbiór liter:
.RS 4
.IP "\fIw\fR" 4
.IX Item "w"
Elementy powinny być przetłumaczone i można zmienić formatowanie zawartości.
.IP "\fIW\fR" 4
.IX Item "W"
Elementy powinny być tłumaczone, ale nie można zmieniać formatowania ich
zawartości.
.IP "\fIi\fR" 4
.IX Item "i"
Elementy powinny tłumaczone jako włączane.
.IP "\fIp\fR" 4
.IX Item "p"
Elementy powinny być tłumaczone jako wypełniacze miejsca.
.RE
.RS 4
.RE
.SH "PRACA Z MODUŁAMI POCHODNYMI"
.IX Header "PRACA Z MODUŁAMI POCHODNYMI"
.SS "\s-1DEFINIOWANIE\s0 ELEMENTÓW I ATRYBUTÓW \s-1DO\s0 PRZETŁUMACZENIA"
.IX Subsection "DEFINIOWANIE ELEMENTÓW I ATRYBUTÓW DO PRZETŁUMACZENIA"
Najprostszą zmianą jest zdefiniowanie elementów i atrybutów, które parser ma
przetłumaczyć. Powinno być to zrobione w funkcji initialize. Najpierw trzeba
wywołać główną funkcję initialize, aby otrzymać opcje linii poleceń, a
następnie dodać własne definicje do hasha opcji. Aby obsłużyć nowe opcje w
linii poleceń, trzeba je zdefiniować przed wywołaniem głównej funkcji
initialize:
.PP
.Vb 6
\&  $self\->{options}{\*(Aqnew_option\*(Aq}=\*(Aq\*(Aq;
\&  $self\->SUPER::initialize(%options);
\&  $self\->{options}{\*(Aq_default_translated\*(Aq}.=\*(Aq <p> <head><title>\*(Aq;
\&  $self\->{options}{\*(Aqattributes\*(Aq}.=\*(Aq <p>lang id\*(Aq;
\&  $self\->{options}{\*(Aq_default_inline\*(Aq}.=\*(Aq <br>\*(Aq;
\&  $self\->treat_options;
.Ve
.PP
W modułach pochodnych należy używać opcji \fB_default_inline\fR,
\&\fB_default_break\fR, \fB_default_placeholder\fR, \fB_default_translated\fR,
\&\fB_default_untranslated\fR oraz \fB_default_attributes\fR. Pozwala to
użytkownikom zmienić domyślne zachowanie za pomocą opcji linii poleceń.
.SS "\s-1NADPISYWANIE FUNKCJI\s0 found_string"
.IX Subsection "NADPISYWANIE FUNKCJI found_string"
Innym prostym krokiem jest nadpisanie funkcji \*(L"found_string\*(R", która
otrzymuje od parsera wyciągnięte komunikaty do przetłumaczenia. Tutaj można
kontrolować, które komunikaty tłumaczyć, oraz przeprowadzić na nich
transformacje zarówno przed tłumaczeniem, jak i po nim.
.PP
Otrzymuje wyodrębniony tekst, odnośnik do miejsca jego znalezienia i hash
zawierające dodatkowe informacje kontrolujące, które komunikaty są do
przetłumaczenia, jak je przetłumaczyć i jak wygenerować komentarz.
.PP
Zawartość tych opcji zależy od rodzaju łańcucha znaków (podanego we
rekordzie tego hasha):
.ie n .IP "type=""tag""" 4
.el .IP "type=``tag''" 4
.IX Item "type=tag"
Znaleziony łańcuch znaków jest zawartością elementu, który można
przetłumaczyć. Wpis \*(L"tag_options\*(R" zawiera znaki opcji wyciągnięte z początku
hierarchii elementów z opcji \*(L"tags\*(R" modułu.
.ie n .IP "type=""attribute""" 4
.el .IP "type=``attribute''" 4
.IX Item "type=attribute"
Oznacza, że znaleziony tekst jest wartością atrybutu możliwego do
tłumaczenia. Wpis \*(L"attribute\*(R" zawiera nazwę atrybutu.
.PP
Funkcja musi zwrócić tekst zastępujący w tłumaczonym dokumencie tekst
oryginalny. Podstawowy przykład takiej funkcji:
.PP
.Vb 6
\&  sub found_string {
\&    my ($self,$text,$ref,$options)=@_;
\&    $text = $self\->translate($text,$ref,"type ".$options\->{\*(Aqtype\*(Aq},
\&      \*(Aqwrap\*(Aq=>$self\->{options}{\*(Aqwrap\*(Aq});
\&    return $text;
\&  }
.Ve
.PP
Kolejny prosty przykład można znaleźć w nowym module Dia, który tylko
filtruje niektóre łańcuchy znaków.
.SS "\s-1MODYFIKOWANIE\s0 TYPÓW ELEMENTÓW (\s-1DO ZROBIENIA\s0)"
.IX Subsection "MODYFIKOWANIE TYPÓW ELEMENTÓW (DO ZROBIENIA)"
This is a more complex one, but it enables a (almost) total customization.
It's based on a list of hashes, each one defining a tag type's behavior. The
list should be sorted so that the most general tags are after the most
concrete ones (sorted first by the beginning and then by the end keys). To
define a tag type you'll have to make a hash with the following keys:
.IP "\fBbeginning\fR" 4
.IX Item "beginning"
Określa początek elementu, po \*(L"<\*(R".
.IP "\fBend\fR" 4
.IX Item "end"
Określa koniec elementu, przed \*(L">\*(R".
.IP "\fBbreaking\fR" 4
.IX Item "breaking"
Mówi, że jest to klasa elementów rozdzielających. Element nierozdzielający
(inline) jest to taki element, które może być pobrany jako zawartość innego
elementu. Może to przyjmować wartości false (0), true (1) lub
undefinded. Jeśli zostanie jako undefined, to trzeba będzie zdefiniować
funkcje f_breaking, mówiącą, czy podany element tej klasy jest elementem
rozdzielającym, czy też nie.
.IP "\fBf_breaking\fR" 4
.IX Item "f_breaking"
Jest to funkcja, która powie, czy następny element jest elementem
zamykającym, czy też nie. Powinna być zdefiniowana, jeśli nie zdefiniowano
opcji \fBbreaking\fR.
.IP "\fBf_extract\fR" 4
.IX Item "f_extract"
Jeśli wartością tego klucza pozostanie undefined, to ogólne funkcje
wyodrębniające będą musiały wyodrębnić ten element samodzielnie. Jest to
użyteczne dla elementów, które mogą zawierać w sobie inne elementy lub
specjalne struktury, tak żeby główny parser nie oszalał. Funkcja otrzymuje
flagę logiczną mówiącą, czy element powinien zostać usunięty z wejściowego
strumienia, czy też nie.
.IP "\fBf_translate\fR" 4
.IX Item "f_translate"
Funkcja otrzymuje element (w formacie \fIget_string_until()\fR ) i zwraca
przetłumaczony element (przetłumaczone atrybuty lub wszystkie potrzebne
transformacje) jako pojedynczy łańcuch znaków.
.SH "FUNKCJE WEWNĘTRZNE, używane do pisania parserów"
.IX Header "FUNKCJE WEWNĘTRZNE, używane do pisania parserów"
.SS "\s-1PRACA Z ELEMENTAMI\s0"
.IX Subsection "PRACA Z ELEMENTAMI"
.IP "\fIget_path()\fR" 4
.IX Item "get_path()"
Funkcja zwraca ścieżkę bieżącego elementu od korzenia dokumentu w formacie
<html><body><p>.
.Sp
Jako argument można przekazać dodatkową tablicę elementów (bez
nawiasów). Elementy te zostaną dołączone na końcu bieżącej ścieżki.
.IP "\fItag_type()\fR" 4
.IX Item "tag_type()"
Funkcja zwraca indeks z listy tag_types, który odpowiada następnemu
elementowi ze strumienia wejściowego, lub \-1 gdy dotarła do końca pliku
wejściowego.
.IP "extract_tag($$)" 4
.IX Item "extract_tag($$)"
Funkcja zwraca następny element ze strumienia wejściowego bez początku i
końca, w postaci tablicy i zarządza odnośnikami do pliku
wejściowego. Przyjmuje dwa parametry: typ elementu (zwrócone przez tag_type)
i wartość logiczną, określającą, czy element powinien zostać usunięty ze
strumienia wejściowego.
.IP "get_tag_name(@)" 4
.IX Item "get_tag_name(@)"
Funkcja zwraca nazwę następnego elementu przekazanego jako argument w formie
tablicy zwracanej przez extract_tag.
.IP "\fIbreaking_tag()\fR" 4
.IX Item "breaking_tag()"
Funkcja zwraca wartość logiczną, która mówi, czy następny element jest
elementem rozdzielającym, czy nie (element inline). Nie zmienia strumienia
wejściowego.
.IP "\fItreat_tag()\fR" 4
.IX Item "treat_tag()"
Funkcja tłumaczy następny element z źródłowego strumienia, używając do tego
własnych funkcji każdego typu elementu.
.IP "tag_in_list($@)" 4
.IX Item "tag_in_list($@)"
Funkcja zwraca wartość będącą łańcuchem znaków, mówiącą, czy jej pierwszy
argument (hierarchia elementów) pasuje do któregokolwiek elementu jej
drugiego argumentu (lista elementów lub hierarchii elementów). Zwraca 0,
jeśli nie pasuje. W przeciwnym razie zwraca opcje dopasowanego elementy
(znaki z początku elementu) lub 1 (jeśli element nie miał opcji).
.SS "\s-1PRACA Z ATRYBUTAMI\s0"
.IX Subsection "PRACA Z ATRYBUTAMI"
.IP "treat_attributes(@)" 4
.IX Item "treat_attributes(@)"
Funkcja obsługuje tłumaczenia atrybutów elementów. Pobiera element bez
znaczników początku/końca, a następnie szuka atrybutów, tłumaczy te spośród
nich, które są przeznaczone do tłumaczenia (podane w opcji \*(L"attributes\*(R"
modułu). Zwraca prosty tekst z przetłumaczonym elementem.
.SS "\s-1PRACA Z OPCJAMI\s0 MODUŁU"
.IX Subsection "PRACA Z OPCJAMI MODUŁU"
.IP "\fItreat_options()\fR" 4
.IX Item "treat_options()"
Funkcja wypełnia wewnętrzne struktury zawierające elementy, atrybuty i dane
włączane wraz z opcjami modułu (podanymi w linii poleceń lub w funkcji
initialize).
.SS "\s-1POBIERANIE TEKSTU Z PLIKU\s0 WEJŚCIOWEGO"
.IX Subsection "POBIERANIE TEKSTU Z PLIKU WEJŚCIOWEGO"
.IP "get_string_until($%)" 4
.IX Item "get_string_until($%)"
Funkcja zwraca tablicę z liniami (i odnośnikami) z wejściowego dokumentu
dopóki nie znajdzie pierwszego argumentu. Drugim argumentem jest hash
opcji. Wartość 0 oznacza wyłączenie (domyślnie), a 1 \- włączenie.
.Sp
Poprawne opcje:
.RS 4
.IP "\fBinclude\fR" 4
.IX Item "include"
Powoduje, że zwracana tablica zawiera szukany tekst.
.IP "\fBremove\fR" 4
.IX Item "remove"
Usuwa zwrócony strumień z wejścia
.IP "\fBunquoted\fR" 4
.IX Item "unquoted"
Zapewnia, że szukany tekst nie jest umieszczony w cudzysłowach.
.RE
.RS 4
.RE
.IP "skip_spaces(\e@)" 4
.IX Item "skip_spaces(@)"
Funkcja otrzymuje jako argument odnośnik do akapitu (w formacie zwróconym
przez get_string_until), pomija spacje nagłówka i zwraca prosty łańcuch
znaków.
.IP "join_lines(@)" 4
.IX Item "join_lines(@)"
Funkcja zwraca prosty łańcuch znaków zawierający tekst z tablicy argumentu
(odrzucając odnośniki).
.SH "STATUS MODUŁU"
.IX Header "STATUS MODUŁU"
Ten moduł umożliwia tłumaczenie elementów i atrybutów.
.SH "LISTA RZECZY DO ZROBIENIA"
.IX Header "LISTA RZECZY DO ZROBIENIA"
\&\s-1DOCTYPE \s0(\s-1ENCJE\s0)
.PP
Istnieje minimalna obsługa tłumaczeń encji. Są one tłumaczone jako całość, a
elementy nie są brane pod uwagę. Encje wieloliniowe  nie są wspierane, a
podczas tłumaczenia tekst encji jest zawsze zawijany.
.PP
\&\s-1MODYFIKOWANIE\s0 TYPÓW ELEMENTÓW \s-1ODZIEDZICZONYCH\s0 MODUŁÓW (przenieść strukturę
tag_types do hasha \f(CW$self\fR?)
.SH "ZOBACZ TAKŻE"
.IX Header "ZOBACZ TAKŻE"
\&\fILocale::Po4a::TransTractor\fR\|(3pm),
\&\fIpo4a\fR\|(7)
.SH "AUTORZY"
.IX Header "AUTORZY"
.Vb 2
\& Jordi Vilalta <jvprat@gmail.com>
\& Nicolas François <nicolas.francois@centraliens.net>
.Ve
.SH "TŁUMACZENIE"
.IX Header "TŁUMACZENIE"
.Vb 1
\& Robert Luberda <robert@debian.org>
.Ve
.SH "PRAWA AUTORSKIE I LICENCJA"
.IX Header "PRAWA AUTORSKIE I LICENCJA"
.Vb 2
\& Copyright (c) 2004 by Jordi Vilalta  <jvprat@gmail.com>
\& Copyright (c) 2008\-2009 by Nicolas François <nicolas.francois@centraliens.net>
.Ve
.PP
Program jest wolnym oprogramowaniem; można go redystrybuować i/lub
modyfikować zgodnie z warunkami licencji \s-1GPL \s0(patrz plik \s-1COPYING\s0).
