Arbeide med appressurser på Windows Phone

Hva du skal skape

I tidligere opplæringsprogrammer lærte vi om programressurser, MAT (Multilingual App Toolkit), og hvordan du tester en lokal app. I denne opplæringen vil vi ikke bare oppsummere det på en enklere måte, men også opprette en lokal applikasjonslinje som du kan bruke hvor som helst i søknaden din.

Utviklere må ofte bruke samme programlinje på flere sider i prosjektet, og de slutter som regel å kopiere og lime inn XAML- og C # -koden, som ikke anbefales.

I denne opplæringen lærer du hvordan du bruker appressurser og hvordan du legger til lokalisering og globalisering i appene dine. Du vil også lære å bruke App.xaml- og App.xaml.cs-filene til å bygge en lokalisert programlinje som du kan bruke hvor som helst i Windows Phone appen din.

1. Hvorfor bygge en lokalisert app?

Windows Phone-brukere er ikke alle engelskspråklige høyttalere. Faktisk snakker bare 34% av dem engelsk. Dette betyr at 66% snakker et annet språk enn engelsk, og derfor er det viktig å bygge lokaliserte apper.

En effektiv strategi for å øke appnedlastinger, er ved å gjøre appen din mer egnet for Windows Phone-kunder som ikke snakker engelsk. Jo flere språk appen din støtter, desto flere nedlastinger vil det få, og jo bedre blir appen din vurdert. Ved å støtte fransk, tysk, arabisk og spansk, støtter du om lag 75% av Windows Phone-markedet.

I denne opplæringen oversetter vi alle app-ressursene våre til fransk og arabisk. Her er noen raske tips å huske på før vi starter:

  • Pass på å navngi alle ressursene du vil bruke med meningsfyltnavn, fordi vi vil referere til strengressurser ved navn,ikke deres verdi. Prøv å gi hver ressurs en uniknavn som gir mening.
  • Prøv å samle alle dine strengressurser i AppResources.resx, inkludert knappetitler og feilmeldinger.
  • Aktiver multilinje støtte og tekst innpakning i kontroller.
  • Lag alltid arbeidet ditt og sørg for å gjenoppbygge prosjektet ditt ofte for å implementere endringene du gjør AppResources.resx.

2. Kultur og språkstøtte

Valutaer, tall, dato, klokkeslett og regionformater varierer fra kultur til kultur. Heldigvis Culture Klassen tar seg av disse detaljene for hvert språk. Faktisk kan du til og med hente dagens kulturelle data på telefonen og vise informasjonen i en Meldingsboks bruker en enkelt linje med kode:

MessageBox.Show (CultureInfo.CurrentCulture.Name);

Imidlertid InitializeLanguage () fungere i App.xaml.cs gjør jobben automatisk hver gang appen startes og settes RootFrame.Language basert på verdien av AppResources.ResourceLanguage ressurs. Vær oppmerksom på at hvis appen din ikke støtter noe annet språk enn en-US (Engelsk, USA), bruker appen nøytral og standard AppResources.resx fil av prosjektet.

3. Lokalisering av appen din

Trinn 1: Legge til ressurser og bindende tekstelementer

I denne opplæringen vil vi bygge en 1-sidig app som viser brukeren noen klok, gamle ord. For å starte, inn MainPage.xaml, vi legger til noen få TextBlock elementer uten å spesifisere innholdet ved å legge til følgende to kodelinjer i foreldrene ContentPanelNett:

 

Vi gjør også følgende endringer i standardinnstillingen AppResources.resx fil:

  • endre ApplicationTitle strengverdi
  • legger til to strenger som vist i følgende skjermbilde

La oss nå gå tilbake til MainPage.xaml. Etter å ha lagt til strengene vi trenger i vår app, setter vi inn Tekst eiendom av TextBlock kontroll for å spesifisere innholdetav hver TextBlock.

I stedet for å vise "MY APPLICATION" som tittel, bruker vi strengen "Min lokaliserte app". Vi kan oppnå dette ved å bruke en binding som gjør referansen til app-ressursene, bindende verdien av strengen. For å gjøre denne referansen, vil vi ikke bruke strengverdien selv, men dens attributt(Navn), ApplicationTitle.

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

Hver av de to TextBlock elementene vil også ha et ordtak. Vi bruker bare samme linje med kode, erstatter ApplicationTitle attributt med ordtakets attributt. Dette er hvordan koden din skal se ut:

   

Slik ser resultatet ut:

Vi trenger nå bare å legge til andre språk og oversette.

Trinn 2: Legge til andre språk

For å legge til et annet språk, gå til prosjektets egenskaper ved å høyreklikke på prosjektet i Solution Explorer vindu. Sørg for å få tilgang til prosjektets egenskaper, ikke egenskapene til løsningen.


I Programfanen du bør se Støttede språk seksjon. Velg språket du vil støtte. Som nevnt tidligere i denne opplæringen legger vi til fransk og arabisk. Som du kan se på listen, kan du selv velge kulturen avhengig av regionen, som fransk (Frankrike), fransk (Belgia). For denne opplæringen velger vi bare den generelle, ignorerer dialekt og region.

Når du lagrer endringene, vil du legge merke til at Visual Studio automatisk har generert to nye .resx-filer:

  • AppResources.ar.resx for arabisk
  • AppResources.fr.resx for fransk

Vær oppmerksom på at de nylig genererte filene har samme innhold som AppResources.resx. Du bør ikke endre attributter (navn). Du trenger bare å oversette verdiene.

3. Bruk Multilingual App Toolkit

Multilingual App Toolkit er svært nyttig for å oversette strengressurser. Den er integrert i Visual Studio, som gir støtte for å bygge lokaliserte Windows- og Windows Phone-apper, og hjelper til med å oversette appressurser. Multilingual App Toolkit gjør det enklere å legge til andre språk, og du kan enkelt importere og eksportere oversettelsesfiler.

Du kan laste ned Multilingual App Toolkit som en Visual Studio-utvidelse fra Microsofts utvikler nettsted. Etter å ha installert verktøyet, velg Aktiver Multilingual App Toolkit fra Verktøy Meny.

Etter å ha aktivert MAT, genererer Visual Studio ny .XLF filer for hvert av de støttede språkene du la til tidligere. Dette betyr at du kan generere maskinoversettelser ved å høyreklikke på en .XLF fil og velg Generer maskinoversettelser. Du kan også endre de oversatte strengressursene i mål tag i alle .XLF filer.


4. Hvordan teste en lokalisert app?

Du kan teste en lokal app ved hjelp av emulatoren.

  • Feilsøk prosjektet ditt og gå til Emulatorinnstillinger.
  • Naviger til Språk kategorien og legg til et nytt språk. Det er viktig å ikke starte telefonen på nytt.
  • Naviger til Region fanen og velg din region.
  • Start telefonen på nytt.

Når telefonen starter på nytt, kan Visual Studio kaste en feil, og taper forbindelsen med emulatoren. Etter å ha startet telefonen, feilsøk prosjektet på nytt. Slik ser appen for arabisk ut:

Nå som vi er ferdige med strengressurser, legger vi til en lokal applikasjonslinje i vår app.

5. Opprette en lokalisert applikasjonslinje

Trinn 1: Opprette applikasjonslinjen

I dette trinnet oppretter vi en applikasjonslinje som vi kan bruke hvor som helst i appen vår. For å gjøre det, bruker vi App.xaml fil, der vi definerer globale XAML stiler og ressurser som vil bli brukt over hele applikasjonen.

I ApplicationResources tag inn App.xaml, Vi legger til en applikasjonslinje med bare et ikon og et menyelement. Ikke glem å gi et navntil programfeltet ved hjelp av x: nøkkelen attributt slik at vi kan referere det senere.

     

RateReview_Click hendelseshåndterer, bruker vi en av telefonoppgavene til å navigere brukere til butikken hvis de vil legge inn en anmeldelse eller vurdere appen. Når det gjelder Help_Click hendelseshandler, legger vi bare til noen C # -koder for å navigere mellom de forskjellige sidene. Legg merke til at jeg la til en ny XAML-side, AboutTheApp.xaml, der vi viser informasjon om vår app.

App.xamls.cs, legg til følgende erklæring slik at vi kan dra nytte av telefonoppgaveklassen:

bruker Microsoft.Phone.Shell;

Når brukeren tapper hastigheten og vurderer menyelementet, åpner appen butikken på en side der brukeren kan vurdere og / eller vurdere appen. Vi bruker en MarketPlaceReviewTask som dette:

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

Når det gjelder Help_Click hendelsesbehandler, følger følgende kodestykke seg for å navigere mellom de to sidene:

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

Trinn 2: Henvisning av applikasjonslinjen

Etter å ha opprettet applikasjonslinjen som vi vil bruke, legger vi til en ny forekomst av programfeltet ved hjelp av koden nedenfor MainPage.xaml.cs og så får vi det til å referere til den i App.xaml.

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

Vi har ikke brukt AppResources i det hele tatt for å bygge applikasjonslinjen, noe som betyr at tekstegenskaper allerede er satt uavhengig av telefonens kultur. Faktisk kan vi egentlig ikke bruke bindinger når vi arbeider med applikasjonsfeltene.

Det er derfor vi skal referere til programlinjen vi opprettet tidligere i App.xaml.cs og endre strengens verdi, ved hjelp av en enkel blokk av en kode like etter InitializeComponent () metode. De brukte strengene blir også lagt til AppResources.resx.

// Standard XAML initialisering InitializeComponent (); var appBar = App.Current.Resources ["myAppBar"] som ApplicationBar; ((ApplicationBarIconButton) appBar.Buttons [0]). Tekst = AppResources.AboutAppBarIconText; ((ApplicationBarMenuItem) appBar.MenuItems [0]). Tekst = AppResources.RateAppBarMenuItemText;

Etter å ha lagt til strengressursene, oversetter dem og gjenoppbyggerprosjektet. Til slutt legger du til informasjonen til AboutTheApp.xaml side. Slik ser resultatet ut:

Konklusjon

I denne opplæringen lærte vi om telefonkultur, hvordan du bruker appressurser, hvordan du bygger en lokal applikasjons- og applikasjonslinje, og hvordan du bygger en applinje som vi kan gjenbruke hvor som helst i applikasjonen vår. Vi lærte også å lage en referanse til en strengverdi i AppResources-filene ved hjelp av bindinger.

Og til slutt fikk vi vite hvordan vi bruker telefonoppgaver for å hjelpe brukerne å vurdere og vurdere appen i butikken. Du er velkommen til å laste ned prøveprosjektet og stille spørsmål som krysser i kommentarene nedenfor.