Começar a contribuir com código para o Weblate

Entenda o código-fonte do Weblate a passar por Código-fonte do Weblate, Frontend do Weblate e Componentes internos do Weblate.

Começar com a base de código

Familiarize-se com a base de código do Weblate, a dar uma olhada nos bugs etiquetados como good first issue.

É bem-vindo para começar a trabalhar nesses problemas sem perguntar. Apenas anuncie isso no relatório de problemas, para que fique claro que alguém está a trabalhar nesse relatório de problemas.

Execução local de Weblate

The most comfortable approach to get started with Weblate development is to follow Instalar a partir do código fonte. It will get you a Python environment with editable Weblate sources.

  1. Clone o código-fonte do Weblate:

    git clone https://github.com/WeblateOrg/weblate.git
    cd weblate
    
  2. Install Weblate and all dependencies useful for development:

    uv sync --all-extras --dev
    
  3. Inicie um servidor de desenvolvimento:

    uv run weblate runserver
    
  4. Dependendo da sua configuração, também quereria inciar workers do Celery:

    uv run ./weblate/examples/celery start
    
  5. To run tests (see Local testing of Weblate for more details):

    . scripts/test-database.sh
    uv run pytest
    

Executando Weblate localmente no Docker

Se tiver o Docker e o docker-compose-plugin instalados, precisará de uma ferramenta adicional chamada jq que pode ser instalada por meio do seu gestor de pacotes favorito. Depois, pode ativar o ambiente de desenvolvimento simplesmente executando:

./rundev.sh

Isso irá criar uma imagem do Docker de desenvolvimento e iniciá-lo. Weblate está a ser executado em <http://127.0.0.1:8080/> e pode entrar como o utilizador admin, a usar admin como a palavra-passe. A nova instalação está vazia, então quererá seguir Adicionar projetos e componentes de tradução.

Weblate está configurado para usar o contentor maildev como um servidor de e-mail. Os e-mails entregues podem ser vistos em <http://127.0.0.1:1080/>.

Os ficheiros Dockerfile e docker-compose.yml para isto estão localizados no diretório dev-docker. Para acesso mais fácil à base de dados durante o desenvolvimento, o contentor que executa o PostgreSQL é exposto na porta 5433.

O script também aceita alguns parâmetros; para executar testes, execute-o com o parâmetro test e então especifique qualquer parâmetro test, por exemplo executar apenas testes no módulo weblate.machine:

./rundev.sh test --exitfirst weblate/machine

Nota

Tenha cuidado para que os seus contentores Docker estejam prontos e em execução antes de fazer os testes. Pode verificar isso a executar o comando docker ps.

Para exibir os logs:

./rundev.sh logs

Para parar os contentores em segundo fundo, execute:

./rundev.sh stop

A execução do script sem argumentos vai recriar o contentor Docker e reiniciá-lo.

Aviso

Este contentor não é adequado para o uso em produção. A segurança é sacrificada para fazer o desenvolvimento mais fácil.

Inicializar a sua instância de desenvolvimento

Pode usar import_demo para criar traduções de demonstração e createadmin para criar um utilizador administrador.

If you have Faturação installed as well, you can use billing_demo to create a demo billing project.

Codificando Weblate com PyCharm

PyCharm é uma IDE conhecida para Python, aqui estão algumas linhas diretrizes para o ajudar a configurar o seu projeto Weblate nele.

Considerando que acabou de clonar o repositório GitHub, para uma pasta, basta abri-la com o PyCharm. Assim que a IDE estiver aberta, o primeiro passo é especificar o interpretador que deseja:

../_images/pycharm-1.png

Select the .venv environment created by uv sync --all-extras --dev to match the command-line development setup. You can also let PyCharm create a Python environment for you, but the uv-managed environment is preferred:

../_images/pycharm-2.png

Don’t forget to install the dependencies once the interpreter is set. When using the preferred uv-managed environment, run uv sync --all-extras --dev from the console.

O segundo passo é definir a informação certa para usar o Django nativo dentro do PyCharm: a ideia é ser capaz de acionar imediatamente os testes unitários no IDE. Para isso, precisa especificar o caminho raiz do projeto Django e o caminho para as suas configurações:

../_images/pycharm-3.png

Tenha cuidado, Django project root é a raiz real do repositório, não o subdiretório do Weblate. Sobre as configurações, poderia usar o weblate/settings_test.py do repositório, mas pode criar a sua própria configuração e configurá-la lá.

O último passo é executar o servidor e pôr pontos de interrupção no código para poder depurá-lo. Isto é feito a criar uma nova configuração do Django Server:

../_images/pycharm-4.png ../_images/pycharm-5.png

Dica

Tenha cuidado com a propriedade chamada No reload: ela evita do servidor ser recarregado automaticamente quando modificar os ficheiros. Isso permite que os pontos de interrupção de depuração existentes persistam, quando eles normalmente seriam descartados no recarregamento do servidor.