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.
Klonera Weblate-källkoden:
git clone https://github.com/WeblateOrg/weblate.git cd weblate
Skapa en virtualenv:
uv venv .venv source .venv/bin/activate
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]'
Starta en utvecklingsserver:
weblate runserverBeroende på din konfiguration kanske du också vill starta Celery-arbetare:
./weblate/examples/celery startFör att köra ett test (se Lokal testning av Weblate för mer information):
. scripts/test-database.sh pytest
Se även
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:
Du kan antingen låta PyCharm skapa virtualenv åt dig eller välja en redan befintlig:
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:
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:
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.