2013-12-19 76 views
3

如何在Inno Setup中使用內置消息?在Inno Setup中使用內置消息

在「Default.isl」中,我想在Inno Setup腳本中使用「FullInstallation」消息。因此,該消息已被Inno Setup支持的所有語言翻譯。這將使我無需爲自己的文本翻譯自己。

我看到「Default.isl」有一個[CustomMessages]部分,我可以使用這些(例如){cm:CreateDesktopIcon}(因爲「CreateDesktopIcon」作爲自定義消息存在)。

如何使用[CustomMessages]部分未列出的其他消息之一?

回答

5

據我所知,沒有{cm:...}像常數,你可以通過它擴大[Messages]條目。如果我是對的,那麼這取決於你想在哪裏使用這種常數。如果它在腳本部分,那麼您需要使用scripted constant以及調用SetupMessage函數的getter,通過該函數您可以使用this file中列出的常量擴展所選語言的內置消息。

正如你可以注意到的,每個消息常量只有[Messages]條目的msg前綴。

例如,爲了擴大WizardPreparing消息轉換爲[Run]部分條目Description價值,你將擴大msgWizardPreparing常數是這樣的:

[Run] 
Filename: "MyProg.exe"; Description: "{code:GetDescription}" 

[Code] 
function GetDescription(Value: string): string; 
begin 
    Result := SetupMessage(msgWizardPreparing); 
end; 

[Code]節的情況自然比較容易,因爲SetupMessage功能,你可以直接在那裏使用。所以,舉例來說,顯示一個消息框與擴展CannotContinue消息,你會擴大msgCannotContinue不變只是這樣:

[Code] 
procedure InitializeWizard; 
var 
    S: string; 
begin 
    S := SetupMessage(msgCannotContinue); 
    MsgBox(S, mbInformation, MB_OK); 
end; 
+0

我想在腳本部分使用它,但是這是一個很好的解決方案,如果沒有直接的方法來做到這一點。 – chowey

+0

對於腳本部分只有這個功能。我會說,這樣做不會有任何不變,因爲這些信息的目的主要是爲了內部使用。 – TLama