我有两个项目:
InstallerUILibrary.wixlib -包含一个定制的WIX对话框和UI片段,这样我就可以重用它和对话框使用的可本地化文本。SomeInstaller.wixproj -一个安装程序项目,它引用在安装程序产品中使用UI的InstallerUILibrary.wixlib。我已经在InstallerUILibrary.wixlib中将文本本地化,条目如下:
<Control Id="DiskCost" Text="!(loc.InstallDirDiskCostDlgDiskCost)">并在InstallerUILibrary.wixlib中包含了类似于以下内容的InstallerUILibrary.wixlib:
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="InstallDirDiskCostDlgDiskCost">Disk Cost...</String>
</WixLocalization>然而,SomeInstaller未能看到wxl文件,因此当可本地化的文本被破坏时,它不会生成。
这是意料之中吗?我在引用我的项目文件时发出了一些嘘声吗?有没有什么地方的开关能让一切正常运转呢?
我是否必须在每个消费项目中包括en-us.wxl?
发布于 2016-10-26 09:08:35
根据经验,我发现您需要向安装程序项目中添加至少一个本地化文件。这不需要包含任何字符串,只需要包含WixLocalization元素。
如果您没有任何.wxl文件,那么“区域性要构建”文本框将被只读。但是,一旦你添加了一个,这似乎会促使它采取一致行动,并应用,一些您要求的本地化。
然后,您可以做的是“建议”它构建一个不变的区域性版本的安装程序回到您所选择的语言。添加以下内容
neutral,en-us;到项目属性中要生成文本框的区域性,该文本框现在应该是可编辑的。
总之,我的解决方案如下所示:
- Localization
- customDlg\_en-US.wxl - Contains the strings used in CustomDlg.wxs Culture="en-US".
- customDlg.wxs
neutral,en-US;- Localization
- invariantCulture.wxl - Contains a single empty WixLocalisationElement with `Culture = ""` (empty string)
- Product.wxs - references CustomDlg
如果有人有一个更整洁的解决方案,那就太好了。
有些阅读我发现只有轻微的用处:
https://stackoverflow.com/questions/40243748
复制相似问题