L'oggetto globalization offre una serie di funzionalità per la gestione delle preferenze dell'utente per quanto riguarda la lingua e la formattazione di date, numeri e valute. Ad esempio, il seguente codice mostra come recuperare la lingua impostata sulla piattaforma:
navigator.globalization.getPreferredLanguage(
function(language) {
alert("Lingua: " + language.value);
},
function(error) {
alert("Errore: " + error.message + " (" + error.code + ")");
}
);
Il metodo getPreferredLanguage() prevede due funzioni di callback come parametri: la prima nel caso di successo, la seconda in caso di errore:
- in caso di successo viene passato alla funzione di callback un oggetto con la proprietà
value
impostata al valore della lingua preferita dall'utente; - in caso di errore viene passato un oggetto con la proprietà
code
, che indica il codice di errore, emessage
, che indica il messaggio di errore.
Nel seguente esempio possiamo vedere come formattare la data corrente in base alle impostazioni di formattazione della piattaforma:
navigator.globalization.dateToString(
new Date(),
function(date) {
alert(date.value);
},
function(error) {
alert("Errore: " + error.message + " (" + error.code + ")");
},
{ formatLength: "short", selector: "date" }
);
Il primo parametro del metodo dateToString() è la data da convertire; il secondo parametro è la funzione di callback da eseguire in caso di successo della formattazione; il terzo parametro è la funzione di callback da eseguire in caso di errore; il quarto parametro è un oggetto che rappresenta le opzioni di formattazione.
Nell'esempio abbiamo specificato la formattazione della data in modalità compatta (short
), cioè senza nomi di giorno e mese, e prendendo in considerazione soltanto la componente data, ignorando cioè l'ora e i minuti.
Il metodo inverso che converte una stringa formattata secondo le impostazioni della piattaforma nel corrispondente valore di tipo data è stringToDate()
:
navigator.globalization.stringToDate(
"01/09/2013",
function(date) {
alert("Giorno: " + date.day + "\n" +
"Mese: " + date.month + "\n" +
"Anno: " + date.year + "\n");
},
function(error) {
alert("Errore: " + error.message + " (" + error.code + ")");
},
{ formatLength: "short", selector: "date" }
);
La funzione di callback in caso di successo riceve come parametro un oggetto con una serie di proprietà che indicano le componenti della data: year
, month
, day
, hour
, minute
, second
e millisecond
.
Analogamente a quanto visto per le date, sono disponibili metodi per la formattazione di numeri in stringhe e viceversa (numberToString()
e stringToNumber()
), per recuperare i pattern di formattazione per date, numeri, valute ed altre funzioni di utilità per i cui dettagli si rimanda alla documentazione ufficiale.