// *******************************************************************************
// *
// *   Copyright (C) 1997-2001, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************

// Experimental locales are commented out

index {
    InstalledLocales {
        af,
        af_ZA,
        ar,
        ar_AE,
        ar_BH,
        ar_DZ,
        ar_EG,
//        ar_IN,
        ar_IQ,
        ar_JO,
        ar_KW,
        ar_LB,
        ar_LY,
        ar_MA,
        ar_OM,
        ar_QA,
        ar_SA,
        ar_SD,
        ar_SY,
        ar_TN,
        ar_YE,
        be,
        be_BY,
        bg,
        bg_BG,
//        bn,
//        bn_IN,
        ca,
        ca_ES,
        ca_ES_EURO,
        cs,
        cs_CZ,
        da,
        da_DK,
        de,
        de__PHONEBOOK,
        de_AT,
        de_AT_EURO,
        de_CH,
        de_DE,
        de_DE_EURO,
        de_LU,
        de_LU_EURO,
        el,
        el_GR,
        el_GR_EURO,
        en,
        en_AS,
        en_AU,
        en_BE,
        en_BE_EURO,
        en_BW,
        en_CA,
        en_GB,
        en_GB_EURO,
        en_GU,
        en_HK,
        en_IE,
        en_IE_EURO,
        en_IN,
        en_MH,
        en_MP,
        en_NZ,
        en_PH,
        en_SG,
        en_UM,
        en_US,
        en_US_POSIX,
        en_VI,
        en_ZA,
        en_ZW,
        eo,
        es,
        es__TRADITIONAL,
        es_AR,
        es_BO,
        es_CL,
        es_CO,
        es_CR,
        es_DO,
        es_EC,
        es_ES,
        es_ES_EURO,
        es_GT,
        es_HN,
        es_MX,
        es_NI,
        es_PA,
        es_PE,
        es_PR,
        es_PY,
        es_SV,
        es_US,
        es_UY,
        es_VE,
        et,
        et_EE,
        eu,
        eu_ES,
        eu_ES_EURO,
        fa,
//        fa_IN,
        fa_IR,
        fi,
        fi_FI,
        fi_FI_EURO,
        fo,
        fo_FO,
        fr,
        fr_BE,
        fr_BE_EURO,
        fr_CA,
        fr_CH,
        fr_FR,
        fr_FR_EURO,
        fr_LU,
        fr_LU_EURO,
        ga,
        ga_IE,
        ga_IE_EURO,
        gl,
        gl_ES,
        gl_ES_EURO,
        gv,
        gv_GB,
        he,
        he_IL,
        hi,
        hi__DIRECT,
        hi_IN,
        hr,
        hr_HR,
        hu,
        hu_HU,
        id,
        id_ID,
        is,
        is_IS,
        it,
        it_CH,
        it_IT,
        it_IT_EURO,
        ja,
        ja_JP,
        kl,
        kl_GL,
        ko,
        ko_KR,
        kok,
        kok_IN,
        kw,
        kw_GB,
        lt,
        lt_LT,
        lv,
        lv_LV,
        mk,
        mk_MK,
        mr,
        mr_IN,
//        ms,
//        ms_MY,
        mt,
        mt_MT,
        nb,
        nb_NO,
        nl,
        nl_BE,
        nl_BE_EURO,
        nl_NL,
        nl_NL_EURO,
        nn,
        nn_NO,
//        no,   // split into nn and nb locales
//        no_NO,
//        no_NO_NY,
        pl,
        pl_PL,
        pt,
        pt_BR,
        pt_PT,
        pt_PT_EURO,
        ro,
        ro_RO,
        ru,
        ru_RU,
        ru_UA,
        sh,
        sh_YU,
        sk,
        sk_SK,
        sl,
        sl_SI,
        sq,
        sq_AL,
        sr,
        sr_YU,
        sv,
        sv_FI,
        sv_FI_AL,
        sv_SE,
        sw,
        sw_KE,
        sw_TZ,
        ta,
        ta_IN,
        te,
        te_IN,
        th,
        th_TH,
        tr,
        tr_TR,
        uk,
        uk_UA,
        vi,
        vi_VN,
        zh,
        zh__PINYIN,
        zh_CN,
        zh_HK,
        zh_SG,
        zh_TW,
        zh_TW_STROKE,
    }
}
