Localizing en Windows Phone 8 Søknad
27
Del
8
Del
Dette Cyber mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av.
Nye store trender viser at å tilby din app på engelsk vil dekke bare ca 25% av Windows Phone-kunder. Legge spansk, fransk, Mandarin, russisk og tysk kan øke dekningen til mer enn 75% av Windows Phone-kunder.
Innledning
I denne opplæringen, vil jeg lære deg hvordan å lokalisere en Windows Phone 8 app for å nå flere potensielle kunder. Jeg vil vise deg hvordan du setter opp Windows Phone 8 prosjekt slik at hele brukergrensesnittet, inkludert feilmeldinger, kan lokaliseres. På slutten av opplæringen, vil du ha lært hvordan å forberede din app, slik at det kan oversettes til flere språk.
vurdere følgende beste praksis for å bygge en app som lett kan lokaliseres:
Lag egne ressursfiler for strenger, bilder og videoer til å lage din kode språkuavhengig . Dette sikrer at det kan støtte forskjellige språk.
Vi vil først diskutere kultur og språk støtte som tilbys av Windows Phone 8 og deretter diskutere trinnene involvert i å forberede en app for lokalisering. Etter det, vil vi se hvordan å bygge en lokal programlinjen. Vi vil til slutt diskutere hvordan å teste en lokalisert app.
1. Kultur & Språkstøtte
Numbers, valuta, dato og klokkeslett er formatert forskjellig i ulike kulturer. Hver støttet kultur er oppført i Culture klassen. Culture klasse utsetter egenskaper for å få tilgang region formatere data for en bestemt kultur. Du kan også bruke Culture klasse med en kultur kode for å få tilgang til innebygde formatering og sortering regler for denne kulturen.
Skjermspråket bestemmer standard brukergrensesnitt skrift. Er lokalisert i Windows Phone 8.1 brukergrensesnitt på 50 språk, men programmet kan vise et mye større utvalg av språk. Når du legger til støtte til app for flere språk, genererer Visual Studio en .resx fil for hvert språk.
InitializeLanguage funksjon i App.xaml.cs filen setter appens RootFrame.Language basert på verdien av den AppResources.ResourceLanguage ressurs.
2. Standard Lokalisering Steps
Nye prosjekter og maler for Windows Phone 8 XAML apps gir flere nyttige nye funksjoner:
Et nøytralt språk ressursfilen, AppResources.resx, legges som standard til alle nytt prosjekt.
LocalizedStrings hjelperen klassen allerede er konfigurert for å gi enkel tilgang til de ressursene som samsvarer med gjeldende kulturen i en app.
En ny ressurs fil med locale spesifikt navn og app språk initialisering parametere i stedet opprettes når du legger til et støttet kultur fra Prosjektegenskaper i Visual Studio.
La oss se hvordan alt dette fungerer ved å opprette et utvalg app, med engelsk som basisspråk. Anmeldelser
Trinn 1: Binding XAML Tekst Elements
Vi først binde XAML tekstelementer til streng ressurser.
Kopier alle hardkodet streng i appens XAML som må være lokalisert til en ny rad i strengen tabellen på AppResources.resx fil.
Deretter henvise XAML elementer til dette ressursstreng ved å legge til unikt navn og en standard bindings punkt i stedet for hardkodet verdi.
TextBlock vist nedenfor er bundet med streng ressurs i stedet for hardkodet tekst
< TextBlock x. Name = "AppTitleTextBlock" Text = "{Binding Sti = LocalizedResources.ApplicationTitle, Source = {StaticResource LocalizedStrings}} "style =" {StaticResource PhoneTextNormalStyle} "/>
gjennom prosjektets kode bak for steder der koden modifiserer en tekst egenskap av et brukergrensesnitt element Søk. Bytt ut hardkodet verdi med en referanse til strengen ressurs for hvert element
ApplicationBarMenuItem about_appBarMenuItem = new ApplicationBarMenuItem (AppResources.AppBarAboutMenuItem);
Trinn 2:. Legge Språk
Legge språk til et Windows Phone 8 prosjekt i Visual Studio er enkel. Naviger til prosjektets egenskapssiden og velg språkene du ønsker å støtte fra listen som støttes kulturer.
I prøven prosjektet, har jeg lagt Kinesisk (forenklet) og spansk (Spania), hvis locale koder er zh- Hans og ES-ES, respektivt. Velg språkene du vil at app for å støtte de som støttes kulturer boksen på prosjektets Egenskaper-siden.
Når du lagrer prosjektet, skaper Visual Studio en AppResources.resx fil for hver lokalitet. Den nyopprettede ressursfilen er forhåndsutfylt med de eksisterende ressurser fra hoved AppResources.resx filen.
Hver ressurs filen inneholder to spesielle ressurser heter ResourceLanguage og ResourceFlowDirection. Disse to ressursene brukes når InitializeLanguage metoden kalles fra App.xaml.cs konstruktør. Deres verdier blir sjekket automatisk for å sikre at de samsvarer med kulturen i ressursfilen lastet under kjøring.
ResourceLanguage verdi er initialisert med locale navnet på ressursen fil og brukes til å stille inn RootFrame.Language verdi . Den ResourceFlowDirection verdien er satt til den tradisjonelle retning av den ressursen språket
Merk at ResourceLanguage og ResourceFlowDirection kan endres for å justere med appens design stil
Trinn 3:.. Bruke Multilingual App Toolkit for Oversettelse
Multilingual App Toolkit (MAT), som er integrert i Visual Studio, gir oversettelsesstøtte, oversettelse filbehandling, og lokalisering verktøy for å lage Windows Phone og Windows Store apps. Her er noen fordeler med å bruke Multilingual App Toolkit:
Det sentraliserer streng ressurs og metadata ledelse
Verktøyet gjør det enkelt å lage, import og eksport oversettings filer i. XLIFF format, en standard i bransjen.
Det er ikke nødvendig å bytte frem og tilbake mellom ressursfiler.
Det er lett å legge til nye oversatte språk helt fra prosjektets kontekstmenyen.
For å begynne å bruke Flerspråklig App Toolkit for Windows Phone-prosjektet, laste ned og installere Visual Studio forlengelse fra MSDN. Med verktøysettet installert, velger du prosjektet og velger Aktiver Flerspråklig App Toolkit fra Verktøy-menyen, som vist nedenfor.
Merk at lokaliserte ressurser er definert per prosjekt, ikke per løsning. Dette betyr at Visual Studio fokus må være innenfor prosjektet for Enable Flerspråklig App Toolkit alternativet skal være tilgjengelig fra Verktøy-menyen.
Når du har aktivert Multilingual App Toolkit, vil Visual Studio legge til filer i ressursmappen din prosjektet, en av dem har en ny type og navn, AppResources.qps.ploc.xlf. Den .xlf forlengelse refererer til XLIFF standard filformat jeg nevnte tidligere.
Flere språk kan legges via Multilingual App Toolkit. Dette resulterer i en ny støttet kultur blir lagt til i prosjektet. Det fører også tillegg av et språk som støttes i prosjektets WMAppManifest.xml.
For å oversette ressursene til kinesisk (forenklet) og spansk (Spania), høyreklikker du på .xlf filen og velg Generer maskinoversettelser fra kontekstmenyen. Påfør oversettelsene og gjenoppbygge prosjektet for å se endringene som blir reflektert i .resx filer for de to ekstra språk.
3. Bygge en Lokalisert Application Bar
Du kan legge til en app bar til en side i programmet ditt, enten på siden XAML eller ved å bruke C # på siden code-bak. ApplicationBar er ikke et DependencyObject og støtter ikke bindinger. Dette betyr at hvis du trenger å kopiere den, deretter bygge ApplicationBar fra kode bak C #.
Når en ny Windows Phone 8 eller Windows Phone 8.1 Silverlight prosjektet er opprettet, noen kommen kode for lokalisering programlinjen er lagt til MainPage.xaml.cs som standard. Uncomment metoden BuildLocalizedApplicationBar og legge til knapper, menyelementer og tilhørende ressurser som du ønsker å bruke i programmet ditt.
Private void BuildLocalizedApplicationBar () {//Sett sidens ApplicationBar til en ny forekomst av ApplicationBar. ApplicationBar = new ApplicationBar (); //Opprett en ny knapp og sette tekst verdi til lokaliserte strengen fra AppResources. ApplicationBarIconButton appBarButton = new ApplicationBarIconButton (ny Uri ("/Eiendeler /Check.png", UriKind.Relative)); appBarButton.Text = AppResources.AppBarButtonText; appBarButton.Click + = appBarButton_Click; ApplicationBar.Buttons.Add (appBarButton); //Opprett en ny menyelement med lokaliserte strengen fra AppResources. ApplicationBarMenuItem zh_appBarMenuItem = new ApplicationBarMenuItem ("中文"); ApplicationBar.MenuItems.Add (zh_appBarMenuItem); zh_appBarMenuItem.Click + = new Event (zh_appBarMenuItem_Click); ApplicationBarMenuItem en_appBarMenuItem = new ApplicationBarMenuItem ("engelsk"); ApplicationBar.MenuItems.Add (en_appBarMenuItem); en_appBarMenuItem.Click + = new Event (en_appBarMenuItem_Click); ApplicationBarMenuItem es_appBarMenuItem = new ApplicationBarMenuItem ("español"); ApplicationBar.MenuItems.Add (es_appBarMenuItem); es_appBarMenuItem.Click + = new Event (es_appBarMenuItem_Click);}
BuildLocalizedApplicationBar metoden skaper en ny forekomst av ApplicationBar. Knapper og menyelementer er lagt til det og teksten verdien er satt til den lokaliserte strengen fra AppResources. Appen bar knappen har en binding til AppBarButtonText, som er definert i AppResouces.resx filen. Ring BuildLocalizedApplicationBar metoden fra sidens konstruktør å laste ApplicationBar.
I prøven app, kan brukerne velge sin visningsspråk via ApplicationBar menyen. Som vist i skjermbildet nedenfor, menyelementene være konsekvent på tvers av visningsspråk mens app bar knappen er lokalisert.
Når en bruker kraner til et skjermspråk i ApplicationBar menyen, SetUILanguage metoden kalles. Den SetUILanguage metoden, med navnet på målspråket sendes som en parameter, brukes til å stille inn visningsspråk
private void SetUILanguage (String locale) {Culture newCulture = new Culture (locale).; Thread.CurrentThread.CurrentCulture = newCulture; Thread.CurrentThread.CurrentUICulture = newCulture; FlowDirection flyt = (FlowDirection) Enum.Parse (typeof (FlowDirection), AppResources.ResourceFlowDirection); App.RootFrame.FlowDirection = flyt; //Sett Språket i RootFrame å matche den nye kulturen. App.RootFrame.Language = XmlLanguage.GetLanguage (AppResources.ResourceLanguage);}
SetUILanguage metoden først tilbakestiller CurrentUICulture av app til locale leveres i samtalen. Enhver ressurs bundet tekst gjengis av applikasjonen vil bruke ressurser på det angitte locale etter denne samtalen.
Deretter setter FlowDirection og språk av RootFrame, noe som vil føre til at brukergrensesnittet gjengis av app til å følge . de nye innstillingene
BuildLocalizedApplicationBar metoden kalles fra sidens konstruktør etter kallet til InitializeComponent å lokalisere ApplicationBar
offentlig Mainpage () {InitializeComponent (.); //Kode for å lokalisere ApplicationBar BuildLocalizedApplicationBar ();}
4. Teste en Lokalisert App
Windows Phone emulator kan brukes til å teste lokaliserte app. Endre språket til språket som app mål å verifisere at innholdet gjengir korrekt
Klikk Start for debugging fra Debug menyen
Naviger til regionen &..; språk fra Innstillinger i app-listen.
Klikk Visningsspråk og velg ett av språkene. Bruk tabellen i kartleggingen Kultur Names å vise språk å finne ut hvilken visningsspråk string å velge.
Her er hvordan teksten endres når språket endres. Legg merke til at menyelementene være konsekvent selv om skjermen språkendringer.
For å dynamisk endre språket, ring SetUILanguage metode med navnet på målspråket sendes som en parameter.
I sample app, har hver brukergrensesnitt element i MainPage.xaml allerede blitt gjengitt, så de som vises elementer må oppdateres etter endre språket. Den updateUI metoden oppdateres elementene i brukergrensesnittet av MainPage.xaml
private void updateUI () {apptitle.Text = AppResources.ApplicationTitle.; pagetitle.Text = AppResources.mainpagetitle; usermessage.Text = AppResources.displayMessage; checkbutton.Content = AppResources.checkEligibility; enterage.Text = AppResources.userMessage;.}
Vær oppmerksom på at plassering av hver brukergrensesnitt element på skjermen er uendret, uavhengig av visningsspråk
Konklusjon
I denne opplæringen, du har lært hvordan du kan forberede din app for lokalisering. Hardkodet XAML og kode-bak strenger som må lokaliseres, plasseres i en ressurs fil streng bord og gitt en unik nøkkel.
Hver hard-kodet verdi er erstattet av en bindende klausul i XAML eller en ressurs referanse i koden ved hjelp av nøkkelen for tilhørende string ressurs.
Du kan legge til flere visningsspråk og bruke Multilingual App Toolkit for å gjøre ende-til-ende prosessen med å oversette din app vesentlig lettere. Føl deg fri til å laste ned opplæringen er kildefilene til å bruke som en referanse.