Provided by: po4a_0.67-2_all bug

NAAM

       Locale::Po4a::Man - man-pagina's van/naar PO-bestanden converteren

BESCHRIJVING

       Het doel van het project po4a (PO 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.

       Locale::Po4a::Man is een module ter ondersteuning van de vertaling van documentatie in de
       nroff-indeling (de taal die voor man-pagina's gebruikt wordt) naar andere [menselijke]
       talen.

VERTALEN MET PO4A::MAN

       Deze module doet er alles aan om het leven van de vertaler gemakkelijker te maken.
       Daarvoor is de tekst die aan vertalers wordt voorgelegd geen letterlijke kopie van de
       tekst van de man-pagina. De ruwere onderdelen van de nroff-indeling worden inderdaad
       verborgen gehouden, zodat vertalers ze niet kunnen verknoeien.

   Regelafbreking
       Op paragrafen die niet inspringen wordt ten behoeve van vertalers automatisch
       regelafbreking toegepast. Dit kan leiden tot een aantal minimale verschillen in de
       gegenereerde uitvoer, omdat de regels voor regelafbreking welke door groff gebruikt
       worden, niet erg duidelijk zijn. Bijvoorbeeld worden twee spaties na een haakje soms
       behouden.

       Hoe dan ook zit het verschil enkel in de positie van de extra spaties in de inspringende
       alinea, en ik denk dat het dit waard is.

   Lettertypespecificatie
       De eerste wijziging betreft specificaties voor het wijzigen van lettertypes. In nroff zijn
       er verschillende manieren om aan te geven of een bepaald woord moet geschreven worden in
       klein, vet of schuin lettertype. In de te vertalen tekst is er slechts één manier,
       ontleend aan de POD-indeling (de indeling voor onlinedocumentatie van Perl):

       I<tekst> -- schuine tekst
           het equivalent van \fItekst\fP of ".I tekst"

       B<tekst> -- tekst in het vet
           het equivalent van \fBtekst\fP of".B tekst"

       R<tekst> -- tekst in Romeins lettertype
           het equivalent van \fRtekst\fP

       CW<tekst> -- tekst met constante breedte
           het equivalent van \f(CWtekst\fP of ".CW tekst"

       Opmerking: niet voor alle groff-apparaten is het lettertype CW beschikbaar. Het gebruik
       ervan wordt niet aanbevolen. Het is bedoeld voor uw gemak.

   Automatisch omzetten van lettertekens
       Po4a doet een automatische omzetting van sommige lettertekens om de vertaling en het
       nazicht ervan te vergemakkelijken. Hier volgt de  lijst van omzettingen:

       koppeltekens
           Koppeltekens (-) en mintekens (\ -) in man-pagina's worden allemaal omgezet naar
           eenvoudige streepjes (-) in het PO-bestand. Daarna worden alle streepjes omgezet naar
           roff-mintekens wanneer de vertaling ingevoegd wordt in het uitvoerdocument.

           Vertalers kunnen een koppelteken afdwingen door in hun vertaling het roff-letterteken
           '\[hy]' te gebruiken.

       spatie zonder regelafbreking
           Vertalers kunnen in hun vertaling gebruik maken van spaties waarbij geen
           regelafbreking mag toegepast worden. Deze spaties zonder regelafbreking (0xA0 in
           latin1) zullen naar roff omgezet worden als een spatie zonder regelafbreking ('\ ').

       omzetting van aanhalingstekens
           `` en '' worden respectievelijk omgezet naar \*(lq en \*(rq.

           Om deze omzettingen te voorkomen kunnen vertalers een roff-teken met een breedte nul
           invoegen (met name door respectievelijk `\&` of '\&' te gebruiken).

   In vertalingen '<' en '>' gebruiken
       Aangezien deze tekens worden gebruikt om delen af te bakenen waarvoor een wijziging van
       het lettertype van toepassing is, kunt u ze niet letterlijk gebruiken. Gebruik in de
       plaats daarvan E<lt> en E<gt> (nogmaals zoals in POD).

MOGELIJKE OPTIES BIJ DEZE MODULE

       De volgende opties zijn specifiek voor deze module:

       debug
           Debuggen activeren voor sommige interne mechanismen van deze module. Gebruik de
           broncode om na te gaan voor welke delen debuggen mogelijk is.

       verbose
           De hoeveelheid verstrekte informatie verhogen.

       groff_code
           Deze optie controleert het gedrag van de module wanneer deze een sectie .de, .ie of
           .if tegenkomt. Ze kan de volgende waarden hebben:

           fail
               Dit is de standaardwaarde. De module zal mislukken wanneer een sectie .de, .ie of
               .if aangetroffen wordt.

           verbatim
               Geeft aan dat de secties .de, .ie en .if als zodanig moeten worden gekopieerd van
               het origineel naar het vertaalde document.

           translate
               Geeft aan dat de secties .de, .ie of .if ter vertaling aangeboden zullen worden.
               Gebruik deze optie alleen als er een vertaalbaar tekstfragment in een van deze
               secties staat. Anders zou u de voorkeur moeten geven aan verbatim.

       generated
           Deze optie geeft aan dat het bestand gegenereerd werd en dat po4a niet moet proberen
           te achterhalen of de man-pagina vanuit een andere indeling gegenereerd werd. Deze
           optie is verplicht om po4a te gebruiken op gegenereerde man-pagina's. Merk op dat het
           vertalen van gegenereerde pagina's in plaats van bronpagina's vaak kwetsbaarder is, en
           dus een slecht idee.

       mdoc
           Deze optie is enkel nuttig voor mdoc-pagina's.

           Hiermee selecteert men een meer strikte ondersteuning voor de mdoc-indeling door po4a
           op te dragen de sectie 'NAME' niet te vertalen. mdoc-pagina's waarvan de sectie 'NAME'
           vertaald wordt, krijgen geen header en footer.

           Volgens de man-pagina groff_mdoc zijn de secties NAME, SYNOPSIS en DESCRIPTION
           verplicht.  Er zijn geen problemen bekend met een vertaalde sectie SYNOPSIS of
           DESCRIPTION, maar u kunt deze secties ook op deze manier aanduiden:
            -o mdoc=NAME,SYNOPSIS,DESCRIPTION

           Dit mdoc-probleem kan ook opgelost worden met een addendum zoals dit:
            PO4A-HEADER:mode=before;position=^.Dd
            .TH DOCUMENT_TITLE 1 "Month day, year" OS "Section Name"

       De volgende opties laten toe het gedrag te specificeren van een nieuwe macro (gedefinieerd
       met een .de-verzoek) of van een macro welke niet door po4a ondersteund wordt. Zij hebben
       als argument een door komma's gescheiden lijst met macro's. Bijvoorbeeld:

        -o noarg=FO,OB,AR -o translate_joined=BA,ZQ,UX

       Opmerking: indien een macro niet ondersteund wordt door po4a en als u van mening bent dat
       het om een standaard roff-macro gaat, signaleer dit dan aan het team ontwikkelaars van
       po4a.

       untranslated
           untranslated Geeft aan dat deze macro (en zijn argumenten) niet vertaald moet worden.

       noarg
           noarg is zoals untranslated, behalve dat po4a zal verifieren dat er geen argument
           meegegeven werd aan deze macro.

       translate_joined
           translate_joined geeft aan dat po4a de argumenten van de macro ter vertaling moet
           voorleggen.

       translate_each
           Met translate_each zullen de argumenten ook ter vertaling voorgelegd worden, met dat
           verschil dat elk argument afzonderlijk zal vertaald worden.

       no_wrap
           Deze optie krijgt als argument een lijst van door komma's gescheiden paren van
           begin:einde, waarbij begin en einde commando's zijn welke het begin en het einde
           afbakenen van een sectie waarvoor de regelafbreking niet overgedaan moet worden.

           Opmerking: er wordt geen test uitgevoerd om ervoor te zorgen dat een einde-commando
           met zijn  begin-commando overeenkomt. Elk einde-commando beëindigt de no_wrap-modus.
           Indien u een begin-macro (respectievelijk einde-macro) heeft, welke geen einde-macro
           (respectievelijk begin-macro) heeft, kunt u als tegenhanger een bestaand einde (als
           fi) of een bestaand begin (als nf) opgeven. Deze macro's (en hun argumenten) zullen
           niet vertaald worden.

       inline
           Deze optie specificeert een lijst met door komma's gescheiden macro's die geen
           splitsing van de huidige alinea mogen veroorzaken. Het te vertalen tekstfragment bevat
           dan foo <.bar baz qux> quux, waarbij bar het commando is dat ongesplitst moet blijven,
           en baz qux zijn argumenten.

       unknown_macros
           Deze optie geeft aan hoe po4a zich moet gedragen wanneer een onbekende macro wordt
           aangetroffen. Standaard faalt po4a met een waarschuwing. Deze kan de volgende waarden
           hebben:  failed (gefaald) (de standaardwaarde), untranslated, noarg, translate_joined,
           or translate_each (zie hierboven voor een uitleg bij deze waarden).

MAN-PAGINA'S SCHRIJVEN WELKE COMPATIBEL ZIJN MET PO4A::MAN

       Deze module is nog erg beperkt, en zal dat ook altijd zijn, want het is geen echte
       interpreter voor nroff. Een echte nroff-interpreter maken, wat auteurs de mogelijkheid zou
       bieden om alle bestaande macro's te gebruiken en er zelfs nieuwe te definiëren in hun
       pagina's, zou mogelijk zijn, maar dit wilden we niet. Dit zou te moeilijk zijn en we
       dachten dat het niet nodig was. We denken dat als auteurs van man-pagina's hun producten
       vertaald willen zien, ze zich misschien moeten aanpassen om het werk van vertalers te
       vergemakkelijken.

       En dus heeft de man-paginaontleder die in po4a geïmplementeerd werd, enkele bekende
       beperkingen, welke we niet echt geneigd zijn te verbeteren en welke een aantal valkuilen
       vormen die u zult moet vermijden als u wilt dat vertalers zich om uw documentatie
       bekommeren.

   Programmeer niet in nroff
       nroff is een volledige programmeertaal met macrodefinities, conditionele bewerkingen, enz.
       Omdat deze ontleder geen volwaardige nroff-interpreter is, zal hij falen bij pagina's
       welke van deze voorzieningen gebruik maken (Op mijn computer staan ongeveer 200 dergelijke
       pagina's).

   Gebruik de gewone macroset
       Er zijn nog steeds enige macro's die niet ondersteund worden door po4a::man. Dit is enkel
       omdat ik er geen enkele documentatie over kon vinden. Hier volgt de lijst van niet-
       ondersteunde macro's die op mijn computer gebruikt worden. Merk op dat deze lijst niet
       exhaustief is, omdat het programma faalt bij de eerste niet-ondersteunde macro die het
       tegenkomt. Indien u enige informatie heeft over sommige van deze macro's, ben ik graag
       bereid er ondersteuning voor toe te voegen. Omwille van deze macro's zijn ongeveer 250
       pagina's op mijn computer niet toegankelijk voor po4a::man.

        ..               ."              .AT             .b              .bank
        .BE              ..br            .Bu             .BUGS           .BY
        .ce              .dbmmanage      .do                             .En
        .EP              .EX             .Fi             .hw             .i
        .Id              .l              .LO             .mf
        .N               .na             .NF             .nh             .nl
        .Nm              .ns             .NXR            .OPTIONS        .PB
        .pp              .PR             .PRE            .PU             .REq
        .RH              .rn             .S<             .sh             .SI
        .splitfont       .Sx             .T              .TF             .The
        .TT              .UC             .ul             .Vb             .zZ

   Tekst verborgen houden voor po4a
       Soms weet de auteur dat sommige delen niet vertaalbaar zijn en niet geëxtraheerd zouden
       moeten worden door po4a. Bijvoorbeeld kan het zijn dat een optie het argument other kent
       en dat other ook voorkomt als laatste item van een lijst. In het eerste geval zou other
       niet-vertaalbaar moeten zijn. Maar in het tweede geval zou other wel vertaald mogen
       worden.

       In een dergelijk geval kan de auteur vermijden dat po4a bepaalde tekstfragmenten
       extraheert, door gebruik te maken van enkele speciale groff-constructen:

        .if !'po4a'hide' .B other

       (dit vereist de optie -o groff_code=verbatim)

       Er kan ook een nieuwe macro gedefinieerd worden om dit te automatiseren:
        .de IR_untranslated
        .    IR \\$@
        ..

        .IR_untranslated \-q ", " \-\-quiet

       (dit vereist de opties -o groff_code=verbatim en -o untranslated=IR_untranslated; met dit
       construct is de voorwaarde .if !'po4a'hide' niet strikt noodzakelijk, omdat po4a de
       binnenkant van de macrodefinitie niet zal ontleden)

       of door een alias te gebruiken:
        .als IR_untranslated IR

        .IR_untranslated \-q ", " \-\-quiet

       Dit vereist de optie -o untranslated=als,IR_untranslated.

   Besluit
       Bij wijze van samenvatting voor dit onderdeel zou men kunnen zeggen: hou het eenvoudig en
       tracht niet de slimmerik uit te hangen bij het schrijven van uw man-pagina's. Er zijn veel
       dingen mogelijk in nroff, welke niet ondersteund worden door deze ontleder. Probeer
       bijvoorbeeld niet te spelen met \c om de tekstverwerking te onderbreken (zoals 40 pagina's
       op mijn computer doen). En zorg ervoor de macroargumenten op dezelfde regel te plaatsen
       als de macro zelf. Ik weet dat dergelijke zaken toegestaan zijn in nroff, maar het zou de
       ontleder te complex maken om daarmee om te gaan.

       Een andere mogelijkheid is natuurlijk om een andere indeling te gebruiken die meer
       vertalervriendelijk is (zoals POD en daarvoor po4a::pod gebruiken, of een indeling uit de
       XML-familie, zoals SGML), maar dankzij po4a::man is dat niet meer nodig. Dit gezegd
       zijnde, als de oorspronkelijke indeling van uw documentatie POD of XML is, kan het
       verstandiger zijn de vertaling vanuit deze oorspronkelijke indeling te laten gebeuren en
       niet vanuit deze gegenereerde indeling. In de meeste gevallen zal po4a::man gegenereerde
       pagina's ontdekken en een waarschuwing geven . Het zal zelfs weigeren om uit POD
       gegenereerde pagina's te verwerken, omdat dergelijke pagina's perfect afgehandeld kunnen
       worden door po4a::pod, en omdat voor hun nroff-tegenhanger een heleboel nieuwe macro's
       gedefinieerd worden waarvoor ik geen ondersteuning wilde schrijven. Op mijn computer
       werden 1432 van de 4323 pagina's uit POD gegenereerd en deze zullen door po4a::man
       genegeerd worden.

       In de meeste gevallen zal po4a::man het probleem ontdekken en de pagina weigeren te
       verwerken en een passende melding geven. In enkele zeldzame gevallen zal het programma de
       verwerking wel uitvoeren zonder te waarschuwen, maar zal de uitvoer fout zijn. Zulke
       gevallen worden "bugs" genoemd ;) Indien u een dergelijk geval tegenkomt, meld het dan
       zeker, samen met een reparatie, mocht dat kunnen…

STATUS VAN DEZE MODULE

       Deze module kan gebruikt worden voor de meeste van de bestaande man-pagina's.

       Enkele tests worden regelmatig uitgevoerd op Linux-computers:

       •   een derde van de pagina's wordt geweigerd omdat deze gegenereerd werden vanuit een
           andere indeling (bijv. POD of SGML) die door po4a ondersteund wordt.

       •   10% van de overige pagina's worden verworpen met een foutmelding (bijv. omdat een
           groff-macro niet ondersteund wordt).

       •   Voorts wordt minder dan 1% van de pagina's stilzwijgend aanvaard door po4a, maar met
           belangrijke problemen (d.w.z. ontbrekende woorden, of toevoeging van extra woorden)

       •   De andere pagina's worden gewoonlijk verwerkt zonder grotere verschillen dan
           verschillen in spatiëring of regelafbreking (problemen met lettertypes in minder dan
           10% van de verwerkte pagina's).

ZIE OOK

       Locale::Po4a::Pod(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)

AUTEURS

        Denis Barbier <barbier@linuxfr.org>
        Nicolas Francois <nicolas.francois@centraliens.net>
        Martin Quinson (mquinson#debian.org)

COPYRIGHT EN LICENTIE

       Copyright © 2002-2008 SPI, Inc.

       Dit programma is vrije software; u kunt het verder verspreiden en/of aanpassen onder de
       bepalingen van de GPL (zie het bestand COPYING).