CultureInfo class in C# to implement Globalization
CultureInfo class provides culture-specific information in .NET applications. This information includes language, sublanguage, country or region, day names, month names, calendar etc. It also provides culture specific conversions of numbers, currencies, dates or strings. In the following tutorial, I will show you how you can retrieve this information from different cultures available in .NET Framework.
To use CultureInfo class you need to import System.Globalization namespace which contains many classes used in the following code such as RegionInfo, DateTimeFormatInfo or NumberFormatInfo.
NameSpace
using System.Globalization;
CultureInfo[] ci = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
foreach (CultureInfo cul in ci)
{
ListBox1.Items.Add(cul.EnglishName);
ListBox2.Items.Add(cul.NumberFormat.CurrencySymbol.ToString());
ListBox3.Items.Add(cul.ThreeLetterISOLanguageName.ToString());
ListBox4.Items.Add(cul.TwoLetterISOLanguageName);
ListBox5.Items.Add(cul.NativeName.ToString());
}
protected void ListBox5_SelectedIndexChanged(object sender, EventArgs e)
{
CultureInfo c1 = (CultureInfo)ci.GetValue(ListBox5.SelectedIndex);
TextBox1.Text = c1.DateTimeFormat.ShortTimePattern;
TextBox2.Text = c1.DateTimeFormat.NativeCalendarName;
TextBox3.Text = c1.DateTimeFormat.AMDesignator;
TextBox4.Text = c1.DateTimeFormat.PMDesignator;
TextBox5.Text = c1.DateTimeFormat.DateSeparator;
TextBox6.Text = c1.DateTimeFormat.FirstDayOfWeek.ToString();
TextBox7.Text = c1.DateTimeFormat.FullDateTimePattern;
TextBox8.Text = c1.DateTimeFormat.GetMonthName(2);
TextBox9.Text = c1.DateTimeFormat.RFC1123Pattern;
TextBox10.Text = c1.DateTimeFormat.TimeSeparator;
TextBox11.Text = c1.DateTimeFormat.UniversalSortableDateTimePattern;
TextBox12.Text = c1.DateTimeFormat.YearMonthPattern;
TextBox13.Text = c1.NativeName;//Equal to this c1.DisplayName;
TextBox24.Text = 1000.ToString("C", c1.NumberFormat);
ArrayList a1 = new ArrayList();
ArrayList a2 = new ArrayList();
a1.Add(c1.DateTimeFormat.DayNames);
a2.Add(c1.DateTimeFormat.MonthGenitiveNames);
ListBox7.DataSource = a1[0];
ListBox8.DataSource = a2[0];
DataBind();
//RegionInfo
RegionInfo ri = new RegionInfo(c1.Name);
TextBox14.Text = ri.CurrencyEnglishName;
TextBox15.Text = ri.CurrencyNativeName;
TextBox16.Text = ri.CurrencySymbol;
TextBox17.Text = ri.DisplayName;
TextBox18.Text = ri.GeoId.ToString();
TextBox19.Text = ri.Name;
TextBox20.Text = ri.NativeName;
TextBox21.Text = ri.ThreeLetterISORegionName;
TextBox22.Text = ri.ThreeLetterWindowsRegionName;
TextBox23.Text = ri.TwoLetterISORegionName;
}