Dopo alcune operazioni di configurazione iniziale, l'applicazione chiama il metodo Localizer.setLocale() per creare oggetti di formattazione per le impostazioni internazionali predefinite. Il metodo setLocale() viene anche chiamato ogni volta che l'utente seleziona un nuovo valore dalla casella combinata Impostazioni internazionali.
public function setLocale(newLocale:String):void
{
locale = new LocaleID(newLocale);
nf = new NumberFormatter(locale.name);
traceError(nf.lastOperationStatus, "NumberFormatter", nf.actualLocaleIDName);
cf = new CurrencyFormatter(locale.name);
traceError(cf.lastOperationStatus, "CurrencyFormatter", cf.actualLocaleIDName);
symbolIsSafe = cf.formattingWithCurrencySymbolIsSafe(currentCurrency);
cf.setCurrency(currentCurrency, currentSymbol);
cf.fractionalDigits = currentFraction;
df = new DateTimeFormatter(locale.name, DateTimeStyle.LONG, DateTimeStyle.SHORT);
traceError(df.lastOperationStatus, "DateTimeFormatter", df.actualLocaleIDName);
monthNames = df.getMonthNames(DateTimeNameStyle.LONG_ABBREVIATION);
}
public function traceError(status:String, serviceName:String, localeID:String) :void
{
if(status != LastOperationStatus.NO_ERROR)
{
if(status == LastOperationStatus.USING_FALLBACK_WARNING)
{
trace("Warning - Fallback locale ID used by "
+ serviceName + ": " + localeID);
}
else if (status == LastOperationStatus.UNSUPPORTED_ERROR)
{
trace("Error in " + serviceName + ": " + status);
//abort application
throw(new Error("Fatal error", 0));
}
else
{
trace("Error in " + serviceName + ": " + status);
}
}
else
{
trace(serviceName + " created for locale ID: " + localeID);
}
}
Il metodo setLocale() crea innanzitutto un oggetto LocaleID. Questo oggetto semplifica in seguito il recupero di dettagli relativi alle impostazioni internazionali effettive, se necessario.
Quindi crea nuovi oggetti NumberFormatter, CurrencyFormatter e DateTimeFormatter per le impostazioni internazionali. Dopo aver creato gli oggetti di formattazione chiama il metodo traceError() che visualizza messaggi di errore e avvertenza nella console se si verifica un problema con le impostazioni internazioni richieste. (Un'applicazione reale deve reagire in base a questi errori anziché semplicemente registrarli).
Dopo aver creato l'oggetto CurrencyFormatter, il metodo setLocale() imposta il codice valuta ISO, il simbolo di valuta e le proprietà fractionalDigits del formattatore sui valori determinati in precedenza. (Tali valori vengono impostati ogni volta che l'utente seleziona un nuovo mercato dalla casella combinata Mercati).
Dopo aver creato l'oggetto DateTimeFormatter, il metodo setLocale() recupera anche un array di abbreviazioni nomi mese localizzati.