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.

Sugestie

You can also customize Weblate look in Appearance customization.

Atenționare

Neither internal interfaces nor templates are considered a stable API. Please review your customizations for every upgrade, the interfaces or their semantics might change without notice.

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

Sugestie

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. 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. În cadrul acestuia, creați un fișier __init__.py pentru a vă asigura că Python poate importa modulul.

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

  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
├── pyproject.toml
└── src
    └── 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.

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

To install your code for Reparații automate personalizate, Întocmirea propriilor cecuri, Traducere automată personalizată or Add-on de scriere in Weblate:

  1. Place the files into your Python module containing the Weblate customization (see Crearea unui modul Python 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",)