Übersetzungen importieren

Spiele und Internationalisierung

Die Welt ist voller unterschiedlicher Märkte und Kulturen. Um den Gewinn zu maximieren, werden Spiele heutzutage in mehreren Sprachen veröffentlicht. Um dies zu lösen, muss internationalisierter Text in jeder modernen Spiel-Engine unterstützt werden.

In normalen Desktop- oder Mobilanwendungen befindet sich internationalisierter Text normalerweise in Ressourcendateien (oder .po Dateien für GNU-Inhalte). Spiele können jedoch immens mehr Text als Anwendungen verwenden, daher müssen sie effiziente Methoden für den Umgang mit viel mehrsprachigem Text unterstützen.

Es gibt zwei Ansätze, um mehrsprachige Spiele und Anwendungen zu generieren. Beide basieren auf einem Schlüssel-Wert-System. Die erste besteht darin, eine der Sprachen als Schlüssel zu verwenden (normalerweise Englisch), die zweite darin, eine bestimmte Kennung zu verwenden. Der erste Ansatz ist wahrscheinlich einfacher für die Entwicklung, wenn ein Spiel zuerst auf Englisch, später in anderen Sprachen veröffentlicht wird, aber ein Albtraum, wenn mit vielen Sprachen gleichzeitig gearbeitet wird.

Im Allgemeinen verwenden Spiele den zweiten Ansatz und für jede Zeichenfolge wird eine eindeutige ID verwendet. Auf diese Weise können Sie den Text überarbeiten, während er in andere Sprachen übersetzt wird. Die eindeutige ID kann eine Zahl, eine Zeichenfolge oder eine Zeichenfolge mit einer Nummer sein (es ist sowieso nur eine eindeutige Zeichenfolge).

Bemerkung

Wenn Sie ein leistungsfähigeres Dateiformat benötigen, unterstützt Godot auch das Laden von Übersetzungen im gettext .po Format. Siehe Lokalisierung mittels gettext für Details.

Übersetzungsformat

Um das Bild zu vervollständigen und eine effiziente Unterstützung für Übersetzungen zu ermöglichen, verfügt Godot über einen speziellen Importer, der CSV-Dateien lesen kann. Die meisten Tabellenkalkulationseditoren können in dieses Format exportieren. Die einzige Voraussetzung ist, dass die Dateien eine spezielle Anordnung haben. Die CSV-Dateien müssen mit UTF-8-Codierung ohne byte order mark gespeichert werden.

Warnung

Standardmäßig speichert Microsoft Excel CSV-Dateien immer mit ANSI-Codierung anstelle von UTF-8. Es gibt keine integrierte Möglichkeit dies zu tun, aber das Problem kann umgangen werden, wie hier beschrieben. <Https://stackoverflow.com/questions/4221176/excel-to-csv-with-utf8-encoding> `__.

Wir empfehlen stattdessen die Verwendung von LibreOffice or Google Sheets.

CSV Dateien müssen wie folgt aufgebaut sein:

Schlüssel <Sprache_1> <Sprache_2> <Sprache_N>
Schlüssel1 Zeichenkette Zeichenkette Zeichenkette
Schlüssel2 Zeichenkette Zeichenkette Zeichenkette
SchlüsselN Zeichenkette Zeichenkette Zeichenkette

The "lang" tags must represent a language, which must be one of the valid locales supported by the engine. The "KEY" tags must be unique and represent a string universally (they are usually in uppercase, to differentiate from other strings). These keys will be replaced at runtime by the matching translated string. Note that the case is important, "KEY1" and "Key1" will be different keys. The top-left cell is ignored and can be left empty or having any content. Here's an example:

Schlüssel en es ja
GREET Hello, friend! Hola, amigo! こんにちは
ASK How are you? Cómo está? 元気ですか
BYE Goodbye Adiós さようなら
QUOTE "Hello" said the man. "Hola" dijo el hombre. 「こんにちは」男は言いました

Das gleiche Beispiel wird unten als durch Kommas getrennte reine Text-Datei gezeigt, die das Ergebnis der Bearbeitung des obigen Beispiels in einer Tabelle sein sollte. Stellen Sie beim Bearbeiten der reinen Text-Version sicher, dass alle Nachrichten, die Kommas, Zeilenumbrüche oder doppelte Anführungszeichen enthalten, in doppelte Anführungszeichen gesetzt werden, damit Kommas nicht als Trennzeichen analysiert werden, Zeilenumbrüche keine neuen Einträge erstellen und doppelte Anführungszeichen nicht als eingeschlossene Zeichen analysiert werden. Vermeiden Sie doppelte Anführungszeichen in einer Nachricht, indem Sie ihnen ein weiteres doppeltes Anführungszeichen voranstellen. Alternativ können Sie in den Import-Optionen ein anderes Trennzeichen als Komma auswählen.

keys,en,es,ja
GREET,"Hello, friend!","Hola, amigo!",こんにちは
ASK,How are you?,Cómo está?,元気ですか
BYE,Goodbye,Adiós,さようなら
QUOTE,"""Hello"" said the man.","""Hola"" dijo el hombre.",「こんにちは」男は言いました

CSV importer

Godot will treat CSV files as translations by default. It will import them and generate one or more compressed translation resource files next to it.

Beim Importieren wird die Übersetzung auch zur Liste der Übersetzungen hinzugefügt, die beim Ausführen des Spiels geladen werden sollen. Dies wird in project.godot (oder in den Projekteinstellungen) angegeben. Mit Godot können Übersetzungen auch zur Laufzeit geladen und entfernt werden.

Select the .csv file and access the Import dock to define import options. You can toggle the compression of the imported translations, and select the delimiter to use when parsing the CSV file.

../../../_images/import_csv.png

Be sure to click Reimport after any change to these options.