// ***************************************************************************
// *
// *   Copyright (C) 1997-2002, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

pt {
    Version { "1.0" }
    Countries {
        AE { "Rep\u00fablica \u00c1rabe Unida" }
        AL { "Alb\u00e2nia" }
        AS { "\u00c1sia" }
        AT { "\u00c1ustria" }
        AU { "Austr\u00e1lia" }
        BA { "B\u00f3snia" }
        BE { "B\u00e9lgica" }
        BG { "Bulg\u00e1ria" }
        BH { "Bar\u00e1in" }
        BO { "Bol\u00edvia" }
        BR { "Brasil" }
        CA { "Canad\u00e1" }
        CH { "Su\u00ed\u00e7a" }
        CN { "China (PRC)" }
        CO { "Col\u00f4mbia" }
        CZ { "Rep\u00fablica Tcheca" }
        DE { "Alemanha" }
        DK { "Dinamarca" }
        DO { "Rep\u00fablica Dominicana" }
        DZ { "Arg\u00e9lia" }
        EC { "Equador" }
        EE { "Est\u00f4nia" }
        EG { "Egito" }
        ES { "Espanha" }
        FI { "Finl\u00e2ndia" }
        FR { "Fran\u00e7a" }
        GB { "Reino Unido" }
        GR { "Gr\u00e9cia" }
        HR { "Cro\u00e1cia" }
        HU { "Hungria" }
        ID { "Indon\u00e9sia" }
        IE { "Irlanda" }
        IN { "\u00cdndia" }
        IS { "Isl\u00e2ndia" }
        IT { "It\u00e1lia" }
        JO { "Jord\u00e2nia" }
        JP { "Jap\u00e3o" }
        KR { "Cor\u00e9ia" }
        LA { "Am\u00e9rica Latina" }
        LB { "L\u00edbano" }
        LT { "Litu\u00e2nia" }
        LU { "Luxemburgo" }
        LV { "Let\u00f4nia" }
        MA { "Marrocos" }
        MK { "Maced\u00f4nia FYR" }
        MX { "M\u00e9xico" }
        NI { "Nicar\u00e1gua" }
        NL { "Pa\u00edses Baixos" }
        NO { "Noruega" }
        NZ { "Nova Zel\u00e2ndia" }
        OM { "Om\u00e3" }
        PA { "Panam\u00e1" }
        PK { "Paquist\u00e3o" }
        PL { "Pol\u00f4nia" }
        PY { "Paraguai" }
        QA { "Catar" }
        RO { "Rom\u00eania" }
        RU { "R\u00fassia" }
        SA { "Ar\u00e1bia Saudita" }
        SE { "Su\u00e9cia" }
        SG { "Cingapura" }
        SI { "Eslov\u00eania" }
        SK { "Eslov\u00e1quia" }
        SP { "S\u00e9rvia" }
        SY { "S\u00edria" }
        TH { "Tail\u00e2ndia" }
        TN { "Tun\u00edsia" }
        TR { "Turquia" }
        UA { "Ucr\u00e2nia" }
        US { "Estados Unidos" }
        UY { "Uruguai" }
        ZA { "\u00c1frica do Sul" }
    }
    DateTimeElements:intvector { 
        2,
        1,
    }
    DateTimePatterns { 
        "HH'H'mm'm' z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE, d' de 'MMMM' de 'yyyy",
        "d' de 'MMMM' de 'yyyy",
        "d/MMM/yyyy",
        "dd-MM-yyyy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "Dom",
        "Seg",
        "Ter",
        "Qua",
        "Qui",
        "Sex",
        "S\u00E1b",
    }
    DayNames { 
        "Domingo",
        "Segunda-feira",
        "Ter\u00E7a-feira",
        "Quarta-feira",
        "Quinta-feira",
        "Sexta-feira",
        "S\u00E1bado",
    }
    Languages { 
        ar { "\u00c1rabe" }
        az { "Azerbaij\u00e3o" }
        ba { "Basco" }
        be { "Bielo-russo" }
        bg { "B\u00falgaro" }
        bn { "Bengala" }
        ca { "Catal\u00e3o" }
        cs { "Tcheco" }
        da { "Dinamarqu\u00eas" }
        de { "Alem\u00e3o" }
        el { "Grego" }
        en { "Ingl\u00eas" }
        es { "Espanhol" }
        et { "Est\u00f4nio" }
        fa { "Farsi" }
        fi { "Finland\u00eas" }
        fr { "Franc\u00eas" }
        gu { "Guzarate" }
        he { "Hebreu" }
        hr { "Croata" }
        hu { "H\u00fangaro" }
        id { "Indon\u00e9sio" }
        it { "Italiano" }
        ja { "Japon\u00eas" }
        ka { "Georgiano" }
        km { "Cmer" }
        kn { "Canad\u00e1" }
        ko { "Coreano" }
        ku { "Curdo" }
        la { "Latino" }
        lt { "Lituano" }
        lv { "Let\u00e3o" }
        mk { "Maced\u00f4nio" }
        mr { "Marati" }
        my { "Birman\u00eas" }
        nl { "Holand\u00eas" }
        no { "Noruegu\u00eas" }
        pl { "Polon\u00eas" }
        pt { "Portugu\u00eas" }
        ro { "Romeno" }
        ru { "Russo" }
        sk { "Eslovaco" }
        sl { "Esloveno" }
        sq { "Alban\u00eas" }
        sr { "S\u00e9rvio" }
        sv { "Su\u00e9co" }
        te { "T\u00e9lugu" }
        th { "Tailand\u00eas" }
        tk { "Tagalo" }
        tr { "Turco" }
        uk { "Ucraniano" }
        uz { "Usbeque" }
        zh { "Chin\u00eas" }
    }
    LocaleID:int { 0x16 }
//    LocaleString { "pt" }
    MonthAbbreviations { 
        "Jan",
        "Fev",
        "Mar",
        "Abr",
        "Mai",
        "Jun",
        "Jul",
        "Ago",
        "Set",
        "Out",
        "Nov",
        "Dez",
    }
    MonthNames { 
        "Janeiro",
        "Fevereiro",
        "Mar\u00E7o",
        "Abril",
        "Maio",
        "Junho",
        "Julho",
        "Agosto",
        "Setembro",
        "Outubro",
        "Novembro",
        "Dezembro",
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
    }
//    ShortLanguage { "por" }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }
//    LocaleScript{
//        "Latn",  // ISO 15924 Name 
//    }
    ExemplarCharacters { "[a-z \u00e3 \u00f5 \u00e7 \u00e1 \u00e9 \u00ed \u00f3 \u00fa \u00e0 \u00e2 \u00ea \u00f4 \u00fc \u00f2]" }
}
