WPF, Silverlight, Silverlight for Windows Phone und Metro Style Apps

Windows Store Apps: Localization und Globalization
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und Fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „Windows Store Apps: Localization und Globalization“. Viel Spaß mit XAML Expertise.

Die Internationalisierung und Globalisierung für Windows Store Apps sind einfacher, als es in der XAML-Welt bisher der Fall war. In der Regel erzeugte man sich eine Ressourcendatei, die dann mit einer weiteren Hilfsklasse an die jeweiligen Steuerelemente gebunden wurde. Ab jetzt gibt es eine viel einfachere Lösung.

Dazu wird zu Beginn im Projekt ein Verzeichnis mit einem beliebigen Namen angelegt, zum Beispiel „Strings“. Dann folgen die Unterverzeichnisse, die den Namensaufbau für das jeweilige Land in Kurzform haben müssen. In diesem Beispiel erzeugen wir „de-DE“ und „us-EN“. In dem „de-DE“-Verzeichnis wird jetzt mit einem Rechtsklick das Kontextmenü geöffnet. Hier wählen wir Hinzufügen | Neues Item hinzufügen. Im darauf folgenden Dialog wird eine neue Ressource-Datei ausgewählt und mit einem Klick auf den OK-Button angelegt. Der Name der Ressource-Datei spielt hierbei keine Rolle, nur der Verzeichnisname ist hierbei wichtig (Abb. 1).

Abb. 1: Projektstruktur und Ressource-Dateien

Jetzt mag es zunächst so aussehen wie früher, dennoch verhalten sich die neuen Ressource-Dateien etwas anders. Mit einem Doppelklick auf die Ressource-Datei öffnet sich in Visual Studio ein Editor (Abb. 2). Hier pflegt man jetzt mit einer bestimmten Kombination die Schlüssel- und Wertedaten ein. Der Schlüssel beginnt mit einem Namen als ID-Wert, dann folgt durch einen Punkt getrennt die jeweilige Property, die später angesprochen werden soll. In diesem Beispiel ist es „Titel.Text“ und bei Value folgt „Hallo Welt“.

Abb. 2: Der Ressource-Editor

Das Spannende ist jetzt auch noch die Deklaration im XAML. Dazu wird ein einfacher TextBlock hinzugefügt, der nun die Verknüpfung zur Ressource-Datei nicht über Data-Binding erhält, sondern über das Attached-Attribut x:Uid=“Titel“:

Beim Starten der App wird nun der deutsche Text „Hallo Welt“ angezeigt.

Wird jetzt die Ressource-Datei vom „de-DE“-Verzeichnis in das „en-US“-Verzeichnis kopiert, muss nur noch der Wert in „Hello World“ geändert werden. Für einen Test wechselt man in die Spracheinstellungen von Windows, wählt die gewünschte Sprache aus und aktiviert sie mit „Nach oben“, sodass sie an erster Stelle platziert wird (Abb. 3) . Beim wiederholten Ausführen der App kann man sehen, dass der Text automatisch in Englisch angezeigt wird.

Abb. 3: Die Spracheinstellung ändern

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -