Procedura dettagliata: localizzazione di un'applicazione LightSwitch
È possibile creare un'applicazione di LightSwitch che visualizzi automaticamente l'interfaccia utente in diverse lingue con un client Silverlight, un client HTML o entrambi. In questa procedura dettagliata, verrà creata un'applicazione ed entrambi i tipi di client e quindi verrà localizzata in tedesco (o in un'altra lingua per cui è possibile fornire traduzioni).
Per localizzare l'applicazione, occorrerà aggiungere un identificatore di risorsa per ogni stringa visualizzata in Progettazione schermata. Quindi, per i livelli client e server, sarà necessario creare un file di risorse per la lingua predefinita e uno per la lingua localizzata. È possibile localizzare un'applicazione anche se dispone di un solo tipo di client. Sono stati inclusi entrambi i tipi in modo da consentire l'esercitazione nella localizzazione di ciascuno di essi.
Nota
Se si sta localizzando solo un client Silverlight, potrebbe essere necessario eseguire prima di tutto l'aggiornamento.Nella barra dei menu, scegliere Progetto, Aggiorna progetto.Se il comando Aggiorna progetto non viene visualizzato, il progetto viene già aggiornato.
In questa procedura dettagliata viene mostrato come completare le attività seguenti:
Creare l'applicazione
Localizzare il livello del server
Localizzare la schermata del client Silverlight
Aggiungere le risorse della lingua predefinita
Aggiungere risorse localizzate
Chiamare una risorsa dal codice
Localizzare un client HTML
Prerequisiti
È necessario utilizzare Microsoft LightSwitch per Visual Studio, aggiornamento 2 per localizzare un'applicazione di LightSwitch.
Per creare l'applicazione
Creare un'applicazione utilizzando il modello Applicazione LightSwitch HTML (Visual Basic) o Applicazione LightSwitch HTML (Visual C#) e denominarla Esempio di localizzazione.
Aggiungere una tabella, denominarla Contact, quindi aggiungere i seguenti campi:
Nome
Type
Obbligatorio
ContactName
String
Sì
ContactPhone
Numero di telefono
Sì
In Esplora soluzioni aprire il menu di scelta rapida del nodo Localization_Sample.HTMLClient, quindi scegliere Aggiungi schermata.
Aggiungere una schermata Sfoglia dati denominata BrowseContacts, quindi scegliere Contatti come Dati della schermata.
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Client HTML, quindi scegliere Aggiungi schermata.
Aggiungere una schermata Aggiungi/Modifica dettagli denominata AddEditContact, quindi scegliere Contatto come Dati dello schermo.
Aprire la schermata BrowseContacts e nella finestra di progettazione della schermata, aprire il menu di scelta rapida del nodo Layout delle righe | Elenco contatti e quindi scegliere Aggiungi pulsante.
Nella finestra di dialogo Aggiungi pulsante, nell'elenco showTav selezionare showAddEditContact.
Nel campo Contatto immettere (Nuovo contatto), quindi scegliere il pulsante OK .
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Esempio di localizzazione, quindi scegliere Aggiungi client.
Accettare i valori predefiniti per Client desktop, quindi scegliere OK.
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Client desktop, quindi scegliere Aggiungi schermata.
Aggiungere una schermata Nuovi dati denominata NewContact, quindi scegliere Contatto come Dati della schermata.
Nella finestra di progettazione dello schermo, scegliere il nodo Aggiungi e quindi Aggiungi testo.
Nella finestra di dialogo Modifica testo immettere Aggiungi un nuovo contatto qui.
Per localizzare il livello del server
In Esplora soluzioni espandere il nodo Origini dati, quindi aprire l'entità Contacts.lsml.
In Data Designer scegliere il campo ContactName.
Nella finestra Proprietà scegliere la proprietà Nome visualizzato, quindi immettere $(ContactName).
La notazione $() significa che il valore della proprietà Nome visualizzato è un identificatore di risorsa. In fase di esecuzione, LightSwitch recupererà il valore effettivo da un file di risorse.
Nota
Gli identificatori di risorsa possono contenere solo le lettere e numeri, non spazi.
In Entity Designer scegliere il campo ContactPhone.
Nella finestra Proprietà scegliere la proprietà Nome visualizzato, quindi immettere $(ContactPhone).
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Localization Sample.Server, scegliere Aggiungi, quindi Nuovo elemento.
Aggiungere un File di risorse e denominarlo Service.resx.
Importante
È necessario sempre denominare il file di risorse server per qualsiasi applicazione di LightSwitch Service.resx e tale file deve essere memorizzato nel nodo radice del progetto server.
Aggiungere i seguenti valori al file di risorse:
Nome
Valore
ContactName
Nome
ContactPhone
Phone
I valori nella colonna Nome corrispondono agli identificatori di risorsa aggiunti in precedenza, ma i valori non hanno la notazione $(). Le stringhe Valore verranno visualizzate in qualsiasi schermata che utilizza l'entità Contatti.
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Localization Sample.Server, scegliere Aggiungi, quindi Nuovo elemento.
Aggiungere un File di risorse e denominarlo Service.de-DE.resx.
Aggiungere i seguenti valori al file di risorse:
Nome
Valore
ContactName
Kontaktname
ContactPhone
Telefonnummer
La stringa Valore localizzata verrà visualizzata in qualsiasi schermata che utilizza l'entità Contatti. È ora possibile eseguire l'applicazione e verificare che le stringhe per i pulsanti ContactName e ContactPhone vengano visualizzate correttamente. È inoltre possibile distribuire l'applicazione in un computer impostato sulla lingua Tedesco e verificare che siano visualizzate le stringhe localizzate.
Suggerimento
Come procedura consigliata, è opportuno localizzare prima le stringhe per tutte le entità a livello server.Tali stringhe verranno visualizzate in qualsiasi schermata che utilizza le entità. È possibile eseguire l'override delle stringhe a livello di schermata in base alle necessità.
Per localizzare la schermata del client Silverlight
In Esplora soluzioni aprire la schermata NewContact.lsml.
Nella finestra di progettazione della schermata scegliere il nodo Layout righe | Nuovo contratto
Nella finestra Proprietà scegliere la proprietà Nome visualizzato, quindi immettere $(AddContact).
Nella finestra di progettazione della schermata aprire il menu di scelta rapida per il nodo Testo, quindi scegliere Modifica contenuto.
Nella finestra Proprietà, sostituire il testo esistente con $(Text).
Se l'applicazione viene eseguita a questo punto, si noterà che gli identificatori di risorsa effettivi vengono visualizzati sulla schermata. Non preoccuparti: nel passaggio successivo il problema sarà risolto tramite la creazione di un file predefinito per le risorse della lingua.
Per aggiungere un file predefinito per le risorse della lingua
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Localization Sample.DesktopClient, scegliere Aggiungi, quindi Nuovo elemento.
Aggiungere un File di risorse e denominarlo Client.resx.
Importante
Per qualsiasi client Silverlight di un'applicazione LightSwitch, è necessario denominare sempre il file predefinito per le risorse della lingua Client.resx e il file deve trovarsi nel nodo radice del progetto client.
Aggiungere i seguenti valori al file di risorse:
Nome
Valore
AddContact
Aggiungere il contatto
Testo
Aggiungere le informazioni del contatto e scegliere il pulsante Salva.
I valori nella colonna Nome corrispondono agli identificatori di risorsa aggiunti in precedenza, ma i valori non hanno la notazione $(). I valori nella colonna Valore saranno le stringhe che appariranno quando un utente esegue l'applicazione nella lingua impostata in Lingua predefinita nelle impostazioni dell'applicazione.
Per aggiungere un file di risorse localizzato
In Esplora soluzioni aprire il menu di scelta rapida per il nodo Localization Sample.DesktopClient, scegliere Aggiungi, quindi Nuovo elemento.
Aggiungere un File di risorse e denominarlo Client.de-DE.resx.
Importante
È necessario denominare sempre i file di risorse localizzati Client.LocaleID.resx, dove LocaleID rappresenta l'ID delle impostazioni locali di Windows per la lingua di destinazione e i file devono trovarsi nel nodo radice del progetto client.Se si sceglie una lingua diverso dal tedesco, immettere l'ID delle impostazioni locali per tale lingua anziché de-DE e inserire la proprie traduzioni al passaggio successivo.
Aggiungere i seguenti valori al file di risorse:
Nome
Valore
AddContact
Einen Newen Kontakt erstellen
Testo
Fügen Sie die Kontaktinformationen hinzu und speichern Sie dann.
Queste stringhe verranno visualizzate quando si esegue l'applicazione in un computer impostato sulla lingua tedesca (o qualsiasi lingua scelta). Se si desidera localizzare in più lingue, aggiungere un file di risorse per tutte le altre lingue.
Nota
Per un client Silverlight che viene localizzato in più lingue, il Language Pack di Windows attivo determina la lingua che verrà visualizzata.
Per chiamare una risorsa dal codice
In Esplora soluzioni aprire il file Service.resx e quindi aggiungere i seguenti valori:
Nome
Valore
ErrorMessage
Il nome non può contenere un punto esclamativo.
Aprire il file Service.de-DE.resx e quindi aggiungere i seguenti valori:
Nome
Valore
ErrorMessage
Name darf keine Ausrufezeichen enthalten.
In Esplora soluzioni aprire l'entità Contacts.lsml.
Nell'elenco Scrivi codice di Entity Designer, selezionare il metodo Contacts_Validate.
Nota
Assicurarsi di aver selezionato l'entità stessa e non un campo dell'entità.In caso contrario, si verificherà un errore di compilazione.
Nell'editor di codice aggiungere un'istruzione Imports o using:
Imports My.Resources
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Resources; using System.Text; using Microsoft.LightSwitch; using Microsoft.LightSwitch.Security.Server; namespace LightSwitchApplication
Aggiungere al metodo Contacts_Validate il codice seguente:
If entity.ContactName.Contains(“!”) Then results.AddEntityError(Service.ErrorMessage) End If
if (entity.ContactName.Contains("!")) { ResourceManager serviceResources = new ResourceManager( "LightSwitchApplication.Service", Assembly.GetExecutingAssembly()); results.AddEntityError(serviceResources.GetString("ErrorMessage")); }
È ora possibile eseguire l'applicazione, immettere un nuovo nome contatto contenente un punto esclamativo, salvare e verificare che il messaggio di errore venga visualizzato. È inoltre possibile distribuire l'applicazione in un computer impostato sulla lingua Tedesco e verificare che il messaggio sia visualizzato in tedesco.
Per localizzare il client HTML
In Esplora soluzioni aprire la schermata BrowseContacts.lsml.
Nella finestra di progettazione della schermata scegliere il nodo Mostra aggiungi contatto di modifica
Nella finestra Proprietà scegliere la proprietà Nome visualizzato, quindi immettere $(add).
In Esplora soluzioni espandere il nodo Localization Sample.HTMLClient, aprire il menu di scelta rapida per il nodo Contenuto, scegliere Aggiungi, quindi selezionare Nuova cartella.
Assegnare alla cartella il nome Risorse.
Aprire il menu di scelta rapida per il nodo Risorse, selezionare Aggiungi, quindi scegliere Nuovo elemento.
Aggiungere un elemento File di risorse (.resjson) e denominarlo client.lang-en-US.resjson.
Importante
In qualsiasi client HTML per un'applicazione LightSwitch, è necessario denominare sempre il file predefinito per le risorse della lingua client.lang-LocaleID.resjson, dove LocaleID rappresenta l'ID delle impostazioni locali di Windows per la lingua nel computer di sviluppo.A differenza del client Silverlight, il client HTML non include il concetto della lingua predefinita.
Nell'Editor di codice sostituire il codice con il seguente:
{ “add” : “Add a Contact”, “errorMessage” : “Name can’t contain an exclamation mark.“ }
Aprire il menu di scelta rapida per il nodo Risorse, selezionare Aggiungi, quindi scegliere Nuovo elemento.
Aggiungere un altro elemento File di risorse (.resjson) e denominarlo client.lang-de-DE.resjson.
Nell'Editor di codice sostituire il codice con il seguente:
{ “add” : “Hinzufügen eines Kontakts”, “errorMessage” : “Name darf keine Ausrufezeichen enthalten.“ }
In Esplora soluzioni aprire il menu di scelta rapida del nodo Localization Sample.HTMLClient, quindi scegliere Imposta un client StartUp.
Aprire la schermata AddEditContact.lsml, quindi nella finestra di progettazione della schermata, nell'elenco Scrivi codice, sostituire il codice nel metodo beforeApplyChanges con il seguente:
myapp.AddEditContact.beforeApplyChanges = function (screen) { if (screen.Contact.ContactName.indexOf('!') != -1) { screen.findContentItem("ContactName").validationResults = [ new msls.ValidationResult( screen.Contact.details.properties.ContactName, WinJS.Resources.getString("/client/errorMessage").value ) ]; return false; } };
È ora possibile eseguire l'applicazione e verificare che la stringa per il pulsante Aggiungi contatto e il messaggio di errore vengano visualizzati correttamente. È inoltre possibile distribuire l'applicazione in un computer con un browser impostato sulla lingua Tedesco e verificare che siano visualizzate le stringhe localizzate.
Nota
Per un client HTML che viene localizzato in più lingue, l'impostazione della lingua del browser determina la lingua che verrà visualizzata.
Passaggi successivi
Questo è quanto è necessario fare per localizzare un'applicazione di LightSwitch. Molte parti dell'interfaccia utente, come la barra dei comandi della finestra e il menu di navigazione, vengono localizzate automaticamente. È possibile eseguire l'override delle conversioni automatiche aggiungendo identificatori di risorsa alle proprietà Nome visualizzato o Descrizione degli elementi appropriati. Infatti, è possibile localizzare solo una parte dell'applicazione LightSwitch utilizzando le tecniche apprese.
Vedere anche
Altre risorse
Progetti: contenitore per l'applicazione LightSwitch