Lokalisierung von WPF Anwendungen: Einführung

Tuesday, November 03, 2009 3:31:03 PM (W. Europe Standard Time, UTC+01:00)

Anwendungen sollen oft in verschiedenen Märkten angeboten werden. Dazu müssen sie verschiedene Sprachen unterstützen, d.h. sie müssen lokalisierbar sein. Resourcen wie Texte usw. müssen also sprachabhängig austauschbar sein.

Rückblick: Lokalisierung in Windows Forms

Betrachten wir zunächst die Lokalisierung von Windows Forms Anwendungen: Windows Forms Formulare sind direkt über den Designer lokalisierbar. Dafür gibt es die Eigenschaften Localizable und Language.

image

Stellt man Localizable auf true, kann man über Language die Sprache des Formulars wechseln und das Formular direkt im Designer in der gewählten Sprache bearbeiten.

Zu jeder Sprache, die man auf diese Weise erstellt, erzeugt Visual Studio eine Ressourcendatei, in der die Texte und sonstige Formular-Eigenschaften der Sprache gespeichert werden.

image

Ressourcendateien sind außerdem direkt in Visual Studio bearbeitbar.

image

Für jede Sprache erzeugt Visual Studio eine sogenannte Satellitenassembly mit den Ressourcen der jeweiligen Sprache. Zur Anwendung Beispiel.exe gibt es also dann z.B. Unterordner de-DE\Beispiel.resources.dll und en-US\Beispiel.resources.dll. Abhängig von der aktuell im Thread eingestellten Sprache lädt die Anwendung automatisch die Ressourcen aus der passenden Satellitenassembly.

Lokalisierung in WPF

Man sollte meinen, in WPF als Nachfolgetechnologie zu Windows Forms müsste die Lokalisierung mindestens genauso gut funktionieren, idealerweise sollte alles noch einfacher gehen.

Das ist jedoch nicht so. Eigenschaften wie Localizable und Language fehlen im Designer.

image

Tatsächlich gibt es überhaupt keine eingebauten Lokalisierungswerkzeuge in Visual Studio oder Blend. Stattdessen gibt es eine API, mit der man solche Tools zunächst selbst schreiben soll. Zu dieser API gibt es außerdem ein Beispiel-Tool, locbaml, das aber wirklich nur ein Beispiel ist und deshalb in der Praxis nicht brauchbar ist.

In den nächsten Wochen werde ich über einige Ansätze zur WPF Lokalisierung schreiben.

Technorati Tags: ,
Kick it on dotnet-kicks.de
Comments are closed.