37

resx ファイルを使用して、Web アプリケーションをローカライズします。通常、特定のフレーズを使用するページが 1 つだけの場合はローカル resx ファイル (特定のページにマップする) を作成し、複数のページがそのフレーズを必要とする場合はグローバル resx ファイルを作成します。
しかし、グローバル resx ファイルの良い点は、それらがクラスであることです。クラスのプロパティを呼び出すように、フレーズを呼び出すことができます。

Resource.UI.iNotFound

だから私は考えていました-なぜローカルのresxファイルがあるのですか? アプリケーション全体で 1 つのグローバル resx ファイルを使用して、存在しないフレーズの呼び出しによる実行時エラーを回避してみませんか?

それには良い答えがあると確信していますが、それが何であるかはわかりません....

4

4 に答える 4

50

私はガイドラインを探し続け、MSDNでこれを見つけました:

グローバル リソース ファイルとローカル リソース ファイルの選択

Web アプリケーションでは、グローバル リソース ファイルとローカル リソース ファイルを自由に組み合わせて使用​​できます。通常、ページ間でリソースを共有する場合は、グローバル リソース ファイルにリソースを追加します。グローバル リソース ファイル内のリソースも、プログラムでファイルにアクセスする場合に備えて厳密に型指定されます。

ただし、すべてのローカライズされたリソースをグローバル リソース ファイルに格納すると、ファイルが大きくなる可能性があります。複数の開発者が 1 つのリソース ファイル内の異なるページで作業している場合、グローバル リソース ファイルの管理も難しくなる可能性があります。

ローカル リソース ファイルを使用すると、単一の ASP.NET Web ページのリソースを簡単に管理できます。ただし、ページ間でリソースを共有することはできません。さらに、多くの言語にローカライズする必要があるページが多数ある場合は、多数のローカル リソース ファイルを作成することがあります。サイトが多くのフォルダーと言語を含む大規模な場合、ローカル リソースによって、アプリケーション ドメイン内のアセンブリの数が急速に増加する可能性があります。

ローカルまたはグローバルの既定のリソース ファイルに変更を加えると、ASP.NET はリソースを再コンパイルし、ASP.NET アプリケーションを再起動します。これは、サイトの全体的なパフォーマンスに影響を与える可能性があります。サテライト リソース ファイルを追加しても、リソースの再コンパイルは発生しませんが、ASP.NET アプリケーションは再起動します。

そのため、各方法の長所と短所を比較検討し、それらに適したものを選択するのは、プログラミング チームの責任のようです。

于 2009-03-29T11:25:52.890 に答える
15

Joe90 - 私の経験では、プロジェクト全体に散在する多数のローカル リソース ファイルを管理する方が、1 つのグローバル リソース ファイルを管理するよりも簡単であることに同意できません。同じ翻訳の繰り返しを止めるものは何もなく、追跡するのは非常に困難です。グローバル リソース ファイルへのアクセスは、チーム内での調整が非常に簡単で、複数のユーザーが必要な翻訳が既に完了しているかどうかを一目で確認できます。

Lea とまったく同じポリシーで開始しました。つまり、ローカル リソース ファイルから開始し、複数回参照されている場合はグローバル リソース ファイルに移動します。これはすぐに管理が面倒になり、それ以来、私は毎回グローバル リソース ファイルを使用するようになりました。

ベスト プラクティスとは何か、さらには 2 つの方法がどのように実装されているかについて、Microsoft による明確なガイドラインはないようです。

比較/見返りは、ローカルリソースファイルは関連するファイルの再コンパイルのみを必要とするのに対し、グローバルリソースファイルを変更するにはWebサイト全体の再コンパイルが必要なようです-固有のセッション状態の損失など.そのため、安全を確保するために、更新中にサイトをオフラインにする必要があります。

于 2009-03-06T00:39:41.967 に答える
7

1 つの製品に少なくとも 10 人の開発者からなる開発チームがあり、サイトごとに 1 つのグローバル resx を使用しています。

この大きな resx ファイルをマージする際の問題は、私の意見では問題にならないはずです。

サイトの言語を自分で設定する開発者が 10 人いる場合、サイトで自分自身を表現する方法を統一するにはどうすればよいでしょうか? 開発者は、多くの場合、文法表現ではなくコードが得意な傾向があります。(私自身が開発者です。)

言語の専門家が resx ファイルを編集し、開発者のためにロックする必要があります。

于 2011-02-05T10:41:04.670 に答える
2

グローバル リソース ファイルは、翻訳に最適な方法です。重要なのは、文字列名の最初の数文字をページ名の略語にするなどの命名規則を使用して、Web ページごとにリソースを簡単に見つけることができるようにすることです。複数のページで多くのフレーズを再利用しようとすると、翻訳者がさらに混乱することになります。

ページ命名規則の欠如 (最初の数文字にページ名の省略形がない) を使用して、Yes、No、BTN_OK、BTN_Cancel、QTN_AreYouSure など、必要なだけ再利用可能なフレーズを定義できます。RESX の行の大部分は各ページに固有のものであり、できるだけ再利用しようとすることに集中するべきではありません。ファイル全体で 1 つの語句を変更する場合、必要に応じてテキストの検索/置換を使用して数分で慎重に行うことができます。

于 2011-10-03T04:47:50.657 に答える