mirror of
https://git.FreeBSD.org/doc.git
synced 2026-06-02 11:25:20 +00:00
c442f33958
MFde: Resyn de/books/fdp-primer/po-translations/chapter.xml
961 lines
34 KiB
XML
961 lines
34 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
$FreeBSD$
|
|
$FreeBSDde$
|
|
basiert auf: r52724
|
|
-->
|
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
|
xml:id="po-translations">
|
|
|
|
<info><title><acronym>PO</acronym>-Übersetzungen</title>
|
|
<authorgroup>
|
|
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname><contrib>Übersetzt von </contrib></author>
|
|
</authorgroup>
|
|
</info>
|
|
|
|
<sect1 xml:id="po-translations-introduction">
|
|
<title>Einführung</title>
|
|
|
|
<para>Das <link
|
|
xlink:href="http://www.gnu.org/software/gettext/"><acronym>GNU</acronym>
|
|
<application>gettext</application></link>-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
|
|
<acronym>PO</acronym>-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.</para>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="po-translations-quick-start">
|
|
<title>Schnellstart</title>
|
|
|
|
<para>Die Anleitung geht davon aus, das Sie die Anweisungen in
|
|
<xref linkend="overview-quick-start"/> bereits ausgeführt haben.
|
|
Außerdem muss die Option <literal>TRANSLATOR</literal> aktiviert
|
|
werden. Dies erfolgt automatisch während der Installation des Ports
|
|
<package role="port">textproc/docproj</package>.</para>
|
|
|
|
<para>Das folgende Beispiel zeigt, wie Sie den kurzen Artikel
|
|
<link xlink:href="&url.articles.leap-seconds.en;">Leap
|
|
Seconds</link> auf Spanisch übersetzen.</para>
|
|
|
|
<procedure xml:id="po-translations-quick-start-install-po-editor">
|
|
<title>Installieren Sie einen <acronym>PO</acronym>-Editor</title>
|
|
|
|
<step>
|
|
<para>Sie benötigen einen <acronym>PO</acronym>-Editor, um die
|
|
Übersetzungsdateien zu bearbeiten. Dieses Beispiel verwendet
|
|
dafür <package role="ports">editors/poedit</package>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/editors/poedit</userinput>
|
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<procedure xml:id="po-translations-quick-start-initial-setup">
|
|
<title>Grundkonfiguration</title>
|
|
|
|
<para>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
|
|
<filename>Makefile</filename> anlegen oder von der englischen
|
|
Originalversion kopieren:</para>
|
|
|
|
<step>
|
|
<para>Legen Sie ein Verzeichnis für die neue Übersetzung an.
|
|
Der Quellcode des englischen Artikel befindet sich unter
|
|
<filename>~/doc/en_US.ISO8859-1/articles/leap-seconds/</filename>.
|
|
Die spanische Übersetzung muss daher im Verzeichnis
|
|
<filename>~/doc/es_ES.ISO8859-1/articles/leap-seconds/</filename>
|
|
erstellt werden. Der Pfad ist also (abgesehen vom
|
|
sprachspezifischen Verzeichnis) identisch.</para>
|
|
|
|
<screen>&prompt.user; <userinput>svn mkdir --parents ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Kopieren Sie das <filename>Makefile</filename> des
|
|
Originaldokuments in das Übersetzungsverzeichnis:</para>
|
|
|
|
<screen>&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/leap-seconds/Makefile \
|
|
~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<procedure xml:id="po-translations-quick-start-translation">
|
|
<title>Übersetzung</title>
|
|
|
|
<para>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.</para>
|
|
|
|
<step>
|
|
<para>Extrahieren Sie die zu übersetzenden Strings aus der
|
|
originalen englischen Version und speichern Sie diese
|
|
in einer <acronym>PO</acronym>-Datei:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput>
|
|
&prompt.user; <userinput>make po</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Verwenden Sie einen <acronym>PO</acronym>-Editor, um
|
|
Ihre Übersetzungen in der <acronym>PO</acronym>-Datei zu
|
|
speichern. Dafür gibt es diverse Editoren, dieses Beispiel
|
|
verwendet <filename>poedit</filename> (das Sie über den
|
|
Port <package role="port">editors/poedit</package>
|
|
installieren können).</para>
|
|
|
|
<para>Der Name der <acronym>PO</acronym>-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 <filename>es_ES.po</filename>.</para>
|
|
|
|
<screen>&prompt.user; <userinput>poedit es_ES.po</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<procedure xml:id="po-translations-quick-generating-a-translated-document">
|
|
<title>Ein übersetztes Dokument bauen</title>
|
|
|
|
<step>
|
|
<para>Bauen Sie das übersetzte Dokument:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/leap-seconds/</userinput>
|
|
&prompt.user; <userinput>make tran</userinput></screen>
|
|
|
|
<para>Der Name der erzeugten Datei entspricht dem Namen
|
|
der englischen Originaldatei, normalerweise also
|
|
<filename>article.xml</filename> für Artikel oder
|
|
<filename>book.xml</filename> für Bücher.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Überprüfen Sie die gebaute Datei, indem Sie sie
|
|
in <acronym>HTML</acronym> bauen und in einem
|
|
Internetbrowser öffnen:</para>
|
|
|
|
<screen>&prompt.user; <userinput>make FORMATS=html</userinput>
|
|
&prompt.user; <userinput>firefox article.html</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="po-translations-creating">
|
|
<title>Bisher nicht exisitierende Dokumente übersetzen</title>
|
|
|
|
<para>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
|
|
<filename><replaceable>lang</replaceable>_<replaceable>REGION</replaceable></filename>
|
|
zusammensetzt. <replaceable>lang</replaceable> ist ein Code,
|
|
der immer aus zwei Zeichen in Kleinbuchstaben besteht. Auf ihn
|
|
folgt ein Unterstrich und danach der Code für die
|
|
<replaceable>REGION</replaceable> (der aus zwei Zeichen in
|
|
Großbuchstaben besteht).</para>
|
|
|
|
<table xml:id="po-translations-language-names" frame="none">
|
|
<title>Existierende Sprachen</title>
|
|
|
|
<tgroup cols="5">
|
|
<thead>
|
|
<row>
|
|
<entry>Sprache</entry>
|
|
<entry>Region</entry>
|
|
<entry>Übersetzungsverzeichnis</entry>
|
|
<entry><acronym>PO</acronym>Dateiname</entry>
|
|
<entry>Zeichensatz</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>Englisch</entry>
|
|
<entry>Vereinigte Staaten von Amerika</entry>
|
|
<entry><filename>en_US.ISO8859-1</filename></entry>
|
|
<entry><filename>en_US.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Bengalisch</entry>
|
|
<entry>Bangladesch</entry>
|
|
<entry><filename>bn_BD.UTF-8</filename></entry>
|
|
<entry><filename>bn_BD.po</filename></entry>
|
|
<entry><acronym>UTF</acronym>-8</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Dänisch</entry>
|
|
<entry>Dänemark</entry>
|
|
<entry><filename>da_DK.ISO8859-1</filename></entry>
|
|
<entry><filename>da_DK.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Deutsch</entry>
|
|
<entry>Deutschland</entry>
|
|
<entry><filename>de_DE.ISO8859-1</filename></entry>
|
|
<entry><filename>de_DE.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Griechisch</entry>
|
|
<entry>Griechenland</entry>
|
|
<entry><filename>el_GR.ISO8859-7</filename></entry>
|
|
<entry><filename>el_GR.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-7</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Spanisch</entry>
|
|
<entry>Spanien</entry>
|
|
<entry><filename>es_ES.ISO8859-1</filename></entry>
|
|
<entry><filename>es_ES.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>French</entry>
|
|
<entry>France</entry>
|
|
<entry><filename>fr_FR.ISO8859-1</filename></entry>
|
|
<entry><filename>fr_FR.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Ungarisch</entry>
|
|
<entry>Ungarn</entry>
|
|
<entry><filename>hu_HU.ISO8859-2</filename></entry>
|
|
<entry><filename>hu_HU.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-2</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Italienisch</entry>
|
|
<entry>Italien</entry>
|
|
<entry><filename>it_IT.ISO8859-15</filename></entry>
|
|
<entry><filename>it_IT.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-15</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Japanisch</entry>
|
|
<entry>Japan</entry>
|
|
<entry><filename>ja_JP.eucJP</filename></entry>
|
|
<entry><filename>ja_JP.po</filename></entry>
|
|
<entry><acronym>EUC</acronym> JP</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Koreanisch</entry>
|
|
<entry>Korea</entry>
|
|
<entry><filename>ko_KR.UTF-8</filename></entry>
|
|
<entry><filename>ko_KR.po</filename></entry>
|
|
<entry><acronym>UTF</acronym>-8</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Mongolisch</entry>
|
|
<entry>Mongolien</entry>
|
|
<entry><filename>mn_MN.UTF-8</filename></entry>
|
|
<entry><filename>mn_MN.po</filename></entry>
|
|
<entry><acronym>UTF</acronym>-8</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Holländisch</entry>
|
|
<entry>Niederlande</entry>
|
|
<entry><filename>nl_NL.ISO8859-1</filename></entry>
|
|
<entry><filename>nl_NL.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Polnisch</entry>
|
|
<entry>Polen</entry>
|
|
<entry><filename>pl_PL.ISO8859-2</filename></entry>
|
|
<entry><filename>pl_PL.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-2</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Portugisisch</entry>
|
|
<entry>Brasilien</entry>
|
|
<entry><filename>pt_BR.ISO8859-1</filename></entry>
|
|
<entry><filename>pt_BR.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Russisch</entry>
|
|
<entry>Russland</entry>
|
|
<entry><filename>ru_RU.KOI8-R</filename></entry>
|
|
<entry><filename>ru_RU.po</filename></entry>
|
|
<entry><acronym>KOI</acronym>8-R</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Türkisch</entry>
|
|
<entry>Türkei</entry>
|
|
<entry><filename>tr_TR.ISO8859-9</filename></entry>
|
|
<entry><filename>tr_TR.po</filename></entry>
|
|
<entry><acronym>ISO</acronym> 8859-9</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Chinesisch</entry>
|
|
<entry>China</entry>
|
|
<entry><filename>zh_CN.UTF-8</filename></entry>
|
|
<entry><filename>zh_CN.po</filename></entry>
|
|
<entry><acronym>UTF</acronym>-8</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Chinesisch</entry>
|
|
<entry>Taiwan</entry>
|
|
<entry><filename>zh_TW.UTF-8</filename></entry>
|
|
<entry><filename>zh_TW.po</filename></entry>
|
|
<entry><acronym>UTF</acronym>-8</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Die Übersetzungen befinden sich in Unterverzeichnissen
|
|
des Hauptverzeichnisses der Dokumentation (in den Beispielen
|
|
von <xref linkend="overview-quick-start"/> ist dies
|
|
<filename>~/doc/</filename>). Die deutschen
|
|
Übersetzungen befinden sich daher beispielsweise unter
|
|
<filename>~/doc/de_DE.ISO8859-1/</filename>, französische
|
|
Übersetzungen hingegen unter
|
|
<filename>~/doc/fr_FR.ISO8859-1/</filename>.</para>
|
|
|
|
<para>Jede Sprache enthält Unterverzeichnisse für die
|
|
verschiedenen Dokumenttypen, also üblicherweise
|
|
<filename>articles/</filename> und
|
|
<filename>books/</filename>.</para>
|
|
|
|
<para>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 <filename>~/doc/fr_FR.ISO8859-1/articles/nanobsd/</filename>
|
|
gespeichert, die mongolische Übersetzung des Handbuchs hingegen
|
|
unter
|
|
<filename>~/doc/mn_MN.UTF-8/books/handbook/</filename>.</para>
|
|
|
|
<para>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
|
|
<filename>articles/</filename> oder <filename>books/</filename>
|
|
angelegt werden (falls noch nicht vorhanden).</para>
|
|
|
|
<para>Der Bau der &os;-Dokumentation wird durch ein
|
|
<filename>Makefile</filename> gesteuert, das sich im gleichen
|
|
Verzeichnis wie die Übersetzung befindet. Für einfache Artikel
|
|
kann dieses <filename>Makefile</filename> oft unverändert aus
|
|
der englischen Originalversion übernommen werden. Der
|
|
Übersetzungsprozess für Bücher ist hingegen komplizierter, da
|
|
dabei verschiedene getrennte <filename>book.xml</filename> und
|
|
<filename>chapter.xml</filename>-Dateien in ein gemeinsames
|
|
Dokument integriert werden, das <filename>Makefile</filename>
|
|
für die Übersetzung eines Buches muss daher in der Regel immer
|
|
kopiert und angepasst werden.</para>
|
|
|
|
<example xml:id="po-translations-creating-example">
|
|
<title>Die spanische Übersetzung des Porter's Handbook
|
|
erstellen</title>
|
|
|
|
<para>Starten Sie die bisher nicht vorhandene spanische
|
|
Übersetzung des <link
|
|
xlink:href="&url.books.porters-handbook.en;">Porter's
|
|
Handbook</link>. Das originale Dokument ist ein Buch im
|
|
Verzeichnis
|
|
<filename>~/doc/en_US.ISO8859-1/books/porters-handbook/</filename>.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Das Verzeichnis für die spanische Übersetzung
|
|
(<filename>~/doc/es_ES.ISO8859-1/books/</filename>) existiert
|
|
bereits, daher müssen Sie nur ein Unterverzeichnis für das
|
|
Porter's Handbook anlegen:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/</userinput>
|
|
&prompt.user; <userinput>svn mkdir porters-handbook</userinput>
|
|
A porters-handbook</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Kopieren Sie das <filename>Makefile</filename> des
|
|
Originalen Buchs in den neuen Ordner:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput>
|
|
&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/books/porters-handbook/Makefile .</userinput>
|
|
A Makefile</screen>
|
|
|
|
<para>Passen Sie das <filename>Makefile</filename> an,
|
|
damit es nur eine einzige <filename>book.xml</filename>
|
|
als Eingabe erwartet:</para>
|
|
|
|
<programlisting>#
|
|
# $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"</programlisting>
|
|
|
|
<para>Damit steht die Dokumentstruktur bereit und Sie können
|
|
die <acronym>PO</acronym>-Datei mit
|
|
<command>make po</command> erstellen.</para>
|
|
</step>
|
|
</procedure>
|
|
</example>
|
|
|
|
<example xml:id="po-translations-creating-example-french">
|
|
<title>Die französische Übersetzung des
|
|
<acronym>PGP</acronym> Keys-Artikels erstellen</title>
|
|
|
|
<para>Starten Sie die bisher nicht vorhandene Übersetzung des
|
|
<link xlink:href="&url.articles.pgpkeys.en;"><acronym>PGP</acronym>
|
|
Keys-Artikels</link>. Das englische Original ist ein Artikel,
|
|
der sich im Verzeichnis
|
|
<filename>~/doc/en_US.ISO8859-1/articles/pgpkeys/</filename>
|
|
befindet.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Das Verzeichnis für französische Artikel
|
|
(<filename>~/doc/fr_FR.ISO8859-1/articles/</filename>)
|
|
existiert bereits, Sie müssen daher nur ein neues
|
|
Unterverzeichnis für den <acronym>PGP</acronym> Keys-Artikel
|
|
anlegen:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/</userinput>
|
|
&prompt.user; <userinput>svn mkdir pgpkeys</userinput>
|
|
A pgpkeys</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Kopieren Sie das <filename>Makefile</filename> des
|
|
originalen Artikels:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/fr_FR.ISO8859-1/articles/pgpkeys</userinput>
|
|
&prompt.user; <userinput>svn cp ~/doc/en_US.ISO8859-1/articles/pgpkeys/Makefile .</userinput>
|
|
A Makefile</screen>
|
|
|
|
<para>Überprüfen Sie das <filename>Makefile</filename>. Da es
|
|
sich um einen einfachen Artikel handelt, sind vermutlich
|
|
keine Änderungen am <filename>Makefile</filename> nötig.
|
|
Der Inhalt der zweiten Zeile (<literal>$&os;...$</literal>)
|
|
wird durch das Versionskontrollsystem ersetzt werden, wenn
|
|
diese Datei committet wird.</para>
|
|
|
|
<programlisting>#
|
|
# $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"</programlisting>
|
|
|
|
<para>Damit steht die Dokumentstruktur bereit und Sie können
|
|
die <acronym>PO</acronym>-Datei mit
|
|
<command>make po</command> erstellen.</para>
|
|
</step>
|
|
</procedure>
|
|
</example>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="po-translations-translating">
|
|
<title>Übersetzen</title>
|
|
|
|
<para>Das <application>gettext</application>-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
|
|
<acronym>PO</acronym>-Datei extrahiert. Danach wird ein
|
|
<acronym>PO</acronym>-Editor verwendet, um die übersetzten
|
|
Strings einzugeben.</para>
|
|
|
|
<para>Das von &os; verwendete
|
|
<acronym>PO</acronym>-Übersetzungssystem überschreibt
|
|
<acronym>PO</acronym>-Dateien nicht, daher können die Strings
|
|
jederzeit extrahiert werden, um die
|
|
<acronym>PO</acronym>-Datei zu aktualisieren.</para>
|
|
|
|
<para>Ein <acronym>PO</acronym>-Editor wird zum Bearbeiten der
|
|
Datei benötigt. Die Beispiele in diesem Abschnitt verwenden
|
|
<package role="port">editors/poedit</package>, da es sich dabei
|
|
um einen einfach zu bedienenden Editor mit nur wenigen
|
|
Abhängigkeiten handelt. Es gibt aber auch diverse andere
|
|
<acronym>PO</acronym>-Editoren, die zusätzliche Funktionen
|
|
haben, die bei der Übersetzung von Dokumenten helfen. Die
|
|
Ports-Sammlung enthält verschiedene dieser Editoren,
|
|
beispielsweise <package
|
|
role="port">devel/gtranslator</package>.</para>
|
|
|
|
<para>Löschen Sie die <acronym>PO</acronym>-Datei auf keinen
|
|
Fall, da Sie alle Änderungen enthält, die Übersetzer
|
|
vorgenommen haben.</para>
|
|
|
|
<example xml:id="po-translations-translating-example">
|
|
<title>Die spanische Version des Porter's Handbook
|
|
übersetzen</title>
|
|
|
|
<para>Beginnen Sie mit der Übersetzung des spanischen
|
|
Porter's Handbook.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Wechseln Sie in das Verzeichnis des spanischen
|
|
Porter's Handbook und aktualisieren Sie die
|
|
<acronym>PO</acronym>-Datei (wie bereits in
|
|
<xref linkend="po-translations-language-names"/>
|
|
erwähnt, heißt diese Datei
|
|
<filename>es_ES.po</filename>.</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput>
|
|
&prompt.user; <userinput>make po</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Laden Sie die Datei in Ihren
|
|
<acronym>PO</acronym>-Editor und beginnen Sie mit
|
|
der Übersetzung:</para>
|
|
|
|
<screen>&prompt.user; <userinput>poedit es_ES.po</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
</example>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="po-translations-tips">
|
|
<title>Tips für Übersetzer</title>
|
|
|
|
<sect2 xml:id="po-translations-tips-xmltags">
|
|
<title><acronym>XML</acronym>-Tags beibehalten</title>
|
|
|
|
<para>Achten Sie darauf, dass Sie keine <acronym>XML</acronym>-Tags
|
|
des englischen Originals verändern.</para>
|
|
|
|
<example>
|
|
<title><acronym>XML</acronym>-Tags beibehalten</title>
|
|
|
|
<para>Englisches Original:</para>
|
|
|
|
<programlisting>If <tag class="starttag">acronym</tag>NTP<tag class="endtag">acronym</tag> is not being used</programlisting>
|
|
|
|
<para>Spanische Übersetzung:</para>
|
|
|
|
<programlisting>Si <tag class="starttag">acronym</tag>NTP<tag class="endtag">acronym</tag> no se utiliza</programlisting>
|
|
</example>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="po-translations-tips-spaces">
|
|
<title>Leerzeichen beibehalten</title>
|
|
|
|
<para>Achten Sie darauf, dass Sie Leerzeichen am Beginn und am
|
|
Ende der zu übersetzenden Strings beibehalten. Ihre
|
|
Übersetzung muss diese Strings ebenfalls enthalten.</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="po-translations-tips-verbatim">
|
|
<title>Nicht zu übersetzende Tags</title>
|
|
|
|
<para>Die folgenden Tags dürfen nicht übersetzt werden:</para>
|
|
|
|
<itemizedlist xml:id="po-translations-tips-verbatim-list">
|
|
<listitem>
|
|
<para><tag class="starttag">citerefentry</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">command</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">filename</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">literal</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">manvolnum</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">orgname</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">package</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">programlisting</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">prompt</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">refentrytitle</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">screen</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">userinput</tag></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><tag class="starttag">varname</tag></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
<!-- WIP WIP WIP -->
|
|
<sect2 xml:id="po-translations-literal-dollar">
|
|
<title><literal>$FreeBSD$</literal>-Strings</title>
|
|
|
|
<para>$FreeBSD$-Versionsstrings erfordern eine
|
|
spezielle Behandlung. In Codebeispielen wie in
|
|
<xref linkend="po-translations-creating-example"/> sollen
|
|
diese Strings NICHT expandiert werden. Englische Dokumente
|
|
verwenden deshalb die Entität <literal>&dollar;</literal>,
|
|
damit das Dollarzeichen nicht in die Datei eingefügt werden
|
|
muss:</para>
|
|
|
|
<programlisting>&dollar;FreeBSD&dollar;</programlisting>
|
|
|
|
<para>Die Entität <literal>&dollar;</literal> wird vom
|
|
Versionskontrollsystem nicht als Dollarzeichen interpretiert
|
|
und daher auch nicht in einen Versionsstring expandiert.</para>
|
|
|
|
<para>Wenn Sie eine <acronym>PO</acronym>-Datei erzeugen, wird
|
|
die Entität <literal>&dollar;</literal> allerdings wieder
|
|
durch das aktuelle Dollarzeichen ersetzt. Dies führt dazu,
|
|
dass der dadurch enstandene String
|
|
<literal>$FreeBSD$</literal> beim Commit im
|
|
Versionskontrollsystem fälschlicherweise wieder expandiert
|
|
wird.</para>
|
|
|
|
<para>Gehen Sie daher analog zum englischen Originaldokument
|
|
vor und ersetzen Sie das Dollarzeichen in der übersetzten
|
|
<acronym>PO</acronym>-Datei wiederum durch die Entität
|
|
<literal>&dollar;</literal>:</para>
|
|
|
|
<programlisting>&dollar;FreeBSD&dollar;</programlisting>
|
|
</sect2>
|
|
|
|
<!--
|
|
<sect2 xml:id="po-translations-tips-makefile">
|
|
<title>Modifying the <filename>Makefile</filename></title>
|
|
|
|
<para>What needs to be changed in the
|
|
<filename>Makefile</filename>?</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="po-translations-tips-locale">
|
|
<title>Setting Locales for Editing</title>
|
|
|
|
<para>Locale settings so the <acronym>PO</acronym> editor works
|
|
correctly?</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="po-translations-tips-poeditors">
|
|
<title>Settings for Specific <acronym>PO</acronym>
|
|
Editors</title>
|
|
|
|
<para>Per bcr: turn off "intelligent quotes" in
|
|
Mac poedit.</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="po-translations-tips-tm">
|
|
<title>Using Translation Memory</title>
|
|
|
|
<para>Using translation memory. Saving, updating, sharing
|
|
with other members of a translation team.</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="po-translations-tips-submitting">
|
|
<title>Submitting Translations</title>
|
|
|
|
<para>Submitting translations as diffs, committing
|
|
<acronym>PO</acronym> files.</para>
|
|
</sect2>
|
|
-->
|
|
</sect1>
|
|
|
|
<sect1 xml:id="po-translations-building">
|
|
<title>Ein übersetztes Dokument bauen</title>
|
|
|
|
<para>Eine übersetzte Version eines Originaldokuments kann
|
|
jederzeit erzeugt werden. Noch nicht übersetzte Teile des
|
|
Dokuments werden dabei in Englisch verbleiben. Die meisten
|
|
<acronym>PO</acronym>-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.</para>
|
|
|
|
<example xml:id="po-translations-building-example">
|
|
<title>Die spanische Version des Porter's Handbook bauen</title>
|
|
|
|
<para>Bauen Sie die spanische Version des Porter's Handbooks, das
|
|
in einem früheren Beispiel erzeugt wurde und überprüfen Sie das
|
|
Ergebnis.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Bauen Sie das Dokument. Da das Original vom Typ Buch
|
|
(<emphasis>book</emphasis>) ist, heißt das erzeugte Dokument
|
|
<filename>book.xml</filename>.</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/books/porters-handbook</userinput>
|
|
&prompt.user; <userinput>make tran</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Erzeugen Sie aus der <filename>book.xml</filename> eine
|
|
<acronym>HTML</acronym>-Version des Dokuments und lassen Sie
|
|
sich das Ergebnis in <application>Firefox</application>
|
|
anzeigen. Für die englische Dokumentation gehen Sie analog
|
|
vor. Eine Liste aller verfügbaren Werte für die Variable
|
|
<varname>FORMATS</varname> finden Sie in <xref
|
|
linkend="doc-build-rendering-common-formats"/>.</para>
|
|
|
|
<screen>&prompt.user; <userinput>make FORMATS=html</userinput>
|
|
&prompt.user; <userinput>firefox book.html</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
</example>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="po-translations-submitting">
|
|
<title>Neue Übersetzungen einreichen</title>
|
|
|
|
<para>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.</para>
|
|
|
|
<para>Die in den folgenden Beispielen erstellten Differenzen können
|
|
Sie entweder als <link
|
|
xlink:href="https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Documentation">Documentation
|
|
Bug Report</link> oder als <link
|
|
xlink:href="https://reviews.freebsd.org/">Code Review</link>
|
|
einreichen.</para>
|
|
|
|
<example xml:id="po-translations-submitting-spanish">
|
|
<title>Die Spanische Übersetzung des NanoBSD-Artikel</title>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Fügen Sie in die <acronym>PO</acronym>-Datei als erste
|
|
Zeile einen Kommentar mit dem &os;-Versionsstring ein:</para>
|
|
|
|
<programlisting>#$FreeBSD$</programlisting>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Nehmen Sie das <filename>Makefile</filename>, die
|
|
<acronym>PO</acronym>-Datei und die erzeugte
|
|
<acronym>XML</acronym>-Übersetzung in die Versionskontrolle
|
|
auf:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/es_ES.ISO8859-1/articles/nanobsd/</userinput>
|
|
&prompt.user; <userinput>ls</userinput>
|
|
Makefile article.xml es_ES.po
|
|
&prompt.user; <userinput>svn add Makefile article.xml es_ES.po</userinput>
|
|
A Makefile
|
|
A article.xml
|
|
A es_ES.po</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Setzen Sie die
|
|
<application>Subversion</application>-Eigenschaft
|
|
<literal>svn:keywords</literal> auf
|
|
<literal>FreeBSD=%H</literal>. Diese Eigenschaft sorgt
|
|
später beim Commit dafür, dass der String
|
|
<literal>$FreeBSD$</literal>
|
|
erweitert wird und den Pfad, die Revision, das Datum und den
|
|
Autor des Committs enthält:</para>
|
|
|
|
<screen>&prompt.user; <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml es_ES.po</userinput>
|
|
property 'svn:keywords' set on 'Makefile'
|
|
property 'svn:keywords' set on 'article.xml'
|
|
property 'svn:keywords' set on 'es_ES.po'</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Setzen Sie den korrekten <acronym>MIME</acronym>-Typ für
|
|
die neuen Dateien. Für Bücher und Artikel ist dies
|
|
<literal>text/xml</literal>, für die <acronym>PO</acronym>-Datei
|
|
hingegen <literal>text/x-gettext-translation</literal>.</para>
|
|
|
|
<screen>&prompt.user; <userinput>svn propset svn:mime-type text/x-gettext-translation es_ES.po</userinput>
|
|
property 'svn:mime-type' set on 'es_ES.po'
|
|
&prompt.user; <userinput>svn propset svn:mime-type text/xml article.xml</userinput>
|
|
property 'svn:mime-type' set on 'article.xml'</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Wechseln Sie nach <filename>~/doc/</filename> 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:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc</userinput>
|
|
<userinput>svn diff es_ES.ISO8859-1/articles/nanobsd/ > /tmp/es_nanobsd.diff</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
</example>
|
|
|
|
<example xml:id="po-translations-submitting-korean-utf8">
|
|
<title>Koreanische <acronym>UTF-8</acronym>-Übersetzung des
|
|
Explaining-BSD-Artikels</title>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Fügen Sie in die <acronym>PO</acronym>-Datei als erste
|
|
Zeile einen Kommentar mit dem &os;-Versionsstring ein:</para>
|
|
|
|
<programlisting>#$FreeBSD$</programlisting>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Nehmen Sie das <filename>Makefile</filename>, die
|
|
<acronym>PO</acronym>-Datei und die erzeugte
|
|
<acronym>XML</acronym>-Übersetzung in die Versionskontrolle
|
|
auf:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc/ko_KR.UTF-8/articles/explaining-bsd/</userinput>
|
|
&prompt.user; <userinput>ls</userinput>
|
|
Makefile article.xml ko_KR.po
|
|
&prompt.user; <userinput>svn add Makefile article.xml ko_KR.po</userinput>
|
|
A Makefile
|
|
A article.xml
|
|
A ko_KR.po</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Setzen Sie die
|
|
<application>Subversion</application>-Eigenschaft
|
|
<literal>svn:keywords</literal> auf
|
|
<literal>FreeBSD=%H</literal>. Diese Eigenschaft sorgt später
|
|
beim Commit dafür, dass der String
|
|
<literal>$FreeBSD$</literal>
|
|
erweitert wird und den Pfad, die Revision, das Datum und den
|
|
Autor des Committs enthält:</para>
|
|
|
|
<screen>&prompt.user; <userinput>svn propset svn:keywords FreeBSD=%H Makefile article.xml ko_KR.po</userinput>
|
|
property 'svn:keywords' set on 'Makefile'
|
|
property 'svn:keywords' set on 'article.xml'
|
|
property 'svn:keywords' set on 'ko_KR.po'</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Setzen Sie den korrekten <acronym>MIME</acronym>-Typ für
|
|
alle Dateien. Da die Dateien mit dem
|
|
<acronym>UTF-8</acronym>-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 <literal>fbsd:notbinary</literal>
|
|
setzen:</para>
|
|
|
|
<screen>&prompt.user; <userinput>svn propset svn:mime-type 'text/x-gettext-translation; charset=UTF-8' ko_KR.po</userinput>
|
|
property 'svn:mime-type' set on 'ko_KR.po'
|
|
&prompt.user; <userinput>svn propset fbsd:notbinary yes ko_KR.po</userinput>
|
|
property 'fbsd:notbinary' set on 'ko_KR.po'
|
|
&prompt.user; <userinput>svn propset svn:mime-type 'text/xml; charset=UTF-8' article.xml</userinput>
|
|
property 'svn:mime-type' set on 'article.xml'
|
|
&prompt.user; <userinput>svn propset fbsd:notbinary yes article.xml</userinput>
|
|
property 'fbsd:notbinary' set on 'article.xml'</screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Wechseln Sie nach <filename>~/doc/</filename> 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:</para>
|
|
|
|
<screen>&prompt.user; <userinput>cd ~/doc</userinput>
|
|
<userinput>svn diff ko_KR.UTF-8/articles/explaining-bsd > /tmp/ko-explaining.diff</userinput></screen>
|
|
</step>
|
|
</procedure>
|
|
</example>
|
|
</sect1>
|
|
</chapter>
|