Développement de greffons¶
Extensions permettent de personnaliser le flux des travaux de traduction dans Weblate.
- class weblate.addons.base.BaseAddon(storage: Addon)¶
Classe de base pour les greffons Weblate.
- classmethod can_install(component: Component, user: User | None) bool ¶
Vérifier si le greffon est compatible avec le composant donné.
- component_update(component: weblate.trans.models.Component) None ¶
Gestionnaire d’événements pour la mise à jour de composants.
- configure(configuration: dict[str, Any]) None ¶
Enregistrer la configuration.
- daily(component: weblate.trans.models.Component) None ¶
Gestionnaire d’événements quotidien.
- classmethod get_add_form(user: User | None, *, component: Component | None = None, project: Project | None = None, **kwargs) BaseAddonForm | None ¶
Renvoie le formulaire de configuration pour ce nouveau greffon.
- get_settings_form(user: User | None, **kwargs) BaseAddonForm | None ¶
Renvoie le formulaire de configuration pour ce greffon.
- post_add(translation: Translation) None ¶
Gestionnaire d’événements après l’ajout d’une nouvelle traduction.
- post_commit(component: weblate.trans.models.Component, store_hash: bool) None ¶
Gestionnaire d’événements après que des modifications aient été validées dans le dépôt.
- post_push(component: weblate.trans.models.Component) None ¶
Gestionnaire d’événements après que le dépôt a été poussé sur l’amont.
- post_update(component: weblate.trans.models.Component, previous_head: str, skip_push: bool) None ¶
Gestionnaire d’événements après que le dépôt a été mis à jour à partir de l’amont.
- Paramètres:
previous_head (str) – HEAD du dépôt avant la mise à jour, peut être vide au moment du clônage initial.
skip_push (bool) – Indique si l’opération du greffon doit ignorer la poussée des modifications vers l’amont. Habituellement vous pouvez passer cette information aux méthodes sous-jascentes comme
commit_and_push
oucommit_pending
.
- pre_commit(translation: Translation, author: str, store_hash: bool) None ¶
Gestionnaire d’événements avant que des modifications ne soient validées dans le dépôt.
- pre_push(component: weblate.trans.models.Component) None ¶
Gestionnaire d’événements avant que le dépôt ne soit poussé sur l’amont.
- pre_update(component: weblate.trans.models.Component) None ¶
Gestionnaire d’événements avant que le dépôt ne soit mis à jour à partir de l’amont.
- save_state() None ¶
Enregistrer les informations d’état du greffon.
- store_post_load(translation: Translation, store: TranslationFormat) None ¶
Gestionnaire d’événements après l’analyse d’un fichier.
Il reçoit comme argument une instance de la classe d’un format de fichier.
C’est utile pour modifier les paramètres de classe du format de fichier, par exemple pour déclarer la manière dont le fichier sera sauvegardé.
- class weblate.addons.models.Addon¶
Objet ORM pour un greffon.
- class weblate.trans.models.Component¶
Objet ORM pour un composant.
- class weblate.trans.models.Translation¶
Objet ORM pour une traduction.
- class weblate.trans.models.Project¶
Objet ORM pour un projet.
- class weblate.trans.models.Unit¶
Objet ORM pour une unité.
- class weblate.trans.models.User¶
Objet ORM pour un utilisateur.
- class weblate.trans.models.TranslationFormat¶
Conteneur d’un fichier de traduction.
- class weblate.trans.models.BaseAddonForm¶
Base form for configuring add-ons.
Voici un exemple de greffon :
# 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