[英]How to localize Display attribute in Asp.Net Core 1.0.0?
如何在Display
屬性中本地化Name
? 例如:
[Display(Name = "Library name")]
public string LibraryName { get; set; }
該屬性該怎么辦?
ASP.NET Core 1.0不支持基於新引入的Display
屬性本地化方法的開箱即用本地化。 一種方法是使用ASP.NET Core 1.0之前的方法進行資源文件的本地化。 我已經實現了一個簡單的演示項目,它顯示了如何在這里本地化display屬性https://github.com/feradz/ASPNetCoreLocalization/wiki DataAnnotations.resx
用於本地化Display
屬性。
在此方法中,顯示名稱不能包含特殊字符和空格。 例如,顯示名稱不能是Library name
但它可以是LibraryName
[Display(Name="LibraryName", ResourceType = typeof(Resources.DataAnnotations))]
public string LibraryName { get; set; }
從2016年8月初發布的.net框架4.6.2開始,本地化變得更加容易。
使用英語的主要語言數據注釋保持視圖模型類,例如
public class ContactInfo
{
[Required(ErrorMessage = "Your email address is invalid")]
[Display(Name = "User Email")]
public int Email { get; set; }
[Required(ErrorMessage = "Your phone number is invalid")]
[Display(Name = "User Phone")]
public int Phone { get; set; }
}
使用約定DataAnnotation.Localization.{locale}.resx
創建App_LocalResources
並添加資源文件DataAnnotation.Localization.{locale}.resx
例如,用於日語的中文DataAnnotation.Localization.zh.resx
或DataAnnotation.Localization.jp.resx
然后在viewmodel中輸入英文注釋文本,例如“用戶手機”
[Display(Name = "User Phone")]
在您希望站點支持的每個語言資源文件中為相同的英語文本創建條目
點擊此處了解有關.net 4.6.2
此更改的更多信息
我已經排除了確定與語言文件相對應的文化,因為這可以非常深入。 您可以在此博客文章和ASP.NET文檔站點中閱讀有關它的更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.