Antworten:
Culture
beeinflusst, wie kulturabhängige Daten (Daten, Währungen, Zahlen usw.) dargestellt werden. Hier einige Beispiele:
var date = new DateTime(2000, 1, 2);
var number = 12345.6789;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine(date); // 02.01.2000 00:00:00
Console.WriteLine(number.ToString("C")); // 12.345,68 €
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Console.WriteLine(date); // 2000-01-02 00:00:00
Console.WriteLine(number.ToString("C")); // 12 345,68 $
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(date); // 1/2/2000 12:00:00 AM
Console.WriteLine(number.ToString("C")); // $12,345.68
Kultur beeinflusst auch das Parsen von Benutzereingaben auf die gleiche Weise:
const string numberString = "12.345,68";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // OK!
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // FormatException is thrown, TryParse would return false
Hüten Sie sich vor Fällen, in denen das Parsen erfolgreich ist , das Ergebnis jedoch nicht dem entspricht, was Sie erwarten würden.
const string numberString = "12.345";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // 12345
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // 12.345, where the . is a decimal point
UICulture
wirkt sich darauf aus, in welche Ressourcendatei (Resources. lang .resx) von Ihrer Anwendung geladen wird.
Um deutsche Ressourcen (vermutlich lokalisierten Text) zu laden, würden Sie UICulture
die deutsche Kultur einstellen und die deutsche Formatierung anzeigen (ohne Auswirkungen darauf, welche Ressourcen geladen werden), die Sie festlegen würden Culture
.
CultureInfo
Objekt zu verwenden, um die Ressourcendatei zu bestimmen, in der a string
ausreichen würde? (ZB das Language
Eigentum der FrameworkElement
)
Culture and UICulture
Werte sind Paare von Zeichenfolgen mit zwei Buchstaben, die erste dient zum Definieren der Sprache und die zweite zum Definieren der Region. Beispiel:
en-GB
hier en
repräsentiert English
und GB
repräsentiertGreat Briton
en-US
hier en
repräsentiert English
und US
repräsentiertUnited States
Verwendung Culture
für kulturabhängige Funktionen wie Datum, Uhrzeit. und UICulture
dient zum korrekten Laden von Ressourcendateien.
Nur eine kleine Sache, die zusätzlich zu @ Vaches großartiger Erklärung zu beachten ist: Sie können sowohl UICulture als auch Culture auf (Seitenebene und Anwendungsebene) einstellen.
Um sie auf Anwendungsebene festzulegen, fügen Sie einfach eine Globalisierungssitzung in web.config hinzu
z.B <globalization uiCulture="es" culture="es-MX" />
Um sie auf Seitenebene festzulegen, was sich gut zum Hinzufügen auf einer bestimmten (einzelnen) Seite eignet, legen Sie die Attribute Culture und UICulture in der @ page-Direktive fest
z.B <%@ Page UICulture="es" Culture="es-MX" %>
Die UICulture-Eigenschaft kann sich für jeden Webbrowser ändern, während die Culture konstant bleibt.
Der Kulturwert kann nur für bestimmte Kulturen festgelegt werden, z. B. en-US oder en-GB. Dies verhindert, dass das richtige Währungssymbol für en identifiziert werden muss, wenn en-US und en-GB unterschiedliche Währungssymbole haben. Benutzer können die UI-Kultur und -Kultur in ihren Browsern festlegen.