A Weblate testreszabása

A Weblate bővíthető és testreszabható Django és Python segítségével. A módosítások forrásba történő visszajuttatásával mindenki számára előnyös lehetőségeket teremthet, valamint csökkentheti saját karbantartási költségeit. A Weblate kódját aktívan gondozzák, így a belső interfészek változása vagy a kód átalakítása során a testreszabott megoldások is naprakészek maradhatnak.

Tipp

A Weblate megjelenése is testreszabható a Megjelenés testreszabása oldalon keresztül.

Figyelem

Fontos megjegyezni, hogy sem a belső interfészek, sem a sablonok nem tekinthetők stabil API-nak. Érdemes minden frissítés után átvizsgálni a testreszabásokat, mivel az interfészek vagy azok működése értesítés nélkül is változhat.

Python modul létrehozása

Amennyiben nem ismeri a Pythont, érdemes először megismerkedni az alapokkal, például a Python kezdőknek útmutató segítségével, amely további oktatóanyagokat is ajánl.

Egyedi Python kód (modul) írásához szükséges egy hely, ahol ezt tárolni tudja – például a rendszer elérési útvonalán (általában valami hasonló: /usr/lib/python3.12/site-packages/) vagy a Weblate könyvtárában, amely szintén hozzá van adva az értelmező keresési útvonalához.

Tipp

Docker használata esetén Python modulokat helyezhet el a /app/data/python/ könyvtárban (lásd: Docker-konténer kötetek), így azok betölthetők a Weblate által, például egy beállítás-felülírási fájlból.

Még jobb megoldás, ha a testreszabását egy megfelelő Python csomag formájában készíti el:

  1. Hozzon létre egy mappát a csomag számára (például weblate_customization néven).

  2. Within it, create a pyproject.toml file to describe the package:

    [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. Create a folder for the Python module: src/weblate_customization

  4. Ebben a mappában hozzon létre egy __init__.py fájlt, hogy a Python importálni tudja a modult.

  5. This package can now be installed using uv pip install -e. More info to be found in Editable packages documentation.

  6. Miután telepítette, a modult már használhatja a Weblate konfigurációjában (például: weblate_customization.checks.FooCheck).

A csomagstruktúrája a így kell, hogy kinézzen:

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

A Weblate testreszabására egy példát talál a következő címen: <https://github.com/WeblateOrg/customize-example>, amely az alábbi témákat is bemutatja.

Custom quality checks, add-ons, automatic suggestions and auto-fixes

To install your code for Egyéni automatikus javítások, Egyedi ellenőrzések írása, Egyedi gépi fordítás or Kiegészítő írása in Weblate:

  1. Place the files into your Python module containing the Weblate customization (see Python modul létrehozása or Customizing code).

  2. Add its fully-qualified path to the Python class in the dedicated settings:

# 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",)