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.

Um 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;

To merge latest translations from crowdin

 * 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;

To generate a translation file from the website

 * Clone the homepage repository
 * cd /path/to/FreeCAD-homepage
 * xgettext --from-code=UTF-8 -o lang/homepage.pot *.php
 * Update the "homepage.po" on crowdin website manually, using the lang/homepage.pot file

To update the translations of the website

 * Get the freecad.zip file either by downloading it from the crowdin website or following instructions above (python updatecrowdin.py download)
 * cd /path/to/FreeCAD-homepage
 * Make sure your repository is clean (git pull, git stash if needed)
 * python updatefromcrowdin.py -z /path/to/freecad.zip
 * if something went wrong or you are unsure, clean everything with git checkout.
 * if everything looks ok (git status), commit with git add . && git commit
 * Create a PR on FreeCAD-Homepage
 * After the PR is merged, one of the admins will ftp push to the webhost

Related

 * Localisation
 * Crowdin Administration
 * Release process