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.
- configure(configuration) None ¶
Konfiguration speichern.
- 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
odercommit_pending
übergeben.
- pre_commit(translation: Translation, author: User) None ¶
Ereignis-Handler bevor Änderungen an das Repository committet werden.
- 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.
- 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