多语言系统(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 接口获取当前语言对应的翻译后的文本:

    1. <ui-label value="i18n:first-panel.open_panel"></ui-label>

    例如在扩展包的 package.json 中注册菜单路径时,只要这个字段支持 i18n 格式的路径,该路径就可以用 的形式实现多语言翻译功能。

    示例1:扩展描述

    示例2:面板标题

    1. "default": {
    2. "title": "first-panel Default Panel",
    3. // "type": "dockable",
    4. // "main": "dist/panels/default",
    5. // "size": {...}
    6. }

    示例3:菜单路径与显示内容