我正在使用这样的代码:
@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)
由于我的数据注释/消息/标签全部为英文,因此效果很好。但是,有什么方法可以使我拥有不止一种语言并在它们之间切换?
如果我的站点具有在日语和英语之间进行选择的语言选择器怎么办?每种语言都可以有不同的数据注释吗?
最佳答案
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>选择和设置不同的语言:您可以创建一个淹没菜单(或任何您想要的菜单),然后在服务器上,将所选语言存储在cookie中。并为每个请求设置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/