Globalization adalah proses menyiapkan aplikasi agar mampu menampilkan angka, tanggal, dan mata uang sesuai budaya pengguna, tanpa mengubah satu baris kode pun per negara. Mekanismenya berpusat pada CultureInfo.CurrentCulture: setiap thread .NET membawa culture default, dan method format tanpa argumen culture mengikuti nilai tersebut. Bab CultureInfo membahas culture sebagai argumen eksplisit; bab ini memutar sudut pandangnya menjadi pengaturan global.
Mengubah Culture Thread #
Contoh berikut menyetel DefaultThreadCurrentCulture dua kali pada decimal dan DateTime yang sama, sehingga pengaruh culture terlihat langsung:
decimal harga = 12500m;
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("id-ID");
Console.WriteLine(harga.ToString("C"));
Console.WriteLine(new DateTime(2025, 8, 17).ToString("D"));
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.GetCultureInfo("en-US");
Console.WriteLine(harga.ToString("C"));
Console.WriteLine(new DateTime(2025, 8, 17).ToString("D"));Output yang Dihasilkan:
Rp12.500,00
Minggu, 17 Agustus 2025
$12,500.00
Sunday, August 17, 2025Mari kita bedah hasilnya:
- Culture id-ID: penentu format
C(currency) menyusun simbolRp, pemisah ribuan titik, dan pemisah desimal koma; penentuD(long date) menambahkan nama hariMinggu. - Culture en-US: nilai
decimalyang sama kini tampil$12,500.00, dan tanggal yang sama tampilSunday, August 17, 2025; tidak ada angka maupun tanggal yang berubah, hanya aturan penulisannya. - Pengaturan berlaku ke bawah:
DefaultThreadCurrentCulturemenjadi nilai awalCurrentCulturesemua thread baru; kita juga dapat menyetelCurrentCultureper thread untuk skenario yang lebih halus.
Di samping culture format, .NET menyediakan CurrentUICulture yang menentukan bahasa sumber daya terjemahan, misalnya ResourceManager yang memilih berkas resource per bahasa. Keduanya bekerja berpasangan: CurrentCulture mengurus bentuk angka dan tanggal, sedangkan CurrentUICulture mengurus pilihan kalimat yang ditampilkan; bab Localization membedah sisi terjemahannya.