2016-10-31 33 views
0

使用AspNetCore 1.1預覽1位所有示例我可以在documentation演示中找到如何本地化我自己的資源,我想本地化內置消息,例如驗證消息。我如何使用法語本地化內置消息的AspNetCore?

我的申請只是爲法國人使用,所以我的默認文化是FR-FR。

如何將所有內置資源本地化爲法語?

+0

客戶端的瀏覽器應該使用'Accept-Language' http頭以法語請求。但是,您可以使用請求過濾器設置默認語言環境,並在當前線程上設置語言環境(類似於'Thread.Current.CurrentLocale = [...]',我完全記不清楚了)。 – sturcotte06

+0

「內置消息」是什麼意思? –

+0

由框架返回的那些,如來自驗證屬性的標準驗證消息,來自身份驗證結果的身份驗證消息等。 –

回答

1

截至1.1預覽版1,沒有API將所有框架消息轉換爲不同的語言。

對於數據註釋驗證,您可以在代碼中自定義錯誤消息。鑑於你只是想支持法語,你可能會發現覆蓋ValidationAttribute.ErrorMessage屬性是最容易的。

例子:

public class LoginViewModel 
{ 
    [EmailAddress(ErrorMessage = "(Translation for 'this email is invalid' here)")] 
    public string Email { get; set; } 
} 

您也可以使用ValidationAttribute.ErrorMessageResourceNameValidationAttribute.ErrorMessageResourceType性能。有關更多詳細信息,請參見https://docs.microsoft.com/en-us/dotnet/core/api/system.componentmodel.dataannotations.validationattribute

如果您想要更多低級控制,則需要重寫框架本地化。 API如IStringLocalizer存在。 documentation you linked to介紹了一些可擴展性點。 (如果您想檢查框架代碼如何調用這些API,請檢查https://aspnetsource.azurewebsites.net)。

+0

該方法的問題是我必須知道每個要本地化的字符串,因爲它不會難以驗證消息,噩夢時,你必須處理身份結果消息。但感謝您的答案。 –