Frage

Guten Morgen,

Wir entschuldigen uns für den Neuling Frage. Ich bin nur mit ASP.NET Internationalisierung Einstellungen getting started.

Hintergrund:

Ich habe eine Website, die ein <table> HTML-Objekt zeigt. In diesem <table> HTML-Objekt, habe ich eine Spalte, die Termine anzeigt. Mein Server in den USA zu sein, zeigen diese Termine als MM/DD/YYYY auf. Viele meiner Benutzer stecken in dieser Webseite durch Excel, über die Daten -> Externe Daten importieren -> Import Web Query-Schnittstelle. Meine Nutzer, zum größten Teil, sind in den USA, so dass diese Termine korrekt angezeigt werden in ihre Excel-Bildschirme.

Jetzt muss ich die Webseite Arbeit für Großbritannien machen. Wie ist das Herunterladen sie die Daten als MM/DD/YYYY, die seit ihrer regionalen Einstellungen ihre Tabellen unbrauchbar macht werden auf DD/MM/YYYY.

Meine Frage ist:

Wie kann ich es so machen die Web-Server erkennt, dass die eingehende Anforderung eine en-GB Kultureinstellung hat? Ich konnte meine eigene kleine individuelle Abhilfe Ingenieur, aber ich bin sicher, ich bin nicht der erste Programmierer über diese zu kommen. Wie gehen die Profis das? Ich bin auf der Suche nach einer Lösung, die relativ einfach sein würde, und schnell zu setzen, aber ich will nicht, um nur einige crappy Buggy Stück meiner eigenen Logik setzen togethe, dass ich von jetzt 6 Monate fürchten werde.

Vielen Dank im Voraus, -Alan.

War es hilfreich?

Lösung

Ein paar Punkte:

  • Das -Element muss auch das Attribut Kultur = "auto". Das uiCulture Attribut wirkt sich auf die Sprache verwendeten Ressourcen abzurufen. Das Kultur Attribut wirkt sich auf die Kultur für die Formatierung von Zahlen eine Daten verwendet wird.

  • Wie bereits erwähnt in diesem MSDN-Artikel es, ist keine bewährte Methode ausschließlich auf Browser-Einstellungen zu verlassen, um die UI-Kultur für eine Seite zu bestimmen. Benutzer häufig Browser verwenden, die ihre Präferenzen nicht gesetzt sind (zum Beispiel in einem Internet-Café). Sie sollten eine Methode für Benutzer zur Verfügung stellen explizit eine Sprache oder Sprache und Kultur (Culturename) für die Seite zu wählen.

Andere Tipps

Sie können damit die Browser-UI-Kultur automatisch gesetzt, wenn Sie möchten, indem Sie die web.config eröffnet, wie folgt aus:

<configuration>
   <system.web>    
       <globalization uiCulture="auto" />
       ...

Und dann die Kultur durch den Browser automatisch in der App eingestellt werden. Dies bedeutet, dass, wenn Sie die Rahmenanzeige Datums- / Zeitwerte haben, werden sie nach den aktuellen Thread UI Kultur formatiert werden.

Dies wird auch helfen, wenn Sie verwenden, Währung und / oder lokalisierten Text (aber Sie die lokalisierten Ressourcen für jede Kultur zu schaffen, haben Sie unterstützen).

Sie können auch eine Abfrage-String-Parameter übernehmen für Überschreiben der Kultureinstellungen.

Kultur Initialisierung im Page.InitializeCulture Verfahren gehen sollte.

protected override void InitializeCulture ( )
{
  Thread.CurrentThread.CurrentCulture
    = Thread.CurrentThread.CurrentUICulture
    = Request.QueryString [ "culture" ] != null ? new CultureInfo ( Request.QueryString [ "culture" ] ) : CultureInfo.InvariantCulture;
  //base.InitializeCulture ( );
}

Verbrauch: http://tempuri.org/page.aspx?culture=en -GB

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