Lavorare con le risorse App su Windows Phone

Cosa starai creando

Nelle esercitazioni precedenti abbiamo appreso le risorse delle applicazioni, il MAT (Multilingual App Toolkit) e come testare un'applicazione localizzata. In questo tutorial, non solo sommeremo tutto in un modo più semplice, ma creeremo anche una barra dell'applicazione localizzata che puoi usare ovunque nella tua applicazione.

Gli sviluppatori spesso devono utilizzare la stessa barra delle applicazioni su diverse pagine del loro progetto e di solito finiscono per copiare e incollare il codice XAML e C #, che non è raccomandato.

In questo tutorial imparerai come utilizzare le risorse delle app e come aggiungere localizzazione e globalizzazione alle tue app. Imparerai inoltre a utilizzare i file App.xaml e App.xaml.cs per creare una barra dell'applicazione localizzata che puoi utilizzare ovunque nell'app di Windows Phone.

1. Perché creare un'applicazione localizzata?

Gli utenti di Windows Phone non sono tutti madrelingua inglese. Infatti, solo il 34% di loro parla inglese. Ciò significa che il 66% parla una lingua diversa dall'inglese ed è per questo che è importante creare app localizzate.

Una strategia efficace per aumentare i download di app è rendere l'app più adatta ai clienti Windows Phone che non parlano inglese. Maggiore è il numero di lingue supportate dalla tua app, maggiore sarà il numero di download e migliori saranno le valutazioni della tua app. Supportando francese, tedesco, arabo e spagnolo, supporti circa il 75% del mercato Windows Phone.

In questo tutorial, tradurremo tutte le nostre risorse in app in francese e arabo. Ecco alcuni suggerimenti rapidi da tenere a mente prima di iniziare:

  • Assicurati di nominare tutte le risorse che utilizzerai con significatonomi, perché ci riferiremo alle risorse stringa con il loro nome,non il loro valore. Cerca di dare a ciascuna risorsa un carattere uniconome che ha un senso.
  • Cerca di raccogliere tutte le tue risorse di stringa in AppResources.resx, compresi i titoli dei pulsanti e i messaggi di errore.
  • Abilita il supporto multilinea e il testo a capo nei controlli.
  • Salva sempre il tuo lavoro e assicurati di ricostruire il tuo progetto spesso per implementare le modifiche che apporti AppResources.resx.

2. Supporto per cultura e lingua

Valute, numeri, date, orari e formati regionali differiscono da cultura a cultura. Fortunatamente, il CultureInfo la classe si prende cura di questi dettagli per ogni lingua. In realtà, puoi persino recuperare i dati culturali attuali del telefono e mostrare le sue informazioni in a Casella dei messaggi utilizzando una singola riga di codice:

MessageBox.Show (CultureInfo.CurrentCulture.Name);

comunque, il InitializeLanguage () funzione in app.xaml.cs funziona automaticamente ogni volta che l'app viene avviata e impostata RootFrame.Language in base al valore del AppResources.ResourceLanguage risorsa. Nota che se la tua app non supporta alcuna lingua diversa da it-IT (Inglese, Stati Uniti), l'app utilizza il neutro e l'impostazione predefinita AppResources.resx file del progetto.

3. Localizzazione della tua app

Passaggio 1: aggiunta di risorse e elementi di testo vincolanti

In questo tutorial, costruiremo un'applicazione di una pagina che mostrerà all'utente alcuni saggi e vecchi detti. Per iniziare, in MainPage.xaml, ne aggiungeremo alcuni TextBlock elementi senza specificare il loro contenuto aggiungendo le seguenti due righe di codice nel genitore ContentPanelgriglia:

 

Apportiamo anche le seguenti modifiche al valore predefinito AppResources.resx file:

  • cambiando il Titolo dell'applicazione valore stringa
  • aggiungendo due stringhe come mostrato nello screenshot seguente

Torniamo a MainPage.xaml. Dopo aver aggiunto le stringhe di cui abbiamo bisogno nella nostra app, impostiamo il Testo proprietà del TextBlock controllo per specificare il contenutodi ciascuna TextBlock.

Invece di mostrare "MY APPLICATION" come titolo, usiamo la stringa "My Localized App". Possiamo ottenere questo risultato utilizzando un'associazione che fa riferimento alle risorse dell'app, vincolando il valore della stringa. Per fare questo riferimento, non useremo il valore stringa stesso ma il suo attributo(nome), Titolo dell'applicazione.

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

Ognuno dei due TextBlock gli elementi avranno anche un modo di dire. Useremo solo la stessa riga di codice, sostituendo il Titolo dell'applicazione attributo con l'attributo del nostro dicendo. Questo dovrebbe essere il tuo codice:

   

Questo è come appare il risultato:

Ora abbiamo solo bisogno di aggiungere altre lingue e tradurre.

Passaggio 2: aggiunta di altre lingue

Per aggiungere un'altra lingua, vai alle proprietà del progetto facendo clic con il tasto destro del mouse sul progetto nel Esploratore di soluzioni finestra. Assicurati di accedere alle proprietà del progetto, non alle proprietà della soluzione.


Nel Scheda dell'applicazione dovresti vedere il Lingue supportate sezione. Seleziona la lingua che vuoi supportare. Come accennato in precedenza in questo tutorial, aggiungeremo il francese e l'arabo. Come puoi vedere nella lista, puoi anche selezionare la cultura in base alla regione, ad esempio francese (Francia), francese (Belgio). Per questo tutorial, sceglieremo quello generale, ignorando dialetto e regione.

Una volta salvate le modifiche, si noterà che Visual Studio ha generato automaticamente due nuovi file .resx:

  • AppResources.ar.resx per l'arabo
  • AppResources.fr.resx per il francese

Nota che i file appena generati hanno lo stesso contenuto di AppResources.resx. Non dovresti cambiare gli attributi (nomi). Devi solo tradurre i valori.

3. Utilizzo del kit di strumenti per app multilingue

Il kit di app multilingue è molto utile per tradurre le risorse di stringa. È integrato in Visual Studio, fornisce supporto per la creazione di app Windows e Windows Phone localizzate e aiuta a tradurre le risorse dell'app. Il Toolkit di app multilingue rende più semplice l'aggiunta di altre lingue e consente di importare ed esportare facilmente i file di traduzione.

È possibile scaricare il kit di app multilingue come estensione di Visual Studio dal sito Web degli sviluppatori di Microsoft. Dopo aver installato il toolkit, selezionare Abilita il kit di strumenti per app multilingue dal Utensili menu.

Dopo aver abilitato il MAT, Visual Studio genera nuovo .xlf file per ciascuna delle lingue supportate aggiunte in precedenza. Ciò significa che è possibile generare traduzioni automatiche facendo clic con il tasto destro su .xlf file e scelta Genera traduzioni automatiche. È inoltre possibile modificare le risorse di stringa tradotte nel file bersaglio tag in tutto il .xlf File.


4. Come testare un'applicazione localizzata?

Puoi provare un'applicazione localizzata usando l'emulatore.

  • Esegui il debug del tuo progetto e vai a Impostazioni dell'emulatore.
  • Vai a linguaggio scheda e aggiungi una nuova lingua. È importante non riavviare il telefono.
  • Vai a Regione scheda e scegli la tua regione.
  • Riavvia il telefono.

Quando il telefono si riavvia, Visual Studio potrebbe generare un errore, perdendo la connessione con l'emulatore. Dopo aver riavviato il telefono, esegui nuovamente il debug del progetto. Ecco come appare l'app per l'arabo:

Ora che abbiamo finito con le risorse stringa, aggiungeremo una barra dell'applicazione localizzata alla nostra app.

5. Creazione di una barra dell'applicazione localizzata

Passaggio 1: creazione della barra dell'applicazione

In questo passaggio creeremo una barra delle applicazioni che possiamo utilizzare ovunque nella nostra app. Per farlo, faremo uso del App.xaml file, in cui definiamo gli stili e le risorse XAML globali che verranno utilizzati nell'applicazione.

Nel ApplicationResources tag in App.xaml, aggiungiamo una barra dell'applicazione con solo un'icona e una voce di menu. Non dimenticare di dare un nomealla barra dell'applicazione utilizzando il x: chiave attributo in modo che possiamo riferirci in seguito.

     

Nel RateReview_Click gestore di eventi, utilizziamo una delle attività del telefono per indirizzare gli utenti al negozio se vogliono lasciare una recensione o valutare l'app. Per quanto riguarda la Help_Click gestore di eventi, aggiungiamo semplicemente un codice C # per navigare tra le diverse pagine. Si noti che ho aggiunto una nuova pagina XAML, AboutTheApp.xaml, in cui mostriamo informazioni sulla nostra app.

Nel App.xamls.cs, aggiungi la seguente dichiarazione in modo che possiamo beneficiare della classe di attività del telefono:

utilizzando Microsoft.Phone.Shell;

Quando l'utente tocca la voce di menu Rate e Review, l'app aprirà il negozio su una pagina in cui l'utente può valutare e / o rivedere l'app. Noi usiamo a MarketPlaceReviewTask come questo:

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

Per quanto riguarda la Help_Click gestore di eventi, il seguente frammento di codice si occupa di navigare tra le due pagine:

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

Passaggio 2: fare riferimento alla barra dell'applicazione

Dopo aver creato la barra dell'applicazione che vogliamo utilizzare, aggiungiamo una nuova istanza della barra dell'applicazione utilizzando lo snippet di codice seguente in MainPage.xaml.cs e poi facciamo riferimento a quello in App.xaml.

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

Non abbiamo usato il AppResources affatto per costruire la barra dell'applicazione, il che significa che le proprietà del testo sono già impostate indipendentemente dalla cultura del telefono. In realtà, non possiamo usare davvero i binding quando si gestiscono le barre delle applicazioni.

Questo è il motivo per cui faremo riferimento alla barra delle applicazioni creata in precedenza app.xaml.cs e cambiare il valore delle stringhe, usando un semplice blocco di codice subito dopo InitializeComponent () metodo. Le stringhe utilizzate sono anche aggiunte a AppResources.resx.

// Inizializzazione XAML standard InitializeComponent (); var appBar = App.Current.Resources ["myAppBar"] come ApplicationBar; ((ApplicationBarIconButton) appBar.Buttons [0]). Text = AppResources.AboutAppBarIconText; ((ApplicationBarMenuItem) appBar.MenuItems [0]). Text = AppResources.RateAppBarMenuItemText;

Dopo aver aggiunto le risorse stringa, tradurle e ricostruireil progetto. Infine, aggiungi le informazioni del AboutTheApp.xaml pagina. Questo è come appare il risultato:

Conclusione

In questo tutorial, abbiamo imparato a conoscere la cultura del telefono, come utilizzare le risorse delle app, come creare un'applicazione e una barra delle applicazioni localizzate e come creare una barra delle applicazioni che possiamo riutilizzare in qualsiasi punto della nostra applicazione. Abbiamo anche imparato come creare un riferimento a un valore stringa nei file AppResources utilizzando i bind.

Infine, abbiamo imparato a conoscere il modo in cui utilizziamo le attività telefoniche per aiutare gli utenti a valutare e recensire l'app nello store. Sentiti libero di scaricare il progetto di esempio e di porre qualsiasi domanda che ti passa per la testa nei commenti qui sotto.