Snowygems

汉化与文案自定义

lang.yml 的结构、占位符、发送方式前缀,以及把插件改成任意语言或任意风格的方法。

汉化与文案自定义

plugins/SnowyGems/lang.yml玩家能看见的所有文字的唯一修改入口。插件代码里不硬编码任何玩家可见文本,想改措辞、改颜色、换语言,只改这一个文件。

lang.yml热重载的——保存文件即生效,不需要 /sgem reload,更不需要重启服务器。这是插件里唯一一个热重载的配置文件。

文件结构

107 个文案节点分成 11 组:

节点组数量覆盖内容
prefix1命令回执的统一前缀
common6复用的通用词(任意物品、无、全部…)
command9/sgem 各子命令的回执
gem16镶嵌/拆卸/使用宝石的结果提示
embed14内置镶嵌台界面的全部文字
menu8自定义菜单的提示
view9/sgem view 浏览面板
inspect4/sgem inspect 查看面板
skill4技能冷却与形态切换提示
compat21/sgem compat 报告的每一行
skills11/sgem skills 函数清单的排版
triggers4/sgem triggers 触发标记清单

每个节点上方都有中文注释说明它出现在什么场景、可用哪些占位符。


颜色码

写法效果
&0 ~ &9&a ~ &f颜色
&l粗体
&o斜体
&n下划线
&m删除线
&k乱码(随机字符动画)
&r重置

也可以直接写 §,效果相同。


占位符

{名字} 形式,会被替换成实际值:

command:
  give: "&f已给予 &b{player} &f{amount} 个 &a{gem}"

占位符不写也不会报错——没有对应值时原样保留。所以你可以按需删掉不想显示的占位符:

  give: "&f已发放宝石"          # 不显示任何具体信息,也能正常工作

每条消息可用的占位符都写在它上方的注释里。


发送方式前缀

在文本最前面加前缀,可以改变这句话的呈现方式:

前缀效果
(无)普通聊天栏消息
actionbar:显示在物品栏上方的动作栏
title:大标题,用 `
none:什么都不发(等于关掉这条提示)
embed-success: "&a镶嵌成功!"
目前只支持这四种前缀。写 bossbar: 之类未支持的前缀,那段文字会被当成消息正文原样发出去(玩家会看到「bossbar:镶嵌成功」),而不是报错。

none: 前缀很实用:想让某类提示彻底安静,不用去改代码,也不用忍受空消息——直接把那个节点改成 none:


前缀(prefix)

prefix 会自动加在命令回执类消息前面,也就是 command.* 那一组。其他消息不加。

prefix: "&8[&b雪宝石&8] &r"

想去掉前缀就设成空字符串:

prefix: ""

换成其他语言

lang.yml 里没有任何中文是写死在代码里的,所以换语言只需要翻译这个文件:

备份原文件

cp lang.yml lang.zh_CN.yml.bak

逐节点翻译

保留 YAML 的键名和 {占位符} 不动,只翻译引号里的文字部分。

# 翻译前
command:
  reload: "&a配置已重载 &7({time}ms)"
# 翻译后
command:
  reload: "&aConfig reloaded &7({time}ms)"

保存即生效

不需要重载。如果发现漏翻,直接改、直接保存。

不要删节点。 删掉的节点在游戏里会显示成裸的节点名(如 menu.no-slot),因为代码找不到对应文案。不想要某条提示就用 none: 前缀,不要删。

需要同步改的地方

lang.yml 覆盖的是插件自己的提示。以下文字不在 lang.yml 里,改语言时也要一起处理:

内容在哪改
宝石的名字与 loregems/*.ymlDisplayTipsName
宝石的成功/失败/拆卸提示gems/*.ymlSuccessTipFailTipRemoveTip
菜单标题与图标文字gui/*.ymlTitleDisplayTips
技能的 lore 绑定标记skills/*.ymlLore
技能里的 Chat/ActionBar/Title 内容skills/*.yml 技能行里的 m= 参数

技能定义的 Lore 标记要格外小心:它同时是「装备 lore 里的绑定文本」。改了这里,就必须同步改所有引用它的宝石(LoreAdd{lore=...} / LoreVar{lore=...}),否则两边对不上、BUFF 静默失效。

已经发到玩家手上的旧装备更麻烦——它们 lore 上是旧文本,改了标记后这些装备的 BUFF 会全部失效。上线后不要再改 Lore 标记。


有意保留在代码里的文本

有两处玩家可见文本刻意没有放进 lang.yml

内容原因
内置镶嵌台的界面名 宝石镶嵌台它是和宝石配置 Gui: 字段对表的匹配键,不是展示文案。挪进 lang.yml 会把「改语言」变成「改匹配逻辑」
调试日志只输出到控制台,面向服主而非玩家

如果你确实要改镶嵌台的界面名,得同时改所有宝石配置里的 Gui: 值。


自检

改完 lang.yml 后,如果游戏里出现了裸的节点名(如 gem.embed-success 直接显示出来),说明该节点被删掉或键名写错了。对照原始文件补回来即可。

原始 lang.yml 可以从插件 JAR 里取出:

unzip -p SnowyGems-1.0-Dev.jar lang.yml > lang.default.yml

或者把 plugins/SnowyGems/lang.yml 删掉重启,插件会重新释放一份默认的。

Copyright © 2026