2009-08-24 11 views
0

私は最初の多言語のC#サイトを開発しています。私は、コードの後ろのページから翻訳される文字列(通常は1つの単語)を格納するのに最適なオプションが何であるかを100%確信しているわけではありません。アプリケーションの状態でローカリゼーションコンテンツを保存する必要があります

サイトのフロントエンドでは、ページの言葉遣いのためにasp.netリソースファイルを使用します。この部分は問題ありません。しかし、このサイトはXMLコールを行い、XMLレスポンスは英語のみです。私はXMLで返されるすべての単語が異なる言語に分かれたExcelシートを与えられていますが、この情報をどのように保存/アクセスするのがベストかはわかりません。約80語×7言語があります。

私は、アプリケーション実行時にglobal.asaxファイルによって作成され、メモリに保存されているだけの各言語用の辞書オブジェクトを作成することを考えています。これを行うためのプラスの側面は、辞書オブジェクトは一度(IISが再起動するまで)作成する必要があり、再構築する必要なくすべてのユーザーがアクセスできますが、欠点はメモリに常時格納されている7つの辞書オブジェクトがあることです。サーバーは4GBのRAMを搭載したWin 2008の64ビット版なので、この方法を使用してメモリを使用することにも関心がありますか?

どのユーザーが、すべてのユーザーが使用するさまざまな言語の単語を保存/取得するのに最適な方法だと思いますか?

ありがとうございます。

リッチ

答えて

1

あなたが言うから、あなたはロケールに基づいて異なるする必要があります560個の単語を見ています。これは海の中の一滴です。あなたが考えているリソースファイルの方法は、目的に合っており、私はそれらを使用することをお勧めします。それらはコントロールと統合されているため、それらを最大限に活用します。

問題が発生した場合、スライディングキャッシュ、つまり20分のスライディングキャッシュにキャッシュすることができますが、この解決策では何も問題はありません。

OMO

乾杯、

アンドリュー

P.S.さまざまなリソースファイルの値を見つけてコントロールやリテラルにバインドし、プログラム的に使用する方法を知るために、これを読んでください。限り、あなたは[はい、メモリにこのデータを格納する(限り、あなたはそうするのに十分持っているように)大丈夫だと思うそうすることの影響を認識しているよう

http://msdn.microsoft.com/en-us/magazine/cc163566.aspx

+0

ご協力いただきありがとうございます。私の問題は、文字列をローカライズすることだけです。これらはコントロールには結び付けられないので、resxファイルを使用することはできません。私はできますか? –

+0

ローカライズされた文字列をどのように使用してユーザーに表示しますか? –

+0

私は、ページの読み込み時に、選択した言語に基づいて必要な言語の辞書オブジェクトを呼び出し、探している文字列に一致するキーを見つけると考えていました。たとえば、XMLで返された「Door」という単語を置き換えてフランス語で表示する場合は、次のようになります。Dictionary XMLWording =(Dictionary )アプリケーション["FrenchXMLWording "]; XMLWording ["Door"]のようなものです。画面に書き込む。希望は意味をなさない;) –

0

。現在のユーザーに適しているものがわかれば、それをメモリに入れても問題ありません。 MemCached Win32やVelocityのようなものを見ると、ストレージを別のアプリケーションサーバーにオフロードできます。これをあなたのローカルアプリケーションでも使用してください。そうするときは、これを別のサーバーにプッシュするか、アプリケーションを成長させるときに、キャッシュレイヤーで定義されている問題が明確に分かれています。そして、あなたがメモリに保存しているものが増えるほど、サポートする言語が増えることを覚えておいてください。孤独なアプリケーションサーバーのメモリに保存されているデータの量に注目してください。時間が経つにつれて圧倒的になる可能性があります。また、使用しているキーが言語固有のものであることを確認してください。それ以外の場合は、ドイツ語のメニューを英語ユーザー用に保存していることがあります。

関連する問題