Code für Weblate beisteuern

Verstehen Sie den Quellcode von Weblate, indem Sie Weblate-Quellcode, Weblate-Frontend und Weblate-Interna durchgehen.

Mit der Codebasis beginnen

Machen Sie sich mit der Codebasis von Weblate vertraut, indem Sie die mit good first issue gekennzeichneten Fehler ausprobieren.

Sie können gerne mit der Arbeit an diesen Themen beginnen, ohne zu fragen. Kündigen Sie dies einfach im Issue an, damit klar ist, dass jemand an diesem Problem arbeitet.

Weblate lokal ausführen

Der bequemste Weg, um mit der Weblate-Entwicklung zu beginnen, ist, Installieren aus Quellen zu folgen. Damit erhalten Sie virtualenv mit editierbaren Weblate-Quellen.

  1. Klonen des Weblate-Quellcodes:

    git clone https://github.com/WeblateOrg/weblate.git
    cd weblate
    
  2. Eine virtualenv erstellen:

    virtualenv .venv
    . .venv/bin/activate
    
  3. Weblate (dazu benötigen Sie einige Systemabhängigkeiten, siehe Installieren aus Quellen)und alle für die Entwicklung nützlichen Abhängigkeiten installieren:

    pip install -e '.[all,dev,ci,test,mypy,lint]'
    
  1. Einen Entwicklungsserver starten:

    weblate runserver
    
  2. Je nach Konfiguration möchten Sie vielleicht auch Celery-Worker starten:

    ./weblate/examples/celery start
    
  3. Um einen Test durchzuführen (siehe Lokale Tests für weitere Details):

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

Weblate lokal in Docker ausführen

Wenn Sie Docker und das docker-compose-plugin installiert haben, wird ein zusätzliches Tool namens jq benötigt, das Sie über Ihren bevorzugten Paketmanager installieren können. Anschließend kann die Entwicklungsumgebung durch einfaches Ausführen gestarte werden:

./rundev.sh

Es wird ein Entwicklungs-Docker-Image erstellt und gestartet. Weblate läuft auf <http://127.0.0.1:8080/> und Sie können sich als Benutzer admin mit admin als Passwort anmelden. Die neue Installation ist leer, daher sollten Sie mit Übersetzungsprojekte und Komponenten hinzufügen fortfahren.

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.

Das Skript akzeptiert auch einige Parameter, um Tests auszuführen, führen Sie es mit dem Parameter test aus und geben Sie dann alle test-Parameter an, um zum Beispiel nur Tests im Modul weblate.machine auszuführen:

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

Bemerkung

Achten Sie darauf, dass Ihre Docker-Container in Betrieb sind, bevor Sie die Tests ausführen. Sie können dies überprüfen, indem Sie den Befehl docker ps ausführen.

Um die Protokolle anzuzeigen:

./rundev.sh logs

Um die Hintergrund-Container zu stoppen, führen Sie dies aus:

./rundev.sh stop

Wenn Sie das Skript ohne Argumente ausführen, wird der Docker-Container neu erstellt und neu gestartet.

Bemerkung

Dies ist keine geeignete Einrichtung für die Produktion, da es mehrere Hacks enthält, die unsicher sind, aber sie erleichtern die Entwicklung.

Bootstrapping Ihrer Entwicklungsinstanz

Sie können import_demo verwenden, um Demo-Übersetzungen zu erstellen und createadmin, um einen Admin-Benutzer anzulegen.

Weblate mit PyCharm programmieren

PyCharm ist eine bekannte Entwicklungsumgebung für Python. Hier sind einige Richtlinien, die Ihnen helfen, Ihr Weblate-Projekt in dieser IDE einzurichten.

Da Sie das GitHub-Repository gerade in einen Ordner geklont haben, öffnen Sie es einfach mit PyCharm. Sobald die IDE geöffnet ist, besteht der erste Schritt darin, den Interpreter anzugeben, den Sie verwenden möchten:

../_images/pycharm-1.png

Sie können entweder PyCharm die virtualenv für Sie erstellen lassen oder eine bereits vorhandene auswählen:

../_images/pycharm-2.png

Vergessen Sie nicht, die Abhängigkeiten zu installieren, sobald der Interpreter eingestellt ist: Entweder über die Konsole (die Konsole der IDE verwendet standardmäßig direkt Ihre virtualenv), oder über die Bedienoberfläche, wenn Sie eine Warnung über fehlende Abhängigkeiten erhalten.

Der zweite Schritt besteht darin, die richtigen Informationen zu setzen, um Django nativ in PyCharm zu verwenden: Die Idee ist, die Einheitentests sofort in der IDE auslösen zu können. Dazu müssen Sie den Wurzelpfad des Django-Projekts und den Pfad zu den Einstellungen angeben:

../_images/pycharm-3.png

Seien Sie vorsichtig, das Django project root ist das eigentliche Wurzelverzeichnis des Repositorys, nicht das Unterverzeichnis von Weblate. Für die Einstellungen können Sie die weblate/settings_test.py aus dem Repository verwenden, aber Sie können auch Ihre eigene Einstellung erstellen und sie dort festlegen.

Der letzte Schritt besteht darin, den Server zu starten und Haltepunkte in den Code zu setzen, um ihn zu debuggen. Dies geschieht durch das Erstellen einer neuen Django Server-Konfiguration:

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

Hinweis

Seien Sie vorsichtig mit der Eigenschaft namens No reload: Sie verhindert, dass der Server live neu geladen wird, wenn Sie Dateien ändern. Dadurch bleiben die vorhandenen Debugger-Haltepunkte erhalten, obwohl sie normalerweise beim Neuladen des Servers verworfen würden.