サンプル コードのダウンロード
(aspnettips_localize.msi, 224 KB)
※このサンプルをお使いいただくためには、
Visual Studio 2005 が必要です。
日本語とそれ以外の言語に対応する文字列を、それぞれリソースファイルから取得し、表示するページを作成してみます。また、Calendar コントロールも配置して、表示形式の変化を確認してみます。
図1 日本語での表示と、それ以外の言語での表示
今回は、次の手順でページを作成します。
-
リソースファイルの作成
-
リソースファイルの設定
-
リソース文字列の表示
-
実行
(1) リソースファイルの作成
まず、リソースファイルを 2 種類用意します。リソースファイルは、Web サイトの仮想フォルダの下に App_LocalResources フォルダを作り、その下に言語ごとに用意します。
ソリューション エクスプローラの仮想フォルダで、ポップアップメニューを表示し、[フォルダの追加] - [App_LocalResources フォルダ] を選択してください。App_LocalResources フォルダが作られます(図2)。
図2 App_LocalResources フォルダ
この App_LocalResources フォルダで [新しい項目の追加] を選択すると、「新しい項目の追加」ダイアログボックスが表示されます。ここで、[アセンブリ リソース ファイル] を選択し、ファイル名を Default.aspx.ja.resx にしてください(図3)。このファイルが、日本語用のリソースファイルになります。
図3 Default.aspx.ja.resx の作成
リソースファイルの名称は、「Web フォーム名.カルチャ名.resx」の形式になります。カルチャ名は、言語地域を表す記号で、日本語の場合 ja です。カルチャ名を省略すると、デフォルト言語用のリソースになります。
このデフォルト言語用に Default.aspx.resx というリソースファイルも、同じ方法で作成してください。
(2) リソースファイルの設定
作成したリソースファイルに、文字列を設定します。リソースファイルを開くと、リソースの文字列を設定するためのシートが表示されます。このシートに、文字列を次の表のように設定します。
| ファイル名 | 名前 | 値 |
| Default.aspx.ja.resx | String1 | カレンダーのページ |
| Default.aspx.resx | String1 | Calendar Page |
図4 リソースの設定画面
(3) リソース文字列の表示
用意したリソースファイルから文字列を取得して表示する Web ページを作成します。Web フォーム Default.aspx に、次のように Label コントロール と Calendar コントロールを貼り付けます。
図5 Default.aspx
この Label コントロールに、リソースファイル中の文字列を表示させるためには、Text プロパティの値を次のようにします。String1は、先ほど設定したリソースの「名前」です。
<%$ Resources:String1 %>
また、ブラウザで設定されている言語情報を自動的にページ反映させるため、@Page ディレクティブの Culture プロパティと UICulture プロパティを Auto に設定しておく必要があります。プロパティ ウィンドウで DOCUMENT を選択し、Culture プロパティと UICulture プロパティの値を Auto にしてください。
図6 Culture、UICulture を Auto に
(4) 実行
実行してみます。一般的なユーザーのブラウザ環境では、言語設定が日本語になっているはずなので、次のように表示されると思います。
図7 日本語での表示
Internet Explorer の場合、言語設定を切り替えるには、メニューで [ツール] - [インターネット オプション] を選択し、「全般」タブの中の [言語] ボタンを押します。表示される「言語の優先順位」ダイアログボックスで、「 英語 [en] 」を追加し、それを最上位にしてみてください。その後、ページを再表示すると、今度は英語で表示されます。Calendar コントロールも国際化対応しているので、自動的に英語の表示形式に変わります。
図8 英語での表示