本篇教程由作者设定未经允许禁止转载。

如果你在网上下载到了零散的zh_cn.lang文件,却不知道如何安装这个文件,那么这个教程适合你。教程适用游戏版本:1.12.2 


一、如何使用Resource Loader安装zh_cn.lang汉化文件

 总起:将汉化文件放入 resources/<模组名>/lang 下


1. 先下载Resource Loader(1.12.2)模组

Curseforge: https://www.curseforge.com/minecraft/mc-mods/resource-loader

Mcmod: https://www.mcmod.cn/class/1036.html

 

2. 将Resource Loader装入mods文件夹,并启动一次游戏,这时游戏会自动生成一个名为resources的文件夹。你也可以自己创建这个文件夹。注意你的游戏是否开启版本隔离,检查一下,你的resources文件夹应该和装有Resource Loader的mods文件夹在同一目录。

 

3. 明确你的zh_cn.lang是哪个模组的的汉化文件。以无尽贪婪为例,你可以解压无尽贪婪的jar文件,其中有个assets文件夹。一般模组都有这个assets文件夹,这里使用Bandizip压缩软件,不用直接解压,可以预览,当然其它压缩软件也有类似功能。打开assets,可以看到里面有个avaritia,记住这个名字。如果assets里面不止一个文件夹,那么读英文的意思或对比本模组的名字可以排除不相干的选项。如蓝色天空,有blue_skies和minecraft两个文件夹,很明显minecraft是不相干项。

 

4. 回到resources文件夹,在此文件夹下新建文件夹,命名为你刚刚记住的名字“avaritia”。如果名字记不住,可以在之前的界面选中文件夹重命名(快捷键F2),进入重命名模式后直接复制(快捷键Ctrl+C)。之后给resources下的文件夹命名时直接粘贴就行了。

 

5. 进入刚刚创建的avaritia文件夹,新建一个文件夹并命名为lang,把汉化文件安装在lang文件夹内。重启游戏或使用F3+T重载资源彻底安装完成了。推荐使用后者,更省时间。

(测试下来附魔描述这个模组使用F3+T可能无效,只能重启游戏重载资源)

 

 总结:安装汉化的路径是resources/avaritia/lang。

可以看到模组内语言文件的路径是assets/avaritia/lang。就是说resources其实是代替了assets的位置。

 

 

二、为什么要使用Resource Loader安装汉化

 

汉化方式有很多种,每个人有自己喜欢的方式,这很正常。我个人喜欢用Resource Loader进行汉化。


我曾经用过多种汉化的方式,以无尽贪婪为例。其一是将jar文件解压,然后把zh_cn.lang塞入assets/avaritia/lang里面,然后再把整个文件再打包。使用这种方法虽然可以加载模组,但是汉化是无法加载的,我尝试把zh_cn.lang改为en_us.lang,这次虽然成功了,但是顶替掉了原来的en_us.lang。这意味着英语就再也无法显示了,即使换成英语也会显示中文。而且这种方法会改变模组本体。我认为一个模组一旦下载下来后,你可以复制粘贴,但是尽量不要去动模组文件内部。


选用自动汉化更新模组也是个不错的方案,它会自动下载自动汉化资源包,这种方法的可行性较高。但是存在一个问题,就是其中的翻译某些可能不尽如人意,你可能在里面看见某些不喜欢的翻译,甚至会有明显的错别字。另一个问题就是自动汉化资源包过于臃肿,资源包里有大量模组的翻译,而很多模组你根本就没装,那么这些模组的翻译文件在资源包就是纯浪费的。但是不可否认,多数情况,自动汉化更新还是很有用的。


相对于资源包臃肿的问题,用Resource Loader刚好解决这个问题。文件没有打包直接包含于resources这个文件夹内,每个模组的汉化文件是一个独立的模块,可以更自由的删减,修改,添加,因为Resources Loader本来就是适用于零散的素材加载,网上下载的汉化文件或其它图片都适合用它来加载。而且你也可以随时打开lang文件来自定义汉化,毕竟适合自己的才是最好的。

 

 

三、如何用Resource Loader给自定义主菜单和FTB任务提供资源

一般,如果要使用这两个模组调用图片的话。我建议在resources下新建image文件夹,在image下建立mainmenu文件夹,然后把所用的图片丢进去。如果图片01.png的路径是resources/image/mainmenu/01.png,那么在自定义主菜单的json配置里面要调用的话就填 image:mainmenu/01.png

把FTB任务要用的图片a2.png素材丢进resources/image/ftbquests里,那么FTB任务要调用时就填 image:ftbquests/a2.png

可以看出,这个把image当成一个模组对待了。

这里的路径不像加载汉化那么严格,这个名字都是为了方便取的,图片直接丢进image也可以,甚至image也能改成learning materials或别的什么名字,但是别用中文。不过我自己测试时别的路径不知道为什么出错了(图片直接变成紫黑丢失材质),我最终一直用这两个路径,没有出错。