多语言系统(i18n)
在资讯领域,i18n 指让产品(出版物,软件,硬件等)无需做太多改变就能够适应不同的语言和地区的需要。
在程序开发领域,i18n 则是指在不修改内部代码的情况下,能根据不同语言及地区显示相应的本地化内容。
Cocos Creator 扩展系统中内置的多语言方案(i18n)允许扩展配置多份语言的 键值映射,并根据编辑器当前的语言设置在扩展里使用不同语言的字符串。
要启用多语言功能(以下简称 i18n),需要在扩展的目录下新建一个名叫 i18n 的文件夹,并为每种语言添加一个相应的 文件,作为键值映射数据。
数据文件名应该和语言的代号一致,如 en.js
对应英语映射数据,zh.js
对应中文映射数据。如下图所示:
映射以 JavaScript
对象的 key 作为键值,并以模块信息导出,如下所示:
en.js
以 open_panel
为例,假设注册的扩展名字叫做 first-panel
,则对应的文本翻译 key 为 first-panel.open_panel
。
在 TypeScript 或者 JavaScript 脚本中,可通过 Editor.I18n.t
接口获取当前语言对应的翻译后的文本:
<ui-label value="i18n:first-panel.open_panel"></ui-label>
例如在扩展包的 package.json
中注册菜单路径时,只要这个字段支持 i18n 格式的路径,该路径就可以用 的形式实现多语言翻译功能。
示例1:扩展描述
示例2:面板标题
"default": {
"title": "first-panel Default Panel",
// "type": "dockable",
// "main": "dist/panels/default",
// "size": {...}
}
示例3:菜单路径与显示内容