Übersetzungen¶
Jeder für Benutzer sichtbare String, den ein Plugin anzeigt, muss übersetzbar
sein, mit Katalogen für alle vier unterstützten Sprachen — en, pl, de,
fr —, bevor das Plugin als fertig gilt. Das ist dieselbe Messlatte wie bei
Tests.
Kataloge¶
Jedes Plugin, das irgendeinen String hat, führt einen .ts-Katalog pro
Sprache in seinem Ordner Translations/:
Binden Sie sie über mte_add_plugin in den Build ein:
mte_add_plugin(NAME MyPlugin
SOURCES Src/MyPlugin.cpp
TRANSLATIONS
Translations/MyPlugin_en.ts
Translations/MyPlugin_pl.ts
Translations/MyPlugin_de.ts
Translations/MyPlugin_fr.ts
)
Der Build führt lrelease aus, um .qm-Dateien bereitzustellen;
TranslationManager lädt sie zur Laufzeit anhand des Katalognamens
(Plugin-Kataloge unter Plugins/Translations/<Plugin>/).
Strings zur Übersetzung markieren¶
- Bevorzugen Sie
QObject::tr(...)(Kontext = die Klasse) für normale UI-Strings. - Der Helfer
tr_()umhülltQCoreApplication::translate("<Context>", s)für Strings außerhalb einesQObject.
tr_() ist für lupdate unsichtbar
lupdate kann den Kontext innerhalb von tr_() nicht auflösen, daher
werden diese Kataloge von Hand gepflegt. Halten Sie den
<source>-Text byte-identisch zum Laufzeit-String, sonst greift die
Übersetzung stillschweigend nicht.
Definition of Done¶
Die Lokalisierung eines Plugins ist erst fertig, wenn alle vier .ts-Dateien
existieren, eingebunden sind und lrelease 0 unfertige Strings meldet.