Anpassa Weblate¶
Utöka och anpassa med hjälp av Django och Python. Bidra med dina ändringar uppströms så att alla kan dra nytta av dem. Detta minskar dina underhållskostnader; koden i Weblate tas om hand när interna gränssnitt ändras eller koden omarbetas.
Råd
Du kan också anpassa Weblates utseende i Anpassning av utseende.
Varning
Varken interna gränssnitt eller mallar betraktas som ett stabilt API. Kontrollera dina anpassningar vid varje uppgradering, eftersom gränssnitten eller deras semantik kan ändras utan föregående meddelande.
Se även
Skapa en Python-modul¶
Om du inte är bekant med Python kan du titta på Python för nybörjare, som förklarar grunderna och hänvisar till ytterligare handledningar.
För att skriva en fil med anpassad Python-kod (kallad modul) behövs en plats att lagra den, antingen i systemvägen (vanligtvis något i stil med /usr/lib/python3.12/site-packages/) eller i Weblate-katalogen, som också läggs till i tolkens sökväg.
Råd
När du använder Docker kan du placera Python-moduler i /app/data/python/ (se Docker-containervolymer), så att de kan laddas av Weblate, till exempel från en inställningsöverskrivningsfil.
Ännu bättre, gör din anpassning till ett riktigt Python-paket:
Skapa en mapp för ditt paket (vi använder weblate_customization).
Inom den skapar du en
pyproject.toml-fil för att beskriva paketet:[build-system] requires = ["uv_build>=0.8.18,<0.9.0"] build-backend = "uv_build" [project] name = "weblate-customization" version = "0.1.0" description = "Add your description here" requires-python = ">=3.13" dependencies = []
Skapa en mapp för Python-modulen:
src/weblate_customizationInom den skapar du en
__init__.py-fil för att säkerställa att Python kan importera modulen.Detta paket kan nu installeras med uv pip install -e. Mer information finns i Dokumentation om redigerbara paket.
När modulen har installerats kan den användas i Weblate-konfigurationen (till exempel
weblate_customization.checks.FooCheck).
Din paketstruktur bör se ut så här:
weblate_customization
├── pyproject.toml
└── src
└── weblate_customization
├── __init__.py
├── addons.py
└── checks.py
Du kan hitta ett exempel på hur man anpassar Weblate på <https://github.com/WeblateOrg/customize-example>. Det täcker alla ämnen som beskrivs nedan.
Ändra logotypen¶
Skapa en enkel Django-app som innehåller de statiska filer du vill skriva över (se Skapa en Python-modul).
Varumärket förekommer i följande filer:
icons/weblate.svgLogotyp som visas i navigeringsfältet.
logo-*.pngWebbikoner beroende på skärmupplösning och webbläsare.
favicon.icoWebbikon som används av äldre webbläsare.
weblate-*.pngAvatarer för bots eller anonyma användare. Vissa webbläsare använder dessa som genvägsikoner.
email-logo.pngAnvänds i e-postmeddelanden med aviseringar.
Lägg till det i
INSTALLED_APPS:INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
Kör
weblate collectstatic --noinputför att samla in statiska filer som levereras till klienter.
Anpassade kvalitetskontroller, tillägg, automatiska förslag och automatiska korrigeringar¶
För att installera din kod för Anpassade automatiska korrigeringar, Skriva egna checkar, Anpassad maskinöversättning eller Skriv tillägg i Weblate:
Placera filerna i din Python-modul som innehåller Weblate-anpassningen (se Skapa en Python-modul eller Anpassa kod).
Lägg till dess fullständiga sökväg till Python-klassen i de dedikerade inställningarna:
# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)
# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)
# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)
# Automatic suggestions
WEBLATE_MACHINERY += ("weblate_customization.machinery.SampleTranslation",)