2017-10-30 2 views
0

auf einer ASP.NET-Core 2.0 Ansicht der folgende Ich habe übersetzt.String nicht in ASP.NET-Core

Dann auf einer Klasse der Anwendung habe ich versucht:

public class MyClass { 

    public String Get(IStringLocalizer<MyClass> localizer) { 

     var l = localizer["my message"]; 

    } 
} 

In diesem Fall wird die Zeichenfolge nicht übersetzen und ich erhalte die folgenden Informationen:

Name [string]: "my message" 
ResourceNotFound [bool]: true 
SearchedLocation [string]: null 
Value [string]:"my message" 

Was bin ich?

+0

Nach dem Objekt zurückgegeben es keine Ressource wurde aus der Übersetzung zu erhalten. Bist du sicher, dass du es richtig konfiguriert hast? https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization#working-with-resource-files – Nkosi

+0

Ich denke, ich bin. Aber wenn ViewLocalizer die Zeichenfolge erhält sollte StringLocalizer es nicht bekommen? –

+0

Woher beziehen Sie den StringLocalizer? – Nkosi

Antwort

0

Der Localizer sollte als explizite Abhängigkeit über Konstruktorinjektion in die Klasse eingefügt werden.

public class MyClass { 
    IStringLocalizer<MyClass> localizer; 
    public MyClass(IStringLocalizer<MyClass> localizer) { 
     this.localizer = localizer; 
    } 

    public string Get() { 
     return localizer["my message"]; 
    } 
} 

Globalization and localization in ASP.NET Core

+0

Das hat nicht funktioniert ... Ist es möglich, IStringLocalizer anstelle von IStringLocalizer zu injizieren? Ich meine, Geteilt Ressourcen –

+0

@ MiguelMoura wird nicht weh tun, es zu versuchen und zu sehen. – Nkosi

+0

Ich habe versucht und hat nicht funktioniert, deshalb fragte ich ... –

Verwandte Themen