// ***************************************************************************
// *
// *   Copyright (C) 1999-2004, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
//              or better http://www.jtcsv.com/cgibin/icu-bugs

eo {
    Version { "4.0" } 
    // data comes from http://www.bertilow.com/lanlin/iso.php and http://www.geonames.de/
    Countries { 
        AD { "Andoro" }
        AE { "Unui\u011dintaj Arabaj Emirlandos" }
        AF { "Afganujo" }
        AG { "Antigvo-Barbudo" }
        AI { "Angvilo" }
        AL { "Albanujo" }
        AM { "Armenujo" }
        AN { "Nederlandaj Antiloj" }
        AO { "Angolo" }
        AQ { "Antarkto" }
        AR { "Argentino" }
        AT { "A\u016dstrujo" }
        AU { "A\u016dstralio" }
        AW { "Arubo" }
        AZ { "Azerbaj\u011dano" }

        BA { "Bosnio-Hercegovino" }
        BB { "Barbado" }
        BD { "Banglade\u015do" }
        BE { "Belgujo" }
        BF { "Burkino" }
        BG { "Bulgarujo" }
        BH { "Barejno" }
        BI { "Burundo" }
        BJ { "Benino" }
        BM { "Bermudoj" }
        BN { "Brunejo" }
        BO { "Bolivio" }
        BR { "Brazilo" }
        BS { "Bahamoj" }
        BT { "Butano" }
        BW { "Bocvano" }
        BY { "Belorusujo" }
        BZ { "Belizo" }

        CA { "Kanado" }
        CF { "Centr-Afrika Respubliko" }
        CG { "Kongolo" }
        CH { "Svisujo" }
        CI { "Ebur-Bordo" }
        CK { "Kukinsuloj" }
        CL { "\u0108ilio" }
        CM { "Kameruno" }
        CN { "\u0108inujo" }
        CO { "Kolombio" }
        CR { "Kostariko" }
        //CS { "Serbujo kaj Montenegro" } // TODO: if we allow this, then SP must go away
        CU { "Kubo" }
        CV { "Kabo-Verdo" }
        CY { "Kipro" }
        CZ { "\u0108e\u0125ujo" } // Incomplete translation?

        DE { "Germanujo" }
        DJ { "\u011cibutio" }
        DK { "Danujo" }
        DM { "Dominiko" }
        DO { "Domingo" } // Incomplete translation?
        DZ { "Al\u011derio" }

        EC { "Ekvadoro" }
        EE { "Estonujo" }
        EG { "Egipto" }
        EH { "Okcidenta Saharo" }
        ER { "Eritreo" }
        ES { "Hispanujo" }
        ET { "Etiopujo" }

        FI { "Finnlando" }
        FJ { "Fi\u011doj" }
        FM { "Mikronezio" }
        FO { "Ferooj" }
        FR { "Francujo" }

        GA { "Gabono" }
        GB { "Unui\u011dinta Re\u011dlando" }
        GD { "Grenado" }
        GE { "Kartvelujo" }
        GF { "Franca Gviano" }
        GH { "Ganao" }
        GI { "\u011cibraltaro" }
        GL { "Gronlando" }
        GM { "Gambio" }
        GN { "Gvineo" }
        GP { "Gvadelupo" }
        GQ { "Ekvatora Gvineo" }
        GR { "Grekujo" }
        GS { "Sud-Georgio kaj Sud-Sandvi\u0109insuloj" }
        GT { "Gvatemalo" }
        GU { "Gvamo" }
        GW { "Gvineo-Bisa\u016do" }
        GY { "Gujano" }

        //HK { "Honkongo" } // missing S.A.R. China
        HM { "Herda kaj Makdonaldaj Insuloj" }
        HN { "Honduro" }
        HR { "Kroatujo" }
        HT { "Haitio" }
        HU { "Hungarujo" }

        ID { "Indonezio" }
        IE { "Irlando" }
        IL { "Israelo" }
        //IN { "Barato" } // Alternate spelling
        IN { "Hindujo" }
        IO { "Brita Hindoceana Teritorio" }
        IQ { "Irako" }
        IR { "Irano" }
        IS { "Islando" }
        IT { "Italujo" }

        JM { "Jamajko" }
        JO { "Jordanio" }
        JP { "Japanujo" }

        KE { "Kenjo" }
        KG { "Kirgizistano" }
        KH { "Kambo\u011do" }
        KI { "Kiribato" }
        KM { "Komoroj" }
        KN { "Sent-Kristofo kaj Neviso" }
        KP { "Nord-Koreo" }
        KR { "Sud-Koreo" }
        KW { "Kuvajto" }
        KY { "Kejmanoj" }
        KZ { "Kaza\u0125stano" }

        LA { "Laoso" }
        LB { "Libano" }
        LC { "Sent-Lucio" }
        LI { "Li\u0125ten\u015dtejno" }
        LK { "Sri-Lanko" }
        LR { "Liberio" }
        LS { "Lesoto" }
        LT { "Litovujo" }
        LU { "Luksemburgo" }
        LV { "Latvujo" }
        LY { "Libio" }

        MA { "Maroko" }
        MC { "Monako" }
        MD { "Moldavujo" }
        MG { "Madagaskaro" }
        MH { "Mar\u015daloj" }
        MK { "Makedonujo" }
        ML { "Malio" }
        MM { "Mjanmao" }
        MN { "Mongolujo" }
        //MO { "Makao" } // missing S.A.R. China
        MP { "Nord-Marianoj" }
        MQ { "Martiniko" }
        MR { "Ma\u016dritanujo" }
        MT { "Malto" }
        MU { "Ma\u016dricio" }
        MV { "Maldivoj" }
        MW { "Malavio" }
        MX { "Meksiko" }
        MY { "Malajzio" }
        MZ { "Mozambiko" }

        NA { "Namibio" }
        NC { "Nov-Kaledonio" }
        NE { "Ni\u011dero" }
        NF { "Norfolkinsulo" }
        NG { "Ni\u011derio" }
        NI { "Nikaragvo" }
        NL { "Nederlando" }
        NO { "Norvegujo" }
        NP { "Nepalo" }
        NR { "Nauro" }
        NU { "Niuo" }
        NZ { "Nov-Zelando" }

        OM { "Omano" }

        PA { "Panamo" }
        PE { "Peruo" }
        PF { "Franca Polinezio" }
        PG { "Papuo-Nov-Gvineo" }
        PH { "Filipinoj" }
        PK { "Pakistano" }
        PL { "Pollando" }
        PM { "Sent-Piero kaj Mikelono" }
        PN { "Pitkarna Insulo" }
        PR { "Puerto-Riko" }
        PT { "Portugalujo" }
        PW { "Bela\u016do" }
        PY { "Paragvajo" }

        QA { "Kataro" }

        RE { "Reunio" }
        RO { "Rumanujo" }
        RU { "Rusujo" }
        RW { "Ruando" }

        SA { "Sa\u016dda Arabujo" }
        SB { "Salomonoj" }
        SC { "Sej\u015deloj" }
        SD { "Sudano" }
        SE { "Svedujo" }
        SG { "Singapuro" }
        SH { "Sent-Heleno" }
        SI { "Slovenujo" }
        SJ { "Svalbardo kaj Jan-Majen-insulo" }
        SK { "Slovakujo" }
        SL { "Siera-Leono" }
        SM { "San-Marino" }
        SN { "Senegalo" }
        SO { "Somalujo" }
        SP { "Serbujo" }
        SR { "Surinamo" }
        ST { "Sao-Tomeo kaj Principeo" }
        SV { "Salvadoro" }
        SY { "Sirio" }
        SZ { "Svazilando" }

        TD { "\u0108ado" }
        TG { "Togolo" } // Just plain Togo?
        TH { "Tajlando" }
        TJ { "Ta\u011dikujo" } // Ta\u011dikistano?
        //TL { "Orienta Timoro" }    // This was called East Timor. Now it's Timor-Leste
        TM { "Turkmenujo" } // Turkmenistano?
        TN { "Tunizio" }
        TO { "Tongo" }
        TR { "Turkujo" }
        TT { "Trinidado kaj Tobago" }
        TV { "Tuvalo" }
        TW { "Tajvano" }
        TZ { "Tanzanio" }

        UA { "Ukrajno" }
        UG { "Ugando" }
        UM { "Usonaj malgrandaj insuloj" }
        US { "Usono" }
        UY { "Urugvajo" }
        UZ { "Uzbekujo" } // Uzbekistano?

        VA { "Vatikano" }
        VC { "Sent-Vincento kaj la Grenadinoj" }
        VE { "Venezuelo" }
        VG { "Britaj Virgulininsuloj" }
        VI { "Usonaj Virgulininsuloj" }
        VN { "Vjetnamo" }
        VU { "Vanuatuo" }

        WF { "Valiso kaj Futuno" }
        WS { "Samoo" }

        YE { "Jemeno" }
        YT { "Majoto" }

        ZA { "Sud-Afriko" }
        ZM { "Zambio" }
        ZW { "Zimbabvo" }
    }

    // Data comes from http://www.bertilow.com/lanlin/iso.php
    Languages {
        aa { "afara" }
        ab { "ab\u0125aza" }
        af { "afrikansa" }
        am { "amhara" }
        ar { "araba" }
        as { "asama" }
        ay { "ajmara" }
        az { "azerbaj\u011dana" }
        ba { "ba\u015dkira" }
        be { "belorusa" }
        bg { "bulgara" }
        bh { "bihara" }
        bi { "bislamo" }
        bn { "bengala" }
        bo { "tibeta" }
        br { "bretona" }
        ca { "kataluna" }
        co { "korsika" }
        cs { "\u0109e\u0125a" }
        cy { "kimra" }
        da { "dana" }
        de { "germana" }
        dz { "dzonko" }
        el { "greka" }
        en { "angla" }
        eo { "esperanto" }
        es { "hispana" }
        et { "estona" }
        eu { "e\u016dska" }
        fa { "persa" }
        fi { "finna" }
        fj { "fi\u011dia" }
        fo { "feroa" }
        fr { "franca" }
        fy { "frisa" }
        ga { "irlanda" }
        gd { "gaela" }
        gl { "galega" }
        gn { "gvarania" }
        gu { "gu\u011darata" }
        ha { "ha\u016dsa" }
        he { "hebrea" }
        hi { "hinda" }
        hr { "kroata" }
        hu { "hungara" }
        hy { "armena" }
        ia { "interlingvao" }
        id { "indonezia" }
        ie { "okcidentalo" }
        ik { "eskima" }
        is { "islanda" }
        it { "itala" }
        iu { "inuita" }
        ja { "japana" }
        jv { "java" }
        ka { "kartvela" }
        kk { "kaza\u0125a" }
        kl { "gronlanda" }
        km { "kmera" }
        kn { "kanara" }
        ko { "korea" }
        ks { "ka\u015dmira" }
        ku { "kurda" }
        ky { "kirgiza" }
        la { "latino" }
        ln { "lingala" }
        lo { "la\u016da" }
        lt { "litova" }
        lv { "latva" }
        mg { "malagasa" }
        mi { "maoria" }
        mk { "makedona" }
        ml { "malajalama" }
        mn { "mongola" }
        mr { "marata" }
        ms { "malaja" }
        mt { "malta" }
        my { "birma" }
        na { "naura" }
        ne { "nepala" }
        nl { "nederlanda" }
        no { "norvega" }
        oc { "okcitana" }
        om { "oroma" }
        or { "orijo" }
        pa { "pan\u011daba" }
        pl { "pola" }
        ps { "pa\u015dtua" }
        pt { "portugala" }
        qu { "ke\u0109ua" }
        rm { "roman\u0109a" }
        rn { "burunda" }
        ro { "rumana" }
        ru { "rusa" }
        rw { "ruanda" }
        sa { "sanskrito" }
        sd { "sinda" }
        sg { "sangoa" }
        sh { "serbo-Kroata" }
        si { "sinhala" }
        sk { "slovaka" }
        sl { "slovena" }
        sm { "samoa" }
        sn { "\u015dona" }
        so { "somala" }
        sq { "albana" }
        sr { "serba" }
        ss { "svazia" }
        st { "sota" }
        su { "sunda" }
        sv { "sveda" }
        sw { "svahila" }
        ta { "tamila" }
        te { "telugua" }
        tg { "ta\u011dika" }
        th { "taja" }
        ti { "tigraja" }
        tk { "turkmena" }
        tl { "filipina" }
        tn { "cvana" }
        to { "tongaa" }
        tr { "turka" }
        ts { "conga" }
        tt { "tatara" }
        tw { "akana" }
        ug { "ujgura" }
        uk { "ukraina" }
        ur { "urduo" }
        uz { "uzbeka" }
        vi { "vjetnama" }
        vo { "volapuko" }
        wo { "volofa" }
        xh { "ksosa" }
        yi { "jida" }
        yo { "joruba" }
        za { "\u011duanga" }
        zh { "\u0109ina" }
        zu { "zulua" }
    }
    NumberElements { 
        ",",
        "\u00A0",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    localPatternChars { "GjMtkHmslTDUSnahKzJdugAZ" }
    LocaleScript:array{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z \u016d \u0109 \u011d \u0125 \u0135 \u015d]" }
    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

// data from 'Esperanto-programita 1' courtesy of Markus Scherer

    SpelloutRules {
        "-x: minus >>;\n"
        "x.x: << komo >>;\n"
        "nulo; unu; du; tri; kvar; kvin; ses; sep; ok; na\u016d;\n"
        "10: dek[ >>];\n"
        "20: <<dek[ >>];\n"
        "100: cent[ >>];\n"
        "200: <<cent[ >>];\n"
        "1000: mil[ >>];\n"
        "2000: <<mil[ >>];\n"
        "10000: dekmil[ >>];\n"
        "11000>: << mil[ >>];\n"
        "1,000,000: miliono[ >>];\n"
        "2,000,000: << milionoj[ >>];\n"
        "1,000,000,000: miliardo[ >>];\n"
        "2,000,000,000: << miliardoj[ >>];\n"
        "1,000,000,000,000: biliono[ >>];\n"
        "2,000,000,000,000: << bilionoj[ >>];\n"
        "1,000,000,000,000,000: =#,##0=;\n"
    }
    calendar{
        gregorian{
            AmPmMarkers{
                "atm",
                "ptm",
            }
            DateTimeElements:intvector { 
                2,
                4,
            }
            DateTimePatterns{
                "H'-a horo kaj 'm z",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d'-a de 'MMMM yyyy",
                "yyyy-MMMM-dd",
                "yyyy-MMM-dd",
                "yy-MM-dd",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "di",
                        "lu",
                        "ma",
                        "me",
                        "\u0135a",
                        "ve",
                        "sa",
                    }
                    wide{
                        "diman\u0109o",
                        "lundo",
                        "mardo",
                        "merkredo",
                        "\u0135a\u016ddo",
                        "vendredo",
                        "sabato",
                    }
                }
            }
            eras{
                "aK",
                "pK",
            }
            monthNames{
                format{
                    abbreviated{
                        "jan",
                        "feb",
                        "mar",
                        "apr",
                        "maj",
                        "jun",
                        "jul",
                        "a\u016dg",
                        "sep",
                        "okt",
                        "nov",
                        "dec",
                    }
                    wide{
                        "januaro",
                        "februaro",
                        "marto",
                        "aprilo",
                        "majo",
                        "junio",
                        "julio",
                        "a\u016dgusto",
                        "septembro",
                        "oktobro",
                        "novembro",
                        "decembro",
                    }
                }
            }
        }
    }
}
