Login
Newsletter
Werbung

Mo, 27. September 1999, 00:00

KDE-Programmierung: Internationalisierung

Mehrsprachige KDE-Programme

Eines der größten und zumindest in der Welt der freien Software auch beinahe schon selbstverständlichen Features von KDE ist die Internationalisierung der einzelnen Programme. Durch das simple Auswählen Ihrer bervorzugten Sprache im KDE-Kontrollzentrum weisen Sie alle Programme an, diese Sprache in Ihren Menüs und all Ihren sonstigen Anzeigen zu verwenden.

Das funktioniert natürlich nur dann, wenn es für dieses Programm bereits eine Übersetzung in die gewünschte Sprache gibt. Allerdings existieren für fast alle »Mainstream«-Sprachen, wie z.B. Deutsch oder Französisch, Übersetzungen nahezu aller KDE-Programme. Auch Sprachen, die nur ein paar tausend Menschen sprechen und die deshalb von den großen Softwarefirmen nicht weiter beachtet werden, werden zumindest von den wichtigsten KDE-Programmen unterstüzt.

Vorbereitungen im Programmcode

Falls Sie meinen Tipp im dritten Teil »Signals und Slots« beherzigt haben und alle Strings, die der Anwender zu Gesicht bekommt, dem Makro i18n() übergeben haben, sind in Ihrem Programm keine weiteren Änderungen mehr nötig. Sie müssen nur beachten, dass die englischen Bezeichnungen meist recht kurz sind. Der übersetzte String ist oft länger, so dass Sie aufpassen sollten, dass er genug Platz hat, um komplett angezeigt zu werden. Sie sollten also Ihre Buttons und Labels immer großzügig dimensionieren oder auch einmal Icons anstatt einer Bezeichnung verwenden.

Das Programm übersetzen

Geben Sie im Source-Verzeichnis ihres Projektes das Kommando

xgettext -C -ki18n datei1.cpp datei2.cpp ...

ein und übergeben Sie ihm alle Source-Dateien, die zu übersetzende Strings enthalten. Das Programm xgettext erzeugt nun die Datei messages.po, die als Vorlage für die Übersetzungen in die entsprechenden Sprachen dient. Kopieren Sie diese Datei nun in das Verzeichnis po, das KDevelop automatisch für jedes neue Projekt anlegt und geben Sie ihr den Namen word2html.pot. Um das Programm ins Deutsche zu übersetzen, legen Sie eine Kopie dieser Datei namens de.po an. word2html.pot bleibt als Vorlage für Übersetzungen in weitere Sprachen bestehen, während Sie de.po in einem Texteditor ihrer Wahl öffnen und übersetzen.

Die Einträge für die verschiedenen Strings sehen etwa so aus:

 #: toplevel.cpp:619
 msgid "Opens an existing document"
 msgstr ""

Um den String zu übersetzen, schreiben Sie einfach den übersetzten Text hinter msgstr. Das sieht dann so aus:

 #: toplevel.cpp:619
 msgid "Opens an existing document"
 msgstr "Öffnet ein existierendes Dokument"

Wenn Sie mit der Übersetzung fertig sind, müssen Sie die Datei in ein anderes Format konvertieren, aus dem die Strings dann ausgelesen werden. Dies geschieht mit dem Befehl

msgfmt -o de.gmo de.po

Damit ist die eigentliche Übersetzung abgeschlossen. Jetzt müssen Sie die soeben erzeugte gmo-Datei nur noch in ihr Projekt einbinden, so dass sie mit make install auch installiert wird.

Falls noch nicht geschehen, kopieren Sie die Datei in das Verzeichnis po Ihres Projekts. Öffnen Sie das Projekt in KDevelop und wählen Sie in der Projektübersicht RFV. Suchen Sie Ihre gmo-Datei und lassen Sie sich die Eigenschaften anzeigen. Geben Sie als Installationsverzeichnis ($KDEDIR)/share/locale/de/LC_MESSAGES/programmname.mo an.

Das war auch schon alles. Ohne viel Aufwand haben Sie ihr Programm übersetzt und die Übersetzung in das Projekt integriert.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung