Hoofdstuk 16 - Les 1

Met 2 properties kan de culture gezet worden:
  1. Thread.CurrentThread.CurrentCulture - Bepaalt de resultaten van cultuur afhankelijke functies zoals tijd/datum notatie, getallen en valuta opmaak. CurrentCulture moet gezet worden in taal-regionale: ex-MX, fr-FR. Enkel een neutrale taal opgeven kan niet.
  2. Thread.CurrentThread.CurrentUICulture - Bepaalt welke resources er geladen moeten worden door de resource manager. Hier kan zowel een neutrale taal worden opgegeven als specifieke culturen.
Deze properties dienen te worden gezet door een instantie van CultureInfo:
Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");

MessageBox.Show(Thread.CurrentThread.CurrentCulture>ToString());

double d = 1234567.89;

MessageBox.Show(d.ToString("C"));

MessageBox.Show(DateTime.Now.ToString());

// Output:
es-ES
1.234.567, 89 €
17/08/2010 11:07:46
Met de System.Globalization.CultureInfo.GetCultures methode kan met de enum CultureTypes de beschikbare culturen worden opgehaald. De enum bestaat uit:
  • AllCultures - Alle culturen in het .NET framework met zowel de cultuur specifieke als de neutrale talen.
  • NeutralCultures - Neutrala culturen zijn enkel de talen en niet de regionale specifieke opmaak definities. Neutrala culturen worden aangegeven met twee letters: en, es.
  • SpecificCultures - Specificeren zowel een neutrale taal als een specifieke regio: en-US (engels in de VS), es-ES (Spaans in Spanje).
De cultuur format kan ook handmatig bepaald worden:

Console.WriteLine(DateTime.Now.ToString());
Console.WriteLine(DateTime.Now.ToString(new CultureInfo("en-GB")));
Console.WriteLine(DateTime.Now.ToString(new CultureInfo("ru-RU")));

// Output:
8/17/2008 10:06:31 PM
17/08/2008 20:06:31
17.08.2008 20:06:31
Ditzelfde geldt ook voor getallen.

Met CultureInfo.InvariantCulture als cultuur of StringComparison.InvariantCulture worden culturen onafhankelijk met elkaar vergeleken. Dit betekent dan in alle verschillende talen, bepaalde resultaten altijd in dezelfde volgorde/wijze getoond worden.

Met de System.Globalization.CultureAndRegionInfoBuilder class kan er nieuwe cultuur gemaakt worden die is gebaseerd op een bestaande. Nadat de handmatige cultuur is geregistreerd, kan je hem gebruiken zoals ieder andere cultuur.

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren