in src/java/org/apache/fulcrum/localization/LocaleTokenizer.java [69:118]
public LocaleTokenizer(String header)
{
StringTokenizer tok = new StringTokenizer(header, LOCALE_SEPARATOR);
while (tok.hasMoreTokens())
{
AcceptLanguage acceptLang = new AcceptLanguage();
String element = tok.nextToken().trim();
int index;
// Record and cut off any quality value that comes after a
// semi-colon.
if ( (index = element.indexOf(QUALITY_SEPARATOR)) != -1 )
{
String q = element.substring(index);
element = element.substring(0, index);
if ( (index = q.indexOf('=')) != -1 )
{
try
{
acceptLang.quality =
Float.valueOf(q.substring(index + 1));
}
catch (NumberFormatException useDefault)
{
// ignore
}
}
}
element = element.trim();
// Create a Locale from the language. A dash may separate the
// language from the country.
if ( (index = element.indexOf('-')) == -1 )
{
// No dash means no country.
acceptLang.locale = new Locale(element, "");
}
else
{
acceptLang.locale = new Locale(element.substring(0, index),
element.substring(index + 1));
}
locales.add(acceptLang);
}
// Sort by quality in descending order.
locales.sort(Collections.reverseOrder());
}