Skip to content

zh_cn_intro

KlparetlR edited this page Dec 31, 2023 · 4 revisions

为什么需要VaultPatcher?

你也许见过以下情形:

我明明加了i18n,但是模组里面还有些东西没汉化。

其实,产生这些的主要原因是,这些文本并不像平时看到的一般的文本那样,被模组作者清清楚楚的写在一个语言文件中,供译者们翻译。 它们大多都是被模组作者们直接写进模组文件中的,这种方式不仅使得这些文本难以被修改,还可能无法与原模组保持一样的兼容性。

而类似这样的内容,我们称之为 硬编码(Harded Code),更详细地说,硬编码是指在软件实现上,直接将数据/内容嵌入到程序的源代码中,而不是从外部源获取数据或在运行时生成数据。

VaultPatcher(统指最新版,下文简称VP),就是为此而生。VP可以通过配置简单的json文件,来替换模组中的硬编码文本。

为什么会有硬编码

Minecraft自带了一个类(在Yarn中称为TranslatableComponent)来获取存放在语言文件中的翻译文本,只需输入一个Key就能根据你的语言选项输出对应的文本。但倘若真这么简单的话,便不会有硬编码文本这种情况的发生了,虽然Minecraft本身有提供对应的服务供开发者使用,但由于模组开发社区没有统一的准则,导致仍有某些不负责任的开发者不使用它。

事实上,从硬编码文本转为可翻译文本并不难,难的是作者不去这样做。

VaultPatcher 版本说明

  • fabric:1.13+
  • forge:1.6-1.20.4+
  • 动态替换模式:1.17+