﻿// ***************************************************************************
// *
// * Copyright (C) 2005 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: ../../../cldr/common/main/pt_PT.xml
// *
// ***************************************************************************
pt_PT{
    Countries{
        AE{"Emiratos Árabes Unidos"}
        AM{"Arménia"}
        AQ{"Antárctica"}
        AZ{"Azerbeijão"}
        BA{"Bósnia-Herzegovina"}
        BJ{"Benim"}
        BY{"Bielorrússia"}
        CM{"Camarões"}
        CX{"Ilha do Natal"}
        CZ{"República Checa"}
        EE{"Estónia"}
        EG{"Egipto"}
        EH{"Sahara Ocidental"}
        ER{"Eritreia"}
        FK{"Ilhas Falkland"}
        GL{"Gronelândia"}
        GS{"Ilhas South Georgia e South Sandwich"}
        GW{"Guiné-Bissau"}
        HK{"Hong Kong - Região Administrativa Especial da China"}
        KE{"Quénia"}
        KG{"Quirguizistão"}
        KN{"Saint Kitts e Nevis"}
        KP{"Coreia do Norte"}
        KR{"Coreia do Sul"}
        KY{"Ilhas Caimão"}
        KZ{"Cazaquistão"}
        LA{"Lao, República Popular Democrática"}
        LV{"Letónia"}
        MC{"Mónaco"}
        MD{"Moldávia, República da"}
        MG{"Madagáscar"}
        MK{"Macedónia, República da"}
        MO{"Macau - Região Administrativa Especial da China"}
        MP{"Ilhas Mariana do Norte"}
        MU{"Maurícias"}
        NC{"Nova Caledónia"}
        PG{"Papua Nova Guiné"}
        PL{"Polónia"}
        PS{"Território Palestiniano"}
        RE{"Reunion"}
        RO{"Roménia"}
        SC{"Seicheles"}
        SG{"Singapura"}
        SI{"Eslovénia"}
        SM{"São Marino"}
        TC{"Ilhas Turcas e Caicos"}
        TD{"Tchade"}
        TF{"Territórios Franceses a Sul"}
        TJ{"Tajiquistão"}
        TM{"Turquemenistão"}
        UM{"Ilhas Minor Outlying (E.U.A)"}
        UZ{"Uzbaquistão"}
        VA{"Santa Sé (Estado da Cidade do Vaticano)"}
        VC{"Saint Vincent e Grenadines"}
        VG{"Ilhas Virgin Britânicas"}
        VI{"Ilhas Virgin E.U.A."}
        VN{"Vietname"}
        YE{"Iémen"}
    }
    Currencies{
        PTE{
            "Esc.",
            "Escudo português",
            {
                "#,##0.00 ¤;-#,##0.00 ¤",
                "$",
                ",",
            }
        }
    }
    Languages{
        cs{"checo"}
        et{"estónio"}
        pl{"polaco"}
        sl{"esloveno"}
    }
    NumberPatterns{
        "#,##0.###",
        "#,##0.00 ¤",
        "#,##0%",
        "#E0",
    }
    Version{"1.36"}
    calendar{
        gregorian{
            DateTimePatterns{
                "HH'H'mm'm'ss's' z",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d' de 'MMMM' de 'yyyy",
                "d' de 'MMMM' de 'yyyy",
                "yyyy/MM/dd",
                "yy/MM/dd",
                "{1} {0}",
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"’"}
        quotationStart{"‘"}
    }
}
