WPF Lokalisierung

Eine häufige Anforderung im Berufsalltag ist es eine Anwendung in mehreren Sprachen anzufertigen. Während C# / VB hierfür sehr simpel auf RESX-Dateien zugreifen kann, ist vielen nicht klar, dass WPF dies ebenfalls beherrscht. Wie das ganze in C# funktioniert, kann älteren Blog-Beiträgen zur SmallMVVM-Reihe entnommen werden, da dies dort bereits Anwendung gefunden hat. Die RESX-Dateien werden hierfür genauso angelegt wie bereits unter C#, d.h. „Resources.de-DE.resx“ für z.B. Deutsch und „Resources.resx“ für die Standardwerte. Sollte der Eintrag in der speziellen Sprache nicht vorhanden sein, wird standardmäßig der aus der normalen Ressource verwendet, also aus der Standard-Datei.

Um das ganze nun in WPF nutzen zu können, muss zunächst ein „xmlns“, ein WPF-Using, angelegt werden. Dieser sieht wie folgt aus:

xmlns:resx="clr-namespace:<DefaultNamespaceOfProject>.Properties"

Anschließend können die Controls ein normales Binding auf Werten aus der genannten Resourcedatei durchführen. Hier sollte beachtet werden, dass dies nur String-Texte sind – Lokalisierungen eben. Das Ganze ist nicht für Einstellungen zu verwenden, dafür gibt es eigene Mechanismen.

<Label Content="{x:Static resx:Resources.<NameOfYourResource>}" />