Importare traduzioni da un altro progetto¶
Introduzione
Questo tutorial mostra come importare traduzioni di stringhe di progetto, tramite comunicazione OPC UA, da un altro progetto. Le traduzioni sono visualizzate a runtime a seconda della localizzazione dell’utente.
Il progetto server contiene l’interfaccia utente e le traduzioni. Il progetto client è privo di interfaccia utente e si connette a runtime al server per importare l’interfaccia utente e le traduzioni dal server, da mostrare all’utente in base alla sua localizzazione.
Nota
la procedura fa riferimento a progetti con localizzazione it-IT (proprietà Localizzazioni del nodo radice di progetto).
Per realizzare la pagina di accesso nel progetto client si usa un widget predefinito di Q Studio, che ne imposta l’interfaccia utente e i meccanismi fondamentali.
Scarica i progetti di esempio da qui
.
Passi
Creare i progetti server e client
Creare un nuovo progetto standard denominato ServerProject. Il progetto contiene già un oggetto OPC UA server, che, in mancanza di impostazioni specifiche, espone tutti i nodi del progetto.
Creare un altro nuovo progetto standard denominato ClientProject.
Suggerimento
prima di procedere, rimuovere l’oggetto Server OPC UA nella cartella di progetto OPC UA, in quanto non necessario per gli scopi di questo tutorial.
Server: configurare l’interfaccia utente e le traduzioni
Nella cartella UI creare una cartella Panels. Al suo interno creare un tipo di pannello Panel1.
In MainWindow creare un’etichetta Label1 (Nuovo > Controlli base > Etichetta) e inserire nella sua proprietà Testo la stringa «Ciao mondo!».
Aprire il LocalizationDictionary TranslationTable1, fare clic su Visualizza Riferimenti di traduzione e sincronizzare il testo dell’etichetta Label1.
Fare clic su Visualizza Tabella traduzioni e inserire la traduzione italiana «Hello world!».
In MainWindow creare un oggetto Pannello dinamico denominato ServerPanelLoader. Nella sua proprietà Pannello selezionare il tipo Panel1.
(Opzionale) In MainWindow creare un’etichetta Label2 che visualizza la localizzazione dell’utente di sessione. Per farlo, nella proprietà Testo impostare un collegamento dinamico con {Session}/Session/User/User/LocaleIds.
(Opzionale) Per verificare che il testo dell’etichetta cambi in base all’utente corrente seguire questi passi:
Nella cartella Users creare una cartella ServerUsers. Al suo interno creare due utenti Alice e Bob con localizzazione rispettivamente it-IT ed en-US.
Nella cartella UI creare un oggetto Popup (Nuovo > Contenitori > Popup) denominato LoginPopup .
Aprire la libreria dei template e trascinare il widget Modulo di accesso nell’oggetto LoginPopup. Nell’oggetto LoginForm1 che contiene, impostare puntare l’alias Users alla cartella ServerUsers.
Nell’oggetto MainWindow creare un oggetto Pulsante con pannello (Nuovo > Contenitori > Pulsante con pannello) denominato LoginPopupButton. Nella sua proprietà Pannello selezionare l’oggetto LoginPopup.
Eseguire il progetto per verificare che il testo dell’etichetta cambi in base all’utente corrente.
Client: configurare gli utenti e predisporre l’interfaccia utente
All’interno della cartella Users creare una cartella ClientUsers.Al suo interno creare due utenti Alice e Bob con localizzazione rispettivamente it-IT ed en-US.
Nella cartella UI creare un oggetto Popup (Nuovo > Contenitori > Popup) denominato LoginPopup .
Aprire la libreria dei template e trascinare il widget Modulo di accesso nell’oggetto LoginPopup. Nell’oggetto LoginForm1 che contiene, impostare puntare l’alias Users alla cartella ClientUsers.
Nell’oggetto MainWindow creare un oggetto Pulsante con pannello (Nuovo > Contenitori > Pulsante con pannello) denominato LoginPopupButton. Nella sua proprietà Pannello selezionare l’oggetto LoginPopup.
In MainWindow creare un oggetto Pannello dinamico denominato ClientPanelLoader, per visualizzare a runtime il contenuto del pannello importato.
In MainWindow creare un NetLogic di runtime con il codice seguente nel metodo
Start()
. Il NetLogic inizializza il pannello dinamico ClientPanelLoader con il pannello importato dal server:public override void Start() { var importedPanel = Project.Current.Get("UI/Panels/Panel1"); if (importedPanel == null) { Log.Error("Could not find remote panel"); return; } var mainWindowPanelLoader = LogicObject.Owner.Get<PanelLoader>("ClientPanelLoader"); //Change panel to the imported remote panel mainWindowPanelLoader.ChangePanel(importedPanel.NodeId, NodeId.Empty); }
Client: configurare l’importazione
Nella cartella OPC UA creare un oggetto Client OPC UA (Nuovo > Client OPC UA): viene creato l’oggetto ClientOpcUa1.
Nella proprietà Endpoint URL server di ClientOpcUa1 inserire l’endpoint dell’oggetto Server OPC UA presente nel progetto server.
Nelle proprietà di ClientOpcUa1 aggiungere due configurazioni di runtime (vedere Configurare l’importazione di nodi a runtime).
Impostare proprietà della prima configurazione di runtime, per importare l’interfaccia utente:
Nodo destinazione locale: ClientProject/UI
Nodo sorgente remoto: /Objects/ProgettoServer/UI/Panels, ovvero il percorso della cartella Panels del server a runtime
Modalità sincronizzazione contenuto: Solo importazione
Includi nodo sorgente remoto: Vero
Impostare proprietà della seconda configurazione di runtime, per importare le traduzioni:
Nodo destinazione locale: ClientProject/Translations
Nodo sorgente remoto: /Objects/ProgettoServer/Translations, ovvero il percorso della cartella Translations del server a runtime
Modalità sincronizzazione contenuto: Solo importazione
Includi nodo sorgente remoto: Falso
Verificare il funzionamento
Avviare nell’ordine il progetto server e il progetto client per verificare che le traduzioni siano state importate correttamente nel progetto client e che siano visualizzate a seconda della localizzazione dell’utente di sessione.
Vedi anche
Concetti correlati
Sicurezza delle comunicazioni OPC UA
Procedure correlate
Usare un oggetto Client OPC UA
Usare certificati e chiavi OPC UA
API correlate
Riferimenti