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.
Clone o código-fonte do Weblate:
git clone https://github.com/WeblateOrg/weblate.git cd weblate
Install Weblate and all dependencies useful for development:
uv sync --all-extras --dev
Inicie um servidor de desenvolvimento:
uv run weblate runserver
Dependendo da sua configuração, você também pode querer inciar workers do Celery:
uv run ./weblate/examples/celery start
To run tests (see Local testing of Weblate for more details):
. scripts/test-database.sh uv run pytest
Ver também
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:
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:
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:
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:
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.