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.