Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

使游戏国际化

前言

Sería excelente que el mundo hablara solo un idioma(如果全世界都讲同一种语言就太好了)。不幸的是对于我们的开发人员来说,情况并非如此。虽然独立或投机游戏通常不需要本地化,但瞄准更大市场的游戏通常需要本地化。Godot 提供了许多工具来使这个过程更加简单,因此本教程更像一个妙招和技巧的合集。

Localization is usually done by specific studios hired for the job. Despite the huge amount of software and file formats available for this, the most common way to do localization to this day is still with spreadsheets. The process of creating the spreadsheets and importing them is already covered in the 导入翻译 tutorial. If you haven't read the Importing translations page before, we recommend you give it a read before reading this page.

备注

We will be using the official demo as an example; you can download it from the Asset Library.

配置导入的译文

翻译可以在更改时得到更新和重新导入,但仍必须添加到项目中。可通过项目 → 项目设置 → 本地化来完成:

../../_images/localization_dialog.png

上述对话框用于添加或删除项目范围内的翻译。

资源的本地化

根据当前语言,还可以指示 Godot 使用替代版本的资产(资源)。重定向选项卡可用于此。

**Remaps*分页可用于此目的:

../../_images/localization_remaps.png

Select the resource to be remapped then add some alternatives for each locale.

备注

DynamicFonts不支持资源重新对应系统。若要根据语言的脚本使用不同的字形,请改用DynamicFont回退系统,它允许你定义任意数量的回退字形。

DynamicFont回退系统的优点是,无论目前语言如何,它都可以工作,这使其非常适合文字语言可能与客户端语言不配对的多人聊天等情况。

将键转换为文本

一些控件,例如 ButtonLabel,如果它们的文本与一个翻译键值相匹配,将自动获取翻译内容。例如,如果一个标签的文本是“MAIN_SCREEN_GREETING1”并且该键值存在于当前的翻译中,那么该文本将被自动翻译。

这种自动翻译行为在某些情况下可能是不可取的。例如,当使用 Label 来显示玩家的名字时,如果玩家的名字与翻译键相匹配,你很可能不希望进行翻译。要禁用