Erweiterungen entwickeln

Erweiterungen sind eine Möglichkeit, den Lokalisierungsprozess in Weblate anzupassen.

class weblate.addons.base.BaseAddon(storage: Addon)

Basisklasse für Weblate-Erweiterungen.

classmethod can_install(component: Component, user: User | None)

Prüfen, ob die Erweiterung mit der angegebenen Komponente kompatibel ist.

component_update(component: Component) None

Ereignis-Handler für Komponentenaktualisierung.

configure(configuration) None

Konfiguration speichern.

daily(component: Component) None

Ereignis-Handler täglich.

classmethod get_add_form(user: User | None, *, component: Component | None = None, project: Project | None = None, **kwargs)

Konfigurationsformular zum Hinzufügen einer neuen Erweiterung zurückgeben.

get_settings_form(user: User | None, **kwargs)

Konfigurationsformular für diese Erweiterung zurückgeben.

post_add(translation: Translation) None

Ereignis-Handler nachdem eine neue Übersetzung hinzugefügt wird.

post_commit(component: Component) None

Ereignis-Handler nachdem Änderungen an das Repository committet werden.

post_push(component: Component) None

Ereignis-Handler nachdem das Repository Upstream gepusht wird.

post_update(component: Component, previous_head: str, skip_push: bool, child: bool) None

Ereignis-Handler 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: Translation, author: User) None

Ereignis-Handler bevor Änderungen an das Repository committet werden.

pre_push(component: Component) None

Ereignis-Handler bevor das Repository Upstream gepusht wird.

pre_update(component: Component) None

Ereignis-Handler bevor das Repository von Upstream aktualisiert wird.

save_state() None

Informationen über den Status der Erweiterung speichern.

store_post_load(translation: Unit, store: TranslationFormat) None

Ereignis-Handler 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: Unit) None

Ereignis-Handler bevor eine neue Einheit erstellt wird.

user()

Weblate-Benutzer, um Änderungen dieser Erweiterung nachzuverfolgen.

class weblate.addons.base.Addon

ORM-Objekt für eine Erweiterung.

class weblate.addons.base.Component

ORM-Objekt für eine Komponente.

class weblate.addons.base.Translation

ORM-Objekt für eine Übersetzung.

class weblate.addons.base.Project

ORM-Objekt für ein Projekt.

class weblate.addons.base.Unit

ORM-Objekt für eine Einheit.

class weblate.addons.base.User

ORM-Objekt für ein Benutzer.

class weblate.addons.base.TranslationFormat

Übersetzungsdatei-Wrapper.

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 AddonEvent


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 = (AddonEvent.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) -> None:
        return