关于多语言的问题,想必大家也多少有些了解 无非就是语言的切换,但是在实际应用中并没有我们想象的那么简单,需要一套完整的流程,并且还得方便后期的维护。所以这里先讲解一下多语言的思路,下一期再讲具体的使用。
1. 首先就是关于文字方面的处理 我们的项目在刚开始开发的时候可能并没有考虑多语言的情况,所以我们的代码中可能会存在很多的中文,这是一个地方,还有就是我们的预制体中的Text组件中的中文,以及我们的配置表中的中文。
总结一下: 代码中的中文 预制体中的中文 配置表中的中文
所以 我们需要做一个工具 将这些里面的中文全部提取出来,然后用中文当key 存在一个表里面? 然后把表拿去翻译? 最后会得到??不同的语言的表格? 这就是我们的语言包了 然后我们需要在一开始将我们的语言包存在一个字典中? ?重写我们的Text组件代码? 在渲染的时候把我们的中文当参数传进去? 通过从我们的语言包字典里去取对应的语言的文字? 如果取到对应的值后 我们将它渲染在我们的界面上(这里并没有赋值? ?我们的文本框里一直是中文 我们只修改的是渲染出来的文字? 内存中还是中文)
2. 关于带文字的图片? 图片的问题分两部分? (不同语言的图分不同的路径) 首先是动态加载的图片:我们只要统一加载图片的方法 在传入加载图片的路径的时候根据语言区分一下路径就行了| 预制体中的图片:这就需要重写Image组件 然后给image组件指定一个图片的默认路径? 然后在加载预制体的时候默认会去根据语言加载默认路径的图。
关于文本超框的问题 尽量从翻译上解决 不行就动态大小字体 ,最不济的方法就是特殊处理。
关于特效方面,尽量也是用换图的方法,或者说使用世界化的效果 就不用处理了 实在不济就特殊处理。例如王者荣耀的一血 提示 就不是中文的 所以 大家应该懂我意思吧
我们切换语言时只需要对我们的预制体中的图片和文本重新赋值一下就行了
下一期 我们讲一讲具体的多语言使用 以及后期维护等等? 有写的不好的地方和有疑问的地方还请多多指出。
|