PO4A-GETTEXTIZE.1P(1) User Contributed Perl Documentation NAME po4a-gettextize - konvertiert eine Originaldatei (und ihre Ubersetzungen) in eine PO-Datei UBERSICHT po4a-gettextize -f Fmt -m Master.dok [-l XX.dok] -p XX.po (XX.po ist die Ausgabe, alles andere sind Eingaben) 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. Das Skript po4a-gettextize hilft Ihnen bei der Umwandlung Ihrer bereits bestehenden Ubersetzung in einen Po4a-basierten Arbeitsablauf. Dies sollte nur einmalig passieren, um bestehende Ubersetzungen zu retten, wahrend sie in Po4a konvertiert werden, und nicht immer wiederkehrend, nach der Umwandlung Ihres Projekts. Dieser aufwandige Prozess wird im Detail im nachfolgenden Abschnitt >>Umwandlung einer handischen Ubersetzung nach Po4a<< beschrieben. Sie mussen eine Master-Datei (d.h. die Quelldatei auf Englisch) und eine bestehende ubersetzte Datei (z.B. ein vorheriger Ubersetzungsversuch ohne Po4a) bereitstellen. Falls Sie mehr als eine Master- oder Ubersetzungsdatei bereitstellen, werden sie nacheinander verwandt, aber es konnte einfacher sein, jede Seite oder jedes Kapitel separat zu gettextisieren, und dann msgmerge zu verwenden, um alle PO- Dateien zusammenzufuhren. Wie Sie mochten. Falls das Master-Dokument Zeichen ausserhalb von ASCII enthalt, wird die neuerstellte PO-Datei UTF-8-kodiert sei. Falls das Master-Dokument komplett ASCII-kodiert ist, wird die erstellte PO-Datei die Kodierung des ubersetzten Eingabedokuments verwenden. OPTIONEN -f, --format Format der Dokumentation, mit der Sie arbeiten mochten. Verwenden Sie die Option --help-format, um eine Liste der verfugbaren Formate zu erhalten. -m, --master Datei, die das zu ubersetzende Master-Dokument enthalt. Sie konnen diese Option mehrfach verwenden, falls Sie mehrere Dokumente mit Gettext behandeln mochten. -M, --master-charset Zeichensatz der Datei, die das zu ubersetzende Dokument enthalt. -l, --localized Datei, die das lokalisierte (ubersetzte) Dokument enthalt. Falls Sie mehrere Master-Dateien angeben, konnte es sinnvoll sein, mehrere lokalisierte Dateien durch mehrfache Verwendung dieser Option anzugeben. -L, --localized-charset Zeichensatz der Datei, die das lokalisierte Dokument enthalt. -p, --po Datei, in die der Nachrichtenkatalog geschrieben werden soll. Falls keine angegeben ist, wird der Nachrichtenkatalog auf die Standardausgabe geschrieben. -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. -h, --help zeigt eine kurze Hilfemeldung an --help-format die von Po4a verstandenen Dokumentationsformate auflisten -k --keep-temps die temporaren Master- und vor dem Zusammenfuhren gebauten lokalisierten POT-Dateien behalten. Dies kann hilfreich sein, um zu verstehen, warum Dateien nicht mehr synchron sind und damit zu Gettextisierungs-Problemen fuhren. -V, --version zeigt die Version des Skripts und beendet sich -v, --verbose Erhohen der Ausfuhrlichkeit des Programms -d, --debug Fehlersuch- (Debug-)Informationen ausgeben --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<<. Umwandlung einer handischen Ubersetzung nach Po4a po4a-gettextize synchronisiert die Master- und die ubersetzen Dateien um ihre Inhalte in eine PO-Datei auszulosen. Der Inhalt der Master- Datei ergibt die msgid, wahrend der Inhalt der ubersetzten Dateien die msgstr ergibt. Dieser Prozess ist etwas fragil: es wird angenommen, dass die N-te Zeichenkette der ubersetzten Datei die Ubersetzung der N-ten Zeichenkette des Originals ist. Gettextisierung funktioniert am besten, wenn es Ihnen gelingt, exakt die gleiche Version des ursprunglichen Dokuments zu finden, das fur die Ubersetzung verwandt wurde. Selbst dann konnte es notwendig sein, dass sie mit der Master-Datei als auch den ubersetzten Dateien herumbasteln, um ihre Strukturen anzupassen, falls diese vom ursprunglichen Ubersetzer geandert wurden. Daher wird empfohlen, mit Kopien der Dateien zu arbeiten. Intern berichtet jedes Po4a-Auswerteprogramm den syntaktischen Typ jeder ausgelesenen Zeichenkette. Damit werden wahrend der Gettextisierung Desynchronisationen erkannt. Im nachfolgenden Beispiel ist es sehr unwahrscheinlich, dass die vierte Zeichenkette der Ubersetzung (vom Typ >>Kapitel<<) die Ubersetzung der vierten Zeichenkette des Originals (vom Typ >>Absatz<<) ist. Es ist wahrscheinlicher, dass ein neuer Absatz im Ursprungsdokument hinzugefugt oder dass zwei Absatze in der Ubersetzung zusammengefasst wurden. Original Ubersetzung Kapitel Kapitel Absatz Absatz Absatz Absatz Absatz Kapitel Kapitel Absatz Absatz Absatz po4a-gettextize wird jede Strukturdesynchronisation ausfuhrlich diagnostizieren. Wenn dies passiert, sollten Sie die Dateien manuell bearbeiten, um Pseudo-Absatze hinzuzufugen oder einigen Inhalt hier oder dort zu entfernen, bis die Struktur beider Dateien genau ubereinstimmt. Nachfolgend werden einige Tricks beschrieben, um dabei das meiste der bestehenden Ubersetzung zu retten. Falls Sie Gluck haben und die Dateistrukturen sofort genau passen, ist die Erstellung einer PO-Datei eine Frage von Sekunden. Andernfalls werden Sie schnell verstehen, warum dieser Prozess einen so scheusslichen Namen hat :). Selbst dann ist die Gettextisierung oft schneller als die Neuubersetzung von allem. Ich habe die franzosische Ubersetzung der gesamten Perl-Dokumentation an einem Tage gettextisiert, obwohl es viele Synchronisierungsprobleme gab. Im Angesicht der Textmenge (2 MB an ursprunglichem Text), hatte der Neustart der Ubersetzung ohne Rettung der alten Ubersetzung mehrere Monate an Arbeit bedeutet. Zusatzlich ist dies der Preis, den Sie zur Nutzung des Komforts von Po4a zahlen mussen. Sobald die Konvertierung erfolgte, ist die Synchronisation zwischen dem Master-Dokument und den Ubersetzungen immer voll automatisch. Nach einer erfolgreichen Gettextisierung sollten die erstellten Dokumente manuell auf unerkannte Abweichungen und nicht gemeldete Fehler uberpruft werden, wie dies nachfolgend beschrieben ist. Tipps und Tricks fur den Gettextisierungsprozess Die Gettextisierung stoppt sofort, wenn eine Desynchronisierung erkannt wurde. Wenn das passiert, mussen Sie die Dateien soweit notwendig bearbeiten und die Strukturen der Dateien wieder anpassen. po4a-gettextize erklart relativ ausfuhrlich, wenn etwas schief gelaufen ist. Es werden die Zeichenketten berichtet, die nicht zueinander passen, ihre Position im Text und ihr Typ. Desweiteren wird die soweit generierte PO-Datei in gettextization.failed.po zur weiteren Untersuchung ausgegeben. Hier sind weitere Tricks, die Ihnen bei diesem muhsamen Prozess helfen und sicherstellen, dass sie das meiste der vorhergehenden Ubersetzung retten: o Entfernen Sie samtlichen zusatzlichen Inhalt der Ubersetzung, wie beispielsweise Absatze, die den Ubersetzern danken. Sie sollten zu po4a separat als Addendum hinzugefugt werden (siehe po4a(7)). o Bei der Bearbeitung der Dateien zur Anpassung ihrer Struktur sollten Sie bevorzugt die Ubersetzung bearbeiten. Falls die Anderungen am Original zu umfangreich sind, passen die alten und neuen Versionen wahrend der ersten Po4a-Ausfuhrung nach der Gettextisierung nicht mehr zusammen (siehe unten). Jede nicht passende Ubersetzung wird sowieso verworfen. Mit diesem Wissen sollten Sie weiterhin das Originaldokument bearbeiten, falls es andernfalls zu schwer ist, den Gettextisierungsprozess fortzufuhren, selbst falls das bedeutet, dass ein Absatz der Ubersetzung verworfen wird. Das Wichtigste ist, eine erste PO-Datei zum Starten zu bekommen. o Haben Sie keine Scheu, ursprungliche Inhalte zu loschen, die in der ubersetzten Version nicht erscheinen wurden. Dieser Inhalt wird danach automatisch wieder eingefugt, wenn die PO-Datei mit dem Dokument synchronisiert wird. o Sie sollten wahrscheinlich den Ursprungsautor uber samtliche gerechtfertigten Strukturanderungen in der Ubersetzung informieren. Probleme in dem Ursprungsdokument sollten an den Autor berichtet werden. Wenn Sie diese nur in Ihrer Ubersetzung korrigieren, werden diese nur fur einen Teil der Gemeinschaft korrigiert. Und desweiteren ist das unmoglich, wenn Sie Po4a verwenden ;) Aber am besten warten Sie damit, bis Sie die Umwandlung mit po4a fertiggestellt haben, bevor Sie die Ursprungsdateien andern. o Manchmal passen die Inhalte des Absatzes, aber ihr Typ nicht. Dies zu korrigieren hangt stark vom Format ab. In POD und Man kommt dies oft daher, dass bei einem der beiden eine Zeile enthalten ist, die mit einem Leerzeichen beginnt. In diesen Formaten kann so ein Absatz nicht umgebrochen werden und erhalt daher einen anderen Typ. Entfernen Sie einfach das Leerzeichen und es klappt wieder. Es kann sich auch um einen Tippfehler im Namen der Markierung (Tags) in XML handeln. Entsprechend konnten zwei Absatze in POD zusammengefasst worden sein, wenn die trennende Zeile Leerzeichen enthalt oder wenn es keine Leerzeile zwischen der =item-Zeile und dem Inhalt des >>item<>fuzzy<<) markiert sind. Sie mussen nur auf offensichtliche Ubereinstimmungsprobleme hin prufen, da schlecht passende Ubersetzungen in nachfolgenden Schritten verworfen werden, wahrend Sie sie eigentlich retten wollen. Glucklicherweise verlangt dieser Schritt nicht, dass Sie die Zielsprache verstehen, sie mussen nur ahnliche Elemente in jeder msgid und seiner entsprechenden msgstr erkennen. Da ich selbst Franzosisch, Englisch und etwas Deutsch spreche, kann ich das mindestens fur alle europaischen Sprachen durchfuhren. Manchmal gelingt es mir sogar, Zuordnungsprobleme in nicht lateinischen Sprachen zu erkennen, indem ich auf die Lange der Zeichenketten, Struktur der Phrasen (passt die Anzahl der Satzzeichen?) und andere Hinweise achte, aber ich bevorzuge, wenn jemand anders diese Sprachen uberprufen kann. Falls Sie eine falsche Zuordnung erkennen, bearbeiten Sie das Original und die Ubersetzungsdateien, falls po4a-gettextize einen Fehler meldet und versuchen Sie es erneut. Sobald Sie eine geeigente PO-Datei fur Ihre bisherige Ubersetzung haben, sichern Sie diese, bis Sie Po4a korrekt zum Funktionieren bekommen. po4a das erste Mal ausfuhren Am einfachsten wird Po4a eingerichtet, indem eine Konfigurationsdatei po4a.conf geschrieben und das integrierte po4apo4a-Programm verwandt wird (po4a-updatepo und po4a-translate sind veraltet). Bitte lesen Sie den Abschnitt >>KONFIGURATIONSDATEI<< in der Dokumentation po4a(1) fur weitere Details. Wenn po4a das erste Mal ausgefuhrt wird, wird die aktuelle Version der Master-Dokumente zur Aktualisierung der PO-Dateien, die die alten, zu rettenden Ubersetzungen enthalten, verwandt. Das kann eine ganze Zeit dauern, da viele der msgids der Gettextisierung nicht genau auf die Elemente der POT-Datei von den neuesten Master-Dateien passen. Dies zwingt Gettext dazu, den ahnlichsten mittels eines teueren Ahnlichkeitsalgorithmus fur Zeichenketten zu ermitteln. Beispielsweise dauert der erste Lauf uber die franzosische Ubersetzung der Perl- Dokumentation (5,5 MB PO-Datei) mehr als 48 Stunden (ja, zwei Tage), wahrend nachfolgende Laufe nur Sekunden dauerten. Verschieben Ihrer Ubersetzung in den Produktivbetrieb Nach diesem ersten Lauf sind die PO-Dateien bereit, von Ubersetzern gepruft zu werden. Alle Eintrage in der PO-Datei wurden durch po4a-gettextization als unscharf markiert, wodurch ihre sorgfaltige Prufung vor der Verwendung erzwungen wird. Ubersetzer sollten sich jeden Eintrag vornehmen und nachprufen, dass die gerettete Ubersetzung tatsachlich auf den aktuellen Ursprungstext passt und bei Bedarf die Ubersetzung aktualisieren und die >>fuzzy<<-Markierungen entfernen. Sobald genug >>fuzzy<<-Markierungen entfernt wurden, wird po4a damit beginnen, die auf der Platte befindlichen Ubersetzungsdateien zu erstellen und Sie konnen den Ubersetzungsarbeitsablauf produktiv stellen. Einige Projekte finden es nutzlich, Weblate zur Koordination zwischen Ubersetzern und Betreuern zu verwenden, allerdings ist das jenseits des Aufgabenbereichs von po4a. SIEHE AUCH po4a(1), po4a-normalize(1), po4a-translate(1), po4a-updatepo(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-GETTEXTIZE.1P(1)