﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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"}
        as{"assamês"}
        asa{"asu"}
        av{"avaric"}
        az{"azerbaijano"}
        ba{"bashkir"}
        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"}
        cgg{"chiga"}
        chm{"mari"}
        chn{"jargão chinook"}
        ckb{"sorani curdo"}
        co{"corso"}
        cop{"copta"}
        crh{"turco da Crimeia"}
        cs{"checo"}
        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"}
        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"}
        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"}
        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"}
        naq{"nama"}
        nb{"norueguês bokmål"}
        nds{"baixo alemão"}
        ne{"nepali"}
        new{"newari"}
        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"}
        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"}
        saq{"samburu"}
        sba{"ngambay"}
        sbp{"sangu"}
        sd{"sindi"}
        see{"seneca"}
        seh{"sena"}
        sel{"selkup"}
        ses{"koyraboro senni"}
        shi{"tachelhit"}
        shu{"árabe do Chade"}
        si{"cingalês"}
        sk{"eslovaco"}
        sl{"esloveno"}
        so{"somali"}
        sq{"albanês"}
        sr{"sérvio"}
        ssy{"saho"}
        su{"sundanês"}
        sv{"sueco"}
        sw{"suaili"}
        swb{"língua comoriana"}
        swc{"suaili do Congo"}
        ta{"tâmil"}
        te{"telugu"}
        teo{"teso"}
        tg{"tajique"}
        th{"tailandês"}
        ti{"tigre"}
        tk{"turcomano"}
        to{"tonga"}
        tog{"toganês"}
        tr{"turco"}
        trv{"taroko"}
        tt{"tatar"}
        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"}
        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.98.52"}
    codePatterns{
        language{"Idioma: {0}"}
        script{"Escrita: {0}"}
        territory{"Região: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
