.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" 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 >0, 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 "2020-08-19" "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" Kanonizuje komunikaty do przetłumaczenia, przyjmując, że spacje nie są ważnie i tylko służą do zawijania przetłumaczonego dokumentu. Tę opcję można nadpisać opcjami dotyczącymi własnych elementów. Patrz opis opcji \&\fBtranslated\fR poniżej. .IP "\fBunwrap_attributes\fR" 4 .IX Item "unwrap_attributes" Attributes are wrapped by default. This option disables wrapping. .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 laNG i <\s-1BOOK\s0>Lang zostaną potraktowane tak samo jak lang. .IP "\fBescapequotes\fR" 4 .IX Item "escapequotes" Escape quotes in output strings. Necessary, for example, for creating string resources for use by Android build tools. .Sp Patrz także: https://developer.android.com/guide/topics/resources/string\-resource.html .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). 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" Uwaga: Opcja ta jest przestarzała. .Sp Wyodrębnia tylko elementy podane w opcji \*(L"tags\*(R". W przeciwnym wypadku wyodrębni wszystkie elementy poza podanymi w tej opcji. .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. )) 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 "\fBoptionalclosingtag\fR" 4 .IX Item "optionalclosingtag" Boolean indicating whether closing tags are optional (as in \s-1HTML\s0). By default, missing closing tags raise an error handled according to \&\f(CW\*(C`ontagerror\*(C'\fR. .IP "\fBtags\fR" 4 .IX Item "tags" Uwaga: Opcja ta jest przestarzała. Prosimy zamiast niej używać opcji \&\fBtranslated\fR i \fBuntranslated\fR. .Sp 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ć , jednak można połączyć kilka z nich (), aby określić, że zawartość elementu będzie przetłumaczona tylko wtedy, gdy sam element jest zawarty w elemencie . .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 .IP "\fBattributes\fR" 4 .IX Item "attributes" Rozdzielona spacjami lista atrybutów elementów, które należy tłumaczyć. Można podać atrybuty, używając ich nazwy (na przykład \*(L"lang\*(R"), ale także można poprzedzić je hierarchią elementów, aby powiedzieć, że ten atrybut będzie tłumaczony tylko wtedy. gdy jest zawarty w określonym elemencie. Na przykład <bbb><aaa>lang mówi, że atrybut lang zostanie przetłumaczony, tylko jeżeli jest zawarty w elemencie <aaa>, który jest w elemencie <bbb>. .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 Elementu muszą być w postaci <aaa>, można je jednak połączyć (<bbb><aaa>), jeżeli dany element (<aaa>) powinien być rozpatrywany tylko wtedy, gdy znajduje się w innym elemencie (<bbb>). .Sp Please note a tag should be listed in only one of the \fBbreak\fR, \fBinline\fR \&\fBplaceholder\fR, or \fBcustomtag\fR setting string. .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 Elementu muszą być w postaci <aaa>, można je jednak połączyć (<bbb><aaa>), jeżeli dany element (<aaa>) powinien być rozpatrywany tylko wtedy, gdy znajduje się w innym elemencie (<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 Elementu muszą być w postaci <aaa>, można je jednak połączyć (<bbb><aaa>), jeżeli dany element (<aaa>) powinien być rozpatrywany tylko wtedy, gdy znajduje się w innym elemencie (<bbb>). .IP "\fBbreak-pi\fR" 4 .IX Item "break-pi" By default, Processing Instructions (i.e., \f(CW\*(C`<? ... ?\*(C'\fR> tags) are handled as inline tags. Pass this option if you want the \s-1PI\s0 to be handled as breaking tag. Note that unprocessed \s-1PHP\s0 tags are handled as Processing Instructions by the parser. .IP "\fBnodefault\fR" 4 .IX Item "nodefault" Rozdzielona spacjami lista elementów, których moduł nie powinien próbować domyślnie umieszczać jakiejkolwiek kategorii. .Sp If you have a tag which has its default setting by the subclass of this module but you want to set alternative setting, you need to list that tag as a part of the \fBnodefault\fR setting string. .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 Elementu muszą być w postaci <aaa>, można je jednak połączyć (<bbb><aaa>), jeżeli dany element (<aaa>) powinien być rozpatrywany tylko wtedy, gdy znajduje się w innym elemencie (<bbb>). .Sp You can also specify some tag options by putting some characters in front of the tag hierarchy. This overrides the default behavior specified by the global \fBwrap\fR and \fBdefaulttranslateoption\fR option. .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 .Sp Internally, the \s-1XML\s0 parser only cares about these four options: \fIw\fR \fIW\fR \&\fIi\fR \fIp\fR. .Sp .Vb 4 \& * Tags listed in B<break> are set to I<w> or I<W> depending on the <wrap> option. \& * Tags listed in B<inline> are set to I<i>. \& * Tags listed in B<placeholder> are set to I<p>. \& * Tags listed in B<untranslated> are without any of these options set. .Ve .Sp You can verify actual internal parameter behavior by invoking \fBpo4a\fR with \&\fB\-\-debug\fR option. .Sp Przykład: W<chapter><title> .Sp Please note a tag should be listed in either \fBtranslated\fR or \&\fBuntranslated\fR setting string. .RE .IP "\fBuntranslated\fR" 4 .IX Item "untranslated" Rozdzielona spacjami lista elementów, które nie mają być tłumaczone. .Sp Elementu muszą być w postaci <aaa>, można je jednak połączyć (<bbb><aaa>), jeżeli dany element (<aaa>) powinien być rozpatrywany tylko wtedy, gdy znajduje się w innym elemencie (<bbb>). .Sp Please note a translatable inline tag in an untranslated tag is treated as a translatable breaking tag, \fIi\fR setting is dropped and \fIw\fR or \fIW\fR is set depending on the <wrap> option. .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 This is a set of letters as defined in \fBtranslated\fR and this setting is only valid for translatable tags. .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 You should use the \fB_default_inline\fR, \fB_default_break\fR, \&\fB_default_placeholder\fR, \fB_default_translated\fR, \fB_default_untranslated\fR, and \fB_default_attributes\fR options in derivative modules. This allow users to override the default behavior defined in your module with command line options. .SS "\s-1OVERRIDE THE DEFAULT BEHAVIOR WITH COMMAND LINE OPTIONS\s0" .IX Subsection "OVERRIDE THE DEFAULT BEHAVIOR WITH COMMAND LINE OPTIONS" If you don't like the default behavior of this xml module and its derivative modules, you can provide command line options to change their behavior. .PP Patrz \fBLocale::Po4a::Docbook\fR\|(3pm), .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)" Jest to jeden z bardziej złożonych procesów, ale pozwala na (prawie) całkowite dostosowanie do własnych potrzeb. Jest oparty na liście hashów, z których każdy określa sposób zachowania się typu elementu. Lista powinna być posortowana, tak że elementy bardziej ogólne występują po bardziej szczegółowych (posortowanych najpierw po kluczach początkowych, a potem końcowych). Aby zdefiniować typ elementu, trzeba utworzyć hash zawierający następujące klucze: .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 \fBget_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 "\fBget_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 "\fBtag_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. .Sp Here, the tag has structure started by < and end by > and it can contain multiple lines. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .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. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .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 "\fBbreaking_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 "\fBtreat_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. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .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-1WORKING WITH TAGGED CONTENTS\s0" .IX Subsection "WORKING WITH TAGGED CONTENTS" .IP "\fBtreat_content()\fR" 4 .IX Item "treat_content()" This function gets the text until the next breaking tag (not inline) from the input stream. Translate it using each tag type's custom translation functions. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .SS "\s-1PRACA Z OPCJAMI\s0 MODUŁU" .IX Subsection "PRACA Z OPCJAMI MODUŁU" .IP "\fBtreat_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. .IP "\fBregex\fR" 4 .IX Item "regex" This denotes that the first argument is a regular expression rather than an plain string .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" \&\fBLocale::Po4a::TransTractor\fR\|(3pm), \&\fBpo4a\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 © 2004 Jordi Vilalta <jvprat@gmail.com> \& Copyright © 2008\-2009 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).