1> You need to create a resource file for each language
2> then create models like
public class User { [Required(ErrorMessageResourceType=typeof(Languages.Resource),ErrorMessageResourceName="required")] [Display(ResourceType=typeof(Languages.Resource),Name="name")] public string Name { get; set; } }
3> your views are ok
4> To select and install different languages: you can create a recessed menu (or whatever), and then on the server, save the selected language in a cookie. And for each request set current_culture_info as below
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);
please check below link
http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/
source share