2011-06-19 12 views
1

InnoSetupに関するいくつかの質問/回答を読んでからしばらくありましたが、それらのどれも私を助けてくれない...言語に応じてAppNameの値を変更したい利用可能な英語とスペイン語です。したがって、ダイアログが表示されたときに選択された言語がスペイン語の場合、AppNameの値は「La Bola」になります。それ以外の場合は、英語を選択すると、AppNameの値は「ボール」になります。Inno Setupの言語に応じてAppNameとAppDirを変更する

同じことがAppDirに適用されました。これまで私が見つけたのはInno setup and DefaultDirNameでしたが、言語では動作しません。また、例えば、以下のISPPの条件文を使用してみました:

#ifdef AppEnterprise 
    #define AppName "My Program Enterprise Edition" 
#else 
    #define AppName "My Program" 
#endif 

が、まだ私は私が方法がわからないので、それは、言語で動作させることはできません。

変更することはできますか? =/

おはようございます!

答えて

0

ISPPはプリプロセッサであるので、これは、このコードの実行の前にSETUP.EXE

AppNameはをコンパイルすることは、様々な目的のために使用されているが、1つは、SETUP.EXEリソースです。実行時に設定することができないのはなぜですか{code: }

したがって、コンパイル時に各言語ごとに異なるSETUP.EXEを設定することができます。

これは、ISPPを使用して、さまざまな方法で行うことができます。異なる言語に翻訳することができCustomMessages

#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 
1

見て、これらは、その後、{cm:..}定数でAppNameDefaultDirNameで使用することができます。

+0

私は複数の言語をしないので、私は '[CustomMessages]' Iのその機能を逃しましたsetup.exeのリソースをどのように処理するのだろうか –

+0

私はどちらかというとわかりませんが、私はリーダーのための練習として残しました:) – Deanna

+0

@RobertLove "setup.exe"のリソース[http: /www.jrsoftware.org/ishelp/index.php?topic=setup_versioninfodescription)が使用されます。 'AppName'には何も定数が含まれていないときに限り、デフォルトで' AppName'になります。'AppName'に定数があり、' VersionInfoDescription'が定義されていなければ、コンパイル時の警告が出され、リソースは空のままです。 –

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" 
関連する問題