Was ist der Unterschied zwischen Current und CurrentUICulture Eigenschaften von Culture in .NET?

StackOverflow https://stackoverflow.com/questions/329033

  •  11-07-2019
  •  | 
  •  

Frage

In .NET gibt es die CultureInfo Klasse im System.Globalization Namespace. Es hat zwei ähnliche Objekte beide Rückkehr Wert des CultureInfo Typs:. CurrentCulture und CurrentUICulture

Was ist der Unterschied zwischen ihnen?

Welche soll ich verwenden, wann und warum?

War es hilfreich?

Lösung

CurrentCulture ist die .NET-Darstellung des Standard-Benutzergebietsschema des Systems. Dies steuert Standardnummer und Datumsformatierung und dergleichen.

bezieht sich CurrentUICulture auf die Standardsprache der Benutzeroberfläche, eine Einstellung in Windows 2000 eingeführt Dies wird in erster Linie in Bezug auf die UI-Lokalisierung / Übersetzung Teil Ihrer App.

Was auch immer das System regionale Optionen konfiguriert ist, um die „Current“ Werte in Ihrem .NET-App haben wird.

Oft sind sie beide gleich. Aber auf meinem System würden sie anders sein. Ich ziehe meine Zahlen und Daten im deutschen Format, so dass die CurrentCulture Deutsch wäre, aber ich ziehe auch all meine Anwendungen auf Englisch, so dass die CurrentUICulture wäre Englisch

Es gibt einen schönen Artikel zum Thema: alles Out Reihenfolge: Warum wir haben beide Current und CurrentUICulture

Andere Tipps

Dies ist ein einfacher Trick, den ich verwenden zu erinnern, die man zu verwenden:

(date, currency, double).tostring = CurrentCulture

resource.fr-CA.resx file = currentUICulture

Unterschiede:

  1. CurrentCulture ist für die Formatierung von Daten und Währung während CurrentUICulture geht mit Sprache / Übersetzungen. Es wird von ResourceManager verwendet werden, um Ressourcen zu suchen durch Kultur.
  2. Namespace von CurrentCulture Klasse ist in System.Globalization während CurrentUICulture stammt aus System.Threading.
  3. CurrentCulture über unterschiedliche Anforderungen in der beibehalten wird Sitzung während CurrentUICulture muss mit jeder Anforderung eingestellt werden.

Figur:

Sie sind beide System.Globalization.CultureInfo Instanzen.

Eine gute Möglichkeit, einen Unterschied zusätzlich zu den schönen Erklärungen getan, um von anderen Anwendern, und ein wichtiger Aspekt in der Entwicklung von Webanwendungen ist die folgende:

  • CurrentCulture stellt den Aufbau des Web-Servers. Zum Beispiel, wenn Ihre ASP.NET Web-Anwendung in Deutschland gehostet wird, würde der Wert von CutlureInfo.CurrentCulture höchstwahrscheinlich de-DE werden. Somit würde die Standardformatierung für .ToString() IFormattable Typen verwenden die Standard deutschen Formatierungen, oder diejenigen, die auf dem Server-Betriebssystem als Standardwerte eingerichtet wurden.

  • CurrentUICulture kann aus dem User-Agent erfasst werden, und kann die Benutzeroberfläche Kultur des Clients eine Verbindung zu der Website darstellen. Zum Beispiel, wenn Sie diese Website aus Russland, den lokalen Einstellungen laden gesetzt russische Sprache zu verwenden, und Ihr User-Agent sendet Ihre locale-Einstellungen an den Server (Opera und IE tun dies automatisch, nicht sicher für Chrome und Firefox), die CurrenUICulture darstellen würde ru-RU. Dies bewirkt, dass alle Ressourcen wie lokalisierte Strings über Resourcemanager oder Lokalisierungs Ausdrücke in ASP.NET aspx / ascx Dateien abgerufen auf Russisch (wenn Übersetzungen zur Verfügung stehen).

Es ist erwähnenswert, dass die CurrentUICulture nicht-länderspezifische Orte wie ‚de‘ (Neutral Kulturen) unterstützt, während CurrentCulture nur länderspezifische Orte wie ‚en-GB‘ unterstützt. Einstellen CurrentCulture zu einer neutralen Kultur wird ein ArgumentException werfen.

Ich gehe davon aus, dass dies, weil Formate wie Termine und Währung stärker an das Land selbst verknüpft, aber die angezeigte Sprache ist oft austauschbar zwischen den Ländern.

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