导入翻译

游戏与国际化

世界上充满了不同的语言和文化,所以现在的游戏都是以多种语言发布的.为了处理这个问题,任何现代游戏引擎都必须支持国际化的文本.

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

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

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

注解

如果您需要更强大的文件格式,Godot还支持加载以gettext .po 格式编写的翻译.有关详细信息,请参见 使用gettext进行本地化.

翻译格式

为了完成这幅图片并提供高效的翻译支持,Godot有一个可以读取CSV文件特殊的导入器.所有电子表格编辑器(可以是Libreoffice、Microsoft Office、Google Docs等)都可以导出为这种格式,因此唯一的要求是文件必须具有特殊的排列方式.CSV文件 必须 以UTF-8编码保存,且不应含有 `字节顺序标记<https://en.wikipedia.org/wiki/Byte_order_mark>`__ .

警告

默认情况下,Microsoft Excel始终以ANSI编码而不是UTF-8保存CSV文件.Excel中没有内置的方法可以执行此操作,但是有一些变通的方法,如 此处 所述.

我们建议使用 LibreOffice 或谷歌表格代替.

CSV文件必须使用以下格式:

<lang1>

<lang2>

<langN>

KEY1

字符串

字符串

字符串

KEY2

字符串

字符串

字符串

KEYN

字符串

字符串

字符串

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

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.

「こんにちは」男は言いました

下面是以逗号分隔的纯文本文件形式同样的例子,这应该是在电子表格中编辑上述内容的结果.当编辑纯文本时,请确保用双引号包裹任何包含逗号、换行符或双引号的消息,这样逗号就不会被解析为定界符,换行符不会创建新条目,双引号也不会被解析为包裹字符.请确保在信息中包含的任何双引号之前使用另一个双引号来转义.另外,您也可以在导入选项中选择逗号以外的其他定界符.

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

CSV 导入器

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

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

选择 .csv 文件并访问导入停靠面板,以定义导入选项.您可以切换是否压缩导入的翻译,并选择在解析CSV文件时使用的定界符.

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

对这些选项进行任何更改后,请务必点击 重新导入.