﻿// ***************************************************************************
// *
// * 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/gl.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/gl.xml
 */
gl{
    Countries{
        001{"Mundo"}
        002{"África"}
        003{"Norteamérica"}
        005{"Sudamérica"}
        009{"Oceanía"}
        011{"África Occidental"}
        013{"América Central"}
        014{"África Oriental"}
        015{"África Septentrional"}
        017{"África Central"}
        018{"África Meridional"}
        019{"América"}
        021{"América do Norte"}
        029{"Caribe"}
        030{"Asia Oriental"}
        034{"Sul de Asia"}
        035{"Sureste Asiático"}
        039{"Europa Meridional"}
        053{"Australia e Nova Celandia"}
        054{"Melanesia"}
        057{"Rexión da Micronesia"}
        061{"Polinesia"}
        062{"Asia do Sul-Centro"}
        142{"Asia"}
        143{"Asia Central"}
        145{"Asia Occidental"}
        150{"Europa"}
        151{"Europa do Leste"}
        154{"Europa Septentrional"}
        155{"Europa Occidental"}
        172{"Comunidade de Estados Independentes"}
        419{"América Latina"}
        AC{"Illa de Ascensión"}
        AD{"Andorra"}
        AE{"Emiratos Árabes Unidos"}
        AF{"Afganistán"}
        AG{"Antiga e Barbuda"}
        AI{"Anguila"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Antillas Holandesas"}
        AO{"Angola"}
        AQ{"Antártida"}
        AR{"Arxentina"}
        AS{"Samoa Americana"}
        AT{"Austria"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Illas Aland"}
        AZ{"Acerbaixán"}
        BA{"Bosnia e Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Bélxica"}
        BF{"Burkina Faso"}
        BG{"Bulgaria"}
        BH{"Bahrein"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"San Bartolomé"}
        BM{"Bermudas"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BR{"Brasil"}
        BS{"Bahamas"}
        BT{"Bután"}
        BV{"Illa Bouvet"}
        BW{"Botsuana"}
        BY{"Bielorrusia"}
        BZ{"Belice"}
        CA{"Canadá"}
        CC{"Illas Cocos"}
        CD{"República Democrática do Congo"}
        CF{"República Africana Central"}
        CG{"Congo"}
        CH{"Suíza"}
        CI{"Costa de Marfil"}
        CK{"Illas Cook"}
        CL{"Chile"}
        CM{"Camerún"}
        CN{"China"}
        CO{"Colombia"}
        CP{"Illa Clipperton"}
        CR{"Costa Rica"}
        CS{"Serbia e Montenegro"}
        CU{"Cuba"}
        CV{"Cabo Verde"}
        CX{"Illa Christmas"}
        CY{"Chipre"}
        CZ{"República Checa"}
        DE{"Alemaña"}
        DG{"Diego García"}
        DJ{"Xibuti"}
        DK{"Dinamarca"}
        DM{"Dominica"}
        DO{"República Dominicana"}
        DZ{"Arxelia"}
        EA{"Ceuta e Melilla"}
        EC{"Ecuador"}
        EE{"Estonia"}
        EG{"Exipto"}
        EH{"Sahara Occidental"}
        ER{"Eritrea"}
        ES{"España"}
        ET{"Etiopía"}
        EU{"Unión Europea"}
        FI{"Finlandia"}
        FJ{"Fixi"}
        FK{"Illas Malvinas"}
        FM{"Micronesia"}
        FO{"Illas Feroe"}
        FR{"Francia"}
        GA{"Gabón"}
        GB{"Reino Unido"}
        GD{"Granada"}
        GE{"Xeorxia"}
        GF{"Güiana Francesa"}
        GG{"Guernsey"}
        GH{"Gana"}
        GI{"Xibraltar"}
        GL{"Grenlandia"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadalupe"}
        GQ{"Guinea Ecuatorial"}
        GR{"Grecia"}
        GS{"Xeorxia do Sur e Illas Sandwich"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Güiana"}
        HK{"Hong Kong RAE de China"}
        HM{"Illa Heard e Illas McDonald"}
        HN{"Honduras"}
        HR{"Croacia"}
        HT{"Haití"}
        HU{"Hungría"}
        IC{"Illas Canarias"}
        ID{"Indonesia"}
        IE{"Irlanda"}
        IL{"Israel"}
        IM{"Illa de Man"}
        IN{"India"}
        IO{"Territorio Británico do Océano Índico"}
        IQ{"Iraq"}
        IR{"Irán"}
        IS{"Islandia"}
        IT{"Italia"}
        JE{"Jersey"}
        JM{"Xamaica"}
        JO{"Xordania"}
        JP{"Xapón"}
        KE{"Quenia"}
        KG{"Quirguicistán"}
        KH{"Cambodia"}
        KI{"Kiribati"}
        KM{"Comores"}
        KN{"San Cristovo e Nevis"}
        KP{"Corea do Norte"}
        KR{"Corea do Sur"}
        KW{"Kuwait"}
        KY{"Illas Caimán"}
        KZ{"Kazakhstan"}
        LA{"Laos"}
        LB{"Líbano"}
        LC{"Santa Lucía"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Lituania"}
        LU{"Luxemburgo"}
        LV{"Letonia"}
        LY{"Libia"}
        MA{"Marrocos"}
        MC{"Mónaco"}
        MD{"Moldova"}
        ME{"Montenegro"}
        MF{"San Martiño"}
        MG{"Madagascar"}
        MH{"Illas Marshall"}
        MK{"Macedonia"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolia"}
        MO{"Macau RAE de China"}
        MP{"Illas Marianas do norte"}
        MQ{"Martinica"}
        MR{"Mauritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauricio"}
        MV{"Maldivas"}
        MW{"Malaui"}
        MX{"México"}
        MY{"Malaisia"}
        MZ{"Mozambique"}
        NA{"Namibia"}
        NC{"Nova Caledonia"}
        NE{"Níxer"}
        NF{"Illa Norfolk"}
        NG{"Nixeria"}
        NI{"Nicaragua"}
        NL{"Países Baixos"}
        NO{"Noruega"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nova Celandia"}
        OM{"Omán"}
        PA{"Panamá"}
        PE{"Perú"}
        PF{"Polinesia Francesa"}
        PG{"Papúa Nova Guinea"}
        PH{"Filipinas"}
        PK{"Paquistán"}
        PL{"Polonia"}
        PM{"San Pedro e Miguelón"}
        PN{"Pitcairn"}
        PR{"Porto Rico"}
        PS{"Palestina"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguai"}
        QA{"Qatar"}
        QO{"Oceanía Distante"}
        RE{"Reunión"}
        RO{"Romanía"}
        RS{"Serbia"}
        RU{"Rusia"}
        RW{"Ruanda"}
        SA{"Arabia Saudita"}
        SB{"Illas Salomón"}
        SC{"Seixeles"}
        SD{"Sudán"}
        SE{"Suecia"}
        SG{"Singapur"}
        SH{"Santa Helena"}
        SI{"Eslovenia"}
        SJ{"Svalbard e Jan Mayen"}
        SK{"Eslovaquia"}
        SL{"Serra Leoa"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        ST{"Santo Tomé e Príncipe"}
        SV{"El Salvador"}
        SY{"Siria"}
        SZ{"Suacilandia"}
        TA{"Tristán da Cunha"}
        TC{"Illas Turks e Caicos"}
        TD{"Chad"}
        TF{"Territorios Franceses do Sul"}
        TG{"Togo"}
        TH{"Tailandia"}
        TJ{"Taxiquistán"}
        TK{"Tokelau"}
        TL{"Timor Leste"}
        TM{"Turkmenistán"}
        TN{"Tunisia"}
        TO{"Tonga"}
        TR{"Turquía"}
        TT{"Trindade e Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwán"}
        TZ{"Tanzania"}
        UA{"Ucraína"}
        UG{"Uganda"}
        UM{"Illas Menores Distantes dos EUA."}
        US{"Estados Unidos de América"}
        UY{"Uruguai"}
        UZ{"Uzbekistán"}
        VA{"Cidade do Vaticano"}
        VC{"San Vicente e Granadinas"}
        VE{"Venezuela"}
        VG{"Illas Virxes Británicas"}
        VI{"Illas Virxes Estadounidenses"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis e Futuna"}
        WS{"Samoa"}
        YE{"Iemen"}
        YT{"Mayotte"}
        ZA{"Sudáfrica"}
        ZM{"Zambia"}
        ZW{"Cimbabue"}
        ZZ{"rexión descoñecida"}
    }
    Version{"2.0.59.68"}
}
