Weblate aanpassen¶
Breid uit en pas aan met Django en Python. Deel uw bijdragen upstream zodat iedereen er voordeel van heeft. Dit verkleint de kosten van onderhoud; code in Weblate wordt verzorgd bij het wijzigen van interne interfaces of opnieuw refactoren van de code.
Hint
U kunt ook het uiterlijk van Weblate aanpassen in Uiterlijk aanpassen.
Waarschuwing
Interne interfaces noch sjablonen worden beschouwd als een stabiele API. Beoordeel uw aanpassingen voor elke upgrade, de interfaces of hun semantiek zou zonder bericht kunnen wijzigen.
Zie ook
Een module voor Python maken¶
Als u nog niet bekend bent met Python, zou u misschien willen beginnen met Python For Beginners, wat de basisbeginselen uitlegt en verwijst naar meer handleidingen.
Voor het schrijven van een bestand met aangepaste code voor Python (een module genaamd), is een plek nodig om hem op te slaan, ofwel in het systeempad (gewoonlijk iets als /usr/lib/python3.12/site-packages/
) of in de map van Weblate, die ook is toegevoegd aan het zoekpad voor de interpreter.
Hint
Bij het gebruiken van Docker, kunt u modules voor Python plaatsen in /app/data/python/
(bekijk Docker container volumes), zodat zij kunnen worden geladen door Weblate, bijvoorbeeld vanuit een bestand voor overschrijven van instellingen.
Beter nog, maak van uw aanpassingen een echt pakket voor Python:
Maak een map voor uw pakket (wij zullen weblate_customization gebruiken).
Maak daarin een bestand
setup.py
om het pakket te beschrijven:from setuptools import setup setup( name="weblate_customization", version="0.0.1", author="Your name", author_email="yourname@example.com", description="Sample Custom check for Weblate.", license="GPLv3+", keywords="Weblate check example", packages=["weblate_customization"], )
Maak een map voor de module van Python (ook
weblate_customization
genaamd) voor de code van de aanpassingen.Maak daarin een bestand
__init__.py
om er voor te zorgen dat Python de module kan importeren.Dit pakket kan nu worden geïnstalleerd met pip install -e. Meer informatie is te vinden in Editable installs.
Eenmaal geïnstalleerd kan de module worden gebruikt in de configuratie van Weblate (bijvoorbeeld
weblate_customization.checks.FooCheck
).
De structuur van uw pakket zou er zo uitzien:
weblate_customization
├── setup.py
└── weblate_customization
├── __init__.py
├── addons.py
└── checks.py
U kunt een voorbeeld van het aanpassen van Weblate vinden op <https://github.com/WeblateOrg/customize-example>, het behandelt alle hieronder beschreven onderwerpen.
Het logo wijzigen¶
Maak een eenvoudige Django app die de statische bestanden bevat die u wilt overschrijven (bekijk Een module voor Python maken).
Branding is aanwezig in de volgende bestanden:
icons/weblate.svg
Logo weergegeven in de balk voor navigatie.
logo-*.png
Webpictogrammen afhankelijk van de schermresolutie en webbrowser.
favicon.ico
Webpictogram gebruikt door verouderde browsers.
weblate-*.png
Avatars voor bots of anonieme gebruikers. Sommige webbrowsers gebruiken deze als pictogrammen voor sneltoetsen.
email-logo.png
Gebruikt in e-mails voor notificatie.
Voeg het toe aan
INSTALLED_APPS
:INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
Voer uit
weblate collectstatic --noinput
, om statische bestanden die worden geserveerd aan cliënten te verzamelen.
Aangepaste controles voor kwaliteit, add-ons en automatisch repareren¶
Installeren van uw code voor Aangepaste automatische reparaties, Eigen controles schrijven of Add-on schrijven in Weblate:
Plaats de bestanden in uw module voor Python die de aanpassingen voor Weblate bevat (bekijk Een module voor Python maken).
Voeg zijn volledig gekwalificeerde pad toe aan de klasse van Python in de toegewezen instellingen (
WEBLATE_ADDONS
,CHECK_LIST
ofAUTOFIX_LIST
):
# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)
# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)
# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)