<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
	"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY artrevision "0.1">
<!ENTITY date "November 2004">
]>

<article lang="de">
	<articleinfo>
	<title>Landesspezifische Anpassung von GNOME Anwendungen</title>
	<subtitle>Sie wollen GNOME &#252;bersetzen?</subtitle>

	<authorgroup>
		<author>
		<firstname>Telsa</firstname><surname>Gwynne</surname>
		<!--
		<affiliation>
		<address>
		<email>hobbit@aloss.ukuu.org.uk</email>
		</address>
		</affiliation>
		-->
		</author>

		<author>
		<firstname>Dafydd</firstname><surname>Harries</surname>
		<!--
		<email>daf@muse.19inch.net</email>
		-->
		</author>

		<othercredit role="translator">
			<firstname>Frank</firstname>
			<surname>Arnold</surname>
			<contrib>Deutsche &#220;bersetzung</contrib>
			<!--
			<email>frank@scirocco-5v-turbo.de</email>
			-->
		</othercredit>

	</authorgroup>

	<copyright>
	<year>2003</year>
	<holder>Telsa Gwynne</holder>
	<holder>Dafydd Harries</holder>
	</copyright>

	<copyright>
	<year>2004</year>
	<holder>Dafydd Harries</holder>
	</copyright>

	<copyright>
	<year>2004</year>
	<holder>Frank Arnold (Deutsche &#220;bersetzung)</holder>
	</copyright>

	<legalnotice id="legalnotice">
	<para>
	Dieses Dokument k&#246;nnen Sie unter den Bedingungen der GNU General
	Public License, wie von der Free Software Foundation ver&#246;ffentlicht,
	weitergeben und/oder modifizieren, entweder gem&#228;&#223; Version 2 der
	Lizenz oder (nach Ihrer Option) jeder sp&#228;teren Version. Der
	vollst&#228;ndige Wortlaut dieser Lizenz kann unter
	http://www.gnu.org/copyleft/gpl.html abgerufen werden.
	</para>
	</legalnotice>

	<revhistory>
	<revision>
		<revnumber>0.1</revnumber>
		<date>Novbember 2004</date>
		<revdescription>
		<para>
		Deutsche &#220;bersetzung auf Grundlage der
		Version 0.8 des Originals.
		</para>
		</revdescription>
	</revision>
	</revhistory>
</articleinfo>

<abstract>
<para>
Eine kurze Einf&#252;hrung in das &#220;bersetzen von GNOME.
</para>
</abstract>

<sect1 id="introduction">
<title>Einleitung</title>

<para>
GNOME Anwendungen werden unter der Vorgabe entwickelt, mit verschiedenen
Sprachen und Normen zusammenzuarbeiten. Das bedeutet, dass eine Anwendung so
erweitert werden kann, dass sie sich an verschiedenen (geographischen) Orten
unterschiedlich verh&#228;lt. Ausdrucke haben in Amerika eine andere
Gr&#246;&#223;e als in Europa, Wettertemperaturen werden an unterschiedlichen
Orten in Fahrenheit oder Celsius angegeben und die Sprache, die der Benutzer
vom Programm zu sehen bekommt, k&#246;nnte seine Muttersprache sein.
</para>

<para>
&#220;bersetzungen sind ein wichtiger Teil dieses Anpassungsprozesses. Ein
Gro&#223;teil der GNOME-&#220;bersetzungen werden auf freiwilliger Basis von
Muttersprachlern erstellt. Sie nehmen Zeichenketten in der originalen
englischen Fassung, f&#252;gen die entsprechende &#220;bersetzung hinzu und
legen die Datei, welche diese Informationen enth&#228;lt, im <ulink type="http"
url="http://cvs.gnome.org/viewcvs/">GNOME CVS Repository</ulink> ab. Die
n&#228;chste ver&#246;ffentlichte Version dieser Anwendung enth&#228;lt dann
auch die neue Sprache bzw. deren Aktualisierungen.
</para>

<para>
Dieses Dokument versucht Ihnen zu erl&#228;utern, wie Sie bei diesen
&#220;bersetzungsprozess von GNOME mithelfen k&#246;nnen.
</para>
</sect1>

<sect1 id="finding">
<title>Eine &#220;bersetzergruppe finden</title>

<para>
Als erstes sollten Sie herausfinden, ob bereits eine Gruppe an Ihrer
Sprache arbeitet. Alle bekannten Gruppen sind in der <ulink type="http"
url="http://developer.gnome.org/projects/gtp/teams.html">
GNOME Translation Project Team Liste</ulink> aufgef&#252;hrt.
Kontakt zu ihnen aufzunehmen ist der erste Schritt.
</para>
<note>
<title>Kontakt zum deutschen GNOME-&#220;bersetzungsprojekt</title>
<para>
Die Anlaufstelle f&#252;r deutschsprachige &#220;bersetzer und solche, die es
werden wollen, ist <ulink type="http" url="http://www.gnome-de.org"
>http://www.gnome-de.org/</ulink> bzw. die <ulink type="http"
url="http://mail.gnome.org/mailman/listinfo/gnome-de">Mailing-Liste
gnome-de</ulink>.
</para>
</note>

<para>
Sollte bereits eine entsprechende Gruppe existieren, aber kein Kontakt
zustande kommen, w&#228;re die n&#228;chste Anlaufstelle die <ulink type="http"
url="http://mail.gnome.org/mailman/listinfo/gnome-i18n">GNOME
I18N Mailing-Liste</ulink>. Von den Mitgliedern dieser Liste bekommen Sie in
jedem Fall weitere Ratschl&#228;ge dazu, was als n&#228;chstes zu tun ist.
Anfragen an diese Liste sollten in englischer Sprache gehalten sein.
</para>

<para>
Falls es keine Gruppe f&#252;r Ihre Sprache gibt, sollten Sie ebenfalls die
<ulink type="http" url="http://mail.gnome.org/mailman/listinfo/gnome-i18n"
>GNOME I18N Mailing-Liste</ulink> kontaktieren. M&#246;glicherweise werden
Sie dann dazu eingeladen, der Koordinator dieser Sprache zu werden.
</para>

<para>
Sollte die Kontaktaufnahme zu einer aktiven Gruppe erfolgreich gewesen sein,
kann unter Umst&#228;nden der n&#228;chste Abschnitt &#252;bersprungen
und gleich zum <link linkend="translating">Abschitt
<emphasis>&#220;bersetzen</emphasis></link> &#252;bergegangen werden.
</para>
</sect1>

<sect1 id="founding">
<title>Gr&#252;nden einer neuen &#220;bersetzergruppe</title>

<para>
Es gibt keine Gruppe f&#252;r Ihre Sprache, aber Sie sind mutig und
entschlossen genug, eine neue Gruppe zu gr&#252;nden und ihr Koordinator
zu werden? Wunderbar!
</para>

<sect2 id="coord">
<title>Die Aufgaben eines Koordinators</title>

<para>
Der Koordinator einer Gruppe ist der prim&#228;re Ansprechpartner f&#252;r
die Gruppe und verantwortlich f&#252;r die Organisation der anderen
&#220;bersetzer dieser Gruppe. Dies beinhaltet die Vermeidung des Umstandes,
dass mehrere &#220;bersetzer gleichzeitig versuchen, ein und dieselbe
Anwendung zu &#252;bersetzen.
</para>

<para>
Koordinatoren m&#252;ssen die <ulink type="http"
url="http://mail.gnome.org/mailman/listinfo/gnome-i18n"
>GNOME I18N Mailing-Liste</ulink> abonnieren. Das ist &#252;brigens f&#252;r
jeden &#220;bersetzer sehr zu empfehlen, f&#252;r die Koordinatoren aber
unbedingt notwendig.
</para>

<para>
Der Koordinator hat in der Regel Zugang zum GNOME CVS. Sollte dieser
keinen Zugang haben, werden alle Mitglieder die &#220;bersetzungen zu
ihm schicken und er wird diese an eine Person mit einem CVS-Zugang weiterleiten.
Das stellt sicher, dass alle &#220;bersetzungen korrekt sind und zur richtigen
Zeit an die richtigen Leute kommen.
</para>

<para>
Anfangs sicher weniger, aber es werden auch Fehler im Zusammenhang mit Ihren
&#220;bersetzungen auftreten. Jede Sprache wird als eigene Komponente im
<ulink type="http" url="http://bugzilla.gnome.org">GNOME Bugzilla
Fehlerverfolgungssystem</ulink> aufgef&#252;hrt.
</para>

<para>
Der Koordinator wird sich h&#228;ufig mit den technischeren Aspekten der
&#220;bersetzungsarbeit besch&#228;ftigen m&#252;ssen, wie z.B. Pluralformen,
Aktualisierung von <filename>configure.in</filename> Dateien oder
Erstellung von &#220;bersetzungsvorlagen (<filename>.pot</filename> Dateien).
All das wird sp&#228;ter ausf&#252;hrlich erl&#228;utert.
</para>

<para>
M&#246;glicherweise werden Sie sich auch mit der Anwerbung von neuen Mitgliedern
besch&#228;ftigen m&#252;ssen. Viele H&#228;nde lassen die &#220;bersetzung
schneller vorankommen, auch wenn es mehr organisatorische Arbeit f&#252;r
Sie als Koordinator bedeuten k&#246;nnte.
</para>

<para>
Es liegt ebenfalls in der Verantwortung des Koordinators, diese Position
rechtzeitig abzugeben. Sobald sich herausstellt, dass nicht mehr genug Zeit
f&#252;r dieses Amt vorhanden ist, sollten Sie einen geeigneten Nachfolger
suchen.
</para>
</sect2>

<sect2 id="lang-code">
<title>Sprachkennung</title>

<para>
Um mit einer neuen Sprache zu beginnen, muss zuerst die Sprachkennung bekannt
sein. Diese besteht aus zwei bis drei Buchstaben. Gebr&#228;uchliche
Sprachen haben h&#228;ufig nur zwei, exotischere Sprachen eher drei Buchstaben.
Bei Sprachen, die in mehr als einem Land gesprochen werden, folgt
der Sprachkennung ein Unterstrich und eine zweistellige, gro&#223; geschriebene
Landeskennung. Dieser wiederum kann ein <literal>@</literal>-Zeichen
und weiterf&#252;hrende Informationen angeh&#228;ngt sein.
</para>
<example><title>Sprachkennungen</title>
<informaltable frame='none'><tgroup cols='2'><tbody>
<row><entry><quote>fr</quote></entry>
<entry>Franz&#246;sisch</entry></row>
<row><entry><quote>en_GB</quote></entry>
<entry>Englisch, wie es in Gro&#223;britannien verwendet wird</entry></row>
<row><entry><quote>de_DE@euro</quote></entry>
<entry>Deutsch, wie es in Deutschland verwendet wird. Zus&#228;tzliche
Anpassungen rund um die Euro-W&#228;hrung</entry></row>
</tbody></tgroup></informaltable>
</example>

<para>
GNOME benutzt Standardkennungen, die im
<ulink type="http" url="http://www.w3.org/WAI/ER/IG/ert/iso639.htm">ISO
Standard 639</ulink> (f&#252;r Sprachen) und im <ulink type="http" url=
"http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html"
>ISO Standard 3166</ulink> (f&#252;r L&#228;nder) definiert sind.
</para>

<para>
Falls die Kennung der Sprache nicht herauszufinden ist, hilft
m&#246;glicherweise die Suche nach &#220;bersetzungsbeitr&#228;gen in anderen
Projekten, wie z.B. <ulink type="http"
url="http://www.kde.org"><acronym>KDE</acronym></ulink>, <ulink type="http"
url="http://www.mozilla.org">Mozilla</ulink> oder <ulink type="http"
url="http://www.openoffice.org">OpenOffice</ulink> weiter &#8212; diese
sollten die gleichen Kennungen benutzen. Wenn auch das nichts bringt, sollte
die <ulink type="http" url="http://mail.gnome.org/mailman/listinfo/gnome-i18n"
>GNOME I18N Mailing-Liste</ulink> um Hilfe gebeten werden.
</para>

<para>
Die Sprachkennung wird zur Indentifikation der &#220;bersetzungen und Normen
ben&#246;tigt, z.B. f&#252;r die Namen der <link linkend="locale">Locales</link>
und f&#252;r Dateien. Sobald diese Kennung bekannt ist, kann mit dem
&#220;bersetzen begonnen werden.
</para>
</sect2>

<sect2 id="needs">
<title>Was f&#252;r den Anfang ben&#246;tigt wird</title>

<para>
Es gibt eine Reihe von Dingen, die die &#220;bersetzungsarbeit wesentlich
erleichtern.
</para>

<variablelist>
<varlistentry>
<term>Eine Mailing-Liste</term>
<listitem>
<para>
Sie wird als Forum ben&#246;tigt, &#252;ber das die Gruppe &#8212; vorzugsweise
in der eigenen Sprache &#8212; kommunizieren kann. Sie kann zur
Vermeidung von doppelten &#220;bersetzungen und zu Diskussionen &#252;ber
schwer zu &#252;bersetzende Worte bzw. Ausdr&#252;cke genutzt werden und
auch zu einem allgemein g&#252;ltigen W&#246;rterverzeichnis f&#252;hren.
M&#246;glicherweise ist es angebracht, diese Liste mit einem
&#220;bersetzungsteam eines anderen Projekts (z.B. KDE) zu teilen.
Hier k&#246;nnen auch Ank&#252;ndingen zu &#220;bersetzungen bekannt
gegeben werden.
</para>

<para>
Diese Mailing-Liste k&#246;nnte auch von Nutzern der erstellten
&#220;bersetzungen f&#252;r R&#252;ckmeldungen und allgemeine Diskussionen
verwendet werden.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Eine Website</term>
<listitem>
<para>
Eine Website ist bietet sich an, um damit neue Mitglieder anzuwerben und
dadurch die Arbeit weiter zu verteilen. Dort kann auch aufgef&#252;hrt
sein, wer sich um welches Paket k&#252;mmert. Andere Sachen, wie zum Beispiel
das W&#246;rterverzeichnis k&#246;nnten Sie ebenfalls hier abgelegen.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Ein W&#246;rterverzeichnis</term>
<listitem>
<para>
Es ist wichtig, dass alle &#220;bersetzungen konsistent sind und die
gleichen Ausdr&#252;cke benutzen. Das vermeidet Verwirrung bei den
Anwendern. Ein allgemeines W&#246;rterverzeichnis wird Ihnen dabei helfen, dass
nicht mehrere Varianten einer &#220;bersetzung f&#252;r ein und dieselbe
Sache entstehen. Es sollte nicht versucht werden, eine &#220;bersetzung neu
zu erfinden. Stattdessen sollten vorhandene &#220;bersetzungen
wiederverwendet werden. Deshalb sollten Sie nach einem allgemein genutzten
Grundstock an W&#246;rtern dieser Sprache oder nach bereits vorhandenen
&#220;bersetzungen suchen. Eine Anlehnung an die Ausdrucksweise von Microsoft
Windows oder Apple OS X w&#228;re eine M&#246;glichkeit. Im Zweifel ist es aber
vorzuziehen, sich an anderen freien Benutzeroberfl&#228;chen zu orientieren.
Falls ein neuer Ausdruck erstellt oder eine Wahl zwischen zwei Ausdr&#252;cken
getroffen werden muss, sollte die Entscheidung und der Hintergrund dazu
dokumentiert werden. Das vermeidet sp&#228;ter Verwirrungen. Anfangs getroffene
Entscheidungen werden mit Sicherheit nach einigen erstellten
&#220;bersetzungen wieder revidiert. Aber es passiert nur einmal, dass Sie eine
&#220;bersetzung beginnen und dabei Probleme feststellen.
</para>

<para>
In einigen Gruppen &#252;bersetzen die gleichen Personen auch KDE, Mozilla oder
OpenOffice in die gleiche Sprache. Es gibt aber auch Gruppen, die sich nur
um die &#220;bersetzung von GNOME-Anwendungen k&#252;mmern. Im zweiten Fall
ist es eine sehr gute Idee, Kontakt zu den anderen Gruppen aufzunehmen und
herauszufinden, was sie f&#252;r ihre &#220;bersetzungen benutzen, worauf
sie sich st&#252;tzen usw.
</para>

<para>
Eine gute Grundlage, um ein W&#246;rterverzeichnis aufzubauen, ist eine
Kombination der <ulink type="http"
url="http://developer.gnome.org/documents/style-guide/wordlist.html"
>Stilanleitung des GNOME Dokumentationsprojekts</ulink> und dem <ulink
type="http" url="http://cvs.gnome.org/viewcvs/gnome-i18n/glossary/"
>Glossar des <application>gnome-i18n</application> Moduls</ulink>.
Das letztere ben&#246;tigt allerdings eine Aktualisierung.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Ein IRC Channel</term>
<listitem>
<para>
Die Vorteile sind hier sehr &#228;hnlich zu denen einer Mailing-Liste,
au&#223;er dass er f&#252;r bestimmte Arten von Diskussionen
zweckdienlicher ist. Speziell, wenn es sich um eilige Anfragen handelt.
Er kann nat&#252;rlich auch zur Hilfestellung f&#252;r Anwender der
&#220;bersetzung genutzt werden. Das <ulink type="http"
url="http://freenode.org">Freenode Netzwerk</ulink>	ist ein IRC-Netzwerk,
dass Diskussionen um freie Software gewidmet ist. Es w&#228;re ein
geeigneter Platz f&#252;r einen Channel dieser Art.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Die <application>gettext</application> Werkzeuge</term>
<listitem>
<para>
<application>gettext</application> ist ein Paket, dass Werkzeuge zur
Erstellung von &#252;bersetzbaren Zeichenketten, zur Umsetzung dieser
Zeichenketten in Listen, zur Aktualisierung dieser Listen und zum Umwandeln
der Listen in ein f&#252;r den Rechner nutzbares Format enth&#228;lt.
Mindestens einer in der &#220;bersetzergruppe, am besten aber so viele
wie m&#246;glich, sollten die Grundlagen zur Benutzung der
<application>gettext</application>-Werkzeuge beherrschen.
</para>
<para>
Dieses Paket wird bei vielen Linux-Distributionen installiert. Falls es
nicht installiert wurde, sollte es zumindest verf&#252;gbar sein.
</para>

<para>
Ein Blick auf <application>intltool</application> lohnt sich ebenfalls.
Es ist eine Art Frontend f&#252;r <application>gettext</application> und
&#252;bernimmt einige Arbeiten, die von einem &#220;bersetzer gemacht
werden m&#252;ssen. Es ist f&#252;r viele Distributionen verf&#252;gbar,
aber meist ein oder zwei Versionen weiter, als die offiziellen Pakete. Die
aktuellste Version kann aus dem GNOME CVS heruntergeladen werden:
<command>cvs checkout intltool</command>.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>

<sect1 id="translating">
<title>&#220;bersetzen</title>

<para>
Hier kommen wir endlich zum wichtigsten Teil. Eine einfache
Distribution von GNOME in der Version 2.4 enth&#228;lt mehr als 17000
einzelne Zeichenketten. Diese Zahl beinhaltet nicht Evolution, Galeon, eine
Messaging-Anwendung oder andere Dinge, die m&#246;glicherweise als notwendig
angesehen werden. Es gibt eine Vielzahl von Taktiken und Methoden, die hier
angewendet werden k&#246;nnen. Letztlich laufen aber alle auf die
&#220;bersetzung dieser Zeichenketten hinaus.
</para>

<sect2 id="approaches">
<title>Verschiedene Ans&#228;tze</title>

<para>
Es gibt mehrere M&#246;glichkeiten zur &#220;bersetzung. Einige Gruppen
arbeiten direkt an den <filename>.po</filename>-Dateien, entweder mit einem
einfachen Texteditor oder mit speziellen, GUI-basierenden Werkzeugen.
Die fertigen Dateien werden dann in das GNOME CVS eingepflegt. Andere
Gruppen arbeiten mit web-basierenden Systemen. Alle diese M&#246;glichkeiten
habe Vor- und Nachteile.
</para>

<para>
Eine ausf&#252;hrliche Beschreibung der <filename>.po</filename> Dateien
befindet sich am Ende dieses Abschnitts und ist der l&#228;ngste Teil.
Sollten Sie nicht beabsichtigen, etwas anderes zu nutzen, k&#246;nnen Sie
auch direkt zum <link linkend="po-files">Abschnitt
<filename>.po</filename>-Dateien</link> springen.
</para>
</sect2>

<sect2 id="web-interfaces">
<title>Web-Schnittstellen</title>

<para>
Eine Web-Schnittstelle stellt eine Liste von Zeichenketten zur Verf&#252;gung
und erm&#246;glicht dadurch die &#220;bersetzung. In bestimmten
Zeitabst&#228;nden werden die gesammelten &#220;bersetzungen zur&#252;ck in
das CVS geschrieben. Der Vorteil hierbei ist, dass nur der Koordinator und der
Verantwortliche f&#252;r die Web-Schnittstelle wissen m&#252;ssen, wie
<filename>.po</filename>-Dateien erstellt werden. Au&#223;erdem l&#228;sst
diese L&#246;sung auch Hilfe von Leuten zu, die weder GNOME noch einen
passenden Editor zur Verf&#252;gung haben. Ein Nachteil ist, dass die
Beitragenden nicht den Rest der Dateien zu sehen bekommen. Das k&#246;nnte zu
Inkonsistenzen zwischen den einzelnen &#220;bersetzungen f&#252;hren. Ein
weiteres Problem sind Kommentare zu einzelnen Zeichenketten, die der Entwickler
an den &#220;bersetzer richtet, da sie nicht immer angezeigt werden.
</para>

<para>
Zu bereits vorhandenen Web-Schnittstellen z&#228;hlen folgende:
</para>

<simplelist>
<member><ulink type="http" url="http://www.prevod.org">Prevod</ulink></member>
<member><ulink type="http"
url="http://www.kyfieithu.co.uk">Kyfieithu</ulink></member>
<member><ulink type="http" url="http://i18n.ricetons.com/">Das System der
chinesischen Gruppe.</ulink> Login: <quote>i18n</quote>, kein Passwort</member>
</simplelist>
</sect2>

<sect2 id="po-files">
<title><filename>po</filename> Dateien</title>

<para>
Es gibt eine exzellente Anleitung, die beschreibt wie man Verzeichnisse aus
dem CVS auscheckt, <filename>.pot</filename>-Dateien erstellt, diese in
<filename>.po</filename>-Dateien umwandelt und wieder in das CVS eincheckt:
<!-- to be translated next time -->
<ulink type="http"
url="http://developer.gnome.org/doc/tutorials/gnome-i18n/translator.html">
Using GNOME CVS as a Translator</ulink>. Sie erkl&#228;rt alle Einzelheiten zur
Benutzung der <application>gettext</application> Werkzeuge. Weil sie ca. 90%
der Arbeiten mit <filename>.po</filename>-Dateien beschreibt, sollte sie auf
jeden Fall gelesen werden. Die Beschreibungen werden an dieser Stelle nicht
wiederholt. Stattdessen folgen hier einige zus&#228;tzliche Kommentare, die
diese Anleitung keinesfalls ersetzen.
</para>

<para>
<filename>.po</filename>-Dateien sind auch &#252;ber die <ulink type="http"
url="http://l10n-status.gnome.org/">Statusseite des GNOME
&#220;bersetzungsprojekts</ulink> f&#252;r die jeweilige Sprache
erh&#228;ltlich. Manchmal werden dabei allerdings spezielle Zeichen, die nicht
im ASCII-Zeichensatz enthalten sind, entstellt. Es ist aber eine n&#252;tzliche
Alternative zum CVS.
</para>

<para>
Eine <filename>.po</filename>-Datei ist eine Liste von urspr&#252;nglichen
Zeichenketten der Anwendung und Freiraum f&#252;r die &#252;bersetzte Version.
Zus&#228;tzlich dazu enth&#228;lt sie noch einen Kopf
mit folgenden Daten:
<variablelist>
<varlistentry>
<term>Project-Id-Version</term>
<listitem>
<para>
Hier steht der Name des Pakets und gegebenenfalls die Version, f&#252;r die
die &#220;bersetzung g&#252;ltig ist.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>POT-Creation-Date, PO-Revision-Date</term>
<listitem>
<para>
Das <quote>POT-Creation-Date</quote> ist das Datum, an dem die Vorlage erstellt
wurde. Dieses Feld wird automatisch ausgef&#252;llt. Das
<quote>PO-Revision-Date</quote> ist das Datum der letzten &#196;nderung und muss
von Hand ge&#228;ndert werden.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Language-Team</term>
<listitem>
<para>
Dieses Feld sollte die Sprache und am besten auch eine Kontaktadresse
der &#220;bersetzergruppe enthalten.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Content-Type</term>
<listitem>
<para>
Dieses Feld beschreibt den Zeichensatz und <emphasis>muss</emphasis>
auf UTF-8 gesetzt werden. Es ist auch zwingend notwendig, dass die
fertige Datei im UTF-8 Format vorliegt. Auf Rechnern mit UNIX oder
UNIX-verwandten Betriebssystemen gibt <command>file</command> Auskunft
dar&#252;ber, welches Format eine Datei hat. Sollte die vollst&#228;ndige
<application>gettext</application>-Umgebung auf Ihrem System installiert sein,
k&#246;nnen Sie auch <command>msgfmt -cv -o /dev/null dateiname.po</command> zum
&#252;berpr&#252;fen verwenden. Sollte die Datei nicht im UTF-8 Format
vorliegen, wird <command>msgfmt -cv</command> eine entsprechende Fehlermeldung
ausgeben.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>

<para>
Auch Kommentare sind in der Datei enthalten. Diese sind durch das Zeichen
<literal>#</literal> am Zeilenanfang gekennzeichnet. Ein Kommentar wie z.B.
<literal>#,c-format</literal> weist darauf hin, dass die Zeichenkette Teile
enth&#228;lt, die von der Anwendung selbst ausgef&#252;llt werden. Ein Beispiel
daf&#252;r ist das Uhr-Applet aus <application>gnome-panel</application>.
Dort gibt es eine Zeichenkette <quote>%H:%M</quote>. Diese kann einfach
durch kopieren <quote>&#252;bersetzt</quote> werden. Sie wird zur Darstellung
der Systemzeit ben&#246;tigt, wobei <literal>%H</literal> f&#252;r die Stunde
und <literal>%M</literal> f&#252;r die Minuten steht.
</para>

<para>
In diesem Artikel gibt es einen separaten Anhang zu
<link linkend="c-format-stuff">allgemeinen C-Format Zeichen</link>.
</para>

<para>
M&#246;glicherweise sind auch Kommentare des Programmieres f&#252;r die
&#220;bersetzer enthalten. In <application>gnome-panel</application> zum
Beispiel steht folgender Kommentar kurz nach der oben erw&#228;hnten
Zeichenkette:
</para>

<programlisting>
#. translators: reverse the order of these arguments
#. *              if the time should come before the
#. *              date on a clock in your locale.
</programlisting>

<para>
Ebenso sind Kennzeichnungen f&#252;r Zugriffstasten, im folgenden
<firstterm>Hotkeys</firstterm> genannt, zu ersetzen. Durch diese Hotkeys
k&#246;nnen Men&#252;s und andere Elemente &#252;ber die Tastatur bedient
werden, ohne die Maus zu benutzen. Sie sind mit einem Unterstrich vor dem
Buchstaben markiert, der zusammen mit der <keycap>Alt</keycap>-Taste
den Hotkey bildet. Das wird anfangs zu Widerspr&#252;chen und
Kollisionen f&#252;hren, weshalb es m&#246;glicherweise sehr wichtig ist, die
Hotkeys f&#252;r <application>gtk+</application> als erstes zu &#252;bersetzen.
Diese wirken sich auf jede einzelne GNOME-Anwendung aus. Danach k&#246;nnen Sie
die &#252;brig gebliebenen Zeichen benutzen und die beste Kombination f&#252;r
den jeweiligen Fall suchen. Sollten trotzdem einmal zwei oder mehrere
Men&#252;eintr&#228;ge den gleichen Hotkey besitzen, ist das nicht weiter
tragisch. Ab Version 2.4 l&#228;sst es GNOME zu, zwischen diesen Eintr&#228;gen
durch mehrmaliges Bet&#228;tigen des Hotkeys zu springen.
</para>

<para>
Beschreibungen von <application>GConf</application>-Schl&#252;sseln k&#246;nnen
auch enthalten sein. Normalerweise hat jeder Schl&#252;ssel eine kurze und
eine detailliertere Beschreibung. Zeichenketten dieser Art erkennen Sie an ihrer
Herkunft. Sie sind &#252;blicherweise in Dateien mit der Endung
<filename>.schemas.in.h</filename> enthalten.
</para>

<para>
Bei der &#220;bersetzung von Schl&#252;sselbeschreibungen sollten Sie
Beispielausdr&#252;cke f&#252;r den Schl&#252;ssel, eingeschlossen in doppelten
Anf&#252;hrungszeichen, nicht mit &#252;bersetzen. Ein Beispiel:
</para>

<programlisting>
#: src/gnome-terminal.schemas.in.h:70
msgid ""
"Default color of terminal background, as a color specification (can be HTML-"
"style hex digits, or a color name such as \"red\")."
msgstr ""
"Die voreingestellte Hintergrundfarbe des Terminals als Farbangabe (kann als "
"HTML-artige Hex-Zahl oder einer Schriftfarbe wie &#187;red&#171; angegeben werden)."
</programlisting>

<para>
Hier ist <literal>red</literal> der Beispielausdruck und muss unver&#228;ndert
in die &#220;bersetzung &#252;bernommen werden. Da doppelte
Anf&#252;hrungszeichen in <filename>.po</filename>-Dateien eine besondere
Bedeutung haben, werden diese mit einem Backslash maskiert. Bei deutschen
&#220;bersetzungen hat man sich dazu entschieden, statt der doppelten
Anf&#252;hrungszeichen die umgekehrten franz&#246;sischen Anf&#252;hrungszeichen
(<keycombo><keycap>AltGr</keycap><keycap>x</keycap></keycombo> bzw.
<keycombo><keycap>AltGr</keycap><keycap>y</keycap></keycombo>) zu verwenden.
</para>

<para>
Falls einmal englische Beschreibungen auftauchen, die unverst&#228;ndlich sind,
sollte ein <ulink type="http" url="http://bugzilla.gnome.org/"
>Fehlerbericht</ulink> f&#252;r die entsprechende Anwendung erstellt werden.
Auch wenn eine Beschreibung nicht sinnvoll &#252;bersetzt werden kann sollte das
getan werden. &#220;bersetzer im Ganzen erstellen viele solcher Meldungen, da
sie in der Regel die Ersten sind, denen so etwas auff&#228;llt. Je eher solche
Probleme angezeigt werden, desto besser. Falls Sie den Sinn der Beschreibung
doch noch erkennen, werden Sie es m&#246;glicherweise vergessen. Solche Fehler
zu melden, bewahrt andere &#220;bersetzer davor, die gleichen Probleme
zu haben.
</para>

<important>
<title>
Auf keinen Fall die <literal>msgid</literal>-Zeilen ver&#228;ndern
</title>
<para>
Die englischen Zeichenketten in der Datei d&#252;rfen Sie nicht ver&#228;ndern.
Ge&#228;nderte <literal>msgid</literal>-Zeichenketten werden durch die
Programme, die die &#220;bersetzung in die Anwendung integrieren, nicht
abgefangen. Die &#196;nderungen an der urspr&#252;nglichen Zeichenkette gehen
verloren und die &#220;bersetzung wird m&#246;glicherweise nicht eingef&#252;gt.
</para>
</important>

</sect2>
</sect1>

<sect1 id="changes">
<title>Mit &#196;nderungen umgehen</title>

<para>
Ungl&#252;cklicherweise &#228;ndert sich Software hin und wieder. Dies betrifft
auch &#252;bersetzbare Teile der Anwendungen. Zeichenketten kommen hinzu,
&#228;ndern sich und manchmal werden diese auch entfernt. Gl&#252;cklicherweise
gibt es Werkzeuge und Prozeduren, die es Ihnen erm&#246;glichen, mit den
&#196;nderungen der Anwendungen Schritt zu halten.
</para>

<sect2 id="status-table">
<title>Die Statustabellen</title>

<para>
Carlos Perell&#243; Mar&#237;n wartet die Statustabellen
der &#220;bersetzungen aller Sprachen, die in GNOME verf&#252;gbar sind. Sie
sind auch &#252;ber die Seite des <ulink type="http"
url="http://developer.gnome.org/projects/gtp/">GNOME
&#220;bersetzungsprojekts</ulink> zu erreichen. Diese Tabellen enthalten
verschiedene Ansichten und werden dreimal am Tag aktualisiert.
</para>

<simplelist>
<member>
<ulink type="http"
url="http://l10n-status.gnome.org/">Startseite</ulink>
</member>

<member>
<ulink type="http"
url="http://l10n-status.gnome.org/stable/">
GNOME-Grundpakete der stabilen Version: Alle Sprachen
</ulink>
</member>

<member>
<ulink type="http"
url="http://l10n-status.gnome.org/development/">
GNOME Grundpakete der Entwicklungsversion: Alle Sprachen
</ulink>
</member>

<member>
<ulink type="http"
url="http://l10n-status.gnome.org/HEAD/">
Sonstige Pakete: Alle Sprachen
</ulink>
</member>
</simplelist>

<para>
F&#252;r jede Sprache gibt es Tabellen, die den Gesamtstatus und eine
Aufspaltung in einzelne Pakete anzeigen. Diese Tabellen enthalten
au&#223;erdem Links zu den aktuellsten <filename>.pot</filename>-Dateien
(falls noch keine &#220;bersetzung f&#252;r die jeweilige Anwendung vorliegt)
bzw. zur aktuellsten <filename>.po</filename>-Datei. Sie k&#246;nnen direkt
von dort heruntergeladen werden, ohne das CVS zu benutzen. Das Hochladen
funktioniert nicht auf diese Weise, aber die M&#246;glichkeit des
Herunterladens ist sehr n&#252;tzlich.
</para>

<para>
Alle diese Funktionen stehen zumindest f&#252;r die letzte stabile Version und
die aktuelle Entwicklungsversion von GNOME sowie f&#252;r Anwendungen, die nicht
dem Ver&#246;ffentlichungszyklus von GNOME unterliegen (HEAD genannt), bereit.
</para>

<para>
Sobald &#220;bersetzungen der jeweiligen Sprache in das CVS eingepflegt wurden,
erh&#228;lt diese eine eigene Abteilung in den Statustabellen. Es lohnt sich,
pers&#246;nliche Lesezeichen auf die f&#252;r die jeweilige Sprache relevanten
Tabellen anzulegen. Sie sind sehr, sehr n&#252;tzlich.
</para>

<para>
Jede Sprache ist &#252;ber eine URL in der Form
http://l10n-status.gnome.org/gnome-2.10/XX/index.html
ereichbar, wobei XX durch die jeweilige Sprachkennung (klein geschrieben)
ersetzt werden sollte. Soll eine andere Version angezeigt werden, ist eine
entsprechende Anpassung der URL notwendig &#8212; entweder durch Angabe
der Version in der Form <quote>gnome-X.XX</quote> oder durch eines der Synonyme
<quote>HEAD</quote>, <quote>stable</quote> und <quote>development</quote>.
</para>
</sect2>

<sect2 id="msgfmt">
<title>Ge&#228;nderte Pakete aktualisieren</title>

<para>
Wenn Sie Ihre Kopie eines Pakets &#252;ber CVS aktualisieren oder die
Statusseiten im Browser aufrufen, werden Sie fr&#252;her oder
sp&#228;ter auf &#196;nderungen sto&#223;en. Auch an dieser Stelle sei die
Anleitung <ulink type="http"
url="http://developer.gnome.org/doc/tutorials/gnome-i18n/translator.html">How
to use GNOME CVS as a translator</ulink> f&#252;r die notwendigen CVS-Befehle
w&#228;rmstens empfohlen. Sollten mehrere Zeichenketten zu aktualisieren sein,
gibt es verschiedene Wege, um an neue Vorlagen zu kommen. Die einfachste
M&#246;glichkeit ist das Herunterladen der fertigen Vorlage bzw. der
aktualisierten <filename>.po</filename>-Datei von den Statusseiten. Die zweite
M&#246;glichkeit &#252;ber das CVS mit Hilfe von
<application>intltool</application> ist in der oben angesprochenen Anleitung
zu finden.
</para>

<para>
An dieser Stelle ist ein kleiner Abstecher zu den Hintergr&#252;nden notwendig.
Im Prinzip wird zur Aktualisierung eine neue Vorlage (<filename>.pot</filename>)
erstellt und die vorhandenen &#220;bersetzungen mittels
<command>msgmerge</command> in diese Vorlage eingef&#252;gt. Das Ergebnis ist
dann die aktualisierte <filename>.po</filename>-Datei.
</para>

<para>
<command>msgmerge</command> f&#252;gt aber nicht nur wirklich passende
&#220;bersetzungen ein, sondern erzeugt auch sogenannte <quote>fuzzy</quote>
(ungenaue) &#220;bersetzungen. Hierbei werden die originalen Zeichenketten auf
&#196;hnlichkeiten &#252;berpr&#252;ft und bei ausreichender
&#220;bereinstimmung eine eventuell schon vorhandene &#220;bersetzung
eingef&#252;gt.
</para>

<caution>
<title>Ungenaue &#220;bersetzungen sind auch als solche zu verstehen</title>
<para>
Die &#220;bersetzungen durch <command>msgmerge</command> treffen oft nicht
den eigentlichen Sinn der originalen Zeichenkette. Jeder &#220;bersetzer
hat hier seinen eigenen Lieblingsvorschlag, den <command>msgmerge</command>
liefert. Mein (Telsa's) pers&#246;nlicher Favorit ist der Vorschlag, dass die
&#220;bersetzung von <quote>Open window</quote> genutzt werden sollte, um
<quote>Close window</quote> zu &#252;bersetzen&#8230;
</para>
</caution>

<para>
Ungenaue &#220;bersetzungen sind in <filename>.po</filename>-Dateien durch
einen Kommentar oberhalb der Zeichenketten markiert, der das Wort
<literal>fuzzy</literal> enth&#228;lt. Sollte die &#220;bersetzung gut
genug sein, k&#246;nnen Sie die Markierung <literal>fuzzy</literal>
entfernen. Wenn dieses Wort als einziges in der Kommentarzeile steht, kann
die ganze Zeile gel&#246;scht werden. Sollten Sie dieses Wort nicht
entfernen, wird die &#220;bersetzung von der Anwendung nicht genutzt.
Ein paar Beispiele dazu:
</para>

<programlisting>
#, fuzzy
msgid "Blah blah blah."
msgfmt "Gelabere."
</programlisting>

<para>
Falls die &#220;bersetzung f&#252;r diesem Fall zufriedenstellend ist,
k&#246;nnen Sie die Zeile mit dem Wort <literal>fuzzy</literal> komplett
entfernen:
</para>

<programlisting>
msgid "Blah blah blah."
msgfmt "Gelabere."
</programlisting>

<para>
Gelegentlich werden Sie aber auch auf so etwas sto&#223;en:
</para>

<programlisting>
#, c-format, fuzzy
msgid "Very important: %s"
msgstr "Sehr wichtig: %s"
</programlisting>

<para>
Soll in diesem Fall die Ungenauigkeit entfernt werden, muss die
<literal>c-format</literal>-Markierung intakt bleiben:
</para>

<programlisting>
#, c-format
msgid "Very important: %s"
msgstr "Sehr wichtig: %s"
</programlisting>

<para>
Es wird auch einmal vorkommen, dass eine Reihe von Zeichenketten in ein
anderes Modul verschoben wird. Das kann teilweise entmutigend sein,
wenn die &#220;bersetzungen daf&#252;r bereits erledigt sind und man denkt,
dass die ganze Arbeit umsonst war. Diese Arbeit k&#246;nnen Sie sich
aber ersparen, indem Sie die vorhandene <filename>.po</filename>-Datei
mittels <command>msgmerge -o neu.po vorhanden.po vorlage.pot</command> in das
neue Modul einf&#252;gen.
</para>

<para>
Sie k&#246;nnen sich auch eine pers&#246;nliche Sammlung von
&#220;bersetzungen anlegen, die Sie als Quelle f&#252;r
&#220;bersetzungsvorschl&#228;ge nutzen k&#246;nnen. Dies wird mit
dem Befehl <command>msgcat a.po b.po c.po &gt; sammlung</command>
bewerkstelligt. Bevor die Sammlung benutzt wird, sollte sie speziell auf
Zeichenketten in der Form <quote>#-#-#-#-#</quote> untersucht werden.
Diese zeigen Konflikte zwischen den einzelnen <filename>.po</filename>-Dateien.
Diese Eigenschaft von <command>msgcat</command> kann ebenfalls zur
&#220;berpr&#252;fung von verschiedenen <filename>.po</filename>-Dateien auf
Inkonsistenzen genutzt werden. Ist einmal eine Sammlung mit
<command>msgcat</command> erstellt, kann sie mit <command>msgmerge</command>
benutzt werden, um die Vorschl&#228;ge in eine <filename>.po</filename>-Datei
zu &#252;bernehmen. Ein Beispiel daf&#252;r:
<command>msgmerge -C sammlung -o neu.po alt.po vorlage.pot</command>
</para>

<para>
M&#246;glicherweise finden Sie auch eine Reihe von &#220;bersetzungen in der
<filename>.po</filename>-Datei, die nicht l&#228;nger genutzt werden. Sie
werden an das Ende der Datei geschoben und auskommentiert. F&#252;r die
Anwendung haben sie dadurch keine Auswirkungen mehr und werden ignoriert. Diese
Zeilen sollten Sie nur l&#246;schen, wenn es zu viele geworden und
sie wirklich im Weg sind. Vielleicht werden sie zu einem sp&#228;teren
Zeitpunkt wieder in die Anwendung integriert. Sie werden auch durch den
Befehl <command>msgmerge</command> f&#252;r &#220;bersetzungsvorschl&#228;ge
genutzt. Deshalb sollten sie stehen bleiben, wo sie sind.
</para>
</sect2>
</sect1>

<sect1 id="first-app">
<title>Die erste &#220;bersetzung</title>

<para>
Dieser Abschnitt gibt Ihnen einige Hinweise zur Entscheidung, was Sie als
erstes &#252;bersetzen sollten.
</para>

<para>
Suchen Sie sich zum Anfang etwas sehr kleines heraus, um mit den
&#220;bersetzungswerkzeugen vertraut zu werden. Es sollte auch m&#246;glichst
eine Anwendung sein, damit Sie die &#220;bersetzung sofort testen k&#246;nnen.
Eine kleine, alleinstehende Anwendung ist also die beste Wahl.
</para>

<para>
In den seltensten F&#228;llen wird die aktuellste Version von GNOME aus dem CVS
auf Ihrem Rechner installiert sein. Meist ist es die letzte stabile Version.
Deshalb ist es angebracht, genau die Version einer Anwendung zu &#252;bersetzen,
die auch auf Ihrem Rechner vorhanden ist. Sollte zum Beispiel
<application>bug-buddy-2.8</application> installiert sein, sollte die
Version aus GNOME 2.8 verwendet werden. Wird eine andere Version &#252;bersetzt,
haben sich unter Umst&#228;nden einige &#196;nderungen an den Zeichenketten
ergeben. Beim Ausprobieren w&#252;rden dann nicht alle &#220;bersetzungen
angezeigt.
</para>

<para>
Sobald Sie die Anwendung mit der neuen Sprache testen, gibt es sicher
einige allgemeine Buttons und Dialoge, die noch in englischer Sprache
beschriftet sind. Sie werden durch Bibliotheken bereit gestellt, die
in fast jeder GNOME-Anwendung zum Einsatz kommen. Um diese Teile in eine
neue Sprache zu &#252;bersetzen, werden Sie einen Blick auf
<application>gtk+</application>, <application>libgnome</application>
und teilweise <application>libgnomeui</application> werfen m&#252;ssen. Diese
Pakete enthalten einige sehr schwierige Zeichenketten, die zu diesem Zeitpunkt
nicht unbedingt &#252;bersetzt werden m&#252;ssen. Suchen sie vorerst nur nach
den Zeichenketten, die st&#228;ndig in verschiedenen Dialogen auftauchen. Das
wird Sie schon ein gro&#223;es St&#252;ck weiter bringen.
</para>

<para>
Das <application>gtk</application>-Paket ist Teil einer Gruppe, die
<quote>developer-libs</quote> genannt werden. Es enth&#228;lt in etwa die
H&#228;lfte aller Zeichenketten dieser Gruppe. Sobald Sie
<application>gtk</application> &#252;bersetzt haben, werden Sie einen
gro&#223;en Sprung in Ihren Statistiken bemerken.
</para>

<para>
Einige Zeichenketten im <application>Epiphany</application>-Browser stammen
von <application>Mozilla</application>. Sollten Sie
<application>Epiphany</application> vollst&#228;ndig &#252;bersetzt haben,
k&#246;nnten trotzdem einige Zeichenketten, die durch Mozilla bereitgestellt
werden, un&#252;bersetzt erscheinen. Sollte ein Mozilla-Sprachpaket in Ihrer
Sprache existieren, werden Sie diese Tatsache unter Umst&#228;nden
&#252;berhaupt nicht wahrnehmen. Falls kein entsprechendes Sprachpaket
verf&#252;gbar ist, k&#246;nnen Sie nicht viel tun. Sie k&#246;nnten
nat&#252;rlich einen Freund dazu bewegen, die &#220;bersetzung von Mozilla zu
&#252;bernehmen&#8230;
</para>
</sect1>

<sect1 id="installing">
<title>Installieren</title>

<para>
Es ist sehr zu empfehlen, die &#220;bersetzungen in direktem Zusammenhang mit
der Anwendung zu testen. Das ist m&#246;glich, wenn Sie Root-Rechte auf
einem Rechner mit einer halbwegs aktuellen GNOME-Installation haben.
Die Anwendung braucht dazu eine sogenannte <quote>Message-Object</quote>
Datei (<filename>.mo</filename>), die Sie &#252;ber <command>msgfmt -cv</command>
erzeugen k&#246;nnen. Die damit erzeugte Datei muss in das Verzeichnis
<filename class="directory">/usr/share/locale/<replaceable>XX</replaceable>/LC_MESSAGES/</filename>
(wobei <replaceable>XX</replaceable> f&#252;r die Sprachkennung steht) verschoben
werden und den Namen des Programms tragen. Beispiele daf&#252;r sind
<filename>metacity.mo</filename> oder <filename>nautilus.mo</filename>.
Gelegentlich wird auch die Programmversion im Namen ben&#246;tigt. Leider gibt
es keine einfache M&#246;glichkeit, den richtigen Namen f&#252;r die
<filename>.mo</filename>-Datei herauszufinden. Hier hilft nur die Suche in
Unterverzeichnissen von <filename
class="directory">/usr/share/locale/</filename> nach bereits existierenden
<filename>.mo</filename>-Dateien f&#252;r andere Sprachen.
</para>

<para>
Jetzt k&#246;nnen Sie die Anwendung starten. &#196;nderungen an
<filename>.mo</filename>-Dateien k&#246;nnen die Anwendung zum Absturz bringen.
Sollten Sie zum Beispiel <filename>gnome-terminal.mo</filename>
aktualisieren w&#228;hrend dieser noch l&#228;uft, bereiten Sie sich schon mal auf
einen Crash vor &#8230;:) Sobald die Datei an ihrem Platz ist, wird alles
wie gewohnt funktionieren. Es ist nur die Aktualisierung, die diese Probleme
verursachen kann.
</para>

<note>
<title>Die Locale muss existieren</title>
<para>
Das Installieren der <filename>.mo</filename>-Datei wird nur funktionieren,
wenn die Locale auf dem Rechner verf&#252;gbar ist. Am einfachsten ist es bei
Debian: Hier gibt es einen Befehl daf&#252;r. Die Prozedur unterscheidet sich
aber bei den verschiedenen Distributionen.
</para>
</note>

<para>
Sobald Sie herausgefunden haben, wie Sie Ihre &#220;bersetzungen auf einem
Rechner installieren k&#246;nnen, teilen Sie es anderen Interessenten mit, 
damit diese Ihre &#220;bersetzungen testen k&#246;nnen. Andere Leute werden mehr 
Fehler als Sie selbst entdecken. Nebenbei k&#246;nnten sie dadurch inspiriert
werden, bei den &#220;bersetzungen zu helfen.
</para>
</sect1>

<sect1 id="testing">
<title>Testen</title>

<para>
Das Testen gewinnt an Bedeutung, wenn gro&#223;e Teile der Oberfl&#228;che &#252;bersetzt 
sind. Sie werden dabei feststellen, dass identische Begriffe
unterschiedlich &#252;bersetzt sind oder der Sinn eines Begriffs durch eine 
&#220;bersetzung nicht getroffen wurde.
</para>

<para>
Je mehr Sie testen oder testen lassen, umso besser.
</para>
</sect1>

<sect1 id="editors">
<title>Editoren</title>

<para>
Eine Reihe von Editoren haben einen speziellen Modus zum Bearbeiten von
<filename>.po</filename>-Dateien und werden automatisch in diesen fallen.
</para>

<para>
Stellen Sie sicher, dass der Editor im UTF-8 Format schreibt. Sollte
die Datei nicht in diesem Format vorliegen, wird es Probleme im 
GNOME CVS geben.
</para>

<para>
Editoren, die gut mit UTF-8 zurecht kommen:
</para>

<simplelist>
<member>Emacs</member>
<member>Vim</member>
<member>GEdit</member>
</simplelist>

<para>
Falls Sie <application>vim</application> verwenden, sollten Sie einige Dinge
in Ihre <filename>.vimrc</filename> &#252;bernehmen:
</para>

<programlisting>
set fileencodings=utf-8
" Ein vim-Makro zum Kopieren von msgid in msgstr &#252;ber Ctrl-E:
map &lt;C-E&gt; :s/msgid "\(.*\)"\nmsgstr ""/msgid "\1"&lt;C-V&gt;&lt;CR&gt;msgstr "\1"/&lt;CR&gt;
</programlisting>

<para>
Es gibt ein Plugin zum Bearbeiten von  <filename>.po</filename>-Dateien,
das <application>vim</application> weitere n&#252;tzliche Funktionen hinzuf&#252;gt.
Es ist auf der <ulink type="http" url="http://www.vim.org">Vim-Website</ulink>
als <ulink type="http"
url="http://vim.sourceforge.net/scripts/script.php?script_id=695">po.vim</ulink>
verf&#252;gbar.
</para>

<para>
<application>GNU-Emacs</application> besitzt einen Editier-Modus eigens f&#252;r
<filename>.po</filename>-Dateien.
</para>

<para>
Es gibt auch Anwendungen mit grafischer Benutzeroberfl&#228;che zum Editieren
von <filename>.po</filename>-Dateien. Das GNOME-Pendant nennt sich 
<application>gtranslator</application>. 
</para>
</sect1>

<sect1 id="other-hints">
<title>Weitere Hinweise</title>

<para>
Einige Dinge haben wir aus bitteren Erfahrungen gelernt. Sie werden hier 
aufgef&#252;hrt, damit niemand die gleichen Fehler begeht.
</para>

<itemizedlist>
<listitem>
	<para>
	Warten Sie nicht Ewigkeiten damit, Aktualisierungen in einen Branch
	einzupflegen. Wie lange es auch dauert und wie m&#252;hsam es auch ist,
	den Branch auszuchecken und die &#220;bersetzungen zu aktualisieren. 
	Falls Sie beabsichtigen, den Branch und HEAD zu &#252;bersetzen, tun
	Sie beides gleichzeitig. Wenn Sie dies nicht tun, wird der Tag kommen,
	an dem Sie Stunde um Stunde damit verbringen, die Aktualisierungen
	in den Branch zu &#252;bertragen. 
	</para>

	<para>
	Sollten Sie eine langsame oder volumenbegrenzte Verbindung zum Netz 
	haben, legen Sie die Branches in einem separaten Verzeichnis ab, 
	statt zwischen HEAD und Branch zu wechseln. Zuerst wird es etwas
	l&#228;nger dauern, auf lange Sicht spart es aber eine Menge Zeit.
	</para>
</listitem>

<listitem>
	<para>
	Automatisieren Sie soviel wie m&#246;glich, solange es sicher ist.
	Beim Einf&#252;gen einer neuen &#220;bersetzung zum Beispiel, werden
	immer die gleichen drei Zeilen zur &#196;nderung von 
	<filename>configure.in</filename>  in das Haupt-Changelog 
	geschrieben. Erstellen Sie sich eine passende Datei, die alle 
	notwendigen Angaben enth&#228;lt und aktualisieren Sie das Datum 
	t&#228;glich. Diese Datei kann dann &#252;ber ein Editor-Makro 
	eingef&#252;gt werden. Es ist in jedem Fall besser, als f&#252;nfzig
	Mal dasselbe einzugeben. Benutzen Sie auch Kurznamen f&#252;r 
	h&#228;ufig genutzte Befehle, z.B. <command>alias de-commit='cvs
	commit -m "Updated German translation." de.po ChangeLog'</command>
	</para>
</listitem>

<listitem>
	<para>
	Finden Sie einen Sprach-Enthusiasten. Sie werden auf eine Reihe von
	schwer zu &#252;bersetzenden Zeichenketten sto&#223;en. Angefangen von 
	Ausdr&#252;cken f&#252;r Tabellenkalkulationen in Gnumeric bis zu dem
	Satz <quote>The quick brown fox..</quote>, der in der 
	Schriftartauswahl verwendet wird, da er alle englischen Buchstaben 
	enth&#228;lt. Hier werden Sie ein passendes Gegenst&#252;ck suchen 
	oder erfinden m&#252;ssen, was sich f&#252;r Japanisch und 
	Chinesisch schwierig gestalten k&#246;nnte&#8230; 
	</para>

	<para>
	Wenn es in Ihrer Sprache einen akzeptierten Satz an neuen 
	Ausdrucksweisen gibt, sollten Sie sich dessen bewusst sein. Auch
	wenn Sie sie nicht gut finden. M&#246;glicherweise m&#252;ssen Sie 
	sich irgendwann rechtfertigen, warum Sie nicht die 
	<quote>offizielle</quote> Terminologie verwenden&#8230;
	</para>
</listitem>

<listitem>
	<para>
	Sie werden des &#214;fteren auf versteckte Sp&#228;&#223;chen der 
	GNOME-Hacker sto&#223;en. Ein Beispiel: <application>GEGL</application>
	kann der Name einer Bibliothek sein (Generic Graphical Library),
	ist aber auch die Abk&#252;rzung von <quote>Genetically Engineered Goat, 
	Large</quote> (gentechnisch ver&#228;nderte Ziege, gro&#223;). Das ist einfach 
	nur ein kleiner Witz, der an verschieden Orten in GNOME vorkommt.
	Ein Bild dieser Ziege m&#252;sste unter 
	<filename>/usr/share/pixmaps/gnome-gegl2.png</filename> zu finden 
	sein&#8230;;) Solche Dinge m&#252;ssen nicht unbedingt &#252;bersetzt werden.
	Es gibt auch eine Reihe von skurrilen <quote>Hinweisen</quote> 
	in einer der Aisleriot-Dateien.
	</para>

	<para>
	Akzeptieren und &#252;bernehmen Sie diese Dinge. Sie sind Teil von dem,
	was an GNOME Spa&#223; macht. Auch wenn es manchmal nicht einfach ist,
	den Sinn zu verstehen und man vier W&#246;rterb&#252;cher daf&#252;r w&#228;lzen muss&#8230;
	</para>
</listitem>

<listitem>
	<para>
	Auf der gnome-i18n Mailing-Liste und im #i18n IRC-Channel ist
	meist nicht viel los. Dort gibt es aber in jedem Fall erfahrene
	Leute, die Antworten auf die meisten Fragen haben und Wege zur
	L&#246;sung von Problemen anbieten k&#246;nnen. Benutzen Sie deshalb beides. 
	</para>
</listitem>

<listitem>
	<para>
	Es kommt schnell mal vor, dass man die Unterstriche, die ein 
	Tastenk&#252;rzel in Men&#252;s markieren, in der &#220;bersetzung vergisst.
	Der Unterschied in der Anzahl der Unterstriche zwischen den 
	<literal>msgid</literal>- und 
	<literal>msgstr</literal>-Zeichenketten kann mit dem Befehl
	<command>msgfmt --check-accelerators=_</command> festgestellt
	werden. Sollte es aber die Zeichenkette 
	<quote>translator_credits</quote> geben und hier Ihr Name 
	eingetragen sein, wird es immer einen Unterstrich geben, der zu 
	fehlen scheint.
	</para>
</listitem>

<listitem>
	<para>
	Testen, testen, testen. Es ist schwer, alles dem Rechner Ihrer
	Sprache anzupassen. Aber es ist vergleichsweise einfach, Ihre
	eigene &#220;bersetzung zu installieren &#8212; zumindest bei einigen 
	Anwendungen. Tun Sie das. Es wird Ihnen wirklich helfen.
	</para>
</listitem>

<listitem>
	<para>
	Erstellen Sie ein Tarball der fertigen &#220;bersetzungen &#8212; ein 
	weiterer Kandidat zur Automatisierung. Stellen Sie es zusammen 
	mit einer einfachen Anleitung ins Netz, so dass es andere Leute
	installieren k&#246;nnen. Das bringt Ihnen fr&#252;her R&#252;ckmeldungen und 
	Hilfe, als wenn Sie darauf warten, dass Ihre &#220;bersetzungen in einer
	Distribution mitgeliefert werden. Die Anleitung zur Installation
	wird ungl&#252;cklicherweise von Distribution zu Distribution 
	unterschiedlich ausfallen. Das Ergebnis ist es aber wert.
	</para>
</listitem>
</itemizedlist>
</sect1>

<glossary>
<glossentry id="cvs">
	<glossterm>CVS</glossterm>
	<glossdef>
	<para>
	Die Abk&#252;rzung von <quote>Concurrent Versions System</quote>.
	CVS ist ein System zur Versionskontrolle von hierarchischen
	Quellensammlungen mit St&#228;rken im Bereich von Textformaten. Es verwaltet
	Quellverzeichnisse, die die Hauptkopien der versionskontrollierten
	Dateien enthalten, durch Kopieren einzelner Revisionen in ein
	privates Verzeichnis des Entwicklers und Speicherung der daran erfolgten
	&#196;nderungen. Dieses System wird zur Sammlung und Verwaltung der
	GNOME-Quellen an einem zentralen Ort eingesetzt.
	</para>
	</glossdef>
</glossentry>

<glossentry id="i18n">
	<glossterm>I18N</glossterm>
	<glossdef>
	<para>
	Die Abk&#252;rzung von <quote>Internationalisation</quote>: Der erste
	und letzte Buchstabe des Wortes und achtzehn weitere Buchstaben
	dazwischen.	Internationalisierung ist der Prozess zur Sicherstellung
	der Lokalisierbarkeit eines Programms.
	</para>
	</glossdef>
</glossentry>

<glossentry id="l10n">
	<glossterm>L10N</glossterm>
	<glossdef>
	<para>
	Die Abk&#252;rzung von <quote>Localisation</quote>: Der erste und letzte
	Buchstabe des Wortes und zehn weitere Buchstaben dazwischen.
	Lokalisierung ist der Prozess zur landesspezifischen Anpassung von
	Programmen. Er beinhaltet au&#223;er der &#220;bersetzung von Zeichenketten
	auch die Anpassung von Messgr&#246;&#223;en, W&#228;hrungen,
	Zahlendarstellungen und anderen landesspezifischen Regeln auf die
	jeweiligen Normen.
	</para>
	</glossdef>
</glossentry>

<glossentry id="locale">
	<glossterm>Locale</glossterm>
	<glossdef>
	<para>
	Eine Locale ist ein Sammlung aus Sprache und kulturellen Regeln. Sie
	betrifft Mitteilungen in der Ausgabe von Programmen, verschiedene
	Zeichens&#228;tze, Messgr&#246;&#223;en, Zahlenformate und &#228;hnliches.
	Ein Programm muss seine Locale ermitteln k&#246;nnen, um mit
	verschiedenen Sprachen und Regeln umzugehen. Die Zusammensetzung des
	Namens einer Locale ist im Abschnitt <link linkend="lang-code"
	>Sprachkennung</link> beschrieben.	Dieser Name wird &#252;blicherweise
	Umgebungsvariablen wie <literal>LANG</literal>,
	<literal>LC_CTYPE</literal>, <literal>LC_COLLATE</literal>,
	<literal>LC_TIME</literal>, <literal>LC_NUMERIC</literal>,
	<literal>LC_MONETARY</literal> und <literal>LC_MESSAGES</literal>
	zugeordnet. N&#228;here Informationen finden Sie auch unter
	<command>man 1 locale</command> und <command>man 7 locale</command>.
<!--
	A locale is a set of language and cultural rules. These cover
	aspects such as language for messages, different character sets,
	lexigraphic conventions, etc. A program needs to be able to
	determine its locale and act accordingly to be portable to
	different cultures (taken from <command>man 7 locale</command>).
	The name of a locale is composed as described in
	<xref linkend="lang-code" /> and usually assigned to
	environment variables LANG, LC_CTYPE, LC_COLLATE, LC_TIME,
	LC_NUMERIC, LC_MONETARY and LC_MESSAGES (see
	<command>man locale</command> for more).
-->
	</para>
	</glossdef>
</glossentry>
</glossary>

<appendix id="gotchas">
<title>
Spezielle Zeichen und eine spezielle Zeichenkette in 
<filename>po</filename>-Dateien
</title>

<para>
Hier folgt eine Liste von Zeichen und anderen Dingen, die Probleme 
verursachen k&#246;nnen. 
<link linkend="c-format-stuff">C-Format Zeichen</link> werden in einem
eigenst&#228;ndigen Anhang erkl&#228;rt.
</para>

<variablelist>
<varlistentry>
	<term>Zu maskierende Zeichen</term>
	<listitem>
	<para>
	Einige Zeichen werden durch Programme ben&#246;tigt, die an den 
	<filename>.po</filename>-Dateien arbeiten. Sollen diese nicht
	interpretiert werden, sondern ein Teil der Zeichenkette sein,
	m&#252;ssen sie durch einen vorangestellten Backslash maskiert werden.  
	</para>

	<para>
	Das am h&#228;ufigsten auftretende Zeichen ist das doppelte
	Anf&#252;hrungszeichen (<keycap>"</keycap>).
	</para>
	</listitem>
</varlistentry>

<varlistentry>
	<term>Formatierungsmarken</term>
	<listitem>
	<para>
	Ihnen werden die Kombinationen <literal>\n</literal> oder
	<literal>\t</literal> &#252;ber den Weg laufen. Sie stehen f&#252;r 
	Zeilenumbruch bzw. Tabulator. Sie m&#252;ssen nicht unbedingt die 
	gleiche Anzahl dieser Zeichen in Ihre &#220;bersetzung einbinden. 
	Falls aber eine dieser Marken am Anfang oder Ende der
	Zeichenkette steht, m&#252;ssen sie in der &#220;bersetzung ebenfalls
	an diesen Positionen stehen.
	</para>
	</listitem>
</varlistentry>

<varlistentry>
	<term>
	Gr&#246;&#223;er-/Kleiner-Zeichen sowie 
	kaufm&#228;nnisches Und in GConf-Dateien
	</term>
	<listitem>
	<para>
	Es gibt ein oder zwei Pakete, in denen XML sehr stark genutzt wird.
	GConf ist das bedeutenste davon. In XML haben die Zeichen
	&lt;, &gt; und &amp; eine besondere Bedeutung. Sie m&#252;ssen als
	Entit&#228;ten angegeben werden. Das gleiche gilt f&#252;r Beschriftungen
	in Benutzeroberfl&#228;chen, die Pango-Formatierungen enthalten. Der
	Syntax von Pango ist &#228;hnlich dem von HTML. Solche Zeichenketten
	sind h&#228;ufig in <filename>.glade.h</filename>-Dateien enthalten.
	</para>

	<simplelist>
	<member>&lt; wird ersetzt durch &amp;lt;</member>
	<member>&gt; wird ersetzt durch &amp;gt;</member>
	<member>&amp; wird ersetzt durch &amp;amp;</member>
	</simplelist>

	<para>
	Ersetzen Sie aber nicht die Zeichen, die Teil der Formatierung sind!
	Im Regelfall werden diese Zeichen so &#252;bernommen, wie sie in der
	urspr&#252;nglichen Zeichenkette enthalten sind. Ein Beispiel:
	</para>

	<programlisting>
msgid "&lt;b&gt;This and That&lt;\b&gt;"
msgstr "&lt;b&gt;Dies &amp;amp; Das&lt;\b&gt;"
	</programlisting>

	<para>
	Hier ist nur das im Original nicht enthaltene kaufm&#228;nnische Und als
	Entit&#228;t anzugeben. Die Formatierungsmarken bleiben bestehen. 
	</para>

	</listitem>
</varlistentry>

<varlistentry>
	<term>TRUE und FALSE</term>
	<listitem>
	<para>
	<quote>TRUE</quote> und <quote>FALSE</quote> kommen vor in
	<application>gtk+</application>, in
	<application>Gconf</application> und in vielen Dateien, die mit
	<application>Glade</application> generiert wurden (Dateiendung 
    <filename>.glade.h</filename>). &#220;bersetzen Sie diese Ausdr&#252;cke
	nicht. Programme erwarten sie an entsprechenden Stellen und
	werden Probleme verursachen, wenn diese Ausdr&#252;cke nicht 
	vorhanden sind.
	</para>
	</listitem>
</varlistentry>
</variablelist>

<para>
Desweiteren gibt es eine sehr spezielle Zeichenkette in den 
<filename>.po</filename>-Dateien: Die msgid 
<literal>translator_credits</literal>. Der Inhalt der &#220;bersetzung
wird ausgegeben, wenn man eine Anwendung in der entsprechenden
Sprache startet und sich die Liste der Mitwirkenden &#252;ber
<menuchoice>
<guimenu>Hilfe</guimenu>
<guisubmenu>Info</guisubmenu>
</menuchoice>
anzeigen l&#228;sst. Hier sollte also Ihr Name bzw. die Namen aller 
Mitwirkenden eingetragen werden, so dass es jeder auf der Welt
sehen kann. Das typische Format ist eine Liste der Namen und 
Email-Adressen auf separaten Zeilen. Achten Sie dabei auf die
Zeilenumbruch-Markierung. Ein Beispiel:
</para>

<programlisting>
msgid "translator_credits"
msgstr
"Telsa Gwynne &lt;hobbit@aloss.ukuug.org.uk&gt;\n"
"Dafydd Harries &lt;daf@muse.19inch.net&gt;"
</programlisting>

<para>
Vergessen Sie also nicht, sich hier einzutragen :)
</para>
</appendix>

<appendix id="c-format-stuff">
<title>C-Format Zeichen</title>

<para>
Hier folgt eine kurze Liste und einige Erl&#228;uterungen zu 
C-Format Zeichen. Alle Formatierungszeichen werden durch
ein <quote>%</quote> eingeleitet und stellen einen Platzhalter
f&#252;r einen variablen Inhalt dar. Ein Beispiel aus Nautilus:
<programlisting>
#: components/emblem/nautilus-emblem-view.c:834
#, c-format
msgid "The file '%s' does not appear to be a valid image."
msgstr ""
</programlisting>
Zeichenketten, die solche Formatierungszeichen enthalten, sind wie 
im Beispiel mit einer <quote>c-format</quote>-Markierung versehen.
Es gibt auch Formatierungen anderer Sprachen, wie z.B. 
<quote>python-format</quote> (&#228;hnlich wie C) oder 
<quote>csharp-format</quote> (geschweifte Klammern), auf die hier 
aber nicht n&#228;her eingegangen wird.
</para>

<variablelist>
<title>Die gebr&#228;uchlichsten C-Formatierungszeichen</title>
<varlistentry>
	<term>%s</term>
	<listitem>
	<para>
	Eine Zeichenkette. 
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%d, %i</term>
	<listitem>
	<para>
	Eine vorzeichenbehaftete Ganzzahl.
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%o</term>
	<listitem>
	<para>
	Eine Oktalzahl.
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%x, %X</term>
	<listitem>
	<para>
	Eine hexadezimale Zahl.
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%u</term>
	<listitem>
	<para>
	Eine vorzeichenlose Ganzzahl.
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%c</term>
	<listitem>
	<para>
	Ein einzelnes Zeichen.
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%p</term>
	<listitem>
	<para>
	Ein Zeiger.
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%f, %F</term>
	<listitem>
	<para>
	Eine Flie&#223;kommazahl im Dezimaldarstellung.
	</para>
	</listitem>
</varlistentry>
<varlistentry>
	<term>%e, %E, %g, %G</term>
	<listitem>
	<para>
	Eine Flie&#223;kommazahl in Exponentialdarstellung.
	</para>
	</listitem>
</varlistentry>
</variablelist>

<para>
Sollten mehrere dieser Formatierungszeichen in einer Zeichenkette stehen, 
bedeuten Sie meist nicht dasselbe. Ein weiteres Beispiel aus Nautilus:
</para>

<programlisting>
#: components/hardware/nautilus-hardware-view.c:483
#, c-format
msgid "Uptime is %d days, %d hours, %d minutes"
msgstr ""
</programlisting>

<para>
Die Reihenfolge dieser Formatierungszeichen k&#246;nnen Sie auch &#228;ndern, 
damit die &#220;bersetzung einen Sinn ergibt oder besser formuliert ist.
Es k&#246;nnte zum Beispiel folgende Zeichenkette zu &#252;bersetzen sein:
<programlisting>
#, c-format
msgid "String `%s' contains %d characters"
</programlisting>

Eine deutsche &#220;bersetzung mit umgekehrter Reihenfolge 
der Formatierungszeichen k&#246;nnte so aussehen:

<programlisting>
#, c-format
msgid "String `%s' contains %d characters"
msgstr "%2$d Zeichen sind in der Zeichenkette `%1$s' enthalten"
</programlisting>
</para>

<para>
Wollen Sie in einer Zeichenkette mit <quote>c-format</quote>-Markierung
des Zeichen <quote>%</quote> verwenden, muss es zwei mal hintereinander 
stehen:
<programlisting>
#, c-format
msgid "%d percent done."
msgstr "%d %% fertiggestellt."
</programlisting>
</para>
</appendix>

</article>

