Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

导入翻译

游戏与国际化

游戏社区不是单一语言或单一文化的。它由许多不同的语言和文化组成 - 就像 Godot 社区一样!如果你想让玩家用他们的语言体验你的游戏,你需要提供的其中一件事就是文本翻译,Godot 通过国际化文本支持文本翻译。

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

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

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

备注

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

翻译格式

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

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

keys

<lang1>

<lang2>

<langN>

KEY1

字符串

字符串

字符串

KEY2

字符串

字符串

字符串

KEYN

字符串

字符串

字符串

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

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.

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

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

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 还允许在运行时加载和删除翻译。

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

../../_images/import_csv.png

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