Skip to content

国际化(i18n)

自动 UI 与条目文本依赖语言文件。你需要在模组资源包中提供 config.<modid>.* 键值。

键名约定

  • 标题:config.&lt;modid&gt;.title
  • 分类:config.&lt;modid&gt;.category.&lt;section&gt;section 为顶层字段名)
  • 条目:config.&lt;modid&gt;.&lt;section&gt;.&lt;path&gt;... .tooltip
    • 顶层条目:config.<modid>.<section>.<field>
    • 子分类条目:config.<modid>.<section>.<sub.path>(点分路径)

示例(顶层 + 子分类):

json
{
  "config.my_mod.title": "我的模组设置",

  "config.my_mod.category.general": "通用",
  "config.my_mod.general.enabled": "启用",
  "config.my_mod.general.enabled.tooltip": "是否启用主要功能",

  "config.my_mod.category.client": "客户端",
  "config.my_mod.client.ui.whitelist": "白名单",
  "config.my_mod.client.ui.whitelist.tooltip": "允许显示的实体 ID 列表"
}

Tips:

  • 任何未提供的键将显示为默认英文 key 或占位,建议完整覆盖
  • tooltip 可选;未提供时 UI 仍可正常显示

语言文件位置

  • Fabric:resources/assets/<modid>/lang/zh_cn.jsonen_us.json
  • NeoForge:相同路径规范

UI 生成与键对应(实现细节)

  • 顶层分类使用 builder.getOrCreateCategory( translatable("config.&lt;modid&gt;.category.&lt;section&gt;") )
  • 条目文本:
    • 顶层字段:config.&lt;modid&gt;.&lt;section&gt;.&lt;field&gt;
    • 子分类字段:config.&lt;modid&gt;.&lt;section&gt;.&lt;sub.path&gt;
  • 所有条目默认会附加 ... .tooltip 作为提示文本键

注意:对于顶层非子分类字段,内部实现会做一次 fieldName.replace('.', '_') 的防御式处理;一般不会影响你实际使用,因为字段名通常不含点。