private void setCalendarLocale(ULocale locale) {
        ULocale calLocale = locale;

        if (locale.getVariant().length() != 0 || locale.getKeywords() != null) {
            // Construct a ULocale, without variant and keywords (except calendar).
            StringBuilder buf = new StringBuilder();

            buf.append(locale.getLanguage());

            String script = locale.getScript();
            if (script.length() > 0) {
                buf.append("_").append(script);
            }

            String region = locale.getCountry();
            if (region.length() > 0) {
                buf.append("_").append(region);
            }

            String calType = locale.getKeywordValue("calendar");
            if (calType != null) {
                buf.append("@calendar=").append(calType);
            }

            calLocale = new ULocale(buf.toString());
        }

        setLocale(calLocale, calLocale);
    }
private void setCalendarLocale ( ULocale locale ) { ULocale calLocale = locale ; if ( locale . getVariant ( ) . length ( ) != 0 || locale . getKeywords ( ) != null ) { StringBuilder buf = new StringBuilder ( ) ; buf . append ( locale . getLanguage ( ) ) ; String script = locale . getScript ( ) ; if ( script . length ( ) > 0 ) { buf . append ( "_" ) . append ( script ) ; } String region = locale . getCountry ( ) ; if ( region . length ( ) > 0 ) { buf . append ( "_" ) . append ( region ) ; } String calType = locale . getKeywordValue ( "calendar" ) ; if ( calType != null ) { buf . append ( "@calendar=" ) . append ( calType ) ; } calLocale = new ULocale ( buf . toString ( ) ) ; } setLocale ( calLocale , calLocale ) ; }
/*
Set valid/actual locale to this calendar during initialization.

Valid or actual locale does not make much sense for Calendar
object. An instance of Calendar is initialized by week data
determine by region and calendar type (either region or keyword).
Language is not really used for calendar creation.