【包教包会】130行代码实现多语言,i18n扔了扔了

演示Demo:https://gitee.com/szrpf/LangDemo/tree/master

image
打开Demo,运行场景HelloWorld,点击底部按钮
“切换中文”和“切换英文”
可以切换语种资源,包括文本、图片、Spine、音频

image
查看资源管理器,可以发现每个语种对应一个bundle,例如:Zh、En
每个bundle有一个“同名json”,里面配置了该语种的:


文本内容、图片路径、Spine路径、音频路径
1、多语言文本

在配置中填写文本内容,key与Label节点同名,切换语种就会自动替换Label文本
2、多语言图片

在配置中填写图片路径,key与图片节点同名,切换语种就会自动替换图片
3、多语言spine和音频同理,都是在配置中填写资源路径

打开Language.ts多语言模块,可以查看接口


打开HelloWorld.ts,这里演示了如何使用多语言接口。

Q :如何在自己项目中使用该多语言模块
A
step 1:将Language.ts复制到自己项目的assets目录下,具体层级不限
step 2:给每个语种分别建立一个bundle,里面需包含同名json配置文件,格式参考demo
step 3:把多语言图片、spine、音频分别放入对应语种的bundle
step 4: 填写json配置文件
step 5:调用gi.langLoad就可以切换语种

Q :配置文件中的key必须和节点同名吗?
A :也可以使用自定义key
将Language.ts脚本挂到节点上,就可以指定该节点在配置文件中对应的key


有Language.ts脚本的节点,优先使用自定义key查找配置
无Language.ts脚本的节点,默认使用节点名称作为key查找配置

Q :如何使用多语种音频?
A :在配置中填写该语种所有音频的路径
gi.langValue可以取到路径字符串
gi.langAsset可以取到资源引用
调用音频接口播放就可以了

综上, 130行代码实现多语言

加油:sunglasses::sunglasses::sunglasses::sunglasses::sunglasses::sunglasses::sunglasses:

Gitee地址:https://gitee.com/szrpf

EMail地址:27185709@qq.com

推荐链接:

1、【包教包会】CocosCreator3.x全局单例最优解

2、CocosCreator3.x框架——节点扩展(仿2.x风格直接设置属性、渐变色、振动、实时销毁)

2、【包教包会】CocosCreator Assembler经典案例第一期——2D实现3D透视翻转(附Demo源码)

3、【包教包会】对CocosCreator富文本RichText进行全面优化

5、权重随机算法,解决游戏中一切可控随机(刷怪、掉宝、转盘、抽卡等等)

mi

10赞

image
:joy:穿越来的当我不知道

1赞

就改了年份 :sweat_smile:

高产! :nerd_face:

谢谢鼓励师 :grinning:

终于学会了

已star,感谢大佬分享 :star_struck:

:ox:bi,包佬开源的又强大又实用

:+1::+1::+1:

确实, 多语言自己实现多好

大佬收小弟不