Eklentileri geliştirmek

Weblate üzerinde yerelleştirme iş akışını özelleştirmek için Eklentiler kullanılabilir.

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

Weblate eklentileri için temel sınıf.

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

Eklentinin belirtilen bileşenle uyumlu olup olmadığını denetler.

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

Bileşen güncelleme etkinliği işleyici.

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

Yapılandırmayı kaydeder.

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

Günlük etkinlikleri işleyici.

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

Yeni eklenti eklemek için yapılandırma formunu görüntüler.

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

Bu eklenti için yapılandırma formunu görüntüler.

post_add(translation: Translation) None

Yeni çeviri eklendikten sonraki etkinlik işleyici.

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

Değişiklikler depoya işlendikten sonraki etkinlik işleyici.

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

Depoyu yukarı akışa ittikten sonraki etkinlik işleyici.

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

Depo yukarı akıştan güncellendikten sonraki etkinlik işleyici.

Parametreler:
  • previous_head (str) – Güncellemeden önce deponun HEAD bölümü. İlk kopyalamada boş olabilir.

  • skip_push (bool) – Eklenti işleminin değişiklikleri yukarı akışa itmeyi atlayıp atlamayacağı. Genellikle bunu temeldeki yöntemlere commit_and_push ya da commit_pending olarak iletebilirsiniz.

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

Değişiklikler depoya işlenmeden önceki etkinlik işleyici.

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

Depo yukarı akışa itilmeden önceki etkinlik işleyici.

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

Depo yukarı akıştan güncellenmeden önceki etkinlik işleyici.

save_state() None

Eklenti durum bilgilerini kaydeder.

store_post_load(translation: Translation, store: TranslationFormat) None

Bir dosya işlendikten sonraki etkinlik işleyici.

Parametre olarak bir dosya biçimi sınıfının bir kopyasını alır.

Bu seçenek, dosyanın nasıl kaydedileceğini ayarlamak gibi dosya biçimi sınıfı parametrelerini değiştirmek için faydalıdır.

unit_pre_create(unit: Unit) None

Yeni birim oluşturulmadan önceki etkinlik işleyici.

user() User

Weblate kullanıcısı bu eklentinin yaptığı değişiklikleri izler.

class weblate.addons.models.Addon

Bir eklentinin ORM nesnesi.

class weblate.trans.models.Component

Bir bileşenin ORM nesnesi.

class weblate.trans.models.Translation

Bir çevirinin ORM nesnesi.

class weblate.trans.models.Project

Bir projenin ORM nesnesi.

class weblate.trans.models.Unit

Bir birimin ORM nesnesi.

class weblate.trans.models.User

Bir kullanıcının ORM nesnesi.

class weblate.trans.models.TranslationFormat

Çeviri dosyası sarmalayıcı.

class weblate.trans.models.BaseAddonForm

Eklentileri yapılandırmak için temel form.

İşte bir örnek eklenti:

# 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