cck-i18n插件使用介绍

cc-i18n介绍

  • 基于cocos creator引擎的游戏开发i18n多语言模块,是在nodejs环境下运行的i18n工具,所以需要确保安装nodejs环境

  • 该工具可以帮助你自动检测游戏预制体中的cc.Label组件,并生成相应的key存储在json文件中,

  • 插件可以把相对应的key设置在I18nLabel组件中,同时也支持自动给预制体增加I18nLabel组件

安装

  • 搭建nodejs环境,并查看是否有nodejs和npm版本 node --version npm --version
  • 如果以确定安装了相应环境, 则执把插件导入到项目中的extensions目录下
  • 进入到插件 cck-i18n 目录下,打开nodejs运行命令 npm install 安装依赖模块,等待安装完后,就可以使用了

使用教程

  • 在项目中切换语言的方法,示例演示图片:

​​​​​​​​在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 如上图所示,点击中文或者英文按钮时,I18nManager.getInstance().setLanguage(Language.zh) 或者 I18nManager.getInstance().setLanguage(Language.en) 就可以设置当前要显示的语言类型
    ​​

插件的使用

  • 插件在cocos creator的菜单栏中的“cck工具箱”中打开,如图所示:
    在这里插入图片描述

  • 打开后如下图所示:
    在这里插入图片描述

插件可以通过五个按钮可以使用其功能:
  • 创建多语言功能:

这个功能会在项目的scripts/i18n目录下生成i18n模块代码,同时在resources/i18n生成相应目录结构

  • 生成多语言key值功能:
  • label多语言:
    这个功能是根据预制体Label节点中挂载的I18nLabel组件生成相应的key,并把key保存到一个Json文件中;
    注意:每一个需要自动生成多语言key的label节点,都需要手动挂载I8nLabel组件,如果想自动挂载,请使用第五个按钮功能,即“为所有Label加挂I18nLabel组件并同时生成和设置key值” ,但这个按钮功能会在所有label节点上挂载I18nLabel组件,故使用前需要考虑清楚是不是所有label节点都是静态文本。
  • sprite多语言:
    对于sprite多语言来说,会检测assets/resources/i18n/sprite目录下的所有图片资源,并获取图片资源的uuid,把uuid存储在json文件中。在使用时,必须先在i18n/sprite/路径下根据不同的语言增加相应的目录,比如,如果你只发布中文和英语两种语言,那么就在i18n/sprite路径下建zh和en两个文件夹,在这两个文件夹下各自语言的图片,必须要确保同一种图片,在不同语言文件夹下的图片文件名相同。

在这里插入图片描述

    注意:i18n/sprite/json路径下的文件内容不得更改,除非你完全了解更改后会产生什么后果
  • 设置多语言key值功能:
  • 需要开发者实现在须要进行多语言适配的挂有cc.Label组件或者cc.Sprite组件的节点挂载I18nLabel组件或者I18nSprite组件
  • 只有挂载了对应的I18nLabel组件和I18nSprite组件,才能对这两个组件设置key
  • label多语言:
    这个功能会检查挂有cc.Label组件的这些节点是否有挂载I18nLabel组件,如果有,则把相应的key设置到组件上
  • sprite多语言:
    这个功能会检查挂有cc.Sprite组件的这些节点是否有挂载I18nSprite组件,如果有,则会根据cc.Sprite组件上挂载的相应图片,把这张图片的uuid设置到I18nSprite组件上。
  • 同时生成和设置多语言key值功能:
  • 这个功能会同时执行 生成key值和设置key值的功能。
  • 为所有Label加挂I18nLabel组件并同时生成和设置key值功能:

这个命令是根据预制体节点中挂载的cc.Label组件生成相应的key,并把key保存到一个Json文件中,然后再在挂载了cc.Label组件的节点上增加I18nLabel组件,并把相应的key设置到I18nLabel组件上

    注意:这个命令对sprite多语言不起作用,只有label多语言才有用,当使用这个命令时,sprite多语言不会生成key,以及设置key。

功能使用

  • 初始化

使用时,需要在游戏项目的根目录运行上面所介绍的功能命令,例如TestGame项目在D:\proj\TestGame,那么需要进入当前这个项目的根目录也就是D:\proj\TestGame目录下工作,第一次在该项目使用时,需要先执行创建多语言功能。此功能是初始化一些配置信息,以及把相关的代码文件和目录拷贝和创建到游戏项目assets的目录下。如图:

在这里插入图片描述

  • 静态文本

对于静态文本,需要开发者自行在挂在了cc.Label组件的节点上挂在I18nLabel组件,或者可以使用第五个按钮的功能 自动给相应节点挂在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以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值