// ***************************************************************************
// *
// *   Copyright (C) 1999-2003, 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" }
    }
    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}",
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    AmPmMarkers { 
        "atm",
        "ptm",
    }
    DayAbbreviations { 
        "di",
        "lu",
        "ma",
        "me",
        "\u0135a",
        "ve",
        "sa",
    }
    DayNames { 
        "diman\u0109o",
        "lundo",
        "mardo",
        "merkredo",
        "\u0135a\u016ddo",
        "vendredo",
        "sabato",
    }
    Eras { 
        "aK",
        "pK",
    }
    // 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" }
    }
    MonthAbbreviations { 
        "jan",
        "feb",
        "mar",
        "apr",
        "maj",
        "jun",
        "jul",
        "a\u016dg",
        "sep",
        "okt",
        "nov",
        "dec",
    }
    MonthNames { 
        "januaro",
        "februaro",
        "marto",
        "aprilo",
        "majo",
        "junio",
        "julio",
        "a\u016dgusto",
        "septembro",
        "oktobro",
        "novembro",
        "decembro",
    }
    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"
    }
}
