Weblate anpassen

Erweiterungen und Anpassungen mit Django und Python. Tragen Sie Ihre Änderungen Upstream bei, damit alle davon profitieren können. Das reduziert Ihre Wartungskosten; Code in Weblate wird bei Änderungen an internen Schnittstellen oder beim Refactoring des Codes berücksichtigt.

Hinweis

Sie können das Aussehen von Weblate auch unter Erscheinungsbild anpassen anpassen.

Warnung

Weder interne Schnittstellen noch Vorlagen gelten als stabile API. Bitte überprüfen Sie bei jedem Upgrade Ihre Anpassungen, da sich die Schnittstellen oder ihre Semantik ohne Vorankündigung ändern können.

Ein Python-Modul erstellen

Wenn Sie mit Python noch nicht vertraut sind, sollten Sie sich Python für Anfänger ansehen, wo die Grundlagen erklärt werden und auf weitere Tutorials verwiesen wird.

Um eine Datei mit benutzerdefiniertem Python-Code (Modul genannt) zu schreiben, wird ein Speicherort benötigt, entweder im Systempfad (normalerweise etwas wie /usr/lib/python3.12/site-packages/) oder im Weblate-Verzeichnis, das auch dem Suchpfad des Interpreters hinzugefügt wird.

Hinweis

Wenn Sie Docker verwenden, können Sie Python-Module in /app/data/python/ ablegen (siehe Docker-Container-Volumes), sodass sie von Weblate geladen werden können, zum Beispiel aus einer Settings-Override-Datei.

Besser noch, machen Sie aus Ihren Anpassungen ein richtiges Python-Paket:

  1. Erstellen Sie einen Ordner für Ihr Paket (wir verwenden weblate_customization).

  2. Erstellen Sie darin eine Datei pyproject.toml, um das Paket zu beschreiben:

    [build-system]
    requires = ["uv_build>=0.8.18,<0.9.0"]
    build-backend = "uv_build"
    
    [project]
    name = "weblate-customization"
    version = "0.1.0"
    description = "Add your description here"
    requires-python = ">=3.13"
    dependencies = []
    
  3. Erstellen Sie einen Ordner für das Python-Modul: src/weblate_customization

  4. Erstellen Sie darin eine __init__.py-Datei, um sicherzustellen, dass Python das Modul importieren kann.

  5. Dieses Paket kann nun mit uv pip install -e installiert werden. Weitere Informationen finden Sie in der Dokumentation Editable packages.

  6. Nach der Installation kann das Modul in der Weblate-Konfiguration verwendet werden (zum Beispiel weblate_customization.checks.FooCheck).

Die Struktur Ihres Pakets sollte wie folgt aussehen:

weblate_customization
├── pyproject.toml
└── src
    └── weblate_customization
        ├── __init__.py
        ├── addons.py
        └── checks.py

Ein Beispiel für die Anpassung von Weblate finden Sie unter <https://github.com/WeblateOrg/customize-example>, es deckt alle unten beschriebenen Themen ab.

Benutzerdefinierte Qualitätsprüfungen, Erweiterungen, automatische Vorschläge und automatische Korrekturen

So installieren Sie Ihren Code für Benutzerdefinierte automatische Korrekturen, Eigene Qualitätsprüfungen schreiben, Benutzerdefinierte maschinelle Übersetzung oder Eine Erweiterung schreiben in Weblate:

  1. Platzieren Sie die Dateien in Ihr Python-Modul, das die Weblate-Anpassung enthält (siehe Ein Python-Modul erstellen oder Code anpassen).

  2. Fügen Sie den vollqualifizierten Pfad zur Python-Klasse in den entsprechenden Einstellungen hinzu:

# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)

# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)

# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)

# Automatic suggestions
WEBLATE_MACHINERY += ("weblate_customization.machinery.SampleTranslation",)