Skip to content

zh_cn_locate

KlparetlR edited this page Sep 30, 2023 · 3 revisions

实战部分二:定位目标类

使用java-decompiler 和 VSC 编辑器来定位

在上一章“获取模组源代码”之后,打开VSC,打开上一章解压后的文件夹地址

打开后,你可以选择两种汉化方式,1.遍历所有.java文件,把想要汉化的字符串提取成key 2.上游戏选择要定位的字符串,通过VSC全局搜索定位字符串来提取成key

方式1

这里要分辨什么是要汉化的,有一些并不是作为显示在游戏中的内容,要靠阅历积累判断,有问题可以来VP交流讨论(

提取为“key”参见补丁文件(模块)的示范配置

方式2

在游戏中选择一个属于模组的字符串(有可能找不到的原因是不在这个模组代码里),在打开了源代码文件夹的VSC上,点击左侧工具栏第二个功能,长着一个放大镜模样的,把字符串填入(有时候不用全部填入,看感觉),然后会出现1至多个搜索结果,如果只用一个,那就把那个提取了,如果有多个,可能是都可汉化的,要自己判断

定位目标类

在上文成功找到字符串所在的java文件后,点击其中一个搜索结果,确认是要汉化的之后,键盘打入Ctrl+K,(然后只松开K,再按Shift+C)=(Ctrl+Shift+C),这样,你就获取了目标类的目录地址,比如:com\coldspell\xpcoins\world\ModEntitySpawns.java,然后改\.,去掉.java,结果为:com.coldspell.xpcoins.world.ModEntitySpawns,就是要填入target_classname的值了。

再填入keyvalue的值,这个翻译键就可以生效了,这是一个最基础的键

PS:如果一个java文件含有多个要汉化的字符串,可以这样填:

  {
    "target_class": {
      "name": "com.coldspell.xpcoins.world.ModEntitySpawns",
      "method": ""
    },
    "pairs": [
        {
            "key": "key1",
            "value": "value1"
        },
        {
            "key": "key2",
            "value": "value2"
        }
    ]
  },