ClickOnce アプリケーションのローカライズ
ローカリゼーションは、アプリケーションを特定のカルチャに対応させるプロセスです。 このプロセスには、ユーザー インターフェイス (UI) のテキストを地域固有の言語に翻訳する作業、正しい日付と通貨の書式の適用、フォーム上にあるコントロールのサイズの調整、およびコントロールを右から左へとミラー化する作業 (必要な場合) が含まれます。
アプリケーションをローカライズすると、1 つ以上のサテライト アセンブリが作成されます。 各アセンブリは、特定のカルチャに固有の UI 文字列、イメージ、およびその他のリソースで構成されます (アプリケーションのメインの実行可能ファイルには、アプリケーションの既定のカルチャに対応する文字列が含まれています)。
ここでは、ClickOnce アプリケーションを他のカルチャ向けに配置する 3 つの方法について説明します。
すべてのサテライト アセンブリを 1 つの配置に含める
カルチャごとに単一のサテライト アセンブリを含む配置を 1 つずつ生成する
サテライト アセンブリを必要に応じてダウンロードする
すべてのサテライト アセンブリを 1 つの配置に含める
複数の ClickOnce 配置を発行する代わりに、すべてのサテライト アセンブリを含む単一の ClickOnce 配置を発行できます。
この方法は、Visual Studio での既定です。 Visual Studio でこの方法を使用する場合は、追加の作業を行う必要はありません。
MageUI.exe でこの方法を使用するには、MageUI.exe でアプリケーションのカルチャを neutral に設定する必要があります。 次に、すべてのサテライト アセンブリを手動で配置に含める必要があります。 MageUI.exe では、アプリケーション マニフェストの [Files] ノードで [Populate] ボタンを使用してサテライト アセンブリを追加できます。
この方法の利点は、単一の配置が作成され、配置のローカライズが簡素化されることです。 実行時に、ユーザーが使用する Windows オペレーティング システムの既定のカルチャに応じて、適切なサテライト アセンブリが使用されます。 この方法の欠点は、クライアント コンピューターでアプリケーションがインストールまたは更新されるたびに、すべてのサテライト アセンブリがダウンロードされることです。 このため、アプリケーションに大量の文字列が含まれている場合や顧客が使用するネットワーク接続の処理速度が遅い場合は、アプリケーション更新時のパフォーマンスに影響を与える可能性があります。
注意
この方法では、それぞれのカルチャで異なるテキスト文字列のサイズに対応するために、コントロールの高さ、幅、および位置をアプリケーションが自動的に調整することを前提としています。 Windows フォームには、容易にローカライズできるフォームをデザインするためのさまざまなコントロールとテクノロジが用意されています。これには、FlowLayoutPanel コントロールと TableLayoutPanel コントロール、および AutoSize プロパティが含まれます。 詳細については 方法 : AutoSize と TableLayoutPanel コントロールを使用して Windows フォームのローカリゼーションをサポートする および 方法 : AutoSize と TableLayoutPanel コントロールを使用して Windows フォームのローカリゼーションをサポートする および 方法 : AutoSize と TableLayoutPanel コントロールを使用して Windows フォームのローカリゼーションをサポートする および 方法 : AutoSize と TableLayoutPanel コントロールを使用して Windows フォームのローカリゼーションをサポートする および 方法 : AutoSize と TableLayoutPanel コントロールを使用して Windows フォームのローカリゼーションをサポートする.
カルチャごとに 1 つの配置を生成する
この配置ストラテジでは、複数の配置を生成します。 各配置には特定のカルチャに必要なサテライト アセンブリのみを含め、その配置をそのカルチャ固有としてマークします。
Visual Studio でこのメソッドを使用するには、[発行] タブの [発行の言語] を目的の地域に設定します。 Visual Studio は、選択した地域に必要なサテライト アセンブリを自動的に組み込み、それ以外のすべてのサテライト アセンブリを配置から除外します。
この作業は、Microsoft Windows Software Development Kit (SDK) の MageUI.exe ツールを使用して実行することもできます。 MageUI.exe で、アプリケーション マニフェストの [Files] ノードで [作成] ボタンを使用してその他すべてのサテライト アセンブリをアプリケーション ディレクトリから除外し、さらに配置マニフェストの [Name] ノードで Culture フィールドを設定します。 この手順によって、正しいサテライト アセンブリが組み込まれるだけでなく、配置マニフェストに含まれる assemblyIdentity 要素の language 属性が、対応するカルチャに設定されます。
アプリケーションを発行した後に、アプリケーションがサポートする追加のカルチャごとにこの手順を繰り返す必要があります。 手順を実行するたびに、発行先の Web サーバー ディレクトリまたはファイル共有ディレクトリを変えるようにする必要があります。これは、各アプリケーション マニフェストが異なるサテライト アセンブリを参照し、各配置マニフェストで language 属性に異なる値が使用されるためです。
サテライト アセンブリを必要に応じてダウンロードする
すべてのサテライト アセンブリを 1 つの配置に含める場合は、アセンブリをオプションとしてマークできるオンデマンド ダウンロードを使用して、パフォーマンスを高めることができます。 マークされたアセンブリは、アプリケーションがインストールまたは更新されるときにはダウンロードされません。 これらのアセンブリは、必要になったときに ApplicationDeployment クラスの DownloadFileGroup メソッドを呼び出すことでインストールできます。
サテライト アセンブリを必要に応じてダウンロードする処理は、その他の種類のアセンブリを必要に応じてダウンロードする処理と若干異なります。 Windows SDK の ClickOnce 用ツールを使用してこのシナリオを可能にする方法の詳細とコード例については、「チュートリアル : ClickOnce 配置 API を使用して必要に応じてサテライト アセンブリをダウンロードする」を参照してください。
このシナリオは、Visual Studio でも可能です。 詳細については チュートリアル : デザイナを使用し、ClickOnce 配置 API で必要に応じてサテライト アセンブリをダウンロードする および チュートリアル : デザイナを使用し、ClickOnce 配置 API で必要に応じてサテライト アセンブリをダウンロードする および チュートリアル : デザイナーを使用し、ClickOnce 配置 API で必要に応じてサテライト アセンブリをダウンロードする および チュートリアル : デザイナーを使用し、ClickOnce 配置 API で必要に応じてサテライト アセンブリをダウンロードする.
ローカライズされた ClickOnce アプリケーションを配置前にテストする
サテライト アセンブリが Windows フォーム アプリケーションに使用されるのは、アプリケーションのメイン スレッドの CurrentUICulture プロパティがそのサテライト アセンブリのカルチャに設定されている場合に限られます。 各地域の顧客は、それぞれのカルチャが適切な既定値に設定された Windows のローカライズ版を既に実行していると考えられます。
アプリケーションを顧客が使用できるようにする前に、ローカライズされた配置をテストするには、3 つのオプションがあります。
Windows の該当ローカライズ版で、ClickOnce アプリケーションを実行できます。
アプリケーション内で、CurrentUICulture プロパティをプログラムにより設定できます (このプロパティは、Run メソッドを呼び出す前に設定する必要があります)。
Windows MUI Pack (Multilanguage User Interface Pack) をインストールしている場合は、オペレーティング システム上でカルチャを切り替えられます。 ただし、MUI がサポートするのは利用可能なすべてのカルチャに対応するサブセットだけであるため、このオプションをプロジェクトに適用できない場合があります。
MUI の詳細については、「Microsoft Global Development and Computing Portal」を参照してください。
注意
Windows Vista では、MUI Pack をインストールすることなしにカルチャを切り替えることができます。
参照
参照
<assemblyIdentity> 要素 (ClickOnce 配置)