Frage

Was ist der beste Weg, um die Unterstützung mehrerer Sprachen für die Benutzeroberfläche in einem ASP.NET MVC-Anwendung?Ich habe Leute gesehen verwenden Sie Ressource-Dateien für andere Anwendungen.Ist das immer noch der beste Weg?

War es hilfreich?

Lösung

Wenn Sie mit der Standard-view-Motoren, dann mit lokalen Ressourcen arbeiten, in den Blick.Allerdings, wenn Sie brauchen, um zu packen Ressourcen-strings innerhalb einer controller-Aktion, Sie nicht bekommen kann lokale Ressourcen und Globale Ressourcen.

Das macht Sinn, wenn man darüber nachdenkt, weil die lokalen Ressourcen werden lokal auf einer aspx-Seite und in der Steuerung, dem Sie noch nicht ausgewählt ist Ihre Ansicht.

Andere Tipps

Ich fand diese Ressource sehr hilfreich

Seine eine wrapper-Runde der HttpContext.Aktuelle.GetGlobalResourceString und HttpContext.Aktuelle.GetLocalResourceString erlaubt, dass Sie zum Aufruf der Ressourcen wie diese...

// default global resource
Html.Resource("GlobalResource, ResourceName")

// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")

// default local resource
Html.Resource("ResourceName")

// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")

Das einzige problem, das ich fand, ist, dass der Controller keinen Zugriff auf die lokale Ressource-strings.

Ja, Ressourcen sind immer noch der beste Weg, um Unterstützung für mehrere Sprachen in die .NET-Umgebung.Denn Sie sind einfach zu Referenz-und sogar noch einfacher neue Sprachen hinzufügen.

Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...

Sie sind also Recht noch die Ressource-Dateien.

Obstgarten-Projekt verwendet eine shortcut-Methode, genannt "T", alles zu tun, in-page-string-übersetzungen.So sehen Sie tags, die mit einem @T("Eine Zeichenfolge zu Übersetzen").

Ich habe die Absicht, zu prüfen, wie dies umgesetzt wird hinter die kulissen und möglicherweise verwenden es in Zukunft Projekte.Der kurze name hält der code sauberer, da es verwendet wird eine Menge.

Was mir an diesem Ansatz ist die ursprüngliche Zeichenkette (Englisch in diesem Fall) ist noch gut sichtbar in die code, und tut nicht erfordern Sie eine Suche in einer Ressource-tool oder einem anderen Speicherort zu decodieren, was die tatsächliche Zeichenfolge sollte hier sein.

Finden http://orchardproject.net für mehr info.

Einige der anderen Lösungen, wie erwähnt Antwort nicht für die veröffentlichte version von MVC (Sie arbeitete mit früheren Versionen der alpha/beta).

Hier ist ein guter Artikel, der eine Implementierung der Lokalisierung wird stark typisiert und wird nicht brechen, das Gerät testen von Controllern und views: Anleitung zur Lokalisierung für MVC v1

Dies ist eine weitere option, und Sie haben Zugriff auf die CurrentUICulture im controller:

Check MVC3-multi-Sprache

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top