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(settings)#

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

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