找回密码
 注册
X系列官方授权正版
搜索
查看: 4749|回复: 24

[原创] 3DM那里下载的汉化程序原理分析

[复制链接]
发表于 2013-12-20 09:51:06 | 显示全部楼层 |阅读模式
本帖最后由 TimChen 于 2013-12-20 15:50 编辑

今天好好分析了一下3DM那里下载的的汉化原理(感谢原汉化作者),和我之前想得差不多,采用拦截ksp文本资源读取来输出自己的文本的目的。

从下载的3dm汉化程序中就两个dll和一个xml文件,其中一个Assembly-CSharp.dll是系统本来就有的,xmlplayer.dll是新增的。



反编译新增的xmlplayer.dll发现他的代码结构很简单,就是根据传入的ID返回lang.xml中的文本


打开那个文件中看到的机构也符合xmlplayer.dll所做的事情


这里我就找了一个物体重量作为线索在反编译的Assembly-CSharp.dll找到了相关的内容(相关代码解释已经标注在图片中了)
这个是3dm,ksp版本是0.21涉及到物体重量的输出代码


比较悲催的是这个字符串资源获取的函数被代码混淆了,这下只好从二进制文件中倒找混淆后的函数名


根据这个函数名找到了处理函数,不出所料在第一行就直接执行xmlplayer.dll中的函数并跳转出去


到这里大家应该明白了3dm汉化的原理了吧,说简单点就是通过在ksp代码中插入一行代码吧原来的读取界面文本的代码跳转到自己那里然后读取到中文后返回给ksp。

3dm既然已经做出了0.21的汉化,而且比较稳定,为什么不继续呢,给你们看0.23版本关于物体重量输出的代码截图,有注意到字符串编号变了么,那么如果依旧按照这种汉化方式除了翻译不需要重做外,技术人员要重新在ksp的代码堆中找出界面上每个文本的ID然后修改lang.xml,这个任务不轻哦



PS1:我很期待坛子里另外一位同学的汉化原理,希望能解决版本增长导致大工作量的问题。
PS2:不知道论坛能不能出面和开发商联系一下让他们加入一个多国语言的开发接口允许我们对接口进行开发来汉化程序那就完美了
PS3:吐槽一下Unity3D引擎,不支持64位情有可原,没有中文手册很正常,界面是英文那也不是问题,但是,但是引擎本身不能安装在中文用户名的系统中(win),开发过程中资源导入导出不能放在中文路径下,运行时自带的资源载入函数也不支持中文路径,(一秒变喷子) NND,4.0上海发布会的时候说多么多么重视中国市场,全TND都是忽悠人的,这些基本的中文支持都没实现,还有脸说重视中国市场,是重视中国的钱吧,那你就直说不带那么虚伪的。(一秒变正常)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2013-12-20 12:11:39 | 显示全部楼层
WhackAKerbal不是Debug里的一个娱乐功能么……
回复

使用道具 举报

 楼主| 发表于 2013-12-20 12:24:48 | 显示全部楼层
Cesrate 发表于 2013-12-20 12:11
WhackAKerbal不是Debug里的一个娱乐功能么……

什么功能我并没看,我是随便找了一个做线索
回复

使用道具 举报

发表于 2013-12-20 13:31:03 | 显示全部楼层
本帖最后由 eifinalyam 于 2013-12-20 13:37 编辑

TimChen 不要怒氣
所有引擎都是以英文代碼表跑
要用就不會裝中文OS
(還有原因的 不細說)

重視所指的是新市場機會

我看論壇的老大 不懂程式編寫的
你也知道.....
聯繫了其實也沒用 要編寫多一份需要的是程式員 不是論壇管事
回复

使用道具 举报

 楼主| 发表于 2013-12-20 13:37:49 | 显示全部楼层
eifinalyam 发表于 2013-12-20 13:31
TimChen 不要怒氣
所有引擎都是以英文代碼表跑
要用就不會裝中文OS

都什么年代了,支持一个utf或者unicode编码很困难么,唉,非拉丁语系国家的悲剧啊
回复

使用道具 举报

发表于 2013-12-20 13:42:29 | 显示全部楼层
呵呵微软就这个德行....
我昨天也反编译看了一下
这种方式确实不好..
我正在看那位同学的内存汉化方法..看起来也不是那么灵活
回复

使用道具 举报

 楼主| 发表于 2013-12-20 13:46:42 | 显示全部楼层
394966931 发表于 2013-12-20 13:42
呵呵微软就这个德行....
我昨天也反编译看了一下
这种方式确实不好..


我目前正在提取他的文本资源,考虑能不能直接替换他的文本资源文件来实现汉化
回复

使用道具 举报

发表于 2013-12-20 13:49:07 | 显示全部楼层
TimChen 发表于 2013-12-20 13:46
我目前正在提取他的文本资源,考虑能不能直接替换他的文本资源文件来实现汉化 ...

你是说重新做一个xml换掉3DM补丁里面的那个?
工程量浩大啊 而且版本更新不知道会不会还要变
回复

使用道具 举报

发表于 2013-12-20 13:50:23 | 显示全部楼层
394966931 发表于 2013-12-20 13:42
呵呵微软就这个德行....
我昨天也反编译看了一下
这种方式确实不好..

版大看他放的 就送他分數聲望了 太兒戲
我不想說有關美國防治山寨化的事宜
TimChen 這是保障區域
回复

使用道具 举报

发表于 2013-12-20 13:54:44 | 显示全部楼层
改文本
不是小組...就是花掉自己的工作時間呢
然後 新一版KSP出來了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站