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
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:
Crea una carpeta para tu paquete (usaremos weblate_customization).
Dentro, crea un archivo
pyproject.tomlpara 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 = []
Crea una carpeta para el módulo Python:
src/weblate_customizationDentro de él, cree un archivo
__init__.pypara garantizar que Python pueda importar el módulo.Este paquete ahora puede ser instalado utilizando uv pip install -e. Para más información puede encontrarla en Documentación editable de paquetes.
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.
Cambiar el logo¶
Cree una app Django simple conteniendo los archivos estáticos que desea sobrescribir (consulte Crear un módulo de Python).
La marca aparece en los archivos siguientes:
icons/weblate.svgLogo mostrado en la barra de navegación.
logo-*.pngLos iconos de la web dependen en la resolución de la pantalla y el explorador-web.
favicon.icoIcono web empleado por navegadores heredados.
weblate-*.pngAvatares para bots o usuarios anónimos. Algunos exploradores de web utilizan estos como enlaces breves de iconos.
email-logo.pngUtilizado en correos-e de notificaciones.
Añádalo a
INSTALLED_APPS:INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
Ejecute
weblate collectstatic --noinput, para colección estática de archivos servidos a clientes.
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:
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).
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",)