﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * 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{"Australaasia"}
        054{"Melaneesia"}
        057{"Mikroneesia"}
        061{"Polüneesia"}
        142{"Aasia"}
        143{"Kesk-Aasia"}
        145{"Lääne-Aasia"}
        150{"Euroopa"}
        151{"Ida-Euroopa"}
        154{"Põhja-Euroopa"}
        155{"Lääne-Euroopa"}
        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"}
        BQ{"Hollandi Kariibi mere saared"}
        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"}
        CU{"Kuuba"}
        CV{"Roheneemesaared"}
        CW{"Curaçao"}
        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{"Macau - 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"}
        SS{"Lõuna-Sudaan"}
        ST{"São Tomé ja Príncipe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        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"}
    }
    Version{"2.0.86.63"}
}
