Internen van Weblate

Notitie

Dit hoofdstuk geeft u een basisoverzicht van de internen van Weblate.

Weblate leidt de meeste structuur voor zijn code af van, en is gebaseerd op Django.

Mappenstructuur

Snel overzicht van de mappenstructuur van de hoofdopslagruimte van Weblate:

docs

Broncode voor deze documentatie, die kan worden gebouwd met Sphinx.

dev-docker

Code voor Docker om de ontwikkelingsserver uit te voeren, bekijk Weblate lokaal in Docker uitvoeren.

weblate

Broncode van Weblate as een toepassing van Django, bekijk Internen van Weblate.

weblate/static

Cliëntbestanden (CSS, Javascript en afbeeldingen), bekijk Voorzijde van Weblate.

Modules

Weblate bestaat uit verschillende toepassingen voor Django (sommige optioneel, bekijk Optionele modules voor Weblate):

accounts

Gebruikeraccount, profielen en notificaties.

addons

Add-ons om het gedrag van Weblate aan te passen, bekijk Add-ons.

api

API, gebaseerd op Django REST framework.

auth

Authenticatie en rechten.

billing

De optionele module Facturatie.

checks

Module Vertaling tekenreeks Kwaliteitscontroles.

fonts

Module voor controles van renderen van lettertypen.

formats

Abstracte laag bestandsindeling, gebaseerd op Translate-Toolkit.

gitexport

De optionele module Git exporter.

lang

Module die taal en modellen voor meervouden definieert.

legal

De optionele module Wettelijke module.

machinery

Integratie van services voor machinevertaling.

memory

Ingebouwd vertaalgeheugen, bekijk Vertaalgeheugen.

screenshots

Beheren van schermafdrukken en module voor OCR.

trans

Hoofdmodule voor afhandelen van vertalingen.

utils

Verscheidene hulpprogramma’s.

vcs

Abstracte versiebeheersysteem.

wladmin

Django aanpassen beheerinterface.

Internen van achtergrondtaken

Hint

Dit gedeelte beschrijft de internen voor de taken van Celery. Achtergrondtaken met Celery beschrijft hoe Celery te configureren om de taken uit te voeren.

Weblate gebruikt Celery om taken op de achtergrond uit te voeren. Sommige taken worden geactiveerd door gebeurtenissen en sommige taken worden door een schema geactiveerd.

De Celery Beat wordt gebruikt voor het in schema zetten van taken en django-celery-beat wordt gebruikt om het periodieke schema voor de taken op te slaan in de database. Het schema met taken wordt geconfigureerd in tasks.py in elk van de apps voor Django.

De taken worden geconsumeerd door middel van verscheidene wachtrijen; de routing wordt geconfigureerd in settings.py. De wachtrijen werden ontworpen om de verschillende typen lading te scheiden:

celery

De standaard wachtrij waar de taken op de achtergrond worden verwerkt.

notify

Levert e-mails van notificatie af, zowel voor gebeurtenissen binnen Weblate als voor authenticatie of registratie. Dit is een afzonderlijke wachtrij om afleveren van e-mail gladjes te laten verlopen, zelfs als er achterstand is in andere taken.

memory

Werkt items van vertaalgeheugens bij. De wachtrij voor updaten kan lang zijn bij het importeren van nieuwe tekenreeksen en langdurig verwerken maakt hier niet zoveel uit, dus het hebben van een afzonderlijke wachtrij vermijdt het blokkeren van andere taken.

backup

De taken voor back-up kunnen niet parallel worden uitgevoerd en een enkele aangewezen worker maakt dit gemakkelijker.

translate

Taken voor automatisch vertalen staan erom bekend dat zij lang duren, omdat ze externe services gebruiken.