Bearbeiten Drucken


Zurück: Kapitel 3 - InhaltlichesInhaltsverzeichnisWeiter: Kapitel 5 - Doku-Übersetzung

Handbuch für Übersetzer (KDE 4)


Kapitel 4 — GUI-Übersetzung


4.1 Die Abläufe im Überblick

Wir wissen ja nun, dass wir unsere PO-Dateien von dem KDE-Server bekommen. Aber wie funktioniert nun eigentlich das Zusammenspiel zwischen uns Übersetzern, den Programmierern und den Automatismen auf dem KDE-Server?

Im Folgenden möchte ich dieses Zusammenwirken etwas näher erläutern.

Am Anfang der Kette stehen immer die Programmautoren. Diese bereiten ihre Programme zur Übersetzung vor. Dazu betten sie die englischen Original-Texte in eine i18n()-Funktion ein. Auf dem KDE-Server läuft nun regelmäßig ein Skript (auch liebevoll "Scripty" genannt), welches aus den Programmen diese übersetzbaren Texte herausfiltert und in den POT-Dateien unter l10n/templates speichert. Wir Übersetzer laden nun diese POT-Dateien herunter und erstellen daraus fertig übersetzte, sprachbezogene PO-Dateien, die wir dann unter l10n/de abspeichern.

Damit ist die Arbeit zunächst einmal erledigt, auf dem Server befindet sich nun eine funktionsfähige Übersetzung des Programms. Allerdings ändern die Programmierer von Zeit zu Zeit etwas an den Originaltexten im Programm. Müssen wir mit der Übersetzung nun von vorn beginnen? Also schauen wir uns an, was als nächstes geschieht:

Beim nächsten Lauf erzeugt Scripty aus den Programmen, wie zuvor auch, neue POT-Dateien, in denen die Änderungen der Programmierer enthalten sind. Nun folgt aber noch ein zweiter Schritt: Scripty vergleicht die neuen POT-Dateien mit unseren übersetzten PO-Dateien (die wir ja unter l10n/de gespeichert haben) und kopiert die Neuerungen aus den POTs in unsere POs. Damit liegt nun auf dem Server eine PO-Datei mit vielen fertigen Übesetzungen und ein paar wenigen fraglichen und neuen Nachrichten. Wir Übersetzer holen uns von nun an nicht mehr die POTs, sondern die von Scripty aktualisierten POs vom Server, übersetzen nur noch die Änderungen und speichern die PO-Datei erneut auf dem Server ab.

Wenn der Programmierer nun wieder Änderungen an seinem Programm vornimmt geht die Prozedur wieder von vorne los: Scripty übernimmt die Änderungen in unsere PO-Dateien, wir übersetzen und speichern die Ergebnisse wieder zurück auf den Server.

img/wiki_up//workflow-GUI.png

4.2 Spezialfälle

Bei der Übersetzung von Programmoberflächen gibt es einige Spezialfälle die es zu beachten gilt.

4.2.1 Das Sonderzeichen "&"

Das Et-Zeichen "&" markiert einen Kurzbefehl in einer Programmoberfläche. Eine genaue Erklärung dazu findet sich unter 2.4.2.3 "Sonderzeichen und geschützte Zeichen".

4.2.2 Rich text und Markup

Besonders in der "Was ist das?"-Hilfe erscheinen häufig Abschnitte mit Rich Text und Markup. Dies könnte z. B. so aussehen:

<qt>This button does simply <b>nothing</b>, it's just
here to explain how <quote>RichText</quote>
works :)</qt>

RichText? ist im Grunde nichts weiter als formatierter Text. Die Formatierungen erreicht man durch sog. Markup. Im obigen Beispiel wird das Markup mit der Markierung "<qt>" eingeleitet und endet mit "</qt>". Die meisten Markup-Elemente haben ein einleitendes und ein abschließendes Element. Wenn man sich mit Markup (HTML, XML, etc...) nicht auskennt, sollte man in der Übersetzung nicht einfach beliebige Markierungen weglassen oder abändern. Sie müssen in der Regel in der korrekten Reihenfolge übernommen werden. Ein Fehler führt in Programmoberflächen meist zu Darstellungsfehlern im Text, Handbücher lassen sich mit einem solchen Fehler gar nicht erst kompilieren.

4.2.3 desktop-Dateien

Desktop-Dateien enthalten verschiedenste Formen von Einrichtungsinformationen. Bestimmte Teile dieser desktop-Dateien können von uns übersetzt werden. Die Übersetzung einer Desktop-Datei muss aber eine bestimmte Syntax einhalten.

Die zu übersetzenden Einträge in einer Desktop-Datei beginnen mit "Name=", "GenericName=" oder "Comment=".

Diese einleitenden Texte bis zum "=" dürfen nicht übersetzt werden! Erst der Text nach dem Gleichzeichen (z. B. ein Programmname oder eine Programmbeschreibung) dürfen übersetzt werden.

Beispiel:
GenericName=A powerful mindmap tool

Korrekte Übersetzung:
GenericName=Ein leistungsfähiges Mindmap-Programm

Im Beispiel wurde "GenericName=" nicht übersetzt. Eine Übersetzung wie "AllgemeinerName=" wäre ein Fehler und die daraus resultierende Desktop-Datei würde nicht mehr funktionieren.

4.2.4 Englische Wörter obwohl alles zu 100% übersetzt ist?

Manchmal kann es vorkommen, dass im laufenden Programm englische Wörter auftauchen, obwohl man in KBabel die gesamte Datei vollständig übersetzt hat. Dafür kann es zwei Gründe geben:
  • a) Die Übersetzung ist veraltet. Dies kann vorkommen, wenn das Programm während Deiner Übersetzungsarbeit weiterentwickelt wurde und die Übersetzungen nun nicht mehr im Programm zugeordnet werden können. Die Lösung: Die Übersetzung wird auf den Server hochgeladen und dort von Scripty aktualisiert. Einen Tag später kann man sich die Übersetzung wieder herunterladen und die neuen Fuzzies übersetzen. Nun sollte alles funktionieren.
  • b) Falls Lösung A nicht hilft, liegt möglicherweise ein Fehler im Programm vor. In selteneren Fällen kann es vorkommen, dass die Programmierer es vergessen haben, einige Texte im Programm für die Übersetzung vorzubereiten. In dem Fall hilft ein Hilferuf auf der Mailingliste oder direkt eine Meldung an den verantwortlichen Programmierer.

4.3 Installation der Übersetzungen

Bevor Du Deine fertige Übersetzung installierst oder zum Einspielen an den Koordinator sendest, solltest Du sie auf Syntaxfehler prüfen. Verwende dazu die Tastenkombination Strg+T in KBabel. Den gleichen Effekt erreichst Du mit "msgfmt --statistics <datei.po>". Wenn KBabel keine Fehler findet, kannst Du Deine Übersetzung installieren.
Der Installationsvorgang verläuft unterschiedlich, je nach dem, ob Du die PO-Dateien aus dem WebSVN heruntergeladen, oder den SVN-Client benutzt hast:

4.3.1 Installation (Fallbeispiel WebSVN)

Wenn Du die PO-Dateien aus dem WebSVN heruntergeladen hast, musst Du jede PO-Datei von Hand kompilieren und installieren. Dafür benötigst Du eine Shell (z. B. Konsole).

  • Wechsele in den Ordner mit der PO-Datei:
    cd ~/i18n

  • Kompiliere die PO-Datei in eine MO-Datei:
    msgfmt kate.po -o kate.mo

  • Kopiere die kompilierte Datei in den KDE-Ordner (dafür muss man als Systemverwalter angemeldet sein):
    cp kate.mo `kde4-config --prefix`/share/locale/de/LC_MESSAGES
    (kde4-config --prefix sollte den Basispfad zur KDE-Installation ergeben. Dies könnte z. B. /opt/kde sein.)

Nun ist die neue Übersetzung KDE-weit verfügbar. Das betreffende Programm (hier kate) muss neu gestartet werden, damit die Übersetzung benutzt wird.

4.3.2 Installation (Fallbeispiel SVN-Client)

Die Installation kann wesentlich vereinfacht werden, wenn Du das ganze Übersetzer-Grundgerüst mit dem SVN-Client heruntergeladen hast. Siehe dazu den letzten Abschnitt unter "Wo findet man die nötigen PO-Dateien?".

  • Die folgenden Anweisungen funktionieren nur, wenn Du die folgende Ordnerstruktur mit dem SVN-Client heruntergeladen hast:
    l10n-kde4 (nur die Dateien, keine Unterordner)
    l10n-kde4/de (inklusive Unterordner)
    l10n-kde4/documentation (inklusive Unterordner)
    l10n-kde4/scripts

  • Wechsel in den Basisordner:
    cd l10n-kde4

  • Erstelle alle CMakeFile-Dateien:
    ./scripts/autogen.sh de

  • Wechsel in den Ordner de:
    cd de

  • Erstelle den Build-Ordner und erzeuge alle Makefiles:
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX=/pfad/zum/kde4-basisordner ..
    (Beachte die abschließenden zwei Punkte!)

  • Wechsel in den Ordner für das entsprechende Modul:
    cd messages/kdebase

  • Kompiliere die PO-Dateien:
    make

  • Installiere die PO-Dateien:
    su -c "make install"

Nun ist die neue Übersetzung KDE-weit verfügbar. Das betreffende Programm muss neu gestartet werden, damit die Übersetzung benutzt wird. Der Vorteil dieser Methode ist, dass man in einem Rutsch einen ganzen Ordner mit Übersetzungen installieren kann.

4.3.3 Wohin mit den fertigen Dateien?

Gut, Du bist also fertig, hast Deine eigenen Übersetzungen noch einmal formal überprüft und im laufenden Programm getestet?! Dann solltest Du sie nun am besten in ein tar.gz-Archiv verpacken und per E-Mail an den Team-Koordinator schicken. Ein paar Dinge solltest Du in der E-Mail erwähnen:

  • Wohin gehören die Übersetzungen (branches/trunk) und in welches Modul? (kdebase/kdegames, ...)
  • Sind ganz neue Übersetzungen dabei, die es vorher noch nicht in KDE gab?
  • Gibt es irgendetwas besonderes zu beachten?

Beispiel für so eine Mail:
Betreff: /trunk/l10n-kde4/de/messages/kdegames

Inhalt: Hier wieder etwas zum Einspielen. Es sind auch ein paar ganz neue Dateien dabei, bitte beim Einspielen nicht übersehen! Bitte schau dir mal xyz.po an, die Fuzzies sind mir nicht ganz klar. Danke.

Der Koordinator wird Deine Übersetzungen noch einmal auf bestimmte Konflikte überprüfen und von Zeit zu Zeit gegenlesen. Wenn Deine Übersetzungen eingespielt wurden, erhälst Du eine Nachricht.
Ab da ist deine Übersetzung Teil von KDE und wird als solche auf zehntausende von Rechnern übertragen und bestimmt den Eindruck mit, den die Leute draußen von dem Ganzen haben. Das sollte man sich hier und da mal klar machen.


Zurück: Kapitel 3 - InhaltlichesInhaltsverzeichnisWeiter: Kapitel 5 - Doku-Übersetzung



Menü