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

Posted lunoctis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Godot - 创建翻译文件(常量表)相关的知识,希望对你有一定的参考价值。

版本 Godot 3.1.2

背景

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

技术图片

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

技术图片

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

实现步骤

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

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

技术图片

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

技术图片

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

运行效果

技术图片

  1. 代码中使用

在"language.csv"中添加

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

效果如下

技术图片

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 - 创建翻译文件(常量表)的主要内容,如果未能解决你的问题,请参考以下文章

Godot行为树插件

14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段

Godot保存当前场景中所有的子节点的属性

Godot保存当前场景中所有的子节点的属性

Godot保存当前场景中所有的子节点的属性

Godot组合键的实现