Efter en inledande konfiguration anropar programmet metoden Localizer.setLocale() för att skapa formateringsobjekt för standardspråkområdet. Metoden setLocale() anropas också varje gång användaren väljer ett nytt värde i kombinationsrutan för språkområde.
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);
}
}
Först skapar metoden setLocale() ett LocaleID-objekt. Detta objekt gör det lättare att få information om det faktiska språkområdet senare om det behövs.
Sedan skapas nya NumberFormatter-, CurrencyFormatter- och DateTimeFormatter-objekt för språkområdet. Sedan varje formatter-objekt har skapats anropas metoden traceError(). Denna metod visar fel- och varningsmeddelanden i konsolen om det finns några problem med det aktuella språkområdet. (I ett verkligt program skulle dessa fel åtgärdas i stället för att endast spåras).
När CurrencyFormatter-objektet har skapats anger metoden setLocale() formateringens ISO-valutakod, valutasymbol och fractionalDigits-egenskaper för tidigare angivna värden. (Dessa värden anges varje gång användaren väljer en annan marknad i kombinationsrutan för marknader).
När DateTimeFormatter-objektet har skapats hämtar metoden setLocale() även en matris av lokaliserade förkortningar på månader.