Yanıtlar:
Culturekültüre bağlı verilerin (tarihler, para birimleri, sayılar vb.) nasıl sunulduğunu etkiler. İşte birkaç örnek:
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
Kültür, kullanıcı girdisinin ayrıştırılmasını da aynı şekilde etkiler:
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
Ayrıştırmanın başarılı olduğu, ancak sonucun beklediğiniz gibi olmadığı durumlara dikkat edin .
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
UICultureuygulamanız tarafından hangi kaynak dosyasının (Resources. lang .resx) yükleneceğini etkiler .
Bu nedenle, Alman kaynaklarını (muhtemelen yerelleştirilmiş metin) yüklemek UICultureiçin Alman kültürünü ayarlayacak ve Alman biçimlendirmesini (hangi kaynakların yüklendiği üzerinde herhangi bir etki olmaksızın) görüntüleyeceksiniz Culture.
CultureInfokaynak dosyasını belirlemek için tüm bir nesneyi kullanmanın amacı stringnedir? (Örneğin Languagemülkü FrameworkElement)
Culture and UICulture
Değerler, iki harfli dizelerden oluşan çiftlerdir; birincisi dili tanımlamak için, ikincisi ise bölgeyi tanımlamak içindir. Misal:
en-GBburada entemsil eder Englishve GBtemsil ederGreat Briton
en-USburada entemsil eder Englishve UStemsil ederUnited States
CultureTarih, saat gibi Kültüre bağlı işlevler için kullanın . ve UICulturedoğru kaynak dosyası yüklemesi içindir.
@ Vache'nin harika açıklamasına ek olarak dikkate alınması gereken küçük bir konu: Hem UICulture hem de Culture'ı (sayfa düzeyinde ve uygulama düzeyinde) ayarlayabilirsiniz.
Bunları uygulama düzeyinde ayarlamak için, web.config dosyasına küreselleştirme oturumu eklemeniz yeterlidir.
Örneğin <globalization uiCulture="es" culture="es-MX" />
Bunları belirli bir (bireysel) sayfaya eklemek iyi olan sayfa düzeyinde ayarlamak için, Kültür ve UICulture özniteliklerini @ page yönergesi içinde ayarlayın
Örneğin <%@ Page UICulture="es" Culture="es-MX" %>
UICulture özelliği her Web tarayıcısı için değişebilir, oysa Culture sabit kalır.
Kültür değeri, yalnızca en-US veya en-GB gibi belirli kültürlere ayarlanabilir. Bu, en-US ve en-GB'nin farklı para birimi sembollerine sahip olduğu en için kullanılacak doğru para birimi sembolünü tanımlama gerekliliğini önler. Kullanıcılar, tarayıcılarında UI kültürünü ve kültürünü ayarlayabilir.