Monatsnamen, Wochentage etc. übersetzen

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.

Veröffentlicht von Norbert Eder

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen