2014-10-02 38 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