Erweiterungen

Erweiterungen bieten die Möglichkeit, den Ablauf der Übersetzung anzupassen und zu automatisieren. Administratoren können Erweiterungen über das Menü OperationenErweiterungen 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.

../_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.

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:

mode

Automatischer Übersetzungsmodus

Verfügbare Auswahlmöglichkeiten:

suggest

Als Vorschlag hinzufügen

translate

Als Übersetzung hinzufügen

fuzzy

Hinzufügen als „Bearbeitungsbedürftig“

q

Abfrage

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

auto_source

Quelle der automatisierten Übersetzungen

Verfügbare Auswahlmöglichkeiten:

others

Andere Übersetzungskomponenten

mt

Maschinelle Übersetzung

component

Komponente

Den Slug einer Komponente eingeben, die als Ausgangszeichenkette verwendet werden soll. Das Feld leer lassen, um alle Komponenten im aktuellen Projekt zu verwenden.

engines

Maschinelle Übersetzungssysteme

Maschinelle Übersetzungssysteme

threshold

Schwellenwert

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_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-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:

Erweiterungsinstallation, Täglich, Repository post-add

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:

match

Regulärer Ausdruck zum Abgleich von Übersetzungsdateien

Der reguläre Ausdruck muss benannte Gruppen für Komponente und Sprache definieren.

file_format

Dateiformat

Dateiformat

name_template

Anpassen des Komponentennamens

Verwenden Sie die Syntax der Django-Vorlage. Diese Vorlage muss {{ component }} enthalten.

base_file_template

Definition des einsprachigen Basisdateinamens

Für zweisprachige Übersetzungsdateien leer lassen. Wenn gesetzt, muss diese Vorlage {{ component }} enthalten.

new_base_template

Definition 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_template

Zwischensprachedatei

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_regex

Sprachfilter

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

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. 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 component and language named 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_template and at least one translation file matching match.

Funktionsbeispiel: news_<lang>.md

This is a common filename-based language variant layout:

  • docs/news_en.md

  • docs/news_cs.md

  • docs/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_*.md

  • docs/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 component match 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:

../_images/addon-discovery.webp

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

Komponentenname:

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

Fedora Messaging

Added in version 5.15.

Erweiterungs-ID:

weblate.fedora_messaging.publish

Konfiguration:

events

Änderungsereignisse

Änderungsereignisse

amqp_host

AMQP-Broker-Host

Der AMQP-Broker, mit dem eine Verbindung hergestellt werden soll.

amqp_ssl

SSL für AMQP-Verbindung verwenden

ca_cert

CA-Zertifikate

Bündel von PEM-kodierten CA-Zertifikaten, die zum Validieren des vom Server vorgelegten Zertifikats verwendet werden.

client_key

Client-SSL-Schlüssel

PEM-kodierter privater SSL-Schlüssel des Clients.

client_cert

Client-SSL-Zertifikate

PEM-kodiertes SSL-Zertifikat des Clients.

Trigger:

Ereignisänderung

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_id

Numerische ID der Änderung

action

Ausführlicher Name der Änderung.

timestamp

ISO-formatierter Zeitstempel

target

Neuer Wert der Änderung (z. B. neue Übersetzung der Zeichenkette)

old

Alter Wert der Änderung (z. B. vorherige Übersetzung der Zeichenkette)

source

Ausgangszeichenkette.

url

Absolute URL zur Anzeige des zugehörigen Objekts.

author

Autor-Benutzername (dieser kann sich von dem des Benutzers unterscheiden, z. B. bei der Annahme von Vorschlägen)

user

Handelnder Benutzername

project

Projekt-Slug

component

Komponenten-Slug

translation

Sprachcode der Übersetzung

Nachrichtenheader

Es gibt weitere Header, die Sie ebenfalls für das Routing verwenden können:

action

Ausführlicher Name der Änderung.

project

Projekt-Slug

component

Komponenten-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"]
}

Massenbearbeitung

Erweiterungs-ID:

weblate.flags.bulk

Konfiguration:

q

Abfrage

state

Zu setzender Status

Verfügbare Auswahlmöglichkeiten:

-1

Nicht ändern

10

Bearbeitungsbedürftig

11

Bearbeitungsbedürftig (Muss umgeschrieben werden)

12

Bearbeitungsbedürftig (Muss überprüft werden)

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 „Muss umgeschrieben werden“ 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 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

Übersetzungsstatus

Neue Ausgangszeichenketten als „Muss überprüft werden“ 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 zu überprüfend markiert. Auf diese Weise können Sie die von den Entwicklern geschriebenen Ausgangszeichenketten einfach filtern und bearbeiten.

Siehe auch

Übersetzungsstatus

Neue Übersetzungen als „Muss umgeschrieben werden“ 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 umzuschreibend markiert. Auf diese Weise können Sie die von den Entwicklern erstellten Übersetzungen einfach filtern und bearbeiten.

Siehe auch

Übersetzungsstatus

Aktualisierte Übersetzungen vom Repository als „Muss umgeschrieben werden“ markieren

Erweiterungs-ID:

weblate.flags.target_repo_update

Konfiguration:

Diese Erweiterung hat keine Konfiguration.

Trigger:

Einheit post-sync

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

Ü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:

Erweiterungsinstallation, 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.

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:

source

Ausgangszeichenketten

target

Zielübersetzung

Alle Zeichenketten in dieser Übersetzung werden überschrieben

prefix

Vorangestellter statischer Text

var_prefix

Vorangestellter variabler Text

suffix

Angehängter statischer Text

var_suffix

Angehängter variabler Text

var_multiplier

Variabler Textmultiplikator

Wie oft der variable Text, je nach Länge der Ausgangszeichenkette, wiederholt werden soll.

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.

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:

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.

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:

interval

Aktualisierungshäufigkeit

Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.

Verfügbare Auswahlmöglichkeiten:

daily

Täglich

weekly

Wöchentlich

monthly

Monatlich

normalize_header

POT-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:

interval

Aktualisierungshäufigkeit

Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.

Verfügbare Auswahlmöglichkeiten:

daily

Täglich

weekly

Wöchentlich

monthly

Monatlich

normalize_header

POT-Header normalisieren

Aktualisiert gettext-Header und ersetzt Platzhalter für POT-Kommentare.

comment_mode

Code-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:

off

Kommentare nicht extrahieren

all

Alle Kommentare extrahieren

tagged

Kommentare mit Tag extrahieren

comment_tag

Kommentar-Tag

Tag, der an xgettext zur Extraktion von Kommentaren übergeben wird, wenn der Modus „tagged comment“ verwendet wird.

checks

xgettext-Prüfungen

Zusätzliche Qualitätsprüfungen von xgettext für extrahierte Nachrichten aktivieren.

Verfügbare Auswahlmöglichkeiten:

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis

quote-unicode

quote-unicode

bullet-unicode

bullet-unicode

keyword

Zusätzliches Schlüsselwort

Optionales zusätzliches Schlüsselwort, das mit –keyword an xgettext übergeben wird.

preset

Meson-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:

glib

GLib

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:

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)

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:

Erweiterungsinstallation, Repository post-update

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:

interval

Aktualisierungshäufigkeit

Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.

Verfügbare Auswahlmöglichkeiten:

daily

Täglich

weekly

Wöchentlich

monthly

Monatlich

normalize_header

POT-Header normalisieren

Aktualisiert gettext-Header und ersetzt Platzhalter für POT-Kommentare.

filter_mode

Filterung

Optional können Zeichenketten entfernt werden, die nach der Sphinx-Extraktion nicht mehr sinnvoll übersetzt werden können.

Verfügbare Auswahlmöglichkeiten:

none

weblate_docs

Weblate-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:

interval

Aktualisierungshäufigkeit

Wie oft die Erweiterung die POT-Datei aktualisieren soll, wenn die Komponente aktualisiert wird.

Verfügbare Auswahlmöglichkeiten:

daily

Täglich

weekly

Wöchentlich

monthly

Monatlich

normalize_header

POT-Header normalisieren

Aktualisiert gettext-Header und ersetzt Platzhalter für POT-Kommentare.

comment_mode

Code-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:

off

Kommentare nicht extrahieren

all

Alle Kommentare extrahieren

tagged

Kommentare mit Tag extrahieren

comment_tag

Kommentar-Tag

Tag, der an xgettext zur Extraktion von Kommentaren übergeben wird, wenn der Modus „tagged comment“ verwendet wird.

checks

xgettext-Prüfungen

Zusätzliche Qualitätsprüfungen von xgettext für extrahierte Nachrichten aktivieren.

Verfügbare Auswahlmöglichkeiten:

ellipsis-unicode

ellipsis-unicode

space-ellipsis

space-ellipsis

quote-unicode

quote-unicode

bullet-unicode

bullet-unicode

keyword

Zusätzliches Schlüsselwort

Optionales zusätzliches Schlüsselwort, das mit –keyword an xgettext übergeben wird.

input_mode

Eingabequelle

Wählen Sie aus, ob xgettext Quelldateien aus glob-Mustern oder aus einem POTFILES/POTFILES.in-Manifest lesen soll.

Verfügbare Auswahlmöglichkeiten:

patterns

Muster für Quelldateien

potfiles

POTFILES-Manifest

language

xgettext-Sprache

Programmiersprache, die an xgettext übergeben wird, zum Beispiel Python oder C.

source_patterns

Muster für Quelldateien

Durch Zeilenumbrüche getrennte Repository-relative glob-Muster für Dateien, die mit xgettext extrahiert werden sollen.

potfiles_path

POTFILES-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:

squash

Commits zusammenfassen

Verfügbare Auswahlmöglichkeiten:

all

Alle Commits in einen

language

Pro Sprache

file

Pro Datei

author

Pro Übersetzer

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.

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:

Erweiterungsinstallation, Täglich

Verwirft jede Nacht alle Änderungen im Weblate-Repository.

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.

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

Veralteter Vorschlag entfernen

Erweiterungs-ID:

weblate.removal.suggestions

Konfiguration:

age

Tage aufzubewahren

votes

Abstimmungsschwelle

Threshold for removal. Leave empty to remove suggestions regardless of votes. This field has no effect with voting turned off.

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.

Slack-Webhooks

Added in version 5.12.

Erweiterungs-ID:

weblate.webhook.slack

Konfiguration:

webhook_url

Webhook-URL

events

Änderungsereignisse

Änderungsereignisse

Trigger:

Ereignisänderung

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_url

Webhook-URL

secret

Webhook-Geheimnis

Das Standard-Webhook-Geheimnis ist eine base64-kodierte Zeichenkette.

events

Änderungsereignisse

Änderungsereignisse

Trigger:

Ereignisänderung

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

Verfügbare Auswahlmöglichkeiten:

alibaba

Alibaba

aws

Amazon Translate

anthropic

Anthropic

apertium-apy

Apertium APy

microsoft-translator

Azure AI Translator

azure-openai

Azure OpenAI

baidu

Baidu

cyrtranslit

CyrTranslit

deepl

DeepL

glosbe

Glosbe

google-translate-api-v3

Google Cloud Translation Advanced

google-translate

Google Cloud Translation Basic

ltengine

LTEngine

libretranslate

LibreTranslate

modernmt

ModernMT

mymemory

MyMemory

netease-sight

Netease Sight

ollama

Ollama

openai

OpenAI

sap-translation-hub

SAP Translation Hub

systran

Systran

weblate

Weblate

weblate-translation-memory

Weblate-Übersetzungsspeicher

yandex

Yandex

yandex-v2

Yandex v2

youdao-zhiyun

Youdao Zhiyun

tmserver

tmserver

Dateiformat

Verfügbare Auswahlmöglichkeiten:

apple-xliff

XLIFF 1.2 mit Apple-Erweiterungen

appstore

App-Store-Metadatendateien

arb

ARB-Datei

aresource

Android String-Ressource

asciidoc

AsciiDoc-Datei

ass

Erweiterte SubStation-Alpha-Untertiteldatei

catkeys

Haiku Catkeys

cmp-resource

Compose-Multiplatform-Ressource

csv

CSV-Datei

csv-multi

Mehrwertige CSV-Datei (UTF-8)

csv-simple

Einfache CSV-Datei

dokuwiki

DokuWiki-Textdatei

dtd

DTD-Datei

flatxml

Flache XML-Datei

fluent

Fluent-Datei

formatjs

JSON-Datei Format.JS

go-i18n-json

JSON-Datei go-i18n v1

go-i18n-json-v2

JSON-Datei go-i18n v2

go-i18n-toml

TOML-Datei go-i18n

gotext

JSON-Datei gotext

gwt

GWT Properties

html

HTML-Datei

i18next

JSON-Datei i18next v3

i18nextv4

JSON-Datei i18next v4

idml

IDML-Datei

ini

INI-Datei

islu

Inno-Setup-INI-Datei

joomla

Joomla-Sprachdatei

json

JSON-Datei

json-nested

JSON-Datei mit verschachtelter Struktur

laravel

Laravel-PHP-Zeichenketten

markdown

Markdown-Datei

mdx

MDX-Datei

mediawiki

MediaWiki-Textdatei

mi18n-lang

@draggable/i18n-lang-Datei

moko-resource

Mobile-Kotlin-Ressource

nextcloud-json

JSON-Datei Nextcloud

odf

OpenDocument-Datei

php

PHP-Zeichenketten

plainxliff

XLIFF-1.2-Übersetzungsdatei

po

gettext PO-Datei

po-mono

gettext PO-Datei (einsprachig)

poxliff

XLIFF 1.2 mit gettext-Erweiterungen

properties

Java Properties

rc

RC-Datei

resjson

RESJSON-Datei

resourcedictionary

Ressourcen-Wörterbuch-Datei

resx

.NET-Ressourcendatei

ruby-yaml

Ruby-YAML-Datei

srt

SubRip-Untertiteldatei

ssa

SubStation-Alpha-Untertiteldatei

strings

iOS-Zeichenketten

stringsdict

Stringsdict-Datei

sub

MicroDVD-Untertiteldatei

tbx

TermBase-eXchange-Datei

toml

TOML-Datei

ts

Qt-Linguist-Übersetzungsdatei

txt

Klartextdatei

webextension

JSON-Datei WebExtension

wxl

WixLocalization-Datei

xliff

XLIFF 1.2 mit Platzhalterunterstützung

xliff2

XLIFF-2.0-Übersetzungsdatei

xliff2-placeables

XLIFF-2.0-Übersetzungsdatei mit Platzhalterunterstützung

xlsx

Excel Open XML

xwiki-fullpage

Ganze XWiki-Seite

xwiki-java-properties

XWiki-Java-Properties

xwiki-page-properties

XWiki-Seiteneigenschaften

yaml

YAML-Datei

Änderungsereignisse

Verfügbare Auswahlmöglichkeiten:

0

Ressource aktualisiert

1

Übersetzung vollständig

2

Übersetzung geändert

3

Kommentar hinzugefügt

4

Neuer Vorschlag

5

Übersetzung hinzugefügt

6

Automatisch übersetzt

7

Vorschlag angenommen

8

Übersetzung zurückgesetzt

9

Übersetzung hochgeladen

13

Ausgangszeichenkette hinzugefügt

14

Komponente gesperrt

15

Komponente entsperrt

17

Änderungen committet

18

Änderungen gepusht

19

Repository zurückgesetzt

20

Repository zusammengeführt

21

Repository umbasiert

22

Repository-Merge fehlgeschlagen

23

Repository-Umbasierung fehlgeschlagen

24

Analyse fehlgeschlagen

25

Übersetzung entfernt

26

Vorschlag entfernt

27

Übersetzung ersetzt

28

Repository-Push fehlgeschlagen

29

Vorschlag wurde während des Bereinigungsvorgangs entfernt

30

Ausgangszeichenkette geändert

31

Zeichenkette hinzugefügt

32

Große Statusänderung

33

Sichtbarkeit geändert

34

Benutzer hinzugefügt

35

Benutzer entfernt

36

Übersetzung genehmigt

37

Zur Bearbeitung markiert

38

Komponente entfernt

39

Projekt entfernt

41

Projekt umbenannt

42

Komponente umbenannt

43

Komponente verschoben

45

Mitwirkender beigetreten

46

Mitteilung veröffentlicht

47

Warnung ausgelöst

48

Sprache hinzugefügt

49

Sprache gewünscht

50

Projekt erstellt

51

Komponente erstellt

52

Benutzer eingeladen

53

Repository-Benachrichtigung erhalten

54

Datei durch hochgeladene Übersetzung ersetzt

55

Lizenz geändert

56

Mitwirkungsvereinbarung geändert

57

Bildschirmfoto hinzugefügt

58

Bildschirmfoto hochgeladen

59

Zeichenkette im Repository aktualisiert

60

Erweiterung installiert

61

Konfiguration der Erweiterung geändert

62

Erweiterung deinstalliert

63

Zeichenkette entfernt

64

Kommentar entfernt

65

Kommentar geklärt

66

Erklärung aktualisiert

67

Kategorie entfernt

68

Kategorie umbenannt

69

Kategorie verschoben

70

Speichern der Zeichenkette fehlgeschlagen

71

Zeichenkette im Repository hinzugefügt

72

Zeichenkette beim Hochladen aktualisiert

73

Zeichenkette beim Hochladen hinzugefügt

74

Übersetzung durch hochgeladene Quelle aktualisiert

75

Komponentenübersetzung abgeschlossen

76

Erzwungene Qualitätsprüfungen angewandt

77

Weitergegebene Änderung

78

Datei hochgeladen

79

Zusätzliche Markierungen aktualisiert

80

Schriftart hochgeladen

81

Schriftart geändert

82

Schriftart entfernt

83

Erzwungene Synchronisierung von Übersetzungen

84

Erzwungenes erneutes Scannen von Übersetzungen

85

Bildschirmfoto entfernt

86

Label hinzugefügt

87

Label entfernt

88

Repositorybereinigung

89

Ausgangszeichenkette beim Hochladen hinzugefügt

90

Ausgangszeichenkette im Repository hinzugefügt

91

Projekt gesichert

92

Projekt wiederhergestellt

93

Komponente wiederhergestellt

94

Benutzerbearbeitung rückgängig gemacht

95

Projekteinstellung geändert

96

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.

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.

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.