Werken met app-bronnen op Windows Phone

Wat je gaat creëren

In eerdere zelfstudies hebben we geleerd over toepassingsbronnen, de MAT (Multilingual App Toolkit) en het testen van een gelokaliseerde app. In deze zelfstudie zullen we niet alleen alles eenvoudiger samenvatten, maar ook een gelokaliseerde toepassingsbalk maken die u overal in uw toepassing kunt gebruiken.

Ontwikkelaars moeten vaak dezelfde toepassingsbalk gebruiken op verschillende pagina's in hun project en ze eindigen meestal met het kopiëren en plakken van de XAML- en C # -code, wat niet wordt aanbevolen.

In deze zelfstudie leert u hoe u app-bronnen gebruikt en hoe u lokalisatie en globalisering toevoegt aan uw apps. U leert ook de bestanden App.xaml en App.xaml.cs te gebruiken om een ​​gelokaliseerde toepassingsbalk te maken die u overal in uw Windows Phone-app kunt gebruiken.

1. Waarom een ​​gelokaliseerde app bouwen??

Windows Phone-gebruikers zijn niet allemaal native speakers Engels. In feite spreekt slechts 34% van hen Engels. Dit betekent dat 66% een andere taal dan Engels spreekt en dat het daarom belangrijk is om gelokaliseerde apps te bouwen.

Een effectieve strategie om app-downloads te verhogen, is door uw app meer geschikt te maken voor Windows Phone-klanten die geen Engels spreken. Hoe meer talen uw app ondersteunt, hoe meer downloads het krijgt en hoe beter de beoordelingen van uw app zullen zijn. Door ondersteuning voor Frans, Duits, Arabisch en Spaans, ondersteunt u ongeveer 75% van de Windows Phone-markt.

In deze zelfstudie vertalen we al onze app-bronnen naar het Frans en het Arabisch. Hier zijn enkele tips om in gedachten te houden voordat we beginnen:

  • Zorg ervoor dat alle bronnen die u gebruikt zinvol zijnnamen, omdat we naar stringmiddelen verwijzen door hun naam,niet hun waarde. Probeer elke bron uniek te makennaam die logisch is.
  • Probeer al je stringbronnen bij elkaar te verzamelen AppResources.resx, inclusief knoptitels en foutmeldingen.
  • Schakel multiline-ondersteuning en tekstomloop in besturingselementen in.
  • Sla uw werk altijd op en zorg ervoor dat u uw project vaak opnieuw opbouwt om de wijzigingen door te voeren AppResources.resx.

2. Cultuur en taalondersteuning

Valuta's, cijfers, datum, tijd en regio verschillen van cultuur tot cultuur. Gelukkig is de CultureInfo klas verzorgt deze gegevens voor elke taal. U kunt zelfs de huidige culturele gegevens van de telefoon ophalen en de informatie weergeven in a Berichten box gebruikmakend van een enkele regel code:

MessageBox.Show (CultureInfo.CurrentCulture.Name);

echter, de InitializeLanguage () functie in App.xaml.cs doet het werk automatisch elke keer dat de app wordt gestart en ingesteld RootFrame.Language op basis van de waarde van de AppResources.ResourceLanguage bron. Let op: als uw app geen andere taal ondersteunt dan en-US (Engels, Verenigde Staten), gebruikt de app de neutrale en standaard AppResources.resx bestand van het project.

3. Lokaliseren van uw app

Stap 1: Bronnen en bindende tekstelementen toevoegen

In deze zelfstudie bouwen we een app met één pagina die de gebruiker enkele wijze, oude uitspraken laat zien. Om te beginnen, in MainPage.xaml, we zullen er een paar toevoegen TextBlock elementen zonder de inhoud ervan aan te geven door de volgende twee regels code in het bovenliggende element toe te voegen ContentPanelrooster:

 

We maken ook de volgende wijzigingen in de standaardinstelling AppResources.resx het dossier:

  • veranderen van de Aanmeldings titel tekenreekswaarde
  • twee strings toevoegen zoals getoond in de volgende screenshot

Laten we nu teruggaan naar MainPage.xaml. Nadat we de strings hebben toegevoegd die we in onze app nodig hebben, stellen we de Tekst eigendom van de TextBlock controle om de inhoud te specificerenvan elke TextBlock.

In plaats van 'MIJN TOEPASSING' als titel weer te geven, gebruiken we de tekenreeks 'Mijn gelokaliseerde app'. We kunnen dit bereiken door een binding te gebruiken die de verwijzing naar de app-bronnen maakt, waarbij de waarde van de tekenreeks wordt gebonden. Om deze referentie te maken, zullen we de tekenreekswaarde zelf niet gebruiken, maar het attribuut(naam), Aanmeldings titel.

Text = "Binding Path = LocalizedResources.ApplicationTitle, Source = StaticResource LocalizedStrings"

Elk van de twee TextBlock elementen zullen ook een gezegde hebben. We zullen gewoon dezelfde regel code gebruiken, ter vervanging van de Aanmeldings titel attribuut met het kenmerk van ons gezegde. Dit is hoe uw code eruit zou moeten zien:

   

Dit is hoe het resultaat eruit ziet:

We hoeven nu alleen nog andere talen toe te voegen en te vertalen.

Stap 2: Andere talen toevoegen

Om een ​​andere taal toe te voegen, gaat u naar de eigenschappen van het project door met de rechtermuisknop op het project te klikken in de Solution Explorer venster. Zorg ervoor dat u toegang hebt tot de eigenschappen van het project, niet tot de eigenschappen van de oplossing.


In de Applicatietab je zou het moeten zien Ondersteunde talen sectie. Selecteer de taal die u wilt ondersteunen. Zoals eerder in deze tutorial is vermeld, voegen we Frans en Arabisch toe. Zoals u in de lijst kunt zien, kunt u zelfs de cultuur selecteren die afhankelijk is van de regio, zoals Frans (Frankrijk), Frans (België). Voor deze tutorial kiezen we gewoon de algemene, dialect en regio negerend.

Nadat u de wijzigingen hebt opgeslagen, merkt u dat Visual Studio automatisch twee nieuwe .resx-bestanden heeft gegenereerd:

  • AppResources.ar.resx voor Arabisch
  • AppResources.fr.resx voor Frans

Merk op dat de nieuw gegenereerde bestanden dezelfde inhoud hebben als AppResources.resx. Wijzig de kenmerken (namen) niet. U hoeft alleen de waarden te vertalen.

3. De meertalige app-toolkit gebruiken

De Multilingual App Toolkit is erg handig voor het vertalen van stringresources. Het is geïntegreerd in Visual Studio en biedt ondersteuning voor het bouwen van gelokaliseerde Windows- en Windows Phone-apps en helpt bij het vertalen van app-bronnen. De Multilingual App Toolkit maakt het toevoegen van andere talen eenvoudiger en u kunt vertaalbestanden eenvoudig importeren en exporteren.

U kunt de Multilingual App Toolkit als een Visual Studio-extensie downloaden van de ontwikkelaarswebsite van Microsoft. Na het installeren van de toolkit, selecteer Meertalige app-toolkit inschakelen van de Hulpmiddelen menu.

Na het inschakelen van de MAT, genereert Visual Studio nieuw .XLF bestanden voor elk van de ondersteunde talen die u eerder hebt toegevoegd. Dit betekent dat u machinevertalingen kunt genereren door met de rechtermuisknop op een te klikken .XLF bestand en kiezen Genereer automatische vertalingen. U kunt de vertaalde tekenreeksbronnen ook wijzigen in de doelwit tag in alle .XLF bestanden.


4. Hoe een gelokaliseerde app te testen?

U kunt een gelokaliseerde app testen met behulp van de emulator.

  • Debug uw project en ga naar Emulator-instellingen.
  • Navigeer naar de Taal tab en voeg een nieuwe taal toe. Het is belangrijk om je telefoon niet opnieuw op te starten.
  • Navigeer naar de Regio tab en kies uw regio.
  • Start de telefoon opnieuw op.

Wanneer de telefoon opnieuw wordt opgestart, kan Visual Studio een fout veroorzaken waardoor de verbinding met de emulator verloren gaat. Na het opnieuw opstarten van de telefoon, debug het project opnieuw. Dit is hoe de app eruit ziet voor het Arabisch:

Nu we klaar zijn met tekenreeksen, voegen we een gelokaliseerde toepassingsbalk toe aan onze app.

5. Een gelokaliseerde toepassingsbalk maken

Stap 1: De toepassingsbalk maken

In deze stap maken we een toepassingsbalk die we overal in onze app kunnen gebruiken. Om dit te doen, zullen we gebruik maken van de App.xaml bestand, waarin we globale XAML-stijlen en -bronnen definiëren die in de toepassing zullen worden gebruikt.

In de ApplicationResources tag in App.xaml, we voegen een toepassingsbalk toe met alleen een pictogram en een menu-item. Vergeet niet om een ​​naam te gevennaar de toepassingsbalk met behulp van de x: key attribuut zodat we er later naar kunnen verwijzen.

     

In de RateReview_Click gebeurtenishandler, we gebruiken een van de telefoontaken om gebruikers naar de winkel te navigeren als ze een beoordeling willen achterlaten of de app willen beoordelen. Wat betreft de Help_Click gebeurtenishandler, we voegen gewoon een C # -code toe om tussen de verschillende pagina's te navigeren. Merk op dat ik een nieuwe XAML-pagina heb toegevoegd, AboutTheApp.xaml, waarin we informatie over onze app tonen.

In App.xamls.cs, voeg de volgende verklaring toe zodat we kunnen profiteren van de klasse telefoontaken:

met behulp van Microsoft.Phone.Shell;

Wanneer de gebruiker op het menu-item tarief en beoordeling tikt, opent de app de winkel op een pagina waarop de gebruiker de app kan beoordelen en / of beoordelen. We gebruiken een MarketPlaceReviewTask zoals dit:

MarketplaceReviewTask review = new MarketplaceReviewTask (); review.Show ();

Wat betreft de Help_Click gebeurtenishandler, zorgt het volgende codefragment voor het navigeren tussen de twee pagina's:

(Application.Current.RootVisual as PhoneApplicationFrame). Navigeren (nieuwe Uri ("/ AboutTheApp.xaml", UriKind.RelativeOrAbsolute)); 

Stap 2: Verwijzen naar de toepassingsbalk

Nadat we de toepassingsbalk hebben gemaakt die we willen gebruiken, voegen we een nieuw exemplaar van de toepassingsbalk toe met behulp van het onderstaande codefragment MainPage.xaml.cs en dan laten we het verwijzen naar die erin App.xaml.

InitializeComponent (); ApplicationBar = nieuwe ApplicationBar (); ApplicationBar = ((ApplicationBar) Application.Current.Resources ["myAppBar"]);

We hebben de AppResources helemaal voor het bouwen van de applicatiebalk, wat betekent dat teksteigenschappen al onafhankelijk van de cultuur van de telefoon zijn ingesteld. Eigenlijk kunnen we bindingen niet echt gebruiken als het gaat om applicatiebalken.

Dit is de reden waarom we verwijzen naar de toepassingsbalk die we eerder hebben gemaakt App.xaml.cs en verander de tekenreekswaarde met behulp van een eenvoudig blok van een code net na de InitializeComponent () methode. De gebruikte strings zijn ook toegevoegd AppResources.resx.

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

Na het toevoegen van de stringbronnen, vertaal ze en herbouwhet project. Voeg tenslotte de informatie van de AboutTheApp.xaml pagina. Dit is hoe het resultaat eruit ziet:

Conclusie

In deze zelfstudie leerden we over telefooncultuur, het gebruik van app-bronnen, het bouwen van een gelokaliseerde applicatie en applicatiebalk en het bouwen van een app-balk die we overal in onze applicatie kunnen gebruiken. We leerden ook hoe we een verwijzing naar een stringwaarde in de AppResources-bestanden moesten maken met behulp van bindingen.

En tot slot hebben we de manier leren kennen waarop we telefoontaken gebruiken om gebruikers te helpen de app in de winkel te beoordelen en beoordelen. Voel je vrij om het voorbeeldproject te downloaden en stel elke vraag die je in gedachten hebt in onderstaande opmerkingen.