Csharp/C Sharp/Development Class/CultureInfo I18N
Содержание
- 1 Create Culture info for fr-FR
- 2 Create culture info from CurrentUICulture
- 3 Create Culture info in es-US
- 4 Derive Number Format info from culture info
- 5 enumerates all available cultures
- 6 illustrates the CultureInfo class
- 7 illustrates the CultureInfo class 2
- 8 illustrates the current cultures
- 9 new CultureInfo("da-DK")
- 10 new CultureInfo( "de-DE" )
- 11 new CultureInfo( "ru-RU" )
- 12 Print all Culture info
- 13 Set Culture to current thread
Create Culture info for fr-FR
<source lang="csharp"> using System; using System.Globalization; using System.Threading; class Class1 {
static void Main(string[] args) { CultureInfo MyCulture = new CultureInfo("fr-FR"); DateTime MyDate = System.DateTime.Now; Thread.CurrentThread.CurrentCulture = MyCulture; Console.WriteLine(MyDate.ToLongDateString()); Console.WriteLine(MyDate.ToLongTimeString()); Console.WriteLine(MyDate.ToShortDateString()); Console.WriteLine(MyDate.ToShortTimeString()); }
}
</source>
Create culture info from CurrentUICulture
<source lang="csharp"> using System; using System.Globalization; using System.Threading;
class Class1 {
static void Main(string[] args) { CultureInfo MyCulture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.LCID); NumberFormatInfo Vnf = new NumberFormatInfo(); Console.WriteLine(123456.ToString("c", MyCulture)); Vnf = MyCulture.NumberFormat; Vnf.CurrencyDecimalSeparator = ","; Vnf.CurrencyGroupSeparator = "."; Vnf.NumberDecimalSeparator = ","; Vnf.NumberGroupSeparator = "."; MyCulture.NumberFormat = Vnf; Console.WriteLine(123456.ToString("C", MyCulture)); }
}
</source>
Create Culture info in es-US
<source lang="csharp"> using System; using System.Globalization; class Class1 {
static void Main(string[] args) { CultureInfo MyCulture = new CultureInfo("es-ES"); DateTimeFormatInfo Myfmt; DateTimeFormatInfo fmt1; Myfmt = MyCulture.DateTimeFormat; fmt1 = DateTimeFormatInfo.CurrentInfo; Console.WriteLine(Myfmt.GetMonthName(12)); Console.WriteLine(fmt1.GetMonthName(12)); }
}
</source>
Derive Number Format info from culture info
<source lang="csharp"> using System; using System.Globalization; using System.Threading;
class Class1 {
static void Main(string[] args) { CultureInfo MyCulture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.LCID); NumberFormatInfo Vnf = new NumberFormatInfo(); Vnf = MyCulture.NumberFormat; Vnf.CurrencyDecimalSeparator = ","; Vnf.CurrencyGroupSeparator = "."; Vnf.NumberDecimalSeparator = ","; Vnf.NumberGroupSeparator = "."; MyCulture.NumberFormat = Vnf; CultureInfo FRCulture = new CultureInfo("fr-FR");
MyCulture.NumberFormat = FRCulture.NumberFormat; Console.WriteLine(123456.ToString("c", MyCulture)); }
}
</source>
enumerates all available cultures
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/*
Example21_9.cs enumerates all available cultures
- /
using System; using System.Globalization; public class Example21_9 {
public static void Main() { foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures)) { Console.WriteLine("{0} | {1}", ci.EnglishName, ci.Name); } }
}
</source>
illustrates the CultureInfo class
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/*
Example21_6.cs illustrates the CultureInfo class
- /
using System; using System.Globalization; public class Example21_6 {
public static void Main() { // create a CultureInfo object for the nl-BE culture CultureInfo ci = new CultureInfo("nl-BE"); // show some basic information Console.WriteLine("Native Name: " + ci.NativeName); Console.WriteLine("English Name: " + ci.EnglishName); // get datetime formatting info DateTimeFormatInfo dtfi = ci.DateTimeFormat; Console.WriteLine("Long date pattern: " + dtfi.LongDatePattern); // get numeric formatting info NumberFormatInfo nfi = ci.NumberFormat; Console.WriteLine("Currency symbol: " + nfi.CurrencySymbol); Console.WriteLine("Decimal seperator: " + nfi.NumberDecimalSeparator); }
}
</source>
illustrates the CultureInfo class 2
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/*
Example21_7.cs illustrates the CultureInfo class
- /
using System; using System.Globalization; using System.IO; public class Example21_7 {
public static void Main() { // create a CultureInfo object for the nl-BE culture CultureInfo ci = new CultureInfo("nl-BE"); // create a file to hold the results FileStream outStream = File.Create("CultureInfo.txt"); // use a StreamWriter to write data to the file StreamWriter sw = new StreamWriter(outStream); // show some basic information sw.WriteLine("Native Name: " + ci.NativeName); sw.WriteLine("English Name: " + ci.EnglishName); // get datetime formatting info DateTimeFormatInfo dtfi = ci.DateTimeFormat; sw.WriteLine("Long date pattern: " + dtfi.LongDatePattern); // get numeric formatting info NumberFormatInfo nfi = ci.NumberFormat; sw.WriteLine("Currency symbol: " + nfi.CurrencySymbol); sw.WriteLine("Decimal seperator: " + nfi.NumberDecimalSeparator); // flush and close the file sw.Flush(); sw.Close(); }
}
</source>
illustrates the current cultures
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/*
Example21_8.cs illustrates the current cultures
- /
using System; using System.Globalization; using System.Threading; public class Example21_8 {
public static void Main() { // set the current culture for the executing thread Thread.CurrentThread.CurrentCulture=new CultureInfo("de-DE"); // and display it Console.WriteLine(Thread.CurrentThread.CurrentCulture.Name); // create another new culture CultureInfo ci = new CultureInfo("en-US"); // prove that this doesn"t change the current culture Console.WriteLine(CultureInfo.CurrentCulture.Name); // set the current UI culture for the executing thread Thread.CurrentThread.CurrentUICulture=new CultureInfo("fr-FR"); // and display it Console.WriteLine(Thread.CurrentThread.CurrentUICulture.Name); // create another new culture CultureInfo ci2 = new CultureInfo("en-US"); // prove that this doesn"t change the current culture Console.WriteLine(CultureInfo.CurrentUICulture.Name); }
}
</source>
new CultureInfo("da-DK")
<source lang="csharp"> using System; using System.Globalization; public class NumParsingApp {
public static void Main(string[] args) { CultureInfo dk = new CultureInfo("da-DK"); int k = 12345; string w = k.ToString("c", dk); Console.WriteLine(w); }
}
</source>
new CultureInfo( "de-DE" )
<source lang="csharp"> using System; using System.Globalization; public class EntryPoint {
static void Main() { CultureInfo current = CultureInfo.CurrentCulture; CultureInfo germany = new CultureInfo( "de-DE" ); CultureInfo russian = new CultureInfo( "ru-RU" ); double money = 123.45; string localMoney = money.ToString( "C", current ); Console.WriteLine( localMoney+ " Local Money" ); localMoney = money.ToString( "C", germany ); Console.WriteLine( localMoney+ " German Money" ); localMoney = money.ToString( "C", russian ); Console.WriteLine( localMoney+ " Russian Money" ); }
}
</source>
new CultureInfo( "ru-RU" )
<source lang="csharp"> using System; using System.Globalization; public class EntryPoint {
static void Main() { CultureInfo current = CultureInfo.CurrentCulture; CultureInfo germany = new CultureInfo( "de-DE" ); CultureInfo russian = new CultureInfo( "ru-RU" ); double money = 123.45; string localMoney = money.ToString( "C", current ); Console.WriteLine( localMoney+ " Local Money" ); localMoney = money.ToString( "C", germany ); Console.WriteLine( localMoney+ " German Money" ); localMoney = money.ToString( "C", russian ); Console.WriteLine( localMoney+ " Russian Money" ); }
}
</source>
Print all Culture info
<source lang="csharp"> using System; using System.Globalization; using System.Threading;
class Class1 {
static void Main(string[] args) { CultureInfo[] AllCultures; RegionInfo Rg; AllCultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures); foreach (CultureInfo ACulture in AllCultures) { Rg = new RegionInfo(ACulture.LCID); Console.WriteLine(Rg.TwoLetterISORegionName.ToString().PadRight(5, " ") + "," + Rg.EnglishName.PadRight(40, " ") + "," + ACulture.LCID.ToString()); } }
}
</source>
Set Culture to current thread
<source lang="csharp"> using System; using System.Globalization; using System.Threading; class Class1 {
static void Main(string[] args) { CultureInfo MyCulture = new CultureInfo("fr-FR"); DateTime MyDate = System.DateTime.Now; Thread.CurrentThread.CurrentCulture = MyCulture; DateTimeFormatInfo dtf = MyCulture.DateTimeFormat; //Change date and time separator dtf.DateSeparator = "\\"; dtf.TimeSeparator = "&"; Console.WriteLine(); Console.WriteLine(MyDate.ToLongDateString()); Console.WriteLine(MyDate.ToLongTimeString()); Console.WriteLine(MyDate.ToShortDateString()); Console.WriteLine(MyDate.ToShortTimeString()); }
}
</source>