Godot - 创建翻译文件(常量表)

版本 Godot 3.1.2

背景

Godot的UI系统封装的很难受, 一些东西很难改动, 比如这个AcceptDialog的"确定""取消"按钮, 特别是在编辑器本身还有bug的情况下

Godot - 创建翻译文件(常量表)

其属性中不能直接修改AcceptDialog的"确定""取消"

Godot - 创建翻译文件(常量表)

可以通过添加翻译文件来解决, 而国际化也是现在很多游戏的需求

实现步骤

官方文档说的云里雾里, github的demo因为春节家里网不好下载不动...
在"新建资源"命令中可以看到"Translation"类型的资源文件, 然而是不需要手动创建的

  1. 首先创建一个文件夹"languages", (名字随意, 注意最好不要大写)
  2. 新建一个csv文件"language.csv", (名字随意) 添加以下内容 (也可以使用Excel等表格编辑工具进行编辑)

Godot - 创建翻译文件(常量表)

注意保存选项为编码"UTF8", 换行符"LF", 推荐使用文本编辑器, 不推荐使用Excel
返回godot后, 会自动生成相关的Translation资源文件

Godot - 创建翻译文件(常量表)

  1. 添加资源文件。Godot中, "项目" -> "项目设置" -> "本地化" -> 添加刚生成的"language.zh.translation"

运行效果

Godot - 创建翻译文件(常量表)

  1. 代码中使用

在"language.csv"中添加

Test_Title,测试标题
Test_Content,测试内容

效果如下

Godot - 创建翻译文件(常量表)

GDScript函数tr(key : String) -> String用于提取常量
似乎是因为Godot的bug, 在官方文档

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

set_text还是调用了一次tr()的, 但实测在代码中直接设置text属性或使用set_text()函数(实际是一回事), 都自动转换到了翻译后的字符, 要使用的话统一使用KEYNAME

上一篇:【手把手带你Godot游戏开发 第二弹】3D大作名场面临摹(教程目录 更新中...)


下一篇:Blender材质模块:多UV映射设置