论坛风格切换切换到宽版
  • 10853阅读
  • 31回复

本人汉化一个小游戏遇到点问题 请教[已解决] [复制链接]

上一主题 下一主题
离线老张

发帖
24
金钱
220
威望
22
只看该作者 10 发表于: 2015-07-03
回 9楼(wanfu) 的帖子
wanfu:这个文件是一个数据文件,不是 PE 文件,修改测试发现需要用UTF-8编码写入才能显示。但是也出现了新的问题,每个汉字的 UTF-8 编码的字节数为3个字节,比原来的要长,有些字串可能就写不下, .. (2015-07-03 18:56) 

非常感谢版主
离线老张

发帖
24
金钱
220
威望
22
只看该作者 11 发表于: 2015-07-04
回 9楼(wanfu) 的帖子
wanfu:这个文件是一个数据文件,不是 PE 文件,修改测试发现需要用UTF-8编码写入才能显示。但是也出现了新的问题,每个汉字的 UTF-8 编码的字节数为3个字节,比原来的要长,有些字串可能就写不下, .. (2015-07-03 18:56) 

很难解决啊,有些短单词实在不知道该怎么汉化,又来请教了 关于这个编码 字节 长度问题有解决办法吗?
离线老张

发帖
24
金钱
220
威望
22
只看该作者 12 发表于: 2015-07-04
回 9楼(wanfu) 的帖子
wanfu:这个文件是一个数据文件,不是 PE 文件,修改测试发现需要用UTF-8编码写入才能显示。但是也出现了新的问题,每个汉字的 UTF-8 编码的字节数为3个字节,比原来的要长,有些字串可能就写不下, .. (2015-07-03 18:56) 

已经解决了,如3楼所说
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 13 发表于: 2015-07-05
不好意思,忙于升级非标宏,回复晚了。你已解决就好了。

这个软件不仅需要用 UTF-8 编码写入,而且每个字串前面都有字节长度的字串长度标识符,汉化时需要修改为和写入字节相同的值,并且超过原始字串字节长度的字符无法被读取并显示。

用 C32asm 这样的十六进制编辑器汉化很费时间,建议使用 Passolo + 非标宏来处理。

提取字串对话框中,字符编码选择 UTF-8,去掉全为大写英文选项的勾选,选择自定义字串选项,并按以下添加一个新的自定义字串类型,然后提取字串。



写入时,选择“原长写入”菜单,超过原始字串长度的翻译时会被自动截断,并自动修改长度标识符值。
注意:一定要升级到 2015.07.05 最新版本。否则超过最大可写长度的翻译时才会被自动截断。


具体操作可以查阅帮助。
离线老张

发帖
24
金钱
220
威望
22
只看该作者 14 发表于: 2015-07-05
回 13楼(wanfu) 的帖子
wanfu:不好意思,忙于升级非标宏,回复晚了。你已解决就好了。 这个软件不仅需要用 UTF-8 编码写入,而且每个字串前面都有字节长度的字串长度标识符,汉化时需要修改为和写入字节相同的值,并且 .. (2015-07-05 01:58) 

我对这个Passolo不太了解,看了版主这样说 我感觉挺强大,去下载安装了,但是这个软件好像打不开我这游戏的数据文件,不支持的这个格式
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 15 发表于: 2015-07-05
不用去添加 Level.dat 文件到 Passolo 方案,只需直接运行非标宏,然后按文件后的 [...] 按钮添加即可。
记得提取后按保存按钮,此时将自动添加 HCS 字串文件到 Passolo 方案中。
离线老张

发帖
24
金钱
220
威望
22
只看该作者 16 发表于: 2015-07-05
回 15楼(wanfu) 的帖子
直接运行非标宏会提示 “请选择要提取非标字串的来源列表!” 无法直接运行

离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 17 发表于: 2015-07-05
先新建一个空的方案,然后打开方案,再运行非标宏。
离线老张

发帖
24
金钱
220
威望
22
只看该作者 18 发表于: 2015-07-05
回 17楼(wanfu) 的帖子
wanfu:先新建一个空的方案,然后打开方案。 (2015-07-05 22:52) 

嗯,我也刚刚琢磨出来了,目前正在了解这个软件。
感谢版主一直来帮助我
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 19 发表于: 2015-07-05
提示一下:
1、提取后保存,退出非标宏,翻译 Passolo 翻译列表中需要翻译的字串,生成 HCS 目标文件。
2、然后选择翻译列表,运行非标宏,按“原长写入”写入菜单写入后,打开过滤显示,选择“原址截断写入”项为显示,过滤显示出所有截断写入的翻译,然后逐条手动修改为和原文一样长后保存。
3、最后撤销写入,再次写入。