Home » Architektur » ASP.NET MVC Internationalisierung
Internationalisierung und Lokalisierung von Web-Anwendungen ist eine typische, immer wiederkehrende Anforderung. Bezogen auf Line-of-Business-Anwendungen (LOB) gebaut mit ASP.NET MVC gibt es dazu sogar eine Menge an Informationen, etwa hier oder einfach über eine Bing-Suche.
Tatsächlich eine Anwendung lokalisieren zu wollen kann trotzdem zur Herausforderung werden…
Das Problem ist nicht, dass es die notwendigen Informationen nicht irgendwo gäbe. Sie ist nur sehr verteilt, konzentriert sich immer nur auf Teilaspekte und selbst bei einigermaßen gut dokumentierten Aspekten finden sich oft Lücken in den Randbereichen. Anders ausgedrückt: Was ich nicht finden konnte, ist ein umfassender Überblick über alle Aspekte der Internationalisierung einer Web-Anwendung gebaut mit ASP.NET MVC.
Also werde ich versuchen, genau das zu liefern
Zur Klarstellung: “Internationalisierung” (“i18n”) stellt die Grundlagen bereit, um in einer Anwendung unterschiedliche Sprachen und Regionen unterstützen zu können; “Lokalisierung” (“L10n”) ist die Anpassung bzw. Bereitstellung der Anwendung für eine bestimmte Sprache oder Region. Zwei Seiten der selben Medaille.
Weitere Hintergründe hier.
Hier die Übersicht der Beiträge…
TOC
- Einleitung (dieser Beitrag)
- Teil 1: Grundlagen
- Teil 2: Browser-Einstellungen auswerten
- Teil 3: Wechsel der Sprache
- Teil 4: CSS Styles
- Teil 5: View-Lokalisierung per Code
- Teil 6: Nutzung von .NET Ressourcen
- Teil 7: Model Attribute
- Teil 8: Datenvalidierung
- Teil 9: Fremde Controls
- Teil 10: Finale
Spielfeld
Als Basis für dieses Unterfangen soll ein simpler Business Contract zur Verwaltung von Aktien-Information dienen, zusammen mit einer (ebenso minimalistischen) Implementierung. Hier ist der Contract:
1: public interface IStockService
2: {
3: Stock[] GetAllStocks();
4: Stock GetStock(int id);
5: void UpdateStock(Stock stock);
6: }
Und:
1: [DebuggerDisplay("BusinessContract.Stock: {ID} {Isin} {Name} {Price} {Date}")]
2: public class Stock
3: {
4: public int ID { get; set; }
5: /// <summary>
6: /// http://de.wikipedia.org/wiki/International_Securities_Identification_Number
7: /// 12-character alpha-numerical code
8: /// </summary>
9: public string Isin { get; set; }
10: public string Name { get; set; }
11: public decimal Price { get; set; }
12: public DateTime Date { get; set; }
13: }
Eine darauf aufbauende MVC4-Anwendung ist eine simple Fingerübung. Ein entsprechender Controller und passende Views für einfache Listen- und Detail-Darstellung, sowie eine Bearbeitungsseite – dank der Wizards für Controller und Views in Visual Studio ist das in kürzester Zeit erstellt. Etwas CSS Styling, und das Ganze sieht so aus:
Natürlich zunächst in englisch gehalten – die Sprache unserer Profession. Trotzdem kommt irgendwann der Zeitpunkt, an dem ich gerne in meiner Muttersprache angesprochen würde. Und bitte durchgängig und konsequent!
Wir werden uns mit den nächsten Beiträgen langsam dahin vortasten…
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen