Personalizar Weblate

Extienda y personalice utilizando Django y Python. Contribuya sus cambios upstream tal que todos puedan beneficiarse. Esto reduce su costes de mantenimiento; código en Weblate es cuidado de cuando cambie interfaces internos o refactoricen el código.

Consejo

Además puede personalizar la apariencia de Weblate en Personalización de la apariencia.

Advertencia

Ni las interfaces internas ni las plantillas se consideran una API estable. Revise sus personalizaciones con cada actualización; las interfaces o su semántica pueden cambiar sin previo aviso.

Ver también

Contribuir con Weblate

Crear un módulo de Python

Si no es familiar con Python, quizá quiera buscar en Python For Beginners, explicando lo básico y apuntanto a más tutoriales.

Para escribir un archivo con código Python personalizado (llamado módulo), se necesita un lugar donde almacenarlo, ya sea en la ruta del sistema (generalmente algo como /usr/lib/python3.12/site-packages/) o en el directorio Weblate, que también se agrega a la ruta de búsqueda del intérprete.

Consejo

Al usar using Docker, puede colocar módulos de Python en /app/data/python/ (consulte Volúmenes de contenedores Docker) para que Weblate pueda cargarlos, por ejemplo, desde un archivo de anulación de configuración settings override file.

Mejor aún, convierta su personalización en un paquete de Python adecuado:

  1. Crea una carpeta para tu paquete (usaremos 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. Dentro de él, cree un archivo __init__.py para garantizar que Python pueda importar el módulo.

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

  6. Una vez instalado, el módulo puede ser utilizado en la configuración Weblate (por ejemplo weblate_customization.checks.FooCheck).

Su estructura de paquete parecería similar a esta:

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

Puede encontrar un ejemplo de personalización de Weblate en <https://github.com/WeblateOrg/customize-example>, cubre todo el tema descrito a continuación.

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

To install your code for Correcciones automáticas personalizadas, Escribir los propios controles, Traducción automática personalizada or Complemento de escritura in Weblate:

  1. Place the files into your Python module containing the Weblate customization (see Crear un módulo de Python or Personalización del código).

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