6

2 つの異なるアプローチがあるようです。ASP.NET フレームワークでは、UserProfile.en.resx、UserProfile.fr.resx などのリソースに UI 文字列を配置することで、ページを簡単にローカライズできます。

もう 1 つの方法は、すべての文字列をデータベース内の個別のテーブルに配置し、いくつかのカスタム メカニズムを使用して、現在アクティブな言語/カルチャ設定に従って文字列を取得することです。

私が理解している限りでは、データベース アプローチは、エンタープライズ ソフトウェアなどの大きなプロジェクトでより一般的です。また、そのデータベースへの外部アクセスを翻訳会社に与えることができるという利点もあります。リソースがあれば、それは難しいでしょう。

一方、データベースからすべての静的文字列を取得すると、トラフィックと負荷のオーバーヘッドが増加します。比較的小さな Web サイトでそれを行う利点は見当たりません。「小さい」とは、トラフィックではなく、ページの量と複雑さを意味します。

個人的には、プライベート プロジェクトにリソースを使用することを好みます。これは絶対に悪い考えですか?

ところで、ASP.NET MVC で引き続きリソースを使用できますか?

どんな考えでも大歓迎です。

編集: 答えは 1 つだけです。この質問に誰も興味がないとは信じられません。誰も自分の意見を共有したくないですか?

4

2 に答える 2

2

asp.net リソース ファイルに依存するのではなく、このすべての情報をデータベースに保存することを好みます。

私が行ったことは、共通のコントロール (ラベルなど) をサブクラス化し、render メソッドをオーバーライドすることです。このメソッドは現在の文化を探し、データ構造を調べてそれに応じて適切なキャプションを設定します

それらをデータベースに保存するときのパフォーマンスについて - これが私がしていることです: 私の application_start イベントでは、文化固有の説明をすべてカスタムオブジェクトにロードし、それを非常に長くキャッシュします。このようにして、キャッシュが期限切れになるか、強制的に期限切れになるまで、データベースにアクセスする必要はありません

これまでのところ、このアプローチに従ってパフォーマンスの問題に直面したことはありません。これをすべて言った - リソースファイルを使用することも悪いオプションだと言っているわけではないことに注意してください

しかし、私に選択肢が与えられた場合、リソースファイルアプローチではなくデータベースアプローチを好むでしょう

于 2009-04-08T10:58:59.030 に答える