Software-Lokalisierung unter LinuxGeschrieben für Nichtprogrammierer
|
|
Streng genommen geht es nicht um die Lokalisierung des Betriebssystems Linux, sondern um die Lokalisierung der Benutzeroberfläche KDE dieses Betriebssystems.
Vor allem: um zu einem faszinierenden Projekt beizutragen!
Außerdem: Weil es nicht angehen kann, dass (angehende) Diplom-Übersetzer an so einem wichtigen Projekt nicht beteiligt sind.
Schließlich: Weil man viel dabei lernen kann und es auch für spätere Bewerbungen kein Fehler ist, schon mal eine richtige, von vielen Menschen genutzte Software übersetzt zu haben
Liest man die offizielle Anleitung durch, wird man von Programmierbefehlen und Fachwörtern erstmal gründlich abgeschreckt. Dabei ist die Technik in Wirklichkeit ganz einfach zu verstehen. Man muß nur vier Sachen kapieren, dann wird alles klar:
|
1. Die Software, mit der man übersetzt, heißt KBabel. Sie ist oft bei den Distributionen schon installiert (K-Entwicklung-kleine Werkzeuge-KBabel bzw. K-Entwicklung-Übersetzung). Sonst kann man sie von http://i18n.kde.org/tools/kbabel/index.html runterladen. |
|
2. Die Dateien, die man übersetzt, sind die sogenannten PO-Dateien. PO steht für Portable Object. Das sind Dateien, in denen das steht, was übersetzt werden muß.
Von Windows kennt man das Problem, dass in Programmier-Quellcode Programmierwörter (z. B. if...then, printf usw.) - die auf keinen Fall übersetzt werden dürfen - mit normalen Wörtern - die übersetzt werden sollen - bunt gemischt sind. Man muss sich entweder gut auskennen oder braucht ein Tool wie Passolo, um das Gemisch wieder zu trennen. In Linux ist das eleganter gelöst. Der Programmierer schreibt gleich beim Programmieren ein Signalwort vor alles, was übersetzt werden muß. Daraus wird dann die PO-Datei erzeugt und ins Internet gestellt.
Außer den PO-Dateien gibt es noch POT-Dateien und MO-Dateien (mit denen man als Übersetzer weniger, aber nicht nichts zu tun hat).
|
POT |
steht für Portable Object Template. Das ist einfach das originalsprachige, englische Muster für PO-Dateien. Für jedes Programm erzeugt der Programmierer eine POT-Datei. Daraus erzeugen die vielen Übersetzer der vielen Sprachen jeder für seine Sprache eine PO-Datei, indem sie die POT-Datei einfach mit anderem Namen nochmal speichern. Meist hat das schon jemand anderes erledigt und man muss gar nichts mehr tun.
|
|
MO |
steht für Machine Object. Das sind die übersetzten Texte in der Form, die der Computer versteht. Und bekanntlich verstehen Computer nur Null und Eins - was wiederum für Menschen und menschliche Programmierer schwer zu verstehen ist. Deshalb gibt es folgenden Zwischenschritt: Der Programmierer programmiert in einer menschentauglichen Programmiersprache (z.B. C++, Java), eine Software namens Compiler wandelt die menschentaugliche Programmiersprache dann in computertaugliche Maschinensprache (0en und 1en) um. Meist handelt es sich dabei um mehrere Dateien. Unter Windows ganz typisch sind die Dateien mit der Endung *.exe, die man als Benutzer anklicken muss, um ein Programm auszuführen. Unter Linux gibt es keine charakteristische Dateiendung für die ausführbare Datei, doch für die Datei mit den maschinenlesbaren Übersetzungen ist die Endung *.mo üblich. Mit den MO-Dateien hat man als Übersetzer nur zu tun, wenn man ganz am Schluß sein übersetztes Programm testen möchte, sonst nicht. |
Die folgenden zwei Grafiken verdeutlichen den Vorgang nochmal (bei Linux im Vergleich zu Windows).
Software-Lokalisierung unter Windows:

Software-Lokalisierung unter Linux:

3. Wahrscheinlich, weil Programmierer sowieso den ganzen Tag mit kryptischen Befehlen zu tun haben, heissen bei ihnen die Übersetzungseinheiten der Ausgangssprache msgid, die zielsprachlichen Übersetzungseinheiten haben gar den unaussprechbaren Namen msgstr erhalten. Wenn man diese beiden Vokabeln kennt, hat man die Linux-Übersetzungstechnik schon halb verstanden. Msgid steht für "Message ID" (gemeint ist trotzdem die ausgangssprachliche Übersetzungseinheit und nicht irgendeine ID-Nummer), msgstr steht für "Message String" (=zielsprachliche Übesetzungseinheit).
Warum eigentlich "Übersetzungseinheit"? Weil es sich bei
Software nicht um einen Fließtext handelt, sondern um einzelne
Übersetzungseinheiten wie Fehlermeldungen, den Inhalt eines
Dialogfeldes, ein Menüpunkt usw. Man geht beim Übersetzen
von einer Übersetzungseinheit zur nächsten, indem man den
Menüpunkt "Go-Next" wählt (oder die Taste "Page Down" oder
das Icon "Next"
).
4. Man unterscheidet bei den Übersetzungseinheiten drei Stadien:
untranslated (nicht übersetzt)
fuzzy (fraglich)
translated (übersetzt)
Es ist so, dass man es gar nicht so oft mit Software zu tun hat, die noch gar nicht übersetzt wurde. Viel öfter kommt es vor, dass ein Programm geändert wurde und deshalb nochmal überarbeitet werden muss. Wie so vieles in der Computerwelt ist auch das automatisiert. Eine Software prüft, wo sich etwas geändert hat, und markiert diese Übersetzungseinheiten mit "fuzzy" (fraglich, muß von einem Menschengehirn nochmal geprüft werden). Meistens müssen die Fuzzy-Übersetzungseinheiten tatsächlich geändert werden. Dann entfernt KBabel nach der Änderung die Fuzzy-Markierung automatisch. Wenn man eine Fuzzy-Übersetzungseinheit ausnahmsweise unverändert übernehmen kann und will, muss man die Fuzzy-Markierung selbst mit der Tastenkombination "Strg u" entfernen.
Wenn man diese vier Sachen kapiert hat, kann man loslegen und KBabel starten.
KBabel besteht aus vier Teilfenstern:

|
Links oben: |
die ausgangssprachliche Übersetzungseinheit |
|
Links unten: |
die zielsprachliche Übersetzungseinheit |
|
Rechts oben: |
ein Kommentar, den der Programmierer als Hilfe für den Übersetzer eingefügt hat |
|
Rechts unten: |
unglaublich, aber wahr - es handelt sich fast um eine Art Translation Memory. Man kann nach bereits übersetzten Stellen mit den gleichen Stichwörtern suchen oder sich den Kontext anzeigen lassen. |
Ein richtiges Translation Memory für Linux ist übrigens ebenfalls im Entstehen. Hierfür engagiert sich das Freecats-Projekt. Seit dem ersten Aufruf zur Programmierung eines Translation Memories sind bereits mehrere kleine freie Translation Memories entstanden (OOxlate, Frankenstein und insbesondere OmegaT). Für Profis sehr interessant ist auch der XLIFF-Editor der Firma Heartsome. Server-Datenbanken sind mit TuMatXa und KGyfieithu Kartouche ebenfalls verfügbar. Eine Zusammenstellung von Translation Memories für Linux pflegt Marc Prior auf seiner Webseite. Die Nutzung von klassischen Translation Memories wie Trados oder Wordfast ist mit VmWare und Windows-Lizenz (und dem hierfür nötigen Kleingeld ;-) ebenfalls möglich.
Alle Befehle und Icons von KBabel sind im Handbuch aufgelistet.
Dies waren die Grundlagen der Linux-Lokalisierung. Einige Fragen dürften allerdings beim Übersetzen noch auftreten und zwar:
man lädt sie runter von ftp://ftp.kde.org/pub/kde/snapshots/kde-i18n/
dann startet man den Catalog Manager von KBabel und schaut, was noch zu bearbeiten ist, d.h., wo kein Häkchen davor ist
Bevor man wirklich anfängt zu übersetzen, schreibt man eine E-Mail an den Team-Koordinator und fragt, ob schon jemand anders das herausgesuchte Programm bearbeitet. Ausserdem teilt man mit, wieviel Zeit man fürs Übersetzen investieren möchte.
Die wichtigen Dinge sind bei neuen Distributionen schon richtig eingestellt, aber man kann es ja sicherheitshalber nochmals überprüfen (siehe http://i18n.kde.org/teams/de/gui-howto.html)
|
\n |
bedeutet Zeilenumbruch und bleibt einfach stehen |
|
%1 |
usw. sind Variablen (d.h. an dieser Stelle wird ein Text von woanders eingefügt). Sie müssen im Ausgangs- und Zieltext gleich sein. Bei Fuzzy-Übersetzungseinheiten muss man das oft im Zieltext korrigieren. |
|
\ |
Backslashes bleiben normalerweise stehen. Hintergrund: Sonderzeichen wie Anführungszeichen haben beim Programmieren viele wichtige Bedeutungen. Manchmal sollen sie aber ganz normal zum Text gehören und haben mit der Programmierung nichts zu tun. Dann setzt der Programmierer einen Backslash davor. |
|
& |
Die &-Zeichen (accelerator keys) sind eine der Künste bei der Software-Lokalisierung und Profis schon von Passolo bekannt. Sie müssen in der Zielsprache kunstvoll gesetzt werden. Es geht um folgendes: Meistens bedient man heutzutage Software mit der Maus. Es kann aber auch passieren, dass die Maus nicht funktioniert, dass jemand wegen einer Seh- oder Körperbehinderung die Maus nicht nutzen kann oder dass jemand die Maus nicht mag, weil es mit der Tastatur schneller geht. Dann braucht dieser jemand Tastenkombinationen, mit denen er die Funktionen auch ohne Maus erreicht. Hierfür hat man sich auf die Alt-Taste + einen Buchstaben geeinigt. Aber welcher Buchstabe für welche Funktion? Meistens der Anfangsbuchstabe, wenn das aber zur Wiederholung führen würde, eben ein anderer Buchstabe. Und genau diese Buchstaben muss der Übersetzer auswählen, weil die Anfangsbuchstaben logischerweise von Sprache zu Sprache verschieden sind. Ein Buchstabe wird für die "Alt+Buchstabe"-Tastenkombination ausgewählt, indem ein &-Zeichen davor gesetzt wird. Es darf nicht zweimal im selben Menü das & vor denselben Buchstabe gesetzt werden. Die KBabel-Funktion Extras-Tests-Tastenkürzel prüfen hilft, diesen Fehler zu vermeiden. |
wenn ein Dialogfeld zu klein ist für eine vernünftige Übersetzung?
wenn in der übersetzten Software noch englische Stellen sind, obwohl in der PO-Datei alles übersetzt ist?
In diesen Fällen darf/soll man den Programmierer anmailen und um Hilfe bitten.
Dazu gibt es z.B. für das deutsche Übesetzungsprojekt sehr schöne Hinweise des Team-Koordinators, die man sich auf jeden Fall durchlesen muss.
Im Zweifel fragt man im Webforum nach.
Man führt einige einfache Tests in KBabel durch mit dem Menüpunk "Extras-Tests"... Dies muss unbedingt erledigt werden.
Eigentlich müsste man die Übersetzung jetzt kompilieren (d.h. aus der menschenlesbaren PO- eine maschinenlesbare MO-Datei erzeugen), um sie richtig testen zu können. Das dient aber wirklich nur als Test, abgegeben wird sowieso die unkompilierte PO-Datei. Vielleicht kann ja jemand mit mehr Kompilier-Erfahrung disen Test übernehmen. Eine Anleitung zum Kompilieren gibt es am Ende des GUI-Howto. Dort findet man auch weitere Informationen zu den letzten Schritten.
Ganz am Schluss wird die Datei als tar/gz paketweise zusammengepackt und an den Team-Koordinator geschickt. Für das Zusammenpacken startet man die Software K-System-kleine Werkzeuge-ark, geht dort auf Datei-Neu und wählt einen Namen für das Archiv, d.h. die gepackte Datei. Wichtig ist, dass man als Endung *.tgz einstellt. Dann sieht man ein Fenster, in dem steht "keine Dateien im aktuellen Archiv". Man geht in diesem Fenster auf den Menüpunkt "Aktion -Dateien hinzufügen" und wandert zum Verzeichnis, das man übersetzt hat. Nun sagt man OK, Archiv schliessen - fertig.
Soviel zur Theorie - in Teil 2 der Anleitung gibt es noch eine Schritt-für-Schritt-Bildergeschichte:
Dora
Warth, 5. März 2004
Es gilt
die
GNU Free Documentation
License.