Erweiterungen

Erweiterungen bieten die Möglichkeit, den Ablauf der Übersetzung anzupassen und zu automatisieren. Administratoren können Erweiterungen über das Menü VerwaltungErweiterungen des jeweiligen Übersetzungsprojekts oder -komponente hinzufügen und verwalten. Erweiterungen können auch plattformweit in der Verwaltungsoberfläche installiert werden.

Hinweis

Sie können Erweiterungen auch mit API, DEFAULT_ADDONS, oder install_addon konfigurieren.

../_images/addons.webp

Ereignisse, die Erweiterungen auslösen

Erweiterungsinstallation

Wird ausgelöst, wenn die Erweiterung installiert wird.

Komponentenaktualisierung

Wird ausgelöst, immer wenn eine Änderung in einer Komponente erfolgt, beispielsweise:

  • Zeichenketten werden im Repository geändert.

  • Eine Zeichenkette wird hinzugefügt.

  • Eine neue Übersetzung wird hinzugefügt.

Täglich

Wird täglich ausgelöst, aber Erweiterungen teilen die tägliche Last normalerweise auf die Komponenten auf, je nach BACKGROUND_TASKS.

Repository post-add

Wird ausgelöst, gleich nachdem die neue Übersetzung hinzugefügt und committet wurde.

Repository post-commit

Wird ausgelöst, gleich nachdem die Änderungen committet wurden.

Repository post-push

Wird ausgelöst, gleich nachdem das Repository Upstream gepusht wurde.

Repository post-update

Wird ausgelöst, wenn neue Änderungen aus dem Upstream-Repository gezogen werden.

Repository pre-commit

Wird ausgelöst, kurz bevor die Änderungen committet werden.

Repository pre-push

Wird ausgelöst, kurz bevor das Repository Upstream gepusht wird.

Repository pre-update

Wird ausgelöst, kurz bevor die Aktualisierung des Repositorys versucht wird.

Speicher post-load

Wird ausgelöst, wenn die Datei von Weblate analysiert wird.

Einheit post-save

Wird ausgelöst, gleich nachdem die Zeichenkette gespeichert wurde.

Einheit pre-create

Wird ausgelöst, gleich nachdem die neu erstellte Zeichenkette gespeichert wurde.

Integrierte Erweiterungen

Automatische Übersetzung

Erweiterungs-ID:

weblate.autotranslate.autotranslate

Konfiguration:

mode

Automatischer Übersetzungsmodus

Verfügbare Auswahlmöglichkeiten:

suggest – Als Vorschlag hinzufügen

translate – Als Übersetzung hinzufügen

fuzzy – Als „Bearbeitungsbedürftig“ hinzufügen

filter_type

Suchfilter

Bitte beachten Sie, dass bei der Übersetzung aller Zeichenketten alle vorhandenen Übersetzungen verworfen werden.

Verfügbare Auswahlmöglichkeiten:

a``all`` – Alle Zeichenketten

nottranslated – Nicht übersetzte Zeichenketten

todo – Unvollständige Zeichenketten

fuzzy – Zur Bearbeitung markierte Zeichenketten

check:inconsistent – Prüfung fehlgeschlagen: Inkonsistent

check:translated – Prüfung fehlgeschlagen: Ist übersetzt worden

auto_source

Quelle der automatisierten Übersetzungen

Verfügbare Auswahlmöglichkeiten:

others – Andere Übersetzungskomponenten

mt – Maschinelle Übersetzung

component

Komponente

Geben Sie den Slug einer Komponente ein, die als Ausgangszeichenkette verwendet werden soll. Lassen Sie das Feld leer, um alle Komponenten im aktuellen Projekt zu verwenden.

engines

Maschinelle Übersetzungssysteme

threshold

Schwellenwert

Trigger:

Erweiterungsinstallation, Komponentenaktualisierung, Täglich

Übersetzt automatisch Zeichenketten mithilfe maschineller Übersetzung oder Übersetzungen aus anderen Komponenten.

JavaScript-Lokalisierungs-CDN

Added in version 4.2.

Erweiterungs-ID:

weblate.cdn.cdnjs

Konfiguration:

threshold

Übersetzungsschwelle

Schwellenwert für die Einbindung von Übersetzungen.

css_selector

CSS-Selektor

CSS-Selektor zur Erkennung lokalisierbarer Elemente.

cookie_name

Name des Sprachcookies

Name des Cookies, der die Sprachpräferenz speichert.

files

Zeichenketten aus HTML-Dateien extrahieren

Liste der Dateinamen im aktuellen Repository oder Remote-URLs, die nach übersetzbaren Zeichenketten analysiert werden sollen.

Trigger:

Erweiterungsinstallation, Täglich, Repository post-commit, Repository post-update

Veröffentlicht Übersetzungen in einem Content Delivery-Netzwerk zur Verwendung in der JavaScript- oder HTML-Lokalisierung.

Kann verwendet werden, um statische HTML-Seiten zu übersetzen oder um die Übersetzung in den JavaScript-Code zu laden.

Erzeugt eine eindeutige URL für Ihre Komponente, die Sie in HTML-Seiten einfügen können, um diese zu lokalisieren. Siehe HTML und JavaScript mit Weblate CDN übersetzen für weitere Details.

Bemerkung

Diese Erweiterung erfordert eine zusätzliche Konfiguration auf dem Weblate-Server: LOCALIZE_CDN_PATH konfiguriert, wo die generierten Dateien geschrieben werden (auf einem Dateisystem), und LOCALIZE_CDN_URL definiert, wo sie bereitgestellt werden (URL). Das Bereitstellen der Dateien erfolgt nicht durch Weblate, sondern muss extern eingerichtet werden (normalerweise über einen CDN-Dienst).

Diese Erweiterung wird auf Hosted Weblate konfiguriert und liefert die Dateien über https://weblate-cdn.com/.

Leere Zeichenketten entfernen

Added in version 4.4.

Erweiterungs-ID:

weblate.cleanup.blank

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Repository post-commit, Repository post-update

Entfernt Zeichenketten ohne Übersetzung aus den Übersetzungsdateien.

Verwenden Sie dies, um leere Zeichenketten in Übersetzungsdateien zu vermeiden (z. B. wenn Ihre Lokalisierungsbibliothek sie als fehlend anzeigt, anstatt auf die Ausgangszeichenkette zurückzugreifen).

Übersetzungsdateien bereinigen

Erweiterungs-ID:

weblate.cleanup.generic

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Repository post-update, Repository pre-commit

Aktualisieren Sie alle Übersetzungsdateien so, dass sie mit der einsprachigen Basisdatei übereinstimmen. Für die meisten Dateiformate bedeutet dies, veraltete Übersetzungsschlüssel, die in der Basisdatei nicht mehr vorhanden sind, zu entfernen.

Bei Formaten, die neben Übersetzungszeichenketten zusätzliche Inhalte enthalten (wie HTML-Dateien, Windows-RC-Dateien oder OpenDocument-Format), wird die Übersetzungsdatei mit der Basisdatei synchronisiert.

Fehlende Sprachen hinzufügen

Erweiterungs-ID:

weblate.consistency.languages

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Täglich, Repository post-add

Stellt sicher, dass ein konsistenter Satz von Sprachen für alle Komponenten innerhalb eines Projekts verwendet wird.

Fehlende Sprachen werden alle 24 Stunden überprüft, und wenn neue Sprachen in Weblate hinzugefügt werden.

Im Gegensatz zu den meisten anderen wirkt sich diese Erweiterung auf das gesamte Projekt aus.

Hinweis

Übersetzen Sie automatisch die neu hinzugefügten Zeichenketten mit Automatische Übersetzung.

Komponentenerkennung

Erweiterungs-ID:

weblate.discovery.discovery

Konfiguration:

match

Regulärer Ausdruck zum Abgleich von Übersetzungsdateien

file_format

Dateiformat

name_template

Anpassen des Komponentennamens

base_file_template

Definition des einsprachigen Basisdateinamens

Für zweisprachige Übersetzungsdateien leer lassen.

new_base_template

Definition der Basisdatei für neue Übersetzungen

Dateiname, der zum Anlegen neuer Übersetzungen verwendet wird. Für gettext, .pot-Datei auswählen.

intermediate_template

Zwischensprachedatei

Dateiname der Zwischenübersetzungsdatei. In den meisten Fällen handelt es sich um eine von Entwicklern bereitgestellte Übersetzungsdatei, die beim Erstellen der eigentlichen Ausgangszeichenketten verwendet wird.

language_regex

Sprachenfilter

Regulärer Ausdruck, gegen den die Übersetzungsdateien beim Scannen nach Dateimaske gefiltert wird.

copy_addons

Erweiterungen der Hauptkomponente zu den neu erstellten klonen

remove

Komponenten für nicht vorhandene Dateien entfernen

confirm

Ich bestätige, dass die obigen Übereinstimmungen korrekt aussehen

Trigger:

Erweiterungsinstallation, Repository post-update

Automatisches Hinzufügen oder Entfernen von Projektkomponenten basierend auf den Dateiänderungen in der Versionsverwaltung.

Der Abgleich erfolgt über reguläre Ausdrücke, die eine komplexe Konfiguration ermöglichen, für die jedoch einige Kenntnisse erforderlich sind. Einige Beispiele für häufige Anwendungsfälle finden Sie im Hilfebereich der Erweiterung.

Der reguläre Ausdruck zum Abgleichen von Übersetzungsdateien muss zwei benannte Gruppen enthalten, um Komponente und Sprache abzugleichen. Alle benannten Gruppen im regulären Ausdruck können als Variablen in den Vorlagenfeldern verwendet werden.

Sie können die Auszeichnung von Django-Vorlagen in allen Dateinamenfeldern verwenden, zum Beispiel:

{{ component }}

Übereinstimmung des Dateinamens mit der Komponente

{{ component|title }}

Dateiname der Komponente mit großem Anfangsbuchstaben

{{ path }}: {{ component }}

Benutzerdefinierte Gruppe zum Abgleich des regulären Ausdrucks

Sobald Sie auf Speichern klicken, wird eine Vorschau der passenden Komponenten angezeigt, anhand derer Sie überprüfen können, ob die Konfiguration tatsächlich Ihren Anforderungen entspricht:

../_images/addon-discovery.webp

Beispiele für die Komponentenerkennung

Ein Ordner pro Sprache

Ein Ordner pro Sprache, der Übersetzungsdateien für Komponenten enthält.

Regulärer Ausdruck:

(?P<language>[^/.]*)/(?P<component>[^/]*)\.po

Passende Dateien:
  • cs/application.po

  • cs/website.po

  • de/application.po

  • de/website.po

Gettext-Gebietsschema-Layout

Übliche Struktur zum Speichern von gettext-PO-Dateien.

Regulärer Ausdruck:

locale/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po

Passende Dateien:
  • locale/cs/LC_MESSAGES/application.po

  • locale/cs/LC_MESSAGES/website.po

  • locale/de/LC_MESSAGES/application.po

  • locale/de/LC_MESSAGES/website.po

Komplexe Dateinamen

Verwendung von Komponenten- und Sprachenname innerhalb des Dateinamens.

Regulärer Ausdruck:

src/locale/(?P<component>[^/]*)\.(?P<language>[^/.]*)\.po

Passende Dateien:
  • src/locale/application.cs.po

  • src/locale/website.cs.po

  • src/locale/application.de.po

  • src/locale/website.de.po

Mehrmaliger Sprachcode

Verwendung von Sprache in Pfad und Dateiname.

Regulärer Ausdruck:

locale/(?P<language>[^/.]*)/(?P<component>[^/]*)/(?P=language)\.po

Passende Dateien:
  • locale/cs/application/cs.po

  • locale/cs/website/cs.po

  • locale/de/application/de.po

  • locale/de/website/de.po

Android-Zeichenketten aufteilen

Android-Zeichenketten-Ressourcen, aufgeteilt in mehrere Dateien.

Regulärer Ausdruck:

res/values-(?P<language>[^/.]*)/strings-(?P<component>[^/]*)\.xml

Passende Dateien:
  • res/values-cs/strings-about.xml

  • res/values-cs/strings-help.xml

  • res/values-de/strings-about.xml

  • res/values-de/strings-help.xml

Mehrere Pfade abgleichen

Maven-Projekt mit mehreren Modulen und Übersetzungen von Java-Properties.

Regulärer Ausdruck:

(?P<originalHierarchy>.+/)(?P<component>[^/]*)/src/main/resources/ApplicationResources_(?P<language>[^/.]*)\.properties

Name der Komponente:

{{ originalHierarchy }}: {{ component }}

Passende Dateien:
  • parent/module1/submodule/src/main/resources/ApplicationResources_fr.properties

  • parent/module1/submodule/src/main/resources/ApplicationResource_es.properties

  • parent/module2/src/main/resources/ApplicationResource_de.properties

  • parent/module2/src/main/resources/ApplicationResource_ro.properties

Hinweis

Die Erweiterung zur Komponentenerkennung verwendet Weblate-interne URLs. Dies ist ein bequemer Weg, um die VCS-Einrichtung zwischen mehreren Komponenten zu teilen. Verlinkte Komponenten verwenden das lokale Repository der Hauptkomponente, das durch Eintragen von weblate://project/main-component in das Feld Quellcode-Repository (in VerwaltenEinstellungenVersionsverwaltung) der jeweiligen Komponente eingerichtet wird. Dies spart Zeit bei der Konfiguration und auch Systemressourcen.

Massenbearbeitung

Erweiterungs-ID:

weblate.flags.bulk

Konfiguration:

q

Abfrage

state

Zu setzender Status

Verfügbare Auswahlmöglichkeiten:

-1 – Nicht ändern

10 – Bearbeitungsbedürftig

20 – Übersetzt

30 – Genehmigt

add_flags

Übersetzungsmarkierung zum Hinzufügen

remove_flags

Übersetzungsmarkierung zum Entfernen

add_labels

Labels zum Hinzufügen

remove_labels

Labels zum Entfernen

Trigger:

Erweiterungsinstallation, Komponentenaktualisierung

Massenbearbeitung von Markierungen, Labels oder den Zeichenkettenstatus.

Beispiele:

Neue Zeichenketten automatisch beschriften

Suchanfrage

NOT has:label

Labels zum Hinzufügen

recent

Markieren aller App-Store-Metadatendateien Änderungsprotokoll-Zeichenketten als schreibgeschützt

Suchanfrage

language:en AND key:changelogs/

Übersetzungsmarkierung zum Hinzufügen

read-only

Markieren bestimmter Zeichenketten als schreibgeschützt

Suchanfrage

source:r"^\`\`[.a-zA-Z0-9_-]*\`\`$" AND language:en

Übersetzungsmarkierung zum Hinzufügen

read-only

Unveränderte Übersetzungen als „Bearbeitungsbedürftig“ markieren

Erweiterungs-ID:

weblate.flags.same_edit

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Einheit pre-create

Jedes Mal wenn eine neue übersetzbare Zeichenkette aus dem VCS importiert wird und mit der Ausgangszeichenkette übereinstimmt, wird sie in Weblate als bearbeitungsbedürftig markiert. Dies ist besonders nützlich für Dateiformate, die nicht übersetzte Ausgangszeichenketten enthalten.

Hinweis

Sie können auch die Unveränderte Übersetzung Prüfung verschärfen, indem Sie strict-same zu Übersetzungsmarkierungen hinzufügen.

Siehe auch

Übersetzungsstatus

Neue Ausgangszeichenketten als „Bearbeitungsbedürftig“ markieren

Erweiterungs-ID:

weblate.flags.source_edit

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Einheit pre-create

Bei jedem Import einer neuen Ausgangszeichenkette aus dem VCS wird diese in Weblate als bearbeitungsbedürftig markiert. Auf diese Weise können Sie die von den Entwicklern geschriebenen Ausgangszeichenketten einfach filtern und bearbeiten.

Siehe auch

Übersetzungsstatus

Neue Übersetzungen als „Bearbeitungsbedürftig“ markieren

Erweiterungs-ID:

weblate.flags.target_edit

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Einheit pre-create

Bei jedem Import einer neuen übersetzbaren Zeichenkette aus dem VCS wird diese in Weblate als bearbeitungsbedürftig markiert. Auf diese Weise können Sie die von den Entwicklern erstellten Übersetzungen einfach filtern und bearbeiten.

Siehe auch

Übersetzungsstatus

Schreibgeschützte Zeichenketten mit Ausgangszeichenkette ausfüllen

Added in version 4.18.

Erweiterungs-ID:

weblate.generate.fill_read_only

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Komponentenaktualisierung, Täglich

Füllt die Übersetzung von schreibgeschützten Zeichenketten mit der Ausgangszeichenkette aus.

Statistikgenerator

Erweiterungs-ID:

weblate.generate.generate

Konfiguration:

filename

Name der erzeugten Datei

template

Inhalt der erzeugten Datei

Trigger:

Repository pre-commit

Erzeugt eine Datei mit detaillierten Informationen zum Übersetzungsstatus.

Sie können eine Django-Vorlage sowohl im Dateinamen als auch im Inhalt verwenden, siehe Auszeichnungsvorlage für eine detaillierte Beschreibung der Auszeichnung.

Zum Beispiel das Erzeugen einer Zusammenfassungsdatei für jede Übersetzung:

Name der erzeugten Datei

locale/{{ language_code }}.json

Inhalt
{
   "language": "{{ language_code }}",
   "strings": "{{ stats.all }}",
   "translated": "{{ stats.translated }}",
   "last_changed": "{{ stats.last_changed }}",
   "last_author": "{{ stats.last_author }}",
}

Übersetzung mit Ausgangszeichenkette ausfüllen

Added in version 4.11.

Erweiterungs-ID:

weblate.generate.prefill

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Komponentenaktualisierung, Täglich

Füllt Übersetzungszeichenketten mit der Ausgangszeichenkette aus.

Alle nicht übersetzten Zeichenketten in der Komponente werden mit der Ausgangszeichenkette gefüllt und als bearbeitungsbedürftig markiert. Verwenden Sie dies, wenn in den Übersetzungsdateien keine leeren Zeichenketten enthalten sein dürfen.

Erzeugung von Pseudolokalen

Added in version 4.5.

Erweiterungs-ID:

weblate.generate.pseudolocale

Konfiguration:

source

Ausgangszeichenketten

target

Zielübersetzung

Alle Zeichenketten in dieser Übersetzung werden überschrieben

prefix

Festes Zeichenkettenpräfix

var_prefix

Variables Zeichenkettenpräfix

suffix

Festes Zeichenkettensuffix

var_suffix

Variables Zeichenkettensuffix

var_multiplier

Variabler Teilemultiplikator

Wie oft der variable Teil wiederholt werden soll, hängt von der Länge der Ausgangszeichenkette ab.

include_readonly

Schreibgeschützte Zeichenketten einschließen

Trigger:

Erweiterungsinstallation, Komponentenaktualisierung, Täglich

Erzeugt eine Übersetzung durch automatisches Hinzufügen von Präfix und Suffix zu Ausgangszeichenketten.

Pseudolokalisierungen sind nützlich, um Zeichenketten zu finden, die nicht für die Lokalisierung vorbereitet sind. Dazu werden alle übersetzbaren Ausgangszeichenketten geändert, so dass es einfach ist, unveränderte Zeichenketten zu erkennen, wenn die Anwendung in der Pseudolokalsprache ausgeführt wird.

Es ist auch möglich, Zeichenketten zu finden, deren lokalisierte Entsprechungen nicht in das Layout passen.

Die Verwendung der variablen Teile ermöglicht es, nach Zeichenketten zu suchen, die nach der Lokalisierung möglicherweise nicht in die Bedienoberfläche passen – sie erweitert den Text auf der Grundlage der Länge der Ausgangszeichenkette. Die variablen Teile werden um die Länge des Textes multipliziert mit dem Multiplikator wiederholt. Zum Beispiel wird Hello world mit dem variablen Suffix _ und dem variablen Multiplikator von 1 zu Hello world___________ – das Suffix wird für jedes Zeichen in der Ausgangszeichenkette einmal wiederholt.

Die Zeichenketten werden nach folgendem Muster erzeugt:

Festes Zeichenkettenpräfix Variables Zeichenkettenpräfix Ausgangszeichenkette Variables Zeichenkettensuffix Festes Zeichenkettensuffix

Hinweis

Sie können echte Sprachen zum Testen verwenden, aber in Weblate gibt es speziell dafür vorgesehene Pseudolokalisierungen – en_XA und ar_XB.

Hinweis

Sie können diese Erweiterung verwenden, um die Übersetzung in ein neues Gebietsschema einer bestehenden oder ähnlichen Sprache zu starten. Sobald Sie die Übersetzung zur Komponente hinzugefügt haben, folgen Sie der Erweiterung. Beispiel: Wenn Sie fr haben und die Übersetzung fr_CA starten möchten, setzen Sie einfach fr als Quelle, fr_CA als Ziel und lassen Sie das Präfix und Suffix leer.

Deinstallieren Sie die Erweiterung, sobald Sie die neue Übersetzung ausgefüllt haben, um zu verhindern, dass Weblate die nach dem Kopieren erstellten Übersetzungen verändert.

Mitwirkende im Kommentar

Erweiterungs-ID:

weblate.gettext.authors

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Repository pre-commit

Aktualisiert den Kommentarteil im Header der PO-Datei, um den Namen des Mitwirkenden und das Datum des Beitrags aufzunehmen.

Der Header der PO-Datei wird wie folgt aussehen:

# Michal Čihař <michal@weblate.org>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.

Aktualisieren Sie die Variable ALL_LINGUAS in der „configure“-Datei

Erweiterungs-ID:

weblate.gettext.configure

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Täglich, Repository post-add

Aktualisiert die ALL_LINGUAS-Variable in configure, configure.in oder einer configure.ac-Datei, wenn eine neue Übersetzung hinzugefügt wird.

Ausgabe von gettext anpassen

Erweiterungs-ID:

weblate.gettext.customize

Konfiguration:

width

Umbruch langer Zeilen

Standardmäßig bricht gettext Zeilen mit 77 Zeichen und bei Zeilenvorschüben um. Mit dem Parameter –no-wrap wird der Umbruch nur bei Zeilenvorschub durchgeführt.

Verfügbare Auswahlmöglichkeiten:

77 – Zeilenumbruch nach 77 Zeichen und bei Zeilenumbrüchen (xgettext-Standard)

65535 – Zeilenumbruch nur bei Zeilenumbrüchen (wie „xgettext –no-wrap“)

-1 – Kein Zeilenumbruch

Trigger:

Speicher post-load

Ermöglicht die Anpassung des Ausgabeverhaltens von gettext, z. B. Zeilenumbrüche.

Es bietet die folgenden Optionen:

  • Zeilenumbruch nach 77 Zeichen und bei Zeilenumbrüchen

  • Zeilenumbruch nur nach Zeilenvorschüben

  • Kein Umbruch langer Zeilen

Bemerkung

Standardmäßig bricht gettext Zeilen bei 77 Zeichen und bei Zeilenvorschüben um. Mit dem Parameter --no-wrap wird der Umbruch nur bei Zeilenvorschüben durchgeführt.

LINGUAS-Datei aktualisieren

Erweiterungs-ID:

weblate.gettext.linguas

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Täglich, Repository post-add

Aktualisiert die LINGUAS-Datei, wenn eine neue Übersetzung hinzugefügt wird.

MO-Dateien erzeugen

Erweiterungs-ID:

weblate.gettext.mo

Konfiguration:

path

Pfad der erzeugten MO-Datei

Wenn nicht angegeben, wird der Ort der PO-Datei verwendet.

fuzzy

Bearbeitungsbedürftige Zeichenketten einschließen

Bearbeitungsbedürftige (ungenaue) Zeichenketten sind normalerweise nicht für Übersetzungen geeignet.

Trigger:

Repository pre-commit

Erzeugt automatisch eine MO-Datei für jede geänderte PO-Datei.

Der Speicherort der erzeugten MO-Datei kann angepasst werden, und das Feld dafür verwendet Auszeichnungsvorlage.

Bemerkung

Wenn eine Übersetzung entfernt wird, wird die zugehörige PO-Datei aus dem Repository gelöscht, nicht aber die von dieser Erweiterung erzeugte MO-Datei. Die MO-Datei muss manuell aus dem Upstream entfernt werden.

PO-Dateien auf POT aktualisieren (msgmerge)

Erweiterungs-ID:

weblate.gettext.msgmerge

Konfiguration:

previous

Frühere msgids der übersetzten Zeichenketten beibehalten

no_location

Speicherorte der übersetzten Zeichenketten entfernen

fuzzy

Fuzzy-Matching verwenden

Trigger:

Erweiterungsinstallation, Repository post-update

Aktualisiert alle PO-Dateien (wie durch Dateimaske konfiguriert), damit sie mit der POT-Datei (wie durch Vorlage für neue Übersetzungen konfiguriert) übereinstimmen, unter Verwendung von msgmerge.

Die meisten msgmerge-Befehlszeilenoptionen können über die Konfiguration der Erweiterung eingerichtet werden.

Git-Commits zusammenfassen

Erweiterungs-ID:

weblate.git.squash

Konfiguration:

squash

Commits zusammenfassen

Verfügbare Auswahlmöglichkeiten:

all – Alle Commits in einem

language – Pro Sprache

file – Pro Datei

author – Pro Autor

append_trailers

Endzeilen der zusammengefassten Commit-Nachricht hinzufügen

Die Endzeilen ähneln RFC-822-E-Mail-Headern, am Ende eines ansonsten freien Teils der Commit-Nachricht, z. B. „Mitverfasst von: …“.

commit_message

Commit-Nachricht

Diese Commit-Nachricht wird anstelle der zusammengefassten Commit-Nachrichten verwendet.

Trigger:

Erweiterungsinstallation, Repository post-commit

Git-Commits vor dem Pushen der Änderungen zusammenfassen.

Git-Commits können vor dem Pushen von Änderungen in einem der folgenden Modi zusammengefasst werden:

  • Alle Commits in einen

  • Pro Sprache

  • Pro Datei

  • Pro Übersetzer

Ursprüngliche Commit-Nachrichten werden erhalten, verlieren aber die Urheberschaft, es sei denn Pro Autor wird ausgewählt oder die Commit-Nachricht wird angepasst, um sie einzubeziehen.

Die ursprünglichen Commit-Nachrichten können optional mit einer eigenen Commit-Nachricht überschrieben werden.

Endzeilen (Commit-Zeilen wie Co-authored-by: ) können optional aus den ursprünglichen Commit-Nachrichten entfernt und an das Ende der zusammengefassten Commit-Nachricht angehängt werden. Dies erzeugt auch eine angemessene Co-authored-by:-Anerkennung für jeden Übersetzer.

Ausgabe von JSON anpassen

Erweiterungs-ID:

weblate.json.customize

Konfiguration:

sort_keys

Nach JSON-Schlüssel sortieren

indent

JSON-Einrückung

style

JSON-Einrückungsstil

Verfügbare Auswahlmöglichkeiten:

spaces – Leerzeichen

tabs – Tabulatoren

Trigger:

Speicher post-load

Ermöglicht die Anpassung des JSON-Ausgabeverhaltens, z. B. Einrückung und Sortierung.

Die Java-Properties-Datei formatieren

Erweiterungs-ID:

weblate.properties.sort

Konfiguration:

case_sensitive

Sortierung nach Groß- und Kleinschreibung aktivieren

Trigger:

Repository pre-commit

Formatiert und sortiert die Java-Properties-Datei.

  • Konsolidiert Zeilenumbrüche zu Unix-Zeilenumbrüchen.

  • Formatiert Unicode-Escape-Zeichenfolgen in Großbuchstaben (falls vorhanden).

  • Entfernt leere Zeilen und Kommentare.

  • Sortiert die Zeichenketten nach Schlüsselworten.

  • Bereinigt doppelte Zeichenketten.

Veralteten Kommentar entfernen

Erweiterungs-ID:

weblate.removal.comments

Konfiguration:

age

Tage aufzubewahren

Trigger:

Erweiterungsinstallation, Täglich

Legen Sie einen Zeitrahmen für die Entfernung von Kommentaren fest.

Dies kann nützlich sein, um alte Kommentare zu entfernen, die möglicherweise nicht mehr aktuell sind. Seien Sie vorsichtig, denn wenn Kommentare alt werden, bedeutet das nicht, dass sie ihre Bedeutung verloren haben.

Entfernen von veraltetem Vorschlag

Erweiterungs-ID:

weblate.removal.suggestions

Konfiguration:

age

Tage aufzubewahren

votes

Abstimmungsschwelle

Schwellenwert für die Entfernung. Dieses Feld hat keine Auswirkungen, wenn die Abstimmung deaktiviert ist.

Trigger:

Erweiterungsinstallation, Täglich

Legen Sie einen Zeitrahmen für die Entfernung von Vorschlägen fest.

Kann im Zusammenhang mit Übersetzungsvorschlägen (siehe Peer-Review) sehr nützlich sein, um Vorschläge zu entfernen, die innerhalb eines bestimmten Zeitraums nicht genügend positive Stimmen erhalten haben.

RESX-Dateien aktualisieren

Erweiterungs-ID:

weblate.resx.update

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Erweiterungsinstallation, Repository post-update

Aktualisieren Sie alle Übersetzungsdateien entsprechend der einsprachigen Upstream-Basisdatei. Nicht verwendete Zeichenketten werden entfernt und neue Zeichenketten werden als Kopien der Ausgangszeichenkette hinzugefügt.

Hinweis

Verwenden Sie Übersetzungsdateien bereinigen, wenn Sie nur veraltete Übersetzungsschlüssel entfernen möchten.

XML-Ausgabe anpassen

Added in version 4.15.

Erweiterungs-ID:

weblate.xml.customize

Konfiguration:

closing_tags

Schließendes Tag für leere XML-Tags einschließen

Trigger:

Speicher post-load

Ermöglicht die Anpassung des XML-Ausgabeverhaltens, z. B. das Schließen von Tags.

YAML-Ausgabe anpassen

Erweiterungs-ID:

weblate.yaml.customize

Konfiguration:

indent

YAML Einrückung

width

Umbruch langer Zeilen

Verfügbare Auswahlmöglichkeiten:

80 – Zeilenumbruch bei 80 Zeichen

100 – Zeilenumbruch bei 100 Zeichen

120 – Zeilenumbruch bei 120 Zeichen

180 – Zeilenumbruch bei 180 Zeichen

65535 – Kein Zeilenumbruch

line_break

Zeilenumbrüche

Verfügbare Auswahlmöglichkeiten:

dos – DOS (\r\n)

unix – UNIX (\n)

mac – MAC (\r)

Trigger:

Speicher post-load

Ermöglicht die Anpassung des YAML-Ausgabeverhaltens, z. B. Zeilenlänge oder Zeilenvorschübe.

Liste der Erweiterungen anpassen

Die Liste der Erweiterungen wird durch WEBLATE_ADDONS konfiguriert. Um ein weitere Erweiterung hinzuzufügen, geben Sie einfach den absoluten Klassennamen in dieser Einstellung an.

Schreiben einer Erweiterung

Sie können auch Ihre eigenen Erweiterungen schreiben, eine Unterklasse von weblate.addons.base.BaseAddon erstellen, um die Metadaten der Erweiterung zu definieren, und dann einen Callback implementieren, um die Verarbeitung durchzuführen.

Ausführen von Skripten der Erweiterung

Erweiterungen können auch verwendet werden, um externe Skripte auszuführen. Früher war dies in Weblate integriert, aber jetzt müssen Sie etwas Code schreiben, um Ihr Skript mit einer Erweiterung zu umschließen.

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Example pre commit script."""

from django.utils.translation import gettext_lazy

from weblate.addons.events import AddonEvent
from weblate.addons.scripts import BaseScriptAddon


class ExamplePreAddon(BaseScriptAddon):
    # Event used to trigger the script
    events: set[AddonEvent] = {
        AddonEvent.EVENT_PRE_COMMIT,
    }
    # Name of the addon, has to be unique
    name = "weblate.example.pre"
    # Verbose name and long description
    verbose = gettext_lazy("Execute script before commit")
    description = gettext_lazy("This add-on executes a script.")

    # Script to execute
    script = "/bin/true"
    # File to add in commit (for pre commit event)
    # does not have to be set
    add_file = "po/{{ language_code }}.po"

Für Installationsanweisungen siehe Benutzerdefinierte Qualitätsprüfungen, Erweiterungen und automatische Korrekturen.

Das Skript wird ausgeführt, wobei das aktuelle Verzeichnis auf das Stammverzeichnis des VCS-Repositorys für eine beliebige Komponente gesetzt wird.

Zusätzlich sind die folgenden Umgebungsvariablen verfügbar:

WL_VCS

Versionsverwaltung verwendet.

WL_REPO

URL des Upstream-Repositorys.

WL_PATH

Absoluter Pfad zum VCS-Repository.

WL_BRANCH

In der aktuellen Komponente konfigurierter Repository-Branch.

WL_FILEMASK

Dateimaske für die aktuelle Komponente.

WL_TEMPLATE

Dateiname der Vorlage für einsprachige Übersetzungen (kann leer sein).

WL_NEW_BASE

Dateiname der Datei, die für die Erstellung neuer Übersetzungen verwendet wird (kann leer sein).

WL_FILE_FORMAT

In der aktuellen Komponente verwendetes Dateiformat.

WL_LANGUAGE

Sprache der aktuell bearbeiteten Übersetzung (nicht verfügbar für Hooks auf Komponentenebene).

WL_PREVIOUS_HEAD

Vorheriger HEAD nach der Aktualisierung (nur verfügbar nach Ausführung des Post-Update-Hooks).

WL_COMPONENT_SLUG

Komponenten-Slug, der zum Aufbau der URL verwendet wird.

WL_PROJECT_SLUG

Projekt-Slug, der zum Aufbau der URL verwendet wird.

WL_COMPONENT_NAME

Name der Komponente.

WL_PROJECT_NAME

Projektname.

WL_COMPONENT_URL

URL der Komponente.

WL_ENGAGE_URL

URL des beteiligten Projekts.

Repository-Verarbeitung nach Aktualisierung

Kann verwendet werden, um Übersetzungsdateien zu aktualisieren, wenn sich der Upstream-Quellcode des VCS ändert. Um dies zu erreichen, denken Sie bitte daran, dass Weblate nur Dateien sieht, die an das VCS committet wurden, sodass Sie die Änderungen als Teil des Skripts committen müssen.

Zum Beispiel mit Gulp können Sie es mit folgendem Code machen:

#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json

Verarbeitung von Übersetzungen vor dem Commit

Verwenden Sie das Commit-Skript, um eine Übersetzung automatisch zu ändern, bevor sie in das Repository committet wird.

Sie wird als einzelner Parameter übergeben, der aus dem Dateinamen der aktuellen Übersetzung besteht.

Aktivitätsprotokollierung für Erweiterungen

Das Aktivitätsprotokoll der Erweiterungen verfolgt das Ausführen der Erweiterungen und kann verwendet werden, um die Aktivitäten der Erweiterungen nachzuvollziehen.

Die Protokolle können nach einem bestimmten Zeitintervall gelöscht werden, indem ADDON_ACTIVITY_LOG_EXPIRY konfiguriert wird.