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:

docs

Código fuente de esta documentación, que se puede crear utilizando Sphinx.

dev-docker

Código de Docker para ejecutar el servidor de desarrollo, consulte Ejecuta Weblate localmente en Docker.

weblate

Código fuente de Weblate como una aplicación Django, consulte Weblate por dentro.

weblate/static

Archivos 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

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:

celery

La cola predeterminada donde se procesan las tareas en segundo plano.

notify

Entrega 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.

memory

Actualiza 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.

backup

El respaldo de tareas no pueden ser ejecutadas en paralelo, y un solo trabajador dedicado hace esto más fácil.

translate

Se sabe que las tareas de traducción automática toman mucho tiempo porque afectan a servicios externos.