Jawaban:
Culture
mempengaruhi bagaimana data yang tergantung pada budaya (tanggal, mata uang, angka, dan sebagainya) disajikan. Berikut ini beberapa contoh:
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 juga memengaruhi penguraian input pengguna dengan cara yang sama:
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
Waspadalah terhadap kasus di mana parsing berhasil tetapi hasilnya tidak seperti yang Anda harapkan.
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
memengaruhi file sumber mana (Resources. lang .resx) yang akan dimuat oleh aplikasi Anda.
Jadi untuk memuat sumber daya Jerman (mungkin teks yang dilokalkan) Anda akan mengatur UICulture
budaya Jerman dan menampilkan pemformatan Jerman (tanpa dampak pada sumber daya mana yang dimuat) yang akan Anda atur Culture
.
CultureInfo
objek hanya untuk menentukan file sumber daya di mana a string
akan cukup? (Misalnya Language
properti dari FrameworkElement
)
Culture and UICulture
Nilai adalah pasangan string dua huruf, yang pertama adalah untuk mendefinisikan bahasa dan yang kedua untuk mendefinisikan wilayah. Contoh:
en-GB
di sini en
mewakili English
dan GB
mewakiliGreat Briton
en-US
di sini en
mewakili English
dan US
mewakiliUnited States
Gunakan Culture
untuk fungsi tergantung Budaya seperti tanggal, waktu. dan UICulture
untuk pemuatan file sumber daya yang benar.
Hanya masalah kecil untuk dipertimbangkan selain penjelasan luar biasa @ Vache: Anda dapat mengatur UICulture dan Culture pada (level halaman dan level aplikasi).
Untuk mengaturnya pada level aplikasi, cukup tambahkan sesi globalisasi di web.config
misalnya <globalization uiCulture="es" culture="es-MX" />
Dan untuk mengaturnya pada level halaman, yang bagus untuk ditambahkan pada halaman (individual) tertentu, atur atribut Culture dan UICulture dalam direktif @ page
misalnya <%@ Page UICulture="es" Culture="es-MX" %>
Properti UICulture mungkin berubah untuk setiap browser Web, sedangkan Culture tetap konstan.
Nilai Budaya dapat diatur hanya untuk budaya tertentu, seperti en-US atau en-GB. Ini mencegah persyaratan untuk mengidentifikasi simbol mata uang yang benar untuk digunakan untuk en, di mana en-US dan en-GB memiliki simbol mata uang yang berbeda. Pengguna dapat mengatur budaya dan budaya UI di browser mereka.