Personalizarea Weblate¶
Extindeți și personalizați folosind Django și Python. Contribuiți la modificările dvs. în amonte, astfel încât toată lumea să poată beneficia. Acest lucru vă reduce costurile de întreținere; codul din Weblate este luat în grijă atunci când modificați interfețele interne sau refactorizați codul.
Sugestie
You can also customize Weblate look in Appearance customization.
Atenționare
Neither internal interfaces nor templates are considered a stable API. Please review your customizations for every upgrade, the interfaces or their semantics might change without notice.
Vezi și
Crearea unui modul Python¶
Dacă nu sunteți familiarizat cu Python, ar fi bine să consultați Python pentru începători, care explică elementele de bază și indică alte tutoriale.
To write a file with custom Python code (called a module), a place to store it
is needed, either in the system path (usually something like
/usr/lib/python3.12/site-packages/) or in the Weblate directory, which
is also added to the interpreter search path.
Sugestie
When using Docker, you can place Python modules in
/app/data/python/ (see Volumele containerelor Docker), so they can be loaded
by Weblate, for example from a settings override file.
Mai bine, transformați-vă personalizarea într-un pachet Python propriu-zis:
Creați un folder pentru pachetul dumneavoastră (vom folosi weblate_customization).
Within it, create a
pyproject.tomlfile to describe the package:[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 = []
Create a folder for the Python module:
src/weblate_customizationÎn cadrul acestuia, creați un fișier
__init__.pypentru a vă asigura că Python poate importa modulul.This package can now be installed using uv pip install -e. More info to be found in Editable packages documentation.
Odată instalat, modulul poate fi utilizat în configurația Weblate (de exemplu
weblate_customization.checks.FooCheck).
Your package structure should look like this:
weblate_customization
├── pyproject.toml
└── src
└── weblate_customization
├── __init__.py
├── addons.py
└── checks.py
Puteți găsi un exemplu de personalizare a Weblate la <https://github.com/WeblateOrg/customize-example>, care acoperă toate subiectele descrise mai jos.
Schimbarea logo-ului¶
Creați o aplicație Django simplă care să conțină fișierele statice pe care doriți să le suprascrieți (a se vedea Crearea unui modul Python).
Brandingul apare în următoarele fișiere:
icons/weblate.svgLogo afișat în bara de navigare.
logo-*.pngPictogramele web depind de rezoluția ecranului și de browserul web.
favicon.icoPictograma web utilizată de browserele vechi.
weblate-*.pngAvataruri pentru roboți sau utilizatori anonimi. Unele browsere web le folosesc ca pictograme de scurtătură.
email-logo.pngFolosit în e-mailurile de notificare.
Adăugați-l la
INSTALLED_APPS:INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
Rulați
weblate collectstatic --noinput, pentru a colecta fișierele statice servite clienților.
Custom quality checks, add-ons, automatic suggestions and auto-fixes¶
To install your code for Reparații automate personalizate, Întocmirea propriilor cecuri, Traducere automată personalizată or Add-on de scriere in Weblate:
Place the files into your Python module containing the Weblate customization (see Crearea unui modul Python or Customizing code).
Add its fully-qualified path to the Python class in the dedicated settings:
# 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",)