﻿// ***************************************************************************
// *
// * Copyright (C) 2012 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{
        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"}
        timezone{"Fuso Horário"}
        va{"Variante Local"}
        variableTop{"Ordenar Como Símbolos"}
        x{"Utilização Privada"}
    }
    Languages{
        af{"afrikaans"}
        agq{"aghem"}
        art{"idioma artifical"}
        asa{"asu"}
        bai{"bamileke Languages"}
        bax{"bamun"}
        bbj{"ghomala"}
        bez{"bena"}
        bfd{"bafut"}
        bkm{"kom"}
        bss{"akoose"}
        bug{"buginese"}
        bum{"bulu"}
        byv{"medumba"}
        cay{"cayuga"}
        ce{"chechene"}
        cel{"idioma céltico"}
        cgg{"chiga"}
        chn{"jargão chinook"}
        co{"corso"}
        cpe{"crioulo ou pidgin do inglês"}
        cpf{"crioulo ou pidgin do francês"}
        cpp{"crioulo ou pidgin do português"}
        cs{"checo"}
        cus{"idioma cuchita"}
        dav{"taita"}
        dje{"zarma"}
        dra{"idioma dravítico"}
        dyo{"jola-fonyi"}
        dyu{"diula"}
        dzg{"dazaga"}
        ee{"ewe"}
        egy{"egípcio clássico"}
        enm{"inglês medieval"}
        et{"estónio"}
        fiu{"idioma ugro-finês"}
        frm{"francês medieval"}
        frs{"frísio oriental"}
        fy{"frísico ocidental"}
        gmh{"alemão medieval alto"}
        grc{"grego clássico"}
        guz{"gusii"}
        ha{"haúça"}
        hi{"hindi"}
        hsb{"sorbiano superior"}
        hy{"arménio"}
        ibb{"ibibio"}
        ig{"igbo"}
        ik{"inupiaq"}
        jmc{"machame"}
        kbl{"kanembu"}
        kde{"makonde"}
        kg{"conguês"}
        khi{"khoisan"}
        khq{"koyra chiini"}
        kkj{"kako"}
        kln{"kalenjin"}
        kn{"canarim"}
        ks{"caxemirense"}
        ksb{"shambala"}
        ksf{"bafia"}
        lag{"langi"}
        lez{"lezghiano"}
        lg{"ganda"}
        luy{"luyia"}
        maf{"mafa"}
        mde{"maba"}
        mer{"meru"}
        mga{"irlandês, medieval"}
        mgh{"makhuwa-meetto"}
        mk{"macedónio"}
        mua{"mundang"}
        mye{"myene"}
        nah{"nauatle"}
        naq{"nama"}
        nb{"norueguês bokmål"}
        nds{"baixo alemão"}
        nic{"nigeriano - cordofano"}
        nmg{"kwasio"}
        nn{"norueguês nynorsk"}
        nnh{"ngiemboon"}
        non{"norse, old"}
        nus{"nuer"}
        oc{"provençal"}
        os{"ossético"}
        pl{"polaco"}
        pra{"idioma prácito"}
        pro{"provençal, arcaico"}
        ps{"pastó"}
        rom{"romanês"}
        root{"root"}
        sah{"sakha"}
        sai{"idioma indígeno sul-americano"}
        sal{"salishan languages"}
        saq{"samburu"}
        sba{"ngambay"}
        sbp{"sangu"}
        see{"seneca"}
        seh{"sena"}
        ses{"koyraboro senni"}
        sgn{"linguages de sinais"}
        shi{"tachelhit"}
        shu{"árabe do Chade"}
        ssa{"idioma nilo-sariano"}
        ssy{"saho"}
        swb{"língua comoriana"}
        swc{"suaili do Congo"}
        tai{"idioma tailândes"}
        teo{"teso"}
        tg{"tajique"}
        ti{"tigre"}
        to{"tonga"}
        tog{"toganês"}
        trv{"taroko"}
        twq{"tasawaq"}
        tyv{"tuviniano"}
        tzm{"tamazight de Marrocos Central"}
        und{"idioma desconhecido"}
        vun{"vunjo"}
        wen{"idioma sórbio"}
        xog{"soga"}
        yav{"yangben"}
        ybb{"yemba"}
    }
    Scripts{
        Armn{"arménio"}
        Blis{"símbolos Bliss"}
        Egyd{"egípcio demótico"}
        Egyh{"egípcio hierático"}
        Inds{"indus"}
        Lina{"linear A"}
        Linb{"linear B"}
        Sylo{"siloti nagri"}
        Tale{"tai le"}
        Telu{"telugu"}
        Xsux{"cuneiforme sumero-acadiano"}
        Zxxx{"não escrito"}
    }
    Scripts%stand-alone{
        Hans{"han simplificado"}
        Hant{"han tradicional"}
    }
    Types{
        calendar{
            coptic{"Calendário Copta"}
            ethiopic{"Calendário Etíope"}
            ethiopic-amete-alem{"Calendário Etíope Amete Alem"}
            islamic-civil{"Calendário Islâmico/Civil"}
            persian{"Calendário Persa"}
        }
        collation{
            dictionary{"Ordenação do Dicionário"}
            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"}
            searchjl{"Pesquisar Por Consoante Inicial Hangul"}
            stroke{"Ordem por traços"}
            traditional{"Ordem tradicional"}
            unihan{"Ordem por radical e traços"}
        }
        numbers{
            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"}
            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{"Algarismo 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"}
            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"}
        SOLBA{"dialecto stolvizza/solbica"}
        WADEGILE{"Romanização Wade-Giles"}
    }
    Version{"2.0.78.47"}
    codePatterns{
        script{"Escrita: {0}"}
    }
}
