Utils_CHS - PalMusicFan/sdlpal GitHub Wiki

辅助工具使用说明

SDLPal项目还包含一些辅助工具,供实现语言文件的制作(以实现PAL游戏的多语言版本)等目的。使用这些工具需要较为丰富的计算机知识,普通玩家可以忽略

语言文件制作工具makemessage.py

原版“PAL”游戏的设计,并不适合直接引入现代化的多语言翻译。

  • 问题一:到目前为止,原版“PAL”游戏有三种官方语言版本:传统中文(Big5编码)、简体中文(GBK编码)和日文(Shift-JIS编码)。原版“PAL”这三种编码互不兼容,也不支持英文(使用ASCII编码)以外的其它文本
  • 问题二:众所周知,中文信息密度非常大,这决定了想要在原版对白的行数内完成其它语言的翻译难度极高。所以,做对白翻译通常需要增加对白文字的行数。但是,根据脚本系统设计,原版“PAL”的文字行数是不能随意变化的。例如,如果插入一行新的对白,那么之后的所有脚本位置都要后移,这就需要重新索引脚本地址,需要修改的数据量巨大。不仅如此,脚本地址的变化,可以导致原来的存档无法延用。

为了解决这两个问题,我们设计了全新的语言文件系统。

  • 首先,语言文件采用UTF-8编码,这就兼容了当今世界所有常用语言。而游戏本身内置的GNU Unifont字体包含基本多语言位面的所有文字(Unicode Basic Multilingual Plane, BMP)。两者结合,多语言的编码和显示的基本问题都得到了解决。
  • 其次,语言文件中的每段对白行数不再受到前述脚本地址限制,还可以根据需要加入更多的换屏。这就解除了其它语言翻译的文字量限制。

语言文件的制作

下载SDLPal仓库scripts目录下的makemessage.py。这是一个Python 2脚本,暂不兼容Python 3

makemessage.py -c d:\pal message.txt gbk

参数说明:

  • “-c”:表示在生成的语言文件中包含注释信息,可选项目。注释包含一些项目的说明,以及文字信息的原文,多以,虽然包含注释会让语言文件容量增长很多,但是还是推荐使用。
  • “gamepath”:“PAL”游戏资源目录,必须指定。例子中“d:\pal\”的部分即是。
  • “outputfile”:生成的语言文件的文件名,必须指定。例子中“message.txt”的部分即是。如果仅指定文件名,而不指定具体路径,则会在makemessage.py工具所在目录下保存语言文件。
  • “encoding”:“PAL”游戏资源文本的编码,必须指定。例子中“gbk”的部分即是。如果您的“PAL”游戏是Win95简体中文版,请使用“gbk”;如果是Win95传统中文版或DOS版,请使用“big5”。目前只支持PC版,不支持SS版。

语言文件的格式说明

请用Notepad++一类的高级文本编辑器工具打开语言文件做编辑。所有以“#”(不包含引号)开头的行是注释。
语言文件本身主要包含6个部分:CREDITS、LAYOUT、WORDS、MESSAGE,SETTING,以及DOS版PAL专用的DESCRIPTIONS,

  • “CREDITS”:游戏通关后会显示的信息。请参考注释信息和范例填写。注意每行最多容纳40个半角字符/20个全角字符。
  • “LAYOUT”:用于定制游戏中的装备、状态界面(效果范例:http://i.imgur.com/jxqKm69.png )。
    原版装备、状态界面并不一定适合中文以外的语言,因此SDLPal加载语言文件时装备、状态界面是可定制的。具体项目请参考注释信息和范例填写。每一个项目的格式是“idx=x,y,flag”。“idx”是项目索引,请勿改动;“x,y”是项目文字在游戏画面中的坐标,范围在“0,0”至“320,200”之间;“flag”可选,可以是“0”(普通字体,带有阴影)、“1”(适于显示英文缩写的8X8点阵字体,带有阴影)、“2”(普通字体,无阴影)、“3”(适于显示英文缩写的8X8点阵字体,无阴影)中的任意一个值。
    81和82号项目比较别,它们“x”指定了道具说明和仙术说明所需的额外文字行数(按照原版游戏界面布局,为这些说明所预留的空间对于中文以外的语言来说过少),而它们的“y”保持为0,可以忽略。
  • “WORDS”:游戏中的短语,用于道具名等内容。每一个项目的格式是“key=value”。“key”是项目索引,请勿改动;“value”为在游戏中显示的文字。请注意,游戏道具/仙术栏内的布局是自动计算安排的,而计算的依据,就是“WORDS”项目中“value”最长的一项的文字总宽度。由于1号项目在游戏中没有使用,因此建议在1号项目中指定一些字符,使得游戏道具/仙术栏的外观符合您的要求。
    600至612号项目比较别,它们的值指定了原版游戏没有的一些文字项目的文字。600至605分别是装备界面的“头戴”、“披挂”、“身穿”、“手持”、“脚穿”、“佩带”项目的文字。606至611属于即时战斗系统专属设定项目的文字。612是游戏中“返回设定”选项的文字。
  • “MESSAGE”:有若干个MESSAGE组,包含了游戏中的对白和问题提示一类的信息。所见即所得,不支持自动换行和自动对齐。请根据游戏内的显示来手工调整换行位置等格式要素。“[BEGIN MESSAGE]”、“[END MESSAGE]”后面的数字是索引,不要改动。两索引完全相同的MESSAGE组如果出现多个,那么只需要关注最后一个,之前的重复MESSAGE组会被忽略。
  • “SETTING”:UseISOFont选项,开启后(UseISOFont=1)启用ISOFont显示文字。注意ISOFont字符集有限,只适用于一些欧洲语言。FontFlavor选项,用于为中文和日文选择字形合适的内置字体,可选项有“Unifont”、“SimpChin”、“TradChin”、“Japanese”四种,分别对应GNU Unifont、简体中文、传统中文、日文的字形规范。
  • “DESCRIPTIONS”:DOS版“PAL”专用,包含了非官方整理的物品和法术说明(其中的文字数据并不包含在原版游戏内)。makemessage.py暂时不会自动生成这个部分,请将DESC.DAT文件中的内容转为UTF-8编码的文本,并粘贴到“[BEGIN DESCRIPTIONS]”和“[BEGIN DESCRIPTIONS]”之间。