.\" 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 "PO4A 1p" .TH PO4A 1p "2020-08-19" "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" po4a \- in één bewerking PO-bestanden en vertaalde documenten bijwerken .SH "OVERZICHT" .IX Header "OVERZICHT" \&\fBpo4a\fR [\fIopties\fR] \fIconfiguratie_bestand\fR .SH "BESCHRIJVING" .IX Header "BESCHRIJVING" po4a (\s-1PO\s0 for anything \- Po voor alles) vergemakkelijkt het onderhoud van de vertaling van documentatie met het klassieke gettext-gereedschap. Het belangrijkste kenmerk van po4a is, dat het de vertaling van inhoud loskoppelt van de structuur van het document. Raadpleeg pagina \fBpo4a\fR\|(7) voor een welwillende introductie in dit project. .PP Wanneer u het programma \fBpo4a\fR voor de eerste maal uitvoert met enkel een configuratiebestand en de te vertalen documenten (master\- of hoofddocumenten genoemd), maakt het een POT-bestand (ook vertalingssjabloon of template genoemd) aan, dat alle vertaalbare tekstfragmenten van het document bevat in een vorm die het werk van vertalers vergemakkelijkt. .PP Deze POT-bestanden kunnen vertaald worden met een specifieke editor, zoals de \fBvertaaleditor van \s-1GNOME\s0\fR, \fBLokalize\fR van \s-1KDE\s0 of \fBpoedit\fR, of ze kunnen geïntegreerd worden in een online lokalisatieplatform, zoals \&\fBweblate\fR of \fBpootle\fR. Het resultaat van de vertaling is een reeks PO-bestanden, één per taal. .PP Wanneer u het programma \fBpo4a\fR uitvoert met de hoofddocumenten en de PO-bestanden, produceert het de vertaalde documenten door de vertaalde inhoud (te vinden in de PO-bestanden) in te voeren in de structuur van het originele hoofddocument. .PP Indien de hoofddocumenten intussen gewijzigd werden, zal po4a de \s-1PO\-\s0 en POT-bestanden daaraan aanpassen, zodat de vertalers de wijzigingen makkelijk kunnen vinden en hun werk kunnen bijwerken. Afhankelijk van je instellingen zal po4a de gedeeltelijk vertaalde documenten verwijderen of een document aanmaken met een mengeling van Engelse (voor de nieuwe of gewijzigde paragrafen) tekstfragmenten en fragmenten in de doeltaal (voor paragrafen waarvan de vertaling zich reeds in het PO-bestand bevindt). .PP Standaard worden de vertaalde documenten geproduceerd wanneer minstens 80% van de inhoud ervan vertaald is (zie de optie \fI\-\-keep\fR hieronder). Vertalingen verwijderen van zodra ze niet 100% zijn, kan ontmoedigend werken voor vertalers, terwijl \*(L"vertalingen\*(R" aanbieden die te onvolledig zijn, problematisch kan zijn voor de eindgebruiker. .SS "Grafisch overzicht" .IX Subsection "Grafisch overzicht" .Vb 11 \& hoofddocumenten \-\-\-+\-\-\-\->\-\-\-\-\-\-\-\->\-\-\-\-\-\-\-\-\-+ \& (doc schrijven) | | \& V (po4a uitvoeren) >\-\-\-\-\-+\-\-> vertalingen \& | | | \& bestaande PO\-best. \-\->\-\->bijgewerkte PO\-best. >\-+ | \& ^ | | \& | V | \& +\-\-\-\-\-\-\-\-\-\-<\-\-\-\-\-\-\-\-\-<\-\-\-\-\-\-\-+ ^ \& (handmatig vertaalproces) | \& | \& addendum \-\->\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ .Ve .PP De hoofddocumenten worden door de documentatiemakers geschreven. Veranderingen worden door po4a automatisch gereflecteerd in de PO-bestanden, welke dan bijgewerkt worden door de vertalers. Alle wijzigingen aan de PO-bestanden (manueel of door po4a) worden automatisch gereflecteerd in de vertaalde documenten. U kunt dit gedrag nabootsen door de scripts \fBpo4a\-updatepo\fR\|(1) en \fBpo4a\-translate\fR\|(1) te gebruiken in makefiles, maar al vlug wordt dit hinderlijk en repetitief (zie \&\fBpo4a\fR\|(7)). Het wordt sterk aanbevolen om het programma \fBpo4a\fR te gebruiken in uw bouwproces. .SH "OPTIES" .IX Header "OPTIES" .IP "\fB\-k\fR, \fB\-\-keep\fR" 4 .IX Item "-k, --keep" Minimale drempelwaarde, uitgedrukt in vertaald percentage, om het resulterende bestand te behouden (d.w.z. neer te schrijven) (standaard: 80). D.w.z. dat bestanden standaard minstens 80% vertaald moeten zijn om naar schijf geschreven te worden. .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Een korte hulptekst tonen. .IP "\fB\-M\fR, \fB\-\-master\-charset\fR" 4 .IX Item "-M, --master-charset" Tekenset van de bestanden met de te vertalen documenten. Merk op dat alle hoofddocumenten dezelfde tekenset moeten gebruiken. .IP "\fB\-L\fR, \fB\-\-localized\-charset\fR" 4 .IX Item "-L, --localized-charset" Tekenset van de bestanden met de gelokaliseerde documenten. Merk op dat voor alle vertaalde documenten dezelfde tekenset gebruikt zal worden. .IP "\fB\-A\fR, \fB\-\-addendum\-charset\fR" 4 .IX Item "-A, --addendum-charset" Tekenset van de addenda. Merk op dat alle addenda dezelfde tekenset moeten hebben. .IP "\fB\-V\fR, \fB\-\-version\fR" 4 .IX Item "-V, --version" De versie van het script tonen en afsluiten. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" De breedsprakigheid van het programma verhogen. .IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 .IX Item "-q, --quiet" De breedsprakigheid van het programma verminderen. .IP "\fB\-d\fR, \fB\-\-debug\fR" 4 .IX Item "-d, --debug" Enige foutopsporingsinformatie weergeven. .IP "\fB\-o\fR, \fB\-\-option\fR" 4 .IX Item "-o, --option" Extra optie(s) om door te geven aan de indelingsplug-in. Raadpleeg de documentatie bij elke plug-in voor meer informatie over de geldige opties en hun betekenis. U zou bijvoorbeeld '\-o tablecells' kunnen doorgeven aan de ontleder voor AsciiDoc, terwijl de ontleder voor tekst '\-o tabs=split' zou accepteren. .IP "\fB\-f\fR, \fB\-\-force\fR" 4 .IX Item "-f, --force" Steeds de \s-1POT\-\s0 en PO-bestanden genereren, zelfs indien \fBpo4a\fR dit niet nodig acht. .Sp Het standaardgedrag (indien \fB\-\-force\fR niet opgegeven werd) is als volgt: .RS 4 .Sp .RS 4 Indien het POT-bestand reeds bestaat, wordt het opnieuw gegenereerd indien een hoofddocument of het configuratiebestand recenter is (tenzij \&\fB\-\-no\-update\fR opgegeven werd). Het POT-bestand wordt ook in een tijdelijk document weggeschreven en \fBpo4a\fR gaat na of de wijzigingen echt nodig zijn. .Sp Ook wordt een vertaling enkel opnieuw gegenereerd indien zijn hoofddocument, het PO-bestand, één van zijn addenda of het configuratiebestand recenter is. Om te vermijden dat geprobeerd wordt vertalingen opnieuw te genereren die niet slagen in de drempelwaardetest (zie \fB\-\-keep\fR), kan een bestand met de extensie \fI.po4a\-stamp\fR gecreëerd worden (zie \fB\-\-stamp\fR). .RE .RE .RS 4 .Sp Als in een hoofddocument externe bestanden geïntegreerd worden, moet u de vlag \fB\-\-force\fR gebruiken, omdat geen rekening gehouden wordt met de wijzigingsdatum van deze ingesloten bestanden. .Sp De PO-bestanden worden steeds opnieuw gegenereerd op basis van het POT-bestand met \fBmsgmerge \-U\fR. .RE .IP "\fB\-\-stamp\fR" 4 .IX Item "--stamp" Geeft aan dat \fBpo4a\fR een stempelbestand moet genereren indien er geen vertaling gegenereerd wordt omdat deze de drempelwaarde niet bereikt. Dit stempelbestand wordt vernoemd naar het verwachte vertaalde document met de extensie \fI.po4a\-stamp\fR. .Sp Opmerking: Dit activeert enkel het creëren van de \&\fI.po4a\-stamp\fR\-bestanden. Als deze bestaan, worden de stempelbestanden steeds gebruikt, en zij worden verwijderd met \fB\-\-rm\-translations\fR of wanneer het bestand uiteindelijk vertaald is. .IP "\fB\-\-no\-translations\fR" 4 .IX Item "--no-translations" De vertaalde documenten niet genereren, enkel de \s-1POT\-\s0 en PO-bestanden bijwerken. .IP "\fB\-\-no\-update\fR" 4 .IX Item "--no-update" De \s-1POT\-\s0 en PO-bestanden niet wijzigen, enkel de vertaling mag bijgewerkt worden. .IP "\fB\-\-keep\-translations\fR" 4 .IX Item "--keep-translations" Behoudt de bestaande vertaalbestanden, zelfs indien de vertaling niet beantwoordt aan de drempelwaarde die door \fB\-\-keep\fR gespecificeerd wordt. Met deze optie worden geen nieuwe vertaalbestanden met weinig inhoud gecreëerd, maar bestaande vertalingen die verkommeren door wijzigingen aan de hoofdbestanden, blijven bewaard. .Sp \&\s-1WAARSCHUWING:\s0 Met deze vlag wordt het gedrag van po4a op een eerder drastische wijze veranderd: uw vertaalde bestanden zullen helemaal niet bijgewerkt worden totdat de vertaling verbetert. Gebruik deze vlag enkel indien u verkiest om een verouderde vertaalde documentatie te verspreiden boven een accurate onvertaalde documentatie. .IP "\fB\-\-rm\-translations\fR" 4 .IX Item "--rm-translations" De vertaalde bestanden verwijderen (impliceert \fB\-\-no\-translations\fR). .IP "\fB\-\-no\-backups\fR" 4 .IX Item "--no-backups" Deze vlag heeft sinds versie 0.41 geen effect meer, en ze kan uit latere releases verwijderd worden. .IP "\fB\-\-rm\-backups\fR" 4 .IX Item "--rm-backups" Deze vlag heeft sinds versie 0.41 geen effect meer, en ze kan uit latere releases verwijderd worden. .IP "\fB\-\-translate\-only\fR \fIvertaald-bestand\fR" 4 .IX Item "--translate-only vertaald-bestand" Enkel het gespecificeerde bestand vertalen. Dit kan nuttig zijn om de verwerking te versnellen als een configuratiebestand veel bestanden bevat. Merk op dat met deze optie \s-1PO\-\s0 en POT-bestanden niet bijgewerkt worden. Deze optie kan meerdere keren gebruikt worden. .IP "\fB\-\-variable\fR \fIvar\fR\fB=\fR\fIwaarde\fR" 4 .IX Item "--variable var=waarde" Een variabele definiëren welke in het configuratiebestand van \fBpo4a\fR vervangen zal worden. Overal waar \fI$(var)\fR voorkomt, zal deze vervangen worden door \fIwaarde\fR. Deze optie kan meerdere malen gebruikt worden. .IP "\fB\-\-srcdir\fR \fI\s-1BRONMAP\s0\fR" 4 .IX Item "--srcdir BRONMAP" De basismap instellen van alle invoerdocumenten welke in het configuratiebestand van \fBpo4a\fR gespecificeerd worden. .Sp Indien zowel \fIdestdir\fR als \fIsrcdir\fR vermeld zijn, worden invoerbestanden in de volgende mappen gezocht in deze volgorde: \fIdestdir\fR, de huidige map en \fIsrcdir\fR. Uitvoerbestanden worden weggeschreven in \fIdestdir\fR als deze gespecificeerd is, of in de huidige map. .IP "\fB\-\-destdir\fR \fI\s-1DOELMAP\s0\fR" 4 .IX Item "--destdir DOELMAP" De basismap instellen voor al de uitvoerdocumenten, welke in het configuratiebestand van \fBpo4a\fR gespecificeerd zijn (zie \fB\-\-srcdir\fR hierboven). .SS "Opties die de POT-header wijzigen" .IX Subsection "Opties die de POT-header wijzigen" .IP "\fB\-\-porefs\fR \fItype\fR" 4 .IX Item "--porefs type" Het referentieformaat specificeren. Het argument \fItype\fR kan één van de volgende zijn: \fBnever\fR om geen enkele referentie te produceren, \fBfile\fR om enkel het bestand zonder het lijnnummer te specificeren, \fBcounter\fR om het regelnummer te vervangen door een oplopende teller, en \fBfull\fR om volledige referenties op te nemen (standaard: full). .IP "\fB\-\-wrap\-po\fR \fBno\fR|\fBnewlines\fR|\fIgetal\fR (standaard: 76)" 4 .IX Item "--wrap-po no|newlines|getal (standaard: 76)" Specificeren hoe de regelafbreking voor po-bestanden er moet uitzien. Dit geeft de keuze tussen bestanden met een mooie regelafbreking, die echter kunnen leiden tot git-conflicten en bestanden die makkelijker automatisch te behandelen zijn, maar voor mensen moeilijker leesbaar. .Sp Vanouds brak de gettext-suite uit cosmetische overwegingen de regels van po-bestanden af bij de 77e kolom. Deze optie specificeert het gedrag van po4a. Indien dit ingesteld wordt op een numerieke waarde, zal po4a de regels van het po-bestand afbreken na deze kolom en na regeleinden die in de inhoud voorkomen. Indien dit ingesteld wordt op \fBnewlines\fR, zal po4a de msgid en msgstr enkel afbreken na regeleinden die in de inhoud voorkomen. Indien dit ingesteld wordt op \fBno\fR, zal po4a helemaal geen regelafbreking toepassen in het po-bestand. De regelafbreking in het referentiecommentaar gebeurt steeds door het gettext-gereedschap dat we intern gebruiken. .Sp Merk op dat deze optie geen impact heeft op de wijze waarop regelafbreking in msgid en msgstr gebeurt, d.w.z. op hoe einderegels toegevoegd worden aan de inhoud van deze tekstfragmenten. .IP "\fB\-\-master\-language\fR" 4 .IX Item "--master-language" Taal van de bronbestanden die de te vertalen documenten bevatten. Merk op dat alle hoofddocumenten dezelfde taal moeten gebruiken. .IP "\fB\-\-msgid\-bugs\-address\fR \fIemail@adres\fR" 4 .IX Item "--msgid-bugs-address email@adres" Het adres instellen voor het rapporteren van msgid-bugs. Standaard bevatten de gecreëerde POT-bestanden niet het veld Report-Msgid-Bugs-To. .IP "\fB\-\-copyright\-holder\fR \fItekenreeks\fR" 4 .IX Item "--copyright-holder tekenreeks" Instellen van de copyrighthouder in de POT-header. De standaardwaarde is \&\*(L"Free Software Foundation, Inc.\*(R" .IP "\fB\-\-package\-name\fR \fItekenreeks\fR" 4 .IX Item "--package-name tekenreeks" Instellen van de pakketnaam voor de POT-header. Standaard is dat \*(L"\s-1PACKAGE\*(R".\s0 .IP "\fB\-\-package\-version\fR \fItekenreeks\fR" 4 .IX Item "--package-version tekenreeks" Instellen van de pakketversie voor de POT-header. Standaard is dat \&\*(L"\s-1VERSION\*(R".\s0 .SS "Opties om de PO-bestanden te wijzigen" .IX Subsection "Opties om de PO-bestanden te wijzigen" .IP "\fB\-\-msgmerge\-opt\fR \fIopties\fR" 4 .IX Item "--msgmerge-opt opties" Extra opties voor \fBmsgmerge\fR(1). .Sp Opmerking: \fB\f(CB$lang\fB\fR zal vervangen worden door de huidige taal. .IP "\fB\-\-no\-previous\fR" 4 .IX Item "--no-previous" Deze optie verwijdert \fB\-\-previous\fR uit de opties die doorgegeven worden aan \&\fBmsgmerge\fR. Dit laat toe versies van \fBgettext\fR te ondersteunen, eerder dan 0.16. .IP "\fB\-\-previous\fR" 4 .IX Item "--previous" Met deze optie voegt men \fB\-\-previous\fR toe aan de opties die aan \fBmsgmerge\fR doorgegeven worden. De optie heeft versie 0.16 of recenter van \fBgettext\fR nodig en is standaard geactiveerd. .SH "CONFIGURATIEBESTAND" .IX Header "CONFIGURATIEBESTAND" po4a verwacht een configuratiebestand als argument. Dit bestand moet de volgende elementen bevatten: .IP "\(bu" 4 Het pad naar de PO-bestanden en de lijst van talen die in het project bestaan; .IP "\(bu" 4 Facultatief, een aantal globale opties en zogenaamde configuratiealiassen welke als sjablonen gebruikt worden om individuele hoofdbestanden te configureren; .IP "\(bu" 4 De lijst van elk masterbestand dat moet worden vertaald, samen met specifieke parameters. .PP Alle regels bevatten een commando tussen rechte haakjes, gevolgd door zijn parameters. Commentaar begint met het teken '#' en loopt verder tot het einde van de regel. U kunt met een escapeteken aan het einde van de regel het commando spreiden over verschillende regels. .SS "De \s-1PO\-\s0 en POT-bestanden vinden" .IX Subsection "De PO- en POT-bestanden vinden" De eenvoudigste manier is om als volgt het pad op te geven naar de map die uw vertaalproject bevat. .PP .Vb 1 \& [po_directory] man/po/ .Ve .PP De opgegeven map moet een aantal PO-bestanden bevatten, elk met een naam \&\fI\s-1XX\s0.po\fR, waarbij \f(CW\*(C`XX\*(C'\fR de \s-1ISO\s0 639\-1\-code is van de taal die in dit bestand wordt gebruikt. De map moet ook één enkel POT-bestand bevatten, met als bestandsextensie \f(CW\*(C`.pot\*(C'\fR. .PP Indien u dit verkiest, kunt u dezelfde informatie als volgt expliciet geven: .PP .Vb 1 \& [po4a_paths] man/po/project.pot nl:man/po/nl.po fr:man/po/fr.po .Ve .PP Dit specificeert eerst het pad naar het POT-bestand, en daarna de paden naar de Nederlandse en Franse PO-bestanden. .PP Tenslotte kan dezelfde informatie ook als volgt geschreven worden: .PP .Vb 2 \& [po4a_langs] fr nl \& [po4a_paths] man/po/project.pot $lang:man/po/$lang.po .Ve .PP De component \f(CW$lang\fR wordt automatisch vervangen door gebruik te maken van de opgegeven taallijst. Dit beperkt het risico op een fout van het type kopiëren/plakken wanneer een nieuwe taal toegevoegd wordt. .PP \fICentrale of gesplitste PO-bestanden?\fR .IX Subsection "Centrale of gesplitste PO-bestanden?" .PP Standaard produceert po4a één enkel PO-bestand per doeltaal. Dit bevat de volledige inhoud van uw vertaalproject. Als uw project uitgebreider wordt, kan de omvang van deze bestanden problematisch worden. Indien weblate gebruikt wordt , is het mogelijk specifieke prioriteiten op te geven voor elk vertalingssegment (d.w.z. msgid), zodat de belangrijkste eerst vertaald worden. Nochtans geven sommige vertaalteams er de voorkeur aan de inhoud op te splitsen in verschillende bestanden. .PP Om één PO-bestand per hoofdbestand te hebben, moet u gewoon op de volgende manier de tekenreeks \f(CW$master\fR gebruiken in de naam van uw PO-bestanden op de regel \f(CW\*(C`[po4a_paths]\*(C'\fR. .PP .Vb 1 \& [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po .Ve .PP Indien naamgevingsconflicten ontstaan omdat verschillende bestanden dezelfde bestandsnaam hebben, kunt u de naam van het hoofdbestand specificeren door de optie \f(CW\*(C`master:file=\*(C'\fR\fInaam\fR toe te voegen: .PP .Vb 4 \& [po4a_langs] de fr nl \& [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po \& [type: xml] foo/gui.xml $lang:foo/gui.$lang.xml master:file=foo\-gui \& [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml master:file=bar\-gui .Ve .PP In gesplitste modus bouwt \fBpo4a\fR een tijdelijk compendium op tijdens het bijwerken van de PO-bestanden, om de vertaling met alle PO-bestanden te delen. Indien twee PO-bestanden voor hetzelfde tekstfragment verschillende vertalingen bevatten, zal \fBpo4a\fR dit tekstfragment als onnauwkeurig (fuzzy) markeren en beide vertalingen invoegen in alle PO-bestanden die dat tekstfragment bevatten. Wanneer de vertaler de vertaling ontwart, zal deze vertaling automatisch is elk PO-bestand gebruikt worden. .SS "De te vertalen documenten specificeren" .IX Subsection "De te vertalen documenten specificeren" U moet ook de documenten die vertaald moeten worden, vermelden. Voor elk hoofdbestand moet u de te gebruiken indelingsontleder opgeven, de locatie van het te produceren vertaalde bestand en facultatief enige configuratie. Hier volgt een voorbeeld: .PP .Vb 5 \& [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \e \& nl:doc/nl/mijn_spullen.sgml \& [type: man] script fr:doc/fr/script.1 nl:doc/nl/script.1 \& [type: docbook] doc/script.xml fr:doc/fr/script.xml \e \& nl:doc/nl/script.xml .Ve .PP Maar ook hier zijn deze complexe regels moeilijk te lezen en aan te passen, bijvoorbeeld bij het toevoegen van een nieuwe taal. Het is veel eenvoudiger om deze zaken als volgt te herorganiseren met behulp van het \&\f(CW$lang\fR\-sjabloon: .PP .Vb 3 \& [type: sgml] doc/my_stuff.sgml $lang:doc/$lang/my_stuff.sgml \& [type: man] script.1 $lang:po/$lang/script.1 \& [type: docbook] doc/script.xml $lang:doc/$lang/script.xml .Ve .SS "Opties specificeren" .IX Subsection "Opties specificeren" Er bestaan twee types opties: \fIpo4a\-opties\fR zijn standaardwaarden voor de po4a commandoregelopties, terwijl \fIopmaakopties\fR gebruikt worden om het gedrag van de opmaakontleders te beïnvloeden. U zou bijvoorbeeld in uw configuratiebestand kunnen specificeren dat de standaardwaarde voor de commandoregelparameter \fB\-\-keep\fR 50% is in plaats van 80%. \fIOpmaakopties\fR worden gedocumenteerd op de specifieke pagina van iedere ontleedmodule, bijv. \fBLocale::Po4a::Xml\fR\|(3pm). U zou bijvoorbeeld \fBnostrip\fR kunnen meegeven aan de XML-ontleder om de spaties rond de geëxtraheerde tekstfragmenten niet te laten weghalen. .PP U kunt deze opties meegeven voor een specifiek hoofdbestand, of zelfs voor een specifieke vertaling van dat bestand met \f(CW\*(C`opt:\*(C'\fR of met \f(CW\*(C`opt_XX:\*(C'\fR voor de taal \f(CW\*(C`XX\*(C'\fR. In het volgende voorbeeld wordt de optie \fBnostrip\fR meegegeven aan de XML-ontleder (voor alle talen), terwijl de drempelwaarde tot 0% teruggebracht wordt voor de Franse vertaling (welke dus steeds behouden blijft). .PP .Vb 1 \& [type:xml] toto.xml $lang:toto.$lang.xml opt:"\-o nostrip" opt_fr:"\-\-keep 0" .Ve .PP Deze configuratieonderdelen moeten in ieder geval aan het einde van de regel staan. Eerst moet de declaratie van bestanden komen, dan het eventuele addendum (zie hierna) en dan pas de opties. Het groeperen van configuratieonderdelen is niet erg belangrijk, omdat elementen intern samengevoegd worden tot tekenreeksen. De volgende voorbeelden zijn allemaal gelijkwaardig: .PP .Vb 3 \& [type:xml] toto.xml $lang:toto.$lang.xml opt:"\-\-keep 20" opt:"\-o nostrip" opt_fr:"\-\-keep 0" \& [type:xml] toto.xml $lang:toto.$lang.xml opt:"\-\-keep 20 \-o nostrip" opt_fr:"\-\-keep 0" \& [type:xml] toto.xml $lang:toto.$lang.xml opt:\-\-keep opt:20 opt:\-o opt:nostrip opt_fr:\-\-keep opt_fr:0 .Ve .PP Merk op dat taalspecifieke opties niet gebruikt worden bij het bouwen van het POT-bestand. Het is bijvoorbeeld niet mogelijk om de optie \fBnostrip\fR mee te geven aan de ontleder wanneer enkel de Franse vertaling wordt gebouwd, omdat het POT-bestand gebruikt wordt om elke taal te updaten. Dus zijn de enige opties die taalspecifiek kunnen zijn, die opties welke gebruikt worden bij het produceren van de vertaling, zoals de optie \&\f(CW\*(C`\-\-keep\*(C'\fR. .PP \fIConfiguratiealiassen\fR .IX Subsection "Configuratiealiassen" .PP De beste manier om dezelfde optie mee te geven aan verschillende bestanden is als volgt een alias voor een type te definiëren. In het volgende voorbeeld wordt de optie \f(CW\*(C`\-\-keep 0\*(C'\fR aan iedere Italiaanse vertaling meegegeven met dit \f(CW\*(C`test\*(C'\fR\-type, welke een uitbreiding is van het \&\f(CW\*(C`man\*(C'\fR\-type. .PP .Vb 2 \& [po4a_alias:test] man opt_it:"\-\-keep 0" \& [type: test] man/page.1 $lang:man/$lang/page.1 .Ve .PP U kunt een bestaand type ook uitbreiden door als volgt dezelfde naam te gebruiken voor de alias. Dit wordt niet geïnterpreteerd als een foutieve recursieve definitie. .PP .Vb 2 \& [po4a_alias:man] man opt_it:"\-\-keep 0" \& [type: man] man/page.1 $lang:man/$lang/page.1 .Ve .PP \fIGlobale standaardopties\fR .IX Subsection "Globale standaardopties" .PP U kunt ook \f(CW\*(C`[options]\*(C'\fR\-regels gebruiken om opties te definiëren welke voor alle bestanden gebruikt moeten worden, ongeacht hun type. .PP .Vb 1 \& [options] \-\-keep 20 \-\-option nostrip .Ve .PP Zoals het geval is voor de commandoregelopties, kunt u de parameters die in het configuratiebestand meegegeven worden, afkorten: .PP .Vb 1 \& [options] \-k 20 \-o nostrip .Ve .PP \fIOptieprioriteiten\fR .IX Subsection "Optieprioriteiten" .PP De opties voor alle bronnen worden samengevoegd, zodat de standaardwaarden gemakkelijk kunnen worden overschreven door meer specifieke opties. De volgorde is de volgende: .IP "\(bu" 4 \&\f(CW\*(C`[options]\*(C'\fR\-regels bieden standaardwaarden die door elke andere bron overschreven kunnen worden. .IP "\(bu" 4 Daarna worden aliassen voor types gebruikt. Taalspecifieke instellingen overschrijven die welke van toepassing zijn op alle talen. .IP "\(bu" 4 Instellingen welke specifiek zijn voor een bepaald hoofdbestand overschrijven zowel de standaardinstellingen als die welke afkomstig zijn van de type-alias. Ook in dit geval overschrijven taalspecifieke instellingen de globale instellingen. .IP "\(bu" 4 Tenslotte overschrijven parameters welke opgegeven worden aan de \&\fBpo4a\fR\-commandoregel, eventuele instellingen uit het configuratiebestand. .PP \fIVoorbeeld\fR .IX Subsection "Voorbeeld" .PP Hier volgt een voorbeeld dat laat zien hoe u de spaties en aanhalingstekens moet citeren: .PP .Vb 1 \& [po_directory] man/po/ \& \& [options] \-\-master\-charset UTF\-8 \& \& [po4a_alias:man] man opt:"\-o \e"mdoc=NAME,SEE ALSO\e"" \& [type:man] t\-05\-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \e \& opt:"\-k 75" opt_it:"\-L UTF\-8" opt_fr:\-\-verbose .Ve .SS "Addendum: extra inhoud toevoegen aan de vertaling" .IX Subsection "Addendum: extra inhoud toevoegen aan de vertaling" Indien u aan de vertaling een extra sectie wilt toevoegen, bijvoorbeeld om erkenning te geven aan de vertaler, moet u een addendum definiëren bij de regel welke uw hoofdbestand definieert, Raadpleeg pagina \fBpo4a\fR\|(7) voor meer informatie over de syntaxis van addendumbestanden. .PP .Vb 2 \& [type: pod] script fr:doc/fr/script.1 \e \& add_fr:doc/l10n/script.fr.add .Ve .PP U kunt ook als volgt gebruik maken van taalsjablonen: .PP .Vb 2 \& [type: pod] script $lang:doc/$lang/script.1 \e \& add_$lang:doc/l10n/script.$lang.add .Ve .PP Indien het toepassen van een addendum mislukt, wordt de vertaling verwijderd. .PP \fIWijzigingselementen voor de addendumdeclaratie\fR .IX Subsection "Wijzigingselementen voor de addendumdeclaratie" .PP Met addendumwijzigingselementen kan het configuratiebestand vereenvoudigd worden in het geval er niet voor elke taal een addendum is, of wanneer de lijst met addenda verschilt naargelang de taal. Het wijzigingselement is één enkele letter die voor de bestandsnaam staat. .IP "\fB?\fR" 2 .IX Item "?" \&\fIpad_naar_addendum\fR toevoegen indien dit bestand bestaat; in het ander geval niets doen. .IP "\fB@\fR" 2 .IX Item "@" \&\fIpad_naar_addendum\fR is geen gewoon addendum, maar een bestand dat een lijst met addenda bevat, één per regel. Elk addendum kan voorafgegaan worden door wijzigingselementen. .IP "\fB!\fR" 2 .IX Item "!" \&\fIpad_naar_addendum\fR wordt weggelaten; het wordt niet geladen en zal niet geladen worden bij eventuele verdere addendumspecificaties. .PP Met het volgende wordt voor elke taal een addendum toegevoegd, maar enkel indien het bestaat. Er wordt geen fout gerapporteerd indien het addendum niet bestaat. .PP .Vb 1 \& [type: pod] script $lang:doc/$lang/script.1 add_$lang:?doc/l10n/script.$lang.add .Ve .PP Met het volgende wordt een lijst met addenda toegevoegd voor elke taal: .PP .Vb 1 \& [type: pod] script $lang:doc/$lang/script.1 add_$lang:@doc/l10n/script.$lang.add .Ve .SS "De vertaalde tekstfragmenten filteren" .IX Subsection "De vertaalde tekstfragmenten filteren" Soms wilt u bepaalde tekstfragmenten voor het vertaalproces verborgen houden. Met dit doel kunt u een \f(CW\*(C`pot_in\*(C'\fR\-parameter opgeven aan uw hoofdbestand om de naam op te geven van het bij het bouwen van het POT-bestand te gebruiken bestand in plaats van het echte hoofdbestand. Hier volgt een voorbeeld: .PP .Vb 3 \& [type:docbook] boek.xml \e \& pot_in:boek\-gefilterd.xml \e \& $lang:boek.$lang.xml .Ve .PP Met deze instelling zullen de te vertalen tekstfragmenten geëxtraheerd worden uit het bestand \fIboek\-gefilterd.xml\fR (dat aangemaakt moet worden vooraleer \fBpo4a\fR aangeroepen wordt), terwijl de vertaalde bestanden gebouwd worden vanuit \fIboek.xml\fR. Als gevolg daarvan zullen alle tekstfragmenten welke in \fIboek.xml\fR voorkomen maar niet in \fIboek\-gefilterd.xml\fR, niet opgenomen worden in de PO-bestanden, waardoor voorkomen wordt dat vertalers er een vertaling voor geven. Deze tekstfragmenten zullen dus ongewijzigd blijven bij het aanmaken van de vertaalde documenten. Dit verlaagt natuurlijk de graad van vertaling, waardoor u mogelijk de optie \f(CW\*(C`\-\-keep\*(C'\fR zult moeten aanpassen om ervoor te zorgen dat het document desondanks aangemaakt wordt. .SS "\s-1CONFIGURATIEVOORBEELD\s0" .IX Subsection "CONFIGURATIEVOORBEELD" \&\s-1TE_DOEN:\s0 Is dit echt een nuttig onderdeel? .PP Laten we aannemen dat u een programma onderhoudt, dat de naam \fBfoo\fR heeft en dat een man-pagina \fIman/foo.1\fR heeft, die natuurlijk enkel in het Engels onderhouden wordt. U, als bovenstroomse of onderstroomse onderhouder, wilt de vertaling ervan aanmaken en onderhouden. Het eerste wat u dient te doen is met \fBpo4a\-gettextize\fR\|(1) het POT-bestand creëren om het aan de vertalers te bezorgen. .PP En dus zullen we in ons geval het commando geven .PP .Vb 1 \& cd man && po4a\-gettextize \-f man \-m foo.1 \-p foo.pot .Ve .PP Daarna kunt u dit bestand naar de passende taallijst sturen of het ergens op uw website aanbieden om te downloaden. .PP Laten we nu aannemen dat u voor de volgende release drie vertalingen ontvangen heeft: \fIde.po\fR (met inbegrip van een addendum \fIde.add\fR), \&\fIsv.po\fR en \fIpt.po\fR. Omdat u niet telkens bij een nieuwe vertaling uw \&\fIMakefile\fR\-bestand(en) wilt aanpassen, kunt u in uw \fIMakefile\fR gebruik maken van \fBpo4a\fR met een bijpassend configuratiebestand. Laten we dit \&\fIpo4a.cfg\fR noemen. In ons voorbeeld zou dat er als volgt uitzien: .PP .Vb 1 \& [po_directory] man/po4a/po/ \& \& [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \e \& add_$lang:?man/po4a/add_$lang/$lang.add opt:"\-k 80" .Ve .PP In dit voorbeeld nemen we aan dat uw gegenereerde man-pagina's (en alle PO-bestanden en addenda-bestanden) opgeslagen worden onder de huidige map in \&\fIman/translated/$lang/\fR (respectievelijk in \fIman/po4a/po/\fR en \&\fIman/po4a/add_$lang/\fR). In ons voorbeeld zouden in de map \fIman/po4a/po/\fR de bestanden \fIde.po\fR, \fIpt.po\fR en \fIsv.po\fR staan, en in de map \&\fIman/po4a/add_de/\fR het bestand \fIde.add\fR. .PP Merk het gebruik op van het wijzigingselement \fB?\fR, want enkel bij de Duitse vertaling (\fIde.po\fR) zit een addendum. .PP Om de vertaalde man-pagina's daadwerkelijk te bouwen, moet u dan (eenmaal) de volgende regel toevoegen aan het \fBbuild\fR\-doel van het passende \&\fIMakefile\fR\-bestand: .PP .Vb 1 \& po4a po4a.cfg .Ve .PP Eens u dit op die manier ingesteld heeft, moet u niet meer raken aan het \&\fIMakefile\fR\-bestand als er een nieuwe vertaling arriveert. Indien bijvoorbeeld het Franse team u \fIfr.po\fR en \fIfr.add\fR aanlevert, moet u deze respectievelijk gewoon in \fIman/po4a/po/\fR en in \fIman/po4a/add_fr/\fR plaatsen, en de volgende keer dat het programma gebouwd wordt, zal automatisch ook de Franse vertaling gebouwd worden in \fIman/translated/fr/\fR. .PP Merk op dat u nog steeds een passend doel nodig heeft om ook de vertaalde man-pagina's samen met de Engelse te installeren. .PP Tenslotte, indien u de gegenereerde bestanden niet wilt opslaan in uw versiecontrolesysteem, moet u ook nog een regel toevoegen aan uw \fBclean\fR\-doel: \-rm \-rf man/translated .SH "ZIE OOK" .IX Header "ZIE OOK" \&\fBpo4a\-gettextize\fR\|(1), \fBpo4a\-normalize\fR\|(1), \fBpo4a\-translate\fR\|(1), \&\fBpo4a\-updatepo\fR\|(1), \fBpo4a\fR\|(7). .SH "AUTEURS" .IX Header "AUTEURS" .Vb 3 \& Denis Barbier \& Nicolas François \& Martin Quinson (mquinson#debian.org) .Ve .SH "COPYRIGHT EN LICENTIE" .IX Header "COPYRIGHT EN LICENTIE" Copyright 2002\-2020 door \s-1SPI,\s0 inc. .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).