アプリケーション状態にローカリゼーションコンテンツを保存する必要があります

StackOverflow https://stackoverflow.com/questions/1323409

質問

私は最初の多言語C#サイトを開発していますが、1つの重要な側面を除いてすべてが問題ありません。ページの背後にあるコードからコードで翻訳される文字列(通常は単一の単語)を保存するための最良のオプションが何であるか100%確信していません。

サイトのフロントエンドでは、ページの文言にASP.NETリソースファイルを使用します。この部分は大丈夫です。ただし、このサイトはXMLコールを行い、XML応答は英語でのみです。 XMLによって返されるすべての単語が異なる言語に分割されるすべての単語を含むExcelシートが与えられましたが、この情報を保存/アクセスするのが最善の方法はわかりません。約80ワードx 7言語があります。

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

すべてのユーザーが使用するさまざまな言語単語を保存/取得するための最良の方法は何だと思いますか?

ご意見ありがとうございます。

リッチ

役に立ちましたか?

解決

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

それがあなたを悩ませた場合、あなたはそれらをスライドキャッシュ、つまり20分のスライディングキャッシュに載せることができますが、私はこのソリューションであなたの選択に何も悪いことを見ていません。

オモ

乾杯、

アンドリュー

PSはこれを読んで、さまざまなリソースファイルの値をコントロールとリテラルにどのように見つけてバインドし、プログラムで使用できるかを確認します。

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

他のヒント

そうすることの影響を知っている限り、はい、このデータをメモリに保存することは問題ありません(あなたがそうするのに十分である限り)。現在のユーザーに何が適切かを知ったら、それをメモリに投げるのは問題ありません。ストレージを別のアプリサーバーにオフロードするにもかかわらず、MemCached Win32やVelocityのようなものを見ることができます。これを地元のアプリケーションでも使用して、これを別のサーバーにプッシュしたり、アプリを成長させたりする時が来たとき、キャッシュレイヤーで定義されている懸念事項の明確な分離があります。そして、あなたがより多くの言語をサポートするほど、あなたがメモリに保管しているものが増えることに留意してください。これが時間内に圧倒される可能性があるため、孤独なアプリサーバーにメモリに保存されているデータの量に注意してください。また、使用しているキーが言語に固有であることを確認してください。それ以外の場合は、英語のユーザー向けにドイツ語でメニューを保存していることがわかります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top