在多语言软件的打包中,我们常常需要将大量的string tables导出,翻译,导入。使用UI界面来操作比较费时。在InstallShield中,提供了Automation Interface使用VBScript来帮助我们使用命令行的方式批量处理这样操作。
打开InstallShield的帮助文档,搜索“Importing and Exporting String Tables Using the Automation Interface“,可以看到一段示例代码。以下以InstallShield 10.5为例。
使用这段代码进行导入是可以正确运行的,但是导出代码时,无论如何修改语言的language identifier,都得到一样的结果。在帮助文档中查询代码中使用到的ExportStrings函数,提示说如果想要导出别的语言的string tables,需要将工程的默认语言修改为目的语言,执行导出代码之后再改回去。工程的默认语言属性是ActiveLanguage,因此,我们需要在导出string tables的代码之前先修改属性ActiveLanguage,这样就能正确导出所需要的语言的string table。代码如下:
同时,需要注意的是,每个版本的InstallShield其ISWiProject对象的建立名称都是不一样的,一般与版本号有关(代码2第42行)。
即其中的IswiAuto1050需要根据不同的版本进行修改,具体可以在帮助文档中查询Importing and Exporting String Tables Using the Automation Interface得到。