Weblate aanpassen

Breid uit en pas aan met Django en Python. Deel uw bijdragen upstream zodat iedereen er voordeel van heeft. Dit verkleint de kosten van onderhoud; code in Weblate wordt verzorgd bij het wijzigen van interne interfaces of opnieuw refactoren van de code.

Hint

U kunt ook het uiterlijk van Weblate aanpassen in Uiterlijk aanpassen.

Waarschuwing

Interne interfaces noch sjablonen worden beschouwd als een stabiele API. Beoordeel uw aanpassingen voor elke upgrade, de interfaces of hun semantiek zou zonder bericht kunnen wijzigen.

Een module voor Python maken

Als u nog niet bekend bent met Python, zou u misschien willen beginnen met Python For Beginners, wat de basisbeginselen uitlegt en verwijst naar meer handleidingen.

Voor het schrijven van een bestand met aangepaste code voor Python (een module genaamd), is een plek nodig om hem op te slaan, ofwel in het systeempad (gewoonlijk iets als /usr/lib/python3.12/site-packages/) of in de map van Weblate, die ook is toegevoegd aan het zoekpad voor de interpreter.

Hint

Bij het gebruiken van Docker, kunt u modules voor Python plaatsen in /app/data/python/ (bekijk Docker container volumes), zodat zij kunnen worden geladen door Weblate, bijvoorbeeld vanuit een bestand voor overschrijven van instellingen.

Beter nog, maak van uw aanpassingen een echt pakket voor Python:

  1. Maak een map voor uw pakket (wij zullen weblate_customization gebruiken).

  2. Maak daarin een bestand setup.py om het pakket te beschrijven:

    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. Maak een map voor de module van Python (ook weblate_customization genaamd) voor de code van de aanpassingen.

  4. Maak daarin een bestand __init__.py om er voor te zorgen dat Python de module kan importeren.

  5. Dit pakket kan nu worden geïnstalleerd met pip install -e. Meer informatie is te vinden in Editable installs.

  6. Eenmaal geïnstalleerd kan de module worden gebruikt in de configuratie van Weblate (bijvoorbeeld weblate_customization.checks.FooCheck).

De structuur van uw pakket zou er zo uitzien:

weblate_customization
├── setup.py
└── weblate_customization
    ├── __init__.py
    ├── addons.py
    └── checks.py

U kunt een voorbeeld van het aanpassen van Weblate vinden op <https://github.com/WeblateOrg/customize-example>, het behandelt alle hieronder beschreven onderwerpen.

Aangepaste controles voor kwaliteit, add-ons en automatisch repareren

Installeren van uw code voor Aangepaste automatische reparaties, Eigen controles schrijven of Add-on schrijven in Weblate:

  1. Plaats de bestanden in uw module voor Python die de aanpassingen voor Weblate bevat (bekijk Een module voor Python maken).

  2. Voeg zijn volledig gekwalificeerde pad toe aan de klasse van Python in de toegewezen instellingen (WEBLATE_ADDONS, CHECK_LIST of AUTOFIX_LIST):

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

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

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