2011-01-13 8 views
3

Ich versuche eine bedingte Installation basierend auf der gewählten Sprache in Inno-Setup zu tun.Bedingte Installation basierend auf Sprache mit Inno-Setup

I.e. Wenn die Sprache Englisch ist, installiere die Datei en.txt, wenn die Sprache italienisch ist, dann installiere die Datei it.txt und so weiter.

Ist es möglich, es zu tun? Ich habe gesehen, dass es eine Konstante {Sprache} gibt, aber ich verstehe nicht, wie ich sie für eine bedingte Installation verwende.

Antwort

8

Welche Datei basierend auf der Sprachauswahl installiert wird, hängt immer von der Bedingung ab, dass der Parameter [Languages] zum Eintrag [Files] hinzugefügt wird.

Allgemeine Parameter von Inno Setup-Hilfe sagt:

Sprachen
Eine durch Leerzeichen getrennte Liste von Sprachnamen, sagen Setup, welche Sprachen der Eintrag gehört. Wenn der Endbenutzer eine Sprache aus dieser Liste auswählt, wird der Eintrag verarbeitet (z. B. die Datei wird installiert).
Ein Eintrag ohne einen Parameter Languages ​​wird immer verarbeitet, es sei denn, andere Parameter sagen, es sollte nicht sein.

Neben durch Leerzeichen getrennten Listen können Sie auch boolesche Ausdrücke verwenden. Informationen zu Beispielen boolescher Ausdrücke finden Sie unter Komponenten und Aufgaben.

Beispiel:
Sprachen: en nl

Also, wenn Sie wollen eine nur Englisch installiert Datei für und andere nur für spanische, eine andere für Englisch und Spanisch (aber nicht für französisch), [Files ] Eintrag wie folgt aussehen:

[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 

einen Blick auf die in der inno Setup-Beispiele Ordner enthalten Languages.iss Skript nehmen.

2

Nur eine Anmerkung, funktioniert allso für die Registrierung Abschnitt. Zum Beispiel

[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 

intstalliert diesen Registrierungsschlüssel nur, wenn Benutzer Französisch Sprache für die Installation auswählen. Es ist nützlich, wenn Sie Sprache des installierten Programms in der Registrierung speichern können.

Verwandte Themen