- PR -

ASP.NET(C#) 多言語対応について

投稿者投稿内容
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-04 15:33
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconcreatingusingresources.asp
ここを参照してらどうでしょうか?
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2004-02-04 15:50
みなさんありがとうございます。

投稿1を参照していただければ分かるかと思いますが、
リソースファイルをカルチャ単位で取得し、
画面へ反映させる方法は投稿する以前から理解しておりますのでご安心下さい。
ただ、@とAのBESTな実装方法をお聞きしたいがために投稿した次第です。


Anonさんの「configファイル」の切り替え方法が、
私と異なる方法で実現しているのかどうかについて、非常に興味があります。

リクエストで上がってくるクライアント環境のカルチャは
プログラムで明示的に設定しないでもフレームワークで勝手に
デフォルト設定してくれますので、Anonさんはそれを利用しているのかしら・・・
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2004-02-05 02:22
rvmxさんありがとうございます。
自分で調べていてもどうしても確証を得られないため
各地のBBSで似たような質問ばかりしておりますが、教えてください。

「Thread.CurrentThread.CurrentUICultureメソッド」は
メソッド名から推測できる通りカレントスレッドに対してカルチャの設定をします。
したがって異なるスレッド間では当然ながら設定は共用されません。
.NETの仕様として
「1リクエストのラウンドトリップは1スレッドで処理が完結」するのでしょうか?
非同期メソッド等を使用しない限り結果的には↑こうなっている雰囲気ですが、
MSDN等のMSの正式見解が見当たらず、探しております。

引用:

rvmxさんの書き込み (2004-02-04 15:25) より:
page_loadで
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Request.UserLanguages[0]);


Page_Loadから他クラスのメソッドが呼ばれた場合、
「Page_Loadを処理したスレッドと同一スレッドがそのメソッドを処理する」
というなんらかの根拠に基づいてこの書き込みをしていただいたと認識しておりますが、
可能であればその件が記述されている資料を教えていただければ幸いです。


#最初の投稿のAの本意はこの件をクリアにしたいが為に記載いたしました。
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2004-02-05 06:31
今日は

引用:

「1リクエストのラウンドトリップは1スレッドで処理が完結」するのでしょうか?
非同期メソッド等を使用しない限り結果的には↑こうなっている雰囲気ですが、
Page_Loadから他クラスのメソッドが呼ばれた場合、
「Page_Loadを処理したスレッドと同一スレッドがそのメソッドを処理する」
というなんらかの根拠に基づいてこの書き込みをしていただいたと認識しておりますが、


「Page_Loadを処理したスレッドと同一スレッドがそのメソッドを処理する」と言うような認識は持っていません。
必要が有れば別スレッドも使います、カルチャーはスレッドのプロパテイですから、そのスレッドでカルチャーが必要であればカルチャーも渡します。
Anon
常連さん
会議室デビュー日: 2003/10/20
投稿数: 29
投稿日時: 2004-02-05 15:06
Anonです。

一郎さんがご指摘の通り、configファイルというのは.configのファイルのことです。
各画面ごとに.configファイル(A.Config、B.Config、等)を用意し、
その中に画面表示用に使う言葉をそこに書いておくのです。
プログラムのロード時にそのデータを拾いあげて画面表示します。
「入れ替え」といったのはA.ConfigやB.Configファイルの中身データを日本語と英語のものを用意して入れ替えるということです。
すなわち同じA.configが2つ(日本語用、英語用)あるということなんです。

プログラム自体は同じで画面表記が異なる為にこのようにしました。

クライアント環境のカルチャに関してはロンロンさんのご指摘の通りフレームワークの
デフォルトを利用しています。
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2004-02-05 17:32
Anonさんrvmxさんご回答ありがとうございます。
参考にさせていただきます。

私が開発中のアプリはプロトが完成したので一安心といったところです。
みなさんありがとうございました。

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