MVC 5翻译IdentityResult

Dan*_*iel 4 c# asp.net-mvc asp.net-mvc-5

我改述了我之前提出的另一个问题.

我有一个基本的C#Asp.net MVC 5应用程序.我通过以下代码创建了一个帐户(由Vs 2013中的模板提供)

protected async Task<bool> CreateAccountAndAddRoleAsync(UserManager<ApplicationUser> userManager, ApplicationUser user, string password, string role)
{
    var result = await userManager.CreateAsync(user, password);

     if (result.Succeeded)
     {
          try
          {
              var roleResult = await userManager.AddToRoleAsync(user.Id, role);
              if (roleResult.Succeeded)
              {
                   //await SignInAsync(userManager, user, isPersistent: false);
                   return true;
              }
           }
           catch (Exception e)
           {
               Console.WriteLine(e);
              throw;
           }
     }
     AddErrors(result);
     return false;
}

protected void AddErrors(IdentityResult result)
{
   foreach (var error in result.Errors)
   {
       ModelState.AddModelError("", error);
   }
}
Run Code Online (Sandbox Code Playgroud)

问题是当已经使用用户名(或任何其他错误消息)时,消息是英文的.如

名称xxx已被采用

代替

L'identifiant xxxestdéjàutilisé

问题是该消息是由框架提供的

var result = await userManager.CreateAsync(user,password);

AddErrors(result);枚举消息(英文)以将其显示给用户.如何修改消息?

我用web改变了webconfig文件中的文化

<globalization uiCulture="fr-FR" culture="fr-FR" />
Run Code Online (Sandbox Code Playgroud)

但我仍然有一条英文信息.事实上,真正的问题是,即使我想用英语发送另一条消息,我也无法更改框架提供的消息.

有谁知道如何更改由IdentityResult?提供的消息?

Dov*_*nov 7

不要忘记从nuget安装语言包,例如:

Install-Package Microsoft.AspNet.Identity.Core.ru
Run Code Online (Sandbox Code Playgroud)