我读了一些关于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
但是我无法使用语言,因为我不知道如何。
是否可以改变它? = /
问候!
答案 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
,然后可以在AppName
和DefaultDirName
中使用{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