本地化操作流程&开发流程&开发规范.md 10 KB

本地化操作流程&开发流程&开发规范

本地化框架问题记录&如何使用

操作流程

1.一个未添加任何本地化组件的空工程

目标:

给所有的UIText组件添加本地化组件 找出所有文字图片 找出所有音频文件

实现:

执行【一键导出文本表并且添加本地化组件】(文本表导出位置自己选择)

结果:

场景,预制体UIText组件全部加上了本地化组件 且输出了一份游戏中文文本表

2.当工程里存在本地化组件且有游戏内中文文本表

目标:

给未添加本地化组件的场景或者预制体UIText组件添加本地化组件

实现:

1.当数据表或者动态文本表未发生任何变化时

执行【添加场景&预制体文本本地化组件】

2.当数据表或者动态文本表发生改动时

执行【一键添加本地化组件并且更新数据表】

结果:

场景,预制体UIText组件全部加上了本地化组件 并且新文本更新到了文本表(当翻译字典里有该文本的释义文本表里会自动补全翻译) 单张文本表也会自动分割好

需提交的内容:

1.添加了所有本地化组件的对象

2.文本总表,单张文本表

3.输出/输入翻译表

输出目标:

输出一份未翻译的文本表给到翻译人员

实现:

原理:基于最新的文本表里的未翻译的文本生成一份未翻译文本表

1.当文本表不是最新的情况下,同时又不知道新文本应用于哪些地方

执行【一键添加本地化组件并且更新数据表】来生成最新的文本表

2.当文本表不是最新的情况下,知道新文本应用于哪些地方

数据表不是最新的:执行【更新数据表文本(含动态文本)】

动态文本表不是最新的:执行【更新动态文本】

预制体文本不是最新的:执行【添加预制体文本本地化组件】

场景文本不是最新的:执行【添加场景文本本地化组件】

3.当文本表最新的情况下

1.执行【从文本表生成未翻译文本表】会得到一份完整的未翻译文本表(包含临时文本以及不用翻译文本)

2.执行【从未翻译的文本表提取需要翻译的文本表】原理是有一份包含临时文本以及不用翻译的文本表 从未翻译的文本表把这些文本剔除掉

注意点:

1.需要时刻关心未翻译表里有那些内容 是否真的可以不用翻译(最好的做法是全翻译掉 减少维护成本)

结果:

这个时候会输出一份未翻译的文本表

开发流程

1.无需添加一个UIText组件添加一个本地化组件

等预设整体拼接完成后,在Asset目录下,选中当前预设,执行【添加场景或预设LocalizationText组件】一键给当前预制体添加本地化组件(建议当有2个以上UIText组件需要添加本地化组件 使用一键添加)

当然也可以添加一个UIText组件添加一个本地化组件

可能遇到的问题:

1.当UIText组件文本发生变化时

需要执行【更新文本表文本】

结果:

同时刷新文本总表和单张表下当前key值的文本

2.当UIText组件被删除时

在Asset目录下选中当前预制体 执行【删除单个场景或预设没用到的key】

结果:

同时删除文本总表和单张表该预设下没用到的key加文本

2.当有需要本地化的图片字或者音频

在Asset目录下选中当前图片或者音频需执行【添加图片或音频到文本表】

结果:

当前图片或音频的路径会自动保存到文本表里留作标识 用于后面提翻译的时候方便查找

可能遇到的问题:

1.当图片,音频重命名或者迁移路径需要执行【添加图片或音频到文本表(覆盖添加)】

开发规范

1.不允许在脚本公开string字段上面直接赋值

检测工具:

输出:预设上脚本字段中文文本.csv

2.不允许保存引用Text组件Format文本

检测工具:

输出:脚本上有XXFormat字段文本.csv

3.不允许脚本内直接编写中文tips

检测工具:

输出:脚本上有中文的文本.csv

4.不允许使用树形样式中文文本

5.不建议嵌套prefab内容跟源prefab不一致,尤其是文本内容

因为一键添加本地化组件只会给源prefab上面添加不会给嵌套prefab添加

当嵌套prefab内容跟源prefab文本内容不一致的情况下 就会默认读取源prefab文本内容

这个时候就需要手动给嵌套prefab的文本重新生成一个key

最好的做法是不一样的文本内容代码里根据不同场景动态赋值

检测工具:

输出:PreabPropertyModifications.csv

6.建议Text至少设置一个overflow 防止其他国家文本显示不全

7.建议少用两个或多个空格文本