asp.net mvc validación de entrada / modelo multi idioma

Soy bastante nuevo en asp.net mvc, y sé que estoy tratando de encontrar una buena práctica para validar la entrada.

En el proyecto vamos a utilizar el marco de la entidad, donde puede agregar anotaciones de datos a las propiedades de la siguiente manera:

[Required(ErrorMessage = "Please enter a product name")]
[Column]
public string Name { get; set; }

Esto es bastante bueno, sin embargo, tenemos un sitio web multilingüe (como la mayoría de los sitios web), por lo que no solo podemos mostrar los mensajes de error en inglés. ¿Cuál puede ser una forma de resolver esto? ¿Puedo cambiar este mensaje de error @ tiempo de ejecución, dependiendo del idioma del usuario? ¿Debo usar la validación del lado del cliente Jquery?

Gracias por el aporte.

Actualización He probado el código en el sitio web de Phil Haack. Esto funcionará con recursos estáticos, sin embargo, utilizamos recursos que provienen de una base de datos, no recursos estáticos.

Si completo lo siguiente para las anotaciones de datos:

   [MetadataType(typeof(IncidentsMetaData))]
public partial class INCIDENTS
{
    private class IncidentsMetaData
    {
        [Required(ErrorMessageResourceType = typeof(CustomResourceProviders.DBResourceProviderFactory),
            ErrorMessageResourceName="1277")]
        public string SUBJECT { get; set; }
    }
}

Luego aparece el siguiente error: El tipo de recurso 'CustomResourceProviders.DBResourceProviderFactory' no tiene una propiedad estática accesible llamada '1277'.

Por supuesto, no existe tal propiedad, debería ser accedida por una función. ¿Alguna idea de lo que podría hacer al respecto? tnx

Respuestas a la pregunta(3)

Su respuesta a la pregunta