Tworzenie dodatków#

Dodatki are way to customize localization workflow in Weblate.

class weblate.addons.base.BaseAddon(storage=None)#

Base class for Weblate add-ons.

classmethod can_install(component, user)#

Sprawdź, czy dodatek jest kompatybilny z danym komponentem.


Hook for component update.


Zapisz konfigurację.


Hook wyzwalany codziennie.

classmethod get_add_form(user, component, **kwargs)#

Zwróć formularz konfiguracji dla dodania nowego dodatku.

get_settings_form(user, **kwargs)#

Zwróć formularz konfiguracji dla tego dodatku.


Hook wyzwalany po dodaniu nowego tłumaczenia.


Hook wyzwalany po scommitowaniu zmian do repozytorium.


Hook wyzwalany po wysłaniu zmian na repozytorium.

post_update(component, previous_head: str, skip_push: bool, child: bool)#

Hook triggered after repository is updated from upstream.

  • previous_head (str) – HEAD of the repository prior to update, can be blank on initial clone.

  • skip_push (bool) – Whether the add-on operation should skip pushing changes upstream. Usually you can pass this to underlying methods as commit_and_push or commit_pending.

pre_commit(translation, author)#

Hook wyzwalany przed scommitowaniem zmian do repozytorium.


Hook triggered before repository is pushed upstream.


Hook triggered before repository is updated from upstream.


Zapisz informacje o stanie dodatku.

store_post_load(translation, store)#

Hook wyzwalany po przeparsowaniu pliku.

It receives an instance of a file format class as a argument.

This is useful to modify file format class parameters, for example adjust how the file will be saved.


Hook triggered before new unit is created.


Weblate user used to track changes by this add-on.

Oto przykładowy dodatek:

# Copyright © Michal Čihař <>
# SPDX-License-Identifier: GPL-3.0-or-later

from django.utils.translation import gettext_lazy

from weblate.addons.base import BaseAddon
from 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):