Erweiterungen¶
Erweiterungen bieten die Möglichkeit, den Ablauf der Übersetzung anzupassen und zu automatisieren. Administratoren können Erweiterungen über das Menü Verwaltung ↓ Erweiterungen 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.
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ügentranslate
– Als Übersetzung hinzufügenfuzzy
– Als „Bearbeitungsbedürftig“ hinzufügenfilter_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 Zeichenkettentodo
– Unvollständige Zeichenkettenfuzzy
– Zur Bearbeitung markierte Zeichenkettencheck:inconsistent
– Prüfung fehlgeschlagen: Inkonsistentcheck:translated
– Prüfung fehlgeschlagen: Ist übersetzt wordenauto_source
Quelle der automatisierten Übersetzungen
Verfügbare Auswahlmöglichkeiten:
others
– Andere Übersetzungskomponentenmt
– Maschinelle Übersetzungcomponent
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:
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:
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:
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 Verwalten ↓ Einstellungen ↓ Versionsverwaltung) der jeweiligen Komponente eingerichtet wird. Dies spart Zeit bei der Konfiguration und auch Systemressourcen.
Siehe auch
Massenbearbeitung¶
- Erweiterungs-ID:
weblate.flags.bulk
- Konfiguration:
q
Abfrage
state
Zu setzender Status
Verfügbare Auswahlmöglichkeiten:
-1
– Nicht ändern10
– Bearbeitungsbedürftig20
– Übersetzt30
– Genehmigtadd_flags
Übersetzungsmarkierung zum Hinzufügen
remove_flags
Übersetzungsmarkierung zum Entfernen
add_labels
Labels zum Hinzufügen
remove_labels
Labels zum Entfernen
- Trigger:
Massenbearbeitung von Markierungen, Labels oder den Zeichenkettenstatus.
Beispiele:
Suchanfrage |
|
---|---|
Labels zum Hinzufügen |
recent |
Suchanfrage |
|
---|---|
Übersetzungsmarkierung zum Hinzufügen |
|
Suchanfrage |
|
---|---|
Übersetzungsmarkierung zum Hinzufügen |
|
Unveränderte Übersetzungen als „Bearbeitungsbedürftig“ markieren¶
- Erweiterungs-ID:
weblate.flags.same_edit
- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
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
Neue Ausgangszeichenketten als „Bearbeitungsbedürftig“ markieren¶
- Erweiterungs-ID:
weblate.flags.source_edit
- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
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
Neue Übersetzungen als „Bearbeitungsbedürftig“ markieren¶
- Erweiterungs-ID:
weblate.flags.target_edit
- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
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
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:
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 }}", }
Siehe auch
Ü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:
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:
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:
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:
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:
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:
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 einemlanguage
– Pro Sprachefile
– Pro Dateiauthor
– Pro Autorappend_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:
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
– Leerzeichentabs
– Tabulatoren- Trigger:
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:
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:
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:
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:
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:
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 Zeichen100
– Zeilenumbruch bei 100 Zeichen120
– Zeilenumbruch bei 120 Zeichen180
– Zeilenumbruch bei 180 Zeichen65535
– Kein Zeilenumbruchline_break
Zeilenumbrüche
Verfügbare Auswahlmöglichkeiten:
dos
– DOS (\r\n)unix
– UNIX (\n)mac
– MAC (\r)- Trigger:
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.
Siehe auch
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.
Siehe auch
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.