web-dev-qa-db-ja.com

フィールドは数字でなければなりません。このメッセージを別の言語に変更する方法は?

すべてのintフィールドのメッセージを変更して、次のように言うのではなく、

The field must be a number英語では、次のように表示されます。

El campo tiene que ser numerico スペイン語で。

方法はありますか?

33
Diego_DX

ASP.NET MVC 4以降を使用している場合は、この投稿を確認してください。

ASP.NET MVCおよびWebFormsのデフォルトエラーメッセージのローカライズ

基本的に、_Global.asax_のApplication_Start()メソッドに次のコードを追加する必要があります。

_ ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
 DefaultModelBinder.ResourceClassKey = "Messages";
_

Visual Studio内のソリューションエクスプローラーでASP.NET MVCプロジェクトを右クリックし、_Add => Add ASP.NET Folder => App_GlobalResources_を選択します。

次に、このフォルダー内に_.resx_という名前の_Messages.resx_ファイルを追加します。

最後に、その_.resx_ファイルに次の文字列リソースを追加します。

_Name                   Value
====                   =====
FieldMustBeDate        The field {0} must be a date.
FieldMustBeNumeric     The field {0} must be a number.
PropertyValueInvalid   The value '{0}' is not valid for {1}.
PropertyValueRequired  A value is required.
_

あなたは行ってもいいはずです。

興味のある値はFieldMustBeNumericであることに注意してください。 Spanishにローカライズするには、_Messages.es.resx_という名前の別のリソースファイルを追加する必要があります。この特定の_.resx_ファイルで、リソース値を次のものに置き換えます。

_Name                Value
====                =====
FieldMustBeNumeric  El campo {0} tiene que ser numerico.
_

ASP.NET MVC 3を下向きに使用している場合、このソリューションは同じ結果を達成するのに役立ちます。 https://stackoverflow.com/a/2551481/114029

62

検証用にカスタムメッセージを設定できます。

 [RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
 public decimal UnitPrice { get; set; } 
7
M.Azad

Integer、double、およびfloatごとにカスタムメッセージを指定する場合。以下のように文字列で範囲属性を使用できます。

    [Required(ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "YearOfEstablishmentRequired")]
    [Range(0, int.MaxValue, ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "ValidYearOfEstablishment")]
    [Display(Name = "Year Of Establishment")]
    public string YearOfEstablishment { get; set; }

上記のように、すべてのプロパティに対してカスタムメッセージを指定できます。

0
Dilip0165