查看: 71404|回复: 136
收起左侧

[已解决] 浅谈卡巴安装包(MSI)的汉化、修改与封装(全部重写、4楼PDF下载)(5.15更新)

  [复制链接]
听雨醉
发表于 2008-4-16 09:11:13 | 显示全部楼层 |阅读模式
浅谈卡巴安装包(MSI)的汉化、修改与封装

作者:听雨醉    更新时间:2008-05-15    出自:卡饭论坛



【写在前面】

卡饭们都知道,目前网络上流行一些集成版的卡巴安装包。这种安装包的最大特点是:安装过程全程中文、安装后即为中文版。这给许多想尝鲜最新卡巴版本而英文又不好的卡饭们带来了福音。笔者经过近一段时间的研究与摸索,终于对这项技术有了初步的了解和认识,并积累了一些使用体会。“独乐乐不如众乐乐”,不敢藏私,在这里愿与大家共同学习和探讨一下。欢迎拍砖~!

第一章  MSI 的修改与封装


有关MSI文件的修改与封装,曾经有很多人(包括笔者)都对此迷惑过,无从下手。但今天我们介绍的这种方法却是超简单——只需晃动几下鼠标、修改一处注册表即可完成。因为我们所使用的工具超强悍——InstallShield(以下简称IS)。IS是Macrovision软件公司的产品之一,它是安装工具领域事实上的标准。IS强大灵活而又简单易用,首次使用的开发者将发现它非常容易创建安装程序,而高级用户也将发现它的潜力与灵活性,非常适合开发复杂的软件安装。

在这里,我们以修改KIS8.0.0.324为例。

1、添加文件

1)运行IS,打开我们汉化好的MSI文件。点击左侧窗格的“文件和文件夹”,右键“目标计算机文件夹”窗格中的内容,勾选“显示组件”。如图示。

图片1.png

图1  勾选“显示组件”


2)先选择添加到功能的组别(下图中②),然后拖曳汉化好的中文目录到loc上(下图中③)。

图片2.png

图2  添加汉化好的语言目录到MSI中


■ 提示:

有关如何汉化卡巴的语言资源在这里笔者就不赘述了。因为有位很“著名”的卡巴汉化人PPWangS已经写了这方面的教程(分初级、中级、高级篇),菜鸟、老鸟皆宜,有兴趣的朋友可以看看。(PP,广告费哦~)

初级篇:http://bbs.kafan.cn/viewthread.php?tid=49921
中级篇:http://bbs.kafan.cn/viewthread.php?tid=50720
高级篇:http://bbs.kafan.cn/viewthread.php?tid=51520&page=1&extra=page%3D1#pid553628

3)这时,会弹出对话框要求“选择媒介位置”。请勾选“在一个新的CAB文件中”及其下面两项。

图片3.png

图3  勾选“在一个新的CAB文件中”及其下两项


4)OK,添加完成。(当然你也可以在loc目录右键“新建文件夹”,然后添加文件,结果是一样,不过它没拖曳来得方便~)

图片4.png

图4  添加语言目录完成


■ 提示:

“AllOtherFiles”这个名称是在添加chs目录时由IS自动生成的(如同我们在Windows下新建目录时自动生成的“新建文件夹”、“新建文件夹 (2)”、“新建文件夹 (3)”……一样)。你可以更改为其它名称,当然也可以不改。改动左侧的“AllOtherFiles”名称,右侧窗格随之呼应改变。


2、替换文件

在这里,我们以替换skin.ini文件为例。

首先,将MSI中的skini删除;然后,将修改好的skin.ini拖曳到这里即可(出现“选择媒介位置”时同样勾选“在一个新的CAB文件中”及其下面两项)。其它诸如声音、帮助、用户协议等文件的替换,可以到它们的对应的目录中找到,如法替换。

图片5.png

图5  替换文件(以skin.ini为例)


3、注册表的修改

点击左侧窗格的“注册表”,依次找到图中所示键值,将其修改为我们前面所添加的中文语言目录的名称即可。

图片6.png

图6  修改注册表中的默认语言目录名称


4、全部完成后,保存MSI即可。


■ 提示:

为什么我们要先修改MSI,然后再进行安装界面的汉化呢?根据实践,笔者的理解是这样的:
有两个制作流程:
        
1)进行修改与封装→保存MSI→汉化安装界面→保存MSI并完成;
2)汉化安装界面→保存MSI→进行修改与封装→保存MSI并完成。
        
相对于安装界面的汉化来说,MSI文件的封装很简单。封装后,在汉化安装界面之后,还要在虚拟机中测试MSI,以修正界面汉化的不妥之处。那么如果按照流程2的做法,则有可能需要再次封装,有点麻烦。再者退一步讲,按照流程1的做法,即使你这时将界面汉化完了,又想对已封装入MSI中的语言做更新,依然可以再次修改啊。因为两个大步骤之间没有直接联系。故笔者推荐应先处理“内科”,然后再解决“外科”。

[ 本帖最后由 听雨醉 于 2008-5-15 23:23 编辑 ]

评分

参与人数 2经验 +15 收起 理由
kaspfans + 5 不错
孤独的我 + 10 精品文章

查看全部评分

听雨醉
 楼主| 发表于 2008-4-16 09:11:37 | 显示全部楼层
第二章  安装界面的汉化


这里的汉化,即指对MSI安装过程中的交互界面进行汉化。汉化其实并不难,只要你略懂E文就行。所使用的工具是PassoloOrca。Passolo是一款著名的、功能强大的软件本地化工具,专业、业余汉化爱好者皆适合;Orca是Windows Installer SDK中提供的表编辑工具,它可以直接编辑Windows Installer程序包 (.msi) 文件。

■ 特别提示:

“编辑 MSI 文件可能会导致严重的问题”(微软“危言耸听”语),故建议:
1)先将原MSI文件备份,以防不测(这也是经常鼓捣软件者的一个应有的习惯);
2)汉化过程中要谨小慎微,不要盲目翻译。因为汉化过度可能会造成整个MSI文件报废,徒劳无功,只好从头再来。

第一节  使用Passolo进行汉化


Passolo虽然是一款专业级的汉化工具,但它并不需要使用者有多高的专业知识。初试用了下,感觉很不错。笔者这样的编程白菜都会使用,您还有什么理由没信心看懂呢?Let's go!

号外:笔者初次使用Passolo,生疏得很,敬请高手指教:)

1、首先打开Passolo,会跳出欢迎对话框,选择“创建新方案”。方案设置具体如图:

图片7.png

图7  方案设置

2、确定。打开Passolo界面,双击中文字串列表,创建翻译列表。

图片8.png

图8  创建翻译列表

3、打开中文(简体/中国)字串列表后,Passolo会自动从MSI中提取出它认为可以汉化的标准资源来供我们翻译。

4、我们先来设置一下Passolo的窗体布局,以便于使用。查看→显示资源,查看→排列可停驻的窗口。然后,对照英文(美国)列的内容,点击中文(简体/中国)列的内容进行编辑。如果编辑有误,可以通过“编辑→撤消”来恢复刚才的操作,也可以右键“取消翻译”,非常方便。

图片9.png

图9  对照英文进行翻译,非常方便

■ 提示:

在字串列表中,不同的颜色代表不同的含义,具体为:
红色:未翻译;黑色:已翻译;绿色:自动翻译;蓝色:供复审。

5、Passolo是聪明的。在遇到重复翻译的词句时,它会提示你。点击“选项”可以进行细化设置。

图片10.png

图10  有重复翻译的词句时Passolo会提示(默认设置)


6、在汉化期间,还可以点击Passolo右侧主窗格的工具栏上的“过滤”来帮助我们过滤翻译,将所有应翻译的标准资源全部汉化。

图片11.png

图11  “过滤”功能也不错


7、翻译好后,“翻译→检查所有翻译”,让Passolo帮你检查一遍作业完成得如何吧。如果找到错误,Passolo会在下方的输出窗口显示出来。我们只要在其中的错误项目上双击,便会转到出错的地方,然后进行修改即可。

图片12.png

图12  Passolo检查翻译错误

■ 提示:

PASSOLO可以为你找出以下错误:
加速键重复;定义快捷键的符号“&”丢失;翻译文本丢失;字符串前后空白不一样;文本不适合控件尺寸;控件与控件重叠;控件超出对话框边界;等等。

8、辛辛苦苦汉化完后,难道就不想再次利用汉化资源吗?那么,保存一个字典是不错的选择。生成字典的方法很简单:文件→导出字典→Passolo字典制作程序,然后按提示操作即完成字典的制作。(如何利用之?后面讲述。)

图片13.png

图13  导出字典

9、最后,“字串列表→生成目标文件”,你会发现:在源MSI的目录下已生成一个新的文件夹,而我们汉化好的MSI已经乖乖地躺在那里了。

好了,Passolo初级使用就是这样。因为笔者也是这方面的菜鸟,所以就不班门弄斧了。如有不对之处,还望请高手不吝赐教!

■ 特别提示:

在汉化时,一定要注意有些内容是不能翻译的,否则会造成MSI文件损坏而无法使用。那么到底如何区分呢?笔者的体会有二:
1)凡[]、{}等符号中的内容是变量,不要翻译。
2)如连在一起的两个英文单词、不合常理无法拿准的词句,不要翻译。


★ 使用Passolo汉化卡巴安装包(MSI)的优缺点:

优点:中、英文对照翻译,非常直观;可以保存汉化进度,以便下次继续。
缺点:它提取出来的标准资源不全,还需要使用其它工具进行二次翻译。

[ 本帖最后由 听雨醉 于 2008-5-15 22:19 编辑 ]
听雨醉
 楼主| 发表于 2008-4-16 09:11:44 | 显示全部楼层
第二节  使用Orca进行汉化


使用Orca汉化MSI文件就比Passolo简单多了,因前它毕竟不如后者是专业级的本地化工具,它只可对MSI中的表进行简单的修改。我们这里还以KIS8.0.0.324为例。

1、使用Orca打开安装文件kis.en.msi,其界面如下:

图片14.png

图14  Orac界面


在这里,笔者简单说一下Orca的使用方法(因为比尔盖茨比我讲得明白多了:http://support.microsoft.com/kb/255905):

如上图,左窗格中是MSI的所有表,右窗格中是不同的字段列,双击字段可编辑。将某一字段中的英文翻译成中文,也就完成了安装界面中某一部位的汉化。以ActionText表为例给大家演示一下。

在ActionText表中,右窗格的字段列有三列:

1)Action(动作)列。它是安装过程中操作指令的代号。它不会显示于软件与用户的交互界面,属于软件“内部”的事,我们无需管它(其实是我也不懂,嘿嘿……)。
2)Description(描述)列。它是Action列进行时呈现给用户的交互界面上的文字解释。所以,这一列我们要汉化。
3)Template(模板)列。作用与2)差不多,也要汉化。

2、双击Description列的内容编辑,将英文词句翻译成汉字就行了。是不是很简单呢:)

图片15.png

图15  汉化时注意有些地方是不能翻译的


当然,这只是ActionText表的字段列,其它表的字段列并不完全相同。那么到底哪些字段可以翻译,哪些不可以翻译呢?笔者认为有二:

1)一是查看状态栏。当点击某字段时,在底部的状态栏中会显示其“属性”。若有“可本地化”字样,一般就表示其可以翻译。
2)二是跟着感觉走。请抱歉笔者出此下策。没办法,有时白菜也是一种无奈……高手见笑了-_-||如果你懂点儿英文,比如上面,一看Action列就知是不能翻译的(两个英文单词连在一起是不能翻译的),Template列不好判断,而Description列一般就认为是可以翻译的。虽然是跟着感觉走,但对于拿不准的还是不要轻易下手,先搞其它的再说。

实践证明:用Orca打开MSI后,其中需要我们翻译的表如下(其它的表不用翻译):

表  名
汉化工作量
备  注
ActionText
很多
安装界面中的"动作"提示
Control
很多
大部分安装界面中的元素
CustomAction
很少
(略)
Dialog
很少
(略)
Directory
很少
(略)
Error
很多
(略)
Feature
较多
自定义安装中的功能简介
Property
很少
版本信息等
RadioButton
很少
(略)
ServiceInstall
很少
卡巴在系统服务中的简介
Shortcut
很少
开始菜单中卡巴的快捷方式
UIText
较多
自定义安装中的组件说明

■ 特别提示:

1)诸如[1][2]...等[]、{}中的字符是变量,不要翻译。甚至保持原英文中的标点符号(句号、感叹号、句中的逗号除外,它们使用全角字符会更美观)。
2)有的表中,即使是“可本地化列”的内容也并非每个字段都要翻译。
3)翻译时要融会贯通,总揽全局,这样翻译出来的语句才会更准确。
4)可以参考卡巴官方的MSI安装包进行翻译,以免汉化过度。


3、替换安装界面中的“最终用户许可协议”

1)首先,使用Word或Wps等文字处理软件打开已翻译好的“最终用户许可协议”,甚至进行一下简单的排版,然后保存为rtf格式,如license.rtf。

2)然后,使用Orca打开msi文件,转到Control表,在右侧窗格中找到如图的行(Text列的内容是以{\rtf1\}开头),在该行的Text列右键,“导入文本文件”,导入刚才的license.rtf即可。(就是乱码,不用管它)

图片16.png

图16  导入license.rtf,完成安装界面中《最终用户许可协议》的替换


★ 使用Orca汉化卡巴安装包(MSI)的优缺点:

优点:可以处理任何想要修改的表,包括一些个性化设置。
缺点:没有中、英文对照,翻译时直接在原英文内容上修改,有些不便;没有撤消功能。

[ 本帖最后由 听雨醉 于 2008-5-15 22:23 编辑 ]

评分

参与人数 1技术 +1 收起 理由
曲中求 + 1 精品文章

查看全部评分

听雨醉
 楼主| 发表于 2008-4-16 09:11:59 | 显示全部楼层
第三章  安装界面的汉化更新


在第一章中,我们已经掌握了如何汉化MSI的安装界面。但有时这个安装界面上的内容亦会有变化,难道我们要将上述操作再进行一遍吗?哦NO,当然不是,否则那岂不是太傻了吗?在本章中,我们将一起探讨如何对MSI的安装界面进行汉化更新。

【注】笔者认为本章很有代表意义,因为即使卡巴的安装界面不会经常变动,但我们可将此法应用到其它软件的汉化更新上,以之举一反三,触类旁通^_^

第一节  使用Passolo进行汉化更新


其实讲到这里,我们还只是了解了Passolo功能的一些皮毛而已,它的强大功能远远不止这些。下面,我们就一起来探讨一下如何使用Passolo对软件汉化进行更新(这可是它的拿手好戏哦)。

一、字典的妙用(推荐)

在本章第一节的第8步中,我们讲了如何在Passolo中生成字典。那么在这里,我们便可以利用字典来更新汉化新的卡巴版本。

1、首先运行Passolo,创建方案,打开KIS357.MSI。
2、工具→字典,添加我们先前保存过的字典(gol文件)。

图片17.png

图17  添加新字典

■ 提示:
Passolo只优先使用位于字典列表最上方的那个字典。所以如果你有多个字典,把你认为最权威的那个放在最上方,进行一次自动翻译。然后把第二重要的上移,自动翻译。依此类推。

3、工具→选项→自动翻译。对字典中重复出现的内容等选项可以进行个性设置。

图片18.png

图18  自动翻译选项

4、翻译→自动翻译...。少顷,Passolo会自动翻译好所有匹配的内容。

图片19.png

图19  开始进行自动翻译

当然,也可以逐个进行自动翻译:点击某内容,右键→自动翻译字串(或直接按快捷键F8)。

图片20.png

图20  逐个进行自动翻译

5、翻译完成后,“字串列表→生成目标文件”,OK!


二、“旧版”的妙用

这里的“旧版”,是指我们以前汉化过的旧版本软件。在这里,我们以使用汉化好的KIS324来更新KIS357为例。(呵呵,虽然跨版本有些大,但是我们只是讲方法,这个方法的原理是一样的)

1、首先运行Passolo,创建方案,打开KIS357.MSI。

2、字串列表→扫描目标文件(校准),选择以前汉化过的KIS324.msi。


图片21.png

图21  选择以前汉化过的MSI进行校准

3、确定,OK。现在看看,Passolo已经帮你自动翻译好了所匹配内容,不匹配的自动忽略。赶快“字串列表→生成目标文件”吧~

图片22.png

图22  这个“校准”功能真是太方便了


三、字典和“旧版”的优势对比

在没有碰到字典之前,你可能会对“旧版”青睐有加;但如果使用过一次字典的话,“旧版”的魅力就所剩无几了。

1、字典翻译的优劣势:

优势:翻译准确,不容易出错,可操控性强。
劣势:翻译速度慢。
方案:暂无。鱼与熊掌不可兼得。

2、“旧版”翻译的优劣势:

优势:翻译速度超快。
劣势:如果两个版本的某一内容很相近的话,使用旧版翻译时会出错。

图片23.png

图23  Property表中的某些内容相近,“旧版”翻译匹配出错


方案:锁定易翻译出错的内容。(右键→设置锁定)

但是,这样毕竟麻烦,也不完全。万一哪个易出错的内容没有锁定……所以,笔者还是推荐使用字典进行汉化。使用字典汉化时,若遇到相近内容,Passolo会根据匹配率提供多个翻译结果供我们选择。建议大家平时注意多积累一些翻译好的字典,这样找到的匹配翻译就会更多、更准确。

■ 提示:

机器自动翻译的好处在于:利用字典或以前的Passolo方案可以快速对新版本进行汉化更新,效率非常之高。但需注意的是机器翻译也并非万能的!因为有时候同一个单词在不同的软件甚至在同一软件的不同位置所代表的含义都是不同的,不要一味的采用字典翻译而忽视了汉化的质量。高手们推荐用“资源重用”可规避这些问题,学无止境ing……

第二节  使用Orca和BC进行汉化更新


但是前面我们已经讲了,有的表在Passolo中没有被提取出来(对照前面《需要翻译的列清单》,发现CustomAction表没有被提取),所以没法翻译。我们还需要使用Orca来进行二次翻译。那么现在要更新汉化,应该如何做呢?

1、使用Orca打开kis324.msi,表→导出表,导出需要翻译的表。Kis357.msi亦如此。

图片24.png

图24  导出需要汉化的表

2、使用Beyond Compare对两者导出的表进行对比。BC是一款绝佳的文件夹和文件对比工具,可以很方便地对比出两个文件夹或者文件的不同之处。

图片25.png

图25  使用BC比对两个目录中的文件

3、确定。打开BC主界面,双击可以打开要对比的文件。(点击“查看→图例”了解色别意义)

图片26.png

图26  双击打开要对比的文件

4、打开后,两个文件的不同之处一目了然。

图片27.png

图27  两个文件的不同之处一目了然

5、将CustomAction表更新完后,用Orca打开未完工的kis357汉化版,“表→导入表”,“替换”其即可。

图片28.png

图28  替换原来的CustomAction表


■ 特别提示:

1)其实在这里笔者省略了一步。那就是:要先将kis324英文版的CustomAction表,与kis357英文版的比较。然后,我们才能将kis324汉化版的CustomAction表与kis357汉化版的比较,以知道它哪里有变化。因为这些步骤和上面的1至4步骤一样,所以英文版的比较笔者就没再讲。大家在实际操作中请不要省略这一步。

2)在CustomAction表中,需要翻译的内容不多。这个表描述的是MSI安装过程中因手工安装所出现的一些可能的错误提示。但需注意的是:在BC中修改不如Orca中和Passolo方便。因为BC不能显示字段列,而是显示行。所以,在修改时要注意不要改动行中的变量和制表符(不是空格符),以及非“可本地化列”中内容。

图片29.png

图29  并非所有不同之处(红色处)都需同步


6、上述工作完成后,另存为新的MSI文件。为了保险起见和验证汉化质量,我们还应在虚拟机(如VMware或VirtualBox)中将其测试一遍。OK,至此,一个“安装过程全程中文、安装后即为中文版”的卡巴安装包便诞生了!


【写在最后】

其实在此之前,笔者已完成了一篇这样的文章。但是在随后的汉化更新中发现使用此方法封装的卡巴安装包死活无法安装。折腾了很久,甚是郁闷和奇怪!后幸遇高人指点,遂几日潜心伏案终成此文。别看笔者下笔诵千言、啰里啰嗦讲了这么多,其实在实际操作中很简单的。所以,勤动手、多实战才是王道。谨以拙文抛砖引玉,希望能给有此兴趣的卡巴汉化者一点小小的帮助。同时也敬请汉化高手指正纰漏之处,不断完善,以免误导大众。
        
*******************************************************************************************************************************

【软件下载】
Passolo:http://www.hanzify.org/index.php?Go=Show::List&ID=11435
Orca:http://www.hanzify.org/index.php?Go=Show::List&ID=11122
Beyond Compare:http://www.crsky.com/soft/2975.html
InstallShield 2008破解版及中文语言包:
http://samblg.spaces.live.com/Blog/cns!CC533E737A775E64!302.entry

【参考文献】
Passolo教程:http://61.185.81.124/attachment/49_30953_ae6517930feb459.chm

【特别致谢】
莫尼卡、shiri、司机123、参考资料的原作者及提供者,以及所有帮助和支持我的朋友们

*******************************************************************************************************************************

【本帖PDF版下载】

PDF阅读器(迅雷下载):thunder://QUFodHRwOi8vd3d3MS5hbmt0eS5jb20vMDLUwi9Gb3hpdCBSZWFkZXIucmFyWlo=

[ 本帖最后由 听雨醉 于 2008-5-15 23:23 编辑 ]

浅谈卡巴安装包(MSI)的汉化、修改与封装.rar

1.05 MB, 下载次数: 1978

评分

参与人数 1魅力 +1 收起 理由
我爱舒畅 + 1 再次阅读,仍收获不小

查看全部评分

yonggang
发表于 2008-4-16 12:30:56 | 显示全部楼层
谢谢分享,很好的教材。收藏了  期待你的下篇了 !

[ 本帖最后由 yonggang 于 2008-4-16 12:38 编辑 ]
laolaoliu
发表于 2008-4-16 13:39:14 | 显示全部楼层
好文。不过近来发现封装版的有一定的问题,不如包包好用,
szaft
发表于 2008-4-16 13:52:52 | 显示全部楼层
太有用了。谢谢了。先顶了再回来慢慢学习!
sexing
发表于 2008-4-16 15:02:31 | 显示全部楼层
先回帖 ,再仔细看内容,谢谢
jack518
发表于 2008-4-16 15:12:29 | 显示全部楼层
感谢分享汉化经验,赞一下
change_018
发表于 2008-4-16 15:25:37 | 显示全部楼层
好的帖子需要收藏下来
慢慢欣赏
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-3-12 14:06 , Processed in 0.156108 second(s), 21 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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