Wie lokalisiere ich die ASP.NET MVC-Anwendung?

121

Was ist die beste Vorgehensweise zum Lokalisieren Ihrer ASP.NET MVC-Anwendung?

Ich möchte zwei Situationen behandeln:

  • eine Anwendungsbereitstellung in IIS, die mehrere Sprachen verarbeiten würde
  • Bereitstellung einer Sprache / Anwendung.

In der ersten Situation sollten Sie sich für eine Art von Ansicht entscheiden, wie ~ / View / EN, ~ / View / FI, ~ / View / SWE oder etwas anderes?

Was ist mit dem zweiten Fall, nur der anwendungsbasierten Konfiguration über Web.config und dem Verweisen dieser verschiedenen Sprachen auf verschiedene URLs?

Pirho
quelle
Alternativ zu doppelten Ansichten können Sie Standard-ResX-Dateien zum Speichern kulturspezifischer Zeichenfolgen verwenden. Leider ist das Verwalten und Bearbeiten dieser Dateien, insbesondere durch Übersetzer, etwas unangenehm und schwierig. Dies kann vereinfacht werden, indem Ressourcen in der Datenbank gespeichert und ein externes Lokalisierungstool verwendet werden. Sie können sich diese kostenlose Bibliothek ansehen, die Datenbankressourcenanbieter bereitstellt
Kryszal

Antworten:

72

Sie können auch hier einen Blick auf das vollständige Handbuch zur ASP.NET MVC 2-Lokalisierung und die ASP.NET MVC 2- Modellvalidierung mit der Lokalisierung werfen. Diese Informationen helfen Ihnen bei der Arbeit mit ASP.NET MVC 2.

Fyasar
quelle
Vielen Dank für diese aktualisierte Antwort! Vor einem Jahr habe ich Matt Hawleys Ansatz verwendet, bin aber auf ernsthafte Probleme mit Unit-Tests gestoßen. Ich habe versucht, den Controller-Kontext zu verspotten, aber es fehlte noch etwas anderes und ich gab auf. Ich werde diesen MVC2-Weg durchgehen und hoffe, dass sie das herausgefunden haben.
Lauri Larjo
Ich habe diesen Ansatz in meinen Projekten verwendet. Ich sollte sagen, dass dieser Ansatz besser ist.
Fyasar
@fyasar Hallo, wir haben eine Shopping-Website in asp mvc. Wenn der Benutzer die arabische Sprache auswählt, möchten wir die gesamte Website arabisch machen. Können wir Microsoft Bing Translator oder Microsoft Translator API verwenden oder sollte ich localize.js kaufen , um dies schnell zu erreichen? ?
Shaijut
22

Sie würden Ihre ASP.NET MVC-Anwendung ähnlich wie eine klassische ASP.NET Web Form-Anwendung lokalisieren.

Sie würden nicht für jede Sprache unterschiedliche Seiten / Ansichten verwenden, aber jede Seite würde mehrere Sprachen mithilfe von Satellitenassemblies unterstützen.

Weitere Erklärungen und Beispiele finden Sie im Blogeintrag von Matt Hawley .

Elijah Manor
quelle
3

Schauen Sie sich Rob Connerys MvcStore-Projekt an. Er macht einen Screencast, der einen Weg zeigt, um das Globalisierungsproblem zu lösen.

http://wekeroad.com/2008/04/24/mvcstore-part-5

Joel Cunningham
quelle
2

Ich war noch nie davon überzeugt, die Lokalisierung innerhalb eines Formulars zu handhaben, wie Elijah vorschlägt - die unterschiedlichen Längen und Richtungen können zu sehr komplexen oder unterschiedlich aussehenden Formen führen.

Ich fange gerade erst mit MVC an, aber wenn Sie die Entkopplungsmethode verwenden, möchten Sie unabhängig von der Sprache denselben Controller verwenden (Sprache nur als Ansicht behandeln) - dies würde Ihnen dann / Controller / Aktion / Sprache / Form geben

Ian T.
quelle
2

Es gibt ein gutes Tutorial mit dem neuesten Update zum Lokalisieren der asp.net mvc-Anwendung, das alle Aspekte abdeckt, einschließlich der Lokalisierung von Anzeigenamen, der Validierung, der Verwendung von Routing (Speichern des Kulturnamens in der URL), Problemen mit dem Ausgabecache usw. ... Alex Adamyan Blog - While Meine Tastatur weint sanft

user405803
quelle
1

Mit dem Überschreiben des DataAnnotationsMetadaDataProvider sind wir tatsächlich völlig anders vorgegangen . Dort können Sie sicherstellen, dass die DisplayNameAttribute-Werte in die richtige Sprache aufgelöst werden. Tatsächlich könnten Sie dieses Attribut sogar nur dann entfernen und nach Feldnamen auflösen, wenn dies hilfreich wäre.

Michael Sander
quelle
0

Ich habe diesen Artikel vor einiger Zeit geschrieben. Es wird eine benutzerdefinierte Ansichts-Engine verwendet. http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/

Vlad
quelle
1
Während Ihr Artikel tatsächlich die Frage beantworten kann, ist es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Der Stapelüberlauf ist nur so nützlich wie seine Fragen und Antworten. Wenn Ihr Blog-Host ausfällt oder Ihre URLs verschoben werden, wird diese Antwort unbrauchbar. Vielen Dank!
Sarnold