(PS)かまいたちの夜•特別篇 汉化笔记 十

来源:互联网 发布:python 兼职招聘 编辑:程序博客网 时间:2024/05/17 02:45

10.           文本导出

文本导出是很重要的一步,而且需要和翻译互相配合,尽快修改其中的问题。

由于这个游戏的控制符很复杂,而且脚本格式也复杂,所以关于文本导出成什么样子我也考虑了很久。

 

文本导出有几个要点:

1、 要尽量和游戏显示差不多

2、 保持每个文本、每一段落的文本量适宜

3、 方便翻译

4、 方便导入

 

首先分文本很简单,sce.pac本来就分成若干的子文件,每一个子文件对应一个文本。

然后是分段落,我将每一段落定成一屏幕文本,也就是遇到换页符(g)就分段。

(但是事后发现有一个问题,就是我忘记了跳转指令,尤其是剧本结束的跳转指令,造成有一些段落包含了两个内容。由于此类情况不多,翻译也没有提出,我也是在最后测试的时候发现的。)

然后换行之类的按照上一节的分析,进行换行。只是L没有进行处理。按宽度折行则变成了按字数折行,效果基本可以接受。

有时候会多个00指令显示一句话,所以需要在这些话中加分隔符,我选择了#作为分隔符,并没有加入00指令的地址。

 

关于这个问题我以前应该讨论过,在段号或者分隔符里面写地址的,可以选择若干段进行导入,但是每次导入都要用原始数据,对于某些简单的脚本结构导入程序写起来也方便。

不写入地址的,必须全段导入,分隔符也不能误删或者误增,优点就是可以在修改版的基础上再次导入。导入程序要和导出程序一样,全指令都要分析。

这个可以进行衡量,不过如果地址很多的话,会造成导出文本变很大,所以在这个游戏中我没有采用。

 

导出的代码写得有些许复杂,而且各人有各人的写法,这里就不提了。有兴趣的话去看源代码。在FuckSce中。

 

另外我要说一下,文本导出之后其实也要做一些处理,比如查重复,其实这个游戏有不少重复文本,由于交给了不同的翻译造成了译文不相同。不但浪费了翻译的资源,也给人前后不统一的感觉。

检查重复其实不难,但问题是检查出来之后怎么办呢?我感觉这个功能要和Agemo editor融合,所以到现在都一直没有写代码。

其实我觉得这个功能蛮通用的,不知道有人写过没有。

原创粉丝点击