User Tools

Site Tools


internationalization

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:

  • lupdate zum Erzeugen/Erneuern der *.ts-Dateien
  • linguist zum Einfügen neuer Übersetzungen
  • lrelease zum Erzeugen von *.qm-Dateien, die von der App direkt geladen werden können

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.:

  • mpv_de_DE.ts
  • mpv_en_US.ts
  • mpv_fr_FR.ts

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: <code> ApplicationWindow { : applicationtitle

title: qsTr(”Multivariate Projection Viewer” ) + aRenderField.emptyString
Label
    text: qsTr(”Beispiel”) + aRenderField.emptyString

} </code>

internationalization.1512234997.txt.gz · Last modified: 2017/12/02 18:16 by 178.91.253.70