Personalizando o Weblate

Amplie e personalize usando Django e Python. Contribua suas alterações para o upstream acima para que todos possam se beneficiar. Isso reduz seus custos de manutenção; código no Weblate é cuidado ao alterar interfaces internas ou refatorar o código.

Dica

Você 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. Revise suas personalizações a cada atualização, pois as interfaces ou sua semântica podem mudar sem aviso prévio.

Criando um módulo Python

Se você não está familiarizado com Python, você pode querer olhar para Python For Beginners, explicando o básico e apontando para os tutoriais adicionais.

Para escrever um arquivo 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 busca do interpretador.

Dica

When using Docker, you can place Python modules in /app/data/python/ (see Volumes de contêiner Docker), so they can be loaded by Weblate, for example from a settings override file.

Melhor ainda, transforme sua personalização em um pacote Python adequado:

  1. Crie uma pasta para o seu pacote (usaremos weblate_customization).

  2. Within it, create a pyproject.toml file 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 = []
    
  3. Crie uma pasta para o módulo Python: src/weblate_customization

  4. Dentro dele, crie um arquivo __init__.py para garantir que o Python possa importar o módulo.

  5. This package can now be installed using uv pip install -e. More info to be found in Editable packages documentation.

  6. Uma vez instalado, o módulo pode ser usado na configuração Weblate (por exemplo, weblate_customization.checks.FooCheck).

Sua estrutura de pacotes deve ser assim:

weblate_customization
├── pyproject.toml
└── src
    └── weblate_customization
        ├── __init__.py
        ├── addons.py
        └── checks.py

Você pode encontrar um exemplo de personalização do Weblate em <https://github.com/WeblateOrg/customize-example>, ele abrange todos os tópicos descritos abaixo.

Custom quality checks, add-ons, automatic suggestions and auto-fixes

To install your code for Correções automáticas personalizadas, Escrevendo as próprias verificações, Tradução automática personalizada or Escrevendo complementos in Weblate:

  1. Place the files into your Python module containing the Weblate customization (see Criando um módulo Python or Customizing code).

  2. Adicione seu caminho totalmente qualificado à classe Python nas configurações dedicadas:

# 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",)