Navi(ワールドワイドナビ)の国際化プログラミング参考情報から、.NETの国際化の抜粋です。※後半には、ローカリゼーションツールSisulizer(シスライザー)によるXAML編集なしでの直接WPF、Silverlightのバイナリをローカライズする方法を記述しています。ResourceManagerを作成する初期処理(MainやInitializeComponent)でResourceManagerのインスタンスを作成します。Naviのサンプルコードです。地域と言語の設定を反映させるための重要なコードです。RsourceManagerを作成しています。RsourceManagerを作成しており、.resourcesファイルを読み込むものです。...}*2)上記*1)のResourceManager作成処理を呼んでいます。ResourceManagerの作成は初期処理で行うのが望ましいですが必須ではありません。*3)のコードはリソースデータを返す前にResourceManagerが作成されていない場合、”Init”を呼んでいます。これはクラスライブラリなどの初期処理を持たないプロジェクトのためです。フォームアプリケーションの場合は、Main関数内の冒頭で、InitializeComponent()が呼ばれる前にInitを呼ぶ必要があります。System.Threading.Thread.CurrentThread.CurrentUICultureの設定を初めに行う必要があります。※WPF、およびSilverlightの場合は、こちらをごらんください。文字列取得のコードを埋めこむResourceManager.GetStringメソッドでresxファイルから文字列情報を取得します。文字列をresxファイルに記述するメッセージIDと共に文字列をresxファイルの以下のエレメントに記述します。このケースでは”wwnavi_string.resx”でなければいけません。Studioアドインの実装では、”resources”という名前を使う必要があります。</data></root>*1)”data”エレメントに文字列を記述する必要があります。“wwnavi.Msg.Id1′′は”GetString”のメッセージIDに対応しています。自動国際化プロセスを使うことができます。フォームデザイナビューで以下のプロパティをセットします。resxファイル(例、上記の"wwnavi_string.resx")をプロジェクトに追加します。ソリューションをリビルドし実行ファイルを生成します。DLLは作成されません。自動的に日本語リソースのDLLが作成されます。Studioで自動的に作成することもできます。ResourceManagerを使った場合のみ有効です。手動でコピーし、常にそれらを実行ファイルに添付する必要があります。WPFとSilverlightの場合WPFスタンドアプリケーションとSilverlightの場合は、UIロケールの設定の仕方が異なります。自分でMain関数用のクラスを記述し、Main関数の自動生成をOFFにします。App.xamlのプロパティの「ビルドアクション」を「Page」に変更。2.以下のようなMain関数用のクラスを作成し、Wwnavi.Resource.Init()(CurrentUICultureの設定)を呼び出します。}}3.あとは正常にビルドされればOKです。*各国語のdllはビルドされたexeからSisulizerを使って、XAMLファイルの変更なしに容易に作成できます。Naviのヘルプをごらんください。Silverlightの場合:Silverlightでは、Silverlightのオブジェクト(xap)を埋めこんだHTML(ASP、PHPなど)でユーザーのロケール(言語)を認識し、それをSilverlightのパラメータとして渡し、適切なxapファイルを読み込むのが一般的です。Naviのサンプルです。//ユーザーのHTTPリクエストから言語情報を取得します。//ユーザーの言語情報に対応するxapファイルのパスを生成します。*各国語のxapはSisulizerを使って、XAMLファイルの変更なしに容易に作成できます。Naviのヘルプをごらんください。//これら2つのパラメータがSilverlightオブジェクトのカルチャとして引き継がれます。Studio内でこのASPを右クリックし、「ブラウザで開く」メニューで確認してください。