杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2690|回复: 0

Language Localizator与DFM类软件汉化

[复制链接]
发表于 2015-1-23 16:27:43 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
作者: 伟乾
来源:汉化新世纪
源地址:http://teach.hanzify.org/article/75-1059753600.html

前言

      自从有人说“聪明的程序员用DELPHI”之后,使用DELPHI编程的软件也越来越多了,作为紧跟软件之后的汉化人也不得不跟着“聪明”的作起DELPHI的汉化来了,可是与已经相对成熟的C类语言软件相比,DELPHI相应的汉化工具软件可是显得单薄的多,早期是RDAT,接着EXESCOPE的展现开始显露曙光,终于Language Localizator的出现才让DELPHI的汉化有了较成熟的汉化工具。但是,尽管Language Localizator声称是专门针对BORLAND公司的作品特别是DELPHI进行软件本地化的,可是我们不得不承认,他依然未尽完善;没有针对DFM的可视化修改;简单且有点莫名其妙的字典功能;

     但是,Language Localizator仍然是目前为止最好的的Delphi程序的汉化工具(或者说,本地化工具)也可以算是唯一成功的Delphi程序的汉化工具,另一个能将表单字串内容独立显示出来的汉化工具是东方快车世纪号中的永久汉化,可惜自从国内软件业刮起红色风暴后,软件的价钱是大大降低了,质素也同步直线下降,东方快车世纪号的永久汉化对内存的需求到了令人咋舌的地步,只能用来汉化内部资源比较少的软件!我们还是以涛兄的判断标准做个检验:

易操作性:
尚可!首先可以将表单字串内容独立显示出来,就是最大的方便;也可以将字体和字号独立显示出来;总体编辑中有查找,但没有替换;单独编辑窗体资源(DFM)时有完整的查找替换功能;没有过滤器;一定的右键功能;但是“忽略属性”是大大的有用。4分吧。
自动化程度:不错,可以自动翻译相同的单词和句子;不过与V&L的冲突解决方案相比就逊色的多。而且它的自动方案必须逐个表单资源的进行操作来实现,还是增加了工作量。而且只适合于表单中的字串内容,对于字号等的修改就不适用。对于有歧义的翻译,也有相关的处理。4.5分。
适用的软件范围:理论上适合所有的PE文件,但是重点是针对Borland公司的软件,如Delphi软件,由于必须在NT下才能存盘,而且存盘结果的可靠性尚存在问题,因此还是推荐配合其他工具来汉化Delphi程序吧。3.5分。
翻译准确性:本身没有翻译功能,导入外部字典等功能也存在问题,不好。2分。
字典管理的方便性:差,有点莫名其妙。0分。
汉化时的自由性:不懂原意,不好说。问阿涛兄吧。没分。
汉化时的所见即所得程度:某方面来讲,他将DFM中的各对象的相关内容分别显示出来,也算是提供了一种看得见的修改方便。勉强算有。但是无法对于他所涉及的资源,不论是菜单、对话框,还是表单,都无法预览界面效果。希望以后吧。2分。
汉化升级程序的方便性:对于表单DFM而言,可算是目前来讲最方便的了,虽然它的字典导入有问题,但是还是有办法的,还可以。4分。
自身的管理能力:相关的设置还是到位的。3.5分。
以上评分纯是个人感觉,以3分为基准,5分封顶。在3分以上的就是满意了。

Language Localizator与DFM的汉化之旅
OK,有个整体评价之后,开始Language Localizator的汉化之旅吧。
(本文中L&L是Language Localizator的缩写;V&L是Visual Localize的缩写)

基本操作:
打开程序:你可以使用菜单中的“打开”命令,也可以使用工具栏最左边的打开按钮 ll00.gif 。你可以直接打开.exe等PE格式的程序。一旦打开某程序后,他所在的目录下面就会生成一个目录,目录名与你设定的翻译语言有关,我们是要翻译到简体中文,设定为CHS,因此目录名为CHS。所有与翻译相关的资源都放在这个目录中。(如果有超过1个文件要汉化,最好放在不同目录中,这样可以防止彼此资源干扰、冲突!)
设定翻译语言:如果要设定原始文件的语言,“选项”——“设定默认的源语言”,这里可以设定你要翻译的文件的原始国语言,一般是英文;设定目的文件语言,在左边窗口上,在标签“资源(&R)”旁边,选择该标签就可以见到国别项目,选择“CHS  简体中文(中文)”即可。

打开文件后,相应的栏目显示如下图:
ll01.gif

    从图中可见,左边窗口式相关资源的列表,不论是字符串、菜单、版本,还是表单,都列出来了。右边是相应的编辑窗口,以我们主要针对的表单来说,选择某个项目,如上面的TFMAINWXF,这是一个典型的表单窗口,里边包含有图片,我们逐个来看:
首先是“字串表”,任何在软件中出现的文字、提示都属于字串表的内容。鼠标点中“字串表”后会出现相应的编辑窗口,就是图中的“字串表编辑栏”;在子串表编辑栏中,“对象.属性”下面是dfm中的控件名称,对应的“翻译的文字”其实就是要处理的文本内容。要提醒的是,dfm中会出现一些变量,也属于“字串表”范围,在这里也会出现,因此对于像“StatusLb”这样的字样,要小心避免不要翻译,除非你确认这些内容以同样的文字在界面中出现了。
接着是dfm另一个重要的部分——“数字”:鼠标选中“数字”,左边将出现“数字编辑栏”,其实所有在dfm中与界面布局有关的内容,像字体高度,某个按钮的显示位置、大小,属于“数字”的范畴,都可以在这里调整,当然要视乎你对表单的认识情况,你可以通过我们的另一篇文章“FormRead聪明汉化”来获得一些提示;
下一个就是“二进制”,其实就是包含在表单中的图片数据,同样有相应的编辑栏(其实叫管理栏更合适,因为他只提供了导出、导入等功能,要编辑还是要找个图像编辑软件)。另外,不是所有的表单中都有“二进制”这一项目的。
因为为了描述方便并且希望减少图片对浏览速度的影响,我们把三种情况下右边各自的窗口重叠在一起了,请不要有误解。实际使用当中各个窗口是分别出现的。

汉化操作:
      基本概念了解之后看看如何汉化。
字串的汉化:如果我们选中某表单的“字串表”,我们可以看到以往在exescope中dfm分散的文字信息已经排列在“翻译的文字”栏目下面,easy job!鼠标双击一下某行文字,出现翻译窗口如下:
ll02.GIF
“默认”下面的小框打了X,表示这句话的翻译以后将使用目前的翻译作为同样文字的翻译;如果你将X清除,左下角的“不自动翻译”就会选中,表示在特定表单中的这句话不是用默认的翻译,你可以利用来处理一些有歧义的文字,但是,一旦再使用自动翻译功能,他又会跟着变,以最后的翻译为默认,所以你还要做一步,看到每行文字前面有个小锁吧?一般都是打开的 ll03.GIF ,用鼠标按一下,关上了 ll04.GIF ,以后这行文字就不会受默认翻译的干扰了。
逐个翻译下去吧,这里可没有人能帮你了。
 

等等,还有好东西介绍:字体的翻译
对了,就是字体!对于L&L而言,表单中所有用单引号''包含,形式如:xxxx = 'yyyy"的内容,都可以用字串形式显示出来。——选择菜单“选项”——“忽略的属性”,出现窗口:
ll05.gif 窗口上面的三个按钮的作用分别是:添加、删除、保存。往下滚动看看,找一个“属性标示符”Font.,对了,就像左图显示中红圈圈住的那个,他表示dfm中所有Font.XXX,现在我们将“激活”下面的对应的方框去掉X,保存按钮激活,按“保存“按钮——有变化吗?





ll06.gif 看到没有,现在dfm中的字体属性全部显示出来了,而且同样享受自动翻译的便利,像"Ms Sans Serif",你将他改为"宋体",这样,所有的"Ms Sans Serif"都会改为"宋体"。

 

 

 


 

既然谈到字体,顺势再谈谈相关的问题:语系,无法用上述方法改。字体高度,可以。也是用忽略属性来实现,但是只能显示在“数字”里头,而且无法自动翻译。前面谈到Font.表示所有以Font开头的属性,那么字体就是Font.Hight,当然也应该可以显示出来,鼠标选择左边资源栏中表单资源的“数字”项目,右边出现数字编辑窗口, ll07.gif 看到没有,红色圈住的就是字体高度,当你修改该数字后,比如将-14改为-15,“对象.属性”对应部分会变成黄色,便于识别,表示这部分已经修改过了。



那么,逐个改不是很麻烦,试试这种方法:点击“编辑窗体资源”按钮 ll08.gif ,出现整个DFM的内部代码窗口,选取要整批修改的对象如“Font.Height = -11”,复制,选择菜单“搜索”下的“替换”,如下,使用全部取代,OK,搞掂。
ll09.GIF


当然,这是要逐个来进行的,已经够方便了。可是,有人问,一个DFM里面的字体高度并非都是统一的?对,现在就要利用前面所说的,修改后的字体以黄色显示识别,很容易发现;你再到数字编辑栏中翻几翻页面,看看是否还有其他不同的字体设置,数字一般都是-nn,前面的“对象.属性”中含有Font.Height字样的,就是了,也很好发现。
再自动一点,没有了,你找到后告诉我吧。
当然,上面的“全部取代”法也适用于“语系”的修改。
在Delphi的表单设计中,同样有语系的概念。在dfm中的代码就像:
Font.Charset = DEFAULT_CHARSET

这句话表示这个表单使用win系统默认的语系,在目前汉化过程中发现,其实很多软件如果使用了这种“默认”的设定,一般都可以不用修改,继续使用这个“默认”的语系设置,软件会根据所处的Win系统来调整语系,在简体中文Win9.x中就使用“简体中文”作为默认的语系。如果要修改,也像前面字体修改一样,点击“编辑窗体资源”按钮,出现整个DFM的内部代码窗口,选取要整批修改的对象如“Font.Charset = DEFAULT_CHARSET”,复制,选择菜单“搜索”下的“替换”,在“取代成为”栏目中填入“Font.Charset = GB2312_CHARSET”,使用“全部取代”,搞掂。由于语系无法跟字串或者数字一样显示出来,因此没有办法确认每个dfm中是否有语系的代码,或者判断是什么语系,因此,还是需要你用“编辑窗体资源”按钮来逐个查看确认了。

★其他用法

忽略属性
刚才一路讲下来,其中提到一个“忽略属性"的概念,因为怕中途插入影响前面表达的连贯,直到这里才较详细讲解一下(当然,可以略过,如果你只关心使用步骤的话):
忽略属性在L&L中是用来确定哪些对象内容可以忽略不显示在编辑窗口中的。他跟对象的位置也有一定的联系。
再来看这个图,有两个相关的设置:“激活”与“位置”。当激活时——小框中有X,像“Filter”,表示这个对象属性的“忽略”以被激活,他将无法显示在编辑框中;而“Font.”的对象属性,“激活”框已经清掉X,表示忽略属性无效,可以显示他所指定的对象,比如字体、字号等。





——
具体的表示举例如下:

激活
pos=1
属性标识符
解释
X

Font.所有字体名称属性都不显示。
X
X
Font.
只显示Font.不在第一列的字体名称属性(如:TabFont.Name)

Font.
显示所有字体名属性,包括不在第一列或在第一列的字体名称属性(如
TabFont.Name 、Font.Name)

X
Font.
同上,显示所有字体名属性


环境选项:

在菜单选项环境选项中,可以进行多项设置,这里我们简单介绍一下我们常用的几项,原文字字体翻译文字字体不用我解释了。用TRN 字典自动翻译可以设置L&L打开一个文件时自动翻译文件的资源类型,这里有两项选择,窗体和字串表资源,(这里的字串表资源包括菜单、对话框、字符串资源!),我们一般不选字串表资源,加快文件读取的速度。将特殊文字标记为已翻译,把一些软件代表特殊含义的字符如Static
等,标记为已翻译,减少汉化后软件出错!

ll31.gif

自动翻译:
前面提到过,像"Ms Sans Serif",你将他改为"宋体",只需改一次,所有的"Ms Sans Serif"都会改为"宋体"。但是这个修改不非想象中那么自动: ll30.gif 两个按钮的解释分别为:“翻译当前窗体所有未翻译的行”;“翻译当前窗体所有行-修正”。一个只翻译没有翻译的行,另一个会所有行重新翻译,也起到矫正作用!针对“当前窗体”,也是说,本窗体中的文字自动修改了,其他DFM字串资源你还得进入后成为“当前窗体”才能修改。意思就是让你逐个资源的按着两个按钮(之一)。这种自动是以你的手动为前提的。如果你还觉得麻烦,也有偷懒的方法,在环境选项设了自动翻译的情况下,关闭这方案,重新打开,就可以自动翻译所有的窗体了!

图像的修改
——
好了,字串讲完了,字体部分也差不多了,讲讲图像的修改吧。
选择“二进制”资源,右边会出现相应的图像列表并显示出图像来。看看工具栏:
ll10.GIF 依次是打开、清除、复制到剪贴板、从剪贴板粘贴、存为文件、恢复原始、恢复定制的(打开所加入的)。

足够使用吧?步骤也比较简单:选择你想修改的图片,将他保存为文件.bmp,赶快打开一个图像软件,慢慢修改吧。修改完毕,使用打开按钮,将图像导入,用工具栏左边的”保存文件“按钮,相应的修改也就写入相应的DFM文件当中了。(用FormRead打开对应的DFM文件看看效果如何?)
与汉化修改相关的功能介绍的差不多了。还有一个是“选项”——“标示符的区别”,可以让你将不同的属性标示符以不同的颜色区分开来,可惜也只是针对字串,对数字无效。

关于字典:
前面我们提到了字典管理以及利用字典升级的评价,的确,L&L软件自身在这方面有很大不足,因此需要一番周折才能实现字典升级的功能。以前,Rapid曾经作过这些方面的尝试,我们根据我们汉化时的一些尝试,试图给出一个较全面而可行的方法。

1、当前字典的保存与再利用
如果我们是做一个以前没有汉化过的软件,肯定没有字典可以利用,因此要逐步按照上面的方法来进行汉化,一旦汉化完毕,你就可以拥有一个字典了——每次做新汉化之前,先将L&L目录下的Loc_CHS.trn删除掉或做适当的保存,这样在你汉化当前软件的时候,所有汉化过的内容都会保存到新生成的Loc_CHS.trn;但是,所有的保存动作将与这两个按钮有关: ll11.gif ——分别是“保存所有”与“保存文件”;“保存所有”按钮将已经汉化的内容保存入Chs目录下的相关文件中,比如修改DFM的内容,相应的更改同时保存到对应的.dfm文件中,同时将中英对照内容更新到Loc_CHS.trn文件中(如果原来没有的,将新建一个);而“保存文件”按钮没有更新字典的功能,只是将当前的更改保存到Chs目录中对应的资源里。因此,当你汉化完一个软件之后,就会有一个完整的,符合你的汉化语言风格的字典文件,我们建议你将本次汉化所生成的字典名字以你自己方便记忆的名字和适当的方式另行保存,下次当你升级同样软件的新版本时,将保存的字典再次用Loc_CHS.trn这个名字放到L&L目录下,你就可以开始新版本的汉化了。注意,虽然你一直使用同一个Loc_CHS.trn来进行不同软件的汉化,会不断丰富该字典的词汇,但是也会造成字典文件的膨胀。在使用中我们发现,过于膨胀的字典会造成L&L软件的出错甚至退出。只是,多大的字典才是合适的,我们也不得而知。印象中字典超过1兆 就会出错,你可以试试!

2、建立一个新字典
L&L软件支持字典和文本字典的导入, 但要求要导入的部分不能在L&L目录下,必须从其他目录中导入,而且导入的时候不能有打开的文件,比如在其他目录下有一个字典abc.trn,使用菜单“翻译”—“载入外来的翻译”选项,找到abc.trn所在目录,选中之后打开,稍候片刻到L&L的目录下看,已经含有同名的文件存在,但是你仍然要将这个文件改名为Loc_CHS.trn才能使用;对于文本文件,同样的方法进行导入,比如abc.txt,导入后会生成L&L字典格式的abc.trn文件以供使用。
“载入外来的翻译”的操作与直接将字典复制到L&L简直一样,而且难以修改,无法从某个软件的字典中提取建立出一个适合其它软件的字典。而.txt文本文件的导入可以生成L&L适用的字典文件,并且方面修改与重新制作,因此可以加以利用。
L&L的帮助中提到两种格式的文本适合导入为字典,举例如下:
"&About","关于(&A)"
或者
"&About",
"关于(&A)"
要建立一个新的字典,前提是你要有某个软件的中英文版本,或者你自己建立一份中英对照文本,我们就以前者为例,假设我们要利用中英版本的WinXFiles 4.5来做个字典来升级汉化WinXFiles 4.6。
以前rapid提过用“中文工具箱”Ckit的“进阶对照制作”来生成一个字典并进而制作为L&L的字典,但是事实上CKIT只能抓取C类语言常见的对话框、字符串、菜单以及ASCII字符,而对Delphi表单资源根本无法抓取,因此我们认为不适合。我们推荐一个可能大家都有所忽略的老软件“Rdat”!不知道?不会,你如果知道Rrc软件,仔细看看,里面还包含了一个Rdat.exe——这个就是早期相当实用用的Delphi表单资源抓取软件,本来还有一个wdat.exe来进行抓取、翻译后的写入,但是我们现在只需要Rdat.exe!为此,我们还有感谢软件的作者——Sea Driver(驭海人)
Rdat.exe由于被设计为专门抓取Delphi软件的资源,因此抓取准确(不适合抓取ASCII和其他类型的资源),由于他是使用dos命令格式,因此你必须在“我的电脑”的地址栏中操作(如果你还没有升级到IE4.0以上,你可能要在“开始”——“运行”中进行操作),操作如下:
ll12.gif

从图中红色圈中你可以看到Rdat.exe的使用方式,此时回车执行后会生成文件wxfiles.dat、wxfiles.txt文件。rdat的读取和生成的速度都很快,但是要麻烦你将运行后的ms-dos窗口关闭,同时Rdat还带有dos的影子,因此只能读取8个字符命名的文件,比如wxfiles00.exe,有9个字符,读不了,该为wxfiles.exe或者wxfiles0.exe,只有不超过8个字符就行。
打开生成的wxfiles.txt文件,可以看到内容如下:
//////////////////////////////////////////////////////////////////////
//本文件是由 RD.EXE 从指定文件提取出来的字符串文本文件,主要是方便针对
//用 DELPHI 和 C++ Builder 制作的软件的汉化,字符串成对出现,第一行是
//原文对照,即使修改也不影响结果,但不能删除,第二行供汉化编辑,可以修
//改,如果被提取的文件是从用 VC++ 打开的资源文件中导出的文件,长度可长
//可短于原文; 否则长度只能小于或等于原文,如果长于原文,回写时,WD.EXE
//自动将长出部分舍弃。修改完成后,再运行 WDAT.EXE 即生成新的文件,原文
//件备份为 .OLD 文件。
//*** 注意:本文件的行数和顺序不能改变,否则修改失败。
//////////////////////////////////////////////////////////////////////
//源文件名:
wxfiles.exe
//数据文件名:
wxfiles.dat
//回写方式:
1
//////////////////////////////////////////////////////////////////////
PEPSOFT WinXFiles 32-bit v 3.1
PEPSOFT WinXFiles 32-bit v 3.1
Label1
Label1
Label2
Label2
PEPSOFT WinXFiles *未注册*
PEPSOFT WinXFiles *未注册*
.....(省略若干)

前面的一长段解释现在不用管他,我们要的是下面的两行两行出现的文本,因此前面那些废话可以删掉。一种方法是你可以逐行的翻译,但不在我们目前讨论的范围,我们要的是利用中英版本来做字典。
在这里我们先生成的其实是WinXfiles的中文版文本,同样的方法生成一个英文文件,如下:
PEPSOFT WinXFiles 32-bit v 3.1
PEPSOFT WinXFiles 32-bit v 3.1
Label1
Label1
Label2
Label2
PEPSOFT WinXFiles *Unregistered*
PEPSOFT WinXFiles *Unregistered*
.....(省略若干)
这两个文件你最好还是分别命名,比如中文的wxfiles-c.txt,英文的wxfiles-e.txt。此时你最好看看两个文件的行数是否一致以确保做成的字典对应准确。由于后面的操作中将涉及对单字节逗号,的替换操作,因此在这里你最好先看看是否有逗号的存在,如有则将他替换为其他的符号或者文字,以免后面替换错误。你可以等字典完成后再替换回来。
好了,要用牛刀了——请出Excel,使用“打开”菜单或者按钮,在“文件类型”中选择“所有文件”或者“文本文件:
ll13.gif

读入文本文件wxfiles-e.txt,出现提示:
ll14.gif

在这里你可以看到文本内容已经逐行列了出来,使用右下角的滑动按钮可以查看导入的全部文本内容,由于我们只需将所有内容以一列的方式导入,因此不能使用固定宽度来增加不确定性,选择“分隔符号",按“下一步”看看所导入内容是否被分列:
ll15.gif

——
我们要求的是所有内容不能分列,以上符合要求,直接按“完成”即可。如果发现分了列,如:
ll16.gif

一种方法是用“上一步”来重新设置,另一种方法是鼠标双击分列线,可以将其清除。全部清除后直接按“完成”,进入编辑窗口:

ll17.gif

    虽然某些文字行的宽度超出了A列的边线,但是只是显示上的需要而已,其实都是在同一个A列中。
    你也可以用“格式”——“列”——“最适合的列宽”来调整。
用同样的方法导入中文文本,导入的内容同样也在A列,现在我们要将中文的A列复制到英文文本的B列当中:鼠标移到“A”字符上面点一下就选取了整列内容,用Ctrl+C或者用鼠标右键的“复制”功能,复制该列,跳到英文文本的excel中,点“B”列,用Ctrl+V或者鼠标右键的“粘贴”,将中文内容粘贴过来:

ll18.gif

    为了方便观看,你可以在红色圈住的部分用鼠标向右脱动将A列扩大,这里已经可以看到中英文对照的情况,最好上下都看看是否对应正确(在本例的实际操作中就发现中、英版本抓出的文本有不同,需要调整对照文本),准备保存:

在“文件”菜单中选择“另存为”,出现保存窗口,在“保存类型”列表中选择“CSV(逗号分隔)”,输入新的名字,比如:Wxfiles-ec.csv,然后会有一个确认框,直接确认“是”即可。

ll19.gif     ll20.gif

这就生成了一个中英对照,并以单字节“,”号分隔的文件.csv,这个文件其实也是一个文本文件,可以用EditPlus、UltraEdit-32等软件来编辑。
PEPSOFT WinXFiles 32-bit v 3.1 ,PEPSOFT WinXFiles 32-bit v 3.1
PEPSOFT WinXFiles 32-bit v 3.1 ,PEPSOFT WinXFiles 32-bit v 3.1
Label1,Label1
Label1,Label1
Label2,Label2
Label2,Label2
PEPSOFT WinXFiles *Unregistered*,PEPSOFT WinXFiles *未注册*
PEPSOFT WinXFiles *Unregistered*,PEPSOFT WinXFiles *未注册*
.....(省略若干)
根据前面提到的L&L文本型字典格式,还要加上""等符号,因此我们并需寻找一个具备宏命令的编辑软件;同时,我们通过试验发现只要第二种格式才能导入为正确的字典格式,即:
"&About",
"关于(&A)"

因此宏命令要实现的内容是在生成的csv文本中每行两侧加上"符号,在逗号前边加上一个"符号,后边加上一个换行符和一个"符号(这里的双引号都是单字节的),同时为了精简字典,还要把重复的内容删除掉,因此还要实现隔行的整行删除,我们比较了Word、EditPlus、UltraEdit-32,最后决定使用EditPlus来进行操作(比较过程略)。
EditPlus的“打开”命令,在“文件类型”中选“All Files*.*”打开Wxfiles-ec.csv文件,现在录制隔行整行删除同时首尾添加单字节双引号"的宏命令:
先确认光标放置在首行的最左侧,选择“工具”——“记录”——“记录按键”——出现一个小录音带的光标 ll21.gif ,表示已经处于录制状态:
键盘输入单字节",键盘End将光标移动到尾部,键盘输入单字节",键盘“→”将光标下移一行,键盘“Shift+↓”可以选中本行,键盘“Delete”将该行整行删除,光标自动下移一行!
此时录制完毕,赶快用鼠标再次选“工具”——“记录”——“记录按键”,这个宏已经录制完毕,同时“记录”的下级菜单中多了几个命令:回放记录,多次回放,保存记录。
使用“回放记录”可以看看刚刚录制的宏记录是否正确,使用“多次回放”可以帮你完成整个文件的相应操作:首先你还确定还有多少行文本要操作,比如删除了第二行之后,总共还有243行,因此要执行的操作应该时(243-1)/2=121,选“工具”——“记录”——“多次回放”,输入要操作的次数,于是整个文本都得到执行。
修改的情况如下:
"PEPSOFT WinXFiles 32-bit v 3.1 ,PEPSOFT WinXFiles 32-bit v 3.1 "
"Label1,Label1"
"Label2,Label2"
"PEPSOFT WinXFiles *Unregistered*,PEPSOFT WinXFiles *未注册*"
.....(省略若干)
现在要对付的就是单字节逗号,:
请选择“搜索”——“替换”或者工具栏中的 ll22.gif 按钮,出现对话框如下:
ll23.gif






如图:输入要查找的和要替换的内容,这里涉及到如何输入一个换行符:你可以直接用键盘输入来直接替换,我们建议你使用程序提供的方法:鼠标点击蓝色框所在的下拉按钮,出现一个下拉菜单,其中的“新建行”就是软件提供的换行符,此时还注意将左下角的“当前文件”选中,点击“替换所有”按钮,于是整个文件都得到替换。

"PEPSOFT WinXFiles 32-bit v 3.1 ",
"PEPSOFT WinXFiles 32-bit v 3.1 "
"Label2",
"Label2"
"PEPSOFT WinXFiles *Unregistered*",
"PEPSOFT WinXFiles *未注册*"
.....(省略若干)

至此,你已经得到一份符合L&L要求的字典文件,你只需存盘为.txt文件即可。当然,刚才录制的宏命令你用可以保存起来下次再用。
现在,你可以再次打开L&L软件,不要打开任何文件!
选择“翻译”——“从文本导入”,选中刚刚生成的文本,如:wxfiles-ec.txt,如图:

ll24.gif     ll25.gif

于是在L&L的软件目录下就会生成一个:wxfiles-ec.trn字典文件,整个字典制作到此大功告成。
关于字典制作,也曾设想过:
做一个通用基本字典,在其他地方备份,用来汉化没有汉化过的软件,用它打开文件后,自动翻译完,然后手工翻译校对完后,把这字典移出做以后升级用的字典(这字典比用rdat方法要大,应该不影响使用),另行保存!把通用字典再复制到L&L目录下,供下次使用!
 

汉化写入
L&L能够实现的汉化功能基本都介绍到此了,如果你安装了NT系统,恭喜你,当你汉化完毕,你可以用“方案”——“将翻译回写到程序中”或者使用按钮 ll26.gif ,将直接在CHS目录中生成新的.exe文件。可惜的是,无法保证对所有软件、每次保存都能得到可以运行的.exe文件。当前只有L&L4.62汉化版的保存效果较好,L&L4.70汉化版由于破解中的问题,无法将汉化后的内容保存到.exe文件中。

如果没有安装NT系统怎么办?我想,大部分的汉化人都会有这样的疑问并希望得到解决。
在这里我们推荐一些方法:
在对本文进行修改的同时,我们发现龙飞兄在“电脑界”杂志中相关文章已经给出一种解决方法,我们也知道相应的文件将会在网上发表,这里就简单说说:
Language Localizator:汉化修改所有资源;
Resource Explorer:利用他对Dfm文件的模拟显示功能进行界面的美化;
Restorator:将CHS里面的资源通过拖拉操作合并为一个单一的res文件;
资源文件替换管理器:将生成的.res文件写入.exe文件中。
这种方法同样可以建立和利用字典。

以下是我们推荐的另一种方法:
如果你汉化一个新软件,我们推荐你先可以用用东方快车世纪号里面的永久汉化,因为他已可以支持Delphi类文件的读取、汉化了,唯一也是最大的缺点是,对资源占有较大,如果软件内部的资源过多,将无法读取。
实际上,按照我们的一种观点,所有的非Delphi资源(字符串、对话框、菜单,不含ASCII字符),都可以交给Visual Localize来处理,可以建立欲汉化软件的字符串、菜单、对话框资源字典,也方便升级(如果是混杂型软件的话,这样更有帮助,因为V&L可以提供可视化的对话框调整,以及非常方便字典制作和相对可靠的.exe保存)。该软件的应用请看另外的专题文章
所有的DFM资源我们建议交给language localizator , FormRead和ExeScope来处理。
FormRead软件可以方便的将Dfm界面进行模拟以及修改,你可以参见我们撰写的“FormRead聪明汉化”,或者找本有关Delphi编程的书,了解一下,再加上你的耐心,相信你会做的更好的。
同时我们也推荐DfmViewer 1.4版本(该版本无需Delphi库文件,同时也是免费的,有足够的编辑和模拟功能)。
ExeScope负责将CHS目录中的DFM文件逐个导入到.exe文件中:
在CHS目录,要汉化的软件中的所有表单资源都以各个资源在L&L文件显示的名字保存为.dfm,如TFMAINWXF.DFM等等,我们现在用ExeScope打开Wxfiles.exe文件:


ll27.gif


与导入、导出、保存有关的按钮我们已经做了标记。现在我们要用的主要是导入和保存按钮,有关的导入、保存操作如下图:

ll28.gif

         注意要一一对应,不要导入错了!


ll29.gif

   Delphi类与VC类软件相比,是否选择“允许改变文件大小”影响不大,出错的机会小很多。
  由于ExeScope的软件介绍已经较多,因此这里只是简单说说,如果你正好是新手的话,在这里也有个大致的了解了。

最后的话
关于ASCII字符的汉化,是所有类型软件汉化处理中的难题,我们认为现有最佳的方案是‘中文工具箱+Hex workshop’,暂时没有找到快速汉化升级的方法。因此我们希望由更多的汉化人来提出更多更好的方法和建议,也希望我们汉化新世纪的成员--明白早日研究出对付ASCII字符的汉化工具。在这里我们也就不涉及了,有关ASCII字符的汉化方法请看Rapid ,明白,  ChinEase的相应文章。
其实,L&L软件还有很多功能,比如VIRT语言脚本等等,限于我们的水平不高,没有进行更深入的研究,我们希望通过本文的介绍,可以把我们有关Delphi的汉化处理思路以及我们对L&L软件的使用心得与所有汉化人进行分享、交流,也更希望这篇文件对新做汉化的朋友有所帮助,同时能得到其他汉化高手的指点。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-16 16:18 , Processed in 0.121079 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表