WHATtHEHECK 发表于 2023-1-12 17:18:29

jar汉化的心得

本帖最后由 WHATtHEHECK 于 2023-3-15 20:26 编辑

本人java外行,但捣鼓了一段时间的mod汉化,有了一些心得,来分享分享Jar汉化的方式我总结了有几种:当然汉化的前提是获得了mod作者许可
1获取源码可以联系作者给你源码,模组文件里也可能有源码­­也可以用反编译器,反编译器有很多,网上都能找到,不同反编译器生成的源码也不同我常用的反编译器是cfr,出来的结果还是比较准确的对于mod一般不考虑是否加密2开始汉化3打包教程:How to use IntelliJ IDEA as a Starsector IDE (fractalsoftworks.com)
然后替换原jar包对应的class文件,即可
优点;能实现完美汉化缺点:操作繁琐复杂,没点基础搞半天搞不好。

Class字符串替换工具主要有:Hhclass、 mctools(mc科技强大如斯)
直接将class中英文文本替换为中文。优点:使用简单快捷,缺点:有255字词上限,超出不显示,重复出现的字符串只显示一次,犹如“.”这样的就不好改动。并且容易把不该改动的给替换 导致报错,风险很大

这种方法的工具有Cafebabe、dirtyjoe(没用过)、jbe(太老旧不推荐)
优点:可以解决class字符串替换工具的上限问题,使用较简单友好。缺点:文本可读性较差

最后推荐:recaf
这么多工具用下来,最方便的应该是recaf了,也不需要配置什么工作环境,直接对着方法右键使用
进行编辑即可。
简单快捷,不需要反编译/编译那样复杂繁琐的操作,也没有字符串替换工具的显示上限问题,直接保存为jar,目前mod也没发现报错的问题,集各家之所长,只能说非常好用!


我整理了一下mod汉化的一些注意事项的链接:远行星号mod汉化教程 (qq.com)Starsector-0951-Localization/format_standard.mdat main · TruthOriginem/Starsector-0951-Localization · GitHub
术语 - 远行星号 Starsector - ParaTranz
目前我手上的mod项目:有prv和罗伊德联盟,以及俘虏军官船员,如果有人想接手的话可以私信我,我建议重新校对一下这些mod 的汉化,因为我一个人实在是精力有限,特别是prv文本量太多顶不住













ZeroXenon 发表于 2023-1-12 18:28:22

挺好的教程,当初也是实践了不少类汉化器,最后直接转到直接编译去了。{:5_124:}

没技术,是菜鸡 发表于 2023-1-12 19:12:05

已经习惯从源码入手搞翻译了,更何况这游戏翻译可以外置文本,也没什么小困难。
那些没有源码的我都是直接问作者要的。
如果作者也不记得了,那大概这mod的生命周期已经结束了吧。。

星星蜗牛 发表于 2023-1-12 22:52:21

{:tieba_43:}非常好的教程

迎风布阵 发表于 2023-2-26 11:45:42

我最近有想学内核汉化的打算(因为有可能要接手联合极光联邦的汉化),想问一下大佬如果有源码只需要用recaf就可以完成内核汉化吗?什么叫汉化完成之后可以外置文本呢?如果愿意教我的话不甚感激!

WHATtHEHECK 发表于 2023-2-26 12:01:37

迎风布阵 发表于 2023-2-26 11:45
我最近有想学内核汉化的打算(因为有可能要接手联合极光联邦的汉化),想问一下大佬如果有源码只需要用reca ...

是的(其实没源码也可以完成)。外置文本就是将源码里面的字符串通过键 值的方式保存在.json文件中,这样做了之后可以方便后续更新,不用每次都编辑源码了,一般是mod作者来做这个工作的,因为我是java外行,我还不知道这该怎么实现{:5_124:}教不了你

迎风布阵 发表于 2023-2-26 12:05:46

WHATtHEHECK 发表于 2023-2-26 12:01
是的(其实没源码也可以完成)。外置文本就是将源码里面的字符串通过键 值的方式保存在.json文件中,这样 ...

了解了,现在的问题是我下载了Recaf但是打不开,是需要下载一个Java才行吗。另外在源码里面有哪些东西是需要汉化的呢?{:5_121:}我也只是初步了解过c++,Java一点也不会。{:5_124:}。

WHATtHEHECK 发表于 2023-2-26 12:17:24

本帖最后由 WHATtHEHECK 于 2023-2-26 12:21 编辑

迎风布阵 发表于 2023-2-26 12:05
了解了,现在的问题是我下载了Recaf但是打不开,是需要下载一个Java才行吗。另外在源码里面有哪些东西是 ...
是需要java的,至少java8,推荐java11或之后的版本。
至于哪些需要汉化,我这边的Recaf 里String 显示的是淡蓝色,找淡蓝色字体然后看看上下文检查一遍是否连贯,检查是否是ID,差不多就可以操作汉化了

迎风布阵 发表于 2023-2-26 12:57:27

WHATtHEHECK 发表于 2023-2-26 12:17
是需要java的,至少java8,推荐java11或之后的版本。
至于哪些需要汉化,我这边的Recaf 里String 显示的是 ...

我安装了java11依旧打不开recaf,是要配置环境吗还是怎么说?

WHATtHEHECK 发表于 2023-2-26 13:05:00

迎风布阵 发表于 2023-2-26 12:57
我安装了java11依旧打不开recaf,是要配置环境吗还是怎么说?

你下载的Recaf应该是一个jar文件,你可以百度一下怎么运行jar文件,可能需要配置一下环境变量。我这边直接双击就能打开了

迎风布阵 发表于 2023-2-26 13:07:05

WHATtHEHECK 发表于 2023-2-26 13:05
你下载的Recaf应该是一个jar文件,你可以百度一下怎么运行jar文件,可能需要配置一下环境变量。我这边直 ...

配置好终于打开了,泪目。想问一下mod文件夹的jar文件夹里面就是代码吗?还是说要作者另外提供{:5_124:}

WHATtHEHECK 发表于 2023-2-26 13:11:38

迎风布阵 发表于 2023-2-26 13:07
配置好终于打开了,泪目。想问一下mod文件夹的jar文件夹里面就是代码吗?还是说要作者另外提供 ...

是字节码,Recaf是字节码编辑器,里面自带反编译器,反编译出来的只是作为参考
对着方法名右键可以编辑其汇编代码

迎风布阵 发表于 2023-2-26 13:18:21

WHATtHEHECK 发表于 2023-2-26 13:11
是字节码,Recaf是字节码编辑器,里面自带反编译器,反编译出来的只是作为参考
对着方法名右键可以编辑其 ...

我的意思是说,我们要汉化的部分就只在这个文件夹里面吗?

WHATtHEHECK 发表于 2023-2-26 13:19:57

迎风布阵 发表于 2023-2-26 13:18
我的意思是说,我们要汉化的部分就只在这个文件夹里面吗?

迎风布阵 发表于 2023-2-26 13:21:03

ok了解了,做了内核,那些.csv文件应该不用再去汉化了对吧?

WHATtHEHECK 发表于 2023-2-26 13:22:17

迎风布阵 发表于 2023-2-26 13:21
ok了解了,做了内核,那些.csv文件应该不用再去汉化了对吧?

都要

迎风布阵 发表于 2023-2-26 13:24:23

WHATtHEHECK 发表于 2023-2-26 13:22
都要

好的,那我都差不多了解了,感谢解答{:5_118:}

天启洪流Apo 发表于 2023-7-3 17:54:20

那个打扰一下最近在尝试重拾汉化卡住了,在完成前期配置环境以及汉化工作后打包失败https://backup1.fossic.oss.jnxyp.cn/forum/202307/02/120705yz7xeaaxqrkvrkmk.png

443613745 发表于 2024-2-3 23:11:27

好好好,很需要这个
页: [1]
查看完整版本: jar汉化的心得