Messaggi traducibili e parametrizzabili

Molto spesso nel codice è necessario inserire dei messaggi per comunicare qualcosa all’utente finale.
In questi casi è importante far sì che i testi siano traducibili, in modo da evitare messaggi in una lingua diversa da quella predefinita dall’utente.

Inoltre può essere necessario inserire dei campi variabli all’interno di un messaggio:
per esempio “Trovati X file”, dove X è un numero che varia di caso in caso.

Sage mette a disposizione degli strumenti per rendere tutto ciò parametrico.

I passi da fare sono 4:

  1. creare un messaggio traducibile
  2. inserire le traduzioni necessarie
  3. richiamare da codice il messaggio creato
  4. parametrizzare il messaggio

Creare un messaggio traducibile

Andare alla voce Sviluppo \ Dizionario dati \ Tabelle \ Menù locali – Messaggi (funzione TXT).
Qui è possibile inserire voci di menu e messaggi riutilizzabili poi in tutte le altre parti di Sage X3.

In particolare, i capitoli dal 6200 al 6999 sono riservati per i menù locali specifici,
mentre i capitoli dal 6000 al 6199 sono riservati per i messaggi specifici.

Nel nostro caso quindi dovremo utilizzare un capitolo, da denominare per esempio “Messaggi MiaAzienda”, a partire dal capitolo 6000.
Ricordarsi di inserire il codice attività!

 

Qui sotto, giusto per dare un’idea, vediamo il capitolo 1:

Sage V9 Menu Messages (funzione TXT)

Sage V9 Menu Messages (funzione TXT)

 

Possiamo ora inserire i nostri messaggi:
il numero verrà assegnato in automatico,
il codice è obbligatorio ma non ha un utilizzo, si può impostare sempre a 1.

Una volta inseriti i nostri messaggi nella nostra lingua di default registriamo le modifiche e il primo passo è fatto.

Inserire le traduzioni

Adesso dobbiamo inserire le traduzioni nelle varie lingue dei messaggi inseriti.
andiamo in Traduzioni \ Software \ Funzioni \ Traduzioni menù locali (funzione ALOCTRAD).

  • Inserire la lingua di riferimento (ITA se abbiamo inserito i testi in italiano)
  • Inserire la lingua in cui si vuole tradurre
  • inserire il capitolo da tradurre (6000 per esempio).

Per ogni testo inserito compaiono due righe, quella inserita e una vuota in cui inserire la traduzione.

E’ possibile tradurre anche la descrizione del capitolo stesso.

vediamo qui come esempio la traduzione del capitolo 100 da italiano a inglese:

Sage V9 Menu Messages translation (function ALOCTRAD)

Sage V9 Menu Messages translation (function ALOCTRAD)

 

Richiamare da codice il messaggio creato

A questo punto non rimane che richiamare i testi da codice; per far questo va usata l’istruzione mess().

Per esempio se il messaggio da utilizzare è il numero 3 del capitolo 6000 scriveremo:

mess(3,6000,1)  #mess(NumTesto, Capitolo, 1)

Per dare un semplice messaggio va utilizzata la funzione MESSAGE() from GESECRAN,
nel nostro caso quindi:

call MESSAGE(mess(3, 6000, 1)) from GESECRAN

Per altri tipi di messaggi vedi finestre di dialogo

 

A questo punto il messaggio sarà riportato in base alla lingua dell’utente.

Fate attenzione che se un utente utilizza una lingua di cui non c’è traduzione il messaggio sarà vuoto!

Parametrizzare il messaggio

Finalmente siamo all’ultimo passaggio.

Supponiamo di scrivere come terzo messaggio del capitolo 6000 un testo del tipo “Questo elemento è utilizzato da N articoli”, dove N è un numero variabile.
Dovremo inserire “$1$” al posto del campo variabile nel messaggio, in questo modo:

“Questo elemento è utilizzato da $1$ articoli”

Questa parametrizzazione ovviamente va fatta anche per tutte le traduzioni.

Per richiamare da codice useremo le funzioni AFNC.MES

func AFNC.MES1 ("valore $1$",                 "MioValore")
func AFNC.MES2 ("valori $1$ $2$",             "Mio1", "Mio2")
func AFNC.MES3 ("valori $1$ $2$ $3$",         "Mio1", "Mio2", "Mio3")
func AFNC.MES4 ("valori $1$ $2$ $3$ $4$",     "Mio1", "Mio2", "Mio3","Mio4")
func AFNC.MES5 ("valori $1$ $2$ $3$ $4$ $5$", "Mio1", "Mio2", "Mio3","Mio4","Mio5")

Nel nostro esempio avremo:

Local Integer NUMARTICOLI
NUMARTICOLI=4
func AFNC.MES1 (mess(3,6000,1), num$(NUMARTICOLI))

che restituirà il messaggio: ““Questo elemento è utilizzato da 4 articoli”

 

 

Spero vi sia stato utile!

Potrebbero interessarti anche...

Lascia un commento

Scopri di più da SageDev

Abbonati ora per continuare a leggere e avere accesso all'archivio completo.

Continue reading