﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/et.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/et.xml
 */
et{
    Countries{
        001{"maailm"}
        002{"Aafrika"}
        003{"Põhja-Ameerika"}
        005{"Lõuna-Ameerika"}
        009{"Okeaania"}
        011{"Lääne-Aafrika"}
        013{"Kesk-Ameerika"}
        014{"Ida-Aafrika"}
        015{"Põhja-Aafrika"}
        017{"Kesk-Aafrika"}
        018{"Lõuna-Aafrika"}
        019{"Ameerika maailmajagu"}
        021{"Ameerika põhjaosa"}
        029{"Kariibi meri"}
        030{"Ida-Aasia"}
        034{"Lõuna-Aasia"}
        035{"Kagu-Aasia"}
        039{"Lõuna-Euroopa"}
        053{"Austraalia ja Uus-Meremaa"}
        054{"Melaneesia"}
        057{"Mikroneesia"}
        061{"Polüneesia"}
        062{"Kesk-Aasia lõunaosa"}
        142{"Aasia"}
        143{"Kesk-Aasia"}
        145{"Lääne-Aasia"}
        150{"Euroopa"}
        151{"Ida-Euroopa"}
        154{"Põhja-Euroopa"}
        155{"Lääne-Euroopa"}
        172{"Sõltumatute Riikide Ühendus"}
        419{"Ladina-Ameerika"}
        AC{"Ascensioni saar"}
        AD{"Andorra"}
        AE{"Araabia Ühendemiraadid"}
        AF{"Afganistan"}
        AG{"Antigua ja Barbuda"}
        AI{"Anguilla"}
        AL{"Albaania"}
        AM{"Armeenia"}
        AN{"Hollandi Antillid"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentina"}
        AS{"Ameerika Samoa"}
        AT{"Austria"}
        AU{"Austraalia"}
        AW{"Aruba"}
        AX{"Ahvenamaa"}
        AZ{"Aserbaidžaan"}
        BA{"Bosnia ja Hertsegoviina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgia"}
        BF{"Burkina Faso"}
        BG{"Bulgaaria"}
        BH{"Bahrein"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Boliivia"}
        BR{"Brasiilia"}
        BS{"Bahama"}
        BT{"Bhutan"}
        BV{"Bouvet’ saar"}
        BW{"Botswana"}
        BY{"Valgevene"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kookossaared"}
        CD{"Kongo DV"}
        CF{"Kesk-Aafrika Vabariik"}
        CG{"Kongo-Brazzaville"}
        CH{"Šveits"}
        CI{"Côte d'Ivoire"}
        CK{"Cooki saared"}
        CL{"Tšiili"}
        CM{"Kamerun"}
        CN{"Hiina"}
        CO{"Colombia"}
        CP{"Clippertoni saar"}
        CR{"Costa Rica"}
        CS{"Serbia ja Montenegro"}
        CU{"Kuuba"}
        CV{"Roheneemesaared"}
        CX{"Jõulusaar"}
        CY{"Küpros"}
        CZ{"Tšehhi"}
        DE{"Saksamaa"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Taani"}
        DM{"Dominica"}
        DO{"Dominikaani Vabariik"}
        DZ{"Alžeeria"}
        EA{"Ceuta ja Melilla"}
        EC{"Ecuador"}
        EE{"Eesti"}
        EG{"Egiptus"}
        EH{"Lääne-Sahara"}
        ER{"Eritrea"}
        ES{"Hispaania"}
        ET{"Etioopia"}
        EU{"Euroopa Liit"}
        FI{"Soome"}
        FJ{"Fidži"}
        FK{"Falklandi saared"}
        FM{"Mikroneesia Liiduriigid"}
        FO{"Fääri saared"}
        FR{"Prantsusmaa"}
        GA{"Gabon"}
        GB{"Suurbritannia"}
        GD{"Grenada"}
        GE{"Gruusia"}
        GF{"Prantsuse Guajaana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Gröönimaa"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Ekvatoriaal-Guinea"}
        GR{"Kreeka"}
        GS{"Lõuna-Georgia ja Lõuna-Sandwichi saared"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong - Hiina erihalduspiirkond"}
        HM{"Heard ja McDonald saared"}
        HN{"Honduras"}
        HR{"Horvaatia"}
        HT{"Haiti"}
        HU{"Ungari"}
        IC{"Kanaari saared"}
        ID{"Indoneesia"}
        IE{"Iirimaa"}
        IL{"Iisrael"}
        IM{"Mani saar"}
        IN{"India"}
        IO{"Briti India ookeani ala"}
        IQ{"Iraak"}
        IR{"Iraan"}
        IS{"Island"}
        IT{"Itaalia"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Jordaania"}
        JP{"Jaapan"}
        KE{"Kenya"}
        KG{"Kõrgõzstan"}
        KH{"Kambodža"}
        KI{"Kiribati"}
        KM{"Komoorid"}
        KN{"Saint Kitts ja Nevis"}
        KP{"Põhja-Korea"}
        KR{"Lõuna-Korea"}
        KW{"Kuveit"}
        KY{"Kaimanisaared"}
        KZ{"Kasahstan"}
        LA{"Laos"}
        LB{"Liibanon"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Libeeria"}
        LS{"Lesotho"}
        LT{"Leedu"}
        LU{"Luksemburg"}
        LV{"Läti"}
        LY{"Liibüa"}
        MA{"Maroko"}
        MC{"Monaco"}
        MD{"Moldova"}
        ME{"Montenegro"}
        MF{"Saint Martin"}
        MG{"Madagaskar"}
        MH{"Marshalli saared"}
        MK{"Makedoonia"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongoolia"}
        MO{"Aomen - Hiina erihalduspiirkond"}
        MP{"Põhja-Mariaanid"}
        MQ{"Martinique"}
        MR{"Mauritaania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldiivid"}
        MW{"Malawi"}
        MX{"Mehhiko"}
        MY{"Malaisia"}
        MZ{"Mosambiik"}
        NA{"Namiibia"}
        NC{"Uus-Kaledoonia"}
        NE{"Niger"}
        NF{"Norfolk"}
        NG{"Nigeeria"}
        NI{"Nicaragua"}
        NL{"Holland"}
        NO{"Norra"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Uus-Meremaa"}
        OM{"Omaan"}
        PA{"Panama"}
        PE{"Peruu"}
        PF{"Prantsuse Polüneesia"}
        PG{"Paapua Uus-Guinea"}
        PH{"Filipiinid"}
        PK{"Pakistan"}
        PL{"Poola"}
        PM{"Saint Pierre ja Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palestiina ala"}
        PT{"Portugal"}
        PW{"Belau"}
        PY{"Paraguay"}
        QA{"Katar"}
        QO{"Okeaania hajasaared"}
        RE{"Réunion"}
        RO{"Rumeenia"}
        RS{"Serbia"}
        RU{"Venemaa"}
        RW{"Rwanda"}
        SA{"Saudi Araabia"}
        SB{"Saalomoni Saared"}
        SC{"Seišellid"}
        SD{"Sudaan"}
        SE{"Rootsi"}
        SG{"Singapur"}
        SH{"Saint Helena"}
        SI{"Sloveenia"}
        SJ{"Svalbard ja Jan Mayen"}
        SK{"Slovakkia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somaalia"}
        SR{"Suriname"}
        ST{"São Tomé ja Príncipe"}
        SV{"El Salvador"}
        SY{"Süüria"}
        SZ{"Svaasimaa"}
        TA{"Tristan da Cunha"}
        TC{"Turks ja Caicos"}
        TD{"Tšaad"}
        TF{"Prantsuse Lõunaalad"}
        TG{"Togo"}
        TH{"Tai"}
        TJ{"Tadžikistan"}
        TK{"Tokelau"}
        TL{"Ida-Timor"}
        TM{"Türkmenistan"}
        TN{"Tuneesia"}
        TO{"Tonga"}
        TR{"Türgi"}
        TT{"Trinidad ja Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tansaania"}
        UA{"Ukraina"}
        UG{"Uganda"}
        UM{"Ühendriikide hajasaared"}
        US{"Ameerika Ühendriigid"}
        UY{"Uruguay"}
        UZ{"Usbekistan"}
        VA{"Vatikan"}
        VC{"Saint Vincent ja Grenadiinid"}
        VE{"Venezuela"}
        VG{"Briti Neitsisaared"}
        VI{"USA Neitsisaared"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis ja Futuna"}
        WS{"Samoa"}
        YE{"Jeemen"}
        YT{"Mayotte"}
        ZA{"Lõuna-Aafrika Vabariik"}
        ZM{"Sambia"}
        ZW{"Zimbabwe"}
        ZZ{"määramata"}
    }
    Version{"2.0.59.92"}
}
