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).

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.

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 Komponenten.

Alternativ können Sie Weblate verwenden, um ein lokales Repository einzurichten, 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 das Weblate-Repository (wenn Git-Exporter eingeschaltet ist) als zusätzliches Remote-Repository hinzufügen und daraus Übersetzungsaktualisierungen abrufen.

Zuvor sollten Sie alle ausstehenden Änderungen committen (siehe Lazy Commits). Sie können dies in der Bedienoberfläche (unter Repository-Wartung) oder über die Befehlszeile mit Weblate-Client tun.

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 auf den neuesten Stand zu bringen.

Abruf von Remote-Änderungen in Weblate

Um die in Ihrem Repository neu aktualisierten Zeichenketten in Weblate zu holen, lassen Sie es einfach aus dem Upstream-Repository 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 keine VCS-Integration verwenden, können Sie die Bedienoberfläche oder Weblates REST-API verwenden, um die Übersetzungen zu aktualisieren und an Ihren Quellcode anzupassen.

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.

Bemerkung

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

Aktualisieren der Zielsprachedateien

Bei einsprachigen Dateien (siehe Unterstützte Dateiformate) kann Weblate neue Übersetzungszeichenketten hinzufügen, die nicht in Einsprachige Basissprachdatei und nicht in den tatsächlichen Übersetzungen enthalten sind. Es führt jedoch keine automatische Bereinigung veralteter Zeichenketten durch, da dies zu unerwarteten Ergebnissen führen könnte. Wenn Sie dies tun möchten, installieren Sie bitte die Erweiterung Übersetzungsdateien bereinigen, das die Bereinigung entsprechend Ihren Anforderungen vornimmt.

Weblate wird auch nicht versuchen, zweisprachige Dateien auf irgendeine Weise zu aktualisieren. Wenn Sie also po-Dateien aus pot aktualisieren möchten, müssen Sie dies selbst tun, indem Sie Ausgangszeichenketten aktualisieren-Importmethoden oder die Erweiterung PO-Dateien auf POT aktualisieren (msgmerge) verwenden.

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.

Für einsprachige Formate muss die neue Zeichenkette zu Einsprachige Basissprachdatei hinzugefügt werden. Dies wird normalerweise von den Entwicklern während der Codeentwicklung durchgeführt. Sie können die Überprüfung dieser Zeichenketten mit Qualitäts-Gateway für die Ausgangszeichenketten einführen.

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 Repository der Versionsverwaltung

Weblate speichert alle Übersetzungen im Repository der Versionsverwaltung. Es kann entweder mit einem Upstream-Repository verbunden sein, oder nur intern sein. Mit der Repository-Wartung können Sie das beeinflussen.

Hinweis

Mit Kontinuierliche Lokalisierung wird das Repository automatisch gepusht, wenn es Änderungen gibt. Es besteht normalerweise keine Notwendigkeit, es manuell zu beeinflussen.

../_images/component-repository.webp