﻿// ***************************************************************************
// *
// * Copyright (C) 2016 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/pt.xml
// *
// ***************************************************************************
pt{
    Countries{
        001{"Mundo"}
        002{"África"}
        003{"América do Norte"}
        005{"América do Sul"}
        009{"Oceania"}
        011{"África Ocidental"}
        013{"América Central"}
        014{"África Oriental"}
        015{"África do Norte"}
        017{"África Central"}
        018{"África Austral"}
        019{"Américas"}
        021{"América Setentrional"}
        029{"Caribe"}
        030{"Ásia Oriental"}
        034{"Ásia do Sul"}
        035{"Sudeste Asiático"}
        039{"Europa do Sul"}
        053{"Australásia"}
        054{"Melanésia"}
        057{"Região da Micronésia"}
        061{"Polinésia"}
        142{"Ásia"}
        143{"Ásia Central"}
        145{"Ásia Ocidental"}
        150{"Europa"}
        151{"Europa Oriental"}
        154{"Europa Setentrional"}
        155{"Europa Ocidental"}
        419{"América Latina"}
        AC{"Ilha de Ascensão"}
        AD{"Andorra"}
        AE{"Emirados Árabes Unidos"}
        AF{"Afeganistão"}
        AG{"Antígua e Barbuda"}
        AI{"Anguilla"}
        AL{"Albânia"}
        AM{"Armênia"}
        AO{"Angola"}
        AQ{"Antártida"}
        AR{"Argentina"}
        AS{"Samoa Americana"}
        AT{"Áustria"}
        AU{"Austrália"}
        AW{"Aruba"}
        AX{"Ilhas Åland"}
        AZ{"Azerbaijão"}
        BA{"Bósnia e Herzegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Bélgica"}
        BF{"Burquina Faso"}
        BG{"Bulgária"}
        BH{"Bahrein"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"São Bartolomeu"}
        BM{"Bermudas"}
        BN{"Brunei"}
        BO{"Bolívia"}
        BQ{"Países Baixos Caribenhos"}
        BR{"Brasil"}
        BS{"Bahamas"}
        BT{"Butão"}
        BV{"Ilha Bouvet"}
        BW{"Botsuana"}
        BY{"Bielorrússia"}
        BZ{"Belize"}
        CA{"Canadá"}
        CC{"Ilhas Cocos (Keeling)"}
        CD{"Congo - Kinshasa"}
        CF{"República Centro-Africana"}
        CG{"Congo - Brazzaville"}
        CH{"Suíça"}
        CI{"Costa do Marfim"}
        CK{"Ilhas Cook"}
        CL{"Chile"}
        CM{"República dos Camarões"}
        CN{"China"}
        CO{"Colômbia"}
        CP{"Ilha de Clipperton"}
        CR{"Costa Rica"}
        CU{"Cuba"}
        CV{"Cabo Verde"}
        CW{"Curaçao"}
        CX{"Ilha Christmas"}
        CY{"Chipre"}
        CZ{"República Tcheca"}
        DE{"Alemanha"}
        DG{"Diego Garcia"}
        DJ{"Djibuti"}
        DK{"Dinamarca"}
        DM{"Dominica"}
        DO{"República Dominicana"}
        DZ{"Argélia"}
        EA{"Ceuta e Melilha"}
        EC{"Equador"}
        EE{"Estônia"}
        EG{"Egito"}
        EH{"Saara Ocidental"}
        ER{"Eritreia"}
        ES{"Espanha"}
        ET{"Etiópia"}
        EU{"União Europeia"}
        FI{"Finlândia"}
        FJ{"Fiji"}
        FK{"Ilhas Malvinas"}
        FM{"Micronésia"}
        FO{"Ilhas Faroe"}
        FR{"França"}
        GA{"Gabão"}
        GB{"Reino Unido"}
        GD{"Granada"}
        GE{"Geórgia"}
        GF{"Guiana Francesa"}
        GG{"Guernsey"}
        GH{"Gana"}
        GI{"Gibraltar"}
        GL{"Groenlândia"}
        GM{"Gâmbia"}
        GN{"Guiné"}
        GP{"Guadalupe"}
        GQ{"Guiné Equatorial"}
        GR{"Grécia"}
        GS{"Ilhas Geórgia do Sul e Sandwich do Sul"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guiné-Bissau"}
        GY{"Guiana"}
        HK{"Hong Kong, RAE da China"}
        HM{"Ilhas Heard e McDonald"}
        HN{"Honduras"}
        HR{"Croácia"}
        HT{"Haiti"}
        HU{"Hungria"}
        IC{"Ilhas Canárias"}
        ID{"Indonésia"}
        IE{"Irlanda"}
        IL{"Israel"}
        IM{"Ilha de Man"}
        IN{"Índia"}
        IO{"Território Britânico do Oceano Índico"}
        IQ{"Iraque"}
        IR{"Irã"}
        IS{"Islândia"}
        IT{"Itália"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Jordânia"}
        JP{"Japão"}
        KE{"Quênia"}
        KG{"Quirguistão"}
        KH{"Camboja"}
        KI{"Quiribati"}
        KM{"Comores"}
        KN{"São Cristóvão e Nevis"}
        KP{"Coreia do Norte"}
        KR{"Coreia do Sul"}
        KW{"Kuwait"}
        KY{"Ilhas Cayman"}
        KZ{"Cazaquistão"}
        LA{"Laos"}
        LB{"Líbano"}
        LC{"Santa Lúcia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Libéria"}
        LS{"Lesoto"}
        LT{"Lituânia"}
        LU{"Luxemburgo"}
        LV{"Letônia"}
        LY{"Líbia"}
        MA{"Marrocos"}
        MC{"Mônaco"}
        MD{"Moldávia"}
        ME{"Montenegro"}
        MF{"São Martinho"}
        MG{"Madagascar"}
        MH{"Ilhas Marshall"}
        MK{"Macedônia"}
        ML{"Mali"}
        MM{"Mianmar (Birmânia)"}
        MN{"Mongólia"}
        MO{"Macau, RAE da China"}
        MP{"Ilhas Marianas do Norte"}
        MQ{"Martinica"}
        MR{"Mauritânia"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Maurício"}
        MV{"Maldivas"}
        MW{"Malawi"}
        MX{"México"}
        MY{"Malásia"}
        MZ{"Moçambique"}
        NA{"Namíbia"}
        NC{"Nova Caledônia"}
        NE{"Níger"}
        NF{"Ilha Norfolk"}
        NG{"Nigéria"}
        NI{"Nicarágua"}
        NL{"Holanda"}
        NO{"Noruega"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nova Zelândia"}
        OM{"Omã"}
        PA{"Panamá"}
        PE{"Peru"}
        PF{"Polinésia Francesa"}
        PG{"Papua-Nova Guiné"}
        PH{"Filipinas"}
        PK{"Paquistão"}
        PL{"Polônia"}
        PM{"Saint Pierre e Miquelon"}
        PN{"Ilhas Pitcairn"}
        PR{"Porto Rico"}
        PS{"Territórios palestinos"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguai"}
        QA{"Catar"}
        QO{"Oceania Remota"}
        RE{"Reunião"}
        RO{"Romênia"}
        RS{"Sérvia"}
        RU{"Rússia"}
        RW{"Ruanda"}
        SA{"Arábia Saudita"}
        SB{"Ilhas Salomão"}
        SC{"Seychelles"}
        SD{"Sudão"}
        SE{"Suécia"}
        SG{"Cingapura"}
        SH{"Santa Helena"}
        SI{"Eslovênia"}
        SJ{"Svalbard e Jan Mayen"}
        SK{"Eslováquia"}
        SL{"Serra Leoa"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somália"}
        SR{"Suriname"}
        SS{"Sudão do Sul"}
        ST{"São Tomé e Príncipe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Síria"}
        SZ{"Suazilândia"}
        TA{"Tristão da Cunha"}
        TC{"Ilhas Turks e Caicos"}
        TD{"Chade"}
        TF{"Territórios Franceses do Sul"}
        TG{"Togo"}
        TH{"Tailândia"}
        TJ{"Tajiquistão"}
        TK{"Tokelau"}
        TL{"Timor-Leste"}
        TM{"Turcomenistão"}
        TN{"Tunísia"}
        TO{"Tonga"}
        TR{"Turquia"}
        TT{"Trinidad e Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzânia"}
        UA{"Ucrânia"}
        UG{"Uganda"}
        UM{"Ilhas Menores Distantes dos EUA"}
        US{"Estados Unidos"}
        UY{"Uruguai"}
        UZ{"Uzbequistão"}
        VA{"Cidade do Vaticano"}
        VC{"São Vicente e Granadinas"}
        VE{"Venezuela"}
        VG{"Ilhas Virgens Britânicas"}
        VI{"Ilhas Virgens dos EUA"}
        VN{"Vietnã"}
        VU{"Vanuatu"}
        WF{"Wallis e Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Iêmen"}
        YT{"Mayotte"}
        ZA{"África do Sul"}
        ZM{"Zâmbia"}
        ZW{"Zimbábue"}
        ZZ{"Região desconhecida"}
    }
    Countries%short{
        GB{"Reino Unido"}
        HK{"Hong Kong"}
        MO{"Macau"}
        PS{"Palestina"}
        US{"EUA"}
    }
    Countries%variant{
        CD{"República Democrática do Congo"}
        CG{"Congo"}
        FK{"Ilhas Falkland (Ilhas Malvinas)"}
        MK{"Macedônia (Antiga República Iugoslava da Macedônia - ARIM)"}
        TL{"República Democrática de Timor-Leste"}
    }
    Version{"2.1.22.93"}
}
