2011-01-13 60 views
3

我試圖根據Inno Setup中所選語言進行條件安裝。基於Inno Setup的語言進行條件安裝

I.e.如果選擇的語言是英語,那麼安裝文件en.txt,如果選擇的語言是意大利語,則安裝文件it.txt等。

它可能做到這一點嗎?我已經看到有一個{語言}常量,但我不明白如何使用它來執行條件安裝。

回答

8

根據語言選擇安裝哪個文件通常只需將語言參數添加到[文件]條目即可。從Inno Setup的幫助

公共參數說:

語言
空格分隔的語言名列表,告訴安裝程序條目所屬的語言。如果最終用戶從此列表中選擇一種語言,則會處理該條目(例如:該文件已安裝)。

總是處理沒有語言參數的條目,除非其他參數說不應該。

除了空格分隔列表之外,還可以使用布爾表達式。有關布爾表達式的示例,請參閱組件和任務參數。

例子:
語言:EN NL

所以,如果你想爲英語和西班牙語(而不是法語),[文件僅適用於英語安裝的文件和另一隻爲西班牙,另一]條目可能如下所示:

[Files] 
Source: "MyProg-en.chm"; DestDir: "{app}"; Languages: en 
Source: "MyProg-es.chm"; DestDir: "{app}"; Languages: es 
Source: "x.exe"; DestDir: "{app}"; Languages: en es 

查看inno setup examples文件夾中包含的Languages.iss腳本。

2

只是一個說明,也適用於註冊表部分。例如

[Languages] 
Name: "en"; MessagesFile: "compiler:Default.isl" 
Name: "ger"; MessagesFile: "compiler:Languages\German.isl" 
Name: "fr"; MessagesFile: "compiler:Languages\French.isl" 

[Registry] 
Root: HKCR; Subkey: ".tes"; ValueType: string; ValueName: ""; ValueData: "Testing..."; Languages: fr 

只有當用戶選擇法語安裝時才安裝此註冊表項。當您可以在註冊表中存儲已安裝程序的語言時,它是有用的。