logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
TFT Monitor bei Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich.
Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps.
Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung.
Günstige Shareware Programme als direkte Downloads im Software Portal.
Bis zu 70% sparen durch Preisvergleich.
      Anzeige

Erschienen in LinuxUser 10/2005   »   Ausgabe bestellen

Programme übersetzen

Dolmetscher


Für das Sprachgewirr auf dem Linux-Desktop gibt es eine Lösung: selbst Programme übersetzen. Damit ist sogar ein KDE "op Platt" kein Problem mehr.

Tim Schürmann

README

Der Editor POEdit hilft bei der Übersetzung von Programmmenüs und -ausgaben. Damit tragen Sie zur Verbesserung freier Software bei -- ganz ohne Programmierkenntnisse.

In der Linux-Welt gilt Englisch als der kleinste gemeinsame Nenner. Bis auf wenige Ausnahmen spricht jede Anwendung diese Sprache, doch nicht alle Benutzer sind des Englischen mächtig. Außerdem verarbeitet das Gehirn muttersprachliche Texte wesentlich schneller als fremdsprachige. Bei der Übersetzung sind die Entwickler jedoch auf Helfer angewiesen -- welcher deutsche Programmierer beherrscht schon fließend Zulu? Damit ein Übersetzer sich nicht mit dem Programmcode auseinandersetzen muss, verwenden viele Entwickler das Gettext-System [1], das die in Programmen verwendeten Textausgaben (Strings) vom Code trennt. Als Ausgabe produziert es so genannte Portable Objects oder kurz PO-Dateien, die zum Teil auch unter dem Namen "Katalog" firmieren. Dabei handelt es sich um herkömmliche Textdateien, welche die englischen Originaltexte und ihre jeweilige Übersetzung enthalten. Nachdem die Datei vollständig ausgefüllt oder korrigiert wurde, bindet der Programmierer sie mittels Gettext wieder in die Software ein.

Vorbereitung

Bevor man sich an die Übersetzung seines Lieblingsprogramms macht, führt der erste Weg auf dessen Homepage. Bei größeren Projekten findet man dort eine Seite, welche die bereits in Angriff genommenen Übersetzungen, deren Fortschritt und ihre jeweiligen Betreuer auflistet. Ein hilfreicher Suchbegriff ist hier Internationalization oder kurz I18N.


I18N: Abkürzung für das englische "Internationalization". Die Zahl steht für die 18 Buchstaben zwischen dem I und dem n.

Fehlt die gewünschte Sprache, sollte man am besten den oder die Programmierer kontaktieren. Vielleicht arbeitet ja bereits jemand an genau dieser Übersetzung. Gibt der Entwickler oder der zuständige Übersetzer grünes Licht, lädt man das Archiv mit dem Quellcode (engl. Sourcecode) herunter. Haben die Entwickler Gettext benutzt, existiert nach dem Entpacken ein Unterverzeichnis namens po oder locale. Es enthält alle bislang angefertigten Sprachdateien. Leider gibt es keinen verbindlichen Standard, der einen eindeutigen Verzeichnisnamen vorschreibt. So kann es insbesondere bei kleinen Projekten passieren, dass die Sprachdateien irgendwo verstreut liegen. In diesem Fall hilft nur ein Blick in die Anleitung oder eine Suche mit find.

Unter den po-Dateien findet sich auch eine spezielle Datei mit der Endung .pot (Portable Object Template). Dabei handelt es sich um eine Vorlage, die als Ausgangspunkt für sämtliche Übersetzungstätigkeiten dient. Erstellen Sie von ihr ein Duplikat mit der Endung .po. Um ein Chaos zu vermeiden, benennen Sie die Dateien am besten nach ihrem Sprachkürzel. Beispielsweise enthält de_DE.po die deutsche Übersetzung. Der Kasten "Ausschnitt einer PO-Datei" zeigt einige Zeilen eines Beispiels.

Ausschnitt einer PO-Datei
01 #: ../src/resources/xrc_strings.h:48
02 msgid "&Find..."
03 msgstr "Suchen..."

Das #-Zeichen leitet einen Kommentar ein. Der Text in den Anführungszeichen hinter msgid entspricht dem Originaltext, der hinter msgstr der Übersetzung.

Sonderzeichen 

In den Originaltexten tauchen immer wieder eigenartige Zeichen(-kombinationen) auf. Diese sollten Sie bei der Übersetzung tunlichst übernehmen, da das fertige Programm sie später auswertet bzw. ersetzt. Letzteres gilt zum Beispiel für %1. Ein \n kennzeichnet einen Zeilenumbruch, und das & markiert in Menüs die Taste, die später den entsprechenden Punkt aktiviert.

Hilfestellung

Prinzipiell könnten Sie die Datei einfach mit einem Texteditor öffnen und die jeweiligen Zeilen ergänzen. Dies ist jedoch nicht besonders komfortabel und auch recht fehleranfällig. Aus diesem Grund existieren verschiedene Werkzeuge, die das Übersetzerleben vereinfachen. Hierzu zählt POEdit [2], das auf der wxWidget-Bibliothek aufsetzt. Letztere liegt mittlerweile allen guten Distributionen bei. Haben Sie sie eingespielt, genügt ein ./configure && make && make install, um POEdit zu übersetzen und zu installieren. Nach dem ersten Start durch die Eingabe von poedit fragt das Programm einige Benutzerdaten ab (vgl. Abbildung ((1))).

((1)) In diesem Einstellungsdialog fragt POEdit die Grundeinstellungen ab. Es genügt dabei die Angabe des Namens und der E-Mail-Adresse.

Alle weiteren Einstellungen können Sie auf den voreingestellten Werten belassen. Nach einem Klick auf OK erscheint das Hauptfenster aus Abbildung ((2)).

((2)) Das Hauptfenster von POEdit nach dem Öffnen seiner deutschen Sprachdatei.

Um eine neue Übersetzung zu beginnen, wählen Sie aus dem Menü Datei/Neuer Katalog aus POT-Datei.... Suchen Sie nun die POT-Datei, auf der die neue Sprachdatei basieren soll. Dann erscheint das Fenster aus Abbildung ((3)).

((3)) Nach dem Laden einer POT-Datei müssen Sie diese Grundeinstellungen ergänzen.

Dort verlangt es noch ein paar Angaben zum Projekt. Gerade im Hinblick auf eine spätere Veröffentlichung sollten Sie hier so viele Punkte wie möglich ausfüllen. Felder, die Sie nicht vervollständigen können, belassen Sie einfach unausgefüllt oder auf ihren Standardeinstellungen. Alle eingetragenen Daten speichert das Programm in der PO-Datei. Später finden Sie die Daten unter Katalog/Optionen . Nach einem Klick auf OK möchte das Programm noch wissen, wie die neue PO-Datei heißen soll. Damit sind sämtliche Vorbereitungen abgeschlossen.

Falls das Projekt keine POT-Datei enthält oder Sie eine bereits vorhandene PO-Datei bearbeiten möchten, wählen Sie im Menü Datei/Öffnen. Im ersten Fall sollten Sie die Datei zur Sicherheit noch unter einem anderen Namen speichern.

Übertrag

Werfen Sie nun einen Blick auf das Hauptfenster in Abbildung ((2)). Es ist in mehrere Bereiche unterteilt, die jeweils unterschiedliche Daten enthalten. Direkt unter der Symbolleiste finden Sie eine Liste, in der links der Originaltext und rechts die jeweilige Übersetzung steht. Sobald Sie einen dieser Einträge anklicken, erscheinen beide genannten Einträge in den Textfeldern links oben und links unten. Falls der Text noch nicht übersetzt wurde, bleibt das linke untere Feld leer. Wählen Sie nun Bearbeiten/Kopiere Original- nach Übersetzungszeichenkette oder drücken [Alt]+[C], erscheint der Ursprungstext auch im Kasten links unten.

Das Feld rechts unten in der Ecke zeigt den Kommentar des Übersetzers (vgl. Abbildung ((2))). Sind Sie beispielsweise unsicher, wie ein Wort korrekt übersetzt werden sollte, dokumentieren Sie hier Ihre Zweifel, wenn möglich in der Originalsprache. In der Liste direkt unter der Symbolleiste erscheint dann ein kleiner Bleistift links neben dem Originaltext. Einen Kommentar der anderen Art beherbergt das Feld rechts oben. Dort erscheinen Hinweise, in welchen Dateien des Quellcodes der Text auftaucht.

Erblickt eine neue Programmversion das Licht der Welt, enthält diese häufig auch neue Strings. Um die Übersetzungsarbeit nicht von von vorne beginnen zu müssen, bringt POEdit mit Katalog/Aus POT-Datei aktualisieren die gerade geöffnete PO-Datei auf den neuesten Stand.

Turmbau zu Babel

Neben POEdit existieren noch weitere Übersetzungswerkzeuge. Während die Gnome-Entwickler auf Gtranslator [3] setzen, verwendet das KDE-Projekt KBabel. Bis auf die Fensteraufteilung arbeiten beide Programme analog zu POEdit. Unterschiede gibt es nur bei den angebotenen Funktionen. So bringt KBabel [4] beispielsweise eine Rechtschreibprüfung mit. Wie die überladene Oberfläche aus Abbildung ((5)) zeigt, besitzt dieses Werkzeug den größten Funktionsumfang.

((4)) Gtranslator gruppiert die einzelnen Texte in der Liste am linken Rand nach ihrem Stadium. Der Knopf rechts oben gewährt Zugriff auf den jeweiligen Kommentar.

((5)) KBabel blendet rechts unten eine Suchfunktion ein, über die man stets Zugriff auf ein eingebundenes Translation Memory hat (vgl. Kasten "Übersetzungsstandards").
Drei Stadien der Übersetzung

Zu Beginn existiert noch keine Übersetzung, der Text ist somit nicht übersetzt ("untranslated"). Nachdem jemand die Übersetzung in Angriff genommen hat, sollten Sie den Text noch einmal auf Fehler überprüfen. Gleiches gilt, wenn das Programm geändert wurde -- beispielsweise, wenn eine neue Version erscheint. In diesen Fällen ist der Text fraglich ("fuzzy"). Ist auch dies überstanden, gilt der Text als übersetzt ("translated").

In POEdit erscheinen unübersetzte Texte in der oberen Liste türkis unterlegt, während fragliche Übersetzungen gelb und mit einem kleinen grünen Punkt am linken Rand versehen werden. Einen Text markieren Sie als fuzzy per Bearbeiten/Übersetzung ist unklar (noch zu prüfen) oder durch drücken von [Alt]+[U].

Übersetzungsstandards 

Eine Übersetzung ist schnell erledigt, eine gute kann jedoch einige Zeit in Anspruch nehmen. Hilfe in Übersetzungsfragen leisten in größeren Projekten spezielle Mailinglisten oder Foren. Des weiteren stellen einige Projekte Styleguides bereit, die genau erläutern, wie Programme zu übersetzen sind. Ergänzend existieren so genannte Kompendien oder Translation Memorys. Dies sind Wörterbücher, die auf Programmübersetzungen spezialisiert sind (eine kleine Aufstellung findet sich unter [5]. Unter POEdit binden Sie ein solches Translation Memory über Datei/Einstellungen... (Register Übersetzungsspeicher) ein. Voraussetzung hierfür ist das bereits bei der Übersetzung von POEdit installierte Datenbankpaket DB. Hat alles geklappt, übersetzt POEdit auf Wunsch die derzeit geöffneten Texte automatisch per Katalog/Automatisch mit Hilfe der Tm übersetzen.

Bequemer im Web

Neben den genannten Programmen existieren noch verschiedene Übersetzungsplattformen im Internet. So betreibt das Ubuntu-Projekt die Rosetta-Website [6], die nicht nur sämtliche Übersetzungstätigkeiten koordiniert, sondern sogar die Übersetzung direkt im Browserfenster erlaubt. Nach einer kostenlosen Anmeldung wählt man im unteren Teil der Rosetta-Homepage einfach das gewünschte Programm aus. Die nächste Seite gibt dann eine Liste aller in Angriff genommenen Übersetzungen und ihren Fortschritt aus. Ein Klick auf eine Sprache genügt, schon kann man direkt die einzelnen Texte verändern oder ergänzen. Alle Übersetzungen fließen übrigens in die Programme selbst ein, und kommen somit nicht nur in Ubuntu-Linux zugute. Leider arbeitet Rosetta noch nicht ganz fehlerfrei. So kam es in unseren Tests häufig vor, dass das System mit einer Fehlermeldung abbrach und sämtliche zuvor gemachten Eingaben über den Haufen warf.

((6)) Nach der Anmeldung auf der Rosetta-Seite des Ubuntu-Projektes gibt man die Übersetzung in die entsprechenden Eingabefelder hinter German ein. In diesem Fall betrifft dies die Texte von AbiWord.

Sobald Sie die Übersetzung komplettiert haben, schicken Sie die PO-Datei an die Entwickler. Diese bauen sie dann in das Programm ein. Um anschließend selbst in den Genuss der Übersetzung zu kommen, müssen Sie noch die Spracheinstellungen entsprechend ändern. Das Gettext-System orientiert sich übrigens an den Systemeinstellungen und nicht unbedingt an der Sprache, die im Kontrollzentrum unter KDE eingestellt ist.

Fazit

Die vorgestellten Werkzeuge ermöglichen eine Übersetzung von Bildschirmtexten ohne Programmierkenntnisse. Doch damit ist nur ein erster Schritt in Richtung Mehrsprachigkeit getan. So wollen auch Hilfedateien, Dokumentation und der Internetauftritt in die Zielsprache überführt werden. Die dort verwendeten Werkzeuge und Verfahren bleiben jedoch einem zukünftigen Artikel vorbehalten. (ofr)

Infos 
[1] GNU-Gettext: http://www.gnu.org/software/gettext/
[2] POEdit: http://www.poedit.org
[3] Gnome-Gtranslator: http://gtranslator.sourceforge.net
[4] KDE-KBabel: http://i18n.kde.org/tools/kbabel/
[5] Übersetzungstipps: http://www.marcprior.de/linux/tm.html
[6] Ubuntu-Rosetta: https://launchpad.net/rosetta


Copyright © 2005 Linux New Media AG

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.




Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2010 Linux New Media AG

[Linux-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Ubuntu User] [Linux Technical Review] [Linux Magazine] [Linux Pro Magazine] [Ubuntu User]
[EasyLinux Poland] [Linux Magazine Poland] [Linux Magazine Brasil] [EasyLinux Brasil] [Linux Magazine Spain]