﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/pt_PT.xml
// *
// ***************************************************************************
pt_PT{
    Languages{
        af{"afrikaans"}
        art{"idioma artifical"}
        awa{"Awadhi"}
        bai{"bamileke Languages"}
        bug{"Buginese"}
        ce{"chechene"}
        cel{"idioma céltico"}
        chn{"jargão chinook"}
        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"}
        dra{"idioma dravítico"}
        dyu{"diula"}
        egy{"egípcio clássico"}
        en{"Inglês"}
        enm{"inglês medieval"}
        et{"estónio"}
        fiu{"idioma ugro-finês"}
        frm{"francês medieval"}
        frs{"frísio oriental"}
        gmh{"alemão medieval alto"}
        grc{"grego clássico"}
        gsw{"alemão da Suíça"}
        hsb{"sorbiano superior"}
        hy{"arménio"}
        iba{"Iban"}
        ig{"igbo"}
        ik{"Inupiaq"}
        jv{"jv"}
        khi{"khoisan"}
        lez{"lezghiano"}
        mga{"irlandês, medieval (900-1200)"}
        mk{"macedónio"}
        nah{"Nauatle"}
        nds{"baixo alemão"}
        nic{"nigeriano - cordofano"}
        non{"norse, old"}
        oc{"provençal"}
        os{"ossético"}
        peo{"persa arcaico (aprox. 600-400 a.C.)"}
        pl{"polaco"}
        pra{"idioma prácito"}
        pro{"provençal, arcaico (até 1500)"}
        pt_PT{"português europeu"}
        rom{"romanês"}
        sai{"idioma indígeno sul-americano"}
        sal{"salishan languages"}
        sgn{"linguages de sinais"}
        ssa{"idioma nilo-sariano"}
        tai{"idioma tailândes"}
        tg{"tajique"}
        to{"tonga"}
        tog{"toganês"}
        tyv{"tuviniano"}
        wen{"idioma sórbio"}
    }
    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"}
        Taml{"tamil"}
        Telu{"telugu"}
        Xsux{"cuneiforme sumero-acadiano"}
        Zxxx{"não escrito"}
        Zzzz{"inválido ou desconhecido"}
    }
    Types{
        collation{
            direct{"Ordem Directa"}
            phonebook{"Ordem da Lista Telefónica"}
        }
    }
    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"}
        POLYTON{"politónico"}
        SOLBA{"dialecto stolvizza/solbica"}
    }
    Version{"2.0.41.78"}
}
