就像自我介绍中写的那样,来sstm是为了学学技术,但好像还是要多发言才能解锁正经(?)内容,那就发个帖发发自学游戏汉化的牢骚把。我随便一水,各位爷也随便一听
———————————————————————————————————————————————————————————————————
作为一个几乎没学过计算机的人,尝试折腾这种东西实在是太难了,而且我的操作可能会让学过的人看得高血压,那就请多包涵了。
我第一个想尝试汉化的游戏,所使用的引擎是Nscripter——一个非常古早的游戏,搭配非常古早的引擎(犹记当年fate之类的大作用的也是这个引擎?)。Nscripter引擎的游戏解包倒是不难,有现成的解包软件可以直接解码到txt。主要难度在于解包出来的文本文件,执行代码和文本是混在一起的,这样翻译的时候就会把不该换的符号换掉,导致程序报错。那我就把不该翻的符号直接在Passolo里筛掉,然而源文件是Shift-JP编码的,我不知道这个编码的日文字符对应关系,Passolo似乎又没有Utf-8编码的选项,所以最后用来筛选翻译内容的正则表达式(屎山)如下:
[^0-9a-zA-Z\\!@#$%^&*()_\-\=\+\{\[\}\]:;"'<,>.?/「」《》〈〉()【】±~※\n\s]+
如果是筛选字串开头和结尾就用:
[0-9a-zA-Z\\!@#$%^&*()_\-\=\+\{\[\}\]:;"'<,>.?/「」《》〈〉()【】±~※]* '匹配字串开头
[0-9a-zA-Z\\!@#$%^&*()_\-\=\+\{\[\}\]:;"'<,>.?/「」《》〈〉()【】±~※] '匹配字串结尾
然后把只有一个换行符的字串手动去掉。。。
如果筛选开头和结尾也加上\n\s的话,最后会报错:unterminated string in line xxx
总之,这坨东西目前运行的没啥问题,但就是洋溢着着一种质朴和大力出奇迹的气息,大伙就看一乐把。。。要是正好有大佬知道更好的办法,还望不吝赐教。
这次就写这么多,还有好多想吐槽的以后再发吧