Provided by: po4a_0.73-2ubuntu1_all bug

NAME

       Locale::Po4a::Sgml - konvertiert SGML-Dokumente von/in PO-Dateien

BESCHREIBUNG

       Das Projektziel von Po4a (PO für alles) ist es, die Übersetzung (und interessanter, die Wartung der
       Übersetzung) zu vereinfachen, indem die Gettext-Werkzeuge auch für Gebiete verwendet werden, wo diese
       nicht erwartet werden, wie Dokumentation.

       Locale::Po4a::Sgml ist ein Modul, um bei der Übersetzung von Dokumentation im SGML-Format in andere
       [natürliche] Sprachen zu helfen.

       Dieses Module verwendet onsgmls(1), um SGML-Dateien auszuwerten. Stellen Sie daher sicher, dass es
       installiert ist. Stellen Sie auch sicher, dass die DTD- der SGML-Dateien im System installiert sind.

VON DIESEM MODUL AKZEPTIERTE OPTIONEN

       debug
           Durch   Leerzeichen   getrennte  Liste  von  Schlüsselwörtern,  die  angeben,  welche  Kategorie  von
           zusätzlichen Fehlersuchmeldungen angezeigt werden soll. Möglich Werte  sind:  "entities",  "generic",
           "onsgml", "refs" und "tag".

       verbose
           mehr Informationen darüber ausgeben, was vorgeht

       translate
           durch  Leerzeichen  getrennte  Liste  von zusätzlichen Markierungen (»Tags«) (neben denen von der DTD
           vorgegebenen), deren Inhalt eine zusätzliche »msgid« ergeben soll, d.h. die übersetzt werden sollten.

       section
           durch Leerzeichen getrennte Liste von zusätzlichen Markierungen (»Tags«) (neben  denen  von  der  DTD
           vorgegebenen), die andere Markierungen enthalten, wobei einige in die Kategorie translate fallen

       indent
           durch  Leerzeichen getrennte Liste von Markierungen (»Tags«), die die Einzugsstufe erhöhen. Dies wird
           die Einrückung des Ergebnisdokuments betreffen.

       verbatim
           Das Layout innerhalb dieser Markierungen (»Tags«) sollte nicht geändert werden.  Der  Absatz  erfährt
           keinen  Zeilenumbruch  und  keine  zusätzliche  Einrückung  und  keine  zusätzliche Zeilen werden für
           kosmetische Zwecke eingefügt.

       empty
           Markierungen (»Tags«), die nicht geschlossen werden müssen

       ignore
           Markierungen (»Tags«), die von Po4a ignoriert und  als  reine  Zeichendaten  betrachtet  werden.  Das
           bedeutet,  dass sie Teil einer Msgid sein können. Beispielsweise ist <b> ein guter Kandidat für diese
           Kategorie, da das Hinzufügen in den Abschnitt translate Msgids nur mit ihrem  Inhalt  erzeugen  würde
           (der normalerweise kein ganzer Satz ist), was nicht gut wäre.

       attributes
           Eine  durch Leerzeichen getrennte Liste von Attributen, die nicht übersetzt werden müssen. Sie können
           die Attribute mit ihrem Namen (beispielsweise "lang")  angeben,  aber  Sie  können  ihnen  auch  eine
           Markierungs-  (»Tag«-)Hierarchie voranstellen, um anzugeben, dass dieses Attribut nur übersetzt wird,
           wenn es Teil der angegebenen Markierung ist. Beispielsweise spezifiziert "<bbb><aaa>lang",  dass  das
           Attribut "lang" nur übersetzt werden soll, wenn es Teil der Markierung "<aaa>" ist, die wiederum Teil
           der  Markierung  "<bbb>"  ist.  Die  Namen der Markierungen sind eigentlich reguläre Ausdrücke, daher
           können Sie auch Formulierungen wie "<aaa|bbb>lang" wählen, um das Attribut "lang" nur zu  übersetzen,
           wenn es sich in der Markierung "<aaa>" oder a "<bbb>"befindet.

       qualify
           Eine durch Leerzeichen getrennte Liste von Attributen, für die die Übersetzung über den Attributnamen
           qualifiziert  werden  muss,  d.h.  der  für  die  Übersetzung  herausgelöste  Text  wird  sowohl  die
           Attributnamen als auch seine Werte enthalten. Für eine  Markierung  wie  "<aaa  lang_en="foo">"  wird
           Übersetzern  beispielsweise  die  Zeichenkette  "lang_en="foo""  angeboten.  Beachten Sie, dass diese
           Einstellung das angegebene Attribut auch automatisch zu der Liste attributes hinzufügt.

       force
           fortfahren, selbst falls die DTD unbekannt ist oder  falls  onsgmls(1)  Fehler  in  der  Eingabedatei
           findet

       include-all
           Standardmäßig  werden  Msgids,  die  nur  eine  Entität  enthalten (wie "&version;") für angenehmeres
           Übersetzen übersprungen. Durch Aktivierung dieser  Option  wird  diese  Optimierung  vermieden.  Dies
           könnte  nützlich  sein,  falls das Dokumente Konstrukte wie "<title>&Aacute;</title>" enthält, selbst
           wenn ich daran zweifle, dass das jemals passieren wird …

       ignore-inclusion
           Durch Leerzeichen getrennte Liste, die nicht eingefügt wird. Benutzen Sie diese Option mit  Vorsicht:
           Sie könnte onsgmls(1) (intern benutzt) veranlassen, Markierungen hinzuzufügen und das Ausgabedokument
           ungültig zu berechnen.

STATUS DIESES MODULS

       Das  Ergebnis  ist  perfekt, d.h. die erstellten Dokumente sind identisch mit den ursprünglichen. Aber es
       gibt noch ein paar Probleme:

       • Die Fehlerausgabe von onsgmls(1) wird standardmäßig  nach  /dev/null  umgeleitet.  Dies  ist  eindeutig
         schlecht. Ich weiß nicht, wie ich das vermeiden kann.

         Das  Problem  liegt darin, dass ich die bedingte Einbindung (d.h. das Zeug "<! [ %foo [" und "]]>") vor
         onsgmls(1) »schützen« muss. Andernfalls futtert onsgmls(1) das auf und ich weiß nicht, wie ich  das  im
         letztendlichen   Dokument   wieder   herstellen  kann.  Um  das  zu  vermeiden,  schreibe  ich  sie  in
         "{PO4A-beg-foo}" und "{PO4A-end}" um.

         Das Problem dabei ist, dass "{PO4A-end}" und so  etwas  im  Dokument  ungültig  sind  (nicht  in  einer
         <p>-Markierung oder so).

         Falls  Sie die onsgmls(1)-Ausgabe sehen wollen, fügen Sie einfach Folgendes zu Ihrer Befehlszeile (oder
         der Po4a-Konfigurationszeile) hinzu:

           -o debug=onsgmls

       • Es funktioniert nur mit der DebianDoc- und DocBook-DTD. Hinzunahme der Unterstützung für eine neue  DTD
         sollte  sehr  leicht  sein.  Der  Mechanismus ist für alle DTD identisch, Sie müssen nur eine Liste der
         existierenden Markierungen und einige ihrer Charakteristika angeben.

         Ich stimme zu, dass dies weitere Dokumentation benötigt, aber es wird immer noch  als  Beta  betrachtet
         und ich hasse es, Zeug zu dokumentieren, dass sich noch ändern kann oder wird.

       • Warnung:  Die  Unterstützung  für  DTDs  ist  noch  recht experimentell. Ich habe kein Referenzhandbuch
         gelesen, um die Definition jeder Markierung herauszufinden. Ich  habe  die  Makierungsdefinitionen  zum
         Modul  hinzugefügt, bis es für einige Dokumente funktionierte, die ich im Netz fand. Falls Ihr Dokument
         mehr Markierungen verwendet als meins, wird es nicht funktionieren. Aber wie oben  geschrieben,  sollte
         das leicht zu beheben sein.

         Ich  habe DocBook nur mit der SAG (System Administrator Guide) getestet, allerdings ist dieses Dokument
         sehr groß und sollte den Großteil der DocBook-Spezialitäten verwenden.

         Für DebianDoc habe ich einige der Handbücher vom DDP getestet, aber noch nicht alle.

       • Im Falle von Dateieinbindungen werden Zeichenkettenreferenzen von Meldungen in PO-Dateien (d.h.  Zeilen
         der Art "#: en/titletoc.sgml:9460") falsch sein.

         Dies rührt daher, dass die Datei vorbearbeitet wird, um die bedingten Einbindungen (d.h. das "<! [ %foo
         ["  und  "]]>"  Zeug)  und  einige  Entitäten  (wie "&version;") vor onsgmls(1) zu schützen, da ich sie
         unverändert im automatisch erstellten Dokument bekommen möchte. Daher wird  eine  temporäre  Kopie  der
         Eingabedatei  angelegt  und  alle  Änderungen  werden  daran  vorgenommen,  bevor sie an onsgmls(1) zur
         Auswertung übergeben wird.

         Damit dies  funktioniert,  werden  die  Entitäten,  die  eine  Dateieinbindung  durch  den  Inhalt  der
         angegebenen  Datei erbitten, ersetzt (so dass auch geschützt werden kann, was in einer Unterdatei ist).
         Allerdings erfolgt derzeit anschließend nichts, um die  Referenzen  zu  schützen  (d.h.  Dateiname  und
         Zeilennummer). Mir ist nicht klar, was hier das beste Vorgehen ist.

AUTOREN

       Dieses  Modul  ist  eine angepasste Version von Sgmlspl (SGML postprocessor for the ONSGMLS parsers), für
       den galt:

        Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>

       Die Anpassung für Po4a wurde erledigt durch:

        Denis Barbier <barbier@linuxfr.org>
        Martin Quinson (mquinson#debian.org)

URHEBERRECHT UND LIZENZ

        Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>.
        Copyright © 2002-2005 SPI, Inc.

       Dieses Programm ist freie Software; Sie können es unter den Bedingungen der GPL v2.0  oder  neuer  (siehe
       die Datei COPYING) vertreiben und/oder verändern.

perl v5.38.2                                       2024-08-28                          LOCALE::PO4A::SGML.3PM(1)