给项目场景和预制中所有包含中文Label和RichText节点添加一个脚本,目的是做多语言转换,有什么方法吗

  • Creator 版本:3.7.4

  • 目标平台: 微信、Web

文档2.4版本是这样写的 image

你这个是刷新吧。。。

多语言配表,表的key用什么类型都可以,值分语言设置,类似如下结构
{
1001: {
cn: Xxx,
en: zzz,
jp: ffff,
},
}

多语言类里面设置key,根据语言读取字符串
还可以加上接收语言切换通知,做语言切换功能

语言切换是用的表结构配置,现在是已经做好场景、预制、代码的中文提取,代码和表的中文数据转换已经有思路,目前缺的就是一个scene和预制里中文的转换

本来的想法是取修改.scene和.prefab的json数据来添加组件,但在尝试后发现内部数据的添加较为复杂,很容易破坏预制和场景数据结构


直接重写onload

谢谢,看了一下好像可行,我尝试一下

试了下是可行的,十分感谢

1 先写好组件脚本
例子:
image

2 把脚本绑定到场景或者预制体上的节点上

3 用文本编辑器打开场景/预制体文件,找到哪个脚本,得到脚本的数据
比如
image

然后你就可以自己写个工具来自动添加这个脚本
添加流程大概是
找到你要修改的场景文件/预制体文件
找到你要添加的节点,记录一下节点的__id__ 就是数组下标
在文件中的数组push脚本数据,把这个组件数据的node指向要添加的节点的__id__ ,并记录一下你这个脚本的数组下标__id__ 脚本的_id不用管,编辑器会自动刷新
在要添加节点的_components属性上push组件脚本的__id__
然后用Creator打开场景文件/预制体,编辑器会自动重新排列数组,自动刷新脚本数据的_id

我自己写了一套工具,你可以参考参考 I18Texture.js 的 modifyProjectFile 函数
我项目中 EN是一个bundle CN在resource/CN文件夹

脚本相关script.zip (6.9 KB)
工具I18Tools.zip (13.0 KB)