У меня был такой же вопрос . В этом посте были показаны различные способы решения проблемы: http://carrarini.blogspot.com/2010/08/localize-aspnet-mvc-2-dataannotations.html
В конце я использовал шаблон T4 для генерации класса ресурсов. У меня также есть метод HtmlHelper для доступа к моим ресурсам:
public static string TextFor(this HtmlHelper html, string resourceName, string globalResourceName, params object [] args)
{
object text = HttpContext.GetGlobalResourceObject(globalResourceName, resourceName);
return text != null ? string.Format(text.ToString(), args) : resourceName;
}
Другая версия генерирует локализованную версию из Controller и View:
public static string LocalTextFor(this HtmlHelper html, string resourceName, params object [] args)
{
string localResourceName = string.Format("{0}.{1}", html.ViewContext.RouteData.Values["controller"],
html.ViewContext.RouteData.Values["action"]);
object text = HttpContext.GetGlobalResourceObject(localResourceName, resourceName);
return text != null ? string.Format(text.ToString(), args) : langName;
}