データアノテーション検証でASP .Net Core Webアプリケーションを作成します。モデルのプロパティを記述する属性では、ErrorMessageResourceTypeとErrorMessageResourceNameを定義します。ローカライズされたリソース - .resxファイル内の複数のリソースにアクセスできない
リソースファイルは、メインアプリケーションソリューション外の別のプロジェクトに配置されます。 (Visual Studioの2017コミュニティエディタのサポートをDOTNETのCLIを使用して)
私は私のモデルで:リソースプロジェクトで
[Required(AllowEmptyStrings = false, ErrorMessageResourceType = typeof(Resources.NewPetDataValidation),
ErrorMessageResourceName = "EmptyField")]
[StringLength(30, ErrorMessageResourceType = typeof(Resources.NewPetDataValidation),
ErrorMessageResourceName = "NameMaxLength")]
public string Name {get; set;}
私は、各言語ごとに単一の.resxファイルすなわちNewPetDataValidation.en.resx、NewPetDataValidationを作成.de.resx。
ビジュアルスタジオよりリソースエディタリソース名を含む各ファイルにリソース文字列を追加しました。
英語: 名前:EmptyField値:空欄!
ドイツ語: 名前:EmptyField値:Leer Feld!
等...カミソリで
は私が持っている表示:Html.ValidationMessageFor @ (モデル=> Model.Name、ヌル、新しい{@styleは= "色:赤"})
すべて特定の.resxファイル内の複数のリソース文字列をモデルでアクセスしないと、正常に動作します。私は、ErrorMessageResourceNameが特定のリソース名と一致することを肯定的です。
一方、翻訳されたすべてのフレーズに対して別々の.resxファイルを作成すると、アプリケーションが動作しています。しかし、私は非常に多くの.resxファイルを作成することは良い考えではないと思います。
ご協力いただきありがとうございます。