簡體   English   中英

如何在Asp.Net Core 1.0.0中本地化Display屬性?

[英]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.resxDataAnnotation.Localization.jp.resx

在此輸入圖像描述

然后在viewmodel中輸入英文注釋文本,例如“用戶手機”

 [Display(Name = "User Phone")]

在您希望站點支持的每個語言資源文件中為相同的英語文本創建條目

在此輸入圖像描述

點擊此處了解有關.net 4.6.2此更改的更多信息

我已經排除了確定與語言文件相對應的文化,因為這可以非常深入。 您可以在此博客文章ASP.NET文檔站點中閱讀有關它的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM