Frage

Ich bin ein wenig Mühe, immer lokalisierten Ressourcen-Dateien zu arbeiten auf Windows Phone 7. Hier ist, was ich tue:

  1. Erstellen Sie eine Ressource-Datei, sagen Sie "Strings.resx" (Build Action: Compile)
  2. einen Schlüssel erstellen, sagen Sie „TestKey“ mit einem Standardwert von leeren String
  3. Fügen Sie eine Englisch-Ressource-Datei in dem gleichen Ordner mit einem Wert von „einigen englischen Zeichenfolge“: Strings.en-US.resx (Build Action: Eingebettete Ressource)
  4. Fügen Sie eine japanische Ressource-Datei in dem gleichen Ordner mit einem Wert von "some Japanese string": strings.ja-jp.resx (Build Action: Eingebettete Ressource)

In meinem PC Silverlight, WPF Apps, die gut funktioniert, wenn ich die Thread.CurrentThread.CurrentCulture ändern. Aber im Telefon scheine ich immer den Wert zu bekommen, dass die in der Strings.resx Datei -. Eine leere Zeichenfolge

Ich habe versucht, den Designer generierten Code und die Ressourcen-Manager von Hand verdrahtet und es scheint keine Rolle zu. Hier ist mein Code:

            Type t = typeof(Strings);

            _resourceManager = new ResourceManager(
                t.Namespace + "." + t.Name,
                t.Assembly);

            _resourceManager.GetString("TestKey");

Sag mir, lokalisierten Ressourcen auf dem Handy unterstützt werden ...;> Was mache ich falsch? Dank!

Aktualisieren : Danke Olivier für den Link weiterzuleiten. Ich sah, dass als gut, aber ein wichtiger Schritt verpasst. Ich habe den „SupportedCultures“ Knoten meine csproj nicht hinzufügen. Machte den Unterschied - in der Hoffnung jemand anderes tut nicht locker 2 Stunden versucht, dies herauszufinden, wie ich es tat.

<SupportedCultures>de-DE;es-ES;</SupportedCultures>
War es hilfreich?

Lösung

Ich schrieb eine Blog-Post, die Links zu einer Reihe von Windows Phone 7 in 7 Schulungsvideo das half mir die Grundlagen zu verstehen. Danach war es einfach eine Frage des Lernens, wie Datenbindung zu tun:

  

Der MSDN-Artikel zeigt Ihnen, wie Sie   die Dateien und Setup erstellen die   LocalizedStrings Klasse, aber sie dann   vorausgesetzt, dass Sie wissen, wie das verwenden,   Klasse für die Datenbindung. Visual Studio   2010 und Silverlight Griff Daten   Bindung anders als Winforms und   es wird noch da XAML mehr verwirrend   auch hat seine eigene Definition von   Ressourcen, die anders sind dann die   .NET Ressourcen, die wir gerade erstellt haben.   Silverlight verwendet auch den Begriff   Ressource beziehen sich auf Dateien, die Verwendung   die die Build Action von „Content“, wie   Diese Dateien werden in die eingewickelt   XAP-Datei ähnlich, wie Dateien mit   Build Action von „Resource“ get   eingebettet in die .dll-Baugruppe (ex:   ein Bild von Inhalt Laden oder   Ressourcendateien). Ich fand, dass statt   den Text des Verwendens = "{Binding   Path = resourceFile.resourceName,   Source = {Static   Localizedresources}}“XAML-Syntax es   die folgenden Schritte war leichter zu verwenden:

     
      
  1. Öffnen Sie Ihre primäre XAML-Seite (in der Regel MainPage.xaml) in der Visual   Studio-Designer

  2.   
  3. Öffnen Sie die Eigenschaften für die PhoneApplicationPage und stellen Sie die   Datacontext zu sein   Application.Resources ->   LocalizedStrings. HINWEIS: Wenn Sie bereits   ein Datacontext-Objekt verwendet, dann   Sie sollte die Integration   LocalizedStrings Klasse in die   Objekt, so dass es die Lokalisierung hat   Unterstützung.

  4.   
  5. Nachdem die Seite des Datacontext gesetzt wurde können Sie die Daten ändern   Bindung für jede Steuerung auf der Seite durch   einfach die Auswahl der Unterkunft (ex:   Text, überprüft, usw.), wird mit „Übernehmen   Datenbindung ...“, und die Einstellung des Pfades   zu Localizedresources.BtnText oder   was auch immer der Name des gewünschten   Ressourcenwert ist.

  6.   

Andere Tipps

Natürlich lokalisierte Ressourcen werden auf dem Telefon unterstützt:

Gewusst wie: Erstellen Sie eine Lokalisierte Anwendung für Windows Phone

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top