- PR -

ASP.NETでの多言語表示について

1
投稿者投稿内容
アルゴ
常連さん
会議室デビュー日: 2004/10/06
投稿数: 36
投稿日時: 2006-06-27 15:11
いつもお世話になっております。

ASP.NET 2005、言語はC#、ブラウザはIE6で開発しています。
多言語対応で悩んでいます。

ログイン画面で使用言語を選択して、
それ以降の画面は選択された言語で表示したいという要件です。

ローカルリソースファイル(.resx)を使用して試しているのですが、
.aspxのPage_Load内で

System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

と指定してもブラウザの言語設定(設定は日本語)に依存するようで
日本語表示されてしまいます。
ブラウザの設定を英語にすると英語表示されます。

検索してみたのですがWindowsアプリでのサンプルはあったのですが、
Webアプリのサンプルは見つかりませんでした。

セキュリティー面で引っかかるような気がするのですが、
クライアントのブラウザの設定に関係なく表示させることは出来ないのでしょうか?

皆様、ご教授ください。
何卒宜しくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-27 16:49
こんにちは。

MSDN ライブラリに InitializeCulture メソッドをオーバーライドして実現する方法が載ってます。
方法 : ASP.NET Web ページのグローバリゼーション用のカルチャおよび UI カルチャを設定する
アルゴ
常連さん
会議室デビュー日: 2004/10/06
投稿数: 36
投稿日時: 2006-06-27 17:05
ueさん、返答ありがとうございます。

教えていただいたとおりInitializeCulture メソッドをオーバーライドして、
その中で

System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

を設定することによって解決しました。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)