ResourceManager wählt bei Verwendung einer benutzerdefinierten Kultur nicht den richtigen Ressourcensatz aus

9

Ich habe eine lokalisierte MVC-Website mit dem Code erstellt, der auf diesem Blog von Alex Adamyan .

Das funktioniert großartig, wenn ich eine bestehende Kultur verwende. Ich versuche jedoch, für Tagalog zu lokalisieren (tl oder tl-PH). In Windows ist diese Kultur nicht integriert, daher habe ich eine erstellt (ich habe sowohl tl als auch tl-PH ausprobiert), wie im folgenden Code beschrieben:

%Vor%

Ich habe auch vier Ressourcendateien auf meiner Testseite in ~ / Views / Home / Resources:

  • Startseite.aspx.resx;
  • Startseite.aspx.tl.resx
  • Home.aspx.tl-PH.resx
  • Startseite.aspx.de.resx

Wenn ich baue, bekomme ich drei entsprechend benannte Verzeichnisse unter meinem bin-Verzeichnis, jedes mit einer entsprechend benannten DLL.

Wenn ich also auf die Homepage meiner Website Ссылка gehe, bekomme ich die Standardsprachzeichen (Englisch).

Wenn ich auf die deutsche (de) Homepage gehe Ссылка bekomme ich die deutsche Version der Seite.

Wenn ich zu den Tagalog-Versionen Ссылка oder gehe Ссылка , ich bekomme die englische Version anstelle der Tagalog-Version.

Ich habe Haltepunkte im Ressourcenabrufcode platziert und bestätigt, dass die Kultur und die Benutzeroberflächenkultur des aktuellen Threads korrekt auf die Tagalog-Kultur eingestellt sind und dass Tagalog die Kultur ist, die an resourceManager.GetString (Schlüssel, Kultur) übergeben wird.

Irgendwelche Gedanken? Habe ich meine Kulturen nicht korrekt erstellt?

    
Kenneth Baltrinic 18.09.2010, 22:40
quelle

1 Antwort

1

Ich denke, Ihre Kulturen sind nie registriert, zumindest eine davon nicht.

Der folgende Code löst eine Ausnahme aus, da Sie keine regionalen Werte für eine neutrale Kultur angeben können. Genauso wie Sie kein DateTimeFormatInfo-Objekt für eine neutrale Kultur erstellen können.

%Vor%

Es sollte so etwas sein

%Vor%

Die zweite spezifische Kultur scheint in Ordnung.

    
Steven K. 19.12.2010 21:49
quelle