跳至主要內容

多语言文本

muzzik大约 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.示例;

📣 觉得很赞?分享给你的朋友吧!