Editor und Dokumentation übersetzen

Godot zielt darauf ab, die Spieleentwicklung allen zugänglich zu machen, auch Menschen, die möglicherweise kein Englisch sprechen oder sich damit nicht auskennen. Aus diesem Grund bemühen wir uns, dank der Übersetzungsbemühungen der Community die wichtigsten Ressourcen in vielen Sprachen verfügbar zu machen.

Die Ressourcen beinhalten:

  1. Die Oberfläche des Godot-Editors <https://hosted.weblate.org/projects/godot-engine/godot/>`__ (ca. 15.000 Wörter).

  2. Die Online-Dokumentation (Editor-Handbuch und Anleitungen, ca. 300.000 Wörter).

  3. Die Klassenreferenz <https://hosted.weblate.org/projects/godot-engine/godot-class-reference/>`__ ist sowohl online als auch im Editor verfügbar (ca. 200.000 Wörter).

Für die Verwaltung von Übersetzungen verwenden wir das GNU gettext-Dateiformat (PO Dateien) und die webbasierte Open-Source-Plattform Weblate , welche die einfache Zusammenarbeit vieler Mitwirkender ermöglicht, um die Übersetzung für die verschiedenen Komponenten zu vervollständigen und auf dem neuesten Stand zu halten. Klicken Sie auf die fett gedruckten Verweise oben, um auf jede Ressource in Weblate zuzugreifen.

Diese Seite bietet einen Überblick über den allgemeinen Ablauf einer Übersetzung in Weblate sowie einige ressourcenspezifische Anweisungen z.B. wie man mit einigen Schlüsselwörtern oder der Lokalisierung von Bildern umgeht.

Tipp

Das Übersetzen aller offiziellen Godot-Inhalte ist ein gewaltiges Unterfangen. Wir empfehlen daher, die oben aufgeführten Ressourcen zu priorisieren: zuerst die Editor-Oberfläche, dann die Online-Dokumentation und schließlich die Klassenreferenz, wenn genügend Übersetzer vorhanden sind, um mit den Aktualisierungen Schritt zu halten.

Weblate für Übersetzungen verwenden

Während sich unsere Übersetzungen schließlich in den Git-Repositorys der Godot-Engine und ihrer Dokumentation befinden, werden alle Übersetzungsaktualisierungen über Weblate abgewickelt, sodass direkte Pull-Anforderungen an die Git-Repositorys nicht akzeptiert werden. Übersetzungen werden von Betreuern manuell zwischen Weblate und den Godot-Repositorys synchronisiert.

Sie sollten sich daher auf Weblate registrieren, um zu Godots Übersetzungen beizutragen.

Navigieren Sie nach der Anmeldung zu der Godot-Ressource, zu der Sie beitragen möchten (auf dieser Seite verwenden wir Editor übersetzen als Beispiel), um die Liste aller Sprachen zu finden:

../../_images/l10n_01_language_list.png

Siehe auch

Weitere Informationen finden Sie in der Weblate-eigenen Dokumentation zum Übersetzungsablauf <https://docs.weblate.org/en/latest/user/translating.html>`__.

Hinzufügen einer neuer Sprache

Wenn Ihre Sprache bereits aufgeführt ist, klicken Sie auf den Namen, um auf die Übersicht zuzugreifen, und überspringen Sie den Rest dieses Abschnitts.

Wenn Ihre Sprache nicht aufgeführt ist, scrollen Sie zum Ende der Liste der Sprachen, klicken Sie auf die Schaltfläche "Neue Übersetzung starten" und wählen Sie die Sprache aus, in die Sie übersetzen möchten:

../../_images/l10n_02_new_translation.png

Wichtig

Wenn Ihre Sprache in mehreren Ländern mit nur begrenzten regionalen Abweichungen gesprochen wird, sollten Sie sie mit ihrer generischen Variante (z.B. fr für Französisch) anstelle einer regionalen Variante (z. B. fr_FR für Französisch (Frankreich)) hinzufügen. fr_CA für Französisch (Kanada) oder fr_DZ für Französisch (Algerien)).

Godot muss eine große Menge an Inhalten übersetzen, daher sollte das Duplizieren der Arbeit für regionale Varianten nur durchgeführt werden, wenn die Sprachvariationen signifikant genug sind. Wenn eine Übersetzung für eine regionale Variante durchgeführt wird, ist sie außerdem nur für Benutzer in dieser Region automatisch verfügbar (oder deren Systemsprache für diese Region konfiguriert ist).

Wenn regionale Abweichungen signifikant genug sind, um separate Übersetzungen zu rechtfertigen, empfehlen wir sich nach Möglichkeit zunächst auf die Fertigstellung einer generischen Variante zu konzentrieren, dann die vollständig fertiggestellte Übersetzung für regionale Varianten zu duplizieren und die entsprechenden Änderungen vorzunehmen. Dies ist typischerweise eine gute Strategie für z.b: Spanisch (arbeiten Sie zuerst an es und duplizieren Sie es dann zu es_AR, es_ES, es_MX usw., falls erforderlich) oder Portugiesisch (pt_BR vs ``pt_PT ``).

Übersetzungs-Interface

Sobald eine Sprache ausgewählt wurde, wird eine Übersicht über den Übersetzungsstatus angezeigt, einschließlich der Anzahl der noch zu übersetzenden oder zu überprüfenden Zeichenfolgen. Jedes Element kann angeklickt und zum Durchsuchen der entsprechenden Liste verwendet werden. Sie können auch auf die Schaltfläche "Übersetzen" klicken, um mit der Liste der Zeichenfolgen zu beginnen, für die eine Aktion erforderlich ist.

../../_images/l10n_03_translation_overview.png

Nachdem Sie eine Liste mit dem Klick auf "Übersetzen" ausgewählt haben, wird die Hauptübersetzungsoberfläche angezeigt, in der die gesamte Arbeit ausgeführt wird:

../../_images/l10n_04_translation_interface.png

Auf dieser Seite haben Sie:

  • A toolbar which lets you cycle through strings of the current list, change to another predefined list or do a custom search, etc. There is also a "Zen" editing mode with a simplified interface.

  • Die tatsächliche Zeichenfolge, an der Sie im Bereich "Übersetzung" arbeiten. Standardmäßig sollte die englische Quellzeichenfolge und ein Bearbeitungsfeld für Ihre Sprache vorhanden sein. Wenn Sie mit anderen Sprachen vertraut sind, können Sie diese in Ihren Benutzereinstellungen hinzufügen, um mehr Kontext für die Übersetzung zu erhalten. Wenn Sie mit dem Bearbeiten der aktuellen Zeichenfolge fertig sind, klicken Sie auf "Speichern", um die Änderungen zu bestätigen und zum nächsten Eintrag zu wechseln. Alternativ können Sie die Schaltfläche "Überspringen" verwenden, um sie zu überspringen. Das Kontrollkästchen "Muss bearbeitet werden" bedeutet, dass die ursprüngliche Zeichenfolge aktualisiert wurde. Die Übersetzung muss daher überprüft werden, um diese Änderungen zu berücksichtigen (im PO-Jargon handelt es sich um sogenannte "Fuzzy"-Strings). Solche Zeichenfolgen werden in der Übersetzung erst verwendet, wenn sie behoben sind.

  • Im unteren Bereich befinden sich verschiedene Tools, die bei der Übersetzung hilfreich sein können, z.B. der Kontext von Zeichenfolgen in der Nähe (normalerweise aus demselben Editor-Tool oder derselben Dokumentationsseite, sodass möglicherweise ähnliche Begriffe verwendet werden), Kommentare von anderen Übersetzern, maschinelle Übersetzungen und eine Liste aller anderen vorhandenen Übersetzungen für diese Zeichenfolge.

  • Oben rechts zeigt das Glossar Begriffe, für die zuvor ein Eintrag hinzugefügt wurde und die in der aktuellen Zeichenfolge enthalten sind. Wenn Sie beispielsweise mit anderen Übersetzern beschlossen haben, eine bestimmte Übersetzung für den Begriff "Knoten" in Godot zu verwenden, können Sie diese dem Glossar hinzufügen, um sicherzustellen, dass andere Übersetzer dieselbe Konvention verwenden.

  • Das untere rechte Feld enthält Informationen zur Quellzeichenfolge. Das relevanteste Element ist der "Speicherort der Quellzeichenfolge", der Sie mit der ursprünglichen Zeichenfolge auf GitHub verknüpft. Möglicherweise müssen Sie auf der Seite nach der Zeichenfolge suchen, um sie und den umgebenden Kontext zu finden.

Originalinhalt suchen

PO-Dateien sind eine geordnete Liste von Quellzeichenfolgen (`` msgid``) und deren Übersetzung (`` msgstr``). Standardmäßig zeigt Weblate die Zeichenfolgen in dieser Reihenfolge an. Es kann daher hilfreich sein zu verstehen, wie der Inhalt in den PO-Dateien organisiert ist, damit Sie den ursprünglichen Inhalt leichter finden und beim Übersetzen als Referenz verwenden können.

Wichtig

Es ist wichtig, beim Übersetzen den ursprünglichen Kontext als Referenz zu verwenden, da viele Wörter je nach Kontext mehrere mögliche Übersetzungen haben. Die Verwendung der falschen Übersetzung kann sich nachteilig auf den Benutzer auswirken und das Verständnis der Dinge erschweren, als wenn sie auf Englisch bleiben würden. Die Verwendung des Kontexts macht den Übersetzungsaufwand auch viel einfacher und angenehmer, da Sie direkt sehen können, ob die von Ihnen geschriebene Übersetzung im Kontext sinnvoll ist.

  • Die Übersetzungsvorlage der Editorschnittstelle wird durch Parsen des gesamten C++ Quellcodes in alphabetischer Reihenfolge generiert, sodass alle in einer bestimmten Datei definierten Zeichenfolgen zusammengefasst werden. Wenn beispielsweise der "Speicherort der Quellzeichenfolge" "editor/code_editor.cpp" angibt, wird die aktuelle Zeichenfolge (und die in der Nähe befindlichen) in der Codedatei "editor/code_editor.cpp" definiert und damit verknüpft an die Code-Editoren in Godot (GDScript, Shader).

  • The online documentation's translation template is generated from the source RST files in the same order as seen in the table of contents, so for example the first strings are from the front page of the documentation. The recommended workflow is therefore to find a unique string corresponding to a page that you want to translate, and then translate all the strings with the same source string location while comparing with the online version of that page in English. An example of source string location could be getting_started/step_by_step/nodes_and_scenes.rst for the page Nodes und Szenen.

  • Die Übersetzungsvorlage der Klassenreferenz wird aus den XML-Quelldateien in alphabetischer Reihenfolge generiert. Dies entspricht auch der Reihenfolge des Inhaltsverzeichnisses für die Online-Version. Sie können daher die Quellzeichenfolge suchen, die der Kurzbeschreibung einer bestimmten Klasse entspricht, um die erste zu übersetzende Zeichenfolge zu finden. Alle anderen Beschreibungen dieser Klasse sollten in den nachfolgenden Zeichenfolgen auf Weblate enthalten sein. Beispielsweise hätten die Beschreibungen für die Klasse Node2D den Speicherort der Quellzeichenfolge doc/classes/Node2D.xml.

A handy tool to locate specific pages/classes is to use Weblate's advanced search feature, and especially the "Location strings" query (which can also be used with the location: token, e.g. location:nodes_and_scenes.rst):

../../_images/l10n_05_search_location.png ../../_images/l10n_06_browse_by_location.png

Bemerkung

When a given source string is used in multiple source locations, they will all be concatenated into one. For example, the above location:nodes_and_scenes.rst query would land first on the "Introduction" source string which is used in dozens of pages, including some that come before nodes_and_scenes.rst in the template. Clicking the "Next" button then brings us to the "Scene and nodes" title string displayed above. So it may happen that a given paragraph or section title is not at the location you'd expect it when reading the online version of a page.

Respektieren der Textauszeichnung (Markup Syntax)

Jede Übersetzungsressource stammt aus einem anderen Quellcode-Format. Es ist wichtig, einige Grundkenntnisse der Markup-Sprache zu haben, die für jede Ressource verwendet wird, um Syntaxfehler in Ihren Übersetzungen zu vermeiden.

Editor Interface (C++)

Die Editorübersetzungen stammen aus C++ Zeichenfolgen und können Folgendes verwenden:

  • C-Formatbezeichner wie z.B. %s (eine Zeichenkette) oder %d (eine Zahl). Diese Spezifizierer werden zur Laufzeit durch Inhalt ersetzt und sollten erhalten bleiben und in Ihrer Übersetzung eingefügt werden, wo dies notwendig ist, damit sie nach dem Ersetzen noch aussagekräftig ist. Möglicherweise müssen Sie sich auf die Stelle der Quellzeichenkette beziehen, um zu verstehen, welche Art von Inhalt ersetzt wird, wenn er sich nicht eindeutig aus dem Satz ergibt. Beispiel (%s wird durch einen Dateinamen oder Pfad ersetzt):

    # PO file:
    "There is no '%s' file."
    
    # Weblate:
    There is no '%s' file.
    
  • C Escape-Zeichen wie z.B. \n (Zeilenumbruch) oder \t (Tabellierung). Im Weblate-Editor werden die \n Zeichen durch (Zeilenumbruch) und \t durch ersetzt. Tabulatoren werden nicht oft verwendet, aber Sie sollten darauf achten, Zeilenumbrüche in der gleichen Weise wie die englische Originalzeichenkette zu verwenden (Weblate gibt eine Warnung aus, wenn man das nicht tut). Zeilenumbrüche können manchmal für vertikale Abstände oder für den manuellen Umbruch langer Zeilen verwendet werden, die ansonsten zu lang wären, insbesondere in der Übersetzung des Editors). Beispiel:

    # PO file:
    "Scene '%s' is currently being edited.\n"
    "Changes will only take effect when reloaded."
    
    # Weblate:
    Scene '%s' is currently being edited.↵
    Changes will only take effect when reloaded.
    

Bemerkung

Only logical order of the characters matters, in the right-to-left text, format specifiers may be displayed as s%.

Online Dokumentation (RST)

Die Dokumentationsübersetzungen stammen aus reStructuredText (RST) Dateien, die auch ihre eigene Markup-Syntax verwenden um Text zu formatieren, interne und externe Links zu erstellen usw. Hier einige Beispiele:

# "development" is styled bold.
# "Have a look here" is a link pointing to https://docs.godotengine.org/en/latest.
# You should translate "Have a look here", but not the URL, unless there is
# a matching URL for the same content in your language.
# Note: The `, <, >, and _ characters all have a meaning in the hyperlink
# syntax and should be preserved.

Looking for the documentation of the current **development** branch?
`Have a look here <https://docs.godotengine.org/en/latest>`_.

# "|supported|" is an inline reference to an image and should stay unchanged.
# "master" uses the markup for inline code, and will be styled as such.
# Note: Inline code in RST uses 2 backticks on each side, unlike Markdown.
# Single backticks are used for hyperlinks.

|supported| Backwards-compatible new features (backported from the ``master``
branch) as well as bug, security, and platform support fixes.

# The :ref: Sphinx "role" is used for internal references to other pages of
# the documentation.
# It can be used with only the reference name of a page (which should not be
# changed), in which case the title of that page will be displayed:

See :ref:`doc_ways_to_contribute`.

# Or it can be used with an optional custom title, which should thus be translated:

See :ref:`how to contribute <doc_ways_to_contribute>`.

# You may encounter other Sphinx roles, such as :kbd: used for shortcut keys.
# You can translate the content between backticks to match the usual key names,
# if it's different from the English one.

Save the scene. Click Scene -> Save, or press :kbd:`Ctrl + S` on Windows/Linux
or :kbd:`Cmd + S` on macOS.

Siehe auch

Siehe Sphinx's reStructured Text primer für einen schnellen Überblick über die Auszeichnungssprache, die Sie in Quelltexten finden können. Sie können insbesondere auf das Inline-Markup (fett, kursiv, Inline-Code) und das interne und externe Hyperlink-Markup stoßen.

Klassenreferenz (BBCode)

Die Klassenreferenz wird im Godot-Hauptrepository mithilfe von XML-Dateien und mit einem BBCode-ähnlichen Markup für das Styling und interne Referenzen dokumentiert.

Einige der verwendeten Tags stammen aus dem ursprünglichen BBCode (z.B. [b]Bold[/b] und [i]Italics[/i]), während andere Godot-spezifisch sind und für fortgeschrittene Funktionen wie Inline-Code verwendet werden (e.g. [code]true[/code]), Verknüpfungen zu einer anderen Klasse (z.B. [Node2D]) oder zu einer Eigenschaft in einer bestimmten Klasse (z.B. [member Node2D.position]) oder für mehrzeilige Codeblöcke. Beispiel:

Returns a color according to the standardized [code]name[/code] with [code]alpha[/code] ranging from 0 to 1.
[codeblock]
red = ColorN("red", 1)
[/codeblock]
Supported color names are the same as the constants defined in [Color].

In dem obigen Beispiel sollten [code]name[/code], [code]alpha[/code], und `[Color] nicht übersetzt werden, da sie sich jeweils auf Argumentnamen und eine Klasse der Godot-API beziehen. In ähnlicher Weise sollte der Inhalt des [codeblock] nicht übersetzt werden, da ColorN eine Funktion der Godot-API ist und "red" eine der benannten Farben ist, die sie unterstützt. Man kann höchstens den Namen der Variablen übersetzen, die das Ergebnis enthält (red = ...).

Beachten Sie auch, dass im XML jede Zeile ein Absatz ist, so dass Sie keine Zeilenumbrüche hinzufügen solltest, wenn diese nicht Teil der Originalübersetzung sind.

Siehe auch

See our documentation for class reference writers for the list of BBCode-like tags which are used throughout the class reference.

Offline Übersetzen und Testen

Während wir empfehlen die Weblate-Oberfläche zum Schreiben von Übersetzungen zu verwenden, haben Sie auch die Möglichkeit die PO-Datei lokal herunterzuladen, um sie mit Ihrer bevorzugten PO-Bearbeitungsprogramm wie Poedit oder Lokalize zu übersetzen.

Um die PO-Datei lokal herunterzuladen, navigieren Sie zur Übersetzungsübersicht für Ihre Sprache und wählen Sie den ersten Eintrag im Menü "Dateien" aus:

../../_images/l10n_07_download_po_file.png

Wenn Sie mit einer Reihe von Änderungen fertig sind, verwenden Sie das Element "Übersetzung hochladen" in demselben Menü und wählen Sie Ihre Datei aus. Wählen Sie "Als Übersetzung hinzufügen" für den Datei-Upload-Modus.

Bemerkung

Wenn zwischen dem Herunterladen der PO-Datei und dem Hochladen der bearbeiteten Version viel Zeit vergangen ist, besteht die Gefahr, dass die von anderen Mitwirkenden verfassten Übersetzungen in der Zwischenzeit überschrieben werden. Aus diesem Grund empfehlen wir, die Online-Oberfläche zu verwenden, damit Sie immer an der neuesten Version arbeiten.

Wenn Sie Änderungen lokal testen möchten (insbesondere für die Editorübersetzung), können Sie die heruntergeladene PO-Datei verwenden und Godot aus dem Source <toc-devel-compiling> kompilieren.

Benennen Sie die PO-Datei für die Editorübersetzung in <lang>.po um (z.B.``de.po`` für Deutsch) und legen Sie sie im Ordner editor/translations/ ab (GitHub).

Auf die gleiche Weise können Sie auch Klassenreferenzänderungen testen, indem Sie die PO-Datei auf ähnliche Weise umbenennen und im Ordner doc/translations/ folder (GitHub) ablegen.

Dokumentations-Bilder übersetzen

Die Online Dokumentation enthält viele Bilder, dies können Screenshots des Godot Editors sein, selbstgemachte Grafiken, oder sonst ein visueller Inhalt. Einige davon enthalten Text und sind daher möglicherweise nützlich um in Ihre Sprache zu übersetzen.

Dann gibt es noch das offizielle Godot I18N-Repository. wo Sie einsehen können, wann die letzte Synchronisation stattgefunden hat.

Bemerkung

Der Arbeitsablauf ist nicht der einfachste und erfordert einige Git-Kenntnisse. Wir planen, an einem vereinfachten Web-Tool zu arbeiten, mit dem die Bildlokalisierung auf bequeme Weise verwaltet und diese Schritte abstrahiert werden können.

Um ein Bild zu übersetzen, sollten Sie es zuerst in der englischen Originaldokumentation suchen. Durchsuchen Sie dazu die entsprechende Seite in den Dokumenten, z.B. Erster Blick auf Godot's Editor. Klicken Sie oben rechts auf den Link "Edit on GitHub":

../../_images/l10n_08_edit_on_github.png

Klicken Sie auf GitHub auf das Bild, das Sie übersetzen möchten. Klicken Sie gegebenenfalls auf "Download", um es lokal herunterzuladen und mit einem Zeichenprogramm zu bearbeiten. Notieren Sie sich den vollständigen Pfad zum Bild, da dieser weiter unten benötigt wird (hier getting_started/step_by_step/img/project_manager_first_open.png).

../../_images/l10n_09_path_to_image.png

Erstellen Sie Ihre lokalisierte Version des Bildes, indem Sie entweder die englische bearbeiten oder einen Screenshot des Editors in Ihrer Sprache erstellen, sofern es sich um einen Editor-Screenshot handelt. Einige Bilder verfügen möglicherweise auch über Quelldateien im SVG-Format, sodass Sie den img/ Ordner durchsuchen können, der sie enthält, um dies zu überprüfen.

Benennen Sie Ihr lokalisiertes Bild wie das Original, jedoch mit dem vor der Erweiterung hinzugefügten Sprachcode, z.B. project_manager_first_open.png würde für die deutsche Lokalisierung zu project_manager_first_open.de.png.

Erstellen Sie schließlich auf godot-docs-l10n dieselbe Ordnerstruktur wie für das Originalbild im Unterordner images (GitHub) und platzieren Sie Ihr übersetztes Bild dort hinein. In unserem Beispiel sollte das Endergebnis images/getting_started/step_by_step/img/project_manager_first_open.de.png sein.

Wiederholen Sie diesen Vorgang für andere Bilder und erzeugen einen Pull Request.