Personalizarea Weblate#

Extindeți și personalizați folosind Django și Python. Contribuiți la modificările dvs. în amonte, astfel încât toată lumea să poată beneficia. Acest lucru vă reduce costurile de întreținere; codul din Weblate este luat în grijă atunci când modificați interfețele interne sau refactorizați codul.

Atenționare

Nici interfețele interne, nici șabloanele nu sunt considerate o API stabilă. Vă rugăm să vă revizuiți propriile personalizări la fiecare actualizare, interfețele sau semantica acestora se pot modifica fără notificare prealabilă.

Crearea unui modul Python#

Dacă nu sunteți familiarizat cu Python, ar fi bine să consultați Python pentru începători, care explică elementele de bază și indică alte tutoriale.

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.9/site-packages/) or in the Weblate directory, which is also added to the interpreter search path.

Nou în versiunea 3.8-5: When using Docker, you can place Python modules in /app/data/python/ (see Volumele containerelor Docker), so they can be loaded by Weblate, for example from a settings override file.

Mai bine, transformați-vă personalizarea într-un pachet Python propriu-zis:

  1. Creați un folder pentru pachetul dumneavoastră (vom folosi weblate_customization).

  2. În cadrul acestuia, creați un fișier setup.py pentru a descrie pachetul:

    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. Creați un folder pentru modulul Python (numit și weblate_customization) pentru codul de personalizare.

  4. În cadrul acestuia, creați un fișier __init__.py pentru a vă asigura că Python poate importa modulul.

  5. Acest pachet poate fi instalat acum folosind pip install -e. Mai multe informații pot fi găsite în Editable installs.

  6. Odată instalat, modulul poate fi utilizat în configurația Weblate (de exemplu weblate_customization.checks.FooCheck).

Your package structure should look like this:

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

Puteți găsi un exemplu de personalizare a Weblate la <https://github.com/WeblateOrg/customize-example>, care acoperă toate subiectele descrise mai jos.

Verificări personalizate ale calității, add-on-uri și corecții automate#

Pentru a vă instala codul pentru Reparații automate personalizate, Întocmirea propriilor cecuri sau Add-on de scriere în Weblate:

  1. Plasați fișierele în modulul Python care conține personalizarea Weblate (a se vedea Crearea unui modul Python).

  2. Adăugați calea sa complet calificată la clasa Python în setările dedicate (WEBLATE_ADDONS, CHECK_LIST sau AUTOFIX_LIST):

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

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

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