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 Anpassen des Erscheinungsbilds 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.

Erstellen eines Python-Moduls#

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.

To write a file with custom Python code (called a module), a place to store it is needed, either in the system path (usually something like /usr/lib/python3.12/site-packages/) or in the Weblate directory, which is also added to the interpreter search path.

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.

Noch besser ist es, wenn Sie Ihre Anpassungen in ein richtiges Python-Paket verwandeln:

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

  2. Erstellen Sie darin eine Datei setup.py, um das Paket zu beschreiben:

    from setuptools import setup
    
    setup(
        name="weblate_customization",
        version="0.0.1",
        author="Your name",
        author_email="yourname@example.com",
        description="Sample Custom check for Weblate.",
        license="GPLv3+",
        keywords="Weblate check example",
        packages=["weblate_customization"],
    )
    
  3. Erstellen Sie einen Ordner für das Python-Modul (auch weblate_customization genannt) für den Anpassungscode.

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

  5. Dieses Paket kann nun mit pip install -e installiert werden. Weitere Informationen sind in Editable installs zu finden.

  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
├── setup.py
└── 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 und automatische Korrekturen#

So installieren Sie Ihren Code für Benutzerdefinierte automatische Korrekturen, Eigene Qualitätsprüfungen schreiben oder Schreiben einer Erweiterung in Weblate:

  1. Platzieren Sie die Dateien in Ihr Python-Modul, das die Weblate-Anpassung enthält (siehe Erstellen eines Python-Moduls).

  2. Fügen Sie den vollqualifizierten Pfad zur Python-Klasse in den speziell dafür vorgesehenen Einstellungen (WEBLATE_ADDONS, CHECK_LIST oder AUTOFIX_LIST) hinzu:

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

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

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