导入翻译

游戏与国际化

世界上充满了不同的市场和文化,并且为了最大化利润,当今的游戏以多种语言发行。为了解决这个问题,任何现代游戏引擎都必须支持国际化的文本。

在常规的桌面或移动应用程序中,国际化文本通常位于资源文件中(或用于GNU内容的 .po 文件)。然而,游戏可以使用比应用程序多几个数量级的文本,因此它们必须支持能高效处理多语言文本加载的方法。

有两种方法来生成多语言的游戏和应用程序。两者都基于键值对系统。第一种是使用其中一种语言作为 (通常是英语),第二种是使用特定的标识符。如果首先用英语发布游戏,后来以其他语言发布游戏,则第一种方法可能更易于开发;但是如果同时使用多种语言,则完全是一场噩梦。

一般来说,游戏使用第二种方法,并为每个字符串使用唯一的ID。这允许您在翻译为其他语言时修改文本。唯一ID可以是数字、字符串、或带有数字的字符串(无论如何,它只是一个唯一的字符串)。

注解

如果您需要更强大的文件格式,Godot还支持加载以gettext .po 格式编写的翻译。有关详细信息,请参见 Localization using gettext

翻译格式

To complete the picture and allow efficient support for translations, Godot has a special importer that can read CSV files. Most spreadsheet editors can export to this format, so the only requirement is that the files have a special arrangement. The CSV files must be saved with UTF-8 encoding without a byte order mark.

警告

By default, Microsoft Excel will always save CSV files with ANSI encoding rather than UTF-8. There is no built-in way to do this, but there are workarounds as described here.

We recommend using LibreOffice or Google Sheets instead.

CSV files must be formatted as follows:

<lang1> <lang2> <langN>
KEY1 字符串 字符串 字符串
KEY2 字符串 字符串 字符串
KEYN 字符串 字符串 字符串

lang 标签必须代表一种语言,该语言必须是引擎支持的 有效地区语言 之一。KEY 标签必须是唯一的,并且必须代表一个通用字符串(它们通常以大写形式与其他字符串区分开)。这些键将在运行时由匹配的翻译的字符串替换。特别注意,KEY1Key1 将是不同的键。左上方的单元格将被忽略,可以保留为空或包含任何内容。这是一个例子:

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. 「こんにちは」男は言いました

The same example is shown below as a comma-separated plain text file, which should be the result of editing the above in a spreadsheet. When editing the plain text version, be sure to enclose with double quotes any message that contains commas, line breaks or double quotes, so that commas are not parsed as delimiters, line breaks don't create new entries and double quotes are not parsed as enclosing characters. Be sure to escape any double quotes a message may contain by preceding them with another double quote. Alternatively, you can select another delimiter than comma in the import options.

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 导入器

Godot 将 CSV 文件默认作为译文处理。它将导入它们,并在其旁边位置生成一个或多个压缩过的翻译资源文件。

导入还会将翻译添加到,要在游戏运行时加载的翻译列表中,在 project.godot (或项目设置)中指定。Godot还允许在运行时加载和删除翻译。

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.