多语言
插件消息与布局静态文字翻译,支持配置重载
希望在画布中编辑译文时,直接阅读布局多语言教程;本页说明语言文件格式与运行规则。
Xerr 使用 TabooLib 选择玩家语言。插件提示与布局文字分开管理,避免服务器管理消息和内容包混在一起。
两类语言文件
| 内容 | 文件位置(相对于 Xerr 插件目录) |
|---|---|
| 命令、重载、打包等插件提示 | lang/zh_CN.yml、lang/en_US.yml,也可添加其他语言文件 |
| 布局的静态文字 | core/lang/layout/<语言代码>.yml |
文件名使用客户端语言代码,例如 en_US.yml、zh_TW.yml、ja_JP.yml。玩家语言、地区映射和语言选择事件由 TabooLib 处理;控制台使用框架的系统语言选择。
翻译单行文字
例如布局中的两个 ID 分别为 hud_info、health_label:
hud_info:
health_label:
value: "&f生命"英文翻译:
layout:
hud_info:
health_label:
value: "&fHealth"对应节点为:
layout.<原布局 ID>.<元素 ID>.value本例就是 layout.hud_info.health_label.value。布局 ID 是 YAML 顶层节点,不是文件名;元素 ID 是布局内部的节点。翻译只替换文字,不改变字体、图片或位置。
HUD、信息栏、弹窗、罗盘和 Screen 引用同一布局时,始终使用原布局 ID,无需为不同显示位置重复编写翻译。
翻译静态多行文字
布局中的固定 list 可以翻译为完整列表:
hud_info:
tips:
list:
- "&f欢迎回来"
- "&7按提示继续探索"
offset:
y: -12在同一个英文文件中,为该元素增加 list:
layout:
hud_info:
tips:
list:
- "&fWelcome back"
- "&7Continue exploring"对应节点为 layout.hud_info.tips.list。翻译列表可以有不同的行数;Xerr 会在准备布局时登记各语言需要的行位置。实际行距仍由原布局的 offset 决定。
回退规则
- 插件消息:缺少目标语言或对应节点时,使用默认语言消息。
- 布局文字:缺少目标语言或对应节点时,使用布局原文。
- 布局中没有
value或list的元素,不会因为存在翻译节点就自动增加文字。
已有 value、list 中的脚本或占位符仍按原有流程处理。Xerr 不翻译 lines 脚本返回值、variables 及其他开发者生成的动态内容,也不会根据最终文字自动猜测翻译。
重载与分发
修改语言文件后执行 /xerr reload,新增、修改和删除的翻译都会重新读取,无需完整重启。语法、类型或重复节点校验失败时,不会用无效词典替换上一份可用数据。
如果改变了多行数量、字体或排版位置,执行 /xerr pack 重新生成资源包,并让客户端加载;仅修改已有位置上的文字可以直接重载。
布局翻译可以随内容包一起分发。目录允许按内容包建立子目录,但同一种语言的同一节点只能定义一次,重复定义会拒绝重载,避免不可预期的覆盖。