Wednesday, April 24, 2013

Windows App Store und App Lokalisierung

Verschiedene Sprachen für eure APP ist in unserer globalen Welt sehr schnell ein Thema. Darum werden wir uns diesem Thema heute einmal widmen.

In meinem Beispiel gehe ich davon aus, dass Ihr eure APP in Deutsch (de) und Englisch (en) zur Verfügung stellen wollt.

Dafür solltet Ihr als "Vorbereitung" folgendes in eurer Windows Store APP einstellen:

  • Die Default Sprache im App-Package festlegen (in diesem Fall “de”)
    PROJECT->Store->Edit App Manifest
  • Wir wollen auch gleich den Applikationsnamen mehrsprachig machen.
    Dafür müssen wir den “Display Name” (unter Application UI) und
    den “Package Display Name” (unter Packaging) umsetzen (ms-resource: <BeliebigerName>)

image

image

  • Einen neuen Ordner “Strings” anlegen
  • In diesem Ordner 2 Unterordner: “de” und “en”
  • In jedem der beiden Ordner eine Ressource-Datei (.resw) hinzufügen

imageimage

Jetzt können wir schon mit dem Erfassen der Strings loslegen.

Zuerst sollten wir gleich einmal den Applikationsnamen anlegen, denn wenn wir momentanen kompilieren und ausführen wollen bekommen wir einen Fehler:

Error    28    Error : DEP0700 : Registration of the app failed. C:\XXXX\bin\Debug\AppX\AppxManifest.xml(12,6): error 0x80073B17: Cannot register the 7df75194-b967-4dde-aa0e-18db01a32f5f_1.0.0.0_neutral__fmdkx0crxm48p package because the following error was encountered while determining whether the ms-resource:AppDisplayName string resource could be localized: NamedResource Not Found.
. Check that the string resource is defined and that there is at least one instance defined in the resources.pri file contained in this package. (0x80073cf6) 

Wir legen gleich mehrere String-Ressouren an und zwar folgende:

  • Den Applikationsnamen - AppDisplayName
  • Einen Text für ein TextControl - AppName.Text
  • Einen Text für einen AppBarButton – den Text an einem AppBarButton würdet Ihr ja mit AutomationPeer.Name=”xxx” umsetzen, da AutomationPeer.Name ein Attached-Property ist, muss es voll qualifiziert werden…
    Delete.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name

Dafür öffnet Ihr eure de/Resources.resw Datei und legt folgende Strings an

image

Verwenden könnt Ihr das Ganze dann in eurer APP so:

1 comment:

summ3r said...
This comment has been removed by a blog administrator.

CSharpCodeFormatter