Weblate internt

Observera

I det här kapitlet får du en grundläggande översikt över Weblates interna funktioner.

Weblate hämtar större delen av sin kodstruktur från och baseras på Django.

Katalogstruktur

Snabb översikt över katalogstrukturen i Weblates huvudarkiv:

docs

Källkoden för denna dokumentation, som kan byggas med hjälp av Sphinx.

dev-docker

Docker-kod för att köra utvecklingsservern, se Kör Weblate lokalt i Docker.

weblate

Källkoden för Weblate som en Django applikation, se Weblate internt.

weblate/static

Klientfiler (CSS, Javascript och bilder), se Weblate-frontend.

Moduler

Weblate består av flera Django-applikationer (vissa är valfria, se Valfria Weblate-moduler):

accounts

Användarkonto, profiler och aviseringar.

addons

Tillägg för att justera Weblates beteende, se Tillägg.

api

API baserat på Django REST framework.

auth

Autentisering och behörigheter.

billing

Den valfria modulen Fakturering.

checks

Översättningssträng Kvalitetskontroller-modul.

fonts

Modul för kontroll av teckensnittsrendering.

formats

Filformatabstraktionslager baserat på translate-toolkit.

gitexport

Det valfria modulen Git-exportör.

lang

Modul som definierar språk och pluralmodeller.

legal

Det valfria modulen Juridisk modul.

machinery

Integration av maskinöversättningstjänster.

memory

Inbyggt översättningsminne, se Översättningsminne.

screenshots

Skärmdumpshantering och OCR-modul.

trans

Huvudmodul som hanterar översättningar.

utils

Olika hjälpprogram.

vcs

Abstraktion av versionshanteringssystem.

wladmin

Anpassning av Djangos administratörsgränssnitt.

Bakgrundsuppgifter internt

Råd

Detta avsnitt beskriver Celery-uppgiftens interna funktioner. Bakgrundsuppgifter med Celery beskriver hur man konfigurerar Celery för att köra uppgifterna.

Weblate använder Celery för att utföra uppgifter i bakgrunden. Vissa uppgifter utlöses av händelser, medan andra utlöses av scheman.

Celery Beat används för att schemalägga uppgifter, och django-celery-beat används för att lagra det periodiska uppgiftsschemat i databasen. Uppgiftsschemat konfigureras i tasks.py i var och en av Django-apparna.

Uppgifterna hanteras med hjälp av flera köer; routningen konfigureras i settings.py. Köerna har utformats för att separera olika typer av arbetsbelastning:

celery

Standardkön där bakgrundsuppgifter behandlas.

notify

Levererar e-postmeddelanden, både för händelser inom Weblate och för autentisering eller registrering. Detta är en separat kö för att göra e-postleveransen smidig även om det finns en eftersläpning av andra uppgifter.

memory

Uppdaterar översättningsminnets poster. Uppdateringskön kan bli lång när nya strängar importeras, och lång bearbetningstid spelar ingen större roll här, så en separat kö förhindrar att andra uppgifter blockeras.

backup

Säkerhetskopieringsuppgifterna kan inte utföras parallellt, och en enda dedikerad arbetare underlättar detta.

translate

Automatiska översättningsuppgifter är kända för att ta lång tid eftersom de använder externa tjänster.