Erweiterungen¶
Erweiterungen bieten die Möglichkeit, den Ablauf der Übersetzung anzupassen und zu automatisieren. Administratoren können Erweiterungen über das Menü Operationen ↓ 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.
Erweiterungen, bei denen die manuelle Auslösung aktiviert ist, können über die Erweiterungsverwaltung oder mithilfe der API ausgeführt werden. Die Ergebnisse werden im Aktivitätsprotokoll der Erweiterung aufgezeichnet.
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.
Ereignisänderung¶
Wird ausgelöst, nachdem ein Änderungsereignis erstellt wurde.
Manueller Trigger¶
Wird ausgelöst, wenn eine Erweiterung manuell über die Erweiterungsverwaltung oder API ausgeführt wird.
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-remove¶
Wird ausgelöst, gleich nachdem eine Übersetzung entfernt 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.
Einheit post-save¶
Wird ausgelöst, gleich nachdem die Zeichenkette gespeichert wurde.
Einheit post-sync¶
Wird ausgelöst, nachdem die Zeichenkette mit dem VCS synchronisiert 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:
modeAutomatischer Übersetzungsmodus
Verfügbare Auswahlmöglichkeiten:¶ suggestAls Vorschlag hinzufügen
translateAls Übersetzung hinzufügen
fuzzyHinzufügen als „Bearbeitungsbedürftig“
qAbfrage
Bitte beachten, dass bei der Übersetzung aller Zeichenketten alle vorhandenen Übersetzungen verworfen werden.
auto_sourceQuelle der automatisierten Übersetzungen
Verfügbare Auswahlmöglichkeiten:¶ othersAndere Übersetzungskomponenten
mtMaschinelle Übersetzung
componentKomponente
Den Slug einer Komponente eingeben, die als Ausgangszeichenkette verwendet werden soll. Das Feld leer lassen, um alle Komponenten im aktuellen Projekt zu verwenden.
enginesMaschinelle Übersetzungssysteme
thresholdSchwellenwert
- Trigger:
Erweiterungsinstallation, Komponentenaktualisierung, Täglich, Ereignisänderung
Ü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
Der Prozentsatz der vorhandenden übersetzten Zeichenketten, damit die Übersetzung berücksichtigt wird.
css_selectorCSS-Selektor
CSS-Selektor zur Erkennung lokalisierbarer Elemente.
cookie_nameName des Sprachcookies
Name des Cookies, der die Sprachpräferenz speichert.
filesZeichenketten 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-remove, 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/.
Translation files CDN¶
Added in version 2026.5.
- Erweiterungs-ID:
weblate.cdn.files- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
Erweiterungsinstallation, Komponentenaktualisierung, Repository post-commit, Repository post-remove, Repository post-update
Publishes translation files into a content delivery network.
Publishes translation files without converting them to another format. Files
are written below the add-on specific CDN directory and served from
LOCALIZE_CDN_URL/<add-on UUID>/. Single-file translations use the language
code and original file extension, for example cs.json or de.po.
Multi-file translations are served below the language code using paths relative
to the translation directory. Monolingual components include the source
language file, while bilingual components publish only target-language files.
See Lokalisierungs-CDN for secure serving guidance.
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.
Bemerkung
Die von anderen Projekten gemeinsam genutzten Komponenten werden dabei nicht berücksichtigt.
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:
matchRegulärer Ausdruck zum Abgleich von Übersetzungsdateien
Der reguläre Ausdruck muss benannte Gruppen für Komponente und Sprache definieren.
file_formatDateiformat
name_templateAnpassen des Komponentennamens
Verwenden Sie die Syntax der Django-Vorlage. Diese Vorlage muss {{ component }} enthalten.
base_file_templateDefinition des einsprachigen Basisdateinamens
Für zweisprachige Übersetzungsdateien leer lassen. Wenn gesetzt, muss diese Vorlage {{ component }} enthalten.
new_base_templateDefinition der Basisdatei für neue Übersetzungen
Dateiname der Datei, mit der neue Übersetzungen erstellt werden. Für gettext .pot-Datei auswählen. Diese Vorlage muss {{ component }} enthalten.
intermediate_templateZwischensprachedatei
Dateiname der Zwischenübersetzungsdatei. In den meisten Fällen handelt es sich dabei um eine von den Entwicklern bereitgestellte Übersetzungsdatei, die beim Erstellen der eigentlichen Ausgangszeichenketten verwendet wird. Diese Vorlage muss {{ component }} enthalten.
language_regexSprachfilter
Regulärer Ausdruck, gegen den die Übersetzungsdateien beim Scannen nach Dateimaske gefiltert wird.
copy_addonsErweiterungen der Hauptkomponente zu den neu erstellten klonen
removeKomponenten für nicht vorhandene Dateien entfernen
- 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. Der reguläre Ausdruck für den Abgleich 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.
Erkennungsanforderungen¶
To discover a component successfully, the configuration has to do all of the following:
The regular expression must define
componentandlanguagenamed groups.Template fields used to name or locate per-component files must include
{{ component }}, so the rendered value actually changes for each discovered component.For monolingual formats, the component must contain a file matching
base_file_templateand at least one translation file matchingmatch.
Funktionsbeispiel: news_<lang>.md¶
This is a common filename-based language variant layout:
docs/news_en.mddocs/news_cs.mddocs/guide_en.md
Use the Filename-based language variants preset for a starting point, then choose the matching file format and review the populated values.
- Regulärer Ausdruck:
(?:(?P<path>.*/))?(?P<component>.+?)_(?P<language>[A-Za-z]{2,3}(?:[_-][A-Za-z0-9]+)*)\.(?P<extension>[^/.]+)- Komponentenname:
{{ component }}- Erkannte Dateimasken:
docs/news_*.mddocs/guide_*.md
In this example, {{ component }} resolves to the basename before the language
suffix, so docs/news_en.md, docs/news_pt_BR.md, and
docs/news_pt-BR.md all become the news component.
Sie können die Auszeichnung von Django-Vorlagen in allen Dateinamenfeldern verwenden, zum Beispiel:
{{ component }}Component name parsed from the
componentmatch group{{ 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¶
The worked example above covers the most common filename-based variant layout. The following examples show other repository structures you can match.
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.pocs/website.pode/application.pode/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.polocale/cs/LC_MESSAGES/website.polocale/de/LC_MESSAGES/application.polocale/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.posrc/locale/website.cs.posrc/locale/application.de.posrc/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.polocale/cs/website/cs.polocale/de/application/de.polocale/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.xmlres/values-cs/strings-help.xmlres/values-de/strings-about.xmlres/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- Komponentenname:
{{ originalHierarchy }}: {{ component }}- Passende Dateien:
parent/module1/submodule/src/main/resources/ApplicationResources_fr.propertiesparent/module1/submodule/src/main/resources/ApplicationResource_es.propertiesparent/module2/src/main/resources/ApplicationResource_de.propertiesparent/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 Operationen ↓ Einstellungen ↓ Versionsverwaltung) der jeweiligen Komponente eingerichtet wird. Dies spart Zeit bei der Konfiguration und auch Systemressourcen.
Hinweis
Stellen Sie mit Fehlende Sprachen hinzufügen sicher, dass die neue Komponente den vollständigen Satz übersetzbarer Sprachen enthält.
Siehe auch
Fedora Messaging¶
Added in version 5.15.
- Erweiterungs-ID:
weblate.fedora_messaging.publish- Konfiguration:
eventsÄnderungsereignisse
amqp_hostAMQP-Broker-Host
Der AMQP-Broker, mit dem eine Verbindung hergestellt werden soll.
amqp_sslSSL für AMQP-Verbindung verwenden
ca_certCA-Zertifikate
Bündel von PEM-kodierten CA-Zertifikaten, die zum Validieren des vom Server vorgelegten Zertifikats verwendet werden.
client_keyClient-SSL-Schlüssel
PEM-kodierter privater SSL-Schlüssel des Clients.
client_certClient-SSL-Zertifikate
PEM-kodiertes SSL-Zertifikat des Clients.
- Trigger:
Sendet Benachrichtigungen an einen Fedora Messaging kompatiblen AMQP-Exchange.
Fedora Messaging ist ein AMQP-basierter Publisher für alle Änderungen, die in Weblate stattfinden. Damit können Sie zusätzliche Dienste mit Weblate-Änderungen verbinden.
Nachrichtenthema¶
Alle Nachrichten haben das Thema weblate.<action>.<project>.<component>.<translation>. Die Aktion ist eine Textdarstellung in Kleinbuchstaben mit Unterstrichen anstelle von Leerzeichen, zum Beispiel resource_update, alle anderen Teile sind optional und stellen den Slug des Objekts oder einen Sprachcode dar.
Nachrichtenkörper¶
Der Textkörper besteht aus den folgenden Feldern (sofern sie für das Ereignis verfügbar sind):
change_idNumerische ID der Änderung
actionAusführlicher Name der Änderung.
timestampISO-formatierter Zeitstempel
targetNeuer Wert der Änderung (z. B. neue Übersetzung der Zeichenkette)
oldAlter Wert der Änderung (z. B. vorherige Übersetzung der Zeichenkette)
sourceAusgangszeichenkette.
urlAbsolute URL zur Anzeige des zugehörigen Objekts.
authorAutor-Benutzername (dieser kann sich von dem des Benutzers unterscheiden, z. B. bei der Annahme von Vorschlägen)
userHandelnder Benutzername
projectProjekt-Slug
componentKomponenten-Slug
translationSprachcode der Übersetzung
Nachrichtenheader¶
Es gibt weitere Header, die Sie ebenfalls für das Routing verwenden können:
actionAusführlicher Name der Änderung.
projectProjekt-Slug
componentKomponenten-Slug
Beispielnachrichten¶
Ereignis „Repository zusammengeführt“:
{
"id": 1,
"action": "Merged repository",
"timestamp": "2017-06-15T11:30:47.325000+00:00",
"url": "http://example.com/projects/test/test/",
"component": "test"
}
Ereignis „Neue Ausgangszeichenkette“:
{
"id": 2,
"action": "New source string",
"timestamp": "2017-06-15T11:30:47.372000+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Ereignis „Ressource aktualisiert“:
{
"id": 6,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.410000+00:00",
"url": "http://example.com/projects/test/test/cs/",
"project": "test",
"component": "test",
"translation": "cs"
}
{
"id": 7,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.510000+00:00",
"url": "http://example.com/projects/test/test/de/",
"project": "test",
"component": "test",
"translation": "de"
}
{
"id": 8,
"action": "Resource update",
"timestamp": "2017-06-15T11:30:47.595000+00:00",
"url": "http://example.com/projects/test/test/it/",
"project": "test",
"component": "test",
"translation": "it"
}
Ereignis „Projekt entfernt“:
{
"id": 9,
"action": "Removed project",
"timestamp": "2019-10-17T15:57:08.559420+00:00",
"target": "test",
"user": "testuser"
}
Ereignis „Neuer Mitwirkender“:
{
"id": 11,
"action": "New contributor",
"timestamp": "2019-10-17T15:57:08.759960+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Ereignis „Neue Übersetzung“:
{
"id": 12,
"action": "New translation",
"timestamp": "2019-10-17T15:57:08.772591+00:00",
"url": "http://example.com/translate/test/test/cs/?checksum=6412684aaf018e8e",
"target": ["Ahoj svete!\n"],
"author": "testuser",
"user": "testuser",
"project": "test",
"component": "test",
"translation": "cs",
"source": ["Hello, world!\n"]
}
Siehe auch
Massenbearbeitung¶
- Erweiterungs-ID:
weblate.flags.bulk- Konfiguration:
qAbfrage
stateZu setzender Status
Verfügbare Auswahlmöglichkeiten:¶ -1Nicht ändern
10Bearbeitungsbedürftig
11Bearbeitungsbedürftig (Muss umgeschrieben werden)
12Bearbeitungsbedürftig (Muss überprüft werden)
20Übersetzt
30Genehmigt
add_flagsÜbersetzungsmarkierung zum Hinzufügen
remove_flagsÜbersetzungsmarkierung zum Entfernen
add_labelsLabels zum Hinzufügen
remove_labelsLabels 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 „Muss umgeschrieben werden“ 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 umzuschreibend 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 „Muss überprüft werden“ 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 zu überprüfend markiert. Auf diese Weise können Sie die von den Entwicklern geschriebenen Ausgangszeichenketten einfach filtern und bearbeiten.
Siehe auch
Neue Übersetzungen als „Muss umgeschrieben werden“ 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 umzuschreibend markiert. Auf diese Weise können Sie die von den Entwicklern erstellten Übersetzungen einfach filtern und bearbeiten.
Siehe auch
Aktualisierte Übersetzungen vom Repository als „Muss umgeschrieben werden“ markieren¶
- Erweiterungs-ID:
weblate.flags.target_repo_update- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
Immer wenn eine Zeichenketten-Übersetzung aus dem VCS geändert wird, wird sie als umzuschreibend in Weblate markiert. Besonders nützlich, wenn Übersetzungsdateien häufig manuell oder durch einen externen Dienst aktualisiert werden.
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:
filenameName der erzeugten Datei
templateInhalt 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.
All untranslated strings in the component will be filled with the source string, and marked as needing edit. Use this when you can not have empty strings in the translation files. .. AUTOGENERATED START: weblate.generate.pseudolocale .. This section is automatically generated by ./manage.py list_addons. Do not edit manually.
Pseudolokale erzeugen¶
Added in version 4.5.
- Erweiterungs-ID:
weblate.generate.pseudolocale- Konfiguration:
sourceAusgangszeichenketten
targetZielübersetzung
Alle Zeichenketten in dieser Übersetzung werden überschrieben
prefixVorangestellter statischer Text
var_prefixVorangestellter variabler Text
suffixAngehängter statischer Text
var_suffixAngehängter variabler Text
var_multiplierVariabler Textmultiplikator
Wie oft der variable Text, je nach Länge der Ausgangszeichenkette, wiederholt werden soll.
include_readonlySchreibgeschü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.
Das Verwenden der variablen Teile ermöglicht es, nach Zeichenketten zu suchen, die nach der Lokalisierung möglicherweise nicht in die Bedienoberfläche passen – der Text wird auf der Grundlage der Länge der Ausgangszeichenkette erweitert. Die variablen Texte werden um die Länge des Textes multipliziert mit dem Multiplikator wiederholt. Zum Beispiel wird Hello world mit dem variablen Text _ und dem variablen Multiplikator von 1 zu Hello world___________ – der Text wird für jedes Zeichen in der Ausgangszeichenkette einmal wiederholt.
Die Zeichenketten werden nach folgendem Muster erzeugt:
Vorangestellter statischer Text Vorangestellter variabler Text Ausgangszeichenkette Angehängter variabler Text Angehängter statischer Text
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.
ALL_LINGUAS-Variable in der Datei „configure“aktualisieren¶
- Erweiterungs-ID:
weblate.gettext.configure- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
Erweiterungsinstallation, Täglich, Repository post-add, Repository post-remove
Aktualisiert die Variable ALL_LINGUAS in „configure“, „configure.in“ oder „configure.ac“-Dateien, wenn eine Übersetzung hinzugefügt oder entfernt wird.
Aktualisiert die ALL_LINGUAS-Variable in configure, configure.in oder einer configure.ac-Datei, wenn eine Übersetzung hinzugefügt oder entfernt wird.
gettext-Ausgabe anpassen¶
Removed in version 5.13: Ersetzt durch Dateiformat-Parameter.
Update gettext template (Django)¶
Added in version 5.17.
- Erweiterungs-ID:
weblate.gettext.django- Konfiguration:
intervalAktualisierungshäufigkeit
Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.
Verfügbare Auswahlmöglichkeiten:¶ dailyTäglich
weeklyWöchentlich
monthlyMonatlich
normalize_headerPOT-Header normalisieren
Aktualisiert gettext-Header und ersetzt Platzhalter für POT-Kommentare.
- Trigger:
Erweiterungsinstallation, Manueller Trigger, Repository post-update
Aktualisiert die gettext-Vorlage mithilfe des in Django integrierten makemessages-Befehls.
LINGUAS-Datei aktualisieren¶
- Erweiterungs-ID:
weblate.gettext.linguas- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
Erweiterungsinstallation, Täglich, Repository post-add, Repository post-remove
Aktualisiert die LINGUAS-Datei, wenn eine Übersetzung hinzugefügt oder entfernt wird.
POT-Datei aktualisieren (Meson)¶
Added in version 5.17.
- Erweiterungs-ID:
weblate.gettext.meson- Konfiguration:
intervalAktualisierungshäufigkeit
Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.
Verfügbare Auswahlmöglichkeiten:¶ dailyTäglich
weeklyWöchentlich
monthlyMonatlich
normalize_headerPOT-Header normalisieren
Aktualisiert gettext-Header und ersetzt Platzhalter für POT-Kommentare.
comment_modeCode-Kommentare
Wählen Sie, ob xgettext keine Kommentare, alle Kommentare oder nur die mit einem bestimmten Tag markierten Kommentare extrahieren soll.
Verfügbare Auswahlmöglichkeiten:¶ offKommentare nicht extrahieren
allAlle Kommentare extrahieren
taggedKommentare mit Tag extrahieren
comment_tagKommentar-Tag
Tag, der an xgettext zur Extraktion von Kommentaren übergeben wird, wenn der Modus „tagged comment“ verwendet wird.
checksxgettext-Prüfungen
Zusätzliche Qualitätsprüfungen von xgettext für extrahierte Nachrichten aktivieren.
Verfügbare Auswahlmöglichkeiten:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordZusätzliches Schlüsselwort
Optionales zusätzliches Schlüsselwort, das mit –keyword an xgettext übergeben wird.
presetMeson-Voreinstellung
Voreingestellte xgettext-Argumente passend zur gettext-Integration von Meson. Die GLib-Voreinstellung fügt die Schlüsselwort- und Format-Markierungsoptionen hinzu, die von Mesons gettext-Helper verwendet werden.
Verfügbare Auswahlmöglichkeiten:¶ glibGLib
- Trigger:
Erweiterungsinstallation, Manueller Trigger, Repository post-update
Aktualisiert die gettext-Vorlage mithilfe der Meson-gettext-Konventionen.
MO-Dateien erzeugen¶
- Erweiterungs-ID:
weblate.gettext.mo- Konfiguration:
pathPfad der erzeugten MO-Datei
Wenn nicht angegeben, wird der Ort der PO-Datei verwendet.
fuzzyBearbeitungsbedü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)¶
Geändert in Version 5.13: Einstellungen-Konfiguration wurde nach Dateiformat-Parameter verschoben.
- Erweiterungs-ID:
weblate.gettext.msgmerge- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
Aktualisiert alle PO-Dateien (wie mit „Dateimaske“ konfiguriert), damit sie mit der POT-Datei (wie mit „Vorlage für neue Übersetzungen“ konfiguriert) übereinstimmen, mit msgmerge.
Diese Erweiterung ist unverzichtbar bei der Arbeit mit gettext-(PO)-Dateien, bei denen die POT-(Template)-Datei mit neuen Zeichenketten oder Änderungen an bestehenden Zeichenketten aktualisiert wird. Wenn die POT-Datei im Repository aktualisiert wird, fügt diese Erweiterung diese Änderungen automatisch in alle Sprach-PO-Dateien ein, um sicherzustellen, dass:
Neue übersetzbare Zeichenketten in allen Sprachen erscheinen
Entfernte Zeichenketten als veraltet gekennzeichnet werden
Geänderte Zeichenketten als zu überprüfend markiert werden (ungenau)
Die meisten msgmerge-Befehlszeilenoptionen können über die Konfiguration der Dateiformat-Parameter eingerichtet werden.
POT-Datei aktualisieren (Sphinx)¶
Added in version 5.17.
- Erweiterungs-ID:
weblate.gettext.sphinx- Konfiguration:
intervalAktualisierungshäufigkeit
Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.
Verfügbare Auswahlmöglichkeiten:¶ dailyTäglich
weeklyWöchentlich
monthlyMonatlich
normalize_headerPOT-Header normalisieren
Aktualisiert gettext-Header und ersetzt Platzhalter für POT-Kommentare.
filter_modeFilterung
Optional können Zeichenketten entfernt werden, die nach der Sphinx-Extraktion nicht mehr sinnvoll übersetzt werden können.
Verfügbare Auswahlmöglichkeiten:¶ none–
weblate_docsWeblate-Dokumentation
- Trigger:
Erweiterungsinstallation, Manueller Trigger, Repository post-update
Aktualisiert die gettext-Vorlage mithilfe des gettext-Builders von Sphinx, ohne die Projektkonfiguration zu laden.
POT-Datei aktualisieren (xgettext)¶
Added in version 5.17.
- Erweiterungs-ID:
weblate.gettext.xgettext- Konfiguration:
intervalAktualisierungshäufigkeit
Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.
Verfügbare Auswahlmöglichkeiten:¶ dailyTäglich
weeklyWöchentlich
monthlyMonatlich
normalize_headerPOT-Header normalisieren
Aktualisiert gettext-Header und ersetzt Platzhalter für POT-Kommentare.
comment_modeCode-Kommentare
Wählen Sie, ob xgettext keine Kommentare, alle Kommentare oder nur die mit einem bestimmten Tag markierten Kommentare extrahieren soll.
Verfügbare Auswahlmöglichkeiten:¶ offKommentare nicht extrahieren
allAlle Kommentare extrahieren
taggedKommentare mit Tag extrahieren
comment_tagKommentar-Tag
Tag, der an xgettext zur Extraktion von Kommentaren übergeben wird, wenn der Modus „tagged comment“ verwendet wird.
checksxgettext-Prüfungen
Zusätzliche Qualitätsprüfungen von xgettext für extrahierte Nachrichten aktivieren.
Verfügbare Auswahlmöglichkeiten:¶ ellipsis-unicodeellipsis-unicode
space-ellipsisspace-ellipsis
quote-unicodequote-unicode
bullet-unicodebullet-unicode
keywordZusätzliches Schlüsselwort
Optionales zusätzliches Schlüsselwort, das mit –keyword an xgettext übergeben wird.
input_modeEingabequelle
Wählen Sie aus, ob xgettext Quelldateien aus glob-Mustern oder aus einem POTFILES/POTFILES.in-Manifest lesen soll.
Verfügbare Auswahlmöglichkeiten:¶ patternsMuster für Quelldateien
potfilesPOTFILES-Manifest
languagexgettext-Sprache
Programmiersprache, die an xgettext übergeben wird, zum Beispiel Python oder C.
source_patternsMuster für Quelldateien
Durch Zeilenumbrüche getrennte Repository-relative glob-Muster für Dateien, die mit xgettext extrahiert werden sollen.
potfiles_pathPOTFILES-Pfad
Repository-relativer Pfad zu POTFILES oder POTFILES.in. Die Einträge werden relativ zum Stammverzeichnis des Repositorys aufgelöst. Falls neben dem Manifest vorhanden, schließt POTFILES.skip die aufgeführten Dateien von der Extraktion aus.
- Trigger:
Erweiterungsinstallation, Manueller Trigger, Repository post-update
Aktualisiert die gettext-Vorlage mithilfe von xgettext für ausgewählte Quelldateien.
Git-Commits zusammenfassen¶
- Erweiterungs-ID:
weblate.git.squash- Konfiguration:
squashCommits zusammenfassen
Verfügbare Auswahlmöglichkeiten:¶ allAlle Commits in einen
languagePro Sprache
filePro Datei
authorPro Übersetzer
append_trailersEndzeilen 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_messageCommit-Nachricht
Diese Commit-Nachricht wird anstelle der zusammengefassten Commit-Nachrichten verwendet.
- Trigger:
Git-Commits vor dem Pushen der Änderungen zusammenfassen.
Hinweis
Um unnötige Konflikte zu vermeiden, empfiehlt es sich, den automatischen Empfang von Upstream-Änderungen über Webhooks oder API zu konfigurieren, siehe Repositorys aktualisieren.
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.
JSON-Ausgabe anpassen¶
Geändert in Version 5.12: Option Leerzeichen nach Trennzeichen vermeiden hinzugefügt.
Removed in version 5.13: Ersetzt durch Dateiformat-Parameter.
Repository auf Upstream zurücksetzen¶
Added in version 5.17.
- Erweiterungs-ID:
weblate.hosted.reset- Konfiguration:
Diese Erweiterung hat keine Konfiguration.
- Trigger:
Verwirft jede Nacht alle Änderungen im Weblate-Repository.
Die Java-Properties-Datei formatieren¶
- Erweiterungs-ID:
weblate.properties.sort- Konfiguration:
case_sensitiveSortierung 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.
Veralteter Kommentar entfernen¶
- Erweiterungs-ID:
weblate.removal.comments- Konfiguration:
ageTage 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.
Veralteter Vorschlag entfernen¶
- Erweiterungs-ID:
weblate.removal.suggestions- Konfiguration:
ageTage aufzubewahren
votesAbstimmungsschwelle
Threshold for removal. Leave empty to remove suggestions regardless of votes. This field has no effect with voting turned off.
- 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.
Slack-Webhooks¶
Added in version 5.12.
- Erweiterungs-ID:
weblate.webhook.slack- Konfiguration:
webhook_urlWebhook-URL
eventsÄnderungsereignisse
- Trigger:
Sendet Benachrichtigungen an einen Slack-Kanal basierend auf ausgewählten Ereignissen.
Warnung
Der Inhalt der Benachrichtigung kann HTML-Tags enthalten. Dies ist ein bekanntes Problem, das bald behoben wird; siehe https://github.com/WeblateOrg/weblate/issues/15056.
Hinweis
Um eine Webhook-URL zu erhalten, befolgen Sie die Schritte in der Slack-Incoming-Webhooks-Dokumentation
Webhook¶
Added in version 5.11.
Geändert in Version 5.15: Die Übereinstimmung der Länge des Geheimnisses mit der Spezifikation wird nun validiert.
- Erweiterungs-ID:
weblate.webhook.webhook- Konfiguration:
webhook_urlWebhook-URL
secretWebhook-Geheimnis
Das Standard-Webhook-Geheimnis ist eine base64-kodierte Zeichenkette.
eventsÄnderungsereignisse
- Trigger:
Sendet Benachrichtigungen an externe Dienste basierend auf ausgewählten Ereignissen, entsprechend der Standard-Webhooks-Spezifikation.
Die Nutzdaten der Anfrage entsprechen dem Schema Weblate Messaging. Die OpenAPI-Beschreibung kann auch unter /api/docs/ gefunden werden. Beispielanfrage :
{
"change_id": 99,
"action": "Translation changed",
"timestamp": "2019-08-24T14:15:22Z",
"target": "Nazdar svete!",
"old": "Nazdar!",
"source": "Hello, world",
"url": "/translate/project-slug/component-slug/cs/?checksum=46add148a53cab6f",
"author": "author-username",
"user": "user-username",
"project": "project-slug",
"component": "component-slug",
"translation": "cs"
}
Beispielanfrage mit Kategorien:
{
"change_id": 8910,
"action": "Component renamed",
"timestamp": "2025-06-11T07:15:09Z",
"target": ["new-name"],
"old": ["component-slug"],
"url": "/projects/project-slug/parent-category/child-category/sub-category/component-slug/",
"user": "testuser",
"project": "project-slug",
"component": "component-slug",
"category": [
"sub-category",
"child-category",
"parent-category"
]
}
Beispiel für Anfrage-Header:
{
"webhook-id": "7f1c5477f6275a69af7b83236c20cb1a",
"webhook-timestamp": "1748505623.044281",
"webhook-signature": "v1,Ceo5qEr07ixe2NLpvHk3FH9bwy/WavXrAFQ/9tdO6mc="
}
webhook-signature ist eine durch Leerzeichen getrennte Liste von HMAC-Signaturen, die anhand der Zeichenketten secret, der Nutzdaten der Anfrage, webhook-timestamp und webhook-id erzeugt wurden. Damit wird die Authentifizierung und Integrität der Webhook-Anfrage sichergestellt.
Das bereitgestellte secret ist eine base64-kodierte Zeichenkette zwischen 24 Byte (192 Bit) und 64 Byte (512 Bit). Zur leichteren Identifizierung kann ihr das Präfix whsec_ vorangestellt werden.
Um eine Anfrage zu verifizieren, können Sie die Methode Webhook.verify aus der Bibliothek standardwebhooks oder eine Implementierung der „Standard Webhooks Specification“ verwenden.
Obsolete Erweiterungen¶
XML-Ausgabe anpassen¶
Added in version 4.15.
Removed in version 5.13: Ersetzt durch Dateiformat-Parameter.
YAML-Ausgabe anpassen¶
Removed in version 5.13: Ersetzt durch Dateiformat-Parameter.
Gemeinsame Parameter für Erweiterungen¶
Maschinelle Übersetzungssysteme¶
|
Alibaba |
|
Amazon Translate |
|
Anthropic |
|
Apertium APy |
|
Azure AI Translator |
|
Azure OpenAI |
|
Baidu |
|
CyrTranslit |
|
DeepL |
|
Glosbe |
|
Google Cloud Translation Advanced |
|
Google Cloud Translation Basic |
|
LTEngine |
|
LibreTranslate |
|
ModernMT |
|
MyMemory |
|
Netease Sight |
|
Ollama |
|
OpenAI |
|
SAP Translation Hub |
|
Systran |
|
Weblate |
|
Weblate-Übersetzungsspeicher |
|
Yandex |
|
Yandex v2 |
|
Youdao Zhiyun |
|
tmserver |
Dateiformat¶
|
XLIFF 1.2 mit Apple-Erweiterungen |
|
App-Store-Metadatendateien |
|
ARB-Datei |
|
Android String-Ressource |
|
AsciiDoc-Datei |
|
Erweiterte SubStation-Alpha-Untertiteldatei |
|
Haiku Catkeys |
|
Compose-Multiplatform-Ressource |
|
CSV-Datei |
|
Mehrwertige CSV-Datei (UTF-8) |
|
Einfache CSV-Datei |
|
DokuWiki-Textdatei |
|
DTD-Datei |
|
Flache XML-Datei |
|
Fluent-Datei |
|
JSON-Datei Format.JS |
|
JSON-Datei go-i18n v1 |
|
JSON-Datei go-i18n v2 |
|
TOML-Datei go-i18n |
|
JSON-Datei gotext |
|
GWT Properties |
|
HTML-Datei |
|
JSON-Datei i18next v3 |
|
JSON-Datei i18next v4 |
|
IDML-Datei |
|
INI-Datei |
|
Inno-Setup-INI-Datei |
|
Joomla-Sprachdatei |
|
JSON-Datei |
|
JSON-Datei mit verschachtelter Struktur |
|
Laravel-PHP-Zeichenketten |
|
Markdown-Datei |
|
MDX-Datei |
|
MediaWiki-Textdatei |
|
@draggable/i18n-lang-Datei |
|
Mobile-Kotlin-Ressource |
|
JSON-Datei Nextcloud |
|
OpenDocument-Datei |
|
PHP-Zeichenketten |
|
XLIFF-1.2-Übersetzungsdatei |
|
gettext PO-Datei |
|
gettext PO-Datei (einsprachig) |
|
XLIFF 1.2 mit gettext-Erweiterungen |
|
Java Properties |
|
RC-Datei |
|
RESJSON-Datei |
|
Ressourcen-Wörterbuch-Datei |
|
.NET-Ressourcendatei |
|
Ruby-YAML-Datei |
|
SubRip-Untertiteldatei |
|
SubStation-Alpha-Untertiteldatei |
|
iOS-Zeichenketten |
|
Stringsdict-Datei |
|
MicroDVD-Untertiteldatei |
|
TermBase-eXchange-Datei |
|
TOML-Datei |
|
Qt-Linguist-Übersetzungsdatei |
|
Klartextdatei |
|
JSON-Datei WebExtension |
|
WixLocalization-Datei |
|
XLIFF 1.2 mit Platzhalterunterstützung |
|
XLIFF-2.0-Übersetzungsdatei |
|
XLIFF-2.0-Übersetzungsdatei mit Platzhalterunterstützung |
|
Excel Open XML |
|
Ganze XWiki-Seite |
|
XWiki-Java-Properties |
|
XWiki-Seiteneigenschaften |
|
YAML-Datei |
Änderungsereignisse¶
|
Ressource aktualisiert |
|
Übersetzung vollständig |
|
Übersetzung geändert |
|
Kommentar hinzugefügt |
|
Neuer Vorschlag |
|
Übersetzung hinzugefügt |
|
Automatisch übersetzt |
|
Vorschlag angenommen |
|
Übersetzung zurückgesetzt |
|
Übersetzung hochgeladen |
|
Ausgangszeichenkette hinzugefügt |
|
Komponente gesperrt |
|
Komponente entsperrt |
|
Änderungen committet |
|
Änderungen gepusht |
|
Repository zurückgesetzt |
|
Repository zusammengeführt |
|
Repository umbasiert |
|
Repository-Merge fehlgeschlagen |
|
Repository-Umbasierung fehlgeschlagen |
|
Analyse fehlgeschlagen |
|
Übersetzung entfernt |
|
Vorschlag entfernt |
|
Übersetzung ersetzt |
|
Repository-Push fehlgeschlagen |
|
Vorschlag wurde während des Bereinigungsvorgangs entfernt |
|
Ausgangszeichenkette geändert |
|
Zeichenkette hinzugefügt |
|
Große Statusänderung |
|
Sichtbarkeit geändert |
|
Benutzer hinzugefügt |
|
Benutzer entfernt |
|
Übersetzung genehmigt |
|
Zur Bearbeitung markiert |
|
Komponente entfernt |
|
Projekt entfernt |
|
Projekt umbenannt |
|
Komponente umbenannt |
|
Komponente verschoben |
|
Mitwirkender beigetreten |
|
Mitteilung veröffentlicht |
|
Warnung ausgelöst |
|
Sprache hinzugefügt |
|
Sprache gewünscht |
|
Projekt erstellt |
|
Komponente erstellt |
|
Benutzer eingeladen |
|
Repository-Benachrichtigung erhalten |
|
Datei durch hochgeladene Übersetzung ersetzt |
|
Lizenz geändert |
|
Mitwirkungsvereinbarung geändert |
|
Bildschirmfoto hinzugefügt |
|
Bildschirmfoto hochgeladen |
|
Zeichenkette im Repository aktualisiert |
|
Erweiterung installiert |
|
Konfiguration der Erweiterung geändert |
|
Erweiterung deinstalliert |
|
Zeichenkette entfernt |
|
Kommentar entfernt |
|
Kommentar geklärt |
|
Erklärung aktualisiert |
|
Kategorie entfernt |
|
Kategorie umbenannt |
|
Kategorie verschoben |
|
Speichern der Zeichenkette fehlgeschlagen |
|
Zeichenkette im Repository hinzugefügt |
|
Zeichenkette beim Hochladen aktualisiert |
|
Zeichenkette beim Hochladen hinzugefügt |
|
Übersetzung durch hochgeladene Quelle aktualisiert |
|
Komponentenübersetzung abgeschlossen |
|
Erzwungene Qualitätsprüfungen angewandt |
|
Weitergegebene Änderung |
|
Datei hochgeladen |
|
Zusätzliche Markierungen aktualisiert |
|
Schriftart hochgeladen |
|
Schriftart geändert |
|
Schriftart entfernt |
|
Erzwungene Synchronisierung von Übersetzungen |
|
Erzwungenes erneutes Scannen von Übersetzungen |
|
Bildschirmfoto entfernt |
|
Label hinzugefügt |
|
Label entfernt |
|
Repositorybereinigung |
|
Ausgangszeichenkette beim Hochladen hinzugefügt |
|
Ausgangszeichenkette im Repository hinzugefügt |
|
Projekt gesichert |
|
Projekt wiederhergestellt |
|
Komponente wiederhergestellt |
|
Benutzerbearbeitung rückgängig gemacht |
|
Projekteinstellung geändert |
|
Komponenteneinstellung geändert |
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.
Eine Erweiterung schreiben¶
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
Skripte mit Erweiterung ausführen¶
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 __future__ import annotations
from typing import ClassVar
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: ClassVar[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, automatische Vorschläge 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
Übersetzungen vor dem Commit verarbeiten¶
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.