Add-ons ontwikkelen¶
Add-ons zijn een manier om de werkwijze voor vertalen in Weblate aan te passen.
- class weblate.addons.base.BaseAddon(storage: Addon)¶
Basisklasse voor add-ons van Weblate.
- classmethod can_install(component: Component, user: User | None) bool ¶
Controleren of add-on compatibel is met het opgegeven onderdeel.
- component_update(component: weblate.trans.models.Component) None ¶
Gebeurtenisafhandeling voor bijwerken onderdeel.
- configure(configuration: dict[str, Any]) None ¶
Configuratie opslaan.
- daily(component: weblate.trans.models.Component) None ¶
Dagelijkse afhandeling gebeurtenissen.
- classmethod get_add_form(user: User | None, *, component: Component | None = None, project: Project | None = None, **kwargs) BaseAddonForm | None ¶
Formulier configuratie terugsturen voor toevoegen van nieuwe add-on.
- get_settings_form(user: User | None, **kwargs) BaseAddonForm | None ¶
Formulier configuratie terugsturen voor deze add-on.
- post_add(translation: Translation) None ¶
Gebeurtenisafhandeling nadat een nieuwe vertaling is toegevoegd.
- post_commit(component: weblate.trans.models.Component, store_hash: bool) None ¶
Gebeurtenis afhandelen na wijzigingen worden doorgevoerd in de opslagruimte.
- post_push(component: weblate.trans.models.Component) None ¶
Gebeurtenisafhandeling nadat de opslagruimte naar upstream is gepusht.
- post_update(component: weblate.trans.models.Component, previous_head: str, skip_push: bool) None ¶
Gebeurtenisafhandeling nadat de opslagruimte is bijgewerkt vanuit upstream.
- Parameters:
previous_head (str) – HEAD van de opslagruimte, voorafgaande aan bijwerken, mag leeg zijn bij initieel klonen.
skip_push (bool) – Of de bewerking van de add-on het pushen van wijzigingen naar upstream moet overslaan. Gewoonlijk kunt u dit doorgeven aan de onderliggende methoden als
commit_and_push
ofcommit_pending
.
- pre_commit(translation: Translation, author: str, store_hash: bool) None ¶
Gebeurtenis afhandelen voor wijzigingen worden doorgevoerd in de opslagruimte.
- pre_push(component: weblate.trans.models.Component) None ¶
Gebeurtenisafhandeling voordat de opslagruimte naar upstream wordt gepusht.
- pre_update(component: weblate.trans.models.Component) None ¶
Gebeurtenisafhandeling voordat de opslagruimte wordt bijgewerkt vanuit upstream.
- save_state() None ¶
Informatie status add-on opslaan.
- store_post_load(translation: Translation, store: TranslationFormat) None ¶
Gebeurtenisafhandeling nadat een bestand is geparset.
Het ontvangt een instantie van een klasse voor een bestandsindeling als een argument.
Dit is nuttig om de parameters voor de klasse van de bestandsindeling aan te passen, bijvoorbeeld om aan te passen hoe het bestand moet worden opgeslagen.
- class weblate.addons.models.Addon¶
ORM-object voor een add-on.
- class weblate.trans.models.Component¶
ORM-object voor een onderdeel.
- class weblate.trans.models.Translation¶
ORM-object voor een vertaling.
- class weblate.trans.models.Project¶
ORM-object voor een project.
- class weblate.trans.models.Unit¶
ORM-object voor een eenheid.
- class weblate.trans.models.User¶
ORM-object voor een gebruiker.
- class weblate.trans.models.TranslationFormat¶
Wrapper vertaalbestand.
- class weblate.trans.models.BaseAddonForm¶
Basisformulier voor het configureren van add-ons.
Hier is een voorbeeld add-on:
# 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: set[AddonEvent] = {
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: str, store_hash: bool) -> None:
return