Multi-Source-Entwicklung und Versionskontrolle
Die Arbeit mit Übersetzungsdateien in Umgebungen, in denen mehrere Entwickler an demselben Projekt mitwirken, erfordert eine konsistente Konfiguration und einen definierten Workflow für das Zusammenführen und die Versionskontrolle.
Voraussetzungen
Um einen ordnungsgemäßen Multi-Source-Entwicklungsworkflow mit dem Translator sicherzustellen, müssen alle Entwickler folgende Anforderungen erfüllen:
- Alle Entwickler müssen die gleiche paramLang-Einstellung verwenden. Wenn die paramLang zwischen den Entwicklern abweicht, kann die Reihenfolge der Einträge in den generierten .ts-Dateien unterschiedlich sein, was einen Dateivergleich und das Zusammenführen unmöglich macht.
- Der Konfig-Eintrag [general] translationSourceLang sollte für Unterprojekte explizit gesetzt werden, um eine mehrdeutige Quellsprach-Auflösung zu vermeiden.
Auflösung der Übersetzungsquellsprache
Der Translator bestimmt die Quellsprache für die Erzeugung der Übersetzungsdateien wie folgt:
- Im Projekt: Der Konfig-Eintrag
paramLangwird verwendet. - In Unterprojekten: Der Konfig-Eintrag
translationSourceLangwird im config.level gesucht. Wenn nicht definiert, hängt das Verhalten vom Speicherort ab:- Unterhalb des WinCC OA-Installationsverzeichnisses
(z.B. ein installiertes Add-on):
en_US.utf8wird als Standardsprache verwendet. - In anderen Verzeichnissen: Für jede Panel-Datei wird das erste
LangText-Objekt ausgewertet. Wenn
en_US.utf8vorhanden ist, wird es verwendet; andernfalls wird die erste Sprache der Datei verwendet.
- Unterhalb des WinCC OA-Installationsverzeichnisses
(z.B. ein installiertes Add-on):
Zusammenführen von Übersetzungsdateien
Die Übersetzungs-Quelldateien (.ts) sind XML-basiert. Sie können daher mit standardmäßigen textbasierten Merge-Werkzeugen zusammengeführt werden. Da die .ts-Dateien normalerweise erweitert werden (neue Einträge werden am Ende hinzugefügt), führt paralleles Arbeiten am selben Unterprojekt in der Regel zu sauberen Text-Merges.
Der empfohlene Workflow zum Zusammenführen von Übersetzungen in einer Multi-Source-Umgebung:
- Stellen Sie sicher, dass alle Entwickler die gleiche
paramLang-Konfiguration verwenden. - Erzeugen oder aktualisieren Sie die .ts-Übersetzungsdateien über das Translator-Panel.
- Führen Sie die .ts-Dateien mit der standardmäßigen Text-Merge-Funktionalität Ihres Versionskontrollsystems zusammen.
- Erzeugen Sie nach dem Zusammenführen die .qm-Dateien neu, indem Sie im Translator-Panel auf .qm-Dateien erzeugen klicken.
Formatkonvertierung
Übersetzungsdateien können mit dem Kommandozeilenwerkzeug
lconvert, das mit der Qt-Installation bereitgestellt wird,
zwischen dem Qt-.ts-Format und dem XLIFF-Format (.xlf) konvertiert werden. Dies ist
nützlich, wenn die Übersetzungsarbeit mit externen Werkzeugen durchgeführt wird, die
XLIFF, aber nicht das Qt-.ts-Format unterstützen.
Eine .ts-Datei in XLIFF konvertieren:
lconvert -i project_de.ts -o project_de.xlf
Eine XLIFF-Datei zurück in das .ts-Format konvertieren:
lconvert -i project_de.xlf -o project_de.ts
lconvert befindet sich im Qt-bin-Verzeichnis
innerhalb der WinCC OA-Installation. Die XLIFF-Versionen 1.1 und
1.2 werden unterstützt.Nach der Rückkonvertierung in das .ts-Format muss die .qm-Datei neu erzeugt werden, um die Übersetzungen zur Laufzeit anzuwenden.
Arbeiten mit Git
Beachten Sie bei der Verwendung von Git für die Versionskontrolle von Übersetzungsdateien folgende Best Practices:
- .ts-Dateien in das Repository committen. Dies sind die bearbeitbaren Quelldateien für Übersetzungen und können als Text zusammengeführt werden.
- .qm-Dateien vor dem Commit neu erzeugen. Da .qm-Dateien binär sind,
können sie nicht zusammengeführt werden. Führen Sie immer
.qm-Dateien erzeugen (oder
lreleaseüber die Kommandozeile) aus, bevor Sie committen, um sicherzustellen, dass die Binärdateien mit der aktuellen .ts-Quelle übereinstimmen. - Merge-Konflikte in .ts-Dateien manuell lösen. Wenn mehrere Entwickler dieselbe .ts-Datei gleichzeitig ändern, können Merge-Konflikte in der XML-Struktur auftreten. Lösen Sie diese mit einem Texteditor oder Merge-Werkzeug und stellen Sie sicher, dass das XML wohlgeformt bleibt.
- Branch-Workflows berücksichtigen. Wenn Sie Übersetzungsdateien zwischen Branches zusammenführen (z.B. Support-Branches), führen Sie zuerst die .ts-Dateien zusammen und erzeugen Sie dann die .qm-Dateien auf dem Ziel-Branch neu.
