3

我创建了一个 wix 引导程序应用程序,它包含两个 msi 包。我想本地化我的 boostrapper 应用程序。我的目标是本地化我的引导程序应用程序,它应该启动尊重系统语言的应用程序。意味着,它应该是所有语言的单个 exe。我想支持以下语言,

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

在我的第一级学习中,我了解到需要有效负载文件来在引导程序中应用本地化,以便自动为 UI 翻译字符串应用本地化。我为英语、法语和俄语等 3 种语言添加了 3 个有效负载文件。构建完成后我得到了一个 exe。在这里,我尝试手动选择bal:WixStandardBootstrapperApplication标签中的LocalizationFile文件。所以我得到了一个.exe,它应该只能在那种语言下工作。如果我需要其他语言的另一个 exe,需要更改LocalizationFile值并重新构建它。我想要一个根据系统语言调用的exe。

在这里,我有以下问题,

  • 当我使用payload文件时,如何根据系统语言启动setup,即如果系统语言是Fr,然后运行setup文件,setup UI字符串应该翻译成法语?可能吗?如果是这样,如何?
  • 我如何在引导程序中根据系统语言翻译捆绑名称?
  • 如何根据系统语言翻译 msi 包中的DisplayName名称?
  • 这里我的 msi 包也包含一些字符串,是否需要
    为每种语言添加翻译字符串。我为每种语言添加了翻译字符串。
    构建后,会看到每种语言的不同 .msi 文件。然后我手动选择了
    boostrapper链中每种语言的msi包的SourceFile。这太难了。是否有任何其他选项可以动态选择 msi 包的系统语言,如果是,如何?

请指导我。

问候,

乔治

4

1 回答 1

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>

payload的name属性很重要。命名应该是LCID,就像bundle识别LCID码一样。将本地化文件放在“theme\1036\RtfTheme.wxl”目录下。完成此操作后,从控制面板更改系统语言并查看差异。

谢谢,

乔治

于 2016-11-22T08:10:46.390 回答