/* Copyright 2004 Sun Microsystems, Inc. All rights reserved. You may not modify, use, reproduce, or distribute this software except in compliance with the terms of the License at:
http://adventurebuilder.dev.java.net/LICENSE.txt
$Id: I18nUtil.java,v 1.2 2004/05/26 00:07:34 inder Exp $ */
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
/**
* This utility class for internationalization. This class provides a central
* location to do specialized formatting in both a default and a locale specfic
* manner.
*/
public class Main {
/**
* Convert a string based locale into a Locale Object
*
* Strings are formatted:
*
* language_contry_variant
*
*/
public static Locale getLocaleFromString(String localeString) {
if (localeString == null)
return null;
if (localeString.toLowerCase().equals("default"))
return Locale.getDefault();
int languageIndex = localeString.indexOf('_');
if (languageIndex == -1)
return null;
int countryIndex = localeString.indexOf('_', languageIndex + 1);
String country = null;
if (countryIndex == -1) {
if (localeString.length() > languageIndex) {
country = localeString.substring(languageIndex + 1, localeString.length());
} else {
return null;
}
}
int variantIndex = -1;
if (countryIndex != -1)
countryIndex = localeString.indexOf('_', countryIndex + 1);
String language = localeString.substring(0, languageIndex);
String variant = null;
if (variantIndex != -1) {
variant = localeString.substring(variantIndex + 1, localeString.length());
}
if (variant != null) {
return new Locale(language, country, variant);
} else {
return new Locale(language, country);
}
}
}