トップ回答者
Visual Studio 2008 Pro 日本語版と英語版が共用できない

質問
回答
-
回りくどくなったので、発行時に setup.exe に適用される言語について
◎ 設定項目として記録される言語は2つあります
A) 優先される言語
デフォルトでは、既定の言語(* neutral)になっています。
VS2008 SP1 以降であれば、発行オプションの「発行する言語」で設定できます。B) 優先される言語が使用できない場合の言語
デフォルトでは、初めて発行した時の Visual Studio の起動言語が使用されます。この言語設定は、プロジェクトファイルの .user ファイルの FallbackCulture に記録されます。
(project1.csproj なら project1.csproj.user に記載されています)◎ ブートストラッパで表示される言語は、
ブートストラッパ (setup.exe) は、「A) 優先される言語」でセットアップ画面を表示しようとします。このときエンドユーザがその言語を使用していなかった場合は「B) 優先される言語が使用できない場合の言語」を使用します。
- 回答としてマーク suntower 2010年11月9日 10:19
すべての返信
-
Visual Studio の日本語/英語ってユーザインターフェース以外に違いありましたっけ? 日本語版で英語アプリケーションを開発することも、英語版で日本語アプリケーションを開発することも、普通にできると思います。
両方をインストールした後、Visual Studio 自身のユーザインターフェースを切り替えたい場合には、[ ツール | オプション ] から、[ 国際対応の設定 ] を変更するだけでいつでも切り替えることができます。また、日本語と英語の2つの環境を同時に起動したい場合、devenv.exe のコマンドラインスイッチの /LCID を使用することで切り替えることもできるので、英語で起動するショートカットを作成しておくなどすると、便がよいかもしれません。あまりないかもしれませんが、Windows でのユーザ切り替えなしに複数のユーザが利用するなどで、日本語版と英語版でキーボードショートカットの設定などの個人設定を完全に入れ替えたい場合、同様に devenv.com のレジストリハイブ切り替え機能を使用することで、Visual Studio に複数の設定を行うことができます。この場合もショートカット等で切り替えるようにすると便利でしょう。
-
-
-
ClickOnce の発行機能は Visual Studio ではなく、.NET SDK の部分ですね。Visual Studio はアプリケーション定義を複製するなどの追加の操作はしてくれますが、.NET Framework のインストール指示がある画面ということは SDK の生成した setup.exe のことになりますね。
この setup.exe に使用する言語は、GenerateBootstrapper タスクで指定するのですが Visual Studio 上では何も設定していないため "*" (neutral) に設定されているかと思います。また、言語の判定ができない等でカルチャが決定できない場合に使用する言語としては、デフォルトでは UICulture が設定されます。この UICulture は Visual Studio の言語と連動しているので、最初の投稿にあるような言語設定を切り替えることで日本語にも英語にも変更することができますが、発行処理時にプロジェクトファイルに *.user という名前のついたファイルに保存されてしまうので、この言語を切り替えるためには project1.csproj なら project1.csproj.user の中身を書き換えるか、このファイルを削除して再生成する必要があります。
より確実な方法として、ひらぽんさんが書かれているように Visual Studio 2008 SP1 の修正にある 発行の言語 を設定することで TargetCulture を明示的に指定することができます。(この場合も、その言語が対応しない場合の表示は、前述の .user ファイルに書かれたものが使用されます) 日英両方のインストーラーを生成したい場合としては、プロジェクトファイルの末尾のカスタム設定によって、構成などに対応した動的な TargetCulture プロパティの設定を追加することもできます。そうすれば、指定した言語で常に作成されます。
-
回りくどくなったので、発行時に setup.exe に適用される言語について
◎ 設定項目として記録される言語は2つあります
A) 優先される言語
デフォルトでは、既定の言語(* neutral)になっています。
VS2008 SP1 以降であれば、発行オプションの「発行する言語」で設定できます。B) 優先される言語が使用できない場合の言語
デフォルトでは、初めて発行した時の Visual Studio の起動言語が使用されます。この言語設定は、プロジェクトファイルの .user ファイルの FallbackCulture に記録されます。
(project1.csproj なら project1.csproj.user に記載されています)◎ ブートストラッパで表示される言語は、
ブートストラッパ (setup.exe) は、「A) 優先される言語」でセットアップ画面を表示しようとします。このときエンドユーザがその言語を使用していなかった場合は「B) 優先される言語が使用できない場合の言語」を使用します。
- 回答としてマーク suntower 2010年11月9日 10:19
-
Windows InstallerでなくClickOnceの話題だったようで…まぁ質問文には配布の配の字も書かれていないし。
Windows InstallerはTramsform(.mst)を使用することで表示文字列を入れ替えることができます。またとっちゃんさんが書かれているように実行中の言語を得ることもできます。しかし、実行中の言語に応じてTransformを選択する機能がない(あるけどundocumented)のです。
substorageに.mstファイルを1033や1041といった名前(拡張子なし)で保存しておくとインストーラー起動時に自動的に読み込まれるとか、秘密です。