多语言文本
大约 1 分钟
多语言文本是为了控制不同国家语言的文本展示而存在,支持 cc.Label、cc.RichText
多语言文本配置
我们要使用多语言文本,首先要添加文本配置,在你的模块下建立任意一个脚本存放,如下图中的 i18n/resources_language_label.ts
就是 language 模块的文本配置
内容如下
import mk from "mk";
import * as cc from "cc";
export default new mk.language_.label_data(cc.js.getClassName(替换为模块class), {
示例: {
en_us: "template-{0}",
zh_cn: "示例-{0}",
},
});
示例
是多语言键,内容为对应的多语言文本,cc.js.getClassName(替换为模块class)
是获取模块名,你也可以替换为字符串
多语言文本组件
在添加了文本的配置后,我们就可以添加多语言组件了,选中 Label 组件,添加 mk_language_label 组件
可以看到,类型 就是我们 new mk.language_.label_data(...)
的第一个参数,而 语言标识 就是我们注册的多语言文本资源键
你可以任意切换类型和语言标识,编辑器内容实时更新,框架建议模块只使用自己的多语言资源,除非你使用的是公共资源
文本参数
文本参数是为了替换多语言中的动态内容,而替换成的固定格式字符串
框架默认的格式是 {0}
- 前缀:
{
- 后缀:
}
- 中间数字:参数顺序
例:
金币:{0},钻石:{1}
,参数为:[1, 2]
,结果为:金币:1,钻石:2
脚本内使用
const label = this.nodes.label.getComponent(mk.language.label)!;
// 设置参数
label.args_ss = ["xxx"];
// 设置类型
label.type_s = "resources_language";
// 设置标记
label.mark_s = resources_language_label.key.示例;