﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/pt_PT.xml
// *
// ***************************************************************************
pt_PT{
    Keys{
        calendar{"Calendário"}
        colAlternate{"Ignorar Ordenação de Símbolos"}
        colBackwards{"Ordenação de Acentos Invertida"}
        colCaseFirst{"Disposição de Maiúsculas/Minúsculas"}
        colCaseLevel{"Ordenação Sensível a Maiúsculas e Minúsculas"}
        colHiraganaQuaternary{"Ordenação Kana"}
        colNormalization{"Ordenação Normalizada"}
        colNumeric{"Ordenação Numérica"}
        colStrength{"Força da Ordenação"}
        collation{"Ordenação"}
        currency{"Moeda"}
        numbers{"Números"}
        timezone{"Fuso Horário"}
        va{"Variante Local"}
        variableTop{"Ordenar Como Símbolos"}
        x{"Utilização Privada"}
    }
    Languages{
        ab{"abcázio"}
        ady{"adigue"}
        ae{"avéstico"}
        af{"afrikaans"}
        agq{"aghem"}
        alt{"altai do sul"}
        am{"amárico"}
        anp{"angika"}
        ar{"árabe"}
        art{"idioma artifical"}
        as{"assamês"}
        asa{"asu"}
        av{"avaric"}
        az{"azerbaijano"}
        ba{"bashkir"}
        bai{"bamileke Languages"}
        bal{"balúchi"}
        bax{"bamun"}
        bbj{"ghomala"}
        be{"bielo-russo"}
        bej{"beja"}
        bez{"bena"}
        bfd{"bafut"}
        bg{"búlgaro"}
        bho{"bhojpuri"}
        bkm{"kom"}
        bn{"bengali"}
        bo{"tibetano"}
        bra{"braj"}
        brx{"bodo"}
        bs{"bósnio"}
        bss{"akoose"}
        bua{"buriat"}
        bug{"buginese"}
        bum{"bulu"}
        byv{"medumba"}
        ca{"catalão"}
        cay{"cayuga"}
        ce{"chechene"}
        cel{"idioma céltico"}
        cgg{"chiga"}
        chm{"mari"}
        chn{"jargão chinook"}
        ckb{"sorani curdo"}
        co{"corso"}
        cop{"copta"}
        cpe{"crioulo ou pidgin do inglês"}
        cpf{"crioulo ou pidgin do francês"}
        cpp{"crioulo ou pidgin do português"}
        crh{"turco da Crimeia"}
        cs{"checo"}
        cus{"idioma cuchita"}
        cv{"chuvash"}
        cy{"galês"}
        da{"dinamarquês"}
        dar{"dargwa"}
        dav{"taita"}
        de{"alemão"}
        de_AT{"alemão austríaco"}
        de_CH{"alto alemão suíço"}
        dje{"zarma"}
        doi{"dogri"}
        dra{"idioma dravítico"}
        dyo{"jola-fonyi"}
        dyu{"diula"}
        dzg{"dazaga"}
        ee{"ewe"}
        egy{"egípcio clássico"}
        el{"grego"}
        en{"inglês"}
        en_AU{"inglês australiano"}
        en_CA{"inglês canadiano"}
        en_GB{"inglês britânico"}
        en_US{"inglês americano"}
        enm{"inglês medieval"}
        eo{"esperanto"}
        es{"espanhol"}
        es_419{"espanhol latino-americano"}
        es_ES{"espanhol europeu"}
        es_MX{"espanhol do México"}
        et{"estónio"}
        eu{"basco"}
        fa{"persa"}
        fi{"finlandês"}
        fil{"filipino"}
        fiu{"idioma ugro-finês"}
        fj{"fijiano"}
        fo{"feroês"}
        fr{"francês"}
        fr_CA{"francês canadiano"}
        fr_CH{"francês suíço"}
        frm{"francês medieval"}
        frs{"frísio oriental"}
        fy{"frísico ocidental"}
        ga{"irlandês"}
        gba{"gbaia"}
        gl{"galego"}
        gmh{"alemão medieval alto"}
        gn{"guarani"}
        gon{"gondi"}
        grc{"grego clássico"}
        gsw{"alemão suíço"}
        gu{"guzerate"}
        guz{"gusii"}
        ha{"haúça"}
        haw{"havaiano"}
        he{"hebraico"}
        hi{"hindi"}
        hr{"croata"}
        hsb{"sorbiano superior"}
        ht{"haitiano"}
        hu{"húngaro"}
        hy{"arménio"}
        ibb{"ibibio"}
        id{"indonésio"}
        ig{"igbo"}
        ik{"inupiaq"}
        inh{"inguche"}
        is{"islandês"}
        it{"italiano"}
        ja{"japonês"}
        jgo{"nguemba"}
        jmc{"machame"}
        jv{"javanês"}
        ka{"georgiano"}
        kaa{"kara-kalpak"}
        kbd{"kabardiano"}
        kbl{"kanembu"}
        kde{"makonde"}
        kg{"conguês"}
        khi{"khoisan"}
        khq{"koyra chiini"}
        kk{"cazaque"}
        kkj{"kako"}
        kln{"kalenjin"}
        km{"cmer"}
        kn{"canarim"}
        ko{"coreano"}
        kok{"concani"}
        krc{"karachay-balkar"}
        krl{"idioma carélio"}
        kru{"kurukh"}
        ks{"caxemirense"}
        ksb{"shambala"}
        ksf{"bafia"}
        ku{"curdo"}
        kum{"kumyk"}
        kv{"komi"}
        ky{"quirguiz"}
        la{"latim"}
        lag{"langi"}
        lah{"lahnda"}
        lb{"luxemburguês"}
        lez{"lezghiano"}
        lg{"ganda"}
        lo{"laosiano"}
        loz{"lozi"}
        lt{"lituano"}
        lua{"luba-lulua"}
        lus{"lushai"}
        luy{"luyia"}
        lv{"letão"}
        maf{"mafa"}
        mag{"magahi"}
        mai{"maithili"}
        mde{"maba"}
        mdf{"mocsa"}
        mer{"meru"}
        mfe{"crioulo das Ilhas Maurícias"}
        mg{"malgaxe"}
        mga{"irlandês, medieval"}
        mgh{"makhuwa-meetto"}
        mgo{"meta'"}
        mi{"maori"}
        mk{"macedónio"}
        ml{"malaiala"}
        mn{"mongol"}
        mni{"manipuri"}
        mr{"marata"}
        ms{"malaio"}
        mt{"maltês"}
        mua{"mundang"}
        mwr{"marwari"}
        my{"birmanês"}
        mye{"myene"}
        myv{"erzya"}
        nah{"nauatle"}
        naq{"nama"}
        nb{"norueguês bokmål"}
        nds{"baixo alemão"}
        ne{"nepali"}
        new{"newari"}
        nic{"nigeriano - cordofano"}
        nl{"holandês"}
        nl_BE{"flamengo"}
        nmg{"kwasio"}
        nn{"norueguês nynorsk"}
        nnh{"ngiemboon"}
        nog{"nogai"}
        non{"norse, old"}
        nus{"nuer"}
        oc{"provençal"}
        or{"oriya"}
        os{"ossético"}
        pa{"panjabi"}
        pi{"páli"}
        pl{"polaco"}
        pra{"idioma prácito"}
        pro{"provençal, arcaico"}
        ps{"pastó"}
        pt{"português"}
        pt_BR{"português do Brasil"}
        pt_PT{"português europeu"}
        qu{"quíchua"}
        rm{"romanche"}
        ro{"romeno"}
        rom{"romanês"}
        root{"root"}
        ru{"russo"}
        sa{"sânscrito"}
        sah{"sakha"}
        sai{"idioma indígeno sul-americano"}
        sal{"salishan languages"}
        saq{"samburu"}
        sba{"ngambay"}
        sbp{"sangu"}
        sd{"sindi"}
        see{"seneca"}
        seh{"sena"}
        sel{"selkup"}
        ses{"koyraboro senni"}
        sgn{"linguages de sinais"}
        shi{"tachelhit"}
        shu{"árabe do Chade"}
        si{"cingalês"}
        sk{"eslovaco"}
        sl{"esloveno"}
        so{"somali"}
        sq{"albanês"}
        sr{"sérvio"}
        ssa{"idioma nilo-sariano"}
        ssy{"saho"}
        su{"sundanês"}
        sv{"sueco"}
        sw{"suaili"}
        swb{"língua comoriana"}
        swc{"suaili do Congo"}
        ta{"tâmil"}
        tai{"idioma tailândes"}
        te{"telugu"}
        teo{"teso"}
        tg{"tajique"}
        th{"tailandês"}
        ti{"tigre"}
        tk{"turcomano"}
        to{"tonga"}
        tog{"toganês"}
        tr{"turco"}
        trv{"taroko"}
        tt{"tatar"}
        tut{"idioma altaico"}
        twq{"tasawaq"}
        tyv{"tuviniano"}
        tzm{"tamazight de Marrocos Central"}
        udm{"udmurt"}
        ug{"uighur"}
        uk{"ucraniano"}
        und{"idioma desconhecido"}
        ur{"urdu"}
        uz{"usbeque"}
        vi{"vietnamita"}
        vun{"vunjo"}
        wen{"idioma sórbio"}
        wo{"uólofe"}
        xal{"kalmyk"}
        xh{"xosa"}
        xog{"soga"}
        yav{"yangben"}
        ybb{"yemba"}
        yo{"ioruba"}
        zbl{"símbolos blis"}
        zgh{"tamaxeque padrão de Marrocos"}
        zh{"chinês"}
        zh_Hans{"chinês simplificado"}
        zh_Hant{"chinês tradicional"}
        zu{"zulu"}
        zxx{"sem conteúdo linguístico"}
        zza{"zaza"}
    }
    LanguagesShort{
        az{"azeri"}
        en_GB{"inglês (RU)"}
        en_US{"inglês (EUA)"}
    }
    Scripts{
        Arab{"árabe"}
        Armn{"arménio"}
        Beng{"bengali"}
        Blis{"símbolos Bliss"}
        Bopo{"bopomofo"}
        Brai{"braille"}
        Cyrl{"cirílico"}
        Deva{"devanágari"}
        Egyd{"egípcio demótico"}
        Egyh{"egípcio hierático"}
        Ethi{"etiópico"}
        Geor{"georgiano"}
        Grek{"grego"}
        Gujr{"guzerate"}
        Guru{"gurmuqui"}
        Hang{"hangul"}
        Hani{"han"}
        Hans{"han simplificado"}
        Hant{"han tradicional"}
        Hebr{"hebraico"}
        Hira{"hiragana"}
        Inds{"indus"}
        Jpan{"japonês"}
        Kana{"katakana"}
        Khmr{"khmer"}
        Knda{"kannada"}
        Kore{"coreano"}
        Laoo{"lao"}
        Latn{"latim"}
        Lina{"linear A"}
        Linb{"linear B"}
        Mlym{"malaiala"}
        Mong{"mongol"}
        Mymr{"birmanês"}
        Orya{"oriya"}
        Sinh{"cingalês"}
        Sylo{"siloti nagri"}
        Tale{"tai le"}
        Taml{"tâmil"}
        Telu{"telugu"}
        Thaa{"thaana"}
        Thai{"tailandês"}
        Tibt{"tibetano"}
        Xsux{"cuneiforme sumero-acadiano"}
        Zsym{"símbolos"}
        Zxxx{"não escrito"}
        Zyyy{"comum"}
        Zzzz{"escrita desconhecida"}
    }
    Scripts%stand-alone{
        Hans{"han simplificado"}
        Hant{"han tradicional"}
    }
    Types{
        calendar{
            chinese{"Calendário Chinês"}
            coptic{"Calendário Copta"}
            ethiopic{"Calendário Etíope"}
            ethiopic-amete-alem{"Calendário Etíope Amete Alem"}
            gregorian{"Calendário Gregoriano"}
            islamic-civil{"Calendário Islâmico/Civil"}
            persian{"Calendário Persa"}
        }
        colAlternate{
            non-ignorable{"Ordenar Símbolos"}
            shifted{"Ordenar Símbolos Ignorados"}
        }
        colBackwards{
            no{"Ordenar Acentos Normalmente"}
            yes{"Ordenar Acentos Inversamente"}
        }
        colCaseFirst{
            lower{"Ordenar Minúsculas Primeiro"}
            no{"Ordenar Disposição de Tipo de Letra Normal"}
            upper{"Ordenar Maiúsculas Primeiro"}
        }
        colCaseLevel{
            no{"Ordenar Insensível a Maiúsculas/Minúsculas"}
            yes{"Ordenar Sensível a Maiúsculas/Minúsculas"}
        }
        colHiraganaQuaternary{
            no{"Ordenar Kana Separadamente"}
            yes{"Ordenar Kana Diferentemente"}
        }
        colNormalization{
            no{"Ordenar Sem Normalização"}
            yes{"Ordenar Unicode Normalizado"}
        }
        colNumeric{
            no{"Ordenar Dígitos Individualmente"}
            yes{"Ordenar Dígitos Numericamente"}
        }
        colStrength{
            identical{"Ordenar Tudo"}
            primary{"Ordenar Apenas Letras Básicas"}
            quaternary{"Ordenar Acentos/Tipo de Letra/Largura/Kana"}
            secondary{"Ordenar Acentos"}
            tertiary{"Ordenar Acentos/Tipo de Letra/Largura"}
        }
        collation{
            dictionary{"Ordenação do Dicionário"}
            ducet{"Ordenação Unicode Predefinida"}
            phonebook{"Ordem da Lista Telefónica"}
            phonetic{"Sequência de Ordenação Fonética"}
            pinyin{"Ordem do Chinês Simplificado Pinyin"}
            reformed{"Reforma da Ordenação"}
            search{"Pesquisa de uso geral"}
            searchjl{"Pesquisar Por Consoante Inicial Hangul"}
            standard{"Ordenação Predefinida"}
            stroke{"Ordem por traços"}
            traditional{"Ordem tradicional"}
            unihan{"Ordem por radical e traços"}
        }
        numbers{
            arab{"Algarismos indo-arábicos"}
            arabext{"Algarismos indo-arábicos por extenso"}
            armn{"Algarismos Arménios"}
            armnlow{"Numeração Arménia Minúscula"}
            beng{"Algarismos Bengalis"}
            deva{"Algarismos Devanágaris"}
            ethi{"Numeração Etíope"}
            finance{"Algarismos Financeiros"}
            fullwide{"Algarismos de Largura Completa"}
            geor{"Numeração Georgiana"}
            grek{"Numeração Grega"}
            greklow{"Numeração Grega Minúscula"}
            gujr{"Algarismos de Guzerate"}
            guru{"Algarismos Gurmukhi"}
            hanidec{"Numeração Decimal Chinesa"}
            hans{"Numeração Chinês Simplificado"}
            hansfin{"Numeração Financeira Chinês Simplificado"}
            hant{"Numeração Chinês Tradicional"}
            hantfin{"Numeração Financeira Chinês Tradicional"}
            hebr{"Numeração Hebraica"}
            jpan{"Numeração Japonesa"}
            jpanfin{"Numeração Financeira Japonesa"}
            khmr{"Algarismos Khmer"}
            knda{"Algarismos de Canarim"}
            laoo{"Algarismos de Laos"}
            latn{"Algarismos Ocidentais"}
            mlym{"Algarismos Malaiala"}
            mong{"Algarismos Mongóis"}
            mymr{"Algarismos de Mianmar"}
            native{"Dígitos Nativos"}
            orya{"Algarismos Oriá"}
            roman{"Numeração Romana"}
            romanlow{"Numeração Romana Minúscula"}
            taml{"Numeração Tâmil"}
            tamldec{"Algarismos Tâmil"}
            telu{"Algarismos de Telugu"}
            thai{"Algarismos Tailandeses"}
            tibt{"Algarismos Tibetanos"}
            traditional{"Algarismos Tradicionais"}
            vaii{"Dígitos Vai"}
        }
    }
    Variants{
        AREVELA{"arménio oriental"}
        AREVMDA{"arménio ocidental"}
        BISKE{"dialecto san giorgio/bila"}
        BOONT{"buntlingue"}
        LIPAW{"dialecto lipovaz de Resian"}
        MONOTON{"monotónico"}
        NEDIS{"dialecto natisone"}
        NJIVA{"dialecto gniva/njiva"}
        OSOJS{"dialecto oseacco/osojane"}
        PINYIN{"Romanização pinyin"}
        POLYTON{"politónico"}
        SCOTLAND{"inglês padrão escocês"}
        SOLBA{"dialecto stolvizza/solbica"}
        WADEGILE{"Romanização Wade-Giles"}
    }
    Version{"2.0.92.87"}
    codePatterns{
        language{"Idioma: {0}"}
        script{"Escrita: {0}"}
        territory{"Região: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
