杉宫竹苑工作室

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

汉化制作补丁哪些事

[复制链接]
发表于 2020-4-9 15:10:17 | 显示全部楼层 |阅读模式

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

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

x
  通常汉化人制作补丁的时候,一般都先自定义了原版文件的安装目录,如果用户更改了原始的安装目录,那么汉化过程中就必须手工确定原版软件的真实安装目录。能不能让补丁智能的判断原版软件的真实路径呢?答案是肯定的。目前的补丁程序中Patch maker 1.2、CoCo Patch、FS Patch等都具备了利用注册表信息判断软件实际安装路径的功能。

  全文使用的研究对象:
  试验对象:Singularity Millennium 5.1(简称sing)
  注册表键值:HKEY_LOCAL_MACHINE\Software\WinAbility\Singularity\Setup,
  Home=C:\Program Files\WinAbility\Singularity Millennium

  Patch maker 1.2的注册表定位
  在pm 1.2中选择"向导选项"标签,右侧排列有"安装目录"的相关选择,最上面的是"默认值",这个就是大家最常使用的目录设置栏;下面分别有两个"可选项":"从注册表获取"、"从.ini文件获取"。

  针对"从注册表获取"分别设定三种实验方法
  1、只设置"默认值"内容(C:\Program Files\WinAbility\Singularity Millennium);
  2、只设置"从注册表获取"内容;
  3、同时设置"默认值"+"从注册表获取";

  结果:
  1、无论sing装在那个目录,都只显示默认设定的路径,如果安装在其他目录,补丁程序判断目录无效,需要手工定位。如果没有安装原版,情况相同。
  2、无论sing安装在什么目录,都能自动显示正确的路径,如果没有安装原版,目录栏留空,强行执行将提示错误(补丁程序在当前盘符如E:\下搜索,提示文件不存在);
  3、无论sing安装在什么目录,都能自动显示正确的路径,如果没有安装原版,目录栏显示设定的"默认值",强行执行判断目录无效;
  三种方法所生成的大小都是127,xxxKB,相差不大。

  结论:
  推荐使用第二种方法,在制作补丁时,在"向导文字"/"目录"下面添加文字如:"★★如果目录栏空白,表明原版软件没有安装,或者没有使用常规的安装方法。",这样既可以避免不必要的汉化错误,同时可以提醒用户注意原版的按装正确性,相应的也减少由于用户不了解原版安装要求最后却将汉化不正确的结果怪罪到汉化人身上的几率和投诉。

  pm 1.2中注册表信息的具体设置:
  原始的信息是:HKEY_LOCAL_MACHINE\Software\WinAbility\Singularity\Setup,子键值为home(Home中包含实际路径)。
  在"根键值"下拉菜单选择"HKEY_LOCAL_MACHINE"--在"键值"中输入"Software\WinAbility\Singularity\Setup"(注意斜杠)--在"子键值"中填写home,即可。

  关于Funduc Software Patch的注册表定位
  在Fspatch制作界面的右侧,"选项"按钮进入相关设置:"安装路径"用于设定默认的原版安装路径;"注册表指定路径"用来确定软件的注册表键值。

  1、使用默认"安装路径";
  2、使用"注册表指定路径";
  3、"安装路径"+"注册表指定路径";

  结果:
  1、原版正常安装可以识别路径,并提示发现程序请求确认,确认后随即开始汉化。原版安装在其他目录或者没有安装,显示当前所在路径,不作任何提示;需手工定位目录。
  2、无论安装在哪里都可以识别,随即正常进行汉化;
  3、无论安装在哪里都可以识别,随即正常进行汉化;

  结论:
  推荐使用方法2。
  注册表信息的填写格式如:HKEY_LOCAL_MACHINE\Software\WinAbility\Singularity\Setup\home,需完整填写。
  注意:必须在"选项"中选择"Windows 95/NT[32位]风格补丁"才能实现注册表定位功能。

  CoCo Patch的注册表定位
  CoCo Patch的定位方式最为丰富,因此不作对比试验,单纯讲解有关注册表定位的操作步骤。
  首先在新建的方案中,第一个文件决定总的目录定位,其他的一般选"之前目录值"(多重目录升级的不在此列)。选中第一个文件,右侧"目录"下拉菜单选择"注册表键值",随之下面出现有关的栏目:首先是"主键值",这里CoCo Patch使用的是缩写,"HKEY_LOCAL_MACHINE"对应的是选择"HKLM"(其他类推);"副键值"中填入"Software\WinAbility\Singularity\Setup"(注意斜杠),"键名"中填写"Home",即可。

  实际汉化中,补丁在显示完相关信息后,随即自动确认正确的原版目录并马上开始进行升级。(没有任何提示,可以说是智能,也可以说安全性不足)

  通过以上补丁工具的测试,最理想的方案是选择Patch Maker,并使用第二种方法。除了功能易于实现,还因为该软件允许制作者提供更多的信息提示给最终用户,具有人性化的特点。

  关于原版软件安装信息在注册表中的提取:
  由于对注册表不算太熟悉,以下内容只是抛砖引玉。
  1、HKEY_LOCAL_MACHINE\Software\,通常的软件都在在这里建立自己的键值,一般是逐级建立不同的键值,比如WinAbility\Singularity\Setup,就有三重级别,Home属于setup下面的子键;由于各个软件情况不同,这里查到的键值不一定就包含安装路径,具体的子键值需自己判断。
  2、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths,很多软件都会在这里为主程序建立键值。比如ACDSee,在HKEY_LOCAL_MACHINE\Software\中有键值,但没有指定ACDSee.exe的路径,但是在这里专门为ACDSee.exe建立键值指定路径。类似的软件还有Opera、WinZip等等,相当多的软件会在这里为主程序指定路径。所以,这里是重点盘查对象。

  如何快速获取完整键值名称:
  启动regedit,找到有关内容(此处为WinAbility\Singularity\Setup),鼠标停在键值上如"Setup",右键菜单选"复制键名",剪贴板中已经包含"HKEY_LOCAL_MACHINE\Software\WinAbility\Singularity\Setup"。

  重点:
  实际运用中,关键是在注册表中判断出含有软件安装路径的键值,这是第一个关键所在。不同软件有自己不同的设置,请具体问题具体分析。
  第二个重点是,不同的补丁软件有关注册表信息的填写格式不同,需区别对待;上面已经针对性地给出具体的填写格式,如果有新的软件请自行试验来作判断。
  (简单实验方法:以上述软件为例,将"home"中的路径稍作修改,看看生成的补丁是否随之反映出有关修改,就知道填写的格式是否正确。)

  在实际生活中,部分用户贯彻"NEXT再NEXT,继续再继续"的所谓软件安装"指南",对软件的安装路径不甚了了;然后部分"指南"又提到:系统软件装C盘,应用软件装D盘,游戏装E盘!安装目录用户倒是会自己更改了,但是改完后又未必记得住,找的回。另外,在汉化人方面,不少人愿意费心思在压缩包中详细说明如何进行汉化升级,但是往往实际用户未必会懂,或者未必会看,结果反而可能惹来投诉,哎,红日不照我精诚!与其如此,不妨将心思花多一点在补丁制作上面,简便汉化用户操作程序,保证汉化正确执行,使补丁更加智能化;既方便用户,也减少投诉,一劳永逸,何乐不为。

  既然大家都承认汉化是一件利人的事情,因此我们制作补丁的时候,不妨就将利人的精神贯彻到底。

附录:
  辅助判断功能:
  实际汉化升级中,除了需要定位目录,为了保证汉化的准确性,补丁制作人还希望判断该目录是否包含正确的升级对象。因此,还需要判断升级对象的功能来保证正确汉化。
  这里,就谈到主程序判断功能。以Sing Me 5.1为例,需要重点汉化的主程序是sing.exe,只要该程序存在且正确,即使其他程序不存在,忽略掉仍能保证汉化后的基本运行。需要判断的因素有:程序是否存在;版本或大小是否正确。
  既判断存在也判断版本:Patch Maker 1.2;
  只判断存在:PatchWise Maker(关子)、FS Patch;
  上面所特指的是允许指定主程序进行判断的补丁工具。WinPatch和大部分的单个文件补丁工具都可以判断存在或大小,但是WinPatch不能指定主程序,一旦原版安装时用户选择了自定义安装而导致部分要汉化的文件缺失时,或者原版属于升级安装,部分文件保留旧版文件,WinPatch只要发现有一个文件对不上,就只会作一件事情——什么都不作!至于其他的单个文件补丁工具不在本文讨论之列。

  Patch Maker 1.2的操作:
  假设确定Sing.exe为主程序判断对象,在"文件"标签左侧列表中单选该程序,右下方"如果尚未安装"选"致命错误";"如果版本未知"选"致命错误"。其他需要汉化的程序可根据情况,可以选择"忽略"。汉化过程中,一旦sing.exe不存在或者版本有差异,整个安装程序终止。如果sing.exe判断正确,另外的某个程序有误,如果选的是"忽略",则其他程序继续被汉化,只留下该程序被忽略。
  PatchWise Maker的操作:
  需在Update.ini中填写FileName=sing.exe,否则汉化程序无法进行。但是不判断版本,只要存在即可汉化。
  FS Patch:在"选项"/"指定文件"中填写sing.exe,但是不会影响最终的运行。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 12:53 , Processed in 0.107391 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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