User Tools

Site Tools


mld:entwicklung:lokalisierung

MLD und die Lokalisierungs Möglichkeit

Einführung

MLD (MiniLinuxDistribution) ist darauf ausgerichtet, Texte in der Weboberfläche und im OSD in der jeweiligen Landessprache ausgeben zu können. Bislang sind die Texte jedoch nur in der englischen Sprache vollständig vorhanden. Lediglich rudimentär sind Texte in der deutschen Sprache vorhanden.

Für die Ausgabe in verschiedene Sprachen verwendet MLD die GNU-gettext-Funktionen.

In welcher Sprache MLD seine Texte ausgibt, wird über die Variable Language, die in der MLD unter Setup/System eingestellt werden kann, festgelegt. Derzeit gibt es dort en_GB.UTF-8 für die Anzeige in englischer Sprache und de_DE.UTF-8 für die Anzeige in deutscher Sprache.

Technischer Hintergrund

Wenn ein Programm Meldungen ausgeben möchte, befinden sich bei eingerichteter Entwicklungsumgebung im Verzeichnis des addons unter /src/locale Dateien mit unterschiedlichen Endungen. Eine vollständige Liste der .po Dateien ist auf der Projektseite zu finden. Die Namen der .po Dateien entspricht dem Namen der Datei in dem die Meldung erzeugt wird (DATEINAME.en_GB.po). Ein Sonderfall stellen Texte in Dateien unterhalb des Ordners /var/www (Texte des Webinterfaces) dar. Sie werden alle in der Datei www.en_GB.po abgelegt. Die Dateiendungen werden nachfolgend erläutert:

.pot ⇒ Portable Object Template Liste aller übersetzbaren Stings; wird mit 'xgettext' aus dem Sourcecode erzeugt und dient als Vorlage der .po Datei(en). Die Meldungstexte im Sourcecode werden in englisch angegeben.

.po ⇒ Portable Object Diese Datei(en) wird/werden aus der pot-Datei mit dem Programm 'msginit' erstellt (z.B. “msginit –locale=de –input=install.sh.pot” erzeugt u.A. die Datei install.sh.en_GB.po). Aus dem Dateinamen wird deutlich, in welche Sprache die Meldungen übersetzt werden. So steht z.B. 'en' für Englisch und XX für die Region in der diese Sprache verwendet wird – z.B. 'GB' für Großbritanien). Ausschließlich diese Dateien werden vom Übersetzer bearbeitet.

.mo ⇒ Machine Object Diese Dateien enthalten den maschinenlesbaren Code und werden mit der Software ausgeliefert. Erzeugt werden sie mit dem Programm 'msgfmt' aus der po-Datei.

Bearbeitung der po-Dateien

Die po-Dateien können mit einem normalen Editor bearbeitet werden. In der Variablen 'msgid' befindet sich der Meldungstext, so wie er im Sourcecode vom Entwickler eingegeben wurde. In die Variable 'msgstr' wird nun der Meldungstext in der übersetzen Sprache eingetragen. Dieser Text erscheint dann in der Anwendung.

Es geht auch komfortabler. Dazu gibt es diverse kostenfreie Programme, die die Bearbeitung von den Portable Object Dateien unterstützen. Folgende Programme habe ich betrachtet:

Gtranslator

Zum Programm Gtranslator habe ich den nachfolgenden Text aus der Zeitschrift LinuxUser Heft 12/2001 gefunden, der den Umfang ganz gut beschreibt:

„Nicht unwesentlich für die Benutzerfreundlichkeit eines Programms ist die Übersetzung, wie sie heute in den meisten GNOME-Programmen existiert. Zum Glück müssen die vielen Übersetzer allerdings nicht die ganzen Zeichenketten im Quelltext suchen und mühsam umstricken, sondern ein Programm namens xgettext übernimmt diese Arbeit und extrahiert alle vom Programmierer markierten Strings in eine pot-Datei. Diese Datei kann sich dann jeder Übersetzer kopieren, umbenennen und mit Übersetzungen füllen - der Name für eine deutsche Übersetzungsdatei wäre z. B. de.po. Die .po und .pot-Dateien müssen natürlich regelmäßig synchronisiert werden, was neben unübersetzten Textstellen zu “fuzzy”-Übersetzungen führt, die von Gettext auf Basis der anderen Übersetzungen geraten wurden. Sinn von Gtranslator 10 ist es, so entstandene po-Dateien zu bearbeiten. Praktisch für neue Übersetzungen ist dabei, dass Gtranslator versuchen kann, die Datei mit Hilfe von bereits bestehenden Übersetzungen anderer Programme zu vervollständigen. Außerdem greift Gtranslator dazu auf “gelernte” Übersetzungen aus einer UMTF-Datei zurück. Gefüllt wird diese Datei während des Übersetzens beziehungsweise über das Kommando “gtranslator -nl name.po” aus einer bestehenden po-Datei. Teilweise finden sich auf der Gtranslator-Homepage auch fertige Learn-Buffer, die es Anfängern leichter machen, nicht mit bestehenden Übersetzungs-Konventionen zu kollidieren. Nützlich ist auch, dass Gtranslator die einzelnen Zeichenketten nach ihrem Status sortieren kann und dass der Dateikopf automatisch mit den Daten des Übersetzers vervollständigt wird.“

Quelle:

Als Besonderheit ist zu erwähnen, dass das Programm auch eine Syntaxprüfung durchführt. So gab es bei den PO-Dateien aus dem MLD nach der ersten Übersetzung die Fehlermeldung „header field 'Project-Id-Version' still has the initial default value“. Ursache ist, dass in der po-Datei die „Project-Id-Version“ den default-Wert „PACKAGE VERSION“ enthält. Die anderen Programme ignorieren dies oder übernehmen die Vorgaben aus dem angelegten Projekt. Ein Handbuch für die Hilfe des Programms konnte ich nicht finden. Weitere Hinweise zu diesem Programm habe ich im Internet nicht gefunden und auch die erwähnten „fertigen Learn-Buffer“ waren für mich nicht auffindbar. Gtranslator gibt es auch als Windows-Version.

Lokalize

Das Programm Lokalize ist der Nachfolger von KBabel und wird im KDE-Projekt für die Übersetzung der Oberflächen und Dokumente verwendet. Der Vorteil dieses Programms ist aus meiner Sicht, dass es sehr gut dokumentiert ist. Viele Dinge davon könnten für die MLD übernommen werden, was eine Arbeitserleichterung wäre. Als Nachteil könnte gesehen werden, dass für das Programm zunächst die Basispakete von KDE installiert werden. Das Programm bietet zusätzlich ein Glossar, wo bestimmte Begriffe bereits im Vorfeld eingegeben und übersetzt werden können. Lokalize gibt es im Rahmen des KDE auch für Windows. Bei der Bearbeitung unter Windows ist mir das Programm jedoch mehrmals abgestürzt. Weitere Infos und Dokumente zu Lokalize:

Poedit

Poedit versteht sich als das Standardtool für die Bearbeitung von po-Dateien und bietet aus meiner Sicht dafür dieselbe Funktionalität wie Lokalize. Projekte in denen die Übersetzungen für andere Dateien gespeichert werden, ist hier über 'Translation Memory' und die Katalogverwaltung gelöst, jedoch von mir noch nicht getestet worden. Die Hilfe habe ich nur in englischer Sprache gesehen. Für die Übersetzung von Dokumenten ist es, soweit mir bekannt, nicht vorgesehen. Mit Poedit können direkt die mo-Dateien erzeugt werden.

Anleitung für poedit von Wordpress

Fazit

Bei allen Programmen gemeinsam ist, dass sie sich über das Software-Center von Ubuntu installieren lassen. Die Oberflächen lassen sich auf die deutsche Sprache umstellen. Bei Lokalize muss dazu noch das deutsche Sprachpaket vom KDE installiert werden (sudo apt-get install kde-l10n-de). Ebenfalls gemeinsam ist den Programmen, dass sie sich die Übersetzungen merken und bei gleichen oder ähnlichen Texten Übersetzungsvorschläge anbieten. Mit Poedit und Lokalize können verschiedene Projekte gebildet werden. Die Festlegungen aus den Projekten werden in die po-Dateien übernommen.

Bei meinen ersten Gehversuchen mit diesen Programmen hat mir persönlich Lokalize am besten gefallen. Aus meiner Sicht ist eine verbindliche Festlegung eines Programms zur Bearbeitung der po-Dateien nicht erforderlich. Mit allen Programmen können auf einfache Weise die Übersetzungen eingetragen werden, so dass jeder sein „Lieblingsprogramm“ verwenden kann, solange er sich an die organisatorischen Vorgaben hält. Untersucht habe ich noch nicht, ob sich die bereits eingegebenen Übersetzungen auch exportieren und sich damit anderen Projektmitgliedern zur Verfügung stellen lassen. Sollte dies dies der Fall sein, macht die Verwendung eines einheitlichen Tools durchaus Sinn.

Organisatorische Vorgaben

Organisatorische Vorgaben müssen vom MLD-Projekt getroffen werden. So ist aus meiner Sicht festzulegen, wie die Felder in der po-Datei zu füllen sind. Das bezieht sich insbesondere auf Mailadressen und was als Namen der Übersetzer eingetragen werden soll. Auch sind Vorgaben hinsichtlich der Übersetzungen zu treffen. Anhaltspunkte können hier die Vorgaben aus dem KDE-Projekt sein. Insbesondere sollte geklärt werden, welche Begriffe lieber im Englischen belassen werden. So ist es für mich leichter den Begriff „Touchscreen“ zu versehen als wenn „druckempfindlicher Bildschirm“ verwendet wird. Ebenfalls sollte festgelegt werden, wer die Übersetzungen durchführt. Aus meiner Sicht sollten die Übersetzung der englischen Meldungen aus dem Sourcecode ins Deutsche die Entwickler vornehmen, da sie wissen, was ihr Programm an dieser Stelle tut. Die Entwickler haben, zumindest wie ich vermute, alle Deutsch als Muttersprache. Gesehen habe ich auch, dass vereinzelt Meldungen im Sourcecode in deutsch eingegeben wurden. Dies kann dann gleich vom Entwickler angepasst werden – die Tools bieten wohl auch die Möglichkeit bei der Übersetzung die jeweilige Stelle im Sourcecode anzuzeigen. Dies wurde von mir aber noch nicht getestet. Der Aufwand für die Übersetzung mit einem der genannten Tools ist bei den Meldungen, die ich bislang gesehen habe, relativ gering.

Anmerkung vom Entwickler

Übersetzungen dürfen gerne von jedem angefertigt werden der Interesse da dran hat, das die MLD seine Landessprache unterstützt. Dies beinhaltet auch fehlende Übersetzungen und Fehlerkorrekturen in den Deutschen und Englischen po Dateien.

Überarbeitete po Dateien sollten per Mail an mail@minidvblinux.de geschickt werden. Die Entwickler werden die Übersetzungen mit zu den Programmen packen und einen entsprechenden Language-Parameter generieren. So kann jeder helfen, damit MLD noch internationaler wird.

Weitere interessante Fundstellen zu der Thematik:

mld/entwicklung/lokalisierung.txt · Last modified: 2013/08/27 07:32 (external edit)