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.

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:

  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. Create a folder for the Python module: src/weblate_customization

  4. Dentro dele, crie um ficheiro __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).

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.

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:

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

  2. 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",)