.NET TIPS 多言語対応アプリケーションをClickOnceで配布するには?[VS 2005のみ]デジタルアドバンテージ 一色 政彦2006/06/30 |
|
|
|
.NET Framework 2.0では、「ClickOnce」というアプリケーションを配布・更新するための機能が追加された。本稿ではそのClickOnce機能を活用して、多言語対応アプリケーションを配布する方法を紹介する(多言語対応アプリケーションの開発方法については、「TIPS:Windowsフォームを多言語対応にするには?」を参考にしてほしい)。
なお本稿では、Visual Studio 2005(以降、VS 2005)のIDEを使用することを前提とする。
多言語対応アプリケーションをClickOnceで発行するには?
.NETでは、多言語対応アプリケーションの各言語のリソースはサテライト・アセンブリ(=言語ごとのリソース・ファイル。詳しくは前掲のTIPSを参照)として作成するので、これをClickOnceで配布する必要がある。
サテライト・アセンブリは、デフォルト(=ClickOnceオプション設定における言語の設定が「(既定値)」のまま(後述)の場合)では配布されないので、手動で配布されるように設定する必要がある。これを行っているのが次の画面である。
サテライト・アセンブリがClickOnceで配布されるようにする設定 | ||||||||||||||||||
多言語アプリケーションのサテライト・アセンブリをClickOnceで配布されるように設定しているところ。 | ||||||||||||||||||
|
以上の設定により多言語アプリケーションをClickOnceで発行できるようになるわけだが、すべての言語のサテライト・アセンブリが無駄に配布されてしまうという問題がある。特に対応言語数が多い場合には問題となるだろう。これを回避する方法は2つある。
- 言語ごとにローカライズ版ClickOnceアプリケーションを作成する
- 必要な言語のサテライト・アセンブリだけをオンデマンドで配布する
2の方法はコーディングが必要となるため、後日あらためて紹介するとしよう。以降では、1の方法について説明する。
言語ごとにローカライズ版ClickOnceアプリケーションを作成する
ある多言語対応アプリケーションの特定言語のバージョン(=ローカライズ版ClickOnceアプリケーション)をClickOnceで発行するには、VS 2005の発行オプションの[発行の言語]で、配布したい「言語-カルチャ」を設定するだけである。次の画面は、実際にこれを行っている例である。具体的には、[発行の言語]を「日本語 (日本)」(=「ja-JP」)に設定している。
多言語対応アプリケーションの特定言語のバージョンをClickOnceで発行する際の「言語-カルチャ」の設定 | |||||||||||||||
発行するClickOnceアプリケーションの「言語-カルチャ」を、「日本語 (日本)」(=ja-JP)に設定しているところ。 | |||||||||||||||
|
以上の設定を行った後、実際にClickOnceの発行を行うと、本稿の例では、次のようなディレクトリ構造でアプリケーションが発行された。
[発行の言語]を指定してClickOnceで発行した場合のディレクトリ構造 |
[発行の言語]を「日本語 (日本)」(=ja-JP)に指定してClickOnceで発行を行うと、この画面の例のように、「ja-JP」というフォルダの配下にサテライト・アセンブリ(=言語ごとのリソース・ファイル)が配置される。なお、(デフォルトの設定では).EXEや.DLLなどのClickOnceで配布されるアプリケーション・ファイルには「.deploy」という拡張子が付加される。ちなみに、冒頭で紹介した方法で、サテライト・アセンブリを手動で配布されるように設定したときもこれと同じフォルダ構成となる。 |
|
このように発行されたClickOnceアプリケーションを実行すると、そのユーザーの実行環境が「日本語 (日本)」という「言語-カルチャ」であれば、正しく「日本語 (日本)」のアプリケーションとして実行できるはずだ。
サテライト・アセンブリの自動選択について
特定言語のClickOnceアプリケーションを配布する場合、(上記のClickOnceで発行された際のディレクトリ構造を見れば分かるように)その言語に対応するサテライト・アセンブリは自動的に配布される。例えば、上記の例のように[発行の言語]を「日本語 (日本)」(=ja-JP)に指定した場合、本稿の例では「ja-JP\WindowsApplication1.resources.dll」というファイルが自動的に配布される。このようになるのは、その「言語-カルチャ」に対応するサテライト・アセンブリの[発行の状況]が自動的に「追加 (自動)」に設定されるためだ。
次の画面は、これを実際に確認しているところである。
上記の手順で[発行の言語]を「日本語 (日本)」に設定 |
|||
自動的に配布されるように設定されたサテライト・アセンブリ | |||
ClickOnceで発行されるサテライト・アセンブリの内容を確認しているところ。 | |||
|
この画面の説明を見れば分かるように、ClickOnceでは、[発行の言語]の選択に基づきその言語に対応したサテライト・アセンブリが自動的に配布されるわけである。
カテゴリ:Windowsフォーム 処理対象:ClickOnce 関連TIPS:Windowsフォームを多言語対応にするには? |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|