Wix:通过修改mbapreq.wxl以定制ManagedBootstrapperApplicationHost,在bundle.wxs中本地化bal:condtion

时间:2015-07-07 14:57:50

标签: localization wix bootstrapper

我制作了一个自定义引导程序。我已经为自定义UI定制了mbapreq.thm和mbapreq.wxl。

我的bundle.wxs看起来像这样。

 <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">

  <Payload Name="1031\mbapreq.wxl" SourceFile="de\mbapreq.wxl" />
  <Payload Name="1036\mbapreq.wxl" SourceFile="fr\mbapreq.wxl" />
  <Payload Name="1041\mbapreq.wxl" SourceFile="ja\mbapreq.wxl" />
  <Payload Name="2052\mbapreq.wxl" SourceFile="zh-CN\mbapreq.wxl" />
  <Payload Name="3082\mbapreq.wxl" SourceFile="es\mbapreq.wxl" />
  <Payload Name="mbapreq.thm" SourceFile="mbapreq.thm" />
 </BootstrapperApplicationRef>

<bal:Condition
  Message="!(loc.OSNOTSUPPORTED)">
  (VersionNT >= v6.0)
</bal:Condition>

<Fragment>
<WixVariable Id ="PreqbaThemeWxl" Value="mbapreq.wxl"/>
<WixVariable Id ="PreqbaThemeXml" Value="mbapreq.thm"/>
</Fragment> 

我也在mbapreq.wxl中包含了OSNOTSUPPORTED。

<String Id="OSNOTSUPPORTED">This application is only supported on Windows Server 2003 (32 and 64bit), Windows 2008 (32 and 64bit) and Windows 2008 R2 (Windows 7) or higher.</String>

同样的字符串OSNOTSUPPORTED也为其他语言添加。 我还在make文件中包含了“-loc mbapreq.wxl”。

当我运行我的应用程序时,所有语言的UI都会根据mbapreq.thm进行更改。 但是,即使以其他语言运行应用程序(使用-lang 1031参数),UI也只能按照英语语言反映“OSNOTSUPPORTED”。

所以任何人都可以帮助如何本地化bal:condition ??

1 个答案:

答案 0 :(得分:0)

我认为问题是不正确的变量类型,因为你想找到主题文本
!用于链接器
#用于运行时主题

<bal:Condition Message="#(loc.OSNOTSUPPORTED)">