lokalisierung von UWP Apps mit resw

Im echten Leben schreibe ich meine Anwendungen nur für deutsche Benutzer und wenn's hart kommt nur für Englisch. Lokalisierung ist für mich eher ein akademisches Thema um z.B. die MCP Prüfung 70-354 abzulegen. Da saß ich nun vor der Beta Prüfung mit einer Aufgabe in der irgendwelche Greetings als Resources Datei angelegt wurden. Multiple Choice und vier Antworten, alle falsch. So jedenfalls mein Eindruck, wobei ich ja nicht ausschließen möchte, das es irgendwelche neuen Universal API’s gibt, die ich nicht kennen und die man in der Dokumentation nicht findet. Also hab ich mich hingesetzt und nach der Prüfung (oh wie clever) das Thema mal von Grund auf durchgegangen. Ergebnis: mit ziemlicher Sicherheit waren alle Antworten auf diese Frage in der MCP Prüfung falsch. Beta.

Im XAML Part wird aus x:Name (oder Name) x:UiD um den Namen des UI Elements zu bestimmen. In der Regel bleibt der Name gleich, z.B. Greeting. Als nächstes wird ein Ordner angelegt, der in der Doku immer “Strings” genannt wird. Unterhalb des Ordners werden die Ordner für die Sprachressourcen angelegt. Die Konvention stammt aus den IANA Subtags, in der Form Sprache-Land. Also DE-AT für Österreich.

Im Verzeichnis wird dann per Visual Studio die Datei resources.resw erzeugt. Darin sind die Keys und Werte Paare definiert. Da ein XAML Element Eigenschaften besitzt, denen der Wert zugewiesen wird in der Name.Property Notation.

image

Wird in einem UI Element nicht nur eine Eigenschaft lokalisiert, dann taucht diese eben mehrfach in der Ressource Tabelle auf. Beispiel: Text und Tooltip.

Die MCP Prüfung ist ein wenig fieser und benennt die Resource Datei um. Damit kann man z.B. für jeden UI Dialog eigene erzeugen. Um alle Varianten durchzuspielen, habe ich auch das Ausgangsverzeichnis von Strings in sprachen umbenannt. Klappt auch, empfehle ich nicht und die Doku behauptet überhaupt was anderes.

image

Nun zu guter Letzt wie spricht man diese benannte Ressource Datei im XAML an.

   1:  <TextBlock  x:Uid="/mainpage3/Greeting" 

Etwas überraschend der führende Slash, aber steht so in der Doku.

Kommentare sind geschlossen