.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" 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 "2023-01-03" "Po4a-hulpmiddelen" "Po4a-hulpmiddelen" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAAM" .IX Header "NAAM" Locale::Po4a::Xml \-XML\-documenten en afgeleiden van/naar PO-bestanden converteren .SH "BESCHRIJVING" .IX Header "BESCHRIJVING" Het doel van het project po4a (\s-1PO\s0 voor alles) is om de vertaalwerkzaamheden (en interessanter nog, het onderhoud van vertalingen) te vergemakkelijken met behulp van gettext-hulpmiddelen in domeinen waarin deze niet meteen verwacht worden, zoals documentatie. .PP Locale::Po4a::Xml is een module ter ondersteuning van de vertaling van XML-documenten naar andere [menselijke] talen. Ze kan ook gebruikt worden als basis voor het bouwen van modules voor op \s-1XML\s0 gebaseerde documenten. .SH "VERTALEN MET PO4A::XML" .IX Header "VERTALEN MET PO4A::XML" Deze module kan rechtstreeks gebruikt worden voor het verwerken van generieke \s-1XML\s0 documenten. Zij extraheert al de inhoud uit tags zonder de attributen, omdat daar in de meeste op \s-1XML\s0 gebaseerde documenten de tekst geschreven staat. .PP Er zijn bepaalde opties (die in het volgende gedeelte beschreven worden) die dit gedrag kunnen aanpassen. Indien deze module niet beantwoordt aan de indeling van uw document, wordt u aangemoedigd om op basis van deze module uw eigen module te schrijven, met de beschrijving van de details van uw indeling. Raadpleeg het gedeelte \fB\s-1AFGELEIDE MODULES SCHRIJVEN\s0\fR, hieronder, voor de beschrijving van de werkwijze. .SH "MOGELIJKE OPTIES BIJ DEZE MODULE" .IX Header "MOGELIJKE OPTIES BIJ DEZE MODULE" De algemene debug-optie doet deze module de uitgesloten tekstfragmenten weergeven, om zo te kunnen zien of ze niets belangrijk overslaat. .PP De volgende opties zijn specifiek voor deze module: .IP "\fBnostrip\fR" 4 .IX Item "nostrip" Voorkomt het wegnemen van spaties rond de geëxtraheerde tekstfragmenten. .IP "\fBwrap\fR" 4 .IX Item "wrap" Canoniseert het te vertalen tekstfragment vanuit de veronderstelling dat witruimte niet belangrijk is, en past regelafbreking toe voor het vertaalde document. Deze optie kan overstegen worden door aangepaste tag-opties. Zie de optie \fBtranslated\fR hieronder. .IP "\fBunwrap_attributes\fR" 4 .IX Item "unwrap_attributes" Bij attributen wordt standaard regelafbreking toegepast. Deze optie zet regelafbreking uit. .IP "\fBcaseinsensitive\fR" 4 .IX Item "caseinsensitive" Het zorgt ervoor dat het zoeken naar tags en attributen niet hoofdlettergevoelig gebeurt. Indien dit gedefinieerd wordt zal het taAL en <\s-1BOEK\s0>Taal behandelen als taal. .IP "\fBescapequotes\fR" 4 .IX Item "escapequotes" Aanhalingstekens in uitvoertekstfragmenten maskeren met een maskeerteken. Dit is bijvoorbeeld nodig om tekstfragmentbronmateriaal te creëren dat gebruikt zal worden door bouwgereedschap op Android . .Sp Zie ook: https://developer.android.com/guide/topics/resources/string\-resource.html .IP "\fBincludeexternal\fR" 4 .IX Item "includeexternal" Als deze optie gedefinieerd werd, worden externe entiteiten meegenomen in het gegenereerde (vertaalde) document en voor het extraheren van tekstfragmenten. Indien ze niet gedefinieerd werd, zult u externe entiteiten afzonderlijk moeten vertalen als onafhankelijke documenten. .IP "\fBontagerror\fR" 4 .IX Item "ontagerror" Deze optie definieert het gedrag van de module wanneer zij met een ongeldige XML-syntaxis geconfronteerd wordt (een afsluitende tag die niet overeenkomt met de laatste openende tag). Zij kan de volgende waarden hebben: .RS 4 .IP "\fIfail\fR" 4 .IX Item "fail" Dit is de standaardwaarde. De module zal afsluiten met een foutmelding. .IP "\fIwarn\fR" 4 .IX Item "warn" De module zal doorgaan en een waarschuwing geven. .IP "\fIsilent\fR" 4 .IX Item "silent" De module zal zonder waarschuwen doorgaan. .RE .RS 4 .Sp Wees voorzichtig met het gebruiken van deze optie. Algemeen wordt aangeraden om het invoerbestand te repareren. .RE .IP "\fBtagsonly\fR" 4 .IX Item "tagsonly" Opmerking: deze optie is verouderd. .Sp Extraheert enkel die tags welke gespecificeerd werden in de optie \fBtags\fR. Anders zal ze alle tags extraheren, behalve die welke gespecificeerd werden. .IP "\fBdoctype\fR" 4 .IX Item "doctype" Tekenreeks waarmee naar een overeenkomst gezocht wordt met de eerste regel van het doctype van het document (voor zover gedefinieerd). Is dit niet succesvol, dan wordt de waarschuwing gegeven dat het document mogelijk van een slecht documenttype is. .IP "\fBaddlang\fR" 4 .IX Item "addlang" Tekenreeks die het pad (bijv. ) aangeeft van een tag waaraan een attribuut lang=\*(L"...\*(R" zal toegevoegd worden. De taal zal gedefinieerd worden als de basisnaam voor het PO-bestand zonder de extensie .po. .IP "\fBoptionalclosingtag\fR" 4 .IX Item "optionalclosingtag" Booleaanse operator die aangeeft of afsluitende tags facultatief zijn (zoals bij \s-1HTML\s0). Standaard geeft het ontbreken van een afsluitende tag aanleiding tot een fout, die afgehandeld wordt volgens \fBontagerror\fR. .IP "\fBtags\fR" 4 .IX Item "tags" Opmerking: deze optie is verouderd. In de plaats daarvan moet u de opties \fBtranslated\fR en \fBuntranslated\fR gebruiken. .Sp Door spaties gescheiden lijst met tags die u wilt vertalen of overslaan. Standaard worden de opgegeven tags uitgesloten, maar indien u de optie \*(L"tagsonly\*(R" gebruikt, zullen de gespecificeerde tags de enige zijn die opgenomen worden. De tags moeten de vorm hebben, maar u kunt er samenvoegen () om aan te geven dat de inhoud van de tag enkel vertaald zal worden wanneer deze zich binnenin tag bevindt. .Sp U kunt ook tag-opties opgeven door bepaalde tekens te plaatsen vooraan aan de tag\-hiërarchie. U kunt er bijvoorbeeld \fIw\fR (wrap \- regelafbreking) of \fIW\fR (don't wrap \- geen regelafbreking) plaatsen om het standaardgedrag te overstijgen dat door de globale optie \fBwrap\fR gespecificeerd wordt. .Sp Bijvoorbeeld: W .IP "\fBattributes\fR" 4 .IX Item "attributes" Door spaties gescheiden lijst met tagattributen die u wilt vertalen. U kunt het attribuut opgeven bij zijn naam (bijvoorbeeld \*(L"lang\*(R"), maar u kunt het laten voorafgaan door een tag\-hiërarchie, om aan te geven dat dit attribuut enkel vertaald zal worden wanneer het zich binnen de opgegeven tag bevindt. Bijvoorbeeld: <bbb><aaa>lang specificeert dat het attribuut lang (taal) enkel vertaald zal worden als het zich binnen een tag <aaa> binnenin tag <bbb> bevindt. .IP "\fBfoldattributes\fR" 4 .IX Item "foldattributes" Geen attributen vertalen die binnenin de in de tekst geïntegreerde tags (inline tags) staan. In de plaats daarvan alle attributen van een tag vervangen door po4a\-id=<id>. .Sp Dit is nuttig wanneer attributen niet vertaald moeten worden, omdat dit de tekstfragmenten voor vertalers eenvoudiger maakt en typefouten vermijdt. .IP "\fBcustomtag\fR" 4 .IX Item "customtag" Door spaties gescheiden lijst met tags die niet als tags mogen worden behandeld. Deze tags worden behandeld als geïntegreerd in de tekst (inline tags) en moeten niet gesloten worden. .IP "\fBbreak\fR" 4 .IX Item "break" Door spaties gescheiden lijst met tags die het tekstfragment afbreken. Standaard breken alle tags het fragment af. .Sp De tags moeten de vorm <aaa> hebben, maar u kunt er enkele samenvoegen (<bbb><aaa>), indien enkel rekening gehouden moet worden met een tag wanneer deze zich binnen een andere tag (<bbb>) bevindt. .Sp Merk op dat een tag slechts vermeld mag worden bij één van de volgende instellingsreeksen: \fBbreak\fR, \fBinline\fR \fBplaceholder\fR of \fBcustomtag\fR. .IP "\fBinline\fR" 4 .IX Item "inline" Door spaties gescheiden lijst met tags die behandeld moeten worden als geïntegreerd in de tekst (inline tag). Standaard sluit elke tag een tekstfragment af. .Sp De tags moeten de vorm <aaa> hebben, maar u kunt er enkele samenvoegen (<bbb><aaa>), indien enkel rekening gehouden moet worden met een tag wanneer deze zich binnen een andere tag (<bbb>) bevindt. .IP "\fBplaceholder\fR" 4 .IX Item "placeholder" Door spaties gescheiden lijst met tags die als tijdelijke aanduiding (placeholder) moeten worden behandeld. Tijdelijke aanduidingen sluiten geen tekstfragment af, maar de inhoud van tijdelijke aanduidingen wordt apart vertaald. .Sp De plaats van de tijdelijke aanduiding (placeholder) in zijn tekstblok wordt gemarkeerd met een tekenreeks die vergelijkbaar is met: .Sp .Vb 1 \& <placeholder type=\e"footnote\e" id=\e"0\e"/> .Ve .Sp De tags moeten de vorm <aaa> hebben, maar u kunt er enkele samenvoegen (<bbb><aaa>), indien enkel rekening gehouden moet worden met een tag wanneer deze zich binnen een andere tag (<bbb>) bevindt. .IP "\fBbreak-pi\fR" 4 .IX Item "break-pi" Standaard worden verwerkingsinstructies (d.w.z. tags in de vorm van \f(CW\*(C`<? ... ?>\*(C'\fR) behandeld als in de tekst geïntegreerde tags (inline tags). Geef deze optie mee als u wilt dat verwerkingsinstructies behandeld worden als tags die een tekstfragment afsluiten. Merk op dat onverwerkte PHP-tags door de ontleder behandeld worden als verwerkingsinstructies. .IP "\fBnodefault\fR" 4 .IX Item "nodefault" Door spaties gescheiden lijst met tags die de module niet standaard in een categorie zou moeten proberen te plaatsen. .Sp Als u een tag heeft die door de subklasse van deze module zijn standaardinstelling krijgt, maar u een alternatieve instelling wilt instellen, moet u die tag vermelden als onderdeel van de instellingsreeks \fBnodefault\fR. .IP "\fBcpp\fR" 4 .IX Item "cpp" C\-preprocessorinstructies ondersteunen. Indien deze optie ingesteld is, zal po4a preprocessorinstructies beschouwen als alinea-afbrekers. Dit is belangrijk wanneer het XML-bestand moet voorbewerkt worden, omdat deze instructies anders geplaatst zouden kunnen worden in het midden van een regel mocht po4a ze beschouwen als behorend tot de huidige alinea, waardoor ze niet herkend zouden worden door de preprocessor. Merk op dat de preprocessorinstructies enkel tussen tags mogen staan (zij mogen geen tag verbreken). .IP "\fBtranslated\fR" 4 .IX Item "translated" Door spaties gescheiden lijst met tags die u wilt vertalen. .Sp De tags moeten de vorm <aaa> hebben, maar u kunt er enkele samenvoegen (<bbb><aaa>), indien enkel rekening gehouden moet worden met een tag wanneer deze zich binnen een andere tag (<bbb>) bevindt. .Sp U kunt ook een aantal tag-opties opgeven door bepaalde tekens te plaatsen vóór de tag\-hiërarchie. Dit overstijgt het standaardgedrag dat gespecificeerd wordt door de algemene opties \fBwrap\fR en \fBdefaulttranslateoption\fR. .RS 4 .IP "\fIw\fR" 4 .IX Item "w" Tags moeten vertaald worden en op de inhoud kan regelafbreking toegepast worden. .IP "\fIW\fR" 4 .IX Item "W" Tags moeten vertaald worden maar de regelafbreking mag niet veranderen. .IP "\fIi\fR" 4 .IX Item "i" Tags moeten geïntegreerd in de tekst vertaald worden. .IP "\fIp\fR" 4 .IX Item "p" Tags moeten vertaald worden als tijdelijke aanduiding (placeholder). .RE .RS 4 .Sp Intern bekommert de XML-ontleder zich enkel om deze vier opties: \fIw\fR \fIW\fR \fIi\fR \fIp\fR. .Sp * Tags die vermeld worden in \fBbreak\fR, worden ingesteld op \fIw\fR of \fIW\fR, afhankelijk van de optie \fBwrap\fR. .Sp * Tags die vermeld worden in \fBinline\fR, worden ingesteld op \fIi\fR. .Sp * Tags die vermeld worden in \fBplaceholder\fR, worden ingesteld op \fIp\fR. .Sp * Bij tags die vermeld worden in \fBuntranslated\fR, worden geen van deze opties ingesteld. .Sp U kunt het feitelijke gedrag van interne parameters nagaan door \fBpo4a\fR aan te roepen met de optie \fB\-\-debug\fR. .Sp Bijvoorbeeld: W<chapter><title> .Sp Merk op dat een tag vermeld moet worden in één van de volgende instellingsreeksen: \fBtranslated\fR of \fBuntranslated\fR. .RE .IP "\fBuntranslated\fR" 4 .IX Item "untranslated" Door spaties gescheiden lijst met tags die u niet wilt vertalen. .Sp De tags moeten de vorm <aaa> hebben, maar u kunt er enkele samenvoegen (<bbb><aaa>), indien enkel rekening gehouden moet worden met een tag wanneer deze zich binnen een andere tag (<bbb>) bevindt. .Sp Merk op dat een in de tekst geïntegreerde (inline) vertaalbare tag binnenin een niet-vertaalde tag, behandeld wordt als een vertaalbare tag die een tekstfragment afsluit; de instelling \fIi\fR wordt verwijderd en \fIw\fR of \fIW\fR wordt ingesteld, afhankelijk van de optie \fBwrap\fR. .IP "\fBdefaulttranslateoption\fR" 4 .IX Item "defaulttranslateoption" De standaardcategorieën voor tags die niet behoren tot een van deze categorieën: translated, untranslated, break, inline, en placeholder. .Sp Dit is een reeks letters, zoals in \fBtranslated\fR gedefinieerd, en deze instelling is alleen geldig voor vertaalbare tags. .SH "AFGELEIDE MODULES SCHRIJVEN" .IX Header "AFGELEIDE MODULES SCHRIJVEN" .SS "DEFINIËREN \s-1WELKE TAGS EN ATTRIBUTEN VERTAALD MOETEN WORDEN\s0" .IX Subsection "DEFINIËREN WELKE TAGS EN ATTRIBUTEN VERTAALD MOETEN WORDEN" De eenvoudigste aanpassing bestaat erin om te definiëren welke tags en attributen u wilt laten vertalen door de ontleder. Dit moet gebeuren in de functie initialize. Eerst moet u de hoofdfunctie initialize aanroepen om de commandoregelopties te verkrijgen en dan moet u uw eigen definities toevoegen aan de hash met opties. Als u enkele nieuwe opties vanaf de commandoregel wilt bewerken, moet u ze definiëren voordat u de hoofdfunctie initialize aanroept: .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 In afgeleide modules zou u de opties \fB_default_inline\fR, \fB_default_break\fR, \fB_default_placeholder\fR, \fB_default_translated\fR, \fB_default_untranslated\fR en \fB_default_attributes\fR moeten gebruiken. Dit laat gebruikers toe met commandoregelopties het in uw module gedefinieerde standaardgedrag te overstijgen. .SS "\s-1MET COMMANDOREGELOPTIES HET STANDAARDGEDRAG OVERSTIJGEN\s0" .IX Subsection "MET COMMANDOREGELOPTIES HET STANDAARDGEDRAG OVERSTIJGEN" Indien u niet houdt van het standaardgedrag van deze xml-module en de ervan afgeleide modules, kunt u voorzien in commandoregelopties om hun gedrag te wijzigen. .PP Zie \fBLocale::Po4a::Docbook\fR\|(3pm), .SS "\s-1DE FUNCTIE\s0 found_string \s-1OVERSTIJGEN\s0" .IX Subsection "DE FUNCTIE found_string OVERSTIJGEN" Een andere eenvoudige stap bestaat erin de functie \*(L"found_string\*(R" te overstijgen. Deze functie ontvangt de geëxtraheerde tekstfragmenten van de ontleder om ze te vertalen. Daar kunt u sturen welke tekstfragmenten u wilt vertalen en kunt u deze transformeren voor of na de eigenlijke vertaling. .PP Ze ontvangt de geëxtraheerde tekst, de referentie over de plaats ervan en een hash die extra informatie bevat om te sturen welke tekstfragmenten vertaald moeten worden, hoe ze vertaald moeten worden en hoe het commentaar gegenereerd moet worden. .PP De inhoud van deze opties is afhankelijk van het soort tekstfragment (gespecificeerd in een item van deze hash): .ie n .IP "type=""tag""" 4 .el .IP "type=``tag''" 4 .IX Item "type=tag" Het aangetroffen tekstfragment is de inhoud van een vertaalbare tag. Het item \*(L"tag_options\*(R" bevat de optie-tekens die staan vóór de taghiërarchie uit de optie \*(L"tags\*(R" van de module. .ie n .IP "type=""attribute""" 4 .el .IP "type=``attribute''" 4 .IX Item "type=attribute" Betekent dat de gevonden tekenreeks de waarde van een vertaalbaar attribuut is. Het element \*(L"attribute\*(R" heeft de naam van het attribuut. .PP Het moet de tekst teruggeven die de originele tekst in het vertaalde document zal vervangen. Hier volgt een basaal voorbeeld van deze functie: .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 Er is nog een ander eenvoudig voorbeeld in de nieuwe Dia-module, die enkel bepaalde tekstfragmenten filtert. .SS "TAG-TYPES \s-1AANPASSEN\s0 (\s-1TE DOEN\s0)" .IX Subsection "TAG-TYPES AANPASSEN (TE DOEN)" Dit is complexer, maar het maakt een (bijna) totale aanpassing mogelijk. Het is gebaseerd op een reeks hashes, welke elk het gedrag definiëren van een tag-type. De reeks moet gesorteerd worden, zodat de meest algemene tags na de meer concrete komen (vooreerst gesorteerd op de sleutel beginning en dan op de sleutel end). Om een tag-type te definiëren moet u een hash maken met de volgende sleutels: .IP "\fBbeginning\fR" 4 .IX Item "beginning" Specificeert het begin van de tag, na het \*(L"<\*(R". .IP "\fBend\fR" 4 .IX Item "end" Specificeert het einde van de tag, voor het \*(L">\*(R". .IP "\fBbreaking\fR" 4 .IX Item "breaking" Dit zegt of dit een tag-klasse betreft die een tekstfragment afsluit. Een niet-afsluitende (geïntegreerde) tag is een tag die als inhoud van een andere tag kan beschouwd worden. Deze sleutel kan de waarden onwaar (0), waar (1) of niet-gedefinieerd hebben. Indien u dit ongedefinieerd laat, zult u de functie f_breaking moeten definiëren, welke zal zeggen of een concrete tag uit deze klasse een afsluitende tag is of niet. .IP "\fBf_breaking\fR" 4 .IX Item "f_breaking" Het is een functie die zegt of de volgende tag een afsluitende tag is of niet. Ze moet gedefinieerd worden als de optie \fBbreaking\fR dat niet is. .IP "\fBf_extract\fR" 4 .IX Item "f_extract" Indien u deze sleutel ongedefinieerd laat, dan zal de generieke extractiefunctie de tag zelf moeten extraheren. Hij is nuttig voor tags die andere tags of speciale structuren kunnen bevatten, zodat de hoofdontleder niet gek wordt. Deze functie ontvangt een booleaanse waarde welke zegt of deze tag al of niet verwijderd moet worden uit de invoerstroom. .IP "\fBf_translate\fR" 4 .IX Item "f_translate" Deze functie ontvangt de tag (in de indeling \fBget_string_until()\fR) en zendt de vertaalde tag terug (vertaalde attributen of alle nodige transformaties) als een enkel tekstfragment. .SH "INTERNE FUNCTIES welke gebruikt worden voor het schrijven van afgeleide ontleders" .IX Header "INTERNE FUNCTIES welke gebruikt worden voor het schrijven van afgeleide ontleders" .SS "\s-1MET TAGS WERKEN\s0" .IX Subsection "MET TAGS WERKEN" .IP "\fBget_path()\fR" 4 .IX Item "get_path()" Deze functie zendt het pad naar de huidige tag vanaf de documentbasis terug in de vorm <html><body><p>. .Sp Een extra lijst tags (zonder haakjes) kan als argument opgegeven worden. Deze padelementen worden toegevoegd aan het einde van het huidige pad. .IP "\fBtag_type()\fR" 4 .IX Item "tag_type()" Deze functie zendt de index uit de lijst tag_types terug, welke overeenkomt met de volgende tag in de invoerstroom, of \-1 indien het om einde van het invoerbestand gaat. .Sp Hier heeft de tag als structuur een begin met < en een einde met > en ze kan uit verschillende regels bestaan. .Sp Dit werkt op de lijst \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR welke indirect via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR data en referenties bevat van het invoerdocument. .IP "extract_tag($$)" 4 .IX Item "extract_tag($$)" Deze functie zendt in de vorm van een lijst de volgende tag van de invoerstroom terug, zonder het begin en het einde, voor het onderhoud van de referenties van het invoerbestand. Ze heeft twee parameters: het type tag (zoals teruggezonden door tag_type) en een booleaanse waarde welke aangeeft of de tag verwijderd moet worden uit de invoerstroom. .Sp Dit werkt op de lijst \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR welke indirect via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR data en referenties bevat van het invoerdocument. .IP "get_tag_name(@)" 4 .IX Item "get_tag_name(@)" Deze functie zendt de naam van de tag terug, welke als argument meegegeven werd, in de lijstvorm welke door extract_tag teruggezonden werd. .IP "\fBbreaking_tag()\fR" 4 .IX Item "breaking_tag()" Deze functie zendt een booleaanse waarde terug die zegt of de volgende tag uit de invoerstroom een tag is die een tekstfragment afsluit of niet (in de tekst geïntegreerde tag). Ze laat de invoerstroom intact. .IP "\fBtreat_tag()\fR" 4 .IX Item "treat_tag()" Deze functie vertaalt de volgende tag uit de invoerstroom. Ze gebruikt voor elk type tag de geëigende vertalingsfuncties. .Sp Dit werkt op de lijst \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR welke indirect via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR data en referenties bevat van het invoerdocument. .IP "tag_in_list($@)" 4 .IX Item "tag_in_list($@)" Deze functie zendt een waarde terug die zegt of het eerste argument (een tag\-hiërarchie) overeenkomt met een van de tags uit het tweede argument (een lijst met tags of tag\-hiërarchieën). Als er geen overeenkomst is, wordt 0 teruggezonden. Anders zendt ze de opties (de tekens die voor de tag staan) terug van de tag die een overeenkomst gaf of 1 (indien deze tag geen opties heeft). .SS "\s-1MET ATTRIBUTEN WERKEN\s0" .IX Subsection "MET ATTRIBUTEN WERKEN" .IP "treat_attributes(@)" 4 .IX Item "treat_attributes(@)" Deze functie verwerkt de vertaling van de attributen van de tag. Ze ontvangt de tag zonder de markeringen beginning / end en zoekt vervolgens de attributen en vertaald diegene welke vertaalbaar zijn (gespecificeerd door de optie \fBattributes\fR) van de module). Deze functie zendt een gewoon tekstfragment terug met de vertaalde tag. .SS "\s-1WERKEN MET GETAGDE INHOUD\s0" .IX Subsection "WERKEN MET GETAGDE INHOUD" .IP "\fBtreat_content()\fR" 4 .IX Item "treat_content()" Deze functie krijgt uit de invoerstroom de tekst tot aan de volgende tag die een tekstfragment afsluit (geen in de tekst geïntegreerde tag). Ze vertaalt het tekstfragment waarbij ze voor elk type tag de geëigende vertaalfuncties gebruikt. .Sp Dit werkt op de lijst \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR welke indirect via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR data en referenties bevat van het invoerdocument. .SS "\s-1MET DE MODULEOPTIES WERKEN\s0" .IX Subsection "MET DE MODULEOPTIES WERKEN" .IP "\fBtreat_options()\fR" 4 .IX Item "treat_options()" Deze functie vult de interne structuren die de tags, attributen en geïntegreerde gegevens bevatten, met de moduleopties (gespecificeerd aan de commandoregel of in de functie initialize). .SS "\s-1TEKST HALEN UIT HET INVOERDOCUMENT\s0" .IX Subsection "TEKST HALEN UIT HET INVOERDOCUMENT" .IP "get_string_until($%)" 4 .IX Item "get_string_until($%)" Deze functie zendt een lijst terug met de regels (en referenties) van het invoerdocument tot ze het eerste argument aantreft. Het tweede argument is een hash met opties. Waarde 0 betekent uitgezet (standaard) en 1 aangezet. .Sp Geldige opties zijn: .RS 4 .IP "\fBinclude\fR" 4 .IX Item "include" Dit zorgt ervoor dat de teruggezonden lijst de gezochte tekst bevat .IP "\fBremove\fR" 4 .IX Item "remove" Dit verwijdert de teruggezonden stroom uit de invoer .IP "\fBunquoted\fR" 4 .IX Item "unquoted" Dit zorgt ervoor dat de gezochte tekst zich niet tussen aanhalingstekens bevindt .IP "\fBregex\fR" 4 .IX Item "regex" Dit geeft aan dat het eerste argument een reguliere expressie is in plaats van een gewoon tekstfragment .RE .RS 4 .RE .IP "skip_spaces(\e@)" 4 .IX Item "skip_spaces(@)" Deze functie ontvangt als argument de verwijzing naar een paragraaf (in de door get_string_until teruggezonden indeling), slaat de spaties vooraan over en zendt ze terug als een gewoon tekstfragment. .IP "join_lines(@)" 4 .IX Item "join_lines(@)" Deze functie zendt een gewoon tekstfragment terug met de tekst uit de argumentenlijst (met weglating van de referenties). .SH "STATUS VAN DEZE MODULE" .IX Header "STATUS VAN DEZE MODULE" Deze module kan tags en attributen vertalen. .SH "TO-DOLIJST" .IX Header "TO-DOLIJST" \&\s-1DOCTYPE\s0 (\s-1ENTITEITEN\s0) .PP De vertaling van entiteiten wordt minimaal ondersteund. Entiteiten worden in hun geheel vertaald en met tags wordt geen rekening gehouden. Entiteiten die meerdere regels beslaan worden niet ondersteund en tijdens de vertaling wordt steeds regelafbreking toegepast. .PP TAG-TYPES \s-1UIT\s0 OVERGEËRFDE \s-1MODULES WIJZIGEN\s0 ( de structuur tag_type binnen de hash \f(CW$self\fR verplaatsen?) .SH "ZIE OOK" .IX Header "ZIE OOK" \&\fBLocale::Po4a::TransTractor\fR\|(3pm), \fBpo4a\fR\|(7) .SH "AUTEURS" .IX Header "AUTEURS" .Vb 2 \& Jordi Vilalta <jvprat@gmail.com> \& Nicolas François <nicolas.francois@centraliens.net> .Ve .SH "COPYRIGHT EN LICENTIE" .IX Header "COPYRIGHT EN LICENTIE" .Vb 2 \& Copyright © 2004 Jordi Vilalta <jvprat@gmail.com> \& Copyright © 2008\-2009 Nicolas François <nicolas.francois@centraliens.net> .Ve .PP Dit programma is vrije software; u kunt het verder verspreiden en/of aanpassen onder de bepalingen van de \s-1GPL\s0 (zie het bestand \s-1COPYING\s0).