Zum Inhalt

Ü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/:

Translations/
  MyPlugin_en.ts
  MyPlugin_pl.ts
  MyPlugin_de.ts
  MyPlugin_fr.ts

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üllt QCoreApplication::translate("<Context>", s) für Strings außerhalb eines QObject.

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.