﻿// ***************************************************************************
// *
// * 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"}
        }
        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}"}
    }
}
