4

ASP.NET プロジェクトに取り組んでおり、resx ファイルを使用して国際化を実装しています。

ただし、デフォルトのリソース ファイル (たとえば Page.ascx.resx) を作成したときにのみコンパイルされます。カルチャ固有のファイル (Page.ascx.en-US.resx、Page.ascx.km-KH.resx、Page.ascx.pl-PL.resx など) のみを使用することはできません。

既に次のアセンブリ属性を使用しています。コンパイルはできますが、実行時エラーが発生します。

[assembly: NeutralResourcesLanguageAttribute("km-KH",UltimateResourceFallbackLocation.Satellite)]

何か提案はありますか?

ありがとう!

4

1 に答える 1

3

いいえ、そうは思いません。リソース ファイルに関する基本的な仮定は、常にフォールバック戦略があるということです。de-CH である「ドイツ語 (スイス)」を探して見つけた場合、それが使用されます。欠落している場合は、「de」である「一般的な」ドイツ語を探してそれを使用します。それでも失敗した場合は、常に基本的な標準の resx ファイルに頼ることができます。

既定の resx ("de-CH" などのカルチャを含まない) は既定のアセンブリにコンパイルされるため、言語およびカルチャ固有のサテライト アセンブリが存在しなくてもアプリが動作します。

これは、実際には ASP.NET システムの奥深くにある基本的な設計上の前提であるため、そのシステムと "戦おう" とはしません。それを採用し、慣れてください。長期的にはより簡単になります。

マルク

于 2009-09-02T18:27:51.293 に答える