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_INkönnen E-Mails standardmäßig auf privat gestellt werden.
Importing a localization project into Weblate¶
Weblate has been developed with VCS integration in mind as it’s core feature, so the easiest way is to grant Weblate the access to your repository. The import process will guide you through configuring your translations into Weblate components.
Alternatively, you can let Weblate set up a local-only repository containing all the translations without integration.
Abrufen aktualisierter Übersetzungen von Weblate¶
Weblate stores updated strings in a database and commits them to a local version-control repository. You can add a Weblate repository (when Git-Exporter is turned on) as an additional remote repository and fetch translation updates from it.
Prior to this, you might want to commit any pending local changes made in Weblate (see Lazy Commits). This can be done from the user interface (in the Repository maintenance), or from the command-line using Weblate-Client.
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.
Alternatively, use Weblates REST-API to update translations so that they match the latest version from the upstream in your remote VCS repository.
Abruf von Remote-Änderungen in Weblate¶
To fetch any strings recently updated in your remote VCS repository into Weblate, allow Weblate to pull from the upstream repository. This can be achieved in the user interface (in the Repository maintenance), or from the command-line using Weblate-Client.
This can be automated by setting a webhook in your repository to trigger Weblate whenever there is a new commit. See Repositorys aktualisieren for more details.
If not using VCS integration, you can use the UI or Weblates REST-API to update the translations so that they match your codebase.
Siehe auch
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.
Manually, using Add new translation string from Tools menu in the source language. You can choose between the radio buttons Singular and Plural inside the form. Select the appropriate form of the new translation string to be added.
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.
Updating target-language files¶
For monolingual files (see Unterstützte Dateiformate), Weblate might add new translation strings present in the Einsprachige Basissprachdatei, and not in actual translations. It does not however perform any automatic cleanup of stale strings, as that might have unexpected results. If you still want to do this, please install the Übersetzungsdateien bereinigen add-on, which handles cleanup according to your requirements.
Weblate will also not try to update bilingual files when the source changes,
so if you need po files to be updated from pot, do it yourself by
using Update source strings Importmethoden, or by using
the PO-Dateien auf POT aktualisieren (msgmerge) add-on.
Hinweis
Source string extraction tools, such as xgettext or lupdate, need to be executed outside of Weblate.
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.
Monolingual formats need to be configured so that new strings are added to Einsprachige Basissprachdatei. This is typically done by developers, as they write the code. You might want to use a review process of those strings using Qualitäts-Gateway für die Ausgangszeichenketten.
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 Updating target-language files.
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.
Managing the local VCS repository¶
Weblate stores all translations in its underlying version control repository. It is suggested to be connected to a remote one, but internal-only setup is also possible. The Repository maintenance allows controlling this repository.
Hinweis
With Kontinuierliche Lokalisierung, any changes are automatically pushed from the repository, so there is usually no need to manually manage it manually.