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. Crie uma pasta para o módulo Python: src/weblate_customization

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

  5. Este pacote agora pode ser instalado a usar uv pip install -e. Mais informações a serem encontradas em Documentação de pacotes editáveis.

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