MyLocalization 数据流程图
Last updated
Last updated
上图展示了 MyLocalization 系统的工作流程。从左到右看,先准备好需要做本地化处理的资源和文本,通常更容易遇到需要本地化处理的文本需求。
无论遇到什么本地化需求,首先新建一个 LanguageTypeCData 资源,来定义适合自己项目需求的语言类型,后续可以按需增加语言类型。另外在当前场景中添加一个游戏对象,挂上 LocalizationSetting 组件, 再把这个 LanguageTypeCData 资源设置到 LocalizationSetting 组件 languageType 属性上。
当遇到文本本地化需求时,在Assets目录下新建一个 StringTable 资源(通常会自动关联当前场景中存在的LocalizationSetting中设置的LanguageTypeCData 资源),然后打开StringTable资源编辑器,即可在其中编辑文本的本地化项,与文本相关联的语言音频文件也可以在此关联,很多用于UI的文本无需关联音频文件。
这些文本处理好之后,在要做本地化的UI组件或其他形式的显示组件上添加相应的Setter组件,比如如果要对Ugui的Text组件或TextMeshPro的文本显示组件进行本地化,则需要添加 UITextSetter 或 UITextStaticSetter 组件到同一个游戏对象上;如果要对 DropDown 组件进行本地化,则需要添加 DropownSetter组件,其他的文本显示类似。
在对这些Setter组件进行一些设置,让它关联上StringTable中设置好的文本字段,它就可以正常本地化了。
其他非文本的本地化需求,则是需要到这样做:
在当前场景中找到 LocalizationSetting 组件,没有的话新建一个, 在其中【本地化项容器】属性里设置相应类型的本地化项(Leaf),设置好后注意很可能需要将Leaf的字段名称锁住,这意味着将来不要修改此字段名称,因为Setter 组件会关联到 Leaf 的字段名称(除了UITextSetter 或 UITextStaticSetter 组件),若想不丢失关联,请不要随意修改 Leaf 的字段名称。
Leaf 设置好后,就可以在需要做本地化的UI组件或其他形式的显示组件上添加相应的Setter组件,然后在Setter组件中关联上 Leaf 的字段名称。
如果还需要其他本地化,重复上述过程即可。对于LanguageTypeCData 资源和LocalizationSetting 组件, 通常一个项目只需一个就可满足需求,无需多创建。操作完这些,本地化过程就完成了。