2016-08-08 72 views

Antwort

5

ASP.NET Core 1.0 unterstützt keine vordefinierte Lokalisierung basierend auf dem neu eingeführten Lokalisierungsansatz für das Display-Attribut. Eine Möglichkeit besteht darin, den Ansatz vor ASP.NET Core 1.0 für die Lokalisierung mit Ressourcendateien zu verwenden. Ich habe ein einfaches Demo-Projekt implementiert, das zeigt, wie das Anzeigeattribut hier lokalisiert wird. https://github.com/feradz/ASPNetCoreLocalization/wikiDataAnnotations.resx wird zur Lokalisierung des Display Attributs verwendet.

Bei diesem Ansatz darf der Anzeigename keine Sonderzeichen und Leerzeichen enthalten. Zum Beispiel kann der Anzeigename nicht Library name, aber es kann Anfang August 2016 Lokalisierung wurde viel einfacher LibraryName

[Display(Name="LibraryName", ResourceType = typeof(Resources.DataAnnotations))] 
public string LibraryName { get; set; } 
+0

Ich weiß nicht warum, aber es funktioniert nicht. Ich habe alles wie vorgeschlagen gemacht, aber nichts passiert. –

+0

Kompiliert und wird das Beispiel aus dem Github korrekt ausgeführt? – feradz

+0

Ich werde es am Montag versuchen! –

-1

Von NET Framework 4.6.2 veröffentlicht.

Behalten Sie Ihre Ansichtsmodellklasse mit den Primärsprachdatenanmerkungen in Englisch, z.

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; } 
} 

ein App_LocalResources Erstellen und Ressourcendateien mit der Konvention DataAnnotation.Localization.{locale}.resx zum Beispiel hinzufügen für chinesische DataAnnotation.Localization.zh.resx oder DataAnnotation.Localization.jp.resx für japanische

dann für den englischen Anmerkungstext in Ihrem Viewmodel z.B. "User Phone"

[Display(Name = "User Phone")] 

einen Eintrag für den gleichen englischen Text in jeder Datei Sprachressource erstellen Sie Ihre Website

enter image description here

Lesen Sie mehr here über diese Änderung in .net 4.6.2

unterstützen möchten

Ich habe ausgeschlossen, die Kultur zu bestimmen, die der Sprachdatei entspricht, da dies ziemlich tief gehen kann. Sie können mehr darüber lesen in this blog post und in der ASP.NET documentation Website

+0

Bitte, können Sie dazu mit ASP.NET Core 1.0 Beispiel geben. Ich habe es nie geschafft, willkürliche Zeichenfolgen als Anzeigename zu verwenden. – feradz

+0

Aus meiner Sicht sind diese Verbesserungen für ASP.NET und nicht für ASP.NET Core. – MDummy

+1

Ich bin downvoting, da das OP explizit nach einem .NET Core-basierten Szenario fragte – superjos