「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 文字列や画像などのリソース情報をKey-Valueで保持する、
拡張子が .resources または .resx のファイルのことである。
- いろいろな言語のリソースファイルを用意すると、
多言語対応のアプリケーションを作成できる。
- アセンブリファイル(dll,exe)に含められる。
特徴 †
メッセージ等の隠蔽化が可能 †
- アセンブリファイル(dll,exe)に含められるため、改竄されにくい。
- ただし、リソースファイルの修正を反映するには再ビルドが必要。
※ ILSpy等の逆アセンブルツールにてリソースファイルの内容が抽出されることは防げない
実行中の差し替えが可能 †
- リソースファイルをdllに含めることにより、実行時に差し替えが可能
文字列以外も扱うことが可能 †
リソースファイルに画像などのバイナリファイルを文字列と同様に含めることが可能である。
この際、BASE64エンコードされた文字列がresxファイルに格納される。
多言語化対応が可能 †
カルチャを使用し、対応したリソースファイルから情報を取得することで
文言や、UI要素の多言語対応が可能となる(詳細は後述)。
作成方法 †
リソースファイルの作成方法には下記の様なものがある。
Visual Studio上でリソースファイルを作成、編集する †
- Visual Studioでリソースを作成、編集できる。
- Visual Studioでリソース中に改行コードを入れる方法
リソース作成画面にて
[Shift]+[Enter]キー
を押下すると改行コードを挿入できる。
.NETプログラムからリソースファイルを作成する方法 †
リソースファイルを作成するAPIが用意されている。
テキストファイルからリソースファイルを作成する方法 †
.txtファイルからリソースファイルを作成するResgen.exeが用意されている。
使用方法 †
リソースファイルの使用方法には下記の様なものがある。
.NETプログラムからリソースファイルを使用する方法 †
リソースファイルを使用するAPIが用意されている。
制限事項 †
- リソースの名前に"="(半角イコール)を含めることができません。
- リソースの値にLF(Line Feed)を含めることができません。
多言語対応 †
スレッド毎に保持しているCurrentUICultureに設定されているカルチャを使用して、
対応したリソースファイルから情報を取得することで文言や、UI要素の多言語対応が可能となる。
リソースの構造 †
- ファイル名と拡張子の間にカルチャ名を挿入して
各カルチャ向けのリソースファイルを作成する。
- 下位カルチャ用のリソースファイルには差分のみ定義可能。
R1.resx 既定カルチャ用リソースファイル
├R1.ja.resx 日本語用リソースファイル
├R1.en.resx 英語用リソースファイル
├R1.zh-Hans.resx 簡体字中国語用リソースファイル
└R1.zh-Hant.resx 繁体字中国語用リソースファイル
R2.resx 既定カルチャ用リソースファイル
├R2.ja-JP.resx 日本語(日本)用リソースファイル
└R2.en-US.resx 英語(米国)用リソースファイル
フォールバック機能 †
リソースファイルのフォールバック機能とは †
- 使用するリソースファイルをシステムが判断することを指す。
- CurrentUICultureのカルチャと一致するリソースファイルが存在しない場合、親カルチャ用のリソースファイルを順に検索する。
フォールバックのカスタマイズ †
- Parentプロパティで上位のカルチャを取得可能なので単純なアルゴリズムで作成可能。
- また、メッセージを言語毎に用意するのであればTwoLetterISOLanguageName?プロパティで2階層目の値を取得することが可能なため、その値で分岐すれば良い。
参考 †
UIの多言語対応 †
リソースファイルを使用することで、UIの多言語対応が可能である。
Windows FormsとASP.NET Web Formsで実装の方法が異なる。
参考 †
Tags: :.NET開発, :国際化対応