.\" 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::Sgml 3pm" .TH Locale::Po4a::Sgml 3pm "2023-01-03" "Po4a-Werkzeuge" "Po4a-Werkzeuge" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Locale::Po4a::Sgml \- konvertiert SGML\-Dokumente von/in PO\-Dateien .SH "BESCHREIBUNG" .IX Header "BESCHREIBUNG" Das Projektziel von Po4a (\s-1PO\s0 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. .PP Locale::Po4a::Sgml ist ein Modul, um bei der Übersetzung von Dokumentation im SGML-Format in andere [natürliche] Sprachen zu helfen. .PP Dieses Module verwendet \fBonsgmls\fR(1), um SGML-Dateien auszuwerten. Stellen Sie daher sicher, dass es installiert ist. Stellen Sie auch sicher, dass die \s-1DTD\-\s0 der SGML-Dateien im System installiert sind. .SH "VON DIESEM MODUL AKZEPTIERTE OPTIONEN" .IX Header "VON DIESEM MODUL AKZEPTIERTE OPTIONEN" .IP "\fBdebug\fR" 4 .IX Item "debug" Durch Leerzeichen getrennte Liste von Schlüsselwörtern, die angeben, welchen Teil Sie auf Fehler prüfen wollen. Mögliche Werte sind: tag, generic, entities und refs. .IP "\fBverbose\fR" 4 .IX Item "verbose" mehr Informationen darüber ausgeben, was vorgeht .IP "\fBtranslate\fR" 4 .IX Item "translate" durch Leerzeichen getrennte Liste von zusätzlichen Markierungen (»Tags«) (neben denen von der \s-1DTD\s0 vorgegebenen), deren Inhalt eine zusätzliche »msgid« ergeben soll .IP "\fBsection\fR" 4 .IX Item "section" durch Leerzeichen getrennte Liste von zusätzlichen Markierungen (»Tags«) (neben denen von der \s-1DTD\s0 vorgegebenen), die andere Markierungen enthalten, wobei einige in die Kategorie \fBtranslate\fR fallen .IP "\fBindent\fR" 4 .IX Item "indent" durch Leerzeichen getrennte Liste von Markierungen (»Tags«), die die Einzugsstufe erhöhen .IP "\fBverbatim\fR" 4 .IX Item "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. .IP "\fBempty\fR" 4 .IX Item "empty" Markierungen (»Tags«), die nicht geschlossen werden müssen .IP "\fBignore\fR" 4 .IX Item "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 ein guter Kandidat für diese Kategorie, da das Hinzufügen in den Abschnitt »translate« Msgids erzeugen würde, die keine kompletten Sätze sind, was nicht gut wäre. .IP "\fBattributes\fR" 4 .IX Item "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 lang, dass das Attribut »lang« nur übersetzt werden soll, wenn es Teil der Markierung , die wiederum Teil der Markierung ist. Die Namen der Markierungen sind eigentlich reguläre Ausdrücke, daher können Sie auch Formulierungen wie lang wählen, um das Attribut »lang« nur zu übersetzen, wenn es sich in der Markierung oder befindet. .IP "\fBqualify\fR" 4 .IX Item "qualify" Eine durch Leerzeichen getrennte Liste von Attributen, für die die Übersetzung über den Attributnamen qualifiziert werden muss. Beachten Sie, dass diese Einstellung das angegebene Attribut auch automatisch zu der Liste »attributes« hinzufügt. .IP "\fBforce\fR" 4 .IX Item "force" fortfahren, selbst falls die \s-1DTD\s0 unbekannt ist oder falls Onsgmls Fehler in der Eingabedatei findet .IP "\fBinclude-all\fR" 4 .IX Item "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 »Á« enthält, selbst wenn ich daran zweifle, dass das jemals passieren wird … .IP "\fBignore-inclusion\fR" 4 .IX Item "ignore-inclusion" Durch Leerzeichen getrennte Liste, die nicht eingefügt wird. Benutzen Sie diese Option mit Vorsicht: Sie könnte Onsgmls (intern benutzt) veranlassen, Markierungen hinzuzufügen und das Ausgabedokument ungültig zu berechnen. .SH "STATUS DIESES MODULS" .IX Header "STATUS DIESES MODULS" Das Ergebnis ist perfekt, d.h. die erstellten Dokumente sind identisch. Aber es gibt noch ein paar Probleme: .IP "\(bu" 2 Die Fehlerausgabe von Onsgmls wird standardmäßig nach /dev/null umgeleitet. Dies ist eindeutig schlecht. Ich weiß nicht, wie ich das vermeiden kann. .Sp Das Problem liegt darin, dass ich die bedingte Einbindung (d.h. das Zeug \f(CW\*(C`\*(C'\fR) vor Onsgmls »schützen« muss. Andernfalls futtert Onsgmls das auf und ich weiß nicht, wie ich das im letztendlichen Dokument wieder herstellen kann. Um das zu vermeiden, schreibe ich sie in \f(CW\*(C`{PO4A\-beg\-foo}\*(C'\fR und \f(CW\*(C`{PO4A\-end}\*(C'\fR um. .Sp Das Problem dabei ist, dass \f(CW\*(C`{PO4A\-end}\*(C'\fR und so etwas im Dokument ungültig sind (nicht in einer

\-Markierung oder so). .Sp Falls Sie die Onsgmls-Ausgabe sehen wollen, fügen Sie einfach Folgendes zu Ihrer Befehlszeile (oder der Po4a\-Konfigurationszeile) hinzu: .Sp .Vb 1 \& \-o debug=onsgmls .Ve .IP "\(bu" 2 Es funktioniert nur mit der DebianDoc\- und DocBook-DTD. Hinzunahme der Unterstützung für eine neue \s-1DTD\s0 sollte sehr leicht sein. Der Mechanismus ist für alle \s-1DTD\s0 identisch, Sie müssen nur eine Liste der existierenden Markierungen und einige ihrer Charakteristika angeben. .Sp 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. .IP "\(bu" 2 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. .Sp Ich habe DocBook nur mit der \s-1SAG\s0 (System Administrator Guide) getestet, allerdings ist dieses Dokument sehr groß und sollte den Großteil der DocBook\-Spezialitäten verwenden. .Sp Für DebianDoc habe ich einige der Handbücher vom \s-1DDP\s0 getestet, aber noch nicht alle. .IP "\(bu" 2 Im Falle von Dateieinbindungen werden Zeichenkettenreferenzen von Meldungen in PO-Dateien (d.h. Zeilen der Art \f(CW\*(C`#: en/titletoc.sgml:9460\*(C'\fR) falsch sein. .Sp Dies rührt daher, dass die Datei vorbearbeitet wird, um die bedingten Einbindungen (d.h. das \f(CW\*(C`\*(C'\fR Zeug) und einige Entitäten (wie &version) vor Onsgmls 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 zur Auswertung übergeben wird. .Sp 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. .SH "AUTOREN" .IX Header "AUTOREN" Dieses Modul ist eine angepasste Version von Sgmlspl (\s-1SGML\s0 postprocessor for the \s-1ONSGMLS\s0 parsers), für den galt: .PP .Vb 1 \& Copyright © 1995 David Megginson .Ve .PP Die Anpassung für Po4a wurde erledigt durch: .PP .Vb 2 \& Denis Barbier \& Martin Quinson (mquinson#debian.org) .Ve .SH "URHEBERRECHT UND LIZENZ" .IX Header "URHEBERRECHT UND LIZENZ" .Vb 2 \& Copyright © 1995 David Megginson . \& Copyright © 2002\-2005 SPI, Inc. .Ve .PP Dieses Programm ist freie Software; Sie können es unter den Bedingungen der \s-1GPL\s0 (siehe die Datei \s-1COPYING\s0) vertreiben und/oder verändern.