Começando a contribuir código para o Weblate

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

Começando com a base de código

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

Você é muito bem-vindo(a) a começar a trabalhar nessas questões sem perguntar. Apenas anuncie isso no relatório de problema, para que fique claro que alguém está trabalhando nesse relatório de problema.

Executando Weblate localmente

The most comfortable approach to get started with Weblate development is to follow Instalando 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, você também pode querer 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 você tiver o Docker e o docker-compose-plugin instalados, precisará de uma ferramenta adicional chamada jq que pode ser instalada por meio do seu gerenciador de pacotes favorito. Então, você pode ativar o ambiente de desenvolvimento simplesmente executando:

./rundev.sh

Isso irá criar uma imagem do Docker de desenvolvimento e iniciá-lo. Weblate está sendo executado em <http://127.0.0.1:8080/> e você pode entrar como o usuário admin, usando admin como a senha. A nova instalação está vazia, então você pode querer seguir Adicionando projetos e componentes de tradução.

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

Os arquivos Dockerfile e docker-compose.yml para isso estão localizados no diretório dev-docker. Para acesso mais fácil ao banco de dados durante o desenvolvimento, o contêiner executando 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 contêineres Docker estejam prontos e em execução antes de fazer os testes. Você pode verificar isso executando o comando docker ps.

Para mostrar os logs:

./rundev.sh logs

Para parar os contêineres em segundo fundo, execute:

./rundev.sh stop

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

Aviso

Este contêiner não é adequado para uso em produção. A segurança é sacrificada para tornar o desenvolvimento mais fácil.

Inicializando sua instância de desenvolvimento

Você pode querer usar import_demo para criar traduções de demonstração e createadmin para criar um usuário administrador.

If you have Cobrança 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 diretrizes para lhe ajudar a configurar seu projeto Weblate nele.

Considerando que você 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 você 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, você precisa especificar o caminho raiz do projeto Django e o caminho para 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, você poderia usar o weblate/settings_test.py do repositório, mas você pode criar sua própria configuração e configurá-la lá.

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

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

Dica

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