2011-01-13 17 views
3

Inno Setupで選択した言語に基づいて条件付きインストールを実行しようとしています。Inno Setupで言語に基づく条件付きインストール

I.e.選択された言語が英語の場合は、ファイルen.txtをインストールし、選択された言語がイタリア語であれば、ファイルit.txtなどをインストールします。

これは可能ですか?私は{言語}定数があることを知りましたが、それを使って条件付きインストールを行う方法を理解していません。

答えて

8

言語の選択に基づいてインストールされるファイルは、[ファイル]エントリにLanguagesパラメータを追加するだけで、常に条件付きです。 Inno Setupのヘルプから

共通パラメータは言う:言語名の

言語
スペースで区切られたリスト、言っセットアップは、エントリが属する言語。エンドユーザーがこのリストから言語を選択すると、そのエントリが処理されます(たとえば、ファイルがインストールされているなど)。

Languagesパラメータがないエントリは、他のパラメータがそうであってはいけないと言わない限り、常に処理されます。

スペースで区切られたリストの他に、ブール式を使用することもできます。ブール式の例については、「コンポーネントとタスク」のパラメータを参照してください。

例:
言語: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の例フォルダに含まLanguages.issスクリプトを見てみましょう。

2

ちょうど1つのメモは、レジストリセクションのためにallsoを扱います。たとえば、

[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 

インストール時にユーザーがフランス語を選択した場合のみ、このレジストリキーが使用されます。インストールされたプログラムの言語をレジストリに保存できる場合に便利です。

関連する問題