Go to http://forums.asp.net/p/1512140/3608427.aspx, watch the bradwils message dated 01-09-2010, 6:20 PM.
The solution works well for me.
It should be interesting to know the complete list of the messages overridable...
UPDATE
Here the post contents:
Create a global resource class in App_GlobalResources, and set DefaultModelBinder.ResourceClassKey to the name of this class (for example, if you made "Messages.resx", then set ResourceClassKey to "Messages").
There are two strings you can override in MVC 2:
- The string value for "PropertyValueInvalid" is used when the data the user entered isn't compatible with the data type (for example, typing in "abc" for an integer field). The default message for this is: "The value '{0}' is not valid for {1}."
- The string value for "PropertyValueRequired" is used when the user did not enter any data for a field which is not nullable (for example, an integer field). The default message for this is: "A value is required."
It's important to note in the second case that, if you have the DataAnnotationsModelValidatorProvider in your validator providers list (which it is by default), then you will never see this second message. This provider sees non-optional fields and adds an implied [Required] attribute to them so that their messages will be consistent with other fields with explicit [Required] attributes and to ensure that you get client-side validation for required fields.
In case you were still looking for an overview of the validation strings, below you can find thethe resources from System.ComponentModel.DataAnnotations.Resources.DataAnnotationsResources class as Tz_ mentioned:
[ArgumentIsNullOrWhitespace, The argument '{0}' cannot be null, empty or contain only white space.]
[AssociatedMetadataTypeTypeDescriptor_MetadataTypeContainsUnknownProperties, The associated metadata type for type '{0}' contains the following unknown properties or fields: {1}. Please make sure that the names of these members match the names of the properties on the main type.]
[AttributeStore_Type_Must_Be_Public, The type '{0}' must be public.]
[AttributeStore_Unknown_Method, The type '{0}' does not contain a public method named '{1}'.]
[AttributeStore_Unknown_Property, The type '{0}' does not contain a public property named '{1}'.]
[Common_NullOrEmpty, Value cannot be null or empty.]
[Common_PropertyNotFound, The property {0}.{1} could not be found.]
[CompareAttribute_MustMatch, '{0}' and '{1}' do not match.]
[CompareAttribute_UnknownProperty, Could not find a property named {0}.]
[CreditCardAttribute_Invalid, The {0} field is not a valid credit card number.]
[CustomValidationAttribute_Method_Must_Return_ValidationResult, The CustomValidationAttribute method '{0}' in type '{1}' must return System.ComponentModel.DataAnnotations.ValidationResult. Use System.ComponentModel.DataAnnotations.ValidationResult.Success to represent success.]
[CustomValidationAttribute_Method_Not_Found, The CustomValidationAttribute method '{0}' does not exist in type '{1}' or is not public and static.]
[CustomValidationAttribute_Method_Required, The CustomValidationAttribute.Method was not specified.]
[CustomValidationAttribute_Method_Signature, The CustomValidationAttribute method '{0}' in type '{1}' must match the expected signature: public static ValidationResult {0}(object value, ValidationContext context). The value can be strongly typed. The ValidationContext parameter is optional.]
[CustomValidationAttribute_Type_Conversion_Failed, Could not convert the value of type '{0}' to '{1}' as expected by method {2}.{3}.]
[CustomValidationAttribute_Type_Must_Be_Public, The custom validation type '{0}' must be public.]
[CustomValidationAttribute_ValidationError, {0} is not valid.]
[CustomValidationAttribute_ValidatorType_Required, The CustomValidationAttribute.ValidatorType was not specified.]
[DataTypeAttribute_EmptyDataTypeString, The custom DataType string cannot be null or empty.]
[DisplayAttribute_PropertyNotSet, The {0} property has not been set. Use the {1} method to get the value.]
[EmailAddressAttribute_Invalid, The {0} field is not a valid e-mail address.]
[EnumDataTypeAttribute_TypeCannotBeNull, The type provided for EnumDataTypeAttribute cannot be null.]
[EnumDataTypeAttribute_TypeNeedsToBeAnEnum, The type '{0}' needs to represent an enumeration type.]
[FileExtensionsAttribute_Invalid, The {0} field only accepts files with the following extensions: {1}]
[LocalizableString_LocalizationFailed, Cannot retrieve property '{0}' because localization failed. Type '{1}' is not public or does not contain a public static string property with the name '{2}'.]
[MaxLengthAttribute_InvalidMaxLength, MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length.]
[MaxLengthAttribute_ValidationError, The field {0} must be a string or array type with a maximum length of '{1}'.]
[MetadataTypeAttribute_TypeCannotBeNull, MetadataClassType cannot be null.]
[MinLengthAttribute_InvalidMinLength, MinLengthAttribute must have a Length value that is zero or greater.]
[MinLengthAttribute_ValidationError, The field {0} must be a string or array type with a minimum length of '{1}'.]
[PhoneAttribute_Invalid, The {0} field is not a valid phone number.]
[RangeAttribute_ArbitraryTypeNotIComparable, The type {0} must implement {1}.]
[RangeAttribute_MinGreaterThanMax, The maximum value '{0}' must be greater than or equal to the minimum value '{1}'.]
[RangeAttribute_Must_Set_Min_And_Max, The minimum and maximum values must be set.]
[RangeAttribute_Must_Set_Operand_Type, The OperandType must be set when strings are used for minimum and maximum values.]
[RangeAttribute_ValidationError, The field {0} must be between {1} and {2}.]
[RegexAttribute_ValidationError, The field {0} must match the regular expression '{1}'.]
[RegularExpressionAttribute_Empty_Pattern, The pattern must be set to a valid regular expression.]
[RequiredAttribute_ValidationError, The {0} field is required.]
[StringLengthAttribute_InvalidMaxLength, The maximum length must be a nonnegative integer.]
[StringLengthAttribute_ValidationError, The field {0} must be a string with a maximum length of {1}.]
[StringLengthAttribute_ValidationErrorIncludingMinimum, The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.]
[UIHintImplementation_ControlParameterKeyIsNotAString, The key parameter at position {0} with value '{1}' is not a string. Every key control parameter must be a string.]
[UIHintImplementation_ControlParameterKeyIsNull, The key parameter at position {0} is null. Every key control parameter must be a string.]
[UIHintImplementation_ControlParameterKeyOccursMoreThanOnce, The key parameter at position {0} with value '{1}' occurs more than once.]
[UIHintImplementation_NeedEvenNumberOfControlParameters, The number of control parameters must be even.]
[UrlAttribute_Invalid, The {0} field is not a valid fully-qualified http, https, or ftp URL.]
[ValidationAttribute_Cannot_Set_ErrorMessage_And_Resource, Either ErrorMessageString or ErrorMessageResourceName must be set, but not both.]
[ValidationAttribute_IsValid_NotImplemented, IsValid(object value) has not been implemented by this class. The preferred entry point is GetValidationResult() and classes should override IsValid(object value, ValidationContext context).]
[ValidationAttribute_NeedBothResourceTypeAndResourceName, Both ErrorMessageResourceType and ErrorMessageResourceName need to be set on this attribute.]
[ValidationAttribute_ResourcePropertyNotStringType, The property '{0}' on resource type '{1}' is not a string type.]
[ValidationAttribute_ResourceTypeDoesNotHaveProperty, The resource type '{0}' does not have an accessible static property named '{1}'.]
[ValidationAttribute_ValidationError, The field {0} is invalid.]
[ValidationContext_Must_Be_Method, The ValidationContext for the type '{0}', member name '{1}' must provide the MethodInfo.]
[ValidationContextServiceContainer_ItemAlreadyExists, A service of type '{0}' already exists in the container.]
[Validator_InstanceMustMatchValidationContextInstance, The instance provided must match the ObjectInstance on the ValidationContext supplied.]
[Validator_Property_Value_Wrong_Type, The value for property '{0}' must be of type '{1}'.]
(MVC 4, .NET 4.0)
Best Answer
The resources for the data annotations are in the .NET Framework 4. You have to install the language pack for the .NET Framework.