Last-modified: 2003-12-29 (月) 16:30:50 (7417d)

 ユーザの言語環境によって、表示するメッセージやイメージを変更する処理です。

Windowsアプリケーション編

.NETのWindowsアプリケーションでは、Formのlocalizableプロパティをtrueに設定すると、Formのプロパティが言語別にResXファイルとして保存されるようになります。ResXファイルはサテライトアセンブリとしてBuildされ、実行アセンブリから読み取り専用で利用されます。

 デフォルトのFormで利用されるResourceManagerの生存スコープはInitializeComponent()内部のみです。InitializeComponent()のコードはVisualStudio.NETが勝手に書き換える可能性があり、開発者がコードを手書きするべきではありません。なので、Formのプロパティ以外のlocaleを設定したいResource(Dialogのメッセージ等)は、ResXファイルを別途作成し、手動でResourceManagerをインスタンス化してResourceを取得するようにします。

cf. MSDN チュートリアル

サンプルプロジェクト : fileWinApp01.zip

Webアプリケーション編

 .NETのWebアプリケーションの場合、リソースファイルを自動的に生成する仕組みはありません。ResXファイルを手動で作成します。

 当然、HTMLとしても出力できますし、コントロールのプロパティとして設定することも出来ます。

 注意点としては、ユーザのlocaleを手動で設定してあげないといけないということです。

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Request.UserLanguages[0]);
ie_lang.jpg

cf. MSDN チュートリアル

サンプルプロジェクト : fileWebApp01.zip

 IEの言語設定で日本語と英語を切り替えてみてください。


添付ファイル: fileie_lang.jpg 5967件 [詳細] fileWebApp01.zip 6182件 [詳細] fileWinApp01.zip 6104件 [詳細]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS