Personalizar o Weblate¶
Amplie e personalize a usar Django e Python. Contribua as suas alterações para o upstream acima para que todos possam se beneficiar. Isso reduz os seus custos de manutenção; código no Weblate é cuidado ao alterar interfaces internas ou refatorar o código.
Dica
Também pode personalizar a aparência do Weblate em Personalização da aparência.
Aviso
Nem as interfaces internas nem os modelos são considerados uma API estável. Reveja as suas personalizações para cada atualização, pois as interfaces ou a sua semântica podem ser alterados sem aviso prévio.
Veja também
Criar um módulo Python¶
Se não conheçe o Python, pode olhar para Python For Beginners, que explica o básico e aponta aos tutoriais adicionais.
Para escrever um ficheiro com código Python personalizado (chamado de módulo), é necessário um lugar para armazená-lo, seja no caminho do sistema (geralmente algo como /usr/lib/python3.12/site-packages/) ou no diretório Weblate, que também é adicionado ao caminho de pesquisa do interpretador.
Dica
When using Docker, you can place Python modules in
/app/data/python/ (see Volumes de contentor Docker), so they can be loaded
by Weblate, for example from a settings override file.
Melhor ainda, transforme a sua personalização num pacote Python adequado:
Crie uma pasta para o seu pacote (usaremos 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_customizationDentro dele, crie um ficheiro
__init__.pypara garantir que o Python possa importar o módulo.This package can now be installed using uv pip install -e. More info to be found in Editable packages documentation.
Uma vez instalado, o módulo pode ser usado na configuração Weblate (por exemplo,
weblate_customization.checks.FooCheck).
A sua estrutura de pacotes deve ser assim:
weblate_customization
├── pyproject.toml
└── src
└── weblate_customization
├── __init__.py
├── addons.py
└── checks.py
Pode encontrar um exemplo de personalização do Weblate em <https://github.com/WeblateOrg/customize-example>, ele abrange todos os tópicos descritos abaixo.
Alterar o logotipo¶
Crie uma app Django simples a conter os ficheiros estáticos que deseja substituir (veja Criar um módulo Python).
A marca aparece nos ficheiros seguintes:
icons/weblate.svgLogotipo mostrado na barra de navegação.
logo-*.pngÍcones web dependendo da resolução do ecrã e do navegador web.
favicon.icoÍcone web usado por navegadores legados.
weblate-*.pngAvatares para bots ou utilizadores anônimos. Alguns navegadores web usam-nos como ícones de atalho.
email-logo.pngUsado em e-mails de notificações.
Adicione-o a
INSTALLED_APPS:INSTALLED_APPS = ( # Add your customization as first "weblate_customization", # Weblate apps are here… )
Execute
weblate collectstatic --noinput, para coletar ficheiros estáticos servidos aos clientes.
Custom quality checks, add-ons, automatic suggestions and auto-fixes¶
To install your code for Correções automáticas personalizadas, Escrever as próprias verificações, Tradução da máquina personalizada or Escrevendo extensões in Weblate:
Place the files into your Python module containing the Weblate customization (see Criar um módulo 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",)