最近我正在为我的团队创建一个多语言的wix msi软件包。我在谷歌和stackoverflow上搜索本地化翻译了相当长一段时间,最终找到了一个可以参考的方法: http://www.geektieguy.com/2010/03/13/create-a-multi-lingual-multi-language-msi-using-wix-and-custom-build-scripts/。目前,我只添加了英语和简体中文的支持,以检查这种方法是否适合我。主要的wxs前端部分如下:
<Product Id="B5CB3C6A-A8ED-4308-8ADE-17729FE1FB23" Name="MyProduct" Language="!(loc.LANG)" Codepage="UTF-8" Version="11.51.0027" Manufacturer="My Company" UpgradeCode="D42070C3-43CB-4E2B-9B96-2F8D84A6C8A8">
<Package InstallerVersion="200" Compressed="yes" Languages="1033,2052" InstallPrivileges="elevated" InstallScope="perMachine" />
我正在获取产品的语言属性值,该值从本地化 wxl 文件中获取。现在我有两个文件,一个是 en-US.wxl,另一个是 zh-CN.wxl。在 en-US.wxl 中,我设置 1033,在 zh-CN.wxl 中设置 2052。我还在这两个 wxl 文件中设置了相应的代码页,将 en-US 代码页设置为 1252,将 zh-CN 设置为 936。 在 VS 中构建项目后,我得到了两个 msi,一个在 en-US 文件夹中,另一个在 zh-CN 文件夹中。我使用以下命令创建多语言 msi:cscript WiLangId.vbs zh-CN\MyProduct.msi Product 2052、Msitrans.exe -g en-US\MyProduct.msi zh-CN\MyProduct.msi zh-CN.mst、cscript WiSubStg.vbs en-US\MyProduct.msi zh-CN.mst 2052 和 cscript WiSubStg.vbs en-US\MyProduct.msi。在 cmd 中执行上述命令后,我将最终的 msi 复制到一台中国 win7 系统上进行尝试。问题是,当我双击 msi 进行安装时,第一个 UI 对话框仍然是英文的,但很快就变成了中文。我很抱歉无法在此处发布截图,因为 stackoverflow 要求具有 10 个声望才能发布图片。但我看到的第一个对话框上的文字是“正在准备安装...”,底部右侧有一个“取消”按钮,然后在 2-3 秒后 UI 就变成了中文。是否有人曾经遇到过这个问题?
msiexec.exe
或相关语言资源 dll 中的 系统消息。因此,它被硬编码进系统本身的语言资源中,与你的软件包或其中所含语言无关。 - Stein Åsmul