ASP.NET MVC: ValidationAttribute y ErrorMessage localizado

Tengo ValidationAttribute como:

    public class Username : ValidationAttribute
 {
  public override bool IsValid(object value)
  {
   if (value == null)
    return false;

   return RegExp.Validate(RegExpLib.Username,value.ToString());
  }
 }

..y usándolo de esta manera:

    public class AccountSignIn
 {
  [Username(ErrorMessageResourceName ="txtUsername",ErrorMessageResourceType=typeof(SignIn))]
  public string Username { get; set; }

  public string Password { get; set; }

  public bool RememberMe { get; set; }

  public string ReturnUrl { get; set; }
 }

SignIn es el archivo de recursos en App_GlobalResources y "txtUsername" - es el nombre de la cadena en el archivo de recursos.

Problema: los mensajes de error no se muestran.

Pregunta: Cómo configurar un mensaje de error si tengo pocos idiomas en el sitio web.

Otra información:

Soy capaz de accederSignIn.txtUsername Desde Vistas o cualquier archivo en el proyecto. Desde el controlador

ModelState.AddModelError("Username", Resources.SignIn.txtUsername);

también funciona bien ... Puedo asignar ErrorMessage dentro de ValidationAttribute, pero obtuve un error después del segundo intento de validación ... si coloco el cheque de esta manera:

   if(ErrorMessage != Resources.SignIn.txtUsername)
       ErrorMessage = Resources.SignIn.txtUsername; 

Tengo un error después de cambiar a otro idioma: ErrorMessage solo se puede asignar una vez.

Por favor, consejo cómo puedo resolverlo.

Gracias de antemano.

Respuestas a la pregunta(3)

Su respuesta a la pregunta