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:
docsBroncode voor deze documentatie, die kan worden gebouwd met Sphinx.
dev-dockerCode voor Docker om de ontwikkelingsserver uit te voeren, bekijk Weblate lokaal in Docker uitvoeren.
weblateBroncode van Weblate as een toepassing van Django, bekijk Internen van Weblate.
weblate/staticClië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:
celeryDe standaard wachtrij waar de taken op de achtergrond worden verwerkt.
notifyLevert 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.
memoryWerkt 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.
backupDe taken voor back-up kunnen niet parallel worden uitgevoerd en een enkele aangewezen worker maakt dit gemakkelijker.
translateTaken voor automatisch vertalen staan erom bekend dat zij lang duren, omdat ze externe services gebruiken.