cocos creator国际化i18n多语言工具cc-i18n
cc-i18n介绍
基于cocos creator引擎的游戏开发i18n多语言模块,是在nodejs环境下运行的i18n工具,所以需要确保安装nodejs环境。
该工具可以帮助你自动检测游戏预制体中的cc.Label组件,并生成相应的key存储在json文件中,并把相对应的key设置在I18nLabel组件中,同时也支持自动给预制体增加I18nLabel组件
项目源码:https://github.com/hepeidong/cc-i18n
安装
搭建nodejs环境,并查看是否有nodejs和npm版本 node --version npm --version,如果以确定安装了相应环境, 则执行下面命令进行安装:
npm install cc-i18n -g
示例演示图片:
命令行
工具通过五个命令可以启动运行:
cc-i18n create:
这个命令会在项目的scripts/i18n目录下生成i18n模块代码,同时在resources/i18n生成相应目录结构
cc-i18n gen-key:
1. label多语言:
这个命令是根据预制体Label节点中挂载的I18nLabel组件生成相应的key,并把key保存到一个Json文件中;
注意:每一个需要自动生成多语言key的label节点,都需要手动挂载I8nLabel组件,如果想自动挂载,请使用
cc-i18n gen-set-key --g 这个命令,但这个命令会在所有label节点上挂载I18nLabel组件,故使用前需要考虑清楚是不是所有label节点都是静态文本。
2. sprite多语言:
对于sprite多语言来说,会检测assets/resources/i18n/sprite目录下的所有图片资源,并获取图片资源的uuid,把uuid存储在json文件中。在使用时,必须先在i18n/sprite/路径下根据不同的语言增加相应的目录,比如,如果你只发布中文和英语两种语言,那么就在i18n/sprite路径下建zh和en两个文件夹,在这两个文件夹下各自语言的图片,必须要确保同一种图片,在不同语言文件夹下的图片文件名相同。
注意:i18n/sprite/json路径下的文件内容不得更改,除非你完全了解更改后会产生什么后果
cc-i18n set-key:
需要开发者实现在须要进行多语言适配的挂有cc.Label组件或者cc.Sprite组件的节点挂载I18nLabel组件或者I18nSprite组件,
只有挂载了对应的I18nLabel组件和I18nSprite组件,才能对这两个组件设置key。
1. label多语言:
这个命令会检查挂有cc.Label组件的这些节点是否有挂载I18nLabel组件,如果有,则把相应的key设置到组件上
2. sprite多语言:
这个命令会检查挂有cc.Sprite组件的这些节点是否有挂载I18nSprite组件,如果有,则会根据cc.Sprite组件上挂载的相应图片,把这张图片的uuid设置到I18nSprite组件上。
cc-i18n gen-set-key:
这个命令会同时执行 cc-i18n gen-key, cc-i18n set-key命令。
cc-i18n gen-set-key -g:
这个命令是根据预制体节点中挂载的cc.Label组件生成相应的key,并把key保存到一个Json文件中,然后再在挂载了
cc.Label组件的节点上增加I18nLabel组件,并把相应的key设置到组件上(这个功能在大项目中可能会存在问题)
注意:这个命令对sprite多语言不起作用,只有label多语言才有用,当使用这个命令时,sprite多语言不会生成key,以及设置key。
功能使用
初始化
使用时,需要在游戏项目的根目录运行上面所介绍的功能命令,例如TestGame项目在D:\proj\TestGame,那么需要进入
当前这个项目的根目录也就是D:\proj\TestGame目录下工作,第一次在该项目使用时,需要先运行cc-i18n create
此命令是初始化一些配置信息,以及把相关的代码文件和目录拷贝和创建到游戏项目assets的目录下。如图:
静态文本
对于静态文本,需要开发者自行在挂在了cc.Label组件的节点上挂在I18nLabel组件,或者可以使用cc-i18n gen-set-key -g 自动给相应节点挂在I18nLabel组件,需要注意这个命令会给所有挂载了cc.Label组件的节点自动挂载I18nLabel组件,故需要考虑是否所有label节点都是静态文本。
如图:
动态文本
动态文本需要在在具体的语言目录下新建一个任意英文名的json文件,把需要显示的内容同样以键值对的形式存储起来,
然后就可以通过key获取到该json文件的文本内容,可以通过获取节点挂载的I8nLabel组件,通过这个组件的setLabel这个接口去设置相应的文本,该接口通过传入的key获取json文件中的内容,开发者可以事先在相应的json文件中增加对应的键值对,例如在zh.json文件增加 "hello": "你好", 则在代码中可以通过
获取对应语言文件的 "hello" 对应的文本内容。
动态文本还支持动态替换json中设定的文本内容,例如zh.json文件中 "hello": "你好{0}",那么使用时可以通过
node.getComponent(I18nLabel).setLabel("hello", "i18n工具")
那么返回的字符串就是 "你好i18n工具",接口的第二个参数除了传实际的文本内容,也可以传入key。除此之外还可以在I18nLabel组件上面的 params 属性增加相应的文本内容用于替换{0},需要注意,文本中有多少个{},params 参数就可以传多少个用于替换,而且有{}必须严格按照{0},{1},{2}...以此类推,{}里面必须带有当前第几个的数字,从0开始。
例如示例:
如何增加语言
可以在LanguageEnum文件中增加语言枚举,例如:
同时在resources/i18n.text目录下增加与枚举同名的目录,再在这个目录下增加枚举同名的json文件即可
如何使用标签多语言
只需要在项目完成后,把zh.json翻译成所需要的语言版本即可,注意key必须一样,不能改变,即把key对应的文本翻译成不同语言即可。
cocos creator 版本
3.x以上
cocos creator国际化i18n多语言工具cc-i18n相关推荐
- vscode函数跳转插件_人生苦短,我们为 Cocos Creator 开发的插件和工具
在使用 Cocos Creator 开发项目的过程中,为了提高开发效率我们开发了很多扩展插件,本文介绍常用的几款,抛砖引玉,希望给大家带来帮助. 腾讯开心鼠英语 网页扩展:运行时查看场景节点树 Coc ...
- cocos creator入门教程(六)—— cc.Action使用
Action类是动作命令,我们创建Action,然后节点运行action就能够执行Action的动作; Action分为两类: (1) 瞬时就完成的ActionInstant, (2) 要一段时间后才 ...
- 【cocos creator】释放不用的资源 cc.assetManager.releaseAsset
释放前要检查该资源有没有在游戏中被引用 clear_Audio(url) {let count = 0;for (let t in this.questionData) {let element = ...
- cocos creator组件化开发 对比 cocos studio +cocos2dx开发
相对于使用cocos studio + cocos2dx开发模式,使用cocos creator的组件化开发更为高效和简洁 以按钮myButton节点的点击音效为例: 1:cocos studio + ...
- cocos creator麻将教程系列(九)—— 幼麟棋牌代码讲解
这篇文章是官方整理的: 技术栈 客户端 引擎:Cocos Creator 2.0.6. 语言:Javasctipt 可用开发平台:MAC,Windows 可发布平台: iOS,Android,Wind ...
- html多语言国际化,gMIS吉密斯i18n多语言国际化更新
gMIS吉密斯 部署和使用范围日益扩大,跨国多语言版本成为迫切需要的功能,早在2018年年中就考虑要增加这一功能--在gMIS吉密斯中实现多语言版本的支持. 以期实现gMIS吉密斯的跨行业.跨地区和国 ...
- 游戏开发-cocos creator技巧-cc.Component.EventHandler自定义click事件
cocos creator有两种给按钮注册click事件的方式, EventHandler的方式虽然有点麻烦,但是比较灵活,使用时候注意每个参数必须填写正确,否则click时候会报null的错误 第一 ...
- cocos creator基础-(五)cc.Component使用
一.组件入口函数 1: onLoad: 组件加载的时候调用, 保证了你可以获取到场景中的其他节点,以及节点关联的资源数据 2: start: 也就是第一次执行 update 之前触发 3: updat ...
- cocos creator运行正常,微信开发者工具中报错XXX is not defined.
描述 在cocos creator中运行没有问题(浏览器.模拟器不报错): 但是构建发布后,在微信开发者工具中报错XXX is not defined. 解决 1.在cocos creator中定位错 ...
最新文章
- Github Pages+Hexo+阿里云域名绑定
- python 如何自学-如何系统地自学 Python?
- python电脑配置大概要多少钱-学python最电脑配置有要求么
- kafka shell
- DFT实训教程笔记2(bibili版本)- Scan synthesis practice
- matlab 角域重采样,matlab滤波技术与区域处理---区域滤波
- 直播预告丨告别后知后觉的指标波动,神策智能预警分析直播来袭
- linux下qt多个程序打包,解决Ubuntu下使用linuxdeployqt打包Qt程序问题
- 两个企业级产品设计思路:流程效率指标功能生命周期长度
- 技术面试问项目难题如何解决的_同轴线如何当网线使用?解决改造项目中难题...
- 51Nod-1018 排序【排序】
- easyui datagrid 动态绑定列
- Sublime Text SFTP 注册码
- Windows Server 2019 安装应用商店
- Ultra Compare 8 文本比较乱码问题 解决
- jquery实现回到顶部和回到底部
- java钝化_黑马day14 监听器之javaBean对象的活化和钝化
- 1072 开学寄语 C++实现
- OpenHarmony啃论文俱乐部方法总结分析
- 怎么搜索到最新最全的热点新闻资讯呢?有这四个工具就够了