11. 文本导入
我一般文本导出的代码写好之后,就觉得略有成果了,想怠工几天。其实文本导入代码也要写起来,没写好的时候几乎不能把文本交给翻译。
之后应该让翻译快点搞定一章,尝试导入,这时很可能会发现各种问题,到时候要增加控制符什么的。这都要早期发现早期改正,否则所有文本都出来了再让你往里面嵌控制符,工作量不是一般的大。
文本导入之前要做的事情是文本检查,检查其实很重要,比如是否有单字节的字符,是否有括号没有闭合,是否有控制符被删除,是否有段落漏翻译等等。
这些功能也比较通用,我也想结合在Agemo editor中,什么时候高兴了写一下代码。
之后做的事情就是生成码表和字库,码表由于这个程序有点特殊,完全可以使用GB编码,所以码表就不需要了。
字库的生成也就是获取字模,压缩,按照原来的格式重新组织,并没有什么大的问题。只是里面有一些特殊符号,我使用了导出的图片,在生成字库时读取图片再写入字库。
其他地方略有些特殊处理,可以看程序注释。虽然代码很多,但并不复杂。
文本导入程序大约就这么几个步骤:
1、 找汉化文本
2、 找相应的子文件
3、 子文件压缩过要解压
4、 找脚本中的相关指令,找文本中的汉化文本,替换掉
5、 如果指令有长度参数,修正长度参数
6、 如果某些指令有偏移或者地址参数,修正这些参数
7、 导入完毕后看能不能直接放进去
8、 不能放进去压缩放进去
9、 压缩都不能就麻烦了,要扩容,或者东挪西挪腾地方出来。不过这种情况在文本上不多见,图片什么的倒是有可能。
10、 修正头文件
具体的不多说了,源代码在SceMaker中。
之后有一些特殊的功能要实现,所以对SceMaker做了一些修正,使得它可以修改某些指令的参数,如18指令的参数。(18指令的功能类似于设定段落缩进,在进入chunsoft党的阴谋篇中,用来调整文字对齐)
又比如在good ending之后插入汉化组名单。