Na enkele initiële installatiewerkzaamheden, roept de toepassing de methode Localizer.setLocale() aan om opmaakobjecten voor de standaardlandinstelling te maken. De methode setLocale() wordt ook telkens geroepen wanneer de gebruiker een nieuwe waarde selecteert van de keuzelijst met landinstellingen.
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);
}
}
Eerst maakt de setLocale()-methode een LocaleID-object. Door dit object kunnen details over de werkelijke landinstelling later gemakkelijker worden opgehaald, indien nodig.
Vervolgens worden nieuwe NumberFormatter-, CurrencyFormatter- en DateTimeFormatter-objecten gemaakt voor de landinstelling. Telkens nadat een Formatter-object wordt gemaakt, wordt de methode traceError() aangeroepen. Deze methode geeft foutberichten en waarschuwingen weer in de console als er een probleem optreedt met de aangevraagde landinstelling. (Een werkelijke toepassing moet reageren op basis van deze fouten en niet alleen maar de fouten traceren.)
Nadat het CurrencyFormatter-object is gemaakt, worden de ISO-valutacode van de opmaakfunctie, het valutasymbool en de fractionalDigits-eigenschappen ingesteld op eerdere vastgestelde waarden door de methode setLocale(). (Deze waarde worden telkens ingesteld wanneer de gebruiker een nieuwe markt kiest uit de keuzelijst met markten.)
Nadat het DateTimeFormatter-object is gemaakt, haalt de methode setLocale() ook een array met afkortingen van de gelokaliseerde namen voor de maanden op.