根据Inno Setup中的语言更改AppName和AppDir

时间:2011-06-19 04:42:03

标签: inno-setup

我读了一些关于InnoSetup的问题/答案已经有一段时间了,但是它们似乎都没有帮助我...我想根据所选语言改变AppName值,可用英语和西班牙语。因此,如果在提示对话框时选择的语言为西班牙语,则AppName值应为“La Bola”;否则,如果选择英语,AppName值应为“The Ball”。

同样适用于AppDir。到目前为止我唯一发现的是这个Inno setup and DefaultDirName,但是我无法使用它来使用它们。还尝试使用ISPP条件符合示例:

#ifdef AppEnterprise
  #define AppName "My Program Enterprise Edition"
#else
  #define AppName "My Program"
#endif

但是我无法使用语言,因为我不知道如何。

是否可以改变它? = /

问候!

3 个答案:

答案 0 :(得分:3)

我有同样的问题,所以我发布的答案可以让其他人更快地完成。

实际上,Inno Setup安装文件夹中的Examples\Languages.iss文件中有一个示例。

简短:

[Setup]
AppName={cm:MyAppName}

然后

[Languages]
Name: en; MessagesFile: "compiler:Default.isl"
Name: es; MessagesFile: "compiler:Languages\Spanish.isl"

然后

[CustomMessages]
en.MyAppName=The Ball
es.MyAppName=La Bola

就是这样。有关更多详细信息,请参阅示例。请注意,有一个LicenseFile语言属性可用(示例中未提及):

[Languages]
Name: en; MessagesFile: "compiler:Default.isl"; LicenseFile: "eula_en.rtf"
Name: es; MessagesFile: "compiler:Languages\Spanish.isl"; LicenseFile: "eula_es.rtf"

答案 1 :(得分:1)

查看可以翻译成不同语言的CustomMessages,然后可以在AppNameDefaultDirName中使用{cm:..}常量。

答案 2 :(得分:0)

ISPP是预处理器,因此这意味着在编译SETUP.EXE之前运行此代码

AppName用于各种目的,但其中一个是SETUP.EXE资源。这就是使用{code: }

在运行时无法设置的原因

因此,您可以编译时间并为每种语言使用不同的SETUP.EXE。

您可以通过多种方式执行此操作,使用ISPP,此处为一。

#define lang = "english"
[Setup]
#if lang == "english"
AppName=The Ball
#elif lang == "spanish"
AppName=La Bola
#else
# error Unsupported Language
#endif

AppVersion=1.5
;AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Languages]
#if lang == "english"
Name: "en"; MessagesFile: "compiler:Default.isl"
#elif lang == "spanish"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
#else
# error Unsupported Language
#endif


[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion