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 , die 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:

  • Eine Symbolleiste, mit der Sie durch Zeichenfolgen der aktuellen Liste blättern, zu einer anderen vordefinierten Liste wechseln oder eine benutzerdefinierte Suche durchführen usw. Es gibt auch einen "Zen"-Bearbeitungsmodus mit einer vereinfachten Oberfläche.
  • 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).
  • Die Übersetzungsvorlage der Online-Dokumentation wird aus den RST-Quelldateien in derselben Reihenfolge wie im Inhaltsverzeichnis generiert, sodass die ersten Zeichenfolgen beispielsweise von der Startseite der Dokumentation stammen. Der empfohlene Arbeitsablauf besteht daher darin, eine eindeutige Zeichenfolge zu finden, die einer Seite entspricht, die Sie übersetzen möchten, und dann alle Zeichenfolgen mit derselben Quellzeichenfolgenposition zu übersetzen, während Sie sie mit der Online-Version dieser Seite auf Englisch vergleichen. Ein Beispiel für die Position der Quellzeichenfolge könnte getting_started/step_by_step/scenes_and_nodes.rst für die Seite Szenen und Nodes sein.
  • 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.

Ein praktisches Werkzeug zum Auffinden bestimmter Seiten bzw. Klassen ist die Verwendung der erweiterten Suchfunktion von Weblate und insbesondere der Abfrage "Ausgangszeichenketten" (die auch mit dem Token location: verwendet werden kann, z.B. location:scenes_and_nodes.rst):

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

Bemerkung

Wenn eine bestimmte Quellzeichenfolge an mehreren Quellspeicherorten verwendet wird, werden sie alle zu einer verkettet. Beispielsweise würde die obige Abfrage location:scenes_and_nodes.rst zuerst in der Quellzeichenfolge "Introduction" landen, die in Dutzenden von Seiten verwendet wird, einschließlich einiger, die in der Vorlage vor ``scenes_and_nodes.rst``stehen. Wenn Sie auf die Schaltfläche "Weiter" klicken, gelangen Sie zur oben angezeigten Titelzeichenfolge "Scene and nodes". Daher kann es vorkommen, dass sich ein bestimmter Absatz- oder Abschnittstitel nicht an der Stelle befindet, die Sie beim Lesen der Online-Version einer Seite erwarten würden.

Respektieren der Textauszeichnung (Markup Syntax)

Jede Übersetzungsressource stammt aus einem anderen Quellcode-Format. Es ist wichtig, einige Begriffe zur 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 format specifiers such as %s (a string) or %d (a number). These specifiers are replaced by content at runtime, and should be preserved and placed in your translation where necessary for it to be meaningful after substitution. You may need to refer to the source string location to understand what kind of content will be substituted if it's not clear from the sentence. Example (%s will be substituted with a file name or path):

    # PO file:
    "There is no '%s' file."
    
    # Weblate:
    There is no '%s' file.
    
  • C escape characters such as \n (line break) or \t (tabulation). In the Weblate editor, the \n characters are replaced by (return) and \t by . Tabs are not used much, but you should make sure to use line breaks in the same way as the original English string (Weblate will issue a warning if you don't). Line breaks might sometimes be used for vertical spacing, or manual wrapping of long lines which would otherwise be too long especially in the editor translation). Example:

    # 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.
    

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

See Sphinx's reStructured Text primer for a quick overview of the markup language you may find in source strings. You may encounter especially the inline markup (bold, italics, inline code) and the internal and external hyperlink markup.

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.

Some of the tags used are from the original BBCode (e.g. [b]Bold[/b] and [i]Italics[/i]), while others are Godot-specific and used for advanced features such as inline code (e.g. [code]true[/code]), linking to another class (e.g. [Node2D]) or to a property in a given class (e.g. [member Node2D.position]), or for multiline code blocks. Example:

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 the above example, [code]name[/code], [code]alpha[/code], and [Color] should not be translated, as they refer respectively to argument names and a class of the Godot API. Similarly, the contents of the [codeblock] should not be translated, as ColorN is a function of the Godot API and "red" is one of the named colors it supports. At most, you can translate the name of the variable which holds the result (red = ...).

Note also that in the XML, each line is a paragraph, so you should not add line breaks if they are not part of the original translation.

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. Einführung in den Godot-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 erzeuge einen Pull Request.