软件本地化与汉化

来源:互联网 发布:唐筛3个数据都大于1 编辑:程序博客网 时间:2024/05/16 16:19

软件本地化与汉化

----看不懂命令、看不懂帮助——因为,一切都是英文的。现在,大部分软件用户的英语水平不高,使用英语软件有不同程度的困难。我们常见到这样的朋友,听说某软件功能很强大,千方百计搜寻了来,安装后一看复杂的英语界面,根本就不会用,只有自叹英语太差。
    解决办法至少有两种:

  1. 帮助用户提高英文阅读能力;
  2. 制作中文版软件。

    短时间提高英文阅读能力,希望所有用户都精通英文是不现实的。事实上,也并非只有英文水平较低的用户才喜欢使用中文界面的软件。绝大多数人使用自己的母语进行交流最为自如。即使外语水平很高的用户,使用外语进行工作的效率也往往比用母语低。
    制作中文版软件,软件的开发商和经销商为了扩大潜在客户群、减少培训与支持费用、提高用户对产品的信心、增强产品竞争力等原因,也会推出本地化版本的软件。满足用户的需求,战胜竞争产品赢得客户。
    并非所有的软件都有进行本地化,最终的决定性因素是本地化投资是否能带来相应的收益。这就是我们看到许多软件有日文版甚至繁体版,却没有简体版的原因。
    为了推动我国计算机使用的普及,国内汉化人,不记报酬,付出无偿的艰苦劳动,把许许多多软件界面汉化成中文。为更多的朋友学习计算机,使用计算机提供方便之门。对普及计算机应用、加快我国信息技术发展都是起到了重大的贡献。

    汉化小知识:

  • 本 地 化(localization):对软件进行加工,使之满足特定市场上的用户对语言和功能的特殊要求。可能涉及文字的翻译、用户界面布局调整、本地特性开发、联机文档和印刷手册的制作,以及保证本地化版本能正常工作的软件质量保证活动。localisation也是本地化的意思,较少用。
  • 国 际 化(Internationalization):在开发程序内核的过程中,功能和代码设计均不局限于某种特定语言,使创建不同语言版本的过程得以简化的软件工程方法。国际化面向编程和设计,而本地化更接近一种“转换”。也叫“全 球 化(Globalization)”
  • 汉 化(hanzify):“本地化”的中国本地化。较之“本地化”,它更为通俗易懂,不过由于专指从其他语言到中文的转换,随着国际交流的增加,业内人士似乎已渐渐倾向于使用“本地化”。国内业余汉化人倾向使用“汉化”,主要指对软件的用户界面从其他语言到中文的转换。
  • 资 源(Resource):Microsoft资源文件 (.RC) 包含的字符串、对话框、菜单、快捷键、图标、位图等。在本地化过程中通常指软件中需要翻译的内容,即 localizable resource,包括delphi资源文件dfm包含的字符串和一些非标准的资源形式(ASCII)。

    本地化简介:

    本地化是商业软件出于营销策略考虑,满足特定市场上的用户对语言和功能的特殊要求,而对软件进行加工。一般包括以下五项工作:

1. 翻译包装和宣传材料

翻译包装是本地化的最基本层次,所需投入最小,但所能带来的收益也最小。

2. 支持当地语言

只有支持当地语言才可能真正进行本地化。这部分工作涉及源代码修改,通常由产品开发人员完成。如果在开发过程中已经实施了国际化策略,就很少有额外的代码工作。完成这一层次的工作后,软件用户界面仍然是英文的,从外表上看与英文软件完全相同,区别主要是:

  • 可运行于本地语言的操作系统上
  • 可接受本地语言输入并用本地语言输出

3. 转换用户界面和文档

在此基础上进行用户界面和文档的转换才有实际意义,也就是传统意义上的“本地化”。也有人考虑在软件能用当地语言输入输出之前就翻译文档,这似乎可以改善产品的易用性,但既然用户还是必须用英文工作,这看起来有点本末倒置。
出于费用、时间和技术等方面的考虑,转换用户界面和文档的工作大多由专业本地化服务提供商进行。委托方通常会根据预算和项目周期的限制按照下列顺序决定本地化的范围:

用户界面 -> 联机帮助 -> 手册 -> README -> 样例 -> 演示和教程 -> 其他

对一些规模较大、专业性较强的软件,可以考虑先转换部分手册,待时机成熟后再进行全面的本地化。

4. 支持本地硬件和软件

由于各个国家和地区流行的硬件和软件可能会有所不同,产品的兼容性可能会成为障碍。在欧美一切正常的软件到中国后“水土不服”不足为奇。以支持本地硬件和软件为目标的本地化,有时并不困难,只要有产品开发人员的支持即可,有时却会遇到技术难度大、风险高的难题。

5. 提供本地化功能

针对当地用户的特殊需求修改功能特性或直接进行开发。例如,

  • 提供汉字竖排和从右至左布局的功能
  • 提供符合中国国家标准的土建工程图纸标注功能

    我们看看台湾一家专业本地化服务提供商的中文化流程、计划管理流程和使用的工具。

   1.中文化流程


User InterfaceHelp

Manual

    2.计划管理流程

Project PlanningProject Tracking & ControlRisk Management

   3.使用的工具:

  • 客户所提供的用户端工具程式 
  • TRADOS - 此工具可确保一致性 
  • TargeTek Glossary Finder - 可以简单快速找到词汇。 
  • SC-TC 文件转换程式 - 可简单将文件作简、繁之间转换,让两岸不再有文件的困扰。




IP 地址: 已登录   
第 2 楼   2004-7-23, 9:29 上午
wellknow 离线,最后访问时间: 2005-4-8 15:50:32 wellknow



发帖数前10位
超级管理员
职务: 超级管理员
师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,017
精华: 1
发贴: 713
ASP NET Forums2.0 中文版开发团队
Re: 软件本地化与汉化
 

判断资源的位置和资源类型

伟乾汉化新世纪

    现在软件开发工具很多,编译出来的软件的资源类型也是各种各样。用一种方法、一个工具来汉化不同类型的软件是不现实的。我们必须根据不同的资源类型,采用不同的方法进行汉化。
  (一)资源的类型
      通常软件中需要汉化的资源,是放在.exe和.dll格式的文件中,有些软件的资源放在专门的语言文件中,一般都是文本文件,扩展名五花八们,随作者喜欢。     
  个别软件的资源,作者在编译时就隐藏起来,根本无法找到。碰到这样的软件,除了反编译,没有别的方法了,不过这种情况比较罕见。找到需要汉化的资源位置后,还需查清楚资源的类型。
      从汉化的角度看,资源的类型可分为 6种:
  ①VC类标准资源(包括Menu、Dialog、String、message table资源);
  ②Delphi类标准资源(Rcdata资源);
  ③非标准的Unicode字符(主要是一些VB编译的程序,程序的Unicode字符不出现在Menu、Dialog、String等资源中,有少数VC、Delphi编译的程序含有少量这样的字符);
  ④非标准的Ascii字符(指的是不出现在String、Rcdata等资源中Ascii字符);
  ⑤语言文件(一般指包含语言资源的文本文件,扩展名多由作者随意取);
  ⑥其它(包括Batmap资源中的文字等等)。
  这里的资源分类,纯粹是从汉化的角度,所谓的标准资源,只是我们汉化起来比较方便而已:-)
       下面,我们通过具体的软件汉化实战讲解如何判断资源的位置和类型。
       准备工具:eXeScope 5.12 或 Resource Hacker 2.4.0.2
                 Hex WorkShop 3.02
      由于大多数软件的资源都放在exe或dll文件中,我们查找资源一般都是先看看在exe/dll文件中是否存在需要汉化的资源和资源的具体类型:-)
      我们可以使用exe资源查看修改软件:eXeScope 或 Resource Hacker ,将软件目录的所有的exe
  dll文件打开,一一查看里面的资源,看看是否有我们需要汉化的资源(Nenu、Dialog、String或Rcdata等)。 

 

       (1) 实战一:判断程序 Opera 的资源      
  运行eXescope,选择菜单"文件|打开"或工具栏的打开按钮,出现"打开"对话框,在"搜索"标签项选择Opera程序的目录,Opera目录的所有exe、dll文件和子目录都显示了。(如图 1)

      一一选择当前目录和子目录所有的exe、dll文件打开,查看是否有需要汉化的资源。我们首先选择打开文件  "Opeay32.dll",在eXeScope的信息列表窗口显示"Opeay32.dll"的文件头、导入、导出等信息,没有汉化需要的资源(resourse)信息(如图 2),表明在这个文件中没有我们要找到东西,pass。

      打开下一个文件"Opera.exe",在信息列表窗口显示有"Resource"资源项。单击"Resource"资源项左边的标志 + ,显示文件"Opera.exe"的具体资源项。其中 Menu、Dialog、String和Rcdata 属于前面说过的第 1、2类资源。(如图 3)

      查看这几个资源的具体内容,单击"Menu"资源左边的标志 + ,出现很多子项。单击选择任一子项,在eXeScope右边的信息显示窗口显示这"Menu"子项的资源内容(如图 4)。我们现在证实了这个文件里有我们需要汉化的资源,你可以直接在这里修改汉化,也可以使用其它汉化工具汉化。

      按照以上方法,继续把其它的exe,dll文件打开,区分那些有资源的,那些没有资源的。我们另建一个目录,把需要汉化的文件全部复制过去,就可以进行下一步的汉化工作了。     
      我们举的例子Opera,是标准的VC资源,里面的rcdata资源非常简单,与标准的delphi资源里面的rcdata资源差别很大。下面,我们再举一个标准的delphi资源例子。

     (2)   实战二:判断程序 browsermaster 的资源     
     打开文件"bmstrj.exe",显示只有String、Rcdata资源项,而没有Menu、Dialog资源项。这个就是典型的delphi/c++Build编译程序的资源特点,需要汉化的资源主要在Rcdata中。选择具体Rcdata子项,在信息显示窗口显示具体Rcdata子项(窗体)的内容(如图 5)。同样,可以在这里修改汉化,也可以用其它汉化工具汉化。

      注意:1.有时使用eXeScope打开文件时,会出现以下的错误信息(如图 6)。可能程序正运行或文件设了只读属性,此时关闭该程序或把该文件去掉只读属性即可!

           2.打开文件正常,可以看到具体的资源项和资源子项,但单击资源子项,想查看子项的内容时,出现这样的信息窗口(如图7),无法查看资源子项内容。这是因为文件使用了一些压缩加壳软件加密过,这就需要对文件进行解压脱壳处理后,才能汉化。这样的程序很多,如Acdsee,Winxfile等等。

      (3)  实战三:判断程序 Vopt99 的资源

      Vopt99是用VB编译的程序,资源类型与上面两个例子不同。我们打开Vopt99目录的exe,dll文件,都找不到menu、Dialog、
  String或Rcdata之类的资源。(如图 8)

      在Vopt99的运行界面(如图 9),记下&Defrag 和 Files and Folders 两个字符串。你一定奇怪:菜单显示的是Defrag,为何在前面加一个'&'?这是Windows标准菜单的一种默认的快捷方式,你看到Defrag菜单的D字母下面有下划线,表示用户同时按下Alt和带下划线的字母时,就可以选择相应的菜单项。表现在资源字符中,就是在字母前面加“&”。

      使用16进制编辑软件 Hex WorkShop  打开Vopt程序的主文件Vopt99.exe,选择菜单“编辑|查找”,出现“查找”对话框,在类型标签选择“文本字符串”,值标签填写“&Defrag”,选项标签选择“ASCII 字符串”,按“确定”。(如图 10)

      程序找到一个“&Defrag”字符串,高亮显示。按“F3”继续查找下一个,我们找到两个“&Defrag”字符串。(如图11,图12)


      分别选改这两个字符串为“&Defra1”“&Defra2”,保存。运行Vopt99程序,会看到修改后的效果,证实这两个字符串是需要汉化的资源。(如图 13) 

      按以上方法,搜索字符串“Files and Folders ”,没有找到字符串。我们在选项标签改选择Unicode 字符串,按“确定”按钮。(如图 14)

      程序找到一个“Files and Folders ”字符串,高亮显示。按“F3”继续查找下一个,文件只有这个字符。(如图 15)

      注意:1.在Vopt99这个例子中,需要汉化的资源有“非标准的Unicode字符”和“ASCII 字符”两种;           
            2.一般查找文件的汉化资源,发现没有①VC类标准资源(包括Menu、Dialog、String资源)和②Delphi类标准资源(Rcdata资源),只需要使用Hex  WorkShop 打开程序的主文件,查找有没有界面出现的字符,而不用一一打开所有的exe和 dll文件,因为一般程序的“非标准的Unicode字符”和“ASCII 字符”都在主文件中。           
            3.汉化时,发现有些程序VC类标准资源和Delphi类标准资源这两类都进行了汉化,运行时还是有英文出现,这是因为文件里存在少量的“ASCII 字符”资源需要汉化,个别情况下,是因为存在少量的“非标准的Unicode字符”资源需要汉化。

      (4)  实战四:判断程序 CompuPic 的资源
      我们首先看看程序CompuPic是否是第 1或 2种资源,用 eXeScope打开程序CompuPic目录的文件,只发现有一个Dialog子项(如图  16)。但这个程序不可能只有这点资源,一定还有其它资源类型。

       运行CompuPic程序(如图 17),选取菜单出现的字符串,我们这次选取复杂一点的“D&isconnect Network Drive”。使用16进制编辑软件 Hex WorkShop 打开CompuPic程序的主文件,查找“D&isconnect Network Drive”。在选项标签不论选择Unicode 字符串或ASCII 字符,都没有找到字符串“D&isconnect Network Drive”。打开其它exe,dll文件,结果都一样,没有找到字符串“D&isconnect Network   Drive”。说明这个程序存在其它的资源类型,我们继续找。

      这里可使用Windows的查找功能,选择“开始|查找|文件或文件夹”。(如图 18)

      出现“查找对话框”后,在“包含文字”标签下填写“D&isconnect Network Drive”,搜索标签选择CompuPic所在的目录,注意“包含子文件夹”标签要选定,按“开始查找”。发现在子目录ENGLISH中 main.msg文件包含这个字符串(如图 19)。打开这个文件,发现是文本格式的文件,就是我们前面说的第⑤中资源类型:语言文件。

(5) 其它资源类型

有些软件的英文字符比较特别,不是出现在以上的几种资源类型中,而是在图片中。对于VC编译的程序来说,是存在Bitmap 资源中。如程序Ember的工具栏按钮(如图 20),Remove IT99的其中一个界面(如图 21)

对于delphi编译的程序来说,这种图片资源是内嵌在Rcdata子资源项中的,eXeScope程序是无法看到和修改这种资源类型的,只能用另一汉化工具 Language localizator 查看和修改。
程序winace的sfxlib.dll文件的资源比较特别(如图 22),有个SFX资源项,SFX的资源子项导出来,再用 eXeScope打开(如图 23),可以看到好像一般的exe文件的资源。汉化时,我们先导出来,汉化后再导进去。这个程序的SFX资源子项都用 Petite压缩程序加了密,首先需要脱壳后,才能进行汉化。

    一般来说,汉化的资源就是以上这几种,只要你按照以上方法,一般都可以找到需要汉化的资源。不过我不能保证你一定能找到需要汉化的资源,因为有些程序编译时,就对资源进行了处理,将资源隐藏起来,根本无法用上述方法找到。

疑难解答:
    ①有朋友问,如果软件的文件很多,用eXeScope一个个打开,你想要了我的老命?有没有简便的方法?
   
其实迅速排除无关的文件的方法还是有的,你运行程序,然后打开程序的目录,选择全部文件,删除。程序正在调用的文件,是无法删除的,我们有时就是这样做某某程序的精简版。不过这个方法不太保险,在少数情况下,某些程序暂时没有调用的文件被删除,造成某些功能丧失,也使某些汉化资源遗漏。
    还有一种方法,可以快速找到某些汉化的资源在那个(些)文件中。如果资源类型是VC标准资源格式的菜单、对话框、字符串、信息表,我们可以使用 PASS Resource Finder 工具,可以在指定目录中查找含有指定字符串的资源的文件,是在进行汉化之前用来定位资源所在的辅助汉化工具。如果是delphi标准格式的汉化资源,上述方法无能为力。因为Radata资源是  ASCII字符,所以我们可以使用上文说的“使用Windows的查找功能”查找文本资源的方法,在指定目录查找含有指定字符串的资源的文件。

   ②有汉化人问:汉化某个软件,主要的界面、对话框都汉化了,发现运行时还是有少数英文字符,我按照你说的上述方法查找,把程序目录里的文件都打开检查,排除是非标准的unicode、ascii字符或文本文件。
  
出现这种情况,在排除汉化人遗漏了ascii、unicode等原因。我们都知道,程序安装时,有时会往注册表、windows的system目录下放文件或写东西。有时候,某些个别汉化资源就在这些地方,你可以到这些地方找找。有一些软件的安装后,会往系统的右键菜单添加命令,这些命令菜单的汉化资源的文件,往往在system目录里。


    我们找到资源、了解了资源的类型,就可以使用不同的汉化工具进行汉化了。汉化并不是很困难的事情,需要的是你的认真态度、“咬文嚼字”的细心、耐心与责任心!仅此而已……在以后的教程中,我们将由简入深,系统讲解汉化知识。为了使更多的计算机用户掌握这门技术,我们把长期收集汉化教学资料和自己汉化心得重新总结,将通过大量的实例,以步步为营、手把手的教学方式,让读者轻松快速地掌握软件汉化的技术和基本技巧。在本教学中引用了大量的他人的成果。本教学目前正在制作中。也欢迎你提出自己的建议和看法(weiqian@21cn.com ),共同完善。如有错误欢迎指正!有关软件你可以到我们的总站--汉化新世纪下载





IP 地址: 已登录   
第 3 楼   2004-7-23, 9:30 上午
wellknow 离线,最后访问时间: 2005-4-8 15:50:32 wellknow



发帖数前10位
超级管理员
职务: 超级管理员
师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,017
精华: 1
发贴: 713
ASP NET Forums2.0 中文版开发团队
Re: 软件本地化与汉化
 

EXE、DLL文件的脱壳

伟乾(汉化新世纪)整理

  我们在软件汉化时,经常会发现这种情况。用eXeScope 打开 EXE、OCX 或 DLL 文件,打开文件正常,可以看到具体的资源项和资源子项,明明看到有菜单、对话框、字符串、RCData、光标、图标、位图等资源存在。但单击资源子项,想查看子项的内容时,出现这样的信息窗口(如图1),无法查看资源子项内容。

    这是因为文件使用了一些压缩加壳软件加密过,这就需要对文件进行解压脱壳处理后,才能汉化。这种压缩与我们平时接触的压缩工具如winzip,winrar等压缩不同,winzip压缩后的文件不能直接执行,而这种 EXE 压缩软件,EXE文件压缩后,仍可以运行。这种压缩工具把文件压缩后,会在文件开头一部分,加了一段解压代码。执行时该文件时,该代码先执行解压还原文件,不过这些都是在内存中完成的,由于微机速度快,我们基本感觉不出有什么不同。这样的程序很多,如 The bat,Acdsee,Winxfile等等。
  这种压缩加壳属于软件加密,现在越来越多的软件经过压缩处理,给我们汉化带来许多不便,软件汉化爱好者也不得不学习掌握这种技能。现在脱壳一般分手动和自动两种,手动就是用TRW2000、TR、SOFTICE等调试工具对付,对脱壳者有一定水平要求,涉及到很多汇编语言和软件调试方面的知识。而自动就是用专门的脱壳工具来脱,最常用某种压缩软件都有他人写的反压缩工具对应,有些压缩工具自身能解压,如UPX;有些不提供这功能,如:ASPACK,就需要UNASPACK对付,好处吗简单,缺点吗版本更新了就没用了。另外脱壳就是用专门的脱壳工具来对付,最流行的是PROCDUMP v1.62 ,可对付目前各种压缩软件的压缩档。在这里介绍的是一些通用的方法和工具,希望对大家有帮助。
侦测壳的类型:

  我们知道文件被一些压缩加壳软件加密,下一步我们就要分析加密软件的名称、版本。因为不同软件甚至不同版本加的壳,脱壳处理的方法都不相同。这类查壳的工具很多,我这里介绍大家使用 Filebase for eXecutable (简称 Fi),它是一个文件格式分析器,除了用来查壳,还有很多功能,我们在以后汉化教程还会接触它。由于 Fi 是使用dos命令格式,因此你必须在"我的电脑"的地址栏中操作(如果你还没有升级到IE4.0以上,你可能要在"开始"--"运行"中进行操作),操作如下:
  首先我们把要分析的文件复制到 Fi的目录,确定是在 Fi的目录下,然后在"我的电脑"地址栏中输入以下的命令:fi 文件名.后缀名 (例:fi acdsee.exe )

    出现如下界面(见图 ):哦,原来是用Aspack1.804加密的:-)

  
  我们知道文件的加密方式,就可以使用不同的工具、不同的方法进行脱壳。下面是我们软件汉化时常常会碰到的加壳方式及简单的脱壳措施,供大家参考:-)
(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脱壳就行了 
(2)ASProtect+aspack: 次之,国外的软件多用它加壳,脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识,但最新版现在暂时没有办法。 
(3)Upx: 可以用UPX本身来脱壳,但要注意版本是否一致,用-D 参数 
(4)Armadill: 可以用SOFTICE+ICEDUMP脱壳,比较烦 
(5)Dbpe: 国内比较好的加密软件,新版本暂时不能脱,但可以破解 
(6)NeoLite: 可以用自己来脱壳 
(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE来脱壳 
(8)Pecompat: 用SOFTICE配合PEDUMP32来脱壳,但不要专业知识 
(9)Petite: 有一部分的老版本可以用PEDUMP32直接脱壳,新版本脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识 
(10)WWpack32: 和PECOMPACT一样其实有一部分的老版本可以用PEDUMP32直接脱壳,不过有时候资源无法修改,也就无法汉化,所以最好还是用SOFTICE配合 PEDUMP32脱壳

  我们通常都会使用Procdump32这个通用脱壳软件,它是一个强大的脱壳软件,他可以解开绝大部分的加密外壳,还有脚本功能可以使用脚本轻松解开特定外壳的加密文件。下面摘选了捷迅中文化天地(杨贯仲) 写的 Procdump的教程,写的非常好,附录如下: 

------------------------------杨贯仲的文章------------(开始)------------------------------

  由以上两个可执行程序的加壳分析工具知道 TPM1.0 是被UPX 0.70加压的,顺便说一声,前段时间出的 AcdSee32的2.42版 是用Aspack1.803加压的,Mass Downloader V1.2.62 Beta 2 是用Aspack1.804d加压的。下面我们打开PROCDUMP32的主程序:

prodump1.GIF (14428 字节)

  5.单击按钮“解包”,弹出如下对话框:

prodump2.GIF (6141 字节)

  将选择解包方式设为:UPX,然后单击“确定”,选择要解包的程序为:TPM.exe

prodump3.GIF (6739 字节)

  单击按钮“打开”后将出现如下窗口:

prodump4.GIF (8107 字节)

  此时Procdump将自动打开TPM并分析处理它的加密壳,注意此时一定要等TPM完全加载后才单击按钮“确定”,否则的话你又要重新来过了,单击按钮“确定”后将接着出现如下对话框,并且打开的TPM将自动关闭:

prodump5.GIF (7183 字节)

  单击按钮“保存”,将它保存为newtpm.exe,newtpm.exe就是我们需要的文件了,现在你可以将它自由的汉化了,怎么样,简单吧。

暂告一段落

   其实你也可以利用Procdump内置的解包功能来直接解开TPM,而无须利用GTW 2.51Filebase for eXecutable 2.10来识别要处理的文件,不过这样的成功率就要低很多了。方法是:
  1.在打开Procdump之前先打开TPM,然后再打开Procdump,在Procdump的窗口中选中TPM的进程,如下图示:

prodump6.GIF (15473 字节)

  单击完全保存后就会弹出如下对框要你选择要保存的文件名,任写一个保存就可得到你所需要可以汉化的未加壳程序了。

prodump7.GIF (6959 字节)

  采用这种方法的成功率要低很多,我建议你用GTW 2.51Filebase for eXecutable 2.10先将要处理的程序识别出来是用什么加壳的之后,才用Procdump选取相应的解包方式解开它。

  技巧:有时在Procdump的任务窗口中采用以上方法解不开,你可以试着在Procdump的部件窗口中采用以上方法,说不定会有让你以外的惊喜。


---------------------------------杨贯仲的文章-----(结束)----------------------------

  有时你使用Procdump还是无法将文件它解开或者是解开后却还是找不到资源(没有正确解开),建议大家用相应的专门针对这一类压缩壳的解壳工具来解开它。这些工具你可以在我们主页的汉化工具中找到,如果你还是解不开它,你可以问问以下的破解高手,他们会很热情的回答你的问题。
    侠客的家 nemc.yeah.net
    冰雪天地 iceworld.yeah.net

  注意:文件脱壳后,有条件最好在不同系统进行测试,看看是否运行正常。前段时间,经常有用户反映有些汉化作品无法运行。后来发现,汉化人是用 TRW2000 进行脱壳的,这种方法脱壳非常简单,可惜有一个大的BUG。解开的EXE文件会少些东西,造成解开后的文件只能同一系统中运行。如:在win95脱壳,只能在win95运行,在其他系统无法正常运行,反之亦然。作为汉化人,装多个系统是必须的,不仅脱壳后的文件,要在不同系统中测试,汉化后的文件,最好也能在不同系统测试。





IP 地址: 已登录   
第 4 楼   2004-7-23, 9:30 上午
wellknow 离线,最后访问时间: 2005-4-8 15:50:32 wellknow



发帖数前10位
超级管理员
职务: 超级管理员
师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,017
精华: 1
发贴: 713
ASP NET Forums2.0 中文版开发团队
Re: 软件本地化与汉化
 

Visual Localize 入门

作者:伟乾  (汉化新世纪)

★前言
    其实汉化既是一件有益的事情,也是一件有趣的事情。现在流行DIY,玩家玩完硬件DIY之余,对软件也开始感兴趣了,象桌面修改,系统优化等等,这些都属于软件DIY范畴,其实软件汉化也属于"软件DIY”的一个部分。(这里的DIY,基本指的是对某些东东的修改,优化等等,难道硬件DIY就是自己生产一个CPU出来?所以软件设计编程一般不再此列)。你看,软件汉化大处来讲,是将一个软件的界面从外国语言变成中国的文字,方便网友,发扬国萃;小的范围,你也可以将一些软件,无论中英,将菜单、对话框,甚至是版本宣示,改成自己喜欢的内容、形状,或者将某个按钮屏蔽了(公用微机管理时就有帮助了),甚至改成自己的版本(拿来哄MM应该挺有意思)。怎么说呢——记得刚做汉化时,我就曾称汉化是一种“让你的软件个性飞扬的”的事情。因此,只要你有兴趣,有耐心,you can do it youself!
    在上一讲中,我介绍了汉化资源的类型和如何寻找汉化的资源。这一讲,我将详细讲解如何汉化VC类标准资源格式的软件。

★资源判断
    由于包含文字资源的文件一般是.exe、.dll为主,但不是所有软件的.exe或者.dll都有你需要修改的文字内容,所以,第一步,看看是否有你修要的资源,以及其分布——请先准备第一个工具——ExeScope;然后今天我们准备下手的软件是Opera。
    运行Exescope(汉化版),"文件"——"打开",切换到Opera所在目录


    所有的exe,dll文件都显示出来,我们先选择opera.exe,我们已经看到所有资源了,通常Menu、Dialog、以及String属于C类语言编译的,这是我们今天要针对的对象。还有一类是RCData的资源,属于Delphi类的,以后再谈。
    现在我们可以逐个打开Menu、Dialog、String,可以看到各个资源的详细情况。

    



    用同样方法打开其他的.DLL文件,如果没有资源部分的就不要管他。有资源部分的可以看看其中的资源是否需要修改。在本例中,含有需要汉化的资源的是Opera.exe、OMail32.dll、OpTree32.dll三个文件。资源判断的步骤到此为止。

★开始汉化
   现在请准备今天我们的主刀手——Visual Localize,它是一个可同时支持翻译 16 和 32 位程序的汉化工具。 多字典模式的支持,可让您将多个字典文件加入到单一方案的字典文件,亦可将旧版本所翻译的字典套用到新版本上,如此便可节省许多汉化的时间。也可以自动翻译所有方案内任何相同的字串。而它所支援汉化的文件格式有 :EXE、DLL、DRV、OCX、CPL 等。可编辑资源包括有:字串、对话框、菜单。

   Visual Localize 不管汉化什么,都是以「方案」作为汉化的基础。所以一开始,就必须先新建一个方案,运行Visual Localize(以下简称VL),在"文件"菜单中选"新建方案",或者使用工具栏图标


     我们按照图中的顺序进行操作:
     ①设置方案名称——鼠标单击红色圈住的"..."按钮,指定保存路径以及名称。


     ②指定需要汉化的多个文件,同样是使用红色圆圈圈住的小按钮,显示所有符合要求的文件。

     这里同样可以使用微软标准的多种选定方式:Ctrl+鼠标单击可以跳跃的选择多个文件;Shift+鼠标单击可以连续的选择多个文件。

     ③设定文件的原始语言,一般设定为英文;红色圆圈圈住的两个按钮:下拉按钮用来设定原始语言(一般选"英文"即可),"..."按钮设定原始文本在VL中显示所用的字体、字号。

     ④设定文件要翻译的语言与字体,操作方式同③,语言当然选"中文",字体、字号取决于你自己。

   注意:「语言」这部分比较要注意,千万不可以选错,若你准备翻译的是英文软件,在原始语言就选「英语(美国)」,然后,目标语言当然就是选「简体中文(中国)」了。
     最后的设置情况如下:


      全部设置好后,按"确定"按钮,开始载入文件......稍候.....

    出现左右窗口,列出文件在左侧窗口,要汉化的各个文件名称前面都有一个"+"符号,我们先操作opera.exe:鼠标单击该文件前面的"+"符号,出现所有的资源分类,我们先选择"字串表":


    在这里我们可以看到两两对应的英文文字,其中第一行是原始对照文字(这是无法修改的),我们可以称其为"对照行",第二行文字就是准备翻译的内容,我们称其为"翻译行"。我们准备翻译第一句:"Cannot run ",鼠标单击可以进入"翻译行",输入翻译内容"无法运行":

    OK,这一句内容就已经翻译完了。如果方案里面的所有文件都有同样的原始英文(视大小写是否匹配决定)的话,都会自动用现在的翻译内容进行翻译了。接下来就是一句一句的翻译了。
    "字串表"翻译完,我们跟着翻译"菜单"内容"。同样也是鼠标单击"菜单"前面的"+",选中第一个菜单项目"IDR_COPYLINKS_MENU":


     在这里比"字串表"翻译时多了下面一栏"模拟显示"窗口,同样我们在"翻译行"进行操作:将"Copy as &text"翻译为"复制为文本(&T)"(在这里&表示紧跟其后的字母就是该菜单内容的快捷键,汉化时一般将它放到文字的最后,并加以括号),翻译效果实时显示出来:


    同样,逐句地将"菜单"翻译完毕。我们也可以用鼠标单击菜单模拟显示窗口的文字,程序自动定位到相应菜单文字的翻译行,这样翻译某个具体菜单文字很方便。

    所有菜单翻译完毕后,我们再来看看"对话框"的情况:(选择操作与菜单等的相同)。我们将"Print"翻译为"打印",翻译后的效果马上显示在下面的窗口中。

    依然是需要逐句翻译。
    作完对话框的翻译,就要更改对话框的字体,对著「对话框」按一下鼠标右键,选「更改字体」。接著,把原本英文字型,改成你要的中文字型,一般都是用「宋体」、字体样式为 regular、大小为 9的设定值,这样的中文显示起来最工整,设定完后按「确定」。

    用上述方法汉化其他exe,dll文件。这样一个软件的主要资源已经汉化完毕。

    最后一步就是要将汉化好的内容写入到执行文件中从而生成一个全新的汉化程序:使用"文件"——"创建目标文件"或者使用工具栏上的小图标,跳出一个创建目标文件对话框:

    最后确认一下目标语言设置、目标文件的保存路径等,轻轻地按一下左下角的"确定"按钮,VL将会逐一生成.exe、.dll等执行文件,将这些文件复制到原始目录下(比如"C:/Program Files/Opera"),试试运行一下新的软件,哈哈,终于看到中文啦!

    由于目前大部分软件都是使用C语言类软件进行编程的,也就是说,基本上都包含上面提到的三种资源类型。因此,你会发现只要掌握好VL工具,你已经可以面对你所接触到的大部分外文软件了。下一讲,我会讲述一些Visual Localize高级使用方法,你可以学习到有关VL的更深入强大的功能,包括字典升级、对话框的美化等等。

    如果你由此走上汉化之路,我们相信你会发现在汉化的世界里有更多的乐趣,更多的朋友。
    文中所用到的工具可以在我们的网站:汉化新世纪(http://www.hanzify.org)下载,还有很多关于汉化的软件与文章。





IP 地址: 已登录   
第 5 楼   2004-7-23, 9:32 上午
wellknow 离线,最后访问时间: 2005-4-8 15:50:32 wellknow



发帖数前10位
超级管理员
职务: 超级管理员
师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,017
精华: 1
发贴: 713
ASP NET Forums2.0 中文版开发团队
Re: 软件本地化与汉化
 

Visual Localize 高级使用指南

作者:伟乾  (汉化新世纪)

-★前言:
汉化 在上期的汉化教学,详细介绍了如何用 Visual Localize (下称 VL)一步一步手工汉化软件。VL 中最强大的字典功能,文中没有涉及。在我们现阶段接触的所有汉化工具中 ,VL 的字典功能是最强大、最易于使用的,堪称汉化工具中的倚天长剑!
汉化本文我们将详细介绍如何利用已有的汉化资源汉化软件、如何制作字典文件!如果你对 VL还不太了解,我建议您先看看上一期的教学文章。

 ★名词解释:
汉化VL 简单的说包含两个不同的重要内容:方案和字典,它所有的功能都围绕着这两个部分进行!

方案:
  实际上翻译过程是发生在方案中,方案包含着应用程序必须用于翻译的所有信息,应用程序包含的所有文本资源都是在该数据库中读取和写入,翻译完后这些资源将被写回到应用程序中 。另外,该方案中包含着字符串限制、例外和只读标记信息。因此,做出来的方案文件(.prj)会很大得哦!经常比原文件还要大的多。



字典:
  字典中包含了一个程序的所有单词、短语和他们的翻译内容,字典内容可以由用户修改和补充。为了使翻译更容易,所有的字典内容都能被导入进方案。一个字典文件中包含的内容越多,方案就能被翻译得更快和更准确。这里的字典翻译功能,与东方快车的字典翻译功能不同,要求待翻译字符与字典的字符完全相同,才会翻译。字符大小写不同都不会翻译,这保证了翻译的准确性。
     在具体讲解操作时,会逐个介绍Visual Localize里面其它的一些名词、概念!

冲突
    在导入已有汉化资源时(特别是导入多个汉化文件、字典、方案时),经常会碰到同一个单词在不同的地方有不同的翻译,在Visual Localize中,叫作冲突。冲突可以被手工或者自动解决,如何解决冲突的方法可以在“选项”菜单中“冲突解决方案...”选定。
  注意,只要最后一种方法会给你在导入外部翻译时人工干预的权利和机会。我们建议必要时用手工干预,特别是大的软件,否则后期你校对时会很麻烦。是否使用手工解决首先取决于软件有否歧义词汇,也是考你对软件的熟悉程度。当然这也确决与你对汉化质量的要求程度。


1. 自动解决冲突:
  如何自动的解决冲突有三种方法:
  全部忽略:如果原始资源还没有对应翻译时才采用当前导入的翻译。原有已翻译内容全部忽略导入新的翻译。这是如果同一内容有不同翻译是将无法及时获知和修改。
  全部替换:所有翻译中已存在的翻译冲突都将被导入方案中进行对原有翻译的完全取代。同样,一些有歧义的翻译也将会忽略掉。
  添加所有:相对智能化一点!导入的翻译是如果原来没有的,将被添加为默认翻译,如果已有默认的翻译时被当成例外的翻译。怎么理解?——比如说升级一个汉化,多少会多了一些对话框或者菜单资源内容,于是这些内容是原来没有翻译过的,Visual Localize就会将其添加为默认的翻译;如果你又导入了的以前版本中曾经出现过有歧义的地方,在出现歧义的地方就会多一个例外的翻译,表示此时的翻译与其他有同样原文的地方有不同的解释。但是你依然可以在默认和例外之间选择你认同的翻译。



2. 手工解决冲突:
  当手工冲突解决被用户选中时,每当冲突发生时将弹出下列对话框:

 在这里你可以决定每一个单个冲突是否将被作为例外(添加)或默认(替换)来导入翻译,或者它是否将被忽略(忽略)。其实就是上面自动项目的手工处理而已。
  如果你觉得烦了,你也可以选择 方法(M)...切换到自动冲突解决模式,从此处开始,后面的冲突将自动处理。
** 冲突的模式显示在状态栏。
    = 手工解决冲突
    = 自动解决冲突:全部忽略
    = 自动解决冲突:全部替换
    = 自动解决冲突:添加所有

标记
  标记仅仅被用于定义目标(已翻译)文本行的不同属性(以方便对上述冲突的管理和提醒),标记的设置可以通过用鼠标单击相应的选择框来实现的。   

   

  1. 已用:这个标记表示文本行已经被翻译进程处理过,该标志会在翻译进程中自动设置。用户可以通过编辑菜单的"删除不使用的条目"删除所有未被翻译过的条目。
  2. 只读这个标记表示文本行被定义为只读不可以改变,防止已本地化的应用程序出现故障。
  3. 例外:并非每一个翻译都是默认翻译并且可以在其他上下文中使用。定义为例外的目标文本行是因为该行翻译仅仅适用于特定的上下文中,并且不会再自动的用于其他的匹配原始文本行的翻译当中。这样可以保证一些特定的翻译不会干扰到其他有同样原始文本的统一翻译。
  4. 已翻译:这个标记指出了文本行已被翻译。
  ** 所有未被定义为例外的翻译都将被对为默认翻译并且在全部方案中自动的用于匹配原始文本行。这样同样的单词只需翻译一次即可全部通用(例外除外)。

限制
    
字符限制只能由管理员来设置,字符限制表明目标文本行的字符数必须在限定数以内,零意味着没有限制。(Visual Localize包含管理员的概念,可是看不到有权限设置的功能,这大概在向微软靠拢吧。或许以后合作汉化将是一种新时髦。)
   
限制的数目可以通过鼠标单击限制区域来设置,单击后会出现一个双向箭头。
  ** 通过单击向上或向下箭头键,限制数目可以被增加或减少。
  ** 注意汉字限制要双数。

过滤
  
过滤是设置在方案、字典中那些要特定显示的文本行,例如,当你在进行更新工作时只想看到哪些文本行还没有被翻译。
    有两种方法设置过滤,

1.从“工具”菜单中的“设定过滤为”设置,

2.在树查看下面单击过滤页设置
  
(只能在方案中使用)

下列过滤可以被选定的:
  1.全部:所有文本项目都将被显示
  2.用户自定义:只有那些由用户指定的文本项目才被显示.为了定义过滤设置,从“工具”菜单选择菜单项“定义用户过滤”。下面的这个对话框用于定义参数来显示一个文本行弹出窗口:

  

      
3.未被翻译的:显示所有还没有被翻译的文本行。 

例外
  
前面多次提到例外的概念,也作了一些解释,这里再作一次阐述:
  
例外可以被定义为特定原始文本行的一种翻译特例,这种原始文本行在方案中多次出现并在不同的地方有不同的含义,例如单词“OK”将被翻译为“确定”,并被贯穿整个方案来自动翻译。然而,在指定的对话框中你可以翻译“OK”为“好”,你可以通过“例外”来这样做——你只需用鼠标点击相应目标文本行的右侧,会出现一个按钮,然后单击(新建翻译)并输入你的新版本翻译。
如下图:


看看有何不同:——“例外”已经被设置。

例外概念的设立为汉化者提供了更加灵活的翻译空间,某些具备自动翻译功能的汉化工具,如果要对付特定的歧义单词,往往只能在脱离该汉化工具后再另行修改,而这里可以让你在一次汉化过程中就加以解决。Good!

★使用说明

    我们反反常规的教学方法,先不讲如何汉化软件。俗话说:兵马未动,粮草先行!如果说汉化工具是汉化人的武器,字典就是弹药!当然您爱耍大刀这类冷兵器,宁愿手工一字一句汉化软件,可以忽略这部分!拥有一个好的字典,可以减少汉化人的工作强度,提高汉化效率,把汉化人从案牍中解放出来。还可以有时间陪陪MM、LP花前月下,不至影响安定团结的小环境。还能.....还能......还能预防近视呢!:-)

、字典制作 

  为了更快和更容易的翻译,Visual Localize 提供了可以创建和编辑字典的功能。字典是独立于方案的并且它有它自己的数据库,字典项目可以从方案中导入或者由用户手工输入。

★如何创建一个字典
     1.从文件菜单项选择“新建字典”,将出现如下对话框:

    2.输入你的字典名称和字典路径并选择它的来源和目标语言,单击“确定”,将出现以下窗口: 

★手工添加字典

  为了手工添加项目到一个字典中,默认的是从“编辑”菜单或工具栏选择“创建”,

    然后一个新的资源文本行和目标文本行将出现: 
  
  输入资源文本和目标文本并设置标记。 

★如何导入字典项目

  为了导入字典项目,请打开“工具”菜单并选择你要导入的来源,下列三个来源是可以被选定的:

  1.导入应用程序短语:在这里文本项目从已经被本地化的应用程序中导入,你只需输入来源程序和目标程序的名称和路径。
  2.
导入字典:在这里文本项目是从一个或更多的字典中采用。
  3.
导入方案短语:在这里一个方案的来源和目标文本行均被采用。
  4.
导入文本:在这里文本项目是从一个或更多的文本中采用。


   
1.导入应用程序短语:

    从工具菜单项选择“导入应用程序的短语...”,将出现的从成对的应用程序中导入短语对话框。在导入的源文件项中,通过按选择未汉化的英文源文件:在导入的目标文件项中,通过按选择已汉化的汉化对照文件。可以选择多对英汉对照文件,如果不小心选多了,可以把鼠标移动到最左边那栏,鼠标变为向右的箭头,选择你要删的对照文件行,单击鼠标,对照文件行被选定,这时右边的删除按钮变为枣红色,单击删除按钮,即可删除选定的一对对照文件。核实无误,按确定。


   然后出现一个字典窗口

   在这个字典中,你可以对字典项进行删除、添加、修改、设标志等各项操作,这里就不详细说了!
    在我们导入多对对照文件或多次导入应用程序短语时,会出现冲突现象,请用上面讲过的方法自行处理!

 2.导入字典:

    我们除了可以从应用程序中导出英汉对照翻译到字典中,还可以从已有的字典文件英汉对照翻译到新的字典中。 
    从工具菜单项选择“导入字典...”,在出现的从字典中导入短语对话框中,选择字典文件(dic)。这个对话框与上面的从成对的应用程序中导入短语对话框基本用法相同,在右上角多了两个移动按钮,在你选定了字典文件后,可以用这两个按钮上下移动,切换不同的字典文件,本来他图中用红色圈圈的地方,应该有删除按钮,由于软件的BUG原因,少了这个按钮,也无法删除多选的字典文件!确定,即导入新的字典文件中!


 3.导入方案短语:

   
我们可以把方案的来源和目标文本行导入字典。 
    从工具菜单项选择“导入方案短语...”,在出现的导入方案对话框中,选择方案文件(prj)。选择打开,即导入新的字典文件中!

 4.导入文本:

    我们可以把方案的来源和目标文本行导入字典。 
    从工具菜单项选择“导入字典...”或“导入方案短语...”,在出现的从字典中导入短语对话框或导入方案对话框中,选择文本文件(txt)。选择确定打开后,出现对话框!

   在Visual Localize中可以辨别的文本文件,可以是由Visual Localize本身导出的文本文件,也可以是用制表键(跳格键Tab)隔开的文本文件,格式如下:
   

&About...       关于(&A)...
&Best Stretch   最佳扩展(&B)
&Bottom:        页脚(&B):
&Browse 浏览(&B)        

"&About..."     "关于(&A)..."   
"&Best Stretch" "最佳扩展(&B)"  
"&Bottom:"      "页脚(&B):"     
"&Browse"       "浏览(&B)"      

   这文本用Tab键隔开的,Visual Localize可以识别,下面的图就是用这种格式的文本导入时,出现的对话框,我们可以选择导入的范围,在列标题单击鼠标右键选择文本列的属性(源文字行、目标文字行)!按确定,即导入字典。(提示一点:EXCEL也可以识别用tab间隔的文本,或许可以帮你整理、排序字典)

5.编辑字典:

    
 我们采用以上方法把大量的翻译对照文本导入字典,不可避免的导入一些错误或不需要的字典条目,或者您想手工添加几个条目。我们首先看看字典的编辑工具栏的按钮:
 分别是创建默认的翻译创建例外的翻译删除条目按钮
 

    我们可以通过选择编辑菜单的相应的菜单项快捷键字典编辑工具栏按钮,分别进行创建默认的翻译创建例外的翻译删除条目等操作。也可以通过设定过滤为未被翻译的,只显示未被翻译的字典条目,然后一一手工翻译,或一次全部选择删除。

    字典的制作就说到这里,最后要提的是,我们通过选择工具菜单的导出为文本...可以把字典导出文本文件,再加工一下,供其他汉化工具使用。

二、软件汉化

★新建方案:
   使用 Visual Localize 汉化软件,都是以「方案」为基础,开始,就必须先新建一个方案,按下工具栏上的「创建新方案」。出现了一个「新建方案」的对话框,在各栏位输入正确的资料。其中,「语言」这部分比较要注意,千万不可以选错,若你准备翻译的是英文软件,在原始语言就选「英语(美国)」,然后,目标语言当然就是选「简体中文(中国)」了,选择完成后。


     在‘方案’选项旁边有个‘导入’,选择导入,出现下面的对话框

    我们发现有三种导入现有汉化资源的方法:方案、应用程序(英、中对照)和字典。
    方案就是我们以前用
Visual Localize汉化软件生成的方案文件,里面有大量汉化资源,我们可以利用翻译新的软件 。字典是指我们使用Visual Localize制作的字典文件,导入字典自动翻译。
    虽然可以在这里选择导入的方式,我们汉化时一般不在这里选择,因为程序容易出现非法错误,被迫重新启动
Visual Localize,前面的步骤又要重新 设置!我们还是首先建立好新方案,然后再导入资源。
伟乾提醒:
最好不要在新建方案的同时导入字典等其他翻译,以减少错误的发生。       
       不选任何导入项,直接选择
确定稍等一会,在左方会有一个个像资料夹的小图示。方案建立成功!

★导入汉化资源:

    在最上方项目用鼠标右键单击,再选择添加模块…,就会出现图2的对话框,选择合适的导入方式:或者在菜单 工具 中选择合适的导入方式!


   导入方案、字典和文本文件都比较简单,就不介绍了,这里我们举例详细介绍如何利用已有的汉化文件和英文文件,汉化英文软件!
 


    分别选择导入的源文件(指已汉化软件的英文文件),导入的目的文件(指已汉化软件的汉化文件)和 应用到(指需要汉化的的英文文件)的三项的完整路径和文件名。
    其中
应用到 可以不选!
    选择完毕,检查无误,按
确定

注:我们可以多次导入已存在的方案文件、成对的应用程序或词典。


翻译剩余的文本行
  选择你想在左边的分支查看窗口中要翻译的对话框或菜单,对应原始和目的文本将在右边的文本查看窗口中显示出来,同时对话框或菜单将以实际外形显示在下面的资源查看窗口里面,当选择字符串表进行翻译时资源查看窗口是无效的。
    为了更好的查看在你的翻译进程中还未翻译的文本行,你也可以使用过滤来特定显示那些还未翻译的文本行。如果希望知道还剩多少文本没有翻译,你只需单击菜单中的 工具/设定过滤为/未被翻译的 即可。
   然后的工作——当然就是翻译:输入中文翻译到对应的文本行,即在原始行下面,同样,匹配原始文本行的翻译将在整个方案中被自动采用。


★编辑对话框
    
对话框的字体改变,《 Visual Localize 使用指南 》一文中有详细讲解,这里就不说了!有时候,我们不改变对话框的字体,程序运行时,对话框的字体也正常!
    
当你翻译文本对话框的时候,它的控件元素可以被调整以适合翻译后的文本长度,所有元素都可以通过鼠标或键盘选定所有元素来改变他们的大小及/或位置。
  被选定资源的文本项目将被显示在翻译查看中。被选定的资源,在我们的例子中它是一个对话框,它将被真实的显示出来,就像它是一个正在运行的应用程序一样。
  为了翻译原始文本行,选择它的目标(鼠标/键盘)并且覆盖它。
 **
当你选择某文本行时,模拟对话框也将会跳到相应的控件;同样,在选择或者调整对话框控件时,文本查看窗口也会同样定位到相应的内容上。这个应该称为联动吧!
 **
任何翻译内容的确定或修改,相应的改变将被自动的保存并且它可以立刻被可视化的显示在资源查看窗口中。
 ** 在我们调整对话框控件的大小和位置时,控件的大小和位置信息在状态栏中显示。

X:Y:控件左上角的座标, dX 控件的宽度,dY 控件的长度

1.鼠标操作:
    
我们可以用鼠标调整对话框的大小(宽度、长度),也可以选定某个控件元件,调整它的大小和位置!
    如果你想同时改变多个控件元件的位置,首先用鼠标选择一个控件,然后按住 Shift 键,用鼠标单击你想移动的其他控件。即可同时选择多个控件项,所有的改变都自动保存!

   
** 我发现,Ctrl 键也有同样效果!

2.键盘操作:
    
我们也可以通过键盘调整对话框控件的大小和位置,选定某个控件元件,使用键盘的
光标键(↑ ↓ ←  → ), 可以上、下、左、右移动控件。使用 Shift + 光标键 可以调整控件的大小。
   Shift + 光标键 ↑  增加控件的宽度
   Shift + 光标键 ↓  减少控件的宽度
   Shift + 光标键 ←  增加控件的高度
   Shift + 光标键 →  减少控件的高度
    我们使用鼠标同时选择多个控件,也可以使用键盘的光标键(↑ ↓ ←  → ), 同时上、下、左、右移动多个控件。所有的改变都自动保存!

3.对话框布局工具栏:


    对话框布局工具栏,只有在资源窗口激活时才有效。即我们在方案窗口中,选择具体的对话框项目,对话框显示在资源窗口中,然后用鼠标在资源窗口任意处按一下,激活了资源窗口。
①.测试:

   

   
预览对话框编辑的效果,Esc 或 Alt+F4 关闭预览窗口。
②.对齐:
  
分别是:左方对齐:右方对齐:顶部对齐:底部对齐。
   这些对齐按钮可以对对话框中选择的控件项进行对齐操作!
③.居中:
  
分别是:水平居中:垂直居中。
  这些居中按钮可以对对话框中选择的控件项进行居中操作
④.间隔:
  
分别是:均匀左右间隔:均匀上下间隔。
  这些间隔按钮可以对对话框中选择的控件项进行间隔操作
⑤.大小:
  
分别是:制成相同的高度:制成相同的宽度;制成相同的大小。
  这些大小尺寸按钮可以对对话框中选择的控件项进行调整大小操作。这个高度、宽度、大小以最后选择的控件项的尺寸为标准,调整选择的所有控件项的大小!
⑥.切换网格:
  

  这切换网格按钮可以在对话框中显示网格,方便控件项的准确定位!

4.菜单中的布局操作:
   


    上面两个图,第一个是没有激活资源窗口时的菜单界面,第二个是激活资源窗口的菜单界面。我们发现,激活资源窗口后,菜单界面多了布局项,具体项目的功能与工具栏的按钮一样,多了个网格的设置项。由于与上面的操作相同,就不解释了,大家看看下面的图!

   

      



★汉化升级
    
果我们已经用使用Visual Localize 对某个软件进行汉化,如(Firehand Ember Ultra V1.12.1),有这个软件的汉化方案文件。现在需要对新版本V1.13.1进行汉化,当然可以新建一个方案,然后利用导入应用程序的短语或导入方案的短语的方法进行汉化。但这样的一些汉化操作信息就会丢失,如对话框的调整等等。我们可以打开旧的方案文件,在方案窗口中,选择方案单击右键


选择重新载入,在下面出现的新的模块窗口中,在新建模块栏,选择新版本的文件。

    我们也可以通过编辑菜单的重新载入模块,实现这操作。
    我们也可以选择方案中的具体模块文件,
单击右键,选择重新载入,在出现的新的模块窗口中,选择新版本的文件。更新单个模块文件!
    
Visual Localize 将自动的保留在以前程序版本中的那些也存在于新版本中的所有已被翻译的文本,这意味着在程序中只有发生实际变化的那部分才需要翻译。
     你剩下的工作就是
翻译剩余的文本行并创建一个已翻译的新版本。

★补充用法

 Visual Localize的字符常数

   字符常量用来排版字符串通过增加一些代表换行或跳格键字符的代码,字符常量总是以反斜杠(/)开始的,下面列出最重要的字符常量和详细说明:

    换行                                                /n
    插入水平跳格键                                      /t
    插入垂直跳格键                                      /v
    退格                                                /b
    回车                                                /r
    换页                                                /f
    报警(嘀嘀)                                          /a
    插入反斜线符号[/]                                   //
    插入问号                                            /?
    插入单引号                                          /'
    插入双引号                                          /"
    字符串界限符:字符串结束符                          /0
    插入字符相当于八进制值 ooo 的ASCII字符集            /ooo
    插入字符相当于十六进制值 hhh 的ASCII字符集          /xhhh 

Visual Localize的快捷键

     Ctrl +  X = 剪切  
     Ctrl +  C = 复制
     Ctrl +  V = 粘贴
     Ctrl +  F = 查找
     Ctrl +  R = 替换
     Ctrl +  S = 保存输入
     Ctrl +  Z = 撤销
     Ctrl +  A = 重做
     Alt +  1 = 激活方案
     Alt +  2 = 激活翻译窗口
     Alt +  3 = 激活资源窗口
     Alt + Ins   = 创建例外 (仅在字典)
     Alt + Enter   = 属性 

★结束语

    
Visual Localize帮助用户翻译资源文件出现的短语:菜单,对话框,字符串表,信息表,版本信息和加速键表。但它不能翻译图像,图标或其他类型的文本,这点它比不上传说中的汉化工具--MS LocStudio,但它的字典功能是比MS LocStudio强大得多!





IP 地址: 已登录   
第 6 楼   2004-7-23, 9:50 上午
wellknow 离线,最后访问时间: 2005-4-8 15:50:32 wellknow



发帖数前10位
超级管理员
职务: 超级管理员
师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,017
精华: 1
发贴: 713
ASP NET Forums2.0 中文版开发团队
Re: 软件本地化与汉化
 

独有曲径可通幽
--------
Language LocalizatorDFM类软件汉化之旅

作者:伟乾  (汉化新世纪)

前言

      自从有人说“聪明的程序员用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的缩写)

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

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


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

汉化操作:
      基本概念了解之后看看如何汉化。
字串的汉化:如果我们选中某表单的“字串表”,我们可以看到以往在exescope中dfm分散的文字信息已经排列在“翻译的文字”栏目下面,easy job!鼠标双击一下某行文字,出现翻译窗口如下:

“默认”下面的小框打了X,表示这句话的翻译以后将使用目前的翻译作为同样文字的翻译;如果你将X清除,左下角的“不自动翻译”就会选中,表示在特定表单中的这句话不是用默认的翻译,你可以利用来处理一些有歧义的文字,但是,一旦再使用自动翻译功能,他又会跟着变,以最后的翻译为默认,所以你还要做一步,看到每行文字前面有个小锁吧?一般都是打开的,用鼠标按一下,关上了,以后这行文字就不会受默认翻译的干扰了。
逐个翻译下去吧,这里可没有人能帮你了。
 

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





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

 

 

 


 

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



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



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

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

★其他用法

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

 




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

激活pos=1属性标识符解释X Font.所有字体名称属性都不显示。XXFont.只显示Font.不在第一列的字体名称属性(如:TabFont.Name)  Font.显示所有字体名属性,包括不在第一列或在第一列的字体名称属性(如
TabFont.Name 、Font.Name)
 XFont.同上,显示所有字体名属性


环境选项:

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

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

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

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

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

 1、当前字典的保存与再利用
如果我们是做一个以前没有汉化过的软件,肯定没有字典可以利用,因此要逐步按照上面的方法来进行汉化,一旦汉化完毕,你就可以拥有一个字典了——每次做新汉化之前,先将L&L目录下的Loc_CHS.trn删除掉或做适当的保存,这样在你汉化当前软件的时候,所有汉化过的内容都会保存到新生成的Loc_CHS.trn;但是,所有的保存动作将与这两个按钮有关:——分别是“保存所有”与“保存文件”;“保存所有”按钮将已经汉化的内容保存入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以上,你可能要在“开始”——“运行”中进行操作),操作如下:


从图中红色圈中你可以看到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,使用“打开”菜单或者按钮,在“文件类型”中选择“所有文件”或者“文本文件:

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

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


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

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

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


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

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

   

这就生成了一个中英对照,并以单字节“,”号分隔的文件.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文件,现在录制隔行整行删除同时首尾添加单字节双引号"的宏命令:
先确认光标放置在首行的最左侧,选择“工具”——“记录”——“记录按键”——出现一个小录音带的光标,表示已经处于录制状态:
键盘输入单字节",键盘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 *未注册*"
.....(省略若干)
现在要对付的就是单字节逗号,:
请选择“搜索”——“替换”或者工具栏中的按钮,出现对话框如下:

 

 

 

 

 

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

"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,如图:

  

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

汉化写入
L&L能够实现的汉化功能基本都介绍到此了,如果你安装了NT系统,恭喜你,当你汉化完毕,你可以用“方案”——“将翻译回写到程序中”或者使用按钮,将直接在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文件:


 

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


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



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

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


原创粉丝点击