Frage

Wir werden eine ASP.NET-Website in 30 Sprachen zu entwickeln. Was ist die beste Lösung, die Website für die Entwicklung? Welche Architektur verwendet werden?

War es hilfreich?

Lösung

Ich schlage vor, UI Eigenschaften in Ressourcen-Dateien speichern (.resx) und haben die CurrentUICulture auf die spezifische Sprache für jede Anforderung:

<globalization culture="auto" uiCulture="auto" />

Wenn Ihre Website ist meist inhaltsorientierte eher als eine Business-orientierte Anwendung, die auf der Sprache basiert stark differiert, möchten Sie vielleicht den Aufbau eigenen Satzes von Seiten für jede Sprache betrachten und leiten die Benutzer basierend auf einem Cookie oder Profileigenschaft oder Request.UserLanguages. Es ist nicht möglich, eine allgemeine Vorschrift für die Globalisierung Problem zu geben. Die beste Architektur unterscheidet sich von der Art der einzelnen Projekte deutlich basiert.

Andere Tipps

NLS ist eine wiederkehrende Forderung, und oft, wenn die Frage nach NLS-Funktionalität gefragt ist, sind die Leute zu fragen der Komplexität nicht bewusst. NLS spalten typischerweise in (mindestens) zwei Bereiche:

  • NLS in der Benutzeroberfläche

  • NLS in den Daten

In Ihrem Fall eine Content-basierte Website, können Sie auch den zweiten Punkt aufgeteilt in - Daten von den Website-Anbietern erzeugt und -. Benutzerdaten erzeugen

Für UI NLS können Sie den .resx Mechanismus verwenden, wie von Mehrdad erwähnt, aber Sie sollten sich bewusst sein, dass jede Arbeit an Lokalisierung erfordert immer den Quellcode (das heißt die resx-Dateien) zu bearbeiten.

Wenn ich ein Multi-languge Web-App zu entwickeln hatte, entschied ich mich daher die NLS Anforderung in meinem Code zu handhaben, und erstellt ein paar NLS-spezifischen Tabellen, die die Benutzeroberfläche gespiegelt (btw dies die Motivation war schreiben graspx : extrahieren alle sichtbaren Texte aus aspx Quelle, wie Label.Text usw.). Es gibt eine separate Anwendung der UI-Definition zu laden, und lassen Sie Übersetzer ihre Arbeit zu tun. Die Hauptanwendung verfügt über eine Importfunktion für die übersetzten Texte.

Das Datenmodell sieht wie folgt aus: - PageItems - PageItemTexts (mit Bezug auf eine Sprache), so ist es ganz einfach

.

Das gleiche Modell kann auf den Inhalt angewendet werden. Statt Seite und PageItems Sie einfach content haben, die eine PK und eine Kennung nur halten, und eine Tabelle hält den Wortlaut der content mit einer Sprache zugeordnet

Darüber hinaus können Sie eine Art von Sprache Ausweichkette definieren, so dass ein Text, der in der Originalsprache angezeigt wird, oder eine andere (eng verwandt) Sprache noch nicht übersetzt wird.

Die angezeigte Sprache kann durch die durch den Browser (HTTP_ACCEPT_LANGUAGE) vorgesehen Sprache ausgewählt werden, jedoch soll (über eine Combobox z) durch den Benutzer überschrieben werden darf. Die gewählte Sprache sollte in einer Sitzungsvariablen gespeichert werden, in einem Cookie, oder in der Datenbank (für registrierte Benutzer).

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