PO4A.1P(1) User Contributed Perl Documentation PO4A.1P(1) NAME po4a - PO-Dateien und ubersetzte Dokumente auf einen Rutsch aktualisieren UBERSICHT po4a [Optionen] Konfig_Datei BESCHREIBUNG Po4a (PO fur alles) erleichtert die Pflege von Dokumentationsubersetzungen mittels der klassischen Gettext-Werkzeuge. Die Hauptfunktionalitat von Po4a besteht darin, dass sie die Ubersetzung des Dokumenteninhaltes von der Dokumentenstruktur entkoppelt. Bitte schauen Sie in die Seite po4a(7) fur eine schonende Einfuhrung in dieses Projekt. Bei der Ausfuhrung wertet po4a alle in seiner Konfigurationsdatei festgelegten Dokumentationsdateien aus. Es aktualisiert die PO-Dateien (die die Ubersetzung enthalten), um alle Anderungen an der Dokumentation abzubilden, und erstellt die ubersetzte Dokumentation, indem der Inhalt der Ubersetzung (wie er sich in den PO-Dateien befindet) in die Struktur des ursprunglichen Master-Dokumentes eingespeist wird. Zuerst enthalten die PO-Dateien nur die zu ubersetzenden Zeichenketten aus der ursprunglichen Dokumentation. Dieses Dateiformat erlaubt es den Ubersetzern, manuell eine Ubersetzung fur jeden Absatz, der von po4a herausgelost wurde, bereitzustellen. Falls die Dokumentation nach der Ubersetzung verandert wird, markiert po4a die entsprechende Ubersetzung als >>fuzzy<< (unscharf) in der PO-Datei. Damit wird um eine manuelle Begutachtung durch die Ubersetzer gebeten. Die Ubersetzer konnen auch ein sogenanntes >>addendum<< bereitstellen, das zusatzliche Inhalte bereitstellt, in denen beispielsweise angegeben wird, wer die Ubersetzung angefertigt hat und wie Fehler berichtet werden sollen. Masterdokumente ---+---->-------->------>------>----+ (Dokumentenerstellung) | | V (Po4a-Ausfuhrung) >-----+--> ubersetzte | | | Dokumente bestehende PO-Dateien ->---> aktualisierte PO-Dateien >-+ | ^ | | | V | +----------<----------<---------+ ^ (manueller Ubersetzungsprozess) | | Addendum -->--------------------------------------------+ Der Arbeitsablauf in po4a ist asynchron, passend fur Open-Source- Projekte. Der Dokumentenersteller schreibt das Master-Dokument in seiner eigenen Geschwindigkeit. Die Ubersetzer prufen und aktualisieren die Ubersetzungen in den PO-Dateien. Die Betreuer fuhren bei Bedarf po4a erneut aus, um alle Anderungen an der Ursprungsdokumentation in den PO-Dateien wiederzugeben und aktualisierte Dokumentenubersetzungen bereitzustellen, indem sie die neusten Ubersetzungen in die neuste Dokumentenstruktur einspeisen. Standardmassig wird ein angegebenes Dokument erstellt, wenn mindestens 80% seines Inhalts ubersetzt ist. Der nicht ubersetzte Text wird in der Ursprungssprache behalten. Die erstellte Dokumentation mischt daher die Sprachen, falls die Ubersetzung nicht vollstandig ist. Sie konnen den Schwellwert von 80% mit der oben beschriebenen Option --keep andern. Beachten Sie aber, dass das Verwerfen von Ubersetzungen, sobald sie nicht mehr zu 100% erfullt sind, fur die Ubersetzer entmutigend sein kann, deren Arbeit fast nie dem Benutzer angezeigt wird, wahrend das Zeigen von >>Ubersetzungen<<, die zu unvollstandig sind, bei Endbenutzer zu Verdruss fuhren kann. Das Speichern der ubersetzten Dokumentationsdateien in dem Versionssteuerungssystem ist wahrscheinlich eine schlechte Idee, da diese Dateien automatisch erstellt werden. Die wertvollen Dateien sind die PO-Dateien, die die harte Arbeit ihrer Mitubersetzer enthalten. Auch finden es manche Leute einfacher, mit den Ubersetzern durch eine Online-Plattform wie weblate zu interagieren, aber dieses ist naturlich vollstandig optional. Schnellstartanleitung Nehmen wir an, dass Sie ein Programm namens foo betreuen, das eine auf englisch geschriebene Handbuchseite man/foo.1 enthalt. (Englisch wird in den meisten Open-Source-Projekten als Bruckensprache verwandt, aber po4a kann in jeder Sprachkombination eingesetzt werden). Vor einiger Zeit stellte jemand eine deutsche Ubersetzung mit dem Namen man/foo.de.1 bereit und verschwand. Dies ist ein Problem, da Sie gerade einen Fehlerbericht bekommen haben, der Sie informiert, dass Ihre Dokumentation eine grob irrefuhrende Information enthalt, die in allen Sprachen korrigiert werden muss. Sie sprechen aber kein Deutsch, so dass Sie nur das Ursprungsdokument korrigieren konnen, nicht die Ubersetzung. Und jetzt mochte ein anderer Beitragender eine japanische Ubersetzung erstellen und Sie sprechen auch kein japanisch. Jetzt ist es Zeit, Ihre Dokumentation nach po4a umzuwandeln, um Ihre Dokumentations-Wartungs-Albtraume zu losen. Sie mochten Ihre Dokumentation je nach Bedarf andern konnen, Sie mochten die Arbeit ihrer Mitubersetzer erleichtern und Sie mochten sicherstellen, dass Ihre Benutzer niemals veraltete und daher irrefuhrende Dokumentation sehen. Die Umwandlung besteht aus zwei Schritten: Einrichtung der Po4a-Infrastruktur und der Umwandlung der bisherigen deutschen Ubersetzung, um die bisherige Arbeit zu retten. Letzterer Teil erfolgt mittels po4a-gettextize wie folgt beschrieben. Wie im Detail in po4a-gettextize(1) dargestellt, ist der Prozess selten vollautomatisch, aber wenn er einmal erledigt ist, dann enthalt die Datei de.po die deutsche Ubersetzung, die in Ihren Po4a-Arbeitsablauf integriert werden kann. po4a-gettextize --format man --master foo.1 --localized foo.de.1 --po de.po Lassen Sie uns nun Po4a konfigurieren. Bei geeigneter Anordung der Dateien, konnte die Konfigurationsdatei so einfach wie folgende sein: [po_directory] man/po4a/ [type: man] man/foo.1 $lang:man/translated/foo.$lang.1 Sie legt fest, dass alle PO-Dateien (die die Arbeit der Ubersetzer enthalten) im Verzeichnis man/po4a/ liegen und dass Sie eine Master- Datei man/foo.1 haben. Falls Sie mehrere Master-Dateien haben, hatten Sie mehrere Zeilen ahnlich der zweiten Zeile. Jeder dieser Zeilen gibt auch an, wohin die entsprechenden Ubersetzungsdateien geschrieben werden sollen. Hier ist die deutsche Ubersetzung von man/foo.1 in man/translated/foo.de.1. Das letzte, was wir zum Abschluss der Konfiguration von po4a benotigen, ist eine POT-Datei, die das Vorlagenmaterial enthalt, das zum Starten einer neuen Ubersetzung verwandt werden soll. Erstellen Sie einfach eine leere Datei mit der Endung .pot im festgelegten po_directory (z.B. man/po4a/foo.pot) und po4a wird sie mit dem erwarteten Inhalt ausfullen. Hier ist eine kurze Wiederholung dieser Installation: man/ | foo.1 <- Die ursprungliche Handbuchseite in englischer Sprache | po4a/ | | de.po <- Die deutsche PO-Ubersetzung aus der Gettextisierung | | foo.pot <- Die POT-Vorlage fur zukunftige Ubersetzung (am Anfang leer) | translated/ <- Verzeichnis, in das die Ubersetzungen hin erzeugt werden po4a.cfg <- Die Konfigurationsdatei Sobald die Installation erfolgt ist, wird po4a Ihre Dokumentation auswerten, die POT-Vorlagendatei aktualisieren und diese zur Aktualisierung der PO-Ubersetzungsdateien und zur Aktualisierung der Dokument-Ubersetzungsdateien verwenden. Alles in einem Befehl: po4a --verbose po4a.cfg Das wars. po4a ist jetzt vollstandig konfiguriert. Sobald Sie die Fehler in man/foo.1 behoben haben, wird der betroffene Absatz in der deutschen Ubersetzung durch den korrigierten Absatz auf Englisch ersetzt. Das Mischen der Sprachen ist nicht optimal, aber es ist die einzige Moglichkeit, Fehler in Ubersetzungen zu beheben, die Sie nicht mal verstehen und sicherzustellen, dass der den Benutzern dargestellte Inhalt niemals irrefuhrend ist. Das Aktualisieren der deutschen Ubersetzung ist in der entsprechenden PO-Datei auch viel leichter, so dass der Sprachen-Mix nicht sehr lange vorliegen konnte. Wenn dann schliesslich die japanische Ubersetzerin eine neue Ubersetzung beitragen will, sollte sie foo.pot in ja.po umbenennen und die Ubersetzung vervollstandigen. Sobald Sie diese Datei haben, legen Sie diese einfach in man/po4a/po/ ab. Wenn Sie dann po4a wieder ausfuhren, erscheint einfach eine ubersetzte Datei als man/translated/foo.ja.1 (vorausgesetzt, dass genug Inhalt ubersetzt ist). OPTIONEN -k, --keep Minimaler Schwellwert in Prozent, ab der die ubersetzte Datei erhalten (d.h. geschrieben) wird, standardmassig 80. D.h., standardmassig mussen Dateien zu 80% ubersetzt sein, um auf Platte geschrieben zu werden. -w, --width Spalte, an der die entstehende Datei umgebrochen werden soll, falls das Format dies unterstutzt (Vorgabe: 76) -h, --help zeigt eine kurze Hilfemeldung an -M, --master-charset Zeichensatz der Dateien, die die zu ubersetzenden Dokumente enthalten. Beachten Sie, dass alle Master-Dokumente im gleichen Zeichensatz vorliegen mussen. -L, --localized-charset Zeichensatz der Dateien, die die lokalisierten Dokumente enthalten. Beachten Sie, dass alle ubersetzte Dateien den gleichen Zeichensatz verwenden werden. -A, --addendum-charset Zeichensatz der Addenda. Beachten Sie, dass alle Addenda im gleichen Zeichensatz vorliegen sollten. -V, --version zeigt die Version des Skripts und beendet sich -v, --verbose Erhohen der Ausfuhrlichkeit des Programms -q, --quiet Verringern der Ausfuhrlichkeit des Programms -d, --debug Fehlersuch- (Debug-)Informationen ausgeben -o, --option Extraoption(en), die an die Formaterweiterung ubergeben werden soll. Lesen Sie die Dokumentation jeder Erweiterung fur weitere Informationen uber die gultigen Optionen und ihre Bedeutungen. Beispielsweise konnten Sie dem AsciiDoc-Auswerter >>-o tablecells<< ubergeben, wahrend der Text-Auswerter >>-o tabs=split<< akzeptierte. -f, --force immer die POT- und PO-Dateien erstellen, selbst wenn po4a dies nicht fur notwendig betrachtet Das Standardverhalten (wenn --force nicht angegeben ist) ist wie folgt: Falls die POT-Datei bereits existiert, wird sie neu erstellt, falls ein Master-Dokument oder die Konfigurationsdatei neuer ist (ausser --no-update ist angegeben). Die POT-Datei wird auch in ein temporares Dokument geschrieben und po4a uberpruft, dass die Anderungen wirklich benotigt werden. Eine Ubersetzung wird auch nur neu erstellt, falls das Master- Dokument, die PO-Datei, einer ihrer Addenda oder die Konfigurationsdatei neuer ist. Um zu vermeiden, dass die Erstellung von Ubersetzungen, die die Schwellwertbarriere nicht erreichen, versucht wird (siehe --keep), kann eine Datei mit der Erweiterung .po4a-stamp erstellt werden (siehe --stamp). Falls ein Master-Dokument Dateien einbindet, soillten Sie den Schalter --force verwenden, da der Anderungszeitpunkt dieser eingebundenen Dateien nicht mit betrachtet wird. Die PO-Dateien werden basierend auf der POT-Datei mittels msgmerge -U neu erstellt. --stamp Sorgt dafur, dass po4a Stempeldateien erstellt, wenn eine Ubersetzung nicht erstellt wurde, da sie den Schwellwert nicht erreichte. Diese Stempeldateien werden entsprechend des erwarteten ubersetzten Dokuments, mit der Erweiterung .po4a-stamp, benannt. Hinweis: Dies aktiviert nur die Erstellung der .po4a-stamp-Dateien. Die Stempeldateien werden immer benutzt, falls sie existieren, und sie werden mit --rm-translations oder wenn die Datei schliesslich ubersetzt ist entfernt. --no-translations die ubersetzten Dokumente nicht erstellen, nur die POT- und PO- Dateien aktualisieren --no-update die POT- und PO-Dateien nicht andern, nur die Ubersetzung darf aktualisiert werden. --keep-translations behalt die existierenden Ubersetzungsdateien, selbst falls die Ubersetzung nicht die durch --keep festgelegte Schwelle erreicht. Dies wird keine Ubersetzungsdateien mit wenigen Inhalten erstellen, sondern bestehende Dateien sichern, deren Ubersetzungen aufgrund von Anderungen an den Master-Dateien verfallen. WARNUNG: Dieser Schalter andert das Verhalten von Po4a ziemlich drastisch: Ihre ubersetzten Dateien werden uberhaupt nicht aktualisiert, bis die Ubersetzung verbessert wird. Verwenden Sie diesen Schalter nur, falls Sie die Auslieferung von veralteter Dokumentation gegenuber einer akuraten nicht ubersetzten Dokumentation bevorzugen. --rm-translations entfernt die ubersetzten Dateien (impliziert --no-translations) --no-backups Seit Version 0.41 macht dieser Schalter nichts und konnte daher in zukunftigen Veroffentlichungen entfernt werden. --rm-backups Seit Version 0.41 macht dieser Schalter nichts und konnte daher in zukunftigen Veroffentlichungen entfernt werden. --translate-only ubersetzte-Datei Nur die angegebene Datei ubersetzen. Das kann nutzlich sein, um die Verarbeitung zu beschleunigen, falls die Konfigurationsdatei eine Reihe Dateien enthalt. Beachten Sie, dass diese Optione die PO- und POT-Dateien nicht aktualisiert. Diese Option kann mehrfach angewandt werden. --variable Var=Wert Definiert eine Variable, die in der po4a-Konfigurationsdatei expandiert wird. Jedes Vorkommen von $(Var) wird durch Wert ersetzt. Diese Option kann mehrfach verwandt werden. --srcdir QUELLVERZ setzt das Basisverzeichnis fur alle Eingabedokumente, die in der Konfigurationsdatei po4a angegeben sind Falls sowohl ZIELVERZ als auch QUELLVERZ festgelegt sind, wird in den folgenden Verzeichnissen, in dieser Reihenfolge, nach Eingabedateien gesucht: ZIELVERZ, das aktuelle Verzeichnis und QUELLVERZ. Ausgabedateien werden in das ZIELVERZ, falls angegeben, oder in das aktuelle Verzeichnis geschrieben. --destdir ZIELVERZ setzt das Basisverzeichnis fur alle in der po4a-Konfigurationsdatei angegebenen Dokumente (siehe --srcdir weiter oben). Optionen, die die POT-Kopfzeilen verandern --porefs Typ Gibt das Referenzformat an. Das Argument Typ kann entweder never (keine Referenz erzeugen), file (nur die Datei ohne Zeilenzahlen festlegen), counter (alle Zeilennummern durch einen ansteigenden Zahler ersetzen) oder full (komplette Referenzen einbinden) sein. Die Vorgabe ist >>full<<. --wrap-po no|newlines|Zahl (Vorgabe: 76) Legt fest, wie die PO-Datei umgebrochen werden soll. Dies ermoglicht die Auswahl zwischen Dateien, die schon umgebrochen sind aber zu GIT-Konflikten fuhren konnen oder Dateien, die leichter automatisch handzuhaben, aber schwerer fur Menschen zu lesen sind. Aus kosmetischen Grunden hat die Gettext-Programmsammlung PO- Dateien in der 77.Spalte umgebrochen. Diese Option legt das Verhalten von Po4a fest. Falls auf einen numerischen Wert gesetzt, wird Po4a die PO-Datei nach dieser Spalte und nach Zeilenumbruchen im Inhalt umbrechen. Falls auf newlines gesetzt, wird Po4a die msgid und msgstr nur nach Zeilenumbruchen im Inhalt auftrennen. Falls auf no gesetzt, wird Po4a die PO-Datei uberhaupt nicht umbrechen. Die Referenzkommentare werden durch die von Po4a intern verwandten Gettext-Werkzeuge immer umgebrochen. Beachten Sie, dass diese Option keine Auswirkung darauf hat, wie msgid und msgstr umgebrochen werden, d.h. wie Zeilenumbruche zu dem Inhalt dieser Zeilen hinzugefugt werden. --master-language Sprache der Quelldateien, die die zu ubersetzenden Dokumente enthalten. Beachten Sie, dass alle Master-Dokumente in der gleichen Sprache vorliegen mussen. --msgid-bugs-address e-mail@adresse Setzt die E-Mail-Adresse, an die Fehler in den Meldungen (msgid) berichtet werden sollen. Standardmassig haben die erstellten POT- Dateien keine >>Report-Msgid-Bugs-To<<-Felder. --copyright-holder Zeichenkette Setzt den Namen des Urhebers in den Kopfzeilen der POT-Datei. Standardmassig ist dies >>Free Software Foundation, Inc.<<. --package-name Zeichenkette Setzt den Paketnamen fur die POT-Kopfzeilen. Standardmassig >>PACKAGE<<. --package-version Zeichenkette Setzt die Paketversion fur die POT-Kopfzeilen. Standardmassig >>VERSION<<. Optionen, um PO-Dateien zu verandern --msgmerge-opt Optionen Extraoptionen fur msgmerge(1). Hinweis: $lang wird zur aktuellen Sprache erweitert. --no-previous Diese Option entfernt --previous aus den an msgmerge ubergebenen Optionen. Dies ist notwendig, um Version von gettext-Versionen vor 0.16 zu unterstutzen. --previous Diese Option fugt --previous zu den an msgmerge ubergebenen Optionen hinzu. Dies benotigt gettext 0.16 oder neuer und ist standardmassig aktiviert. KONFIGURATIONSDATEI Po4a erwartet eine Konfigurationsdatei als Argument. Diese Datei muss die folgenden Elemente enthalten: o Den Pfad zu den PO-Dateien und der Liste der in dem Projekt existierenden Sprachen. o Optional, einige globale Optionen und sogenannte Konfigurationsaliase, die als Vorlagen zur Konfiguration individueller Master-Dateien verwandt werden. o Die Liste der zu ubersetzenden Master-Dateien, zusammen mit speziellen Parametern. Alle Zeilen enthalten einen Befehl zwischen eckigen Klammern, gefolgt von seinen Parametern. Kommentare beginnen mit dem Zeichen >>#<< und gehen bis zum Zeilenende. Sie konnen das Zeilenende maskieren, um einen Kommentar uber mehrere Zeilen auszubreiten. In dieser Seite werden einige vollstandige Beispiele vorgestellt, andere Beispiele konnen im Verzeichnis "t/cfg" der Quelldistribution gefunden werden. Finden der PO- und POT-Dateien Die einfachste Losung ist die explizite Angabe der Pfade zu den POT- und PO-Dateien, wie folgt: [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po Die speziellen Pfade zu der POT-Datei zuerst, und dann die Pfade zu den deutschen und franzosischen PO-Dateien. Die gleiche Information kann wie folgt geschrieben werden, um das Risko von Kopier-/Einfugefehlern zu vermeiden: [po4a_langs] fr de [po4a_paths] man/po/project.pot $lang:man/po/$lang.po Die Komponente $lang wird automatisch mittels der bereitgestellten Sprachliste ausgegeben, wodurch das Risiko von Kopieren-/Einfuge-Fehlern reduziert wird, wenn eine neue Sprache hinzugefugt wird. Die gleiche Information kann noch kompakter geschrieben werden, indem Sie nur die Pfade zu dem Verzeichnis angeben, das Ihr Ubersetzungsprojekt enthalt, wie folgt: [po_directory] man/po/ Das bereitgestellte Verzeichnis muss eine Gruppe von PO-Dateien enthalten, jede mit Namen XX.po, wobei "XX" der ISO 631-Code der in dieser Datei verwandten Sprache ist. Das Verzeichnis muss auch eine einzelne POT-Datei enthalten, die die Endung ".pot" tragt. Beim ersten Lauf kann diese Datei leer sein, sie muss aber existieren (Po4a kann den Namen, der vor der Erweiterung zu verwenden ist, nicht erraten). Beachten Sie, dass Sie nur einen aus "po_directory" und "po4a_paths" auswahlen durfen. Ersterer ("po_directory") ist kompakter, reduziert das Risiko von Kopieren-/Einfugenfehlern weiter, erzwingt aber die Verwendung von einer erwarteten Projektstruktur und Dateinamen. Die zweite Moglichkeit ("po4a_paths") ist expliziter, wahrscheinlich lesbarer und wird empfohlen, wenn Sie Ihr erstes Projekt mit Po4a einrichten. Zentralisierte oder getrennte PO-Dateien? Standardmassig erstellt Po4a eine einzelne PO-Datei pro Zielsprache, die den gesamten Inhalt Ihres Ubersetzungsprojektes enthalt. Mit dem Wachstum Ihres Projektes konnte die Grosse der Dateien problematisch werden. Bei der Verwendung von Weblate ist es moglich, fur jedes Ubersetzungssegment (d.h., msgid) Prioritaten festzulegen, so dass wichtige zuerst ubersetzt werden. Einige Ubersetzungsteams bevorzugen es aber weiterhin, den Inhalt in mehrere Teile zu trennen. Um eine PO-Datei pro Master-Datei zu erhalten, mussen Sie einfach die Zeichenkette $master im Namen Ihrer PO-Dateien auf der "[po4a_paths]"-Zeile wie folgt verwenden: [po4a_paths] dok/$master/$master.pot $lang:dok/$master/$lang.po Mit dieser Zeile wird Po4a getrennte POT- und PO-Dateien fur jedes zu ubersetzende Dokument erstellen. Wenn Sie beispielsweise 3 Dokumente und 5 Sprachen haben, fuhrt dies zu 3 POT-Dateien und 15 PO-Dateien. Diese Dateien werden so benannt, wie sie in der Vorlage "po4a_paths" festgelegt wurden, wobei $master durch den Basisnamen jedes der zu ubersetzenden Dokumente ersetzt wird. Im Falle von Namenskonflikten konnen Sie mit dem Parameter "pot=" die zu verwendende POT-Datei festlegen. Diese Funktionalitat kann auch dazu verwandt werden, um mehrere ubersetzte Dateien in die gleiche POT-Datei zu gruppieren. Das folgende Beispiel erstellt nur zwei POT-Dateien: l10n/po/foo.pot (dass das Material aus foo/gui.xml enthalt) und l10n/po/bar.pot (dass das Material aus sowohl bar/gui.xml als auch bar/cli.xml enthalt). [po4a_langs] de fr ja [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po [type: xml] foo/gui.xml $lang:foo/gui.$lang.xml pot=foo [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml pot=bar [type: xml] bar/cli.xml $lang:bar/cli.$lang.xml pot=bar Im getrennten Modus baut po4a wahrend der PO-Aktualisierung ein temporares Kompendium auf, um die Ubersetzungen zwischen allen PO- Dateien gemeinsam zu benutzen. Falls zwei PO-Dateien eine verschiedene Ubersetzung der gleichen Zeichenkette haben, wird po4a diese Zeichenkette mit >>fuzzy<< markieren und beide Ubersetzungen in alle PO-Dateien einstellen, die diese Zeichenkette enthalten. Wenn der Ubersetzer die Zeichenkette bereinigt, dann wird die Ubersetzung automatisch in jede PO-Datei ubernommen. Angabe der zu ubersetzenden Dokumente Sie mussen auch die zu ubersetzenden Dokumente auffuhren. Fur jede Master-Datei mussen Sie den zu verwendenden Format-Auswerter, den Ort der zu erstellenden Dokumente und optional weitere Konfiguration festlegen. Falls die Dateinamen Leerzeichen enthalten, mussen sie in Anfuhrungszeichen eingeschlossen werden. Beispiel: [type: sgml] "dok/mein Zeug.sgml" "fr:dok/fr/mon truc.sgml" de:dok/de/mein\ kram.sgml [type: man] script fr:dok/fr/script.1 de:dok/de/script.1 [type: docbook] dok/script.xml fr:dok/fr/script.xml \ de:dok/de/script.xml Aber diese drei komplexen Zeilen sind wieder schwer zu lesen und zu verandern, z.B. wenn neue Sprachen hinzugefugt werden. Es ist viel einfacher, die Dinge neu mittels der Vorlage $lang wie folgt zu organisieren: [type: sgml] dok/mein_zeug.sgml $lang:dok/$lang/mein_zeug.sgml [type: man] script.1 $lang:po/$lang/script.1 [type: docbook] dok/script.xml $lang:dok/$lang/script.xml Angabe der Optionen Es gibt zwei Arten von Optionen: Po4a-Optionen sind Vorgabewerte fur die Po4a-Befehlszeilenoptionen, wahrend Formatoptionen zur Anderung des Verhaltens der Formatauswertprogramme verwandt werden. Als Po4a-Option konnten Sie beispielsweise in Ihrer Konfigurationsdatei festlegen, dass der Vorgabewert fur den Befehlszeilenparameter von --keep 50% statt 80% betragt. Formatoptionen sind in ihren speziellen Handbuchseiten fur jedes Auswertmodul dokumentiert, z.B. Locale::Po4a::Xml(3pm). Sie konnten beispielsweise nostrip an das XML-Auswertprogramm ubergeben, um die Leerzeichen rund um herausgeloste Zeichenketten nicht zu entfernen. Sie konnen diese Optionen fur eine bestimmte Masterdatei oder sogar fur eine bestimmte Ubersetzung dieser Datei mittels "opt:" und "opt_XX:" fur die Sprache "XX" ubergeben. Im nachfolgenden Beispiel wird die Option nostrip fur den XML-Auswerter (fur alle Sprachen) ubergeben, wahrend der Schwellwert fur die franzosische Ubersetzung auf 0% reduziert wird (diese wird daher immer beibehalten). [type:xml] toto.xml $lang:toto.$lang.xml opt:"-o nostrip" opt_fr:"--keep 0" Auf jeden Fall mussen diese Konfigurationsteile sich am Ende der Zeile befinden. Die Erklarung der Dateien muss zuerst kommen, dann das Addendum, falls vorhanden, (siehe unten) und dann nur die Optionen. Die Gruppierung der Konfigurationsteile ist nicht sehr wichtig, da die Elemente intern als Zeichenketten aneinandergehangt werden. Die folgenden Beispiele sind alle aquivalent: [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 Beachten Sie, dass beim Bau von POT-Dateien die sprachspezifischen Optionen nicht verwandt werden. Es ist beispielsweise unmoglich, nostrip nur an das Auswertprogramm zu ubergeben, wenn die franzosische Ubersetzung gebaut wird, da die gleiche POT-Datei zur Aktualisierung aller Sprachen verwandt wird. Daher sind die einzigen sprachspezifischen Optionen diejenigen, die bei der Erstellung der Ubersetzung verwandt werden konnen, wie die Option "--keep". Konfigurationsaliase Um die gleiche Option an mehrere Dateien zu ubergeben, ist es am besten, wie folgt einen Typ-Alias zu definieren. Im nachsten Beispiel wird "--keep 0" an jede italienische Ubersetzung mittels dieses Typs "test" ubergeben, der eine Erweiterung des Typs "man" ist. [po4a_alias:test] man opt_it:"--keep 0" [type: test] man/page.1 $lang:man/$lang/page.1 Sie konnen auch einen bestehenden Typ wie folgt erweitern, um den gleichen Aliasnamen erneut zu benutzen. Dies wird nicht als fehlerhafte rekursive Definition interpretiert. [po4a_alias:man] man opt_it:"--keep 0" [type: man] man/page.1 $lang:man/$lang/page.1 Globale Vorgabeoptionen Sie konnen auch "[options]"-Zeilen verwenden, um Optionen zu definieren, die fur alle Dateien, unabhangig von deren Typ, verwandt werden mussen. [options] --keep 20 --option nostrip Wie bei Befehlszeilenoptionen konnen Sie die in der Konfigurationsdatei ubergebenen Parameter abkurzen: [options] -k 20 -o nostrip Optionsprioritaten Die Optionen jeder Quelle werden aneinandergehangt, wodurch sichergestellt wird, dass die Vorgabewerte leicht durch speziellere Optionen ausser Kraft gesetzt werden konnen. Die Reihenfolge ist wie folgt: o "[options]"-Zeilen stellen Vorgabewerte bereit, die durch jede andere Quelle ausser Kraft gesetzt werden konnen. o Dann werden Typ-Aliase verwandt. Sprachspezifische Einstellungen setzen die fur alle Sprachen angewandten Einstellungen ausser Kraft. o Einstellungen, die fur eine gegebene Master-Datei spezifisch sind, setzen sowohl die Vorgabe- als auch die von Typ-Alias kommenden Einstellungen ausser Kraft. In diesem Fall setzen auch sprachspezifische Einstellungen die globalen ausser Kraft. o Schliesslich setzen auf der po4a-Befehlszeile bereitgestellte Parameter alle Einstellungen aus Konfigurationsdateien ausser Kraft. Beispiel Hier ist ein Beispiel, das zeigt, wie Leer- und Anfuhrungszeichen maskiert werden: [po_directory] man/po/ [options] --master-charset UTF-8 [po4a_alias:man] man opt:"-o \"mdoc=NAME,SEE ALSO\"" [type:man] t-05-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \ opt:"-k 75" opt_it:"-L UTF-8" opt_fr:--verbose Addendum: Zusatzliche Inhalte in der Ubersetzung hinzufugen Falls Sie einen zusatzlichen Abschnitt zu der Ubersetzung hinzufugen mochten, beispielsweise fur Danksagungen an den Ubersetzer, mussen Sie ein Addendum fur die Zeile, die ihre Master-Datei definiert, hinzufugen. In der Handbuchseite po4a(7) finden Sie weitere Details zu der Syntax von Addendum-Dateien. [type: pod] script fr:dok/fr/script.1 \ add_fr:dok/l10n/script.fr.add Sie konnen wie folgt auch Sprachvorlagen verwenden: [type: pod] Skript $lang:dok/$lang/script.1 \ add_$lang:dok/l10n/script.$lang.add Falls ein Addendum nicht angewandt werden kann, wird die Ubersetzung verworfen. Attribute fur die Addendum-Angabe Addendum-Attribute konnen die Konfigurationsdatei in Fallen, in denen nicht alle Sprachen ein Addendum bereitstellen oder wenn sich Addenda von Sprache zu Sprache verandern, vereinfachen. Das Attribut ist ein einzelnes Zeichen, das sich vor dem Dateinamen befindet. ? Berucksichtige Addendum_Pfad falls die Datei existiert, andernfalls passiert nichts. @ Addendum_Pfad ist kein regulares Addendum, sondern eine Datei, die eine Liste von Addenda enthalt, eines pro Zeile. Jedem Addendum kann ein Modifikator vorangestellt sein. ! Addendum_Pfad wird verworfen, es wird nicht geladen und wird auch nicht von weiteren Addendumspezifikationen geladen. Folgendes Beispiel enthalt ein Addendum fur jede Sprache, aber nur, falls es existiert. Falls es nicht existiert, wird kein Fehler gemeldet. [type: pod] script $lang:dok/$lang/script.1 add_$lang:?dok/l10n/script.$lang.add Folgendes Beispiel enthalt eine Liste von Addenda fur jede Sprache: [type: pod] script $lang:dok/$lang/script.1 add_$lang:@dok/l10n/script.$lang.add Ubersetzte Zeichenketten filtern Manchmal mochten Sie einige Zeichenketten vor dem Ubersetzungsprozess verstecken. Um dies zu erreichen, konnen Sie einen "pot_in"-Parameter an Ihre Masterdatei ubegeben, um den Namen der Datei festzulegen, die statt des echten Masters fur den Bau der POT-Datei verwandt werden soll. Hier ist ein Beispiel: [type:docbook] book.xml \ pot_in:book-filtered.xml \ $lang:book.$lang.xml Mit dieser Einstellung werden die zu ubersetzenden Zeichenketten aus book-filtered.xml herausgelost (diese Datei muss vor dem Aufruf von po4a erstellt worden sein), wahrend die ubersetzten Dateien aus book.xml heraus gebaut werden. Damit wird jede Zeichenkette, die Teil von book.xml ist, aber nicht in book-filtered.xml vorkommt, nicht Teil der PO-Dateien sein und damit verhindert, dass die Ubersetzer eine Ubersetzung davon bereitstellen. Daher verbleiben diese Zeichenketten bei der Erstellung ubersetzter Dokumente unverandert. Damit wird logischerweise der Anteil der Ubersetzung reduziert und Sie konnten die Option "--keep" verwenden mussen, um sicherzustellen, dass das Dokument trotzdem erstellt wird. SIEHE AUCH po4a-gettextize(1), po4a(7). AUTOREN Denis Barbier Nicolas Francois Martin Quinson (mquinson#debian.org) URHEBERRECHT UND LIZENZ Copyright 2002-2023 SPI, Inc. Dieses Programm ist freie Software; Sie konnen es unter den Bedingungen der GPL v2.0 oder neuer (siehe die Datei COPYING) vertreiben und/oder verandern. perl v5.38.2 2024-06-26 PO4A.1P(1)