﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/cy.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/cy.xml
 */
cy{
    Keys{
        calendar{"Calendr"}
        collation{"Trefn"}
        currency{"Arian Breiniol"}
        numbers{"Rhifau"}
    }
    Languages{
        ab{"Abchaseg"}
        af{"Affricâneg"}
        afa{"Iaith Affro-Asiaidd"}
        am{"Amhareg"}
        ang{"Hen Saesneg"}
        ar{"Arabeg"}
        arc{"Aramaeg"}
        art{"Iaith Artiffisial"}
        as{"Asameg"}
        ath{"Iaith Athabasgaidd"}
        aus{"Iaith Awstralaidd"}
        az{"Aserbaijaneg"}
        be{"Belarwseg"}
        bg{"Bwlgareg"}
        bh{"Bihari"}
        bn{"Bengaleg"}
        bo{"Tibeteg"}
        br{"Llydaweg"}
        bs{"Bosnieg"}
        ca{"Catalaneg"}
        cel{"Iaith Geltaidd"}
        cs{"Tsieceg"}
        cy{"Cymraeg"}
        da{"Daneg"}
        de{"Almaeneg"}
        de_AT{"Almaeneg Awstria"}
        de_CH{"Almaeneg Safonol y Swistir"}
        dum{"Iseldireg Canol"}
        egy{"Hen Eiffteg"}
        el{"Groeg"}
        en{"Saesneg"}
        en_AU{"Saesneg Awstralia"}
        en_CA{"Saesneg Canada"}
        en_GB{"Saesneg Prydain"}
        en_US{"Saesneg UDA"}
        enm{"Saesneg Canol"}
        eo{"Esperanto"}
        es{"Sbaeneg"}
        es_419{"Sbaeneg America Ladin"}
        es_ES{"Sbaeneg Ewrop"}
        et{"Estoneg"}
        eu{"Basgeg"}
        fa{"Perseg"}
        fi{"Ffinneg"}
        fil{"Ffilipineg"}
        fiu{"Iaith Ffinno-Wgrig"}
        fj{"Ffijïeg"}
        fo{"Ffaroeg"}
        fr{"Ffrangeg"}
        fr_CA{"Ffrangeg Canada"}
        fr_CH{"Ffrangeg y Swistir"}
        frm{"Ffrangeg Canol"}
        fro{"Hen Ffrangeg"}
        fur{"Ffriwleg"}
        fy{"Ffriseg y Gorllewin"}
        ga{"Gwyddeleg"}
        gd{"Gaeleg yr Alban"}
        gem{"Iaith Germanaidd"}
        gl{"Galiseg"}
        gn{"Guaraní"}
        got{"Gotheg"}
        grc{"Hen Roeg"}
        gsw{"Almaeneg y Swistir"}
        gu{"Gwjarati"}
        gv{"Manaweg"}
        ha{"Hawsa"}
        haw{"Hawäieg"}
        he{"Hebraeg"}
        hi{"Hindi"}
        hr{"Croateg"}
        ht{"Creol Haiti"}
        hu{"Hwngareg"}
        hy{"Armeneg"}
        ia{"Interlingua"}
        id{"Indoneseg"}
        ie{"Interlingue"}
        ig{"Igbo"}
        ine{"Iaith Indo-Ewropeaidd"}
        is{"Islandeg"}
        it{"Eidaleg"}
        ja{"Japaneeg"}
        jv{"Jafanaeg"}
        ka{"Georgeg"}
        kk{"Casacheg"}
        km{"Chmereg"}
        kn{"Canareg"}
        ko{"Corëeg"}
        ks{"Cashmireg"}
        ku{"Cwrdeg"}
        kw{"Cernyweg"}
        ky{"Cirgiseg"}
        la{"Lladin"}
        lb{"Lwcsembwrgeg"}
        ln{"Lingala"}
        lo{"Laoeg"}
        lt{"Lithwaneg"}
        lv{"Latfieg"}
        mg{"Malagaseg"}
        mga{"Gwyddeleg Canol"}
        mi{"Maori"}
        mic{"Micmaceg"}
        mis{"Iaith Amrywiol"}
        mk{"Macedoneg"}
        ml{"Malayalam"}
        mn{"Mongoleg"}
        mo{"Moldofeg"}
        mr{"Marathi"}
        ms{"Maleieg"}
        mt{"Malteg"}
        my{"Byrmaneg"}
        nb{"Norwyeg Bokmål"}
        ne{"Nepaleg"}
        nl{"Iseldireg"}
        nl_BE{"Fflemeg"}
        nn{"Norwyeg Nynorsk"}
        no{"Norwyeg"}
        non{"Hen Norseg"}
        oc{"Ocsitaneg"}
        or{"Oriya"}
        pa{"Pwnjabeg"}
        peo{"Hen Bersieg"}
        pl{"Pwyleg"}
        pro{"Hen Brofensaleg"}
        ps{"Pashto"}
        pt{"Portiwgeeg"}
        pt_BR{"Portiwgeeg Brasil"}
        pt_PT{"Portiwgeeg Ewrop"}
        qu{"Quechua"}
        rm{"Romaunsch"}
        ro{"Rwmaneg"}
        ru{"Rwseg"}
        sa{"Sansgrit"}
        sco{"Sgoteg"}
        sd{"Sindhi"}
        sga{"Hen Wyddeleg"}
        sh{"Serbo-Croateg"}
        si{"Sinhaleg"}
        sk{"Slofaceg"}
        sl{"Slofeneg"}
        sla{"Iaith Slafig"}
        so{"Somaleg"}
        sq{"Albaneg"}
        sr{"Serbeg"}
        st{"Sesotheg"}
        su{"Swndaneg"}
        sv{"Swedeg"}
        sw{"Swahili"}
        swc{"Swahili'r Congo"}
        ta{"Tamileg"}
        te{"Telugu"}
        tg{"Tajiceg"}
        th{"Thai"}
        ti{"Tigriniaeg"}
        tk{"Twrcmeneg"}
        tlh{"Klingon"}
        to{"Tongeg"}
        tr{"Tyrceg"}
        tt{"Tatareg"}
        ug{"Uighur"}
        uk{"Wcreineg"}
        und{"Iaith Anhysbys"}
        ur{"Wrdw"}
        uz{"Wsbeceg"}
        vi{"Fietnameg"}
        wo{"Woloff"}
        xh{"Xhosa"}
        yo{"Iorwba"}
        yue{"Cantoneeg"}
        zh{"Tsieineeg"}
        zh_Hans{"Tsieineeg Symledig"}
        zh_Hant{"Tsieineeg Traddodiadol"}
        zu{"Swlw"}
        zxx{"Dim cynnwys ieithyddol"}
    }
    Scripts{
        Arab{"Arabaidd"}
        Armn{"Armenaidd"}
        Beng{"Bengalaidd"}
        Bopo{"Bopomofo"}
        Brai{"Braille"}
        Cyrl{"Cyrilig"}
        Deva{"Defanagari"}
        Ethi{"Ethiopig"}
        Geor{"Georgaidd"}
        Grek{"Groegaidd"}
        Gujr{"Gwjarataidd"}
        Guru{"Gwrmwci"}
        Hang{"Hangwl"}
        Hani{"Han"}
        Hans{"Han symledig"}
        Hant{"Han traddodiadol"}
        Hebr{"Hebrëig"}
        Hira{"Hiragana"}
        Jpan{"Japaneaidd"}
        Kana{"Catacana"}
        Khmr{"Cmeraidd"}
        Knda{"Canaraidd"}
        Kore{"Coreaidd"}
        Laoo{"Laoaidd"}
        Latn{"Lladin"}
        Mlym{"Malayalamaidd"}
        Mong{"Mongolaidd"}
        Mymr{"Myanmaraidd"}
        Orya{"Orïaidd"}
        Sinh{"Sinhanaidd"}
        Taml{"Tamilaidd"}
        Telu{"Telwgw"}
        Thaa{"Thaa"}
        Thai{"Thai"}
        Tibt{"Tibetaidd"}
        Zsym{"Symbolau"}
        Zxxx{"Anysgrifenedig"}
        Zyyy{"Cyffredin"}
        Zzzz{"Ysgriflythyren anhysbys"}
    }
    Types{
        calendar{
            gregorian{"Calendr Gregori"}
        }
        collation{
            ducet{"Trefn Rhagosodedig Unicode"}
            search{"Chwilio at Ddibenion Cyffredinol"}
        }
        numbers{
            arab{"Digidau Arabig-Indig"}
            arabext{"Digidau Arabig-Indig Estynedig"}
            armn{"Rhifolion Armenaidd"}
            armnlow{"Rhifolion Armenaidd mewn Llythrennau Bychain"}
            beng{"Digidau Bengalaidd"}
            deva{"Digidau Defangarig"}
            ethi{"Rhifolion Ethiopig"}
            fullwide{"Digidau Lled Llawn"}
            geor{"Rhifolion Georgaidd"}
            grek{"Rhifolion Groegaidd"}
            greklow{"Rhifolion Groegaidd mewn Llythrennau Bychain"}
            gujr{"Digidau Gujarataidd"}
            guru{"Digidau guru"}
            hanidec{"Rhifolion Degol Tsieinëaidd"}
            hans{"Rhifolion Tsieinëaidd a symleiddwyd"}
            hansfin{"Rhifolion Ariannol Tsieinëaidd a symleiddwyd"}
            hant{"Rhifolion Tsieinëaidd Traddodiadol"}
            hantfin{"Rhifolion Ariannol Tsieinëaidd Traddodiadol"}
            hebr{"Rhifolion Hebrëig"}
            jpan{"Rhifolion Japaneaidd"}
            jpanfin{"Rhifolion Ariannol Japaneaidd"}
            khmr{"Digidau Chmeraidd"}
            knda{"Digidau Canaraidd"}
            laoo{"Digidau Laosaidd"}
            latn{"Digidau Gorllewinol"}
            mlym{"Digidau Malayalamaidd"}
            mymr{"Digidau Myanmar"}
            orya{"Digidau Orïaidd"}
            roman{"Rhifolion Rhufeinig"}
            romanlow{"Rhifolion Rhufeinig mewn Llythrennau Bychain"}
            taml{"Rhifolion Tamilaidd Traddodiadol"}
            tamldec{"Digidau Tamilaidd"}
            telu{"Digidau Telugu"}
            thai{"Digidau Thai"}
            tibt{"Digidau Tibetaidd"}
        }
    }
    Version{"2.0.82.51"}
    codePatterns{
        language{"Iaith: {0}"}
        script{"Sgript: {0}"}
        territory{"Rhanbarth: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{", "}
    }
}
