User Tools

Site Tools


internationalization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
internationalization [2017/12/02 18:28]
178.91.253.70
internationalization [2018/01/21 06:05] (current)
178.0.146.219
Line 59: Line 59:
 Listing: QML-Code mit übersetzbaren Strings und Übersetzungskommentaren 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.
  
 +----
  
 +__**lrelease**__
  
 +Zur Umwandlung von *.ts in bin¨ are *.qm-Dateien wird lrelease verwendet:
  
 +<​code>​
 +lrelease mpv_de_DE.ts
 +</​code>​
  
 +*.qm-Dateien können von der Applikation direkt verwendet werden. Standardmäßig wird der Locale en_US benutzt.
 +Über die GUI kann dies geändert werden. Weitere Informationen findet man hier:
  
 +[[https://​doc.qt.io/​qt-5/​qtquick-internationalization.html|https://​doc.qt.io/​qt-5/​qtquick-internationalization.html]]
  
 +[[https://​doc.qt.io/​qt-5/​linguist-manager.html|https://​doc.qt.io/​qt-5/​linguist-manager.html]]
  
 +
 +
 +----
 +
 +__**Übersetzungsprozess für die Internationalisierung/​Mehrsprachigkeit**__
 +
 +- Info: die Strings in der main.qml sind angenommen in einer bestimmten Sprache zu sein, hier in "​englisch"​ (natürlich). Übersetzungen dieser Strings müssen vorhanden sein, um eine Internationalisierung zu ermöglichen.
 +
 +- pro Sprache muss eine separate Übersetzungsdatei vorhanden sein.
 +Dafür benutzen wir die Tools "​lupdate"​ und "​lrelease"​ aus QT.
 +
 +- pro QML Datei muss für einen relvanten String jeweils eine Übersetzung vorhanden sein (oder angelegt werden).... das bedeutet das, wenn z.B. ein QML Datei aufgesplitet wird, das für beie neuen QML Dateien, auch jeweils neue
 +übersetzungen einzupflegen sind.
 +
 +
 +
 + Zum Anlegen einer Übersetzungsdatei:​
 +
 +- 0) wechsele in den Ordner:
 +   "​cd ..\multivariateprojectionviewer\MultivariateProjectionViewer\resources\translations"​
 +
 +- 1) lege Übersetzungsdatei an (hier am Besipiel französisch):​
 +   "​lupdate ../main.qml -ts mpv_fr_FR.ts"​
 + ​...hier wird die main.qml nach relevanten Strings durchsucht, und diese zur
 +   ​Übersetzung in der "​mpv_fr_FR.ts"​ vorbehalten. PS: Wenn die Datei bereits
 +   ​existiert,​ wird sie "​nur"​ geupdatet, aber nicht neu angelegt/​überschrieben.
 + Ein solcher Update ist auch notwendig für neue oder aufgesplite QML dateien. Für Linux gibt es dafür die Bash "​update.sh",​ für Windows die *.cmd "​update_win.cmd"​ (bei der win variante muss jede neue qml Datei dort im cmd-script auch vermerkt werden...schaut dort einfach mal rein, ihr seht das dann schon) ​
 +
 +- 2) Öffne die "​mpv_fr_FR.ts"​ mit "​Linguist"​ und übersetze dort die Strings (uns speichern nicht vergessen ;) )
 +
 +- 3) Ein  Update übersetzt die Strings in sozusagen machinenlesbare Form durch
 +  "​lrelease mpv_fr_FR.ts"​
 +...dadurch werden die binärdateien für die Stringübersetzung erstellt und dem
 +  QT-Internationalisierungssystem zur verfügung gestellt. Nun muss nach einem clean nur noch neu kompiliert werden.
 +
 +- Scripte für 1-3 liegen in resources/​translations
 +
 +
 + ​...wenn neue Strings in die qml hinzugefügt werden, wiederhole 1-3 um für jede Sprache die die Internationalisierung beinhalten soll. Passe die "​Lokale"​ in der UI im Menu an, um neue Sprachen verfügbar zu machen.
 + Info: Je nach gewählter "​Lokale"​ werden entweder die orginalen Strings aus der qml verwendet, oder durch die String ersetzt welche in den entsprechenden Übersetzungsdateien sind.
  
  
internationalization.1512235705.txt.gz · Last modified: 2017/12/02 18:28 by 178.91.253.70