This is an old revision of the document!
Internationalisierung
Zur Internationalisierung gehört die Übersetzung von Texten der grafischen Benutzeroberfläche. Da diese auf QML basiert, werden die Qt linguist tools benutzt, die zum Qt SDK gehören. Die erzeugten *.ts-Dateien liegen in einem XML-Format vor, sodass sie auch unabhängig von Qt gelesen und bearbeitet werden können. Der Prozess erfolgt in drei Schritten:
Dateinamen
Die Benennung der Übersetzungsdateien erfolgt nach einen Muster:
mpv_<sprache>_<LAND>.*
Wobei sprache ein ISO 638 Code ist und LAND ein ISO 3166 Code, z.B.:
lupdate
Dieses Programm kann aus Quelldateien (z.B. *.qml, *.cpp) Zeichenketten zur Übersetzung extrahieren und als *.tsDatei speichern. Wenn die *.ts-Datei bereits existiert wird sie erweitert. Die Dateien für die Übersetzung befinden sich im resources/translations Verzeichnis. Um die Datei für die deutsche Übersetzung zu erstellen/erneuern, führt man in diesem Verzeichnis folgendes Kommando aus:
lupdate ../main.qml -ts mpv_de_DE.ts
Zeichenketten, die im QML-Code mit qsTr() umschlossen sind (qsTr(“Beispiel”)) werden extrahiert. / / : markiert ein Kommentar, um weiteren Kontext für die Übersetzung zu liefern. Für eine dynamische Anpassung der Übersetzungen während der Laufzeit gibt es einen Workaround: An jeden übersetzbaren String muss + aRenderField.emptyString angehängt werden:
ApplicationWindow { //: applicationtitle title: qsTr(”Multivariate Projection Viewer” ) + aRenderField.emptyString Label{ text: qsTr(”Beispiel”) + aRenderField.emptyString } }
Listing: QML-Code mit übersetzbaren Strings und Übersetzungskommentaren
linguist
Qt Linguist ist eine grafische Anwendung, die das Editieren von *.ts-Dateien erlaubt. Hiermit kann die eigentliche Übersetzung von Zeichenketten in eine andere Sprache statt finden.