Oltre alla gestione delle stringhe dellâinterfaccia utente, il processo di localizzazione comprende la gestione dei formati numerici, monetari e di data.
Instant Developer Cloud non include un framework automatico per questo tipo di operazioni, ma si basa sulle funzioni disponibili negli ambienti JavaScript. In particolare, per lâespressione delle date vengono usate le librerie moment e moment-timezone che consentono la conversione di date in stringhe e viceversa in ogni locale.
Per quanto riguarda i formati numerici, JavaScript fornisce il supporto completo con la funzione toLocaleString ed equivalenti.
Lâoggetto app.locale #
Oltre alla proprietĂ app.langCode, Il framework di Instant Developer contiene lâoggetto app.locale che contiene alcune proprietĂ e metodi utili a questo scopo:
- app.locale.timeZone: nome del timezone della sessione.
- app.locale.timeFormat: formato ora richiesto dalla sessione.
- app.locale.dateFormat: formato data richiesto dalla sessione.
- app.locale.moment(input): metodo che restituisce un oggetto moment per la manipolazione delle date.
- app.locale.now(): metodo che restituisce un oggetto moment che rappresenta data e ora attuali.
- app.locale.today(): metodo che restituisce un oggetto moment che rappresenta la data di oggi.
- app.locale.time(): metodo che restituisce un oggetto moment che rappresenta lâorario attuale.
Per ottenere quindi la formattazione corretta di un campo datetime proveniente dal database, è possibile utilizzare la seguente espressione.
let datetime = âŚ;
let text = app.locale.moment(datetime).format(âLâ);
Il metodo app.locale.moment è quindi il punto di accesso per lâutilizzo della libreria moment.js nei propri progetti. Una volta ottenuto lâoggetto moment che rappresenta un valore datetime, sono applicabili tutti i metodi della relativa libreria.
Input di valori numerici e date #
Gli elementi visuali che consentono lâinput dellâutente di valori numerici e date variano in funzione del framework grafico utilizzato. Se si utilizza IonicUI, il framework consigliato, si hanno a disposizione i seguenti elementi:
- IonInput (type:number) per lâinserimento di numeri.
- IonDateTime per lâinserimento di valori date, time e datetime.
Nel caso di utilizzo di IonDateTime, si ricorda di specificare le proprietĂ displayFormat e pickerFormat usando i valori delle proprietĂ app.locale.dateFormat e app.locale.timeFormat.
Dalla versione 22, è possibile anche utilizzare input con visualizzazione ed inserimento mascherato sia di valori numerici che di date. Si consiglia di leggere la documentazione della proprietà mask per ulteriori informazioni.