Börja bidra med kod till Weblate

Förstå Weblates källkod genom att gå igenom Weblate källkod, Weblate-frontend och Weblate internt.

Börja med kodbasen

Bekanta dig med Weblates kodbas genom att testa buggarna märkta med good first issue.

Du är välkommen att börja arbeta med dessa frågor utan att fråga. Meddela bara detta i frågan, så att det är tydligt att någon arbetar med den frågan.

Kör Weblate lokalt

Det enklaste sättet att komma igång med Weblate-utveckling är att följa Installera från källor. Då får du en virtualenv med redigerbara Weblate-källor.

  1. Klonera Weblate-källkoden:

    git clone https://github.com/WeblateOrg/weblate.git
    cd weblate
    
  2. Skapa en virtualenv:

    uv venv .venv
    source .venv/bin/activate
    
  3. Installera Weblate (för detta behöver du vissa systemberoenden, se Installera från källor) och alla beroenden som är användbara för utveckling:

    uv pip install -e '.[dev]'
    
  1. Starta en utvecklingsserver:

    weblate runserver
    
  2. Beroende på din konfiguration kanske du också vill starta Celery-arbetare:

    ./weblate/examples/celery start
    
  3. För att köra ett test (se Lokal testning av Weblate för mer information):

    . scripts/test-database.sh
    pytest
    

Kör Weblate lokalt i Docker

Om du har Docker och docker-compose-plugin installerat behöver du ett extra verktyg som heter jq, vilket du kan installera via din favoritpakethanterare. Sedan kan du starta utvecklingsmiljön genom att helt enkelt köra:

./rundev.sh

Det kommer att skapa en utvecklings-Docker-bild och starta den. Weblate körs på <http://127.0.0.1:8080/> och du kan logga in som användaren admin med admin som lösenord. Den nya installationen är tom, så du kanske vill fortsätta med Lägga till översättningsprojekt och komponenter.

Weblate är konfigurerat för att använda maildev-containern som e-postserver. De levererade e-postmeddelandena kan ses på <http://127.0.0.1:1080/>.

Dockerfile och docker-compose.yml för detta finns i katalogen dev-docker. För att underlätta åtkomsten till databasen under utvecklingen är containern som kör PostgreSQL exponerad på port 5433.

Skriptet accepterar också vissa parametrar. För att köra tester, kör det med parametern test och ange sedan valfria test-parametrar, till exempel för att endast köra tester i modulen weblate.machine:

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

Observera

Se till att dina Docker-containrar är igång innan du kör testerna. Du kan kontrollera detta genom att köra kommandot docker ps.

För att visa loggarna:

./rundev.sh logs

För att stoppa bakgrundscontainrarna, kör:

./rundev.sh stop

Om du kör skriptet utan argument skapas Docker-containern på nytt och startas om.

Varning

Denna container är inte lämplig för produktionsanvändning. Säkerheten har offrats för att underlätta utvecklingen.

Bootstrappa din utvecklingsinstans

Du kan använda import_demo för att skapa demöversättningar och createadmin för att skapa en administratörsanvändare.

Om du också har Fakturering installerat kan du använda billing_demo för att skapa ett demo-faktureringsprojekt.

Kodning av Weblate med PyCharm

PyCharm är en välkänd IDE för Python. Här är några riktlinjer som hjälper dig att konfigurera ditt Weblate-projekt i den.

Eftersom du just har klonat GitHub-arkivet till en mapp, öppnar du det med PyCharm. När IDE är öppet är det första steget att ange vilken tolk du vill använda:

../_images/pycharm-1.png

Du kan antingen låta PyCharm skapa virtualenv åt dig eller välja en redan befintlig:

../_images/pycharm-2.png

Glöm inte att installera beroenden när tolken är inställd: Antingen via konsolen (konsolen från IDE använder direkt din virtualenv som standard) eller via gränssnittet när du får en varning om saknade beroenden.

Det andra steget är att ställa in rätt information för att kunna använda Django direkt i PyCharm: Tanken är att kunna starta enhetstesterna direkt i IDE. För att göra det måste du ange rotvägen till Django-projektet och vägen till dess inställningar:

../_images/pycharm-3.png

Var försiktig, Django-projektroten är den faktiska roten i arkivet, inte Weblate-underkatalogen. När det gäller inställningarna kan du använda weblate/settings_test.py från arkivet, men du kan också skapa dina egna inställningar och ange dem där.

Det sista steget är att köra servern och sätta in brytpunkter i koden för att kunna felsöka den. Detta görs genom att skapa en ny Django Server-konfiguration:

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

Råd

Var försiktig med egenskapen No reload: Den förhindrar att servern laddas om live om du modifierar filer. Detta gör att befintliga brytpunkter i felsökaren kvarstår, när de normalt skulle kasseras vid omladdning av servern.