﻿// ***************************************************************************
// *
// * Copyright (C) 2010 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 ja Kariibi meri"}
        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.50.94"}
}
