使用AspNetCore 1.1預覽1位所有示例我可以在documentation演示中找到如何本地化我自己的資源,我想本地化內置消息,例如驗證消息。我如何使用法語本地化內置消息的AspNetCore?
我的申請只是爲法國人使用,所以我的默認文化是FR-FR。
如何將所有內置資源本地化爲法語?
使用AspNetCore 1.1預覽1位所有示例我可以在documentation演示中找到如何本地化我自己的資源,我想本地化內置消息,例如驗證消息。我如何使用法語本地化內置消息的AspNetCore?
我的申請只是爲法國人使用,所以我的默認文化是FR-FR。
如何將所有內置資源本地化爲法語?
截至1.1預覽版1,沒有API將所有框架消息轉換爲不同的語言。
對於數據註釋驗證,您可以在代碼中自定義錯誤消息。鑑於你只是想支持法語,你可能會發現覆蓋ValidationAttribute.ErrorMessage
屬性是最容易的。
例子:
public class LoginViewModel
{
[EmailAddress(ErrorMessage = "(Translation for 'this email is invalid' here)")]
public string Email { get; set; }
}
您也可以使用ValidationAttribute.ErrorMessageResourceName
和ValidationAttribute.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)。
該方法的問題是我必須知道每個要本地化的字符串,因爲它不會難以驗證消息,噩夢時,你必須處理身份結果消息。但感謝您的答案。 –
客戶端的瀏覽器應該使用'Accept-Language' http頭以法語請求。但是,您可以使用請求過濾器設置默認語言環境,並在當前線程上設置語言環境(類似於'Thread.Current.CurrentLocale = [...]',我完全記不清楚了)。 – sturcotte06
「內置消息」是什麼意思? –
由框架返回的那些,如來自驗證屬性的標準驗證消息,來自身份驗證結果的身份驗證消息等。 –