tutorial_localization - seraph526/godot-se GitHub Wiki

国际化 (Internationalization)

介绍 (Introduction)

优秀的世界只说一种语言。但不幸的是,对于我们开发者来说,情况不是这样的。不仅是独立游戏和职业游戏对此有需求,通常游戏要获得更大的市场,就需要本地化。

Godot提供了很多关于国际化的工具,使得国际化更加简便,所以这篇教程更像是一个关于技巧和小诀窍的合集。

本地化工作通常都是雇佣专业的团队来完成,虽然现在有很多软件可以做此事,但最常用的本地化方法仍然是电子表单。创建和导入表单的工作在Import Translations 教程中已经有介绍,所以此教程更像是之前教程的提高篇。

设置导入翻译 (Configuring the Imported Translationn)

翻译改变时可以重新导入更新,但是,它们仍要加到场景中。通过Scene -> Project Settings -> Localization设置:

这个对话框可以用来填加或移除翻译的范围。

本地资源 (Localizing Resources)

Godot可以设置依据当前语言选择不同的资产(或资源),为此,创建了"Remaps"标签:

选择要重新映射的资源,每种本地化都对应一套替换资源。

将Keys转换为Text (Converting Keys to Text)

一些控制界面,如Button,Label等等。当用key代替文件时,每次都会自动获取。如一个label被设置为“MAIN_SCREEN_GREETING1”,为存在于"translations"中的不同语言设置一个键值(key),这将会自动翻译。这个处理过程是通过load实现的,所以项目有允许改变语言设置的对话框,那当前的场景(或者,至少是场景设置,将会被重新加载,以便让新的文本生效。

对于代码,要可以使用Object.tr()函数。这个工作只是在翻译列表中找到相应的文本:

level.set_text(tr("LEVEL_5_NAME"))
status.set_text(tr("GAME_STATUS_"+str(status_index)))

控制Controls的尺寸大小 (Making Controls Resizeable)

相同的文本在不同语言下,长度可以差很多。因此,确保阅读了GUI Control Repositioning教程,因为动态调整大小可能会有些帮助。Containers非常有用,如Label标签中的多个关于文本回行的选项。

翻译服务器 (TranslationServer)

Godot有一个底级翻译管理服务叫做TranslationServer。翻译在运行时增减,当前的语言也可以更改。

命令行 (Command Line)

从命令行运行Godot时可以测试语言。如,要测试法语,可以使用如下参数:

c:\MyGame> godot -lang fr

翻译项目名称 (Translating the Project Name)

当导出到不同的系统和平台时,项目名字就是app的名字。要定义多语的项目名称。在项目设置对话框中设置,创建一个新的项目名称,差追加它到本地化设置。如:

通常,如果你不知道语言代码或区域,可以点击列表查看.