游戏需要国际化的情况下,可以使用L10N扩展进行多语言设置。
cocos国际化有两种实现方式,分别成为L18N和L10N,本篇主要讲述L10N的使用,其功能更强大。
开启L10N
cocos creator 版本要求:3.6及以上
扩展-扩展管理器中安装并启用localization-editor
自动收集要翻译文本
打开面板-本地化编辑器
- 本地开发语言在国内一般是简体中文
收集文本
收集目录一般是场景文件夹和代码文件夹
删除文本
自动搜索出来的结果有时候不一定是我们想要的,基本上它会把场景中的Label加上L10nLabel组件。对于一些国际通用的Label内容,比如数字和字母并不需要翻译,这时候我们就要从要翻译的内容组删除。cocos 本地化编辑器并没有提供删除单条数据功能,需要手动删除。
手动删除需要进行两个操作
- 移除L10nLabel,进行删除组件之前需要记录下L10nLabel的key属性值
- 删除配置
自动收集图片
将要国际化的图片放到一个或者多个目录下,在搜索时候指定这些目录和图片后缀
点击右下角收集并统计按钮后目录下的图片会进入待翻译列表。
点击翻译查看列表
点击 导入 选择对应的英文版的图片
最后点击保存
手动收集
手动管理适合动态Label值动态变化的情况。使用流程如下
- 建一个csv文件来管理要翻译的内容,表头格式如下

-
每一行是一个待翻译的内容
-
点击导入文件将csv文件导入本地化编辑器
翻译
点击翻译按钮将进行多语言翻译,如果配置了译文服务商,可以自动翻译,否则需要手动翻译
手动设置多语言
对于动态变化的Label,可以通过脚本来设置多语言
const l10nKey = "tool_title"
if(l10n.exists(l10nKey))
{
titleLabel.string = l10n.t(l10nKey)
}
预览效果
点击各语言的预览按钮,场景中即会展示对应的语言。
游戏内支持多语言
可以根据以下API在游戏适当的位置来切换语言
获取所有可用语言
console.log(l10n.languages)
// ['zh-Hans-CN', 'en-US']
动态切换语言
l10n.changeLanguage('zh-Hans-CN')
注意: 在调用此方法后,会自动重启游戏,请务必做好数据持久化工作。
构建发布多语言
国际化翻译完成后,在构建时即可选择要支持的语言。
注意点(踩坑)
- 自动搜索会把场景中的label全部加上L10nLabel组件,并且label的值将由L10nLabel接管,而且接管后的这个值是不可变的。
- 自动搜索的结果不能删除,只能手动删
- 基于L10nLabel的string不可变,动态变化的label不适合使用自动搜索,需要手动管理多语音
- 如果游戏项目规模比较大,不建议使用自动搜索,个人觉得更好的方式是在将需要翻译的内容手动添加L10nLabel并设置key值,维护一个doc文件来管理
广告时间
以上经验以用于这些产品中,使用微信扫一扫打开

搜索:《2048合成大球球》

搜索:《你能找到几只熊》
















老板不会同意的 
