在不同的语言MVC数据注解? [英] MVC Data annotation in different languages?
问题描述
我使用code是这样的:
I'm using code like this:
@Html.LabelFor(m => m.Login.Password, new { @class = "adm" })
@Html.PasswordFor(m => m.Login.Password, new { @class = "adm", size = 30 })
@Html.ValidationMessageFor(m => m.Login.Password)
我的数据注解/信息/标签全是英文它工作正常。但是有一些方法可以让我有一种以上的语言和它们之间进行切换?
It works fine as my data annotations/messages/labels are all in English. However is there some way I can have more than one language and switch between them?
如果我的网站有一个语言选择了日语和英语之间进行选择?我可以有不同的数据标注为每种语言?
What if my site has a language selector that selects between Japanese and English? Can I have different data annotation for each language?
推荐答案
1>您需要创建一个资源文件为每一种语言
1> You need to create a resource file for each language
2>然后创建模型,如
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>您的意见是奥基
3> Your views are okie
4>选择和设置不同的语言:您可以创建一个淹死菜单(或任何你想要的),然后在服务器,存储在cookie中所选择的语言。而对于设置current_culture_info如下每个请求
4> To choose and set different languages: you may create a drown menu (or whatever you want) and then on server , store the chosen 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);
请查看以下链接
<一个href=\"http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/\" rel=\"nofollow\">http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/
这篇关于在不同的语言MVC数据注解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!