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

Quando se está usando Docker pode pôr os módulos Python em /app/data/python/ (veja Volumes de contentor Docker), de forma que eles podem ser carregados pelo Weblate. Por exemplo, a partir de um ficheiro de substituição de configurações.

Melhor ainda, transforme a sua personalização num pacote Python adequado:

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

  2. Dentro dele, crie um ficheiro setup.py para descrever o pacote:

    from setuptools import setup
    
    setup(
        name="weblate_customization",
        version="0.0.1",
        author="Your name",
        author_email="yourname@example.com",
        description="Sample Custom check for Weblate.",
        license="GPLv3+",
        keywords="Weblate check example",
        packages=["weblate_customization"],
    )
    
  3. Crie uma pasta para o módulo Python (também chamado de weblate_customization) para o código de personalização.

  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 pip install -e. Mais informações a serem encontradas em Editable installs.

  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
├── setup.py
└── 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.

Verificações de qualidade personalizadas, extensões e correções automáticas

Para instalar o seu código para Correções automáticas personalizadas, Escrever as próprias verificações ou Escrevendo extensões no Weblate:

  1. Ponha os ficheiros no seu módulo Python a conter a personalização ao Weblate (veja Criar um módulo Python).

  2. Adicione o caminho totalmente qualificado dele à classe Python nas configurações dedicadas (WEBLATE_ADDONS, CHECK_LIST ou AUTOFIX_LIST):

# Checks
CHECK_LIST += ("weblate_customization.checks.FooCheck",)

# Autofixes
AUTOFIX_LIST += ("weblate_customization.autofix.FooFixer",)

# Add-ons
WEBLATE_ADDONS += ("weblate_customization.addons.ExamplePreAddon",)