﻿// ***************************************************************************
// *
// * Copyright (C) 2016 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ast.xml
// *
// ***************************************************************************
ast{
    Countries{
        001{"Mundu"}
        002{"África"}
        003{"Norteamérica"}
        005{"América del Sur"}
        009{"Oceanía"}
        011{"África Occidental"}
        013{"América Central"}
        014{"África Oriental"}
        015{"África del Norte"}
        017{"África Central"}
        018{"África del Sur"}
        019{"América"}
        021{"América del Norte"}
        029{"Caribe"}
        030{"Asia Oriental"}
        034{"Asia del Sur"}
        035{"Sureste Asiáticu"}
        039{"Europa del Sur"}
        053{"Australasia"}
        054{"Melanesia"}
        057{"Rexón de Micronesia"}
        061{"Polinesia"}
        142{"Asia"}
        143{"Asia Central"}
        145{"Asia Occidental"}
        150{"Europa"}
        151{"Europa Oriental"}
        154{"Europa del Norte"}
        155{"Europa Occidental"}
        419{"América Llatina"}
        AC{"Islla Ascensión"}
        AD{"Andorra"}
        AE{"Emiratos Árabes Xuníos"}
        AF{"Afganistán"}
        AG{"Antigua y Barbuda"}
        AI{"Anguila"}
        AL{"Albania"}
        AM{"Armenia"}
        AO{"Angola"}
        AQ{"L’Antártida"}
        AR{"Arxentina"}
        AS{"Samoa Americana"}
        AT{"Austria"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Islles Aland"}
        AZ{"Azerbaixán"}
        BA{"Bosnia y Herzegovina"}
        BB{"Barbados"}
        BD{"Bangladex"}
        BE{"Bélxica"}
        BF{"Burkina Fasu"}
        BG{"Bulgaria"}
        BH{"Baḥréin"}
        BI{"Burundi"}
        BJ{"Benín"}
        BL{"San Bartolomé"}
        BM{"Les Bermudes"}
        BN{"Brunéi"}
        BO{"Bolivia"}
        BQ{"Caribe neerlandés"}
        BR{"Brasil"}
        BS{"Les Bahames"}
        BT{"Bután"}
        BV{"Islla Bouvet"}
        BW{"Botsuana"}
        BY{"Bielorrusia"}
        BZ{"Belize"}
        CA{"Canadá"}
        CC{"Islles Cocos (Keeling)"}
        CD{"Congu - Kinxasa"}
        CF{"República Centroafricana"}
        CG{"Congu - Brazzaville"}
        CH{"Suiza"}
        CI{"Costa de Marfil"}
        CK{"Islles Cook"}
        CL{"Chile"}
        CM{"Camerún"}
        CN{"China"}
        CO{"Colombia"}
        CP{"Islla Clipperton"}
        CR{"Costa Rica"}
        CU{"Cuba"}
        CV{"Cabu Verde"}
        CW{"Curaçao"}
        CX{"Islla Christmas"}
        CY{"Xipre"}
        CZ{"Chequia"}
        DE{"Alemaña"}
        DG{"Diego Garcia"}
        DJ{"Xibuti"}
        DK{"Dinamarca"}
        DM{"Dominica"}
        DO{"República Dominicana"}
        DZ{"Arxelia"}
        EA{"Ceuta y Melilla"}
        EC{"Ecuador"}
        EE{"Estonia"}
        EG{"Exiptu"}
        EH{"Sáḥara Occidental"}
        ER{"Eritrea"}
        ES{"España"}
        ET{"Etiopía"}
        EU{"Xunión Europea"}
        FI{"Finlandia"}
        FJ{"Islles Fixi"}
        FK{"Falkland Islands"}
        FM{"Micronesia"}
        FO{"Islles Feroe"}
        FR{"Francia"}
        GA{"Gabón"}
        GB{"Reinu Xuníu"}
        GD{"Granada"}
        GE{"Xeorxa"}
        GF{"Guyana Francesa"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Xibraltar"}
        GL{"Groenlandia"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadalupe"}
        GQ{"Guinea Ecuatorial"}
        GR{"Grecia"}
        GS{"Islles Xeorxa del Sur y Sandwich del Sur"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bisáu"}
        GY{"Guyana"}
        HK{"ARE China de Ḥong Kong"}
        HM{"Islles Heard y McDonald"}
        HN{"Hondures"}
        HR{"Croacia"}
        HT{"Haití"}
        HU{"Hungría"}
        IC{"Islles Canaries"}
        ID{"Indonesia"}
        IE{"Irlanda"}
        IL{"Israel"}
        IM{"Islla de Man"}
        IN{"India"}
        IO{"Territoriu Británicu del Océanu Índicu"}
        IQ{"Iraq"}
        IR{"Irán"}
        IS{"Islandia"}
        IT{"Italia"}
        JE{"Jersey"}
        JM{"Xamaica"}
        JO{"Xordania"}
        JP{"Xapón"}
        KE{"Kenia"}
        KG{"Kirguistán"}
        KH{"Camboya"}
        KI{"Kiribati"}
        KM{"Les Comores"}
        KN{"Saint Kitts y Nevis"}
        KP{"Corea del Norte"}
        KR{"Corea del Sur"}
        KW{"Kuwait"}
        KY{"Islles Caimán"}
        KZ{"Kazakstán"}
        LA{"Laos"}
        LB{"Líbanu"}
        LC{"Santa Llucía"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesothu"}
        LT{"Lituania"}
        LU{"Luxemburgu"}
        LV{"Letonia"}
        LY{"Libia"}
        MA{"Marruecos"}
        MC{"Mónacu"}
        MD{"Moldavia"}
        ME{"Montenegru"}
        MF{"Saint Martin"}
        MG{"Madagascar"}
        MH{"Islles Marshall"}
        MK{"Macedonia"}
        ML{"Malí"}
        MM{"Myanmar (Birmania)"}
        MN{"Mongolia"}
        MO{"ARE China de Macáu"}
        MP{"Islles Marianes del Norte"}
        MQ{"La Martinica"}
        MR{"Mauritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauriciu"}
        MV{"Les Maldives"}
        MW{"Malaui"}
        MX{"Méxicu"}
        MY{"Malasia"}
        MZ{"Mozambique"}
        NA{"Namibia"}
        NC{"Nueva Caledonia"}
        NE{"El Níxer"}
        NF{"Islla Norfolk"}
        NG{"Nixeria"}
        NI{"Nicaragua"}
        NL{"Países Baxos"}
        NO{"Noruega"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nueva Zelanda"}
        OM{"Omán"}
        PA{"Panamá"}
        PE{"Perú"}
        PF{"Polinesia Francesa"}
        PG{"Papúa Nueva Guinea"}
        PH{"Filipines"}
        PK{"Paquistán"}
        PL{"Polonia"}
        PM{"Saint Pierre y Miquelon"}
        PN{"Islles Pitcairn"}
        PR{"Puertu Ricu"}
        PS{"Territorios Palestinos"}
        PT{"Portugal"}
        PW{"Paláu"}
        PY{"Paraguái"}
        QA{"Qatar"}
        QO{"Oceanía esterior"}
        RE{"Reunión"}
        RO{"Rumanía"}
        RS{"Serbia"}
        RU{"Rusia"}
        RW{"Ruanda"}
        SA{"Arabia Saudita"}
        SB{"Islles Salomón"}
        SC{"Les Seixeles"}
        SD{"Sudán"}
        SE{"Suecia"}
        SG{"Singapur"}
        SH{"Santa Helena"}
        SI{"Eslovenia"}
        SJ{"Svalbard ya Islla Jan Mayen"}
        SK{"Eslovaquia"}
        SL{"Sierra Lleona"}
        SM{"San Marín"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        SS{"Sudán del Sur"}
        ST{"Santu Tomé y Príncipe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Siria"}
        SZ{"Suazilandia"}
        TA{"Tristán da Cunha"}
        TC{"Islles Turques y Caicos"}
        TD{"Chad"}
        TF{"Tierres Australes Franceses"}
        TG{"Togu"}
        TH{"Tailandia"}
        TJ{"Taxiquistán"}
        TK{"Tokeláu"}
        TL{"Timor Oriental"}
        TM{"Turkmenistán"}
        TN{"Tunicia"}
        TO{"Tonga"}
        TR{"Turquía"}
        TT{"Trinidá y Tobagu"}
        TV{"Tuvalu"}
        TW{"Taiwán"}
        TZ{"Tanzania"}
        UA{"Ucraína"}
        UG{"Uganda"}
        UM{"Islles Perifériques Menores de los EE.XX."}
        US{"Estaos Xuníos"}
        UY{"Uruguái"}
        UZ{"Uzbequistán"}
        VA{"Ciudá del Vaticanu"}
        VC{"San Vicente y Granadines"}
        VE{"Venezuela"}
        VG{"Islles Vírxenes Britániques"}
        VI{"Islles Vírxenes Americanes"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis y Futuna"}
        WS{"Samoa"}
        XK{"Kosovu"}
        YE{"Yemen"}
        YT{"Mayotte"}
        ZA{"Sudáfrica"}
        ZM{"Zambia"}
        ZW{"Zimbabue"}
        ZZ{"Rexón desconocida"}
    }
    Countries%short{
        GB{"RX"}
        HK{"Ḥong Kong"}
        MO{"Macáu"}
        PS{"Palestina"}
        US{"EE.XX."}
    }
    Countries%variant{
        CD{"Congu (RDC)"}
        CG{"Congu (República del)"}
        FK{"Islles Malvines (Falkland Islands)"}
        MK{"Macedonia (ARYDM)"}
        TL{"Timor Este"}
    }
    Version{"2.1.24.11"}
}
