class LocaleInfo implements Cloneable, Externalizable {

    public static LocaleInfo parse(String name) {
        name = assertNotNull(StringUtil.trimToNull(name), "no locale name");

        int index = name.indexOf(":");
        String localePart = name;
        String charsetPart = null;

        if (index >= 0) {
            localePart = name.substring(0, index);
            charsetPart = name.substring(index + 1);
        }

        Locale locale = LocaleUtil.parseLocale(localePart);
        String charset = StringUtil.trimToNull(charsetPart);

        return new LocaleInfo(locale, charset);
    }

    public  LocaleInfo();
    public  LocaleInfo(Locale locale);
    public  LocaleInfo(Locale locale, String charset);
      LocaleInfo(Locale locale, String charset, LocaleInfo fallbackLocaleInfo);

}