Integration mit Weblate

Weblate-Grundlagen

Projekt- und Komponentenstruktur

In Weblate sind die Übersetzungen in Projekten und Komponenten organisiert. Jedes Projekt kann eine Reihe von Komponenten enthalten, die Übersetzungen in einzelne Sprachen enthalten. Die Komponente entspricht einer übersetzbaren Datei (zum Beispiel GNU gettext PO (Portable Object) oder Android-Zeichenketten-Ressourcen). Die Projekte helfen Ihnen, die Komponenten in logischen Gruppen zu organisieren (z. B. um alle in einer Anwendung verwendeten Übersetzungen zu gruppieren).

Zusätzlich können Komponenten innerhalb von Projekten mithilfe von Kategorien strukturiert werden. Komponenten können zu einer Kategorie gehören, und Kategorien können verschachtelt werden.

Intern verfügt jedes Projekt über Übersetzungen in gemeinsamen Zeichenketten, die standardmäßig auf andere Komponenten des Projekts übertragen werden. Dies erleichtert die Last der sich wiederholenden und mehrere Versionen umfassenden Übersetzung. Die Weitergabe von Übersetzungen kann für jede Komponentenkonfiguration mit Weitergabe von Übersetzungen erlauben deaktiviert werden, falls die Übersetzungen voneinander abweichen sollten.

Repository-Integration

Weblate ist so aufgebaut, dass es sich in ein Upstream-Versionsverwaltungs-Repository integrieren lässt. Kontinuierliche Lokalisierung beschreibt die Bausteine und wie die Änderungen zwischen ihnen ablaufen.

Siehe auch

Architekturübersicht beschreibt, wie Weblate intern funktioniert.

Benutzerzuordnung

Weblate sorgt dafür, dass die von den Übersetzern angefertigten Übersetzungen im Versionsverwaltungs-Repository unter Angabe von Name und E-Mail-Adresse korrekt gespeichert werden. Eine echte E-Mail-Adresse, die an den Commit angehängt ist, folgt den Gepflogenheiten der verteilten Versionsverwaltung und ermöglicht es Diensten wie GitHub, die von Ihnen erstellten Beiträge in Weblate mit Ihrem GitHub-Profil zu verknüpfen.

Diese Funktion birgt auch das Risiko des Missbrauchs von E-Mail-Adressen, die in den Commits der Versionsverwaltung veröffentlicht werden. Sobald ein solcher Commit auf einer öffentlichen Hosting-Plattform (z. B. GitHub) veröffentlicht wurde, gibt es praktisch keine Möglichkeit, ihn zu entfernen. Um dies zu vermeiden, erlaubt Weblate die Auswahl einer privaten Commit-E-Mail-Adresse im Benutzerkonto.

Daher sollten Administratoren bei der Konfiguration von Weblate folgendes berücksichtigen:

  • Eine solche Verwendung von E-Mail-Adressen sollte in den Nutzungsbedingungen klar beschrieben werden. Falls ein solches Dokument benötigt wird, Rechtliche Grundlagen kann dabei helfen.

  • Mit PRIVATE_COMMIT_EMAIL_OPT_IN können E-Mails standardmäßig auf privat gestellt werden.

Ein Lokalisierungsprojekt in Weblate importieren

Weblate wurde mit Blick auf die VCS-Integration als Kernfunktion entwickelt. Der einfachste Weg ist, Weblate den Zugriff auf Ihr Repository zu gewähren. Der Importvorgang führt Sie durch die Konfiguration Ihrer Übersetzungen in Weblate-Komponenten.

Alternativ können Sie Weblate auch ein lokales Repository einrichten lassen, das alle Übersetzungen ohne Integration enthält.

Abrufen aktualisierter Übersetzungen von Weblate

Weblate speichert aktualisierte Zeichenketten in einer Datenbank und überträgt sie in ein lokales Versionsverwaltungs-Repository. Sie können ein Weblate-Repository (wenn Git-Exporter eingeschaltet ist) als zusätzliches Remote-Repository hinzufügen und daraus Übersetzungsaktualisierungen abrufen.

Zuvor sollten Sie alle ausstehenden lokalen Änderungen in Weblate committen (siehe Lazy Commits). Dies kann über die Bedienoberfläche (unter Repository-Wartung) oder über die Befehlszeile mit Weblate-Client erfolgen.

Das Pushen von Änderungen kann automatisiert werden, wenn Sie Weblate Push-Zugriff auf Ihr Repository gewähren und Repository-Push-URL in der Komponentenkonfiguration einrichten, siehe Pushen von Änderungen aus Weblate.

Alternativ können Sie auch Weblates REST-API verwenden, um die Übersetzungen zu aktualisieren, damit sie mit der neuesten Version aus dem Upstream des Remote-VCS-Repositorys übereinstimmen.

Abrufen von Remote-Änderungen in Weblate

Um alle in Ihrem Remote-VCS-Repository kürzlich aktualisierten Zeichenketten in Weblate zu holen, erlauben Sie Weblate, diese aus dem Upstream-Repository zu ziehen. Dies kann über die Bedienoberfläche (unter Repository-Wartung) oder über die Befehlszeile mit Weblate-Client erfolgen.

Dies kann automatisiert werden, indem Sie einen Webhook in Ihrem Repository einrichten, der Weblate immer dann auslöst, wenn es einen neuen Commit gibt. Siehe Repositorys aktualisieren für weitere Details.

Wenn Sie die VCS-Integration nicht verwenden, können Sie die Bedienoberfläche oder Weblates REST-API verwenden, um die Übersetzungen zu aktualisieren, damit sie mit Ihrer Codebasis übereinstimmen.

Neue Zeichenketten hinzufügen

Wenn Ihre Übersetzungsdateien zusammen mit dem Code in einem Remote-VCS gespeichert sind, haben Sie höchstwahrscheinlich einen bestehenden Arbeitsablauf für Entwickler, um neue Zeichenketten einzuführen. Jede Art des Hinzufügens von Zeichenketten wird aufgegriffen, aber Sie sollten Qualitäts-Gateway für die Ausgangszeichenketten verwenden, um Fehler zu vermeiden.

Wenn Übersetzungsdateien vom Code getrennt werden, können auf folgende Weise neue Zeichenketten in Weblate eingeführt werden.

  • Manuell, mit Neue Übersetzung hinzufügen aus dem Menü Werkzeuge in der Ausgangssprache. Sie können im Formular zwischen den Optionsfeldern Einzahl und Plural auswählen. Wählen Sie die entsprechende Form der neu hinzuzufügenden Übersetzungszeichenkette aus.

  • Programmgesteuert, mit der API POST /api/translations/(string:project)/(string:component)/(string:language)/units/.

  • Durch Hochladen der Quelldatei als Vorhandene Übersetzungsdatei ersetzen (dies überschreibt vorhandene Zeichenketten, also stellen Sie bitte sicher, dass die Datei sowohl alte als auch neue Zeichenketten enthält) oder Neue Zeichenketten hinzufügen, siehe Importmethoden.

Bemerkung

Die Möglichkeit, Zeichenketten in Weblate hinzuzufügen, erfordert Zeichenketten verwalten.

Aktualisieren der Zielsprachedateien

Bei einsprachigen Dateien (siehe Lokalisierungsdateiformate) fügt Weblate möglicherweise neue Übersetzungszeichenketten hinzu, die in Einsprachige Basissprachdatei und nicht in den eigentlichen Übersetzungen enthalten sind. Es wird jedoch keine automatische Bereinigung veralteter Zeichenketten durchgeführt, da dies zu unerwarteten Ergebnissen führen könnte. Wenn Sie dies dennoch tun möchten, installieren Sie bitte die Erweiterung Übersetzungsdateien bereinigen, die den Bereinigungsvorgang entsprechend Ihren Anforderungen durchführt.

Weblate wird auch nicht versuchen, zweisprachige Dateien zu aktualisieren, wenn sich die Quelle ändert. Wenn Sie also po-Dateien aus pot aktualisieren müssen, tun Sie es selbst, indem Sie Ausgangszeichenketten aktualisieren Importmethoden, oder die Erweiterung PO-Dateien auf POT aktualisieren (msgmerge) verwenden.

Hinweis

Werkzeuge zur Extraktion von Ausgangszeichenketten, wie z. B. xgettext oder lupdate, müssen außerhalb von Weblate ausgeführt werden.

Einführen neuer Zeichenketten

Sie können neue Zeichenketten in Weblate hinzufügen, wenn Zeichenketten verwalten eingeschaltet ist, aber es ist normalerweise besser, neue Zeichenketten zusammen mit den Codeänderungen einzuführen, durch die sie eingebracht wurden.

Einsprachige Formate müssen so konfiguriert werden, dass neue Zeichenketten zu Einsprachige Basissprachdatei hinzugefügt werden. Dies wird normalerweise von Entwicklern gemacht, wenn sie den Code schreiben. Sie können diese Zeichenketten mit Hilfe von Qualitäts-Gateway für die Ausgangszeichenketten überprüfen lassen.

Zweisprachige Formate extrahieren typischerweise Zeichenketten aus dem Quellcode mit Hilfe eines Tools (wie xgettext oder intltool-update). Befolgen Sie die Dokumentation Ihres Lokalisierungsframeworks, um Anweisungen dazu zu erhalten.. Sobald die Zeichenketten extrahiert sind, kann ein zusätzlicher Schritt erforderlich sein, um vorhandene Übersetzungen zu aktualisieren, siehe Aktualisieren der Zielsprachedateien.

Hinweis

Die Automatisierung der Zeichenkettenextraktion liegt derzeit außerhalb des Anwendungsbereichs von Weblate. Sie beinhaltet in der Regel die Ausführung von nicht vertrauenswürdigem Code, was sie eher für eine allgemeine kontinuierliche Integration als für eine lokalisierungsspezifische Plattform geeignet macht.

Vielleicht möchten Sie dies in Ihre kontinuierlichen Integrationspipelines integrieren, damit neue Zeichenketten automatisch zur Übersetzung erscheinen. Eine solche Pipeline sollte auch Vermeiden von Merge-Konflikten abdecken.

Verwalten des lokalen VCS-Repositorys

Weblate speichert alle Übersetzungen in seinem Repository mit Versionsverwaltung. Es wird vorgeschlagen, eine Verbindung zu einem Remote-Repository herzustellen, aber auch eine rein interne Einrichtung ist möglich. Die Repository-Wartung ermöglicht die Kontrolle dieses Repositorys.

Hinweis

Mit Kontinuierliche Lokalisierung werden alle Änderungen aus dem Repository automatisch gepusht, so dass ein manuelles Verwalten in der Regel nicht erforderlich ist.

../_images/component-repository.webp