Arbeide med App Resources på Windows Phone

Working Med App Resources på Windows Phone
95
Del
4
Del
Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Hva du skal lage

I tidligere tutorials, lærte vi om program ressurser, MAT (Multilingual App Toolkit), og hvordan du kan teste en lokalisert app. I denne opplæringen, vil vi ikke bare summere det hele opp på en enklere måte, men også skape en lokalisert programlinjen som du kan bruke hvor som helst i programmet.

Utviklere må ofte bruke det samme programmet bar på flere sider i sitt prosjekt, og de som regel ender opp med å kopiere og lime inn XAML og C # kode, noe som ikke anbefales.

I denne opplæringen vil du lære hvordan du bruker app ressurser og hvordan du legger til lokalisering og globalisering til apps. Du vil også lære å bruke App.xaml og App.xaml.cs filer for å bygge en lokal applikasjon bar som du kan bruke hvor som helst i Windows Phone app.

1. Hvorfor bygge en lokalisert App?

Windows Phone-brukere er ikke alle engelsk som morsmål. Faktisk bare 34% av dem snakker engelsk. Dette betyr at 66% snakker et annet språk enn engelsk, og det er derfor det er viktig å bygge lokaliserte apps.

En effektiv strategi for å øke app nedlastinger er ved å gjøre din app mer egnet for Windows Phone kunder som ikke gjør det snakk engelsk. Jo flere språk appen støtter, jo flere nedlastinger det vil få og bedre rangeringer av appen vil bli. Ved å støtte fransk, tysk, arabisk og spansk, støtte deg ca 75% av Windows Phone markedet.

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

Sørg for å nevne alle de ressursene du skal bruke med menings
navn, fordi vi vil være å henvise til string ressurser ved sitt navn,
ikke sin verdi. Prøv å gi hver ressurs en unik
navn som gir mening.

  • Prøv å samle alle dine streng ressurser i AppResources.resx, inkludert knapp titler og feilmeldinger.
  • Aktiver linjer støtte og tekstbryting på kontrollene.

    alltid lagre arbeidet ditt og sørg for å gjenoppbygge prosjektet ofte å gjennomføre de endringene du gjør i AppResources.resx.

    2. Kultur & Språkstøtte

    Valutaer, tall, dato, klokkeslett, og regionens formater forskjellig fra kultur til kultur. Heldigvis tar Culture klassen vare på disse detaljene for hvert språk. Egentlig kan du selv hente de aktuelle kultur data på telefonen og vise sin informasjon i en messagebox ved hjelp av en eneste linje med kode:
    MessageBox.Show (CultureInfo.CurrentCulture.Name);

    Men InitializeLanguage () funksjon i App.xaml.cs gjør jobben automatisk hver gang programmet er lansert og setter RootFrame.Language basert på verdien av den AppResources.ResourceLanguage ressurs. Merk at hvis din app ikke støtter noe annet enn en-US (engelsk, United States) språk, bruker app nøytral og standard AppResources.resx fil av prosjektet.

    3. Lokalisere Dine App

    Trinn 1: Legge til ressurser og innbinding Tekst Elements

    I denne opplæringen, vil vi bygge en en-side app som vil vise brukeren noen kloke, gamle ordtak. For å starte, i MainPage.xaml, vil vi legge til et par TextBlock elementer uten å spesifisere sitt innhold ved å legge til følgende to linjer med kode i moder ContentPanel grid:
    < TextBlock TextWrapping = "Wrap" skrift = "30" > < /TextBlock > < TextBlock TextWrapping = "Wrap" skrift = "30" > < /TextBlock >

    Vi lager også følgende endringer i standard AppResources.resx filen:

    endre ApplicationTitle strengverdien

    legge to strenger som vist i følgende skjermbilde

    La oss nå gå tilbake til MainPage.xaml. Etter å legge strengene vi trenger i vår app, setter vi Tekst eiendommen av TextBlock kontrollen for å presisere innholdet
    av hver TextBlock.

    I stedet for å vise "min søknad" som tittel, bruker vi strengen "My Lokalisert App". Vi kan oppnå dette ved hjelp av en binding som gjør henvisning til appressurser, binding verdien av strengen. For å gjøre denne referansen, vil vi ikke være med strengverdi i seg selv, men dens attributt product: (navn), ApplicationTitle.
    Text = "{Binding Sti = LocalizedResources.ApplicationTitle, Source = { StaticResource LocalizedStrings}} "

    Hver av de to TextBlock elementene vil ha en si også. Vi vil bare bruke den samme kodelinje, og erstatte den ApplicationTitle attributt med vår ordtak attributt. Dette er hva koden skal se ut:
    < StackPanel > < TextBlock TextWrapping = "Wrap" Text = "{Binding Sti = LocalizedResources.HappinessSaying, Source = {StaticResource LocalizedStrings}}" skrift = "30" > < /TextBlock > < TextBlock TextWrapping = "Wrap" Text = "{Binding Sti = LocalizedResources.NelsonMandelaSaying, Source = {StaticResource LocalizedStrings}}" skrift = "30" > < /TextBlock > < /StackPanel >

    Dette er hva resultatet ser slik ut:.

    Vi har nå kun trenger å 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-vinduet. Sørg for å få tilgang til prosjektets egenskaper, ikke egenskapene til løsningen.

    I program Tab skal du se Støttede språk delen. Velg språket du ønsker å støtte. Som nevnt tidligere i denne opplæringen, vil vi legge til fransk og arabisk. Som du kan se i listen, kan du selv velge kulturen avhengig av regionen, for eksempel fransk (Frankrike), fransk (Belgia). For denne opplæringen, vil vi bare velge den generelle én, ignorerer dialekt og omegn

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


    AppResources.ar.resx for arabisk

    AppResources.fr.resx for fransk

    Legg merke til at de nylig genererte filene har samme innhold som AppResources.resx. Du bør ikke endre attributtene (navn). Du trenger bare å oversette verdiene.

    3. Bruke Multilingual App Toolkit

    The Multilingual App Toolkit er svært nyttig for å oversette streng ressurser. Det er integrert i Visual Studio, og gir støtte for å bygge lokaliserte Windows og Windows Phone-apps, og hjelpe til med å oversette app ressurser. Multilingual App Toolkit gjør legge lettere andre språk, og du kan importere og eksportere oversettelses filer enkelt.

    Du kan laste ned Flerspråklig App Toolkit som Visual Studio forlengelse fra Microsofts utvikler hjemmeside. Etter å ha installert verktøysettet, velger du Aktiver Flerspråklig App Toolkit fra Verktøy-menyen.

    Når du har aktivert MAT, genererer Visual Studio nye .xlf filer for hvert av de støttede språkene du har lagt tidligere. Dette betyr at du kan generere maskinoversettelser ved å høyreklikke på en .xlf fil og velge Generer maskinoversettelser. Du kan også endre de oversatte streng ressurser i målet tag i alle .xlf filer.

    4. Hvor å Test en lokalisert App?

    Du kan teste en lokalisert app ved hjelp av emulator.

  • Debug prosjektet og gå til Emulator Innstillinger.
  • Gå til Språk fanen og legge et nytt språk. Det er viktig å ikke starte telefonen på nytt.
  • Naviger til kategorien Region og velg din region.
  • Start telefonen.
    < p> Når telefonen starter på nytt, kan Visual Studio kaste en feil, å miste forbindelsen med emulator. Etter omstart av telefonen, feilsøke prosjektet igjen. Dette er hva app ser ut for arabisk:

    Nå som vi er ferdige med streng ressurser, vil vi legge til en lokalisert programlinjen til vår app

    5.. Opprette et Application Bar

    Trinn 1: Opprette Application Bar

    I dette trinnet, vil vi lage en søknad bar som vi kan bruke hvor som helst i vår app. For å gjøre dette, vil vi gjøre bruk av App.xaml filen, der vi definerer globale XAML stiler og ressurser som skal brukes på tvers av søknaden.

    I ApplicationResources tag i App.xaml, vi legger en søknad bar med bare et ikon og et menyelement. Ikke glem å gi et navn
    til programlinjen ved hjelp av x: nøkkelen attributt, slik at vi kan referere til den senere
    < shell. ApplicationBar x: Key = "myAppBar" IsVisible = " ekte "IsMenuEnabled =" true "> < shell: ApplicationBarIconButton IconUri = "/Eiendeler /appbar /questionmark.png" Text = "test" klikk = "Help_Click" /> < shell: ApplicationBar.MenuItems > < shell: ApplicationBarMenuItem Text = "Rate og gjennomgang" klikk = "RateReview_Click" /> < /shell: ApplicationBar.MenuItems > < /shell: ApplicationBar >

    I RateReview_Click hendelseshåndterer, bruker vi en av telefon oppgaver å navigere brukere til butikken hvis de ønsker å forlate en anmeldelse eller evaluer app. Som for Help_Click hendelseshåndterer, vi bare legge noen C # -kode for å navigere mellom de forskjellige sidene. . Legg merke til at jeg har lagt til en ny XAML side, AboutTheApp.xaml, der vi viser informasjon om vår app

    I App.xamls.cs, legge følgende uttalelse slik at vi kan dra nytte av telefonoppgaver klasse:
    bruker Microsoft.Phone.Shell;

    Når brukeren kraner menypunktet rente og gjennomgang, vil app åpne butikken på en side hvor brukeren kan vurdere og /eller anmeldelse av appen. Vi bruker en MarketPlaceReviewTask som dette:
    MarketplaceReviewTask gjennomgang = new MarketplaceReviewTask (); review.Show ();

    Som for Help_Click hendelseshåndterer, tar inn følgende kode vare navigere mellom de to sider:
    (Application.Current.RootVisual som PhoneApplicationFrame) .Navigate (ny Uri ("/AboutTheApp.xaml", UriKind.RelativeOrAbsolute));
    Trinn 2: Referanse Application Bar

    Etter å ha laget programlinjen som vi ønsker å bruke, legger vi til en ny forekomst av programmet bar bruker under kodebiten i MainPage.xaml.cs og da vi gjør det refererer til den i App.xaml
    InitializeComponent ();. ApplicationBar = new ApplicationBar (); ApplicationBar = ((ApplicationBar) Application.Current.Resources ["myAppBar"]);

    Vi har ikke brukt AppResources i det hele tatt for å bygge programlinjen, noe som betyr at tekst eiendommene er allerede satt uavhengig av Telefonens kultur. Egentlig kan vi ikke egentlig bruke bindinger når du arbeider med applikasjons barer.

    Dette er grunnen til at vi vil referere til programlinjen vi opprettet tidligere i App.xaml.cs og endre strenger verdi, ved hjelp av en enkel blokk av en kode like etter InitializeComponent () -metoden. Strengene som brukes er også lagt til AppResources.resx
    //Standard XAML initializationInitializeComponent ();. Var appbar = App.Current.Resources ["myAppBar"] som ApplicationBar; ((ApplicationBarIconButton) appBar.Buttons [0]). Text = AppResources.AboutAppBarIconText;. ((ApplicationBarMenuItem) appBar.MenuItems [0]) Text = AppResources.RateAppBarMenuItemText;

    Etter å legge strengen ressurser, oversette dem og gjenoppbygge
    prosjektet. Til slutt legger du informasjonen om AboutTheApp.xaml siden. Dette er hva resultatet ser slik ut:

    Konklusjon

    I denne opplæringen, vi har lært om telefonkultur, hvordan du bruker app ressurser, hvordan å bygge en lokal applikasjon og programlinjen, og hvordan du bygge en app bar som vi kan bruke hvor som helst i søknaden vår. Vi har også lært hvordan å lage en referanse til en streng verdi i AppResources filer ved hjelp av bindinger.

    Og til slutt, fikk vi vite hvordan vi bruker telefonoppgaver for å hjelpe brukerne rangere og vurdere programmet i butikken. Føl deg fri til å laste ned prøveprosjektet og stille noen spørsmål som krysser tankene dine i kommentarfeltet nedenfor.