Începeți să contribuiți cu cod la Weblate

Înțelegeți codul sursă Weblate, parcurgând Codul sursă Weblate, Weblate front-end și Interne Weblate.

Pornind de la baza de cod

Familiarizați-vă cu baza de cod Weblate, încercând să vă familiarizați cu bug-urile etichetate ca fiind prima problemă bună.

You are welcome to start working on these issues without asking. Just announce that in the issue, so that it’s clear that somebody is working on that issue.

Rularea Weblate la nivel local

The most comfortable approach to get started with Weblate development is to follow Instalarea din surse. It will get you a Python environment with editable Weblate sources.

  1. Clonați codul sursă 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. Porniți un server de dezvoltare:

    uv run weblate runserver
    
  4. În funcție de configurația dvs., este posibil să doriți, de asemenea, să porniți Celery workers:

    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
    

Rularea Weblate la nivel local în Docker

If you have Docker and the docker-compose-plugin installed, you need an additional tool called jq which you can install through your favorite package manager. Then, you can spin up the development environment by simply running:

./rundev.sh

Se va crea o imagine Docker de dezvoltare și se va porni. Weblate rulează pe <http://127.0.0.1:8080/> și vă puteți autentifica ca utilizator admin folosind admin ca parolă. Noua instalare este goală, așa că poate doriți să continuați cu Adăugarea de proiecte și componente de traducere.

Weblate is configured to use maildev container as a e-mail server. The delivered e-mails can be seen at <http://127.0.0.1:1080/>.

The Dockerfile and docker-compose.yml for this are located in the dev-docker directory. For easier access to the database during development, the container running PostgreSQL is exposed on port 5433.

Scriptul acceptă și câțiva parametri, pentru a executa teste, rulați-l cu parametrul test și apoi specificați orice parametru test, de exemplu rularea doar a testelor din modulul weblate.machine:

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

Notă

Aveți grijă ca containerele Docker să fie funcționale înainte de a rula testele. Puteți verifica acest lucru executând comanda docker ps.

Pentru a afișa jurnalele:

./rundev.sh logs

Pentru a opri containerele din fundal, rulați:

./rundev.sh stop

Rularea scriptului fără argumente va re-crea containerul Docker și îl va reporni.

Atenționare

This container is not suitable for production use. Security is sacrificed to make the development easier.

Inițializarea instanței voastre de dezvoltare

You might want to use import_demo to create demo translations and createadmin to make an admin user.

If you have Facturare installed as well, you can use billing_demo to create a demo billing project.

Codarea Weblate cu PyCharm

PyCharm este un IDE cunoscut pentru Python, iată câteva linii directoare pentru a vă ajuta să vă configurați proiectul Weblate în el.

Având în vedere că tocmai ați clonat depozitul GitHub într-un folder, deschideți-l cu PyCharm. Odată ce IDE-ul este deschis, primul pas este să specificați interpretorul pe care doriți să îl utilizați:

../_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.

Al doilea pas este de a seta informațiile corecte pentru a utiliza Django în mod nativ în PyCharm: Ideea este de a putea declanșa imediat testele unitare în IDE. Pentru aceasta trebuie să specificați calea rădăcină a proiectului Django și calea către setările acestuia:

../_images/pycharm-3.png

Aveți grijă, Django project root este rădăcina reală a depozitului, nu subdirectorul Weblate. În ceea ce privește setările, ați putea folosi fișierul weblate/settings_test.py din depozit, dar ați putea să vă creați propriile setări și să le definiți acolo.

Ultimul pas este rularea serverului și plasarea de puncte de întrerupere în cod pentru a putea depana. Acest lucru se face prin crearea unei noi configurații Django Server:

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

Sugestie

Aveți grijă la proprietatea numită No reload: Aceasta previne reîncărcarea serverului în direct dacă modificați fișiere. Acest lucru permite ca punctele de întrerupere existente în debugger să persiste, în timp ce în mod normal acestea ar fi eliminate la reîncărcarea serverului.