• About
  • Datenschutz
  • Impressum
.Net 4 Fun

Windows Phone 7 Globalisierung

2. Dezember 2010 01:03 / Hinterlassen sie einen Kommentar / Kai

Eine gute Anleitung zur Globalisierung von Windows Phone 7 Apps findet man in der MSDN Library. Für Schnell-über-leser hier das wichtigste zusammen gefast.

  1. Ressourcen Dateien der Solution hinzufügen (MyResources.resx, MyResources.resx.de-DE, MyResources.es-ES).
  2. Ressourcen Dateien öffnen und den AccessModifier auf Public stellen.
  3. Zum Test einen Eintrag erzeugen. Der Key muss dabei in allen Ressourcendateien der selbe sein. Der Value beinhaltet die Übersetzungen.
  4. Default Sprache in den Eigenschaften des Projektes unter Assembly Information –>Neutral Language einstellen. Dieses definiert die Sprache in der Ressourcen Datei ohne Culture-Zusatz (MyResources.resx)
  5. Die Projektdatei (.csproj) mit einem Editor öffnen und die zusätzlich unterstützten Sprachen dem Tag <SupportedCultures> hinzufügen. <SupportedCultures>de-DE;es-ES;<SupportedCultures>
  6. Ein Property erzeugen, dass MyResources bereitstellt:
  7. public class LocalizedStrings
    {
        public LocalizedStrings()
        {
        }
    
        private static var localizedResources = new MyNamespace.MyResources();
    
        public MyNamespace.MyResources LocalizedResources
        { get { return localizedResources; } }
    }
    

6. In der App.xaml die eben erstellte Klasse bereitstellen:

&lt;Application.Resources&gt;
   &lt;local:LocalizedStrings xmlns:local = &quot;clr-namespace:MyNamespace&quot; x:Key=&quot;LocalizedStrings&quot; /&gt;
&lt;/Application.Resources&gt;

7. Nun fehlt nur noch das Binding

&lt;TextBlock Text=&quot;{Binding Path=LocalizedResources.KeyInMyResources, Source={StaticResource LocalizedStrings}}&quot; /&gt;

Hinweis zur ApplicationBar:

Da die ApplicationBar keine Silverlight-Komponente ist, wird dynamisches DataBinding nicht unterstützt. Also nicht wundern warum beim Kompilieren eine XamlParseException “AG_E_PARSER_BAD_PROPERTY_VALUE” bekommt. Im Xaml wird die entsprechende Zeile markiert mit dem Hinweis “Text cannot be empty”. Die Lösung lautet: code behind…

public MainPage()
{
   InitializeComponent()
   BuildApplicationBar()
}
private void BuildApplicationBar()
{
   ApplicationBar = new ApplicationBar();
   var appBarButton = new ApplicationBarIconButton(new Uri(&quot;/Images/ApplicationIcon.png&quot;,UriKind.Relative)){Text = MyResources.MyAppBarButtonKey};
   ApplicationBar.Buttons.Add(appBarButton);

   var appBarMenuItem = new ApplicationBarMenuItem(MyResources.MyMenuItemTextKey);
   ApplicationBar.MenuItems.Add(appBarMenuItem);
}
Be Sociable, Share!
  • Tweet
Erstellt in: Windows Phone 7 / Getaggt mit: Globalisierung, Windows Phone 7

Kommentar verfassen Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Artikelnavigation

← Voriger Artikel
Nächster Artikel →

Letzte Beiträge

  • iPhone/iPad Problem: Warten auf Synchronisierung hängt bzw. 10000 leere Playlists in iTunes Match
  • Instanzvariabelen
  • Open Class
  • Windows Phone 7 Globalisierung
  • Anything goes

Kategorien

  • Allgemein
  • Bücher & Magazine
  • Clean Code
  • Coding
  • Fehlerbehebung
  • Firefox
  • IIS7
  • Konferenzen
  • Onlinedienste
  • Ruby
  • Snippets
  • Tools
  • Unsinn
  • Windows Phone 7
  • Windows Presentation Foundation
  • Wordpress

Archive

  • Mai 2013
  • Dezember 2010
  • August 2010
  • Juli 2010
  • Juni 2010
  • April 2009
  • Februar 2009
  • Januar 2009
  • Dezember 2008

Meta

  • Anmelden
  • Beitrags-Feed (RSS)
  • Kommentare als RSS
  • WordPress.org
© Copyright 2013 - .Net 4 Fun
Infinity Theme by DesignCoral / WordPress