Разработка надстроек

Надстройки — это способ внести изменений в ваш рабочий процесс локализации с помощью Weblate.

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

Базовый класс для всех надстроек Weblate.

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

Проверяет, совместима ли надстройка с указанным компонентом.

change_event(change: Change) None

Event handler for change event.

component_update(component: weblate.trans.models.Component) None

Назва кампаниента

configure(configuration: dict[str, Any]) None

Сохранение конфигурации.

daily(component: weblate.trans.models.Component) None

Event handler daily.

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

Возвращает форму с пользовательскими настройками. Вызывается при добавлении новой надстройки к компоненту.

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

Возвращает форму с пользовательскими настройками этой надстройки.

post_add(translation: Translation) None

Абнаŭлиаже файл ЛИНГУАС, кали дадажекка нови пиераклад.

post_commit(component: weblate.trans.models.Component, store_hash: bool) None

Укласкі ŭсие змиени ŭ лакаĺни репазіторий

post_push(component: weblate.trans.models.Component) None

Кі треба адсилаć репазіторий при коžним запісие ревізіі.

post_update(component: weblate.trans.models.Component, previous_head: str, skip_push: bool) None

Кі треба адсилаć репазіторий при коžним запісие ревізіі.

Параметры:
  • previous_head (str) – Текущее состояние репозитория (HEAD) перед обновлением; может быть пустым, если этот репозиторий только что склонирован.

  • skip_push (bool) – Определяет, должна ли надстройка пропустить собственно отправку изменений в вышестоящий репозиторий. Обычно этот параметр просто передаётся в конкретные методы реализации, как commit_and_push или commit_pending.

pre_commit(translation: Translation, author: str, store_hash: bool) None

Укласкі ŭсие змиени ŭ лакаĺни репазіторий

pre_push(component: weblate.trans.models.Component) None

Кі треба адсилаć репазіторий при коžним запісие ревізіі.

pre_update(component: weblate.trans.models.Component) None

Кі треба адсилаć репазіторий при коžним запісие ревізіі.

save_state() None

Сохранить информацию о состоянии надстройки.

unit_pre_create(unit: Unit) None

Event handler before new unit is created.

user() User

С помощью этого дополнения пользователь Weblate следит за изменениями.

class weblate.addons.models.Addon

ORM-объект для дополнения.

class weblate.trans.models.Component

Пражект / Кампаниент

class weblate.trans.models.Translation

ORM-объект для перевода.

class weblate.trans.models.Project

Спіс правиерак

class weblate.trans.models.Unit

ORM object for an unit.

class weblate.trans.models.Change

ORM object for an change.

class weblate.trans.models.User

ORM object for an user.

class weblate.trans.models.TranslationFormat

Обёртка файла перевода.

class weblate.trans.models.BaseAddonForm

Базовая форма для конфигурирования надстроек.

Вот пример надстройки:

# 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