Personalizar Weblate

Extienda y personalice utilizando Django y Python. Contribuya sus cambios en desarrollo 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 un API estable. Revise sus adaptaciones con cada migració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 un 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. Dentro, crea un archivo pyproject.toml para describir el paquete:

    [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. Crea una carpeta para el módulo Python: src/weblate_customization

  4. Dentro de él, cree un archivo __init__.py para garantizar que Python pueda importar el módulo.

  5. Este paquete ahora puede ser instalado utilizando uv pip install -e. Para más información puede encontrarla en Documentación editable de paquetes.

  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.

Controles de calidad personalizados, sugerencias automáticas y auto-correcciones

Para instalar su código para Correcciones automáticas personalizadas, Escribir los propios controles, Traducción automática personalizada o Complemento de escritura interno a Weblate:

  1. Coloque los archivos en su módulo Python conteniendo la personalización Weblate (consulte Crear un módulo de Python o Personalización del código).

  2. Añada una ruta completa cualificada para la clase de Python en los ajustes dedicados:

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