[Wix 3.9]如何为多种语言创建一个本地化的exe(bootstrapper)

Geo*_*ese 3 wix wix3.9

我创建了一个wix bootstrapper应用程序,它包含两个msi包.我想本地化我的boostrapper应用程序.我的目标是本地化我的bootstrapper应用程序,它应该是与系统语言相关的应用程序.意味着它应该是所有语言的单个exe.我想支持以下语言,

  1. 美国英语
  2. BZL港口
  3. 国际机场.西班牙语
  4. FR
  5. GR
  6. 俄语
  7. 简体中文
  8. J.P,
  9. KR,
  10. 泰国
  11. 阿拉伯,
  12. 繁体中文

我的第一级研究,我理解需要有效负载文件,用于在引导程序中应用本地化,以自动应用UI翻译字符串的本地化.我为3种语言添加了3个有效负载文件,如英语,frnch和俄语.我在构建完成后得到了一个exe.在这里,我尝试在bal:WixStandardBootstrapperApplication标记中手动选择LocalizationFile文件.所以我得到一个.exe它应该只用那种语言.如果我需要另一个用于其他语言的exe,需要更改LocalizationFile值并再次构建它.我想要一个根据系统语言调用的exe.

我有以下问题,

  • 当我使用有效负载文件时,如何根据系统语言启动设置,即系统语言是Fr,然后运行安装文件,设置UI字符串应该翻译成法语?可能吗?如果是这样,怎么样?
  • 如何在系统语言中翻译bootstrapper中的Bundle Name?
  • 如何在msi包中翻译与系统语言相关的DisplayName名称?
  • 这里我的msi包还包含很少的字符串,是否需要
    为每种语言添加翻译的字符串..我为每种语言添加了翻译的字符串.构建之后,会看到每种
    语言的不同.msi文件.然后我手动选择了
    boostrapper链中每种语言的msi包的SourceFile .这太难了.有没有其他选项可以动态选择msi包的系统语言,如果有,怎么样?

请指导我.

问候,

乔治

Geo*_*ese 5

使用有效负载文件,我们可以本地化捆绑项目.

看到代码片段,

<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
  <bal:WixStandardBootstrapperApplication
   LicenseFile=""
   LocalizationFile="Theme.wxl"
   ThemeFile="theme.xml"
   LogoFile="Images\xxx.png"
   SuppressRepair="yes"
   SuppressOptionsUI="yes"/>

  <Payload Id="thm-fr-FR" Compressed="yes" Name="1036\thm.wxl" SourceFile="theme\1036\RtfTheme.wxl" />
  <Payload Id="lic-fr-FR" Compressed="yes" Name="1036\license.rtf" SourceFile="theme\1036\EULA.rtf" />

 <Payload Id="thm-ja-JP" Compressed="yes" Name="1041\thm.wxl" SourceFile="theme\1041\RtfTheme.wxl" />
  <Payload Id="lic-ja-JP" Compressed="yes" Name="1041\license.rtf" SourceFile="theme\1041\EULA.rtf" />

  <Payload Id="thm-es-ES" Compressed="yes" Name="3082\thm.wxl" SourceFile="theme\3082\RtfTheme.wxl" />
  <Payload Id="lic-es-ES" Compressed="yes" Name="3082\license.rtf" SourceFile="theme\3082\EULA.rtf" />

</BootstrapperApplicationRef>
Run Code Online (Sandbox Code Playgroud)

有效负载的name属性很重要.命名应该是LCID,就像识别LCID代码的bundle一样.将本地化文件放在"theme\1036\RtfTheme.wxl"目录中.执行此操作后,从控制面板更改系统语言并查看差异.

谢谢,

乔治