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

时间:2016-01-21 09:11:49

标签: wix wix3.9

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

  1. 美国英语
  2. BZL Port
  3. 国际机场西班牙语
  4. FR
  5. GR
  6. 简体中文
  7. JP,
  8. KR,
  9. 阿拉伯语,
  10. 繁体中文
  11. 我的第一级学习,我理解需要有效负载文件,用于在bootstrapper中应用本地化,以自动应用UI翻译字符串的本地化。我为3种语言添加了3个有效负载文件,如英语,frnch和amp;俄语。我在构建完成后得到了一个exe。在这里,我尝试在 bal:WixStandardBootstrapperApplication 标记中手动选择 LocalizationFile 文件。所以我得到一个.exe它应该只用那种语言。如果我需要另一个用于其他语言的exe,需要更改 LocalizationFile 值并再次构建它。我想要一个根据系统语言调用的exe。

    我在这里有以下问题,

    • 当我使用有效负载文件时,如何启动设置 系统语言,即系统语言是Fr,那么 运行安装文件,应将设置UI字符串转换为 法国人吗?可能吗?如果是这样,怎么样?
    • 如何根据系统语言翻译bootstrapper中的 Bundle 名称?
    • 如何根据系统语言翻译msi包中的 DisplayName 名称?
    • 这里我的msi包还包含几个字符串,是否需要添加
      为每种语言翻译的字符串..我添加了翻译的字符串 每种语言。构建完成后,每个文件都会看到不同的.msi文件 语言。然后我手动选择了word的msi包的SourceFile boostrapper链中的每种语言。这太难了。有什么 动态选择msi的系统语言的其他选项 包,如果是的话,怎么样?

    请指导我。

    此致

    乔治

1 个答案:

答案 0 :(得分: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>

有效负载的名称属性很重要。命名应该是LCID,就像识别LCID代码的捆绑一样。将本地化文件放在&#34; theme \ 1036 \ RtfTheme.wxl&#34;目录。 完成此操作后,从控制面板更改系统语言并查看差异。

谢谢,

乔治