Crowdin Scripts/de

Verwalten von Übersetzungen für FreeCAD
FreeCAD nutzt den Übersetzungsdienst Crowdin um Übesetzungen zu verwalten.

Es gibt 3 Skripten in  die zur Verwaltung von Übersetzungsdateien verwendet werden:
 * 1)   (github source)
 * 2)   (github source)
 * 3)   (github source)

Hinweise

 * Diese Skripten werden im -Wurzelverzeichnis ausgeführt.
 * Damit diese Skripte funktionieren, muss der gültige FreeCAD crowdin API-Schlüssel in der Datei  enthalten sein. (aus Sicherheitsgründen steht dieser nur Personen mit Administrationsrechten im FreeCAD crowdin-Projekt zur Verfügung)
 * Aktuell sind diese Werkzeuge Python2 - kompatibel.

updatets.py
Das  Skript erzeugt '.ts'-Dateien (Qt Translation Source Files) in Deinem lokalen  -Verzeichnis.

Es ist eingebunden in:

updatecrowdin.py
Das  Skript schiebt Änderungen aus Deinem lokalen  -Verzeichnis zu crowdin (3rd party translation crowdsource translation service). Das Skript unterstützt aktuell 4 Argumente:


 * gibt den Status der Übersetzungen aus;
 * aktualisiert in crowdin die aktuelle Version der '.ts'-Dateien, die im Quellcode gefunden werden;
 * erstellt ein neues Downloadpacket auf crowdin mit allen übersetzten Begriffen (Strings);
 * holt das neueste Packet (build) ab;

updatefromcrowdin.py
Das  Skript schiebt Änderungen aus crowdin auf Dein lokales  -Verzeichnis.

Die neuesten Begriffe (strings) nach crowdin zu senden

 * nur auf Linux getestet;
 * es muss eine '.credentials'-Datei im lokalen /home/YourUser Vezeichnis existieren. Diese einfache Textdatei enthält nur eine Zeile mit dem API-Schlüssel (key), den man von https://crowdin.com/project/freecad/settings#api bekommt (nur für Administratoren)
 * das Repository muß sauber sein (git pull, git stash, wenn erforderlich);
 * cd /path/to/freecad-source-code/src/Tools
 * 'python updatets.py' befüllt alle '.ts'-Dateien aus dem Quellcode mit den neuesten Begriffen (strings)
 * 'python updatecrowdin.py update' sendet alle '.ts'-Dateien nach crowdin. Crowdin aktualisiert nur neue Begriffe;
 * 'cd ../..' zurück zum Wurzelverzeichnis des Quellcodes;
 * 'git checkout .' hebt alle Änderungen an den '.ts'-Dateien auf; es gibt keinen Grund, sie jetzt schon festzulegen, da sie noch nicht übersetzt sind;

Die neuesten Übersetzungen aus crowdin zusammenführen

 * nur auf Linux getestet;
 * es muss eine '.credentials'-Datei im lokalen /home/YourUser Vezeichnis existieren. Diese einfache Textdatei enthält nur eine Zeile mit dem API-Schlüssel (key), den man von https://crowdin.com/project/freecad/settings#api bekommt (nur für Administratoren)
 * das Repository muß sauber sein (git pull, git stash, wenn erforderlich);
 * cd /path/to/freecad-source-code/src/Tools
 * 'python updatecrowdin.py build' (erstellt eine zip-Datei auf crowdin mit allen Dateien (dies kann eine Weile dauern). Dieser Schritt kann auch auf der crowdin-Website ausgeführt werden.
 * 'python updatecrowdin.py download' holt eine freecad.zip-Datei in dieses Verzeichnis;
 * 'mv freecad.zip ~' verschiebt die zip-Datei ins lokale home-Verzeichnis, um zu vermeiden, dass sie später versehentlich übergeben wird;
 * (optional) das 'updatefromcrowdin.py'-Skript öffnen und prüfen, ob die vorgegebenen Sprachen (default_languages) alle gewünschten enthalten (im Grunde sind das mehr als 50%)
 * python updatefromcrowdin.py -z /home/YourUser/freecad.zip
 * cd ../.. (go back to the source code root folder)
 * wenn etwas schief ging oder man ist sich nicht sicher, mit 'git checkout .' bereinigen;
 * wenn alles in Ordnung ist, (git status), mit 'git add . && git commit' übergeben;
 * einen PR auf FreeCAD erzeugen;

Eine Übersetzungsdatei der Website erstellen

 * das Repository der Homepage kopieren;
 * cd /path/to/FreeCAD-homepage;
 * xgettext --from-code=UTF-8 -o lang/homepage.pot *.php;
 * "homepage.po" auf crowdin manuell mit der 'lang/homepage.pot'-Datei aktualisieren;

Die Übersetzungen der Website aktualisieren

 * die freecad.zip-Datei entweder von crowdin abholen oder den Anweisungen zu 'python updatecrowdin.py download' oben folgen;
 * cd /path/to/FreeCAD-homepage;
 * das Repository muß sauber sein (git pull, git stash, wenn erforderlich);
 * python updatefromcrowdin.py -z /path/to/freecad.zip;
 * wenn etwas schief ging oder man ist sich nicht sicher, mit 'git checkout .' bereinigen;
 * wenn alles in Ordnung ist, (git status), mit 'git add . && git commit' übergeben;
 * einen PR auf die FreeCAD-Homepage erzeugen;
 * nachdem die PR zusammengeführt wurde, wird einer der Administratoren per ftp das Ergebnis auf den webhost schieben.

Verwandtes

 * Übersetzungen
 * crowdin - Verwaltung
 * Freigabeprozess