器材国际化方案

日期 修改人 修改内容
2020年6月17日 黄金民 补充“模型资源贴图”相关的方案
2020年8月11日 蔺浪 补充参数项改变回传协议说明

器材国际化方案


国际化字符串Key的定义

Key统一以“I18N/{Code}/{SubKeyName}的形式;
在需要国际化的地方必须以完整的Key来传递, 其中{Code}可以是管理平台上个的器材或组件,{SubKeyName} 由器材的开发发人员自行定义使用,保证器材内不重复即可。
Key例子:I18N/Lamp/Name

语言文件

语言文件的文件名参照RFC1766标准,[语言]-[地区].json,例子:zh-CN.json
路径在[器材包]/Lauguage/目录下,例子:

语言文件以Json格式存放,其中Key只要定义 {SubKeyName},其中Value就是Key映射的语言内容,例子:

器材菜单国际化
  1. 在Menu.Json中,需要国际化显示的地方,使用完整的Key。
  2. 对于动态的Menu,在Lua代码中构建完整的Key即可。
    例子:

器材介绍、器材判定配置

此类需求跟器材菜单做法类似,在配置文件中使用唯一的国际化字符串ID。

模型资源贴图

目前模型贴图有三种类型,对应3种解决方案

  1. 可改成动态字符串

    方案:用textmeshpro组件来显示文字,已有组件就可以实现
  2. 文字没有什么意义

    方案:美术把贴图里的文字去除
  3. 必须在贴图上显示文字

    方案:美术需要把文字做到单独的贴图中,管理平台为模型资源提供多语言贴图资源的配置和下载功能,资源中心组件运行时下载多语言贴图到language目录,程序运行时根据语言配置加载对应的贴图资源【组件支持】
动态字符串处理

应用中会需要显示“不超过10厘米”这样的字符串,它的数据“10”是动态生成的,字符串拼接参照string.format函数的处理方式。
解决方案:在中文语言包中定义数据:”Format1”:”不超过{0}厘米”,在英文语言包中定义“Format1”:“grater than {0} cm “, 元器件只需要传字符串“I18N/PackageName/Format1, 10”到UI上,由播放器处理不同语言的格式化。

参数项改变回传

  • 应用通过UI改变参数项,回传内容为器材给出的参数项对应的原始key(而不是翻译后的内容);
  • 该协定于器材同学(唐绍军)处了解到的,是既定好的协议。