1> Вам необходимо создать файл ресурсов для каждого языка
2> затем создайте модели типа
public class User
{
[Required(ErrorMessageResourceType=typeof(Languages.Resource),ErrorMessageResourceName="required")]
[Display(ResourceType=typeof(Languages.Resource),Name="name")]
public string Name { get; set; }
}
3> Ваши взгляды в порядке
4> Чтобы выбрать и установить разные языки: вы можете создать тонущее меню (или что угодно), а затем на сервере сохранить выбранный язык в куки. И для каждого запроса установите current_culture_info как показано ниже
string currentChoosenLanguage= readFromCookie(); //or may be from Database, whatever suits you
CultureInfo ci = new CultureInfo(currentChoosenLanguage); //i think jp: for japanese
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
пожалуйста, проверьте ниже ссылку
http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/