Index: head/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.xml (revision 47398) +++ head/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.xml (revision 47399) @@ -1,499 +1,571 @@ Die Erzeugung der Zieldokumente JohannKoisÜbersetzt von - - Dieses Kapitels erklärt detailliert, wie der Bau der Dokumentation organisiert ist und wie Sie diesen Prozess mit &man.make.1; beeinflussen können. + + + DocBook in verschiedene Ausgabeformate konvertieren + + Aus einer einzigen DocBook-Quellcodedatei können + verschiedene Ausgabeformate erstellt werden. Welches Dateiformat + erstellt wird, wird über die Variable + FORMATS festgelegt. Eine Liste aller + verfügbaren Formate ist in KNOWN_FORMATS + gespeichert: + + &prompt.user; cd ~/doc/en_US.ISO8859-1/books/handbook +&prompt.user; make -V KNOWN_FORMATS + + + Häufige Ausgabeformate + + + + + FORMATS + Dateityp + Beschreibung + + + + + + html + HTML, Einzeldatei + Eine einzelne book.html oder + article.html. + + + + html-split + HTML, multiple Dateien + Multiple HTML-Dateien, eine + für jedes Kapitel oder für jeden Abschnitt. Dieser + Typ wird in der Regel für die Nutzung des Dokuments + auf einer Internetseite verwendet. + + + + pdf + PDF + Portable Document Format + + + +
+ + Welches Format verwendet wird, hängt vom jeweiligen + Dokument ab, in der Regel handelt es sich aber um + html-split. Weitere Formate werden über die + Variable FORMATS angegeben. Dabei können + Sie ein einzelnes Format, aber auch mehrere Formate gleichzeitig + definieren. + + + Das Dokument als eine einzelne HTML-Seite bauen + + &prompt.user; cd ~/doc/en_US.ISO8859-1/books/handbook +&prompt.user; make FORMATS=html + + + + Das Dokument in den Formaten HTML-Split sowie + <acronym>PDF</acronym> bauen + + &prompt.user; cd ~/doc/en_US.ISO8859-1/books/handbook +&prompt.user; make FORMATS="html-split pdf" + +
Für den Bau der &os;-Dokumentation benötigte Werkzeuge Die folgende Werkzeuge werden benötigt, um die FDP-Dokumente zu bauen und zu installieren. Das wichtigste Werkzeug ist &man.make.1;, genauer Berkeley Make. Der Bau von Paketen erfolgt unter FreeBSD mit &man.pkg.create.1;. &man.gzip.1; dient zur Erstellung komprimierter Versionen der Dokumentation. &man.bzip2.1; wird ebenfalls unterstützt. Wollen Sie Pakete der Dokumentation erstellen, benötigen Sie auch &man.tar.1;. Mit &man.install.1; installieren Sie die Dokumentation auf Ihrem System. Die <filename>Makefile</filename>s des Dokumentationsbaums verstehen Innerhalb des &os; Documentation Projects gibt es drei verschiedene Arten von Makefiles: Ein Makefile in einem Unterverzeichnis gibt Anweisungen an dessen Dateien und Unterverzeichnisse weiter. Ein Dokument-Makefile beschreibt das Dokument, das aus dem Inhalt des jeweiligen Verzeichnisses gebaut werden soll. Make-Includes sind der "Klebstoff", der für den Bau der Dokumentation erforderlich ist. In der Regel heissen diese Dokumente doc.xxx.mk. Unterverzeichnis-<filename>Makefile</filename>s Derartige Makefiles sind in der Regel wie folgt aufgebaut: SUBDIR =articles SUBDIR+=books COMPAT_SYMLINK = en DOC_PREFIX?= ${.CURDIR}/.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" Die ersten vier nicht-leeren Zeilen definieren die &man.make.1;-Variablen SUBDIR, COMPAT_SYMLINK, und DOC_PREFIX. Die SUBDIR-Anweisung weist (ebenso wie die COMPAT_SYMLINK-Anweisung) einer Variable einen Wert zu und überschreibt dabei deren ursprünglichen Wert. Die zweite SUBDIR-Anweisung zeigt, wie man den aktuellen Wert einer Variable ergänzen kann. Nach der Ausführung dieser Anweisung hat die Variable SUBDIR den Wert articles books. Die Anweisung DOC_PREFIX zeigt, wie man einer Variable einen Wert zuweist (vorausgesetzt, die Variable ist nicht bereits definiert). Eine derartige Anweisung ist beispielsweise sinnvoll, wenn sich DOC_PREFIX nicht dort befindet, wo es vom Makefile erwartet wird. Durch das Setzen dieser Variable kann der korrekte Wert an das Makefile übergeben werden. Was heißt dies nun konkret? Mit den SUBDIR-Anweisungen legen Sie fest, welche Unterverzeichnisse beim Bau der Dokumentation eingeschlossen werden müssen. COMPAT_SYMLINK wird zur Erstellung von symbolischen Links zwischen den jeweiligen Dokumentsprachen und deren offizieller Kodierung benötigt (so wird beispielsweise doc/en nach en_US.ISO-8859-1 verlinkt). DOC_PREFIX gibt den Pfad zum Wurzelverzeichnis des Quellcode-Baums des FreeBSD Documentation Projects an. Diese Vorgabe kann jederzeit durch einen eigenen Wert ersetzt werden. Bei .CURDIR handelt es sich um eine in &man.make.1; eingebaute Variable, die den Pfad des aktuellen Verzeichnisses enthält. Die letzte Zeile bindet doc.project.mk, die zentrale, projektweite &man.make.1;-Datei des &os; Documentation Projects, in den Bau ein. Diese Datei enthält den "Klebstoff", der die diversen Variablen in Anweisungen zum Bau der Dokumentation konvertiert. Dokument-<filename>Makefile</filename>s Diese Makefiles definieren diverse make-Variablen mit Vorgaben zum Bau der im Verzeichnis enthaltenen Dokumentation. Dazu ein Beispiel: MAINTAINER=nik@FreeBSD.org DOC?= book FORMATS?= html-split html INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # SGML content SRCS= book.xml DOC_PREFIX?= ${.CURDIR}/../../.. .include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk" Die Variable MAINTAINER ist von zentraler Bedeutung. Sie legt fest, wer für ein bestimmtes Dokument des FreeBSD Documentation Projects verantwortlich ist. DOC (ohne die Erweiterung .xml) ist der Name des Hauptdokuments des Verzeichnisses, in dem sich das Makefile befindet. Mit SRCS-Anweisungen geben Sie alle Dokumente an, aus denen das Dokument besteht. Zusätzlich binden Sie damit wichtige Dateien ein, deren Änderung einen erneuten Bau der Dokumentation erforderlich macht. Mit FORMATS geben Sie an, in welchen Formaten die Dokumentation gebaut werden soll. INSTALL_COMPRESSED enthält die Standardvorgaben, die beim Bau komprimierter Pakte der Dokumentation verwendet werden sollen. Der Variable INSTALL_ONLY_COMPRESS (die in der Voreinstellung leer ist) wird nur dann ein Wert zugewiesen, wenn ausschließlich komprimierte Pakete der Dokumentation erstellt werden sollen. Die Variable DOC_PREFIX und die verschiedenen Include-Anweisungen sollten Ihnen ebenfalls bereits vertraut sein. &man.make.1;-Includes des &os; Documentation Projects Diese Dateien lassen sich am besten verstehen, indem man sich deren Inhalt näher ansieht. Konkret handelt es sich dabei um folgende Dateien: doc.project.mk ist die Haupt-Include-Datei, die bei Bedarf alle folgenden Include-Dateien enthält. doc.subdir.mk sorgt dafür, dass alle benötigten Verzeichnisse (und Unterverzeichnisse) beim Bau der Dokumentation durchlaufen werden. doc.install.mk definiert Variablen, die die Installation der Dokumentation beeinflussen. doc.docbook.mk wird verwendet, wenn die Variable DOCFORMAT den Wert docbook hat und die Variable DOC gesetzt ist. <filename>doc.project.mk</filename> Diese Datei hat folgenden Aufbau: DOCFORMAT?= docbook MAINTAINER?= doc@FreeBSD.org PREFIX?= /usr/local PRI_LANG?= en_US.ISO8859-1 .if defined(DOC) .if ${DOCFORMAT} == "docbook" .include "doc.docbook.mk" .endif .endif .include "doc.subdir.mk" .include "doc.install.mk" Variablen DOCFORMAT und MAINTAINER enthalten Standardwerte, falls ihnen über das Dokument-Makefile keine anderen Werte zugewiesen werden. Bei PREFIX handelt es sich um das Präfix, unter dem die zum Bau der Dokumentation erforderlichen SGML-Werkzeuge installiert sind. In der Regel handelt es sich dabei um /usr/local. PRI_LANG sollte auf die Sprache und Kodierung eingestellt werden, die unter den Leser der Dokumentation am häufigsten verwendet wird. Diese Variable hat den Standardwert "US English". PRI_LANG beeinflusst nicht, welche Dokumente gebaut werden können oder sollen. Diese Variable wird lediglich dazu verwendet, häufig verwendete Dokumente in das Wurzelverzeichnis der installierten Dokumentation zu verlinken. Bedingungen Die Zeile .if defined(DOC) ist ein Beispiel für eine &man.make.1;-Bedingung, die (analog zum Einsatz in anderen Programmen) festlegt, was geschehen soll, wenn eine Bedingung "wahr" oder "falsch" ist. defined ist eine Funktion, die zurückgibt, ob die angegebene Variable existiert oder nicht. .if ${DOCFORMAT} == "docbook" testet, ob die Variable DOCFORMAT den Wert "docbook" hat. Ist dies der Fall, wird doc.docbook.mk mit in den Bau aufgenommen. Die zwei .endifs schließen die zwei weiter oben definierten Bedingungen. <filename>doc.subdir.mk</filename> Den Inhalt dieser Datei hier zu beschreiben, würde zu weit führen. Sie sollten aber nach dem Lesen der vorangegangenen Abschnitte und der folgenden Ausführungen in der Lage sein, Inhalt und Aufgabe dieser Datei zu verstehen. Variablen SUBDIR legt die Unterverzeichnisse fest, deren Inhalt beim Bau der Dokumentation inkludiert werden muss. Mit ROOT_SYMLINKS wird der Name der Verzeichnisse angegeben, die von ihrer tatsächlichen Position aus in das Wurzelverzeichnis, unter dem die Dokumentation installiert wird, verlinkt werden sollen. Vorausgesetzt, bei der verwendeten Sprache handelt es sich um die primäre Sprache (die über PRI_LANG festgelegt wird). COMPAT_SYMLINK wird im Abschnitt Unterverzeichnis-Makefiles beschrieben. Targets und Makros Abhängigkeiten (Dependencies) werden folgendermaßen definiert: target abhaengigkeit1 abhaengigkeit2 .... Um target zu bauen, müssen Sie zuvor die angegebenen Abhängigkeiten bauen. Daran anschließend können Anweisungen zum Bau des angegebenen Targets folgen, falls der Konvertierungsprozess zwischen dem Target und seinen Abhängigkeiten nicht bereits früher definiert wurde oder falls die Konvertierung nicht der Standardkonvertierungsmethode entspricht. Die spezielle Abhängigkeit .USE definiert das Äquivalent eines Makros. _SUBDIRUSE: .USE .for entry in ${SUBDIR} @${ECHO} "===> ${DIRPRFX}${entry}" @(cd ${.CURDIR}/${entry} && \ ${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ ) .endfor In diesem Beispiel kann _SUBDIRUSE nun als Makro, welches die angegebenen Befehle ausführt, verwendet werden, indem es im Makefile als Abhängigkeit angegeben wird. Was unterscheidet dieses Makro nun von beliebigen anderen Targets? Der Hauptunterschied ist, dass es nach den Anweisungen der Bauprozedur, in der es als Abhängigkeit angegeben ist, ausgeführt wird. Außerdem ändert es die Variable .TARGET (die den Namen des aktuell gebauten Targets enthält) nicht. clean: _SUBDIRUSE rm -f ${CLEANFILES} In diesem Beispiel führt clean das Makro _SUBDIRUSE aus, nachdem es den Befehl rm -f ${CLEANFILES} erfolgreich ausgeführt hat. Dadurch löscht clean zwar beim Wechsel in ein neues Unterverzeichnis beim Bau erstellte Dateien, aber nicht beim Wechsel aus einem Unterverzeichnis in ein übergeordnetes Verzeichnis. Vorhandene Targets install und package arbeiten nacheinander alle Unterverzeichnisse ab und rufen dabei jeweils ihre realen Versionen (realinstall beziehungsweise realpackage) auf. clean entfernt alle Dateien, die beim Bau der Dokumentation erzeugt wurden (dies sowohl im aktuellen Verzeichnis als auch in allen Unterverzeichnissen). cleandir hat die gleiche Aufgabe, würde aber zusätzlich die Objekt-Verzeichnisse löschen (falls diese existieren). Weitere Bedingungen exists gibt "wahr" zurück, wenn die angegebene Datei bereits existiert. empty gibt "wahr" zurück, wenn die angegebene Variable leer ist. target gibt "wahr" zurück, wenn das angegebene Target noch nicht existiert. Schleifenkonstrukte in <command>make (.for)</command> .for erlaubt es, bestimmte Anweisungen für jedes Element einer Variable zu wiederholen, indem dieser Variable in jedem Durchlauf der Schleife das jeweilige Element der untersuchten Liste zugewiesen wird. _SUBDIRUSE: .USE .for entry in ${SUBDIR} @${ECHO} "===> ${DIRPRFX}${entry}" @(cd ${.CURDIR}/${entry} && \ ${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ ) .endfor Falls das Verzeichnis SUBDIR leer ist, würde in unserem Beispiel keine Aktion erfolgen. Enthält das Verzeichnis hingegen ein oder mehrere Elemente, werden die Anweisungen zwischen .for und .endfor für jedes Element ausgeführt, wobei entry durch das jeweilige Element ersetzt werden würde.
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 47398) +++ head/de_DE.ISO8859-1/books/fdp-primer/po-translations/chapter.xml (revision 47399) @@ -1,793 +1,792 @@ <acronym>PO</acronym>-Übersetzungen 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. &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 erzeugen Generieren 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 erzeugte 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}/../../.. SYMLINKS= ${DESTDIR} index.html handbook.html .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 dritten 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 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 findet sich im FDP-Primer. - + FORMATS finden Sie in . &prompt.user; make FORMATS=html &prompt.user; firefox book.html