语言与文案自定义
语言与文案自定义
当前版本使用 plugins/SnowyGems/lang/ 目录,内置 zh_CN.yml、zh_TW.yml、en_US.yml。旧版根目录的 lang.yml 已不再是当前语言入口。
在 config.yml 中选择服务器语言,然后执行 /sgem reload:
Lang: zh_CN
所有玩家与控制台统一使用此语言,不按玩家客户端语言分别选择。指定的文件不存在时,插件优先回退到简体中文,并在控制台说明。
修改文案
编辑选中的 lang/<语言代码>.yml,保留键名与占位符,仅修改文本。语言文件由 TabooLib 语言模块托管;保存后支持自动重读,需要立即确认结果时可执行 /sgem reload,重新打开菜单查看。
语言节点采用扁平键名,用横杠分隔:
prefix: '&8[&bSnowyGems&8] &f'
command-give: '&f已给予 &b{player} &f{amount} 个 &a{gem}'
gem-embed-success: '&a镶嵌成功!'
不要改写成嵌套的 command: { give: ... }。代码里的 command.give 会转换为 command-give 查找,这不表示语言文件支持嵌套结构。
从旧 lang.yml 迁移
- 备份旧
lang.yml和当前lang/。 - 在新生成的
lang/zh_CN.yml中找到对应节点,例如旧gem.embed-success对应新gem-embed-success。 - 将自定义文案复制到新节点,保留新版本增加的占位符与节点。
- 设置
Lang: zh_CN,执行/sgem reload并验证消息和界面。
根目录旧文件的自定义内容不会由插件自动搬到新语言文件。更新后新增的语言节点由语言模块补全,已有自定义值会保留;仍建议更新前备份。
颜色与占位符
支持 &0~&f 颜色码、&l 粗体、&o 斜体、&n 下划线、&m 删除线、&k 随机字符与 &r 重置,也可使用 §。
占位符采用 {player}、{gem}、{amount} 等形式。可用名称见对应语言节点旁的注释;没有传入值的占位符会原样保留。
command-reload: '&a配置已重载 &7({time}ms)'
消息发送方式
对通过消息发送接口发出的文本,可在最前面指定:
| 前缀 | 效果 |
|---|---|
| 无前缀 | 聊天栏消息 |
actionbar: | 动作栏;控制台退化为普通文本 |
title: | 大标题,以竖线分隔主标题和副标题 |
none: | 不发送 |
gem-embed-success: 'title:&a镶嵌成功!|&7装备已强化'
command-reload: 'actionbar:&a配置已重载'
command-give: 'none:'
prefix 用于命令的普通聊天回执,动作栏、标题和静默消息不会附加该前缀。不支持 bossbar:。
菜单标题、物品名字、图标 lore 等只是读取文本的场景,不会解析发送前缀;不要在这些节点里写 title: 或 none:。宝石 SuccessTip: none 是宝石配置的特殊值,与这里的 none: 发送前缀分属不同入口。
还需要同步修改的文案
| 内容 | 位置 |
|---|---|
| 宝石显示名、描述、结果提示 | gems/*.yml 的 Display、Tips、SuccessTip 等 |
| 自定义菜单标题与图标 | gui/*.yml 的 Title、Display、Tips |
| 技能触发标记与技能消息 | skills/*.yml 的 Lore 和技能行 |
技能 Lore 同时是装备上的绑定标记。修改它时必须同步修改相关宝石奖励和旧装备,否则旧装备无法匹配新标记。内置通用台的匹配键仍是 宝石镶嵌台,改界面标题不会改变宝石 Gui 的匹配规则。
排错
- 出现
gem-embed-success或gem.embed-success等裸键名:检查当前语言文件的键名与节点类型。 - 改文件不生效:确认
Lang选中的是该文件,再执行/sgem reload。 - 更新后仍只有旧文案:确认没有继续编辑根目录的
lang.yml。 - 需要恢复默认文件:先备份,将对应语言文件移出
lang/,重启后检查重新释放的版本。