Comea çar a contribuir 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.

Comea ç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.

É 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.

Execução local de Weblate

A abordagem mais confortável para começar a desenvolver Weblate é seguir …/admin/install/source. Isso lhe dará um virtualenv com fontes editáveis do Weblate.

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

    git clone https://github.com/WeblateOrg/weblate.git
    cd weblate
    
  2. Crie um virtualenv:

    virtualenv .venv
    .venv/bin/activate
    
  3. Instale Weblate (para isso, vai precisar de algumas dependências do sistema, veja …/admin/install/source):

    pip install -e .
    
  1. Instale todas as dependências úteis para o desenvolvimento:

    pip install -r requirements-dev.txt
    
  2. Inicie um servidor de desenvolvimento:

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

    ./weblate/examples/celery start
    
  4. Para executar um teste (veja Teste local para mais detalhes):

    . scripts/test-database.sh
    ./manage.py test
    

Executando Weblate localmente no Docker

Se tiver Docker e docker-compose instalados, pode pôr para funcionar o ambiente de desenvolvimento simplesmente a executar:

./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 Adicionando projetos e componentes de tradução.

Os ficheiros Dockerfile e docker-compose.yml para isso estão localizados no diretório dev-docker.

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 --failfast 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.

Nota

Esta não é uma configuração adequada para a produção, pois inclui vários hacks que são inseguros, mas que tornam o desenvolvimento mais fácil.

Inicializar a sua instância de desenvolvimento

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

Codificando Weblate com PyCharm

PyCharm é uma IDE conhecida para Python, aqui estão algumas diretrizes para lhe 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

Pode optar por deixar PyCharm criar o virtualenv para si, ou selecionar um já existente:

../_images/pycharm-2.png

Não se esqueça de instalar as dependências quando o interpretador estiver configurado: faça isso através do console (o console do IDE vai usar diretamente o seu virtualenv por padrão, ou através da interface quando receber um aviso sobre dependências em falta.

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.