2014-10-02 48 views
4

我重申了之前提到的另一个问题。MVC 5翻译IdentityResult

我有一个基本的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); 
    } 
} 

的问题是,当用户名已被使用(或任何其它的错误消息),消息是在英语中创建一个帐户。如

名称XXX已经采取

而不是

L'identifiant XXX EST似曾相识utilisé

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

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

AddErrors(result);枚举消息(英文)将它们显示给用户。我如何修改消息?

我改变了文化在webconfig文件,

<globalization uiCulture="fr-FR" culture="fr-FR" /> 

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

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

+0

在服务器上安装的.NET法语语言包? – GSerg 2014-10-02 14:14:58

+3

看看这个线程:http://stackoverflow.com/questions/19961648/how-to-localize-asp-net-identity-username-and-password-error-messages。来自ASP.NET开发人员的最新评论于昨天发布。简短的回答是:这些消息现在不是本地化的。 – Andrei 2014-10-02 14:18:37

+0

谢谢安德烈!我想我会把它弄脏然后...... – Daniel 2014-10-02 14:22:03

回答

5

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

Install-Package Microsoft.AspNet.Identity.Core.ru