注:本贴士面向 1.12.2 制作,1.16.5 更改了语言文件的规范,添加了独特的命名空间,很大程度缓解了这个问题。
使用本地化冲突消除
本地化冲突消除
下图为神秘时代导致的汉化冲突问题,使用它即可修复
使用优先级更高的资源包替换
第一个为我制作的,用于覆盖的资源包
首先你得找到冲突的条目,然后制作一个资源包,把它放在汉化资源包之上
具体可以参考站内的这些教程:
如何自制资源包
数据包/资源包/材质(纹理)包/汉化包/简易模组/整合包教程大全
小贴士:你不需要压缩资源包也可以加载它,这可以方便你的修改
至于如何找到冲突的条目,你可以在 GitHub 上搜索对于的汉化名称,如果mod非闭源,你就能找到相应的汉化词条
比如你可以搜索
=守护之光
这里我们就得知冲突的词条为 title.barrier.name
如果闭源也没关系,解压 mods 下的所有 jar 文件,使用 Notepad++ 或 Visual Studio Code 搜索路径,同样可以找到对应的词条
找到冲突词条后,你就可以创建一个同
关于 ContentTweaker 和 Resource Loader 的问题当整合包作者使用 ContentTweaker 或 Resource Loader(也就是 CraftTweaker)来修改名称时,默认优先级是在自定义资源包下的
所幸 resources 文件夹约等于一个独立的资源包,那么你就可以把 resources 文件夹作为一个资源包加载
把 resources 文件夹复制到 resourcepack 文件夹下,并且把 pack.mcmeta 以外的文件都移动到新建的 assets 文件夹下,这时就可以被正确识别
或者聪明一些,你可以使用一个符号连接,而不用复制整个文件夹
关于 Resource Loader 提供的另一个方法
Resource Loader 的作者想到了这个问题,为我们提供了一个 oresources 文件夹,它的优先级在资源包之上
只需要把整合包内的 resources 文件夹下的文件复制为 oresources 文件夹即可。
同上,你也可以使用一个符号连接
关于资源包的另一个问题
由于游戏本体极其诡异的资源包加载规则,并不完全是由优先级决定
比如下图的终极精华熔炉就被成功的替换为五联压缩炉,但是复制机却没有,而是被替换为了物质重组机
英文替换正常生效
上图资源包路径为:
resources\assets\contentTweaker\lang\zh_cn.lang:title.replicator.name=§5复制机
Minecraft-Mod-Language-Modpack.zip\assets\matteroverdrive\zh_cn.lang:title.replicator.name=物质重组机
Minecraft
解决方法:
使用本地化冲突消除
使用相同的 modid
resources\assets\matteroverdrive\lang\zh_cn.lang:title.replicator.name=§5复制机
Minecraft-Mod-Language-Modpack.zip\assets\matteroverdrive\zh_cn.lang:title.replicator.name=物质重组机
Minecraft
感谢你阅读完本篇教程!
以上均为笔者在使用过程中总结出来的经验,并没有实际分析 Minecraft 的资源包加载代码
如有错误,欢迎指正