﻿// ***************************************************************************
// *
// * Copyright (C) 2006 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/pt_BR.xml
// *
// ***************************************************************************
pt_BR{
    Countries{
        172{"Comunidade dos Estados Independentes"}
        AX{"Ilhas Aland"}
        BA{"Bósnia-Herzegovina"}
        BH{"Bahrain"}
        KP{"Coréia do Norte"}
        MK{"Macedônia"}
        ZW{"Zimbábue"}
    }
    Languages{
        ang{"inglês arcaico (aprox. 450-1100)"}
        awa{"awadhi"}
        bai{"idiomas bamileke"}
        bug{"buguinês"}
        ce{"checheno"}
        crh{"turco da criméia; tártaro da criméia"}
        dsb{"sérvio baixo"}
        dum{"holandês medieval"}
        enm{"inglês medieval"}
        frm{"francês medieval"}
        fro{"francês arcaico"}
        gmh{"alemão medieval alto"}
        goh{"alemão arcaico alto"}
        grc{"grego arcaico"}
        iba{"ibã"}
        ik{"inupiaque"}
        jv{"javanês"}
        kbd{"kabardiano"}
        khi{"khoisan (outros)"}
        mga{"irlandês medieval"}
        mkh{"mon-khmer (outros)"}
        nd{"ndebele do norte"}
        nic{"Cordofano-nigeriano (outros)"}
        non{"nórdico arcaico"}
        nr{"ndebele do sul"}
        nso{"soto setentrional"}
        ota{"turco otomano"}
        peo{"persa arcaico"}
        pro{"provençal arcaico"}
        sal{"idiomas salisanos"}
        sgn{"linguagem de sinais"}
        st{"soto do sul"}
        wak{"idiomas wakashan"}
        wen{"idiomas sórbios"}
    }
    Version{"1.42"}
    calendar{
        gregorian{
            DateTimePatterns{
                "HH'h'mm'min'ss's' z",
                "H'h'm'min's's' z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d' de 'MMMM' de 'yyyy",
                "d' de 'MMMM' de 'yyyy",
                "dd/MM/yyyy",
                "dd/MM/yy",
                "{1} {0}",
            }
            fields{
                day{
                    dn{"Dia"}
                }
                dayperiod{
                    dn{"Período do dia"}
                }
                hour{
                    dn{"Hora"}
                }
                minute{
                    dn{"Minuto"}
                }
                month{
                    dn{"Mês"}
                }
                second{
                    dn{"Segundo"}
                }
                week{
                    dn{"Semana"}
                }
                weekday{
                    dn{"Dia da semana"}
                }
                year{
                    dn{"Ano"}
                }
                zone{
                    dn{"Fuso"}
                }
            }
        }
    }
    zoneStrings{
        "America:Denver"{
            ec{"Denver"}
            ld{"Horário de Verão da Montanha"}
            ls{"Horário Padrão da Montanha"}
        }
        "America:Halifax"{
            ec{"Halifax"}
            ld{"Horário de Verão do Atlântico"}
            ls{"Horário Padrão do Atlântico"}
        }
        "America:Phoenix"{
            ls{"Horário Padrão da Montanha"}
        }
        "Asia:Shanghai"{
            ec{"Shanghai"}
            ld{"Horário de Verão da China"}
        }
        "Asia:Tokyo"{
            ec{"Tokyo"}
            ld{"Horário de Verão do Japão"}
        }
        "Europe:Paris"{
            ec{"Paris"}
            ld{"Horário de Verão da Europa Central"}
            ls{"Horário Padrão da Europa Central"}
        }
        "Pacific:Honolulu"{
            ec{"Honolulu"}
            ld{"Horário de Verão do Havaí"}
        }
    }
}
