Translating an external workbench/de

In den folgenden Hinweisen sollte der Name Deiner Erweiterung oder Deines Arbeitsbereichs sein, z.B.  oder, oder was auch immer. Dieser Kontext macht es so, dass die gesamte Übersetzung Ihres Codes unter dem gleichen Namen zusammengefasst wird, um von den Übersetzern leichter identifiziert werden zu können. Das heißt, sie wissen genau, zu welcher Erweiterung oder welchem Arbeitsbereich eine bestimmte Zeichenkette gehört.

Allgemeines

 * Füge einen Ordner hinzu. Du kannst es nach etwas anderem benennen, aber das wird einfacher sein, da es in FreeCAD gleich ist. In diesem Ordner werden die Dateien  (die "Quell"-Übersetzungsdateien) und  Dateien (kompilierte Übersetzungsdateien) abgelegt.
 * Es sollte nur der Text übersetzt werden, der dem Benutzer in der FreeCAD-Benutzeroberfläche angezeigt wird. Text, der nur in der Python-Konsole angezeigt wird, sollte nicht übersetzt werden.
 * Text, der auf die gedruckt wird, wird in der "Report-Ansicht" angezeigt und sollte daher übersetzt werden. Die "Report-Ansicht" unterscheidet sich von der Python-Konsole.

In jeder Python.py-Datei:
code code wird zu {Code|code|code= print(translate("context", "My text")) }}
 * In jeder Datei, in der Du Text übersetzen musst, musst Du eine {{{incode|translate}} Funktion definieren. Eine einfache Möglichkeit ist die Verwendung derjenigen aus der Draft Workbench:
 * Alle zu übersetzenden Texte müssen über die Funktion übergeben werden.

Dies kann überall verwendet werden: in, in }, in Qt-Dialogen, etc. Die Funktionen fügen das Zeilenumbruchzeichen  nicht automatisch hinzu, so dass dieses bei Bedarf am Ende hinzugefügt werden muss. Dieses Zeichen benötigt auch keine Übersetzung, so dass es außerhalb der Übersetzungsfunktion liegen kann: code code Verwende in diesem speziellen Fall nicht Deine eigenen. Behalte.
 * Wenn Du Dateien verwendest, die mit dem QtDesigner erstellt wurden, muss nichts Besonderes mit ihnen gemacht werden.
 * Beim Erstellen neuer Objekte darf der "Name" des Objekts nicht übersetzt werden. Übersetzen Sie vielmehr das "Label" des Objekts. Der Unterschied besteht darin, dass ein "Name" einzigartig ist; er bleibt über die gesamte Lebensdauer des Objekts gleich; andererseits kann ein "Label" vom Benutzer beliebig geändert werden.
 * Wenn Sie Eigenschaften für Ihre Objekte erstellen, übersetzen Sie den Eigenschaftsnamen nicht. Aber platzieren Sie die Beschreibung in :
 * Übersetze nicht den Text von Dokumenttransaktionen, die mit durchgeführt wurden.{

In InitGui.py:
code code code Die Datei hat kein Attribut file', so dass es nicht einfach ist, die relative Position des Übersetzungsordners zu finden. Eine einfache Möglichkeit, dies zu umgehen, besteht darin, dass es eine andere Datei aus dem gleichen Ordner importiert und in dieser Datei Folgendes tut {{{Code|code|code= FreeCADGui.addLanguagePath(os.path.join(os.path.dirname(((__file__), "translations"))) }}
 * Füge die folgende Zeile hinzu, die sich am Anfang der Datei befindet:
 * Um Menünamen zu übersetzen:
 * Das Makro macht nichts, aber es markiert Texte, die später vom Dienstprogramm } aufgenommen werden. Da es eigentlich nichts bewirkt, verwenden wir es nur in Sonderfällen, in denen FreeCAD sich selbst um alles kümmert.
 * Fügen Sie den Pfad zu Ihrem Ordner in der Funktion Initialized hinzu:

Innerhalb jeder FreeCAD-Befehlsklasse:
code
 * Füge die folgende Zeile hinzu, die sich am Anfang der Datei befindet:
 * Übersetze den und  des Befehls wie folgt:

wobei der Name des Befehls ist, definiert durch code

Sammle alle Zeichenketten von deinem Modul
code Dies ist rekursiv und findet Dateien in Ihrer gesamten Verzeichnisstruktur. code code
 * Du benötigst die Werkzeuge, , und  auf Deinem System. In Linux-Distributionen gibt es sie in der Regel in Paketen mit den Namen  oder . Auf einigen Systemen wird   oder  oder  oder ähnlich genannt. Das Gleiche gilt für die anderen Werkzeuge. Sie können die Qt4- oder Qt5-Version nach Wahl verwenden.
 * Wenn Sie Dateien haben, müssen Sie zuerst  ausführen:
 * Wenn Sie Dateien haben, müssen Sie auch  ausführen:
 * Wenn Du beide Operationen ausgeführt hast, musst Du nun diese beiden Dateien zu einer einzigen vereinheitlichen:
 * Überprüfe den Inhalt der drei Dateien, um sicherzustellen, dass sie die Zeichenketten enthalten, dann kannst Du sowohl  als auch  löschen.
 * Du kannst alles in einem Bash-Skript wie diesem machen:

Sende die .ts-Datei an eine Übersetzungsplattform
Es ist an der Zeit, Deine Datei übersetzen zu lassen. Du kannst ein Konto auf einer öffentlichen Übersetzungsplattform wie Crowdin oder Transifex einrichten, oder Du kannst von unserem bestehenden FreeCAD-Konto bei Crowdin profitieren, das bereits viele Benutzer hat und somit die Chance hat, Deine Datei schnell und von Leuten, die FreeCAD kennen, übersetzen zu lassen.

Wenn Du Deine Datei auf dem FreeCAD Crowdin-Konto unterbringen möchtest, wende Dich an Yorik unter FreeCAD Forum.

Einige Plattformen wie Crowdin können sich in GitHub integrieren und den gesamten Prozess von Punkt 2, 3 und 4 automatisch durchführen. Dazu kannst Du das FreeCAD Crowdin-Konto nicht verwenden; Du musst Dein eigenes Konto einrichten.

Übersetzungen zusammenführen
Sobald Deine Datei übersetzt wurde, kannst Du die Übersetzungen von der Website herunterladen:


 * Du wirst normalerweise eine Datei herunterladen, die eine  pro Sprache enthält.
 * Platziere alle übersetzten Dateien zusammen mit Deiner Basisdatei  im Ordner.

Stelle die Übersetzungen zusammen
Führe nun das Programm auf jede Datei aus, die Du hast.

Du kannst den Prozess automatisieren.

Du solltest eine Datei für jede übersetzte  Datei finden. Die Dateien sind das, was von Qt und FreeCAD zur Laufzeit verwendet wird.

Das ist alles, was du brauchst. Beachte, dass bestimmte Teile Deines Arbeitsbereichs nicht sofort übersetzt werden können, wenn Du dich für einen Sprachwechsel entscheidest. Wenn dies der Fall ist, musst Du FreeCAD neu starten, damit die neue Sprache wirksam wird.

Verwandte Seiten

 * External Workbenches
 * Localisation
 * For more informations make your requests here Translating external workbenches