Antworten:
Culturebeeinflusst, 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
UICulturewirkt 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 UICulturedie deutsche Kultur einstellen und die deutsche Formatierung anzeigen (ohne Auswirkungen darauf, welche Ressourcen geladen werden), die Sie festlegen würden Culture.
CultureInfoObjekt zu verwenden, um die Ressourcendatei zu bestimmen, in der a stringausreichen würde? (ZB das LanguageEigentum 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-GBhier enrepräsentiert Englishund GBrepräsentiertGreat Briton
en-UShier enrepräsentiert Englishund USrepräsentiertUnited States
Verwendung Culturefür kulturabhängige Funktionen wie Datum, Uhrzeit. und UICulturedient 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.