Arbeiten mit App-Ressourcen unter Windows Phone

Was Sie erstellen werden

In vorherigen Tutorials haben wir die Anwendungsressourcen, das MAT (Multilingual App Toolkit) und den Test einer lokalisierten App kennengelernt. In diesem Lernprogramm werden wir nicht nur alles auf eine einfachere Art und Weise zusammenfassen, sondern auch eine lokalisierte Anwendungsleiste erstellen, die Sie überall in Ihrer Anwendung verwenden können.

Entwickler müssen oft die gleiche Anwendungsleiste auf mehreren Seiten in ihrem Projekt verwenden. Am Ende kopieren und fügen sie den XAML- und C # -Code ein, was nicht empfohlen wird.

In diesem Lernprogramm erfahren Sie, wie Sie App-Ressourcen verwenden und Ihren Apps Lokalisierung und Globalisierung hinzufügen. Außerdem lernen Sie, wie Sie mit den Dateien App.xaml und App.xaml.cs eine lokalisierte Anwendungsleiste erstellen, die Sie an beliebiger Stelle in Ihrer Windows Phone-App verwenden können.

1. Warum eine lokalisierte App erstellen??

Windows Phone-Benutzer sprechen nicht alle Englisch als Muttersprache. Tatsächlich sprechen nur 34% von ihnen Englisch. Dies bedeutet, dass 66% eine andere Sprache als Englisch sprechen, weshalb es wichtig ist, lokalisierte Apps zu erstellen.

Eine effektive Strategie zur Steigerung des App-Downloads besteht darin, Ihre App für Windows Phone-Kunden, die kein Englisch sprechen, besser zu gestalten. Je mehr Sprachen Ihre App unterstützt, desto mehr Downloads werden angezeigt und desto besser werden die Bewertungen Ihrer App sein. Durch die Unterstützung von Französisch, Deutsch, Arabisch und Spanisch unterstützen Sie etwa 75% des Windows Phone-Marktes.

In diesem Lernprogramm übersetzen wir alle unsere App-Ressourcen in Französisch und Arabisch. Hier einige schnelle Tipps, die Sie beachten sollten, bevor Sie beginnen:

  • Stellen Sie sicher, dass Sie alle Ressourcen, die Sie verwenden, mit einem Namen versehenNamen, weil wir mit ihrem Namen auf String-Ressourcen verweisen,nicht ihr Wert Versuchen Sie, jede Ressource einzigartig zu machenName, der Sinn macht.
  • Versuchen Sie, alle Ihre String-Ressourcen in zu sammeln AppResources.resx, einschließlich Schaltflächentitel und Fehlermeldungen.
  • Aktivieren Sie mehrzeilige Unterstützung und Textumbruch in Steuerelementen.
  • Speichern Sie Ihre Arbeit immer und stellen Sie sicher, dass Sie Ihr Projekt häufig neu erstellen, um die Änderungen, die Sie vornehmen, umzusetzen AppResources.resx.

2. Kultur- und Sprachunterstützung

Währungen, Zahlen, Datum, Uhrzeit und Regionsformate unterscheiden sich von Kultur zu Kultur. Zum Glück die CultureInfo Die Klasse kümmert sich um diese Details für jede Sprache. Tatsächlich können Sie sogar die aktuellen kulturellen Daten des Telefons abrufen und seine Informationen in einem anzeigen Nachrichtenbox mit einer einzigen Codezeile:

MessageBox.Show (CultureInfo.CurrentCulture.Name);

Jedoch die InitializeLanguage () Funktion in App.xaml.cs erledigt die Arbeit automatisch bei jedem Start der App und setzt sie RootFrame.Language basierend auf dem Wert der AppResources.ResourceLanguage Ressource. Beachten Sie Folgendes, wenn Ihre App keine andere Sprache als unterstützt en-US (Englisch, USA) verwendet die App die neutrale und Standardeinstellung AppResources.resx Datei des Projekts.

3. Lokalisieren Sie Ihre App

Schritt 1: Hinzufügen von Ressourcen und Binden von Textelementen

In diesem Lernprogramm erstellen wir eine einseitige App, die dem Benutzer einige kluge, alte Sprüche zeigt. Um zu beginnen, in MainPage.xaml, Wir werden ein paar hinzufügen Textblock Elemente ohne Angabe ihres Inhalts durch Hinzufügen der folgenden zwei Codezeilen im übergeordneten Element ContentPanelGitter:

 

Wir nehmen auch die folgenden Änderungen in der Standardeinstellung vor AppResources.resx Datei:

  • wechseln ApplicationTitle Stringwert
  • Fügen Sie zwei Zeichenfolgen hinzu, wie im folgenden Screenshot gezeigt

Gehen wir jetzt zurück zu MainPage.xaml. Nachdem Sie die Zeichenfolgen hinzugefügt haben, die wir in unserer App benötigen, legen wir die Zeichenfolge fest Text Eigentum der Textblock steuern, um den Inhalt anzugebenvon jedem Textblock.

Anstatt "MY APPLICATION" als Titel anzuzeigen, verwenden wir die Zeichenfolge "My Localized App". Wir können dies erreichen, indem wir eine Bindung verwenden, die auf die App-Ressourcen verweist und den Wert der Zeichenfolge bindet. Um diese Referenz zu erstellen, verwenden wir nicht den String-Wert selbst, sondern sein Attribut(Name), ApplicationTitle.

Text = "Bindungspfad = LocalizedResources.ApplicationTitle, Source = StaticResource LocalizedStrings"

Jeder der beiden Textblock Elemente werden auch ein Sprichwort haben. Wir verwenden einfach dieselbe Codezeile und ersetzen die ApplicationTitle Attribut mit dem Attribut unseres Sprichworts. So sollte Ihr Code aussehen:

   

So sieht das Ergebnis aus:

Wir müssen jetzt nur noch andere Sprachen hinzufügen und übersetzen.

Schritt 2: Weitere Sprachen hinzufügen

Um eine andere Sprache hinzuzufügen, gehen Sie zu den Eigenschaften des Projekts, indem Sie mit der rechten Maustaste auf das Projekt in klicken Lösungsforscher Fenster. Stellen Sie sicher, dass Sie auf die Eigenschaften des Projekts zugreifen, nicht auf die Eigenschaften der Lösung.


In dem Anwendung Tab Sie sollten das sehen Unterstützte Sprachen Sektion. Wählen Sie die Sprache aus, die Sie unterstützen möchten. Wie bereits erwähnt, werden wir Französisch und Arabisch hinzufügen. Wie Sie in der Liste sehen können, können Sie sogar die Kultur je nach Region auswählen, z. B. Französisch (Frankreich), Französisch (Belgien). Für dieses Lernprogramm wählen wir einfach das allgemeine aus, ignorieren den Dialekt und die Region.

Nachdem Sie die Änderungen gespeichert haben, werden Sie feststellen, dass Visual Studio automatisch zwei neue RESX-Dateien generiert hat:

  • AppResources.ar.resx für Arabisch
  • AppResources.fr.resx für Französisch

Beachten Sie, dass die neu generierten Dateien den gleichen Inhalt haben wie AppResources.resx. Sie sollten die Attribute (Namen) nicht ändern. Sie müssen nur die Werte übersetzen.

3. Verwendung des Multilingual App Toolkit

Das Multilingual App Toolkit ist sehr hilfreich beim Übersetzen von String-Ressourcen. Es ist in Visual Studio integriert und bietet Unterstützung beim Erstellen lokalisierter Windows- und Windows Phone-Apps sowie beim Übersetzen von App-Ressourcen. Das mehrsprachige App Toolkit erleichtert das Hinzufügen weiterer Sprachen, und Sie können Übersetzungsdateien problemlos importieren und exportieren.

Sie können das Multilingual App Toolkit als Visual Studio-Erweiterung von der Entwickler-Website von Microsoft herunterladen. Wählen Sie nach der Installation des Toolkits aus Aktivieren Sie das mehrsprachige App Toolkit von dem Werkzeuge Speisekarte.

Nach dem Aktivieren des MAT generiert Visual Studio neues .xlf Dateien für jede der unterstützten Sprachen, die Sie zuvor hinzugefügt haben. Dies bedeutet, dass Sie maschinelle Übersetzungen erstellen können, indem Sie mit der rechten Maustaste auf klicken .xlf Datei und Auswahl Generieren Sie maschinelle Übersetzungen. Sie können auch die übersetzten String-Ressourcen in ändern Ziel tag in allen .xlf Dateien.


4. So testen Sie eine lokalisierte App?

Sie können eine lokalisierte App mit dem Emulator testen.

  • Debuggen Sie Ihr Projekt und gehen Sie zu Emulator-Einstellungen.
  • Navigieren Sie zu Sprache Tab und fügen Sie eine neue Sprache hinzu. Es ist wichtig, dass Sie Ihr Telefon nicht neu starten.
  • Navigieren Sie zu Region Tab und wählen Sie Ihre Region.
  • Starten Sie das Telefon neu.

Wenn das Telefon neu gestartet wird, gibt Visual Studio möglicherweise einen Fehler aus und verliert die Verbindung zum Emulator. Nachdem Sie das Telefon neu gestartet haben, debuggen Sie das Projekt erneut. So sieht die App für Arabisch aus:

Jetzt, da wir mit String-Ressourcen fertig sind, fügen wir unserer App eine lokalisierte Anwendungsleiste hinzu.

5. Lokalisierte Anwendungsleiste erstellen

Schritt 1: Erstellen der Anwendungsleiste

In diesem Schritt erstellen wir eine Anwendungsleiste, die wir überall in unserer App verwenden können. Dazu nutzen wir die App.xaml Datei, in der wir globale XAML-Stile und -Ressourcen definieren, die in der gesamten Anwendung verwendet werden.

In dem Anwendungsressourcen tag ein App.xaml, Wir fügen eine Anwendungsleiste mit nur einem Symbol und einem Menüeintrag hinzu. Vergiss nicht, einen Namen zu nennenzur Anwendungsleiste mit der x: Schlüssel Attribut, damit wir später darauf verweisen können.

     

In dem RateReview_Click Event-Handler verwenden wir eine der Telefontasks, um Benutzer zum Store zu navigieren, wenn sie eine Bewertung hinterlassen oder die App bewerten möchten. Wie für die Help_Click Event-Handler, wir fügen nur etwas C # -Code hinzu, um zwischen den verschiedenen Seiten zu navigieren. Beachten Sie, dass ich eine neue XAML-Seite hinzugefügt habe, ÜberTheApp.xaml, in dem wir Informationen über unsere App anzeigen.

Im App.xamls.cs, Fügen Sie die folgende Anweisung hinzu, damit wir von der Klasse der Telefonaufgaben profitieren können:

using Microsoft.Phone.Shell;

Wenn der Benutzer auf das Menüelement "Rate" und "Review" tippt, öffnet die App den Store auf einer Seite, auf der der Benutzer die App bewerten und / oder überprüfen kann. Wir benutzen ein MarketPlaceReviewTask so was:

MarketplaceReviewTask-Überprüfung = new MarketplaceReviewTask (); review.Show ();

Wie für die Help_Click Event-Handler: Der folgende Codeausschnitt sorgt für die Navigation zwischen den beiden Seiten:

(Application.Current.RootVisual als PhoneApplicationFrame) .Navigate (neuer Uri ("/ AboutTheApp.xaml", UriKind.RelativeOrAbsolute)); 

Schritt 2: Verweisen auf die Anwendungsleiste

Nachdem Sie die Anwendungsleiste erstellt haben, die Sie verwenden möchten, fügen Sie eine neue Instanz der Anwendungsleiste hinzu, indem Sie den folgenden Code-Ausschnitt verwenden MainPage.xaml.cs und dann machen wir es auf das in App.xaml.

Initialisieren der Komponente(); ApplicationBar = neue ApplicationBar (); ApplicationBar = ((ApplicationBar) Application.Current.Resources ["myAppBar"]);

Wir haben das nicht benutzt AppResources überhaupt für das Erstellen der Anwendungsleiste, was bedeutet, dass Texteigenschaften bereits unabhängig von der Telefonkultur festgelegt werden. Tatsächlich können Bindungen bei Anwendungsleisten nicht wirklich verwendet werden.

Deshalb verweisen wir auf die Anwendungsleiste, die wir zuvor erstellt haben App.xaml.cs und ändern Sie den String-Wert, indem Sie einen einfachen Codeblock direkt nach dem verwenden Initialisieren der Komponente() Methode. Die verwendeten Zeichenfolgen werden ebenfalls hinzugefügt AppResources.resx.

// Standard-XAML-Initialisierung InitializeComponent (); var appBar = App.Current.Resources ["myAppBar"] als ApplicationBar; ((ApplicationBarIconButton) appBar.Buttons [0]). Text = AppResources.AboutAppBarIconText; ((ApplicationBarMenuItem) appBar.MenuItems [0]). Text = AppResources.RateAppBarMenuItemText;

Übersetzen Sie die String-Ressourcen, und übersetzen Sie sie neudas Projekt. Fügen Sie schließlich die Informationen der hinzu ÜberTheApp.xaml Seite. So sieht das Ergebnis aus:

Fazit

In diesem Lernprogramm haben wir etwas über die Telefonkultur, die Verwendung von App-Ressourcen, das Erstellen einer lokalisierten Anwendung und Anwendungsleiste und das Erstellen einer Anwendungsleiste, die wir überall in unserer Anwendung verwenden können, gelernt. Wir haben auch gelernt, wie Sie mithilfe von Bindungen auf einen String-Wert in den AppResources-Dateien verweisen.

Und schließlich haben wir erfahren, wie wir Telefontasks verwenden, um Benutzern zu helfen, die App im Store zu bewerten und zu überprüfen. Fühlen Sie sich frei, das Beispielprojekt herunterzuladen und stellen Sie in den Kommentaren unten Fragen, die Ihnen in den Sinn kommen.