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.

Aviso

Nem interfaces internas nem modelos são considerados uma API estável. Por favor, revise suas próprias personalizações para cada atualização, 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.9/site-packages/) ou no diretório Weblate, que também é adicionado ao caminho de pesquisa do interpretador.

Novo na versão 3.8-5: Quando se está usando Docker você pode colocar os módulos Python em /app/data/python/ (veja Volumes de contêiner Docker), de forma que eles podem ser carregados pelo Weblate. Por exemplo, a partir de um arquivo de substituição de configurações.

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

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

  2. Dentro dele, crie um arquivo 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 arquivo __init__.py para garantir que o Python possa importar o módulo.

  5. Este pacote agora pode ser instalado usando 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).

Sua estrutura de pacotes deve ser assim:

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

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

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

  1. Coloque os arquivos em seu módulo Python contendo a personalização ao Weblate (veja Criando um módulo Python).

  2. Adicione seu caminho totalmente qualificado à 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",)

Ver também

autocorreção-personalizada, verificações-próprias, extensão-própria, script-extensão