401 Stimmen

Was ist der Unterschied zwischen CurrentCulture und CurrentUICulture Eigenschaften von CultureInfo in .NET?

In .NET gibt es die CultureInfo Klasse in der System.Globalization Namensraum. Es hat zwei ähnliche Eigenschaften, die beide die Werte des CultureInfo Typ: CurrentCulture y CurrentUICulture .

Worin besteht der Unterschied zwischen ihnen?

Welche sollte ich wann und warum verwenden?

383voto

Tomalak Punkte 320467

CurrentCulture ist die .NET-Darstellung des Standardgebietsschemas des Systems. Sie steuert die Standardformatierung von Zahlen und Daten und Ähnliches.

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

Die regionalen Optionen, für die das System konfiguriert ist, werden die "aktuellen" Werte in Ihrer .NET-Anwendung sein.

Oftmals sind sie beide identisch. Aber auf meinem System wären sie unterschiedlich: Ich bevorzuge meine Zahlen und Datumsangaben im deutschen Format, so dass die CurrentCulture wäre Deutsch, aber ich bevorzuge auch alle meine Bewerbungen auf Englisch, so dass die CurrentUICulture wäre Englisch.

Es gibt einen schönen Artikel zu diesem Thema: Alles in Ordnung bringen: Warum wir sowohl CurrentCulture als auch CurrentUICulture haben

116voto

foxontherock Punkte 1736

Mit diesem einfachen Trick kann ich mir merken, welchen ich verwenden muss:

(date, currency, double).tostring = CurrentCulture

resource.fr-CA.resx file = currentUICulture

21voto

Ivaylo Slavov Punkte 8479

Ein guter Weg, um neben den netten Erklärungen von Mitbenutzern einen Unterschied zu machen, und ein wichtiger Aspekt bei der Entwicklung von Webanwendungen ist der folgende:

  • CurrentCulture steht für die Einrichtung des Webservers. Wenn Ihre ASP.NET-Webanwendung zum Beispiel in Deutschland gehostet wird, ist der Wert von CutlureInfo.CurrentCulture wäre höchstwahrscheinlich de-DE . Daher ist der Standard .ToString() Formatierung für IFormattable Typen würden die deutschen Standardformatierungen verwenden oder die, die auf dem Server-Betriebssystem als Standardeinstellungen eingerichtet wurden.

  • CurrentUICulture kann vom Benutzeragenten erfasst werden und kann die Kultur der Benutzeroberfläche des Clients darstellen, der sich mit der Website verbindet. Wenn Sie beispielsweise diese Website aus Russland laden, Ihre lokalen Einstellungen auf Russisch eingestellt sind und Ihr User Agent Ihre Gebietsschemaeinstellungen an den Server sendet (Opera und IE tun dies automatisch, bei Chrome und FireFox bin ich mir nicht sicher), wird die CurrenUICulture würde darstellen ru-RU . Dies führt dazu, dass alle Ressourcen wie lokalisierte Zeichenketten, die über ResourceManager abgerufen werden, oder Lokalisierungsausdrücke in ASP.NET aspx/ascx-Dateien in Russisch angezeigt werden (sofern Übersetzungen verfügbar sind).

19voto

Matas Vaitkevicius Punkte 53532

Die Unterschiede:

  1. CurrentCulture dient der Formatierung von Datum und Währung, während CurrentUICulture geht mit Sprache/Übersetzungen. Sie wird verwendet von ResourceManager um Ressourcen nach Kulturen zu suchen.
  2. Namespace von CurrentCulture Klasse ist in System.Globalization während CurrentUICulture kommt von System.Threading .
  3. CurrentCulture über verschiedene Anfragen in der Sitzung hinweg beibehalten wird, während CurrentUICulture muss bei jeder Anfrage gesetzt werden.

Ähnlichkeit:

Sie sind beide System.Globalization.CultureInfo Instanzen.

14voto

Sebris87 Punkte 433

Es ist erwähnenswert, dass die CurrentUICulture unterstützt nicht länderspezifische Gebietsschemata wie 'en' (neutrale Kulturen), während CurrentCulture Unterstützt NUR länderspezifische Gebietsschemata wie 'en-GB'. Einstellung CurrentCulture zu einer neutralen Kultur wird eine ArgumentException .

Ich nehme an, dass dies daran liegt, dass Formate wie Datum und Währung stärker an das Land selbst gebunden sind, die angezeigte Sprache aber oft zwischen den Ländern austauschbar ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X