Weblate por dentro¶
Nota
Este capítulo le proporcionará una vista resumida básica de las internas de Weblate.
Weblate deriva la mayor parte de la estructura de su código, y está basado en Django.
Estructura de directorios¶
Descripción general rápida de la estructura de directorios del repositorio principal de Weblate:
docsCódigo fuente de esta documentación, que se puede crear utilizando Sphinx.
dev-dockerCódigo de Docker para ejecutar el servidor de desarrollo, consulte Ejecuta Weblate localmente en Docker.
weblateCódigo fuente de Weblate como una aplicación Django, consulte Weblate por dentro.
weblate/staticArchivos cliente (CSS, JavaScript e imágenes), consulte Interfaz de Weblate.
Módulos¶
Weblate se compone de varias aplicaciones de Django (algunas son opcionales; consulte Módulos opcionales de Weblate):
accounts
Cuenta de usuario, perfiles y notificaciones.
addons
Complementos para ajuste del comportamiento de Weblate, consulte Complementos.
api
API basada en Entorno de trabajo REST de Django.
auth
Autenticación y permisos.
billing
El módulo Facturación opcional.
checks
Cadena de traducción Comprobaciones de calidad del módulo.
fonts
Fuente representando comprobaciones de módulo.
formats
Capa de abstracción del formato de archivo basada en translate-toolkit.
gitexport
El módulo opcional Exportador de Git.
lang
Módulo que define los idiomas y los modelos de plurales.
legal
El módulo facultativo Módulo legal.
machinery
Integración de servicios de traducción automática.
memory
Memoria de traducción integrada, consulte Memoria de traducción.
screenshots
Gestión de capturas de pantalla y módulo de OCR.
trans
Módulo principal que manipula las traducciones.
utils
Diversas utilidades auxiliares.
vcs
Abstracción del sistema de control de versiones.
wladmin
Personalización de la interfaz administrativa de Django.
Tareas internas en segundo plano¶
Consejo
La sección describe etiquetas internas de Celery. Tareas en segundo plano con Celery describe como configurar Celery para ejecutar las tareas.
Weblate utiliza Celery para ejecutar tareas en el segundo plano. Algunas tareas son evento-disparado, y algunas tareas son planificado-disparado.
Celery Beat se utiliza para programar tareas, y django-celery-beat se utiliza para almacenar la programación periódica de tareas en la base de datos. La programación de tareas se configura en tasks.py en cada aplicación de Django.
Las tareas se consumen mediante varias colas; el enrutamiento se configura en settings.py. Las colas se diseñaron para separar los diferentes tipos de carga de trabajo:
celeryLa cola predeterminada donde se procesan las tareas en segundo plano.
notifyEntrega correo-e de notificación, ambos para sucesos internos a Weblate y para autenticación o registrado. Esta es una cola separada para facilitar la entrega de correo-e incluso si hay una acumulación de otras tareas.
memoryActualiza los apuntes de la memoria de traducción. La cola de actualización puede ser larga al importar cadenas nuevas, y el procesamiento prolongado no es tan importante en este caso, por lo que tener una cola separada evita bloquear otras tareas.
backupEl respaldo de tareas no pueden ser ejecutadas en paralelo, y un solo trabajador dedicado hace esto más fácil.
translateSe sabe que las tareas de traducción automática toman mucho tiempo porque afectan a servicios externos.