Inno 安装脚本:如何控制语言部分?

Inno setup script: How to control Languages section?

我想控制可用于设置的语言。我已将 myLanguage 定义为:

; default is EN(glish) unless CMD parameter defined with /DmyLanguage="JA"
#ifndef myLanguage
  #define myLanguage "EN"
#endif

我在语言部分有这个:

[Languages]
Name: JA; MessagesFile: compiler:Languages\Japanese.isl; LicenseFile: {#MyFolder}\eulajp.txt; 
Name: EN; MessagesFile: compiler:Default.isl; LicenseFile: {#MyFolder}\eula.txt

我可以控制的其他部分:Languages: JA 像这样:

Source: {#MyFolder}\manual_jp.chm; DestDir: {app}; DestName: manual.chm; Languages: JA

但此选项在语言部分不可用。

如何仅在 myLanguage="JA" 时提供 JA 语言选择?

我们可以在 [Languages] 部分使用 #if:

#if myLanguage == "JA" 
  Name: JA; MessagesFile: compiler:Languages\Japanese.isl; LicenseFile: {#MyFolder}\eulajp.txt; 
#endif

这也意味着您需要将所有在所选语言下 运行 具有相同条件的行换行:

#if myLanguage == "JA" 
  Source: {#MyFolder}\manual_jp.chm; DestDir: {app}; DestName: manual.chm; Languages: JA
#endif

否则我们会得到编译器错误:

Directive or parameter "Languages" expression error: Parameter "Languages" includes an unknown language.