如何覆盖WiX默认字符串而不在每个.wxl文件中重复它们?

时间:2017-02-21 23:20:10

标签: wix

我希望使用我自己的多种语言的单一翻译来覆盖默认的对话框标题字符串。我可以覆盖每个语言环境文件中的每个字符串,如下所示:

<!-- File: 1041.wxl -->
<WixLocalization Culture="ja-jp" ... >
    <!-- My standard title for all the dialogs -->
    <String Id="Installer_Title">[ProductDisplayName] jpjpjp</String>

    <!-- Reuse the string above to override defaults -->
    <String Id="BrowseDlg_Title">!(loc.Installer_Title)</String>
    <String Id="CancelDlg_Title">!(loc.Installer_Title)</String>
    <!-- Etcetera -->
</WixLocalization>

但我不想将此列表添加到我提供的每个语言环境文件中。我想要包含一个我想覆盖的所有字符串的文件,如下所示:

<!-- File: 1041.wxl -->
<WixLocalization Culture="ja-jp" ... >
    <!-- My standard title for all the dialogs -->
    <String Id="Installer_Title">[ProductDisplayName] jpjpjp</String>

    <?include AllLanguages.wxl ?>
</WixLocalization>

包含的文件:

<!-- File: AllLanguages.wxl -->
<Include>
    <String Id="BrowseDlg_Title">!(loc.Installer_Title)</String>
    <String Id="CancelDlg_Title">!(loc.Installer_Title)</String>
</Include>

不幸的是,当我构建它时,在语言环境中看不到AllLanguages.wxl中定义的字符串,并且不会覆盖默认值。我尝试了一个类似的实验,在对话框中添加一个唯一的字符串id并进入包含的文件,并看到&#34;错误LGHT0102:本地化变量!(loc.xyzzy)未知。请确保定义变量。&#34;

我尝试将字符串放入&#34;匿名&#34; &LT; WixLocalization /&GT;元素,但没有成功。

连连呢?这可能吗?

1 个答案:

答案 0 :(得分:1)

不,.wxl文件不支持<?include?><?include?>是编译时概念,.wxl文件在绑定时(或运行时)处理。