Index: head/de_DE.ISO8859-1/books/fdp-primer/po-translations/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/fdp-primer/po-translations/chapter.xml (revision 52985) +++ head/de_DE.ISO8859-1/books/fdp-primer/po-translations/chapter.xml (revision 52986) @@ -1,983 +1,960 @@ <acronym>PO</acronym>-Übersetzungen JohannKoisÜbersetzt von Einführung Das GNU gettext-System bietet Übersetzern eine einfache Möglichkeit, Übersetzungen von Dokumenten zu erstellen und zu verwalten. Übersetzbare Strings werden dabei aus dem Originaldokument extrahiert und in eine PO-Datei (Portable Object-Datei) gespeichert. Übersetzte Versionen der Strings werden über einen zusätzlichen Editor eingefügt. Diese Strings können danach direkt verwendet werden oder zu einer kompletten Übersetzung des Originaldokuments zusammengefügt werden. Schnellstart - Die Anleitung geht davon aus, das sie die Anweisungen in - bereits ausgeführt haben, - allerdings müssen Sie noch zusätzlich die Option - TRANSLATOR im Port - textproc/docproj aktivieren. War - diese Option bisher nicht aktiviert, öffnen Sie jetzt die - Konfiguration, aktivieren die Option und bauen den Port - anschließend neu. + Die Anleitung geht davon aus, das Sie die Anweisungen in + bereits ausgeführt haben. + Außerdem muss die Option TRANSLATOR aktiviert + werden. Dies erfolgt automatisch während der Installation des Ports + textproc/docproj. - &prompt.root; cd /usr/ports/textproc/docproj -&prompt.root; make config -&prompt.root; make clean deinstall install clean - Das folgende Beispiel zeigt, wie Sie den kurzen Artikel Leap Seconds auf Spanisch übersetzen. Installieren Sie einen <acronym>PO</acronym>-Editor Sie benötigen einen PO-Editor, um die Übersetzungsdateien zu bearbeiten. Dieses Beispiel verwendet dafür editors/poedit. &prompt.root; cd /usr/ports/editors/poedit &prompt.root; make install clean Grundkonfiguration Wenn Sie mit der Arbeit an einer bisher nicht existierenden Sprache oder einem nicht existierenden Dokument beginnen wollen, müssen Sie zuerst die Verzeichnisstruktur und ein Makefile anlegen oder von der englischen Originalversion kopieren: Legen Sie ein Verzeichnis für die neue Übersetzung an. Der Quellcode des englischen Artikel befindet sich unter ~/doc/en_US.ISO8859-1/articles/leap-seconds/. Die spanische Übersetzung muss daher im Verzeichnis ~/doc/es_ES.ISO8859-1/articles/leap-seconds/ erstellt werden. Der Pfad ist also (abgesehen vom sprachspezifischen Verzeichnis) identisch. &prompt.user; svn mkdir --parents ~/doc/es_ES.ISO8859-1/articles/leap-seconds/ Kopieren Sie das Makefile des Originaldokuments in das Übersetzungsverzeichnis: &prompt.user; svn cp ~/doc/en_US.ISO8859-1/articles/leap-seconds/Makefile \ ~/doc/es_ES.ISO8859-1/articles/leap-seconds/ Übersetzung Das Übersetzen eines Dokuments erfolgt in zwei Schritten, zuerst werden die zu übersetzenden Strings aus dem Originaldokument extrahiert, um sie anschließend zu übersetzen. Diese beiden Schritte werden wiederholt, bis ein brauchbares übersetztes Dokument entstanden ist. Extrahieren Sie die zu übersetzenden Strings aus der originalen englischen Version und speichern Sie diese in einer PO-Datei: &prompt.user; cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/ &prompt.user; make po Verwenden Sie einen PO-Editor, um Ihre Übersetzungen in der PO-Datei zu speichern. Dafür gibt es diverse Editoren, dieses Beispiel verwendet poedit (das Sie über den Port editors/poedit installieren können). Der Name der PO-Datei setzt sich aus einem zwei Zeichen langen Sprachcode, gefolgt von einem Unterstrich sowie einem ebenfalls zwei Zeichen langen Regionencode zusammen. Für eine Übersetzung ins Spanische heißt die Datei daher es_ES.po. &prompt.user; poedit es_ES.po Ein übersetztes Dokument bauen Bauen Sie das übersetzte Dokument: &prompt.user; cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/ &prompt.user; make tran Der Name der erzeugten Datei entspricht dem Namen der englischen Originaldatei, normalerweise also article.xml für Artikel oder book.xml für Bücher. Überprüfen Sie die gebaute Datei, indem Sie sie in HTML bauen und in einem Internetbrowser öffnen: &prompt.user; make FORMATS=html &prompt.user; firefox article.html Bisher nicht exisitierende Dokumente übersetzen Der erste Schritt, um ein neues Dokument zu übersetzen, besteht darin, ein Verzeichnis zu suchen oder zu erstellen, in dem die Übersetzung gespeichert werden soll. &os; legt alle übersetzten Dokumente in einem Unterverzeichnis ab, dessen Name sich aus der Sprache und aus der Region in der Form lang_REGION zusammensetzt. lang ist ein Code, der immer aus zwei Zeichen in Kleinbuchstaben besteht. Auf ihn folgt ein Unterstrich und danach der Code für die REGION (der aus zwei Zeichen in Großbuchstaben besteht). Existierende Sprachen Sprache Region Übersetzungsverzeichnis PODateiname Zeichensatz Englisch Vereinigte Staaten von Amerika en_US.ISO8859-1 en_US.po ISO 8859-1 Bengalisch Bangladesch bn_BD.UTF-8 bn_BD.po UTF-8 Dänisch Dänemark da_DK.ISO8859-1 da_DK.po ISO 8859-1 Deutsch Deutschland de_DE.ISO8859-1 de_DE.po ISO 8859-1 Griechisch Griechenland el_GR.ISO8859-7 el_GR.po ISO 8859-7 Spanisch Spanien es_ES.ISO8859-1 es_ES.po ISO 8859-1 French France fr_FR.ISO8859-1 fr_FR.po ISO 8859-1 Ungarisch Ungarn hu_HU.ISO8859-2 hu_HU.po ISO 8859-2 Italienisch Italien it_IT.ISO8859-15 it_IT.po ISO 8859-15 Japanisch Japan ja_JP.eucJP ja_JP.po EUC JP Koreanisch Korea ko_KR.UTF-8 ko_KR.po UTF-8 Mongolisch Mongolien mn_MN.UTF-8 mn_MN.po UTF-8 Holländisch Niederlande nl_NL.ISO8859-1 nl_NL.po ISO 8859-1 - Norwegisch - Norwegen - no_NO.ISO8859-1 - no_NO.po - ISO 8859-1 - - - Polnisch Polen pl_PL.ISO8859-2 pl_PL.po ISO 8859-2 Portugisisch Brasilien pt_BR.ISO8859-1 pt_BR.po ISO 8859-1 Russisch Russland ru_RU.KOI8-R ru_RU.po KOI8-R - - - - Serbisch - Serbien - sr_YU.ISO8859-2 - sr_YU.po - ISO 8859-2 Türkisch Türkei tr_TR.ISO8859-9 tr_TR.po ISO 8859-9 Chinesisch China zh_CN.UTF-8 zh_CN.po UTF-8 Chinesisch Taiwan zh_TW.UTF-8 zh_TW.po UTF-8
Die Übersetzungen befinden sich in Unterverzeichnissen des Hauptverzeichnisses der Dokumentation (in den Beispielen von ist dies ~/doc/). Die deutschen Übersetzungen befinden sich daher beispielsweise unter ~/doc/de_DE.ISO8859-1/, französische Übersetzungen hingegen unter ~/doc/fr_FR.ISO8859-1/. Jede Sprache enthält Unterverzeichnisse für die verschiedenen Dokumenttypen, also üblicherweise articles/ und books/. Kombiniert man diese Verzeichnisnamen, erhält man den kompletten Pfad zu einem Artikel oder zu einem Buch. Die französische Übersetzung des NanoBSD-Artikels ist daher etwa unter ~/doc/fr_FR.ISO8859-1/articles/nanobsd/ gespeichert, die mongolische Übersetzung des Handbuchs hingegen unter ~/doc/mn_MN.UTF-8/books/handbook/. Soll ein Dokument in eine bisher nicht existierende Sprache übersetzt werden, muss zuerst ein sprachspezifisches Verzeichnis erstellt werden. Existiert die Sprache hingegen schon, muss nur ein Unterverzeichnis unterhalb von articles/ oder books/ angelegt werden (falls noch nicht vorhanden). Der Bau der &os;-Dokumentation wird durch ein Makefile gesteuert, das sich im gleichen Verzeichnis wie die Übersetzung befindet. Für einfache Artikel kann dieses Makefile oft unverändert aus der englischen Originalversion übernommen werden. Der Übersetzungsprozess für Bücher ist hingegen komplizierter, da dabei verschiedene getrennte book.xml und chapter.xml-Dateien in ein gemeinsames Dokument integriert werden, das Makefile für die Übersetzung eines Buches muss daher in der Regel immer kopiert und angepasst werden. Die spanische Übersetzung des Porter's Handbook erstellen Starten Sie die bisher nicht vorhandene spanische Übersetzung des Porter's Handbook. Das originale Dokument ist ein Buch im Verzeichnis ~/doc/en_US.ISO8859-1/books/porters-handbook/. Das Verzeichnis für die spanische Übersetzung (~/doc/es_ES.ISO8859-1/books/) existiert bereits, daher müssen Sie nur ein Unterverzeichnis für das Porter's Handbook anlegen: &prompt.user; cd ~/doc/es_ES.ISO8859-1/books/ &prompt.user; svn mkdir porters-handbook A porters-handbook Kopieren Sie das Makefile des Originalen Buchs in den neuen Ordner: &prompt.user; cd ~/doc/es_ES.ISO8859-1/books/porters-handbook &prompt.user; svn cp ~/doc/en_US.ISO8859-1/books/porters-handbook/Makefile . A Makefile Passen Sie das Makefile an, damit es nur eine einzige book.xml als Eingabe erwartet: # # $FreeBSD$ # # Build the FreeBSD Porter's Handbook. # MAINTAINER=doc@FreeBSD.org DOC?= book FORMATS?= html-split INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # XML content SRCS= book.xml # Images from the cross-document image library IMAGES_LIB+= callouts/1.png IMAGES_LIB+= callouts/2.png IMAGES_LIB+= callouts/3.png IMAGES_LIB+= callouts/4.png IMAGES_LIB+= callouts/5.png IMAGES_LIB+= callouts/6.png IMAGES_LIB+= callouts/7.png IMAGES_LIB+= callouts/8.png IMAGES_LIB+= callouts/9.png IMAGES_LIB+= callouts/10.png IMAGES_LIB+= callouts/11.png IMAGES_LIB+= callouts/12.png IMAGES_LIB+= callouts/13.png IMAGES_LIB+= callouts/14.png IMAGES_LIB+= callouts/15.png IMAGES_LIB+= callouts/16.png IMAGES_LIB+= callouts/17.png IMAGES_LIB+= callouts/18.png IMAGES_LIB+= callouts/19.png IMAGES_LIB+= callouts/20.png IMAGES_LIB+= callouts/21.png URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" Damit steht die Dokumentstruktur bereit und Sie können die PO-Datei mit make po erstellen. Die französische Übersetzung des <acronym>PGP</acronym> Keys-Artikels erstellen Starten Sie die bisher nicht vorhandene Übersetzung des PGP Keys-Artikels. Das englische Original ist ein Artikel, der sich im Verzeichnis ~/doc/en_US.ISO8859-1/articles/pgpkeys/ befindet. Das Verzeichnis für französische Artikel (~/doc/fr_FR.ISO8859-1/articles/) existiert bereits, Sie müssen daher nur ein neues Unterverzeichnis für den PGP Keys-Artikel anlegen: &prompt.user; cd ~/doc/fr_FR.ISO8859-1/articles/ &prompt.user; svn mkdir pgpkeys A pgpkeys Kopieren Sie das Makefile des originalen Artikels: &prompt.user; cd ~/doc/fr_FR.ISO8859-1/articles/pgpkeys &prompt.user; svn cp ~/doc/en_US.ISO8859-1/articles/pgpkeys/Makefile . A Makefile Überprüfen Sie das Makefile. Da es sich um einen einfachen Artikel handelt, sind vermutlich keine Änderungen am Makefile nötig. Der Inhalt der zweiten Zeile ($&os;...$) wird durch das Versionskontrollsystem ersetzt werden, wenn diese Datei committet wird. # # $FreeBSD$ # # Article: PGP Keys DOC?= article FORMATS?= html WITH_ARTICLE_TOC?= YES INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= SRCS= article.xml # To build with just key fingerprints, set FINGERPRINTS_ONLY. URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" Damit steht die Dokumentstruktur bereit und Sie können die PO-Datei mit make po erstellen.
Übersetzen Das gettext-System macht die Übersetzung von Dokumenten einfacher, weil sich der Übersetzer dadurch um weniger Dinge kümmern muss. Die zu übersetzenden Strings werden aus dem Originaldokument in eine PO-Datei extrahiert. Danach wird ein PO-Editor verwendet, um die übersetzten Strings einzugeben. Das von &os; verwendete PO-Übersetzungssystem überschreibt PO-Dateien nicht, daher können die Strings jederzeit extrahiert werden, um die PO-Datei zu aktualisieren. Ein PO-Editor wird zum Bearbeiten der Datei benötigt. Die Beispiele in diesem Abschnitt verwenden editors/poedit, da es sich dabei um einen einfach zu bedienenden Editor mit nur wenigen Abhängigkeiten handelt. Es gibt aber auch diverse andere PO-Editoren, die zusätzliche Funktionen haben, die bei der Übersetzung von Dokumenten helfen. Die Ports-Sammlung enthält verschiedene dieser Editoren, beispielsweise devel/gtranslator. Löschen Sie die PO-Datei auf keinen Fall, da Sie alle Änderungen enthält, die Übersetzer vorgenommen haben. Die spanische Version des Porter's Handbook übersetzen Beginnen Sie mit der Übersetzung des spanischen Porter's Handbook. Wechseln Sie in das Verzeichnis des spanischen Porter's Handbook und aktualisieren Sie die PO-Datei (wie bereits in erwähnt, heißt diese Datei es_ES.po. &prompt.user; cd ~/doc/es_ES.ISO8859-1/books/porters-handbook &prompt.user; make po Laden Sie die Datei in Ihren PO-Editor und beginnen Sie mit der Übersetzung: &prompt.user; poedit es_ES.po Tips für Übersetzer <acronym>XML</acronym>-Tags beibehalten Achten Sie darauf, dass Sie keine XML-Tags des englischen Originals verändern. <acronym>XML</acronym>-Tags beibehalten Englisches Original: If acronymNTPacronym is not being used Spanische Übersetzung: Si acronymNTPacronym no se utiliza Leerzeichen beibehalten Achten Sie darauf, dass Sie Leerzeichen am Beginn und am Ende der zu übersetzenden Strings beibehalten. Ihre Übersetzung muss diese Strings ebenfalls enthalten. Nicht zu übersetzende Tags Die folgenden Tags dürfen nicht übersetzt werden: citerefentry command filename literal manvolnum orgname package programlisting prompt refentrytitle screen userinput varname <literal>$FreeBSD$</literal>-Strings $FreeBSD$-Versionsstrings erfordern eine spezielle Behandlung. In Codebeispielen wie in sollen diese Strings NICHT expandiert werden. Englische Dokumente verwenden deshalb die Entität &dollar;, damit das Dollarzeichen nicht in die Datei eingefügt werden muss: &dollar;FreeBSD&dollar; Die Entität &dollar; wird vom Versionskontrollsystem nicht als Dollarzeichen interpretiert und daher auch nicht in einen Versionsstring expandiert. Wenn Sie eine PO-Datei erzeugen, wird die Entität &dollar; allerdings wieder durch das aktuelle Dollarzeichen ersetzt. Dies führt dazu, dass der dadurch enstandene String $FreeBSD$ beim Commit im Versionskontrollsystem fälschlicherweise wieder expandiert wird. Gehen Sie daher analog zum englischen Originaldokument vor und ersetzen Sie das Dollarzeichen in der übersetzten PO-Datei wiederum durch die Entität &dollar;: &dollar;FreeBSD&dollar; Ein übersetztes Dokument bauen Eine übersetzte Version eines Originaldokuments kann jederzeit erzeugt werden. Noch nicht übersetzte Teile des Dokuments werden dabei in Englisch verbleiben. Die meisten PO-Editoren zeigen Ihnen an, welcher Anteil des Dokuments bereits übersetzt ist. Dies erleichtert es dem Übersetzer zu beurteilen, ob sich der Bau des finalen Dokuments bereits lohnt oder nicht. Die spanische Version des Porter's Handbook bauen Bauen Sie die spanische Version des Porter's Handbooks, das in einem früheren Beispiel erzeugt wurde und überprüfen Sie das Ergebnis. Bauen Sie das Dokument. Da das Original vom Typ Buch (book) ist, heißt das erzeugte Dokument book.xml. &prompt.user; cd ~/doc/es_ES.ISO8859-1/books/porters-handbook &prompt.user; make tran Erzeugen Sie aus der book.xml eine HTML-Version des Dokuments und lassen Sie sich das Ergebnis in Firefox anzeigen. Für die englische Dokumentation gehen Sie analog vor. Eine Liste aller verfügbaren Werte für die Variable FORMATS finden Sie in . &prompt.user; make FORMATS=html &prompt.user; firefox book.html Neue Übersetzungen einreichen Die neue Übersetzung ist nun zum Einreichen bereit. Um eine neue Übersetzung einzureichen, müssen Sie die neuen Übersetzungen in das Versionskontrollsystem einfügen, die Dateieigenschaften anpassen und eine Differenz erstellen, die Sie dann einreichen können. Die in den folgenden Beispielen erstellten Differenzen können Sie entweder als Documentation Bug Report oder als Code Review einreichen. Die Spanische Übersetzung des NanoBSD-Artikel Fügen Sie in die PO-Datei als erste Zeile einen Kommentar mit dem &os;-Versionsstring ein: #$FreeBSD$ Nehmen Sie das Makefile, die PO-Datei und die erzeugte XML-Übersetzung in die Versionskontrolle auf: &prompt.user; cd ~/doc/es_ES.ISO8859-1/articles/nanobsd/ &prompt.user; ls Makefile article.xml es_ES.po &prompt.user; svn add Makefile article.xml es_ES.po A Makefile A article.xml A es_ES.po Setzen Sie die Subversion-Eigenschaft svn:keywords auf FreeBSD=%H. Diese Eigenschaft sorgt später beim Commit dafür, dass der String $FreeBSD$ erweitert wird und den Pfad, die Revision, das Datum und den Autor des Committs enthält: &prompt.user; svn propset svn:keywords FreeBSD=%H Makefile article.xml es_ES.po property 'svn:keywords' set on 'Makefile' property 'svn:keywords' set on 'article.xml' property 'svn:keywords' set on 'es_ES.po' Setzen Sie den korrekten MIME-Typ für die neuen Dateien. Für Bücher und Artikel ist dies text/xml, für die PO-Datei hingegen text/x-gettext-translation. &prompt.user; svn propset svn:mime-type text/x-gettext-translation es_ES.po property 'svn:mime-type' set on 'es_ES.po' &prompt.user; svn propset svn:mime-type text/xml article.xml property 'svn:mime-type' set on 'article.xml' Wechseln Sie nach ~/doc/ und erstellen Sie aus diesem Basisverzeichnis eine Differenz, damit der komplette Pfad in der Differenz angezeigt wird. Dies erleichert es Committern, das korrekte Zielverzeichnis zu identifizieren: &prompt.user; cd ~/doc svn diff es_ES.ISO8859-1/articles/nanobsd/ > /tmp/es_nanobsd.diff Koreanische <acronym>UTF-8</acronym>-Übersetzung des Explaining-BSD-Artikels Fügen Sie in die PO-Datei als erste Zeile einen Kommentar mit dem &os;-Versionsstring ein: #$FreeBSD$ Nehmen Sie das Makefile, die PO-Datei und die erzeugte XML-Übersetzung in die Versionskontrolle auf: &prompt.user; cd ~/doc/ko_KR.UTF-8/articles/explaining-bsd/ &prompt.user; ls Makefile article.xml ko_KR.po &prompt.user; svn add Makefile article.xml ko_KR.po A Makefile A article.xml A ko_KR.po Setzen Sie die Subversion-Eigenschaft svn:keywords auf FreeBSD=%H. Diese Eigenschaft sorgt später beim Commit dafür, dass der String $FreeBSD$ erweitert wird und den Pfad, die Revision, das Datum und den Autor des Committs enthält: &prompt.user; svn propset svn:keywords FreeBSD=%H Makefile article.xml ko_KR.po property 'svn:keywords' set on 'Makefile' property 'svn:keywords' set on 'article.xml' property 'svn:keywords' set on 'ko_KR.po' Setzen Sie den korrekten MIME-Typ für alle Dateien. Da die Dateien mit dem UTF-8-Charakterset erstellt wurden, muss dies ebenfalls angegeben werden. Um zu verhindern, dass das Versionskontrollsystem diese Dateien als Binärdateien erkennt, müssen Sie die Eigenschaft fbsd:notbinary setzen: &prompt.user; svn propset svn:mime-type 'text/x-gettext-translation; charset=UTF-8' ko_KR.po property 'svn:mime-type' set on 'ko_KR.po' &prompt.user; svn propset fbsd:notbinary yes ko_KR.po property 'fbsd:notbinary' set on 'ko_KR.po' &prompt.user; svn propset svn:mime-type 'text/xml; charset=UTF-8' article.xml property 'svn:mime-type' set on 'article.xml' &prompt.user; svn propset fbsd:notbinary yes article.xml property 'fbsd:notbinary' set on 'article.xml' Wechseln Sie nach ~/doc/ und erstellen Sie aus diesem Basisverzeichnis eine Differenz, damit der komplette Pfad in der Differenz angezeigt wird. Dies erleichert es Committern, das korrekte Zielverzeichnis zu identifizieren: &prompt.user; cd ~/doc svn diff ko_KR.UTF-8/articles/explaining-bsd > /tmp/ko-explaining.diff