In der letzten Zeit bin ich häufiger über Codestellen gestoßen, die Monatsnamen, Wochentage (oder auch deren Abkürzungen) gar nicht übersetzt haben, oder dies kompliziert über einen eigenen Übersetzungsmechanismus gelöst haben. Dabei geht es doch so viel einfacher.

Den Grundstock bildet dabei die Klasse CultureInfo. Darüber kann die aktuell eingestellte Kultur des aktuellen Threads bezogen werden. Zur Verfügung stehen hier die Eigenschaften CurrentCulture und CurrentUICulture. Beim Start eines neuen Threads wird dabei die Kultur mit Hilfe der Windows API bestimmt. Beide Eigenschaften liefern wiederum ein Objekt vom Typ CultureInfo zurück.

Von Interesse sind nun einige Eigenschaften dieses Objektes. So können beispielsweise über die Eigenschaft DateTimeFormat (Typ DateTimeFormatInfo) Informationen über Datums- und Zeitwerte auf Basis der aktuellen Kultur bezogen werden:

  • AbbreviatedDayNames liefert abgekürzte Namen der Tage zurück. In deutscher Sprache also beispielsweise Mo, Di, Mi, etc.
  • AbbreviatedMonthNames liefert die abgekürzten Monatsnamen zurück.
  • Per DayNames lassen sich die voll ausgeschriebenen Namen der Tage zurück liefern.
  • MonthNames kann verwendet werden, um eine Liste der Monatsnamen in der gesetzten Sprache zu erhalten.

Ein Blick in die Eigenschaften und Methoden der Klasse DateTimeFormatInfo zeigt noch viele weitere Möglichkeiten.

Natürlich kann die zu verwendende Kultur auch manuell gesetzt und die benötigten Werte ausgelesen werden. Nachfolgendes Beispiel zeigt, wie es geht. Dabei wird die in der UI verwendeten Kultur auf französisch gestellt:

Thread.CurrentThread.CurrentUICulture =

    new CultureInfo("fr-FR");

 

foreach (String s in 

        CultureInfo.CurrentUICulture.DateTimeFormat.MonthNames)

    Console.WriteLine(s);

Und hier das Resultat:

janvier

février

mars

avril

mai

juin

juillet

août

septembre

octobre

novembre

décembre

Mit diesem einfachen Wissen über die Basisfunktionalität, welche durch das .NET Framework zur Verfügung gestellt wird, lassen sich viele Umwege vermeiden.

Über den Autor

Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler und Fotograf. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.