1
0
mirror of https://git.FreeBSD.org/doc.git synced 2026-06-02 11:25:20 +00:00
Files
doc/de_DE.ISO8859-1/books/fdp-primer/po-translations/chapter.xml
T
Johann Kois c442f33958 r48036 -> r52724
MFde:   Resyn de/books/fdp-primer/po-translations/chapter.xml
2019-05-04 19:02:47 +00:00

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>#
# &dollar;FreeBSD&dollar;
#
# 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>#
# &dollar;FreeBSD&dollar;
#
# 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>&dollar;FreeBSD&dollar;</literal>-Strings</title>
<para>&dollar;FreeBSD&dollar;-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>&amp;dollar;</literal>,
damit das Dollarzeichen nicht in die Datei eingefügt werden
muss:</para>
<programlisting>&amp;dollar;FreeBSD&amp;dollar;</programlisting>
<para>Die Entität <literal>&amp;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>&amp;dollar;</literal> allerdings wieder
durch das aktuelle Dollarzeichen ersetzt. Dies führt dazu,
dass der dadurch enstandene String
<literal>&dollar;FreeBSD&dollar;</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>&amp;dollar;</literal>:</para>
<programlisting>&amp;dollar;FreeBSD&amp;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>#&dollar;FreeBSD&dollar;</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>&dollar;FreeBSD&dollar;</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>#&dollar;FreeBSD&dollar;</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>&dollar;FreeBSD&dollar;</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>