- PR -

リソースファイルの対応言語の取得方法について

1
投稿者投稿内容
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-04-18 18:11
いつも参考にさせていただいております。

ASP.NET(VB.NET)でApp_GlobalReources内に
ja-JPとen-USのリソースファイルを作成しています。
プログラム内でどの言語のリソースファイルが用意されているか
取得する方法が分からず悩んでいます。
取得したいのはja-JPとen-USという文字列配列です。
App_GlobalResourcesフォルダ内のファイル一覧を取得して
やろうと思いましたが、Webサイトの発行をしたら、コンパイルされて
App_GlobalResourcesフォルダがなくなってしまいました。

ResourceManagerクラスを色々見たのですが、
それらしいメソッドを探す事ができませんでした。

良い案がありましたら、ご教授お願いします。
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-04-18 20:54
(望んでいるものがわからないので外れているかもしれませんが)

ResourceManagerにはフォールバックがあるので
どんな言語でもとりあえずリソースは取得できます。

逆に言語指定してとる場合はカルチャを指定して
フォールバックしないように取得すればよいです
(指定言語が無ければうまく取得できません)

参考になればと思います。
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-04-21 18:56
indigo-xさん、ご回答ありがとうございます。

分かりにくい説明で申し訳ありません。
ご説明して頂いたのと逆の方向から言語の種類を取得したいと考えています。
言い換えると、そのプロジェクトがサポートしている言語を
取得したい為、どの言語のリソースファイルがあるか検索し、
取得したいと考えています。

現在はBinフォルダにあるApp_GlobalResources.resources.dllを検索し、
置かれているフォルダ名を取得する様な方法を取っています。
結構無茶な方法だと思いますので、もっとスマートな方法は無いものかと
色々試したのですが、見つけられず困っています。

宜しくお願い致します。
CHX99
会議室デビュー日: 2007/05/18
投稿数: 12
投稿日時: 2008-04-22 08:59


[ メッセージ編集済み 編集者: ゆたっちょ 編集日時 2008-04-22 09:04 ]
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-04-22 19:53
CultureInfo.GetCulturesでforeachして
ResourceManager.GetResourceSetでとれば
できますよ。
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-04-23 14:54
indigo-xさん、ご回答ありがとうございます。

その方法しかないですかー。
やってみましたが、取得はできますが、遅いですね。
indigo-xさんの方法では10秒掛かりましたが、
ファイル検索の場合、1秒以下でした。

ファイル検索でどんなパターンも問題ないか確認後、
どちらで実装するか考えます。

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

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