Erweiterungen entwickeln#
Erweiterungen sind eine Möglichkeit, den Lokalisierungsprozess in Weblate anzupassen.
- class weblate.addons.base.BaseAddon(storage=None)#
Basisklasse für Weblate-Erweiterungen.
- classmethod can_install(component, user)#
Prüfen, ob die Erweiterung mit der angegebenen Komponente kompatibel ist.
- component_update(component)#
Hook für Komponentenaktualisierung.
- configure(configuration)#
Konfiguration speichern.
- daily(component)#
Hook wird täglich ausgelöst.
- classmethod get_add_form(user, component, **kwargs)#
Konfigurationsformular zum Hinzufügen einer neuen Erweiterung zurückgeben.
- get_settings_form(user, **kwargs)#
Konfigurationsformular für diese Erweiterung zurückgeben.
- post_add(translation)#
Hook wird ausgelöst, nachdem eine neue Übersetzung hinzugefügt wird.
- post_commit(component)#
Hook wird ausgelöst, nachdem Änderungen an das Repository committet werden.
- post_push(component)#
Hook wird ausgelöst, nachdem das Repository Upstream gepusht wird.
- post_update(component, previous_head: str, skip_push: bool)#
Hook wird ausgelöst, nachdem das Repository von Upstream aktualisiert wird.
- Parameter:
previous_head (str) – HEAD des Repositorys vor der Aktualisierung, kann beim ersten Klonen leer sein.
skip_push (bool) – Ob die Erweiterungsoperation das Pushen von Änderungen im Upstream überspringen soll. Normalerweise können Sie dies den zugrunde liegenden Methoden als
commit_and_push
odercommit_pending
übergeben.
- pre_commit(translation, author)#
Hook wird ausgelöst, bevor Änderungen an das Repository committet werden.
- pre_push(component)#
Hook wird ausgelöst, bevor das Repository Upstream gepusht wird.
- pre_update(component)#
Hook wird ausgelöst, bevor das Repository von Upstream aktualisiert wird.
- save_state()#
Informationen über den Status der Erweiterung speichern.
- store_post_load(translation, store)#
Hook wird ausgelöst, nachdem eine Datei analysiert wird.
Er erhält eine Instanz einer Dateiformatklasse als Argument.
Dies ist nützlich, um die Parameter der Dateiformatklasse zu ändern, z. B. wie die Datei gespeichert werden soll.
- unit_pre_create(unit)#
Hook wird ausgelöst, bevor eine neue Einheit erstellt wird.
- user()#
Weblate-Benutzer, um Änderungen dieser Erweiterung nachzuverfolgen.
Hier ein Beispiel für eine Erweiterung:
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
from django.utils.translation import gettext_lazy
from weblate.addons.base import BaseAddon
from weblate.addons.events import EVENT_PRE_COMMIT
class ExampleAddon(BaseAddon):
# Filter for compatible components, every key is
# matched against property of component
compat = {"file_format": {"po", "po-mono"}}
# List of events add-on should receive
events = (EVENT_PRE_COMMIT,)
# Add-on unique identifier
name = "weblate.example.example"
# Verbose name shown in the user interface
verbose = gettext_lazy("Example add-on")
# Detailed add-on description
description = gettext_lazy("This add-on does nothing it is just an example.")
# Callback to implement custom behavior
def pre_commit(self, translation, author):
return