﻿// ***************************************************************************
// *
// * 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/cy.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/cy.xml
 */
cy{
    AuxExemplarCharacters{"[j k q v x z]"}
    Countries{
        GB{"Prydain Fawr"}
    }
    Currencies{
        BRL{
            "R$",
            "Real Brasil",
        }
        CNY{
            "CN¥",
            "Yuan Renminbi Tseina",
        }
        EUR{
            "EUR",
            "Ewro",
        }
        GBP{
            "£",
            "Punt Sterling Prydain",
        }
        INR{
            "₨",
            "Rwpî India",
        }
        JPY{
            "JP¥",
            "Yen Siapan",
        }
        RUB{
            "RUB",
            "Rwbl Rwsia",
        }
        USD{
            "US$",
            "Doler yr UDA",
        }
    }
    ExemplarCharacters{
        "[a á à â ä b c {ch} d {dd} e é è ê ë f {ff} g-i í ì î ï l {ll} m n {ng} o ó "
        "ò ô ö p {ph} r {rh} s t {th} u ú ù û ü w ẃ ẁ ŵ ẅ y ý ỳ ŷ ÿ]"
    }
    Languages{
        af{"Affricaneg"}
        am{"Amhareg"}
        ar{"Arabeg"}
        as{"Asameg"}
        be{"Belarwsiyn"}
        bg{"Bwlgareg"}
        bh{"Bihari"}
        bn{"Bengali; Bangla"}
        br{"Llydaweg"}
        bs{"Bosnieg"}
        ca{"Catalaneg"}
        cs{"Tsiec"}
        cy{"Cymraeg"}
        da{"Daneg"}
        de{"Almaeneg"}
        el{"Groeg"}
        en{"Saesneg"}
        eo{"Esperanto"}
        es{"Sbaeneg"}
        et{"Estoneg"}
        eu{"Basgeg"}
        fa{"Persieg"}
        fi{"Ffineg"}
        fil{"Tagalog"}
        fo{"Ffaroeg"}
        fr{"Ffrangeg"}
        ga{"Gwyddeleg"}
        gd{"Gaeleg yr Alban"}
        gl{"Galiseg"}
        he{"Hebraeg"}
        hi{"Hindi"}
        hr{"Croateg"}
        hu{"Hwngareg"}
        hy{"Armeneg"}
        ia{"Interlingua"}
        id{"Indonesieg"}
        ie{"Interlingue"}
        is{"Islandeg"}
        it{"Eidaleg"}
        ja{"Siapaneeg"}
        jv{"Jafanaeg"}
        ka{"Georgeg"}
        km{"Cambodieg"}
        kn{"Kannada"}
        ko{"Corëeg"}
        ku{"Cwrdeg"}
        la{"Lladin"}
        ln{"Lingala"}
        lo{"Laoeg"}
        lt{"Lithwaneg"}
        lv{"Latfieg"}
        ml{"Malayalam"}
        mn{"Mongoleg"}
        mr{"Marathi"}
        ms{"Malai"}
        mt{"Malteseg"}
        ne{"Nepali"}
        nl{"Iseldireg"}
        nn{"Norwyeg (Nynorsk)"}
        no{"Norwyeg"}
        oc{"Ocsitaneg"}
        or{"Oriya"}
        pa{"Pwnjabi"}
        pl{"Pwyleg"}
        ps{"Pashto"}
        pt{"Portiwgaleg"}
        ro{"Rwmaneg"}
        ru{"Rwsieg"}
        sa{"Sansgrit"}
        sd{"Sindhi"}
        sh{"Serbo-Croateg"}
        si{"Sinhaleg"}
        sk{"Slofaceg"}
        sl{"Slofeneg"}
        so{"Somaleg"}
        sq{"Albaneg"}
        sr{"Serbeg"}
        st{"Sesotheg"}
        su{"Sundaneg"}
        sv{"Swedeg"}
        sw{"Swahili"}
        ta{"Tamil"}
        tlh{"Klingon"}
        uk{"Wcreineg"}
        und{"anh"}
        uz{"Wsbeceg"}
        vi{"Fietnameg"}
        zh{"Tseineeg"}
        zu{"Zwlw"}
    }
    LocaleScript{
        "Latn",
    }
    Scripts{
        Latn{"Lladin"}
    }
    Version{"1.139"}
    calendar{
        gregorian{
            AmPmMarkers{
                "AM",
                "PM",
            }
            DateTimePatterns{
                "h:mm:ss a v",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, y MMMM dd",
                "y MMMM d",
                "y MMM d",
                "yyyy-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Md{"d/M"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Sul",
                        "Llun",
                        "Maw",
                        "Mer",
                        "Iau",
                        "Gwen",
                        "Sad",
                    }
                    wide{
                        "Dydd Sul",
                        "Dydd Llun",
                        "Dydd Mawrth",
                        "Dydd Mercher",
                        "Dydd Iau",
                        "Dydd Gwener",
                        "Dydd Sadwrn",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Sul",
                        "Llun",
                        "Maw",
                        "Mer",
                        "Iau",
                        "Gwe",
                        "Sad",
                    }
                    narrow{
                        "S",
                        "L",
                        "M",
                        "M",
                        "I",
                        "G",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "CC",
                    "OC",
                }
                narrow{
                    "C",
                    "O",
                }
                wide{
                    "Cyn Crist",
                    "Oed Crist",
                }
            }
            fields{
                day{
                    dn{"Dydd"}
                    relative{
                        "-2"{"Echdoe"}
                        "-3"{"Dridiau yn ôl"}
                        "2"{"Drennydd"}
                        "3"{"Ymhen tridiau"}
                    }
                }
                dayperiod{
                    dn{"AM/PM"}
                }
                era{
                    dn{"Oes"}
                }
                hour{
                    dn{"Awr"}
                }
                minute{
                    dn{"Munud"}
                }
                month{
                    dn{"Mis"}
                }
                second{
                    dn{"Eiliad"}
                }
                week{
                    dn{"Wythnos"}
                }
                weekday{
                    dn{"Dydd o'r Wythnos"}
                }
                year{
                    dn{"Blwyddyn"}
                }
                zone{
                    dn{"Cylchfa"}
                }
            }
            intervalFormats{
                M{
                    M{"M-M"}
                }
                MEd{
                    M{"E, d/M – E, d/M"}
                    d{"E, d/M – E, d/M"}
                }
                MMM{
                    M{"MMM-MMM"}
                }
                MMMEd{
                    M{"E, d MMM – E, d MMM"}
                    d{"E, d MMM – E, d MMM"}
                }
                MMMM{
                    M{"LLLL-LLLL"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"MMM d–d"}
                }
                Md{
                    M{"d/M – d/M"}
                    d{"d/M – d/M"}
                }
                d{
                    d{"d-d"}
                }
                fallback{"{0} – {1}"}
                h{
                    a{"h a – h a"}
                    h{"h–h a"}
                }
                hm{
                    a{"h:mm a – h:mm a"}
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h–h a v"}
                }
                y{
                    y{"y-y"}
                }
                yM{
                    M{"M/yy – M/yy"}
                    y{"M/yy – M/yy"}
                }
                yMEd{
                    M{"E, d/M/yy - E, d/M/yy"}
                    d{"E, d/M/yy - E, d/M/yy"}
                    y{"E, d/M/yy - E, d/M/yy"}
                }
                yMMM{
                    M{"MMM - MMM, y"}
                    y{"MMM y - MMM y"}
                }
                yMMMEd{
                    M{"E, d MMM - E, d MMM, y"}
                    d{"E, d MMM - E, d MMM, y"}
                    y{"E, d MMM, y - E, d MMM, y"}
                }
                yMMMM{
                    M{"yyyy-MM – MM"}
                    y{"yyyy-MM – yyyy-MM"}
                }
                yMMMd{
                    M{"d MMM - d MMM, y"}
                    d{"d-d MMM, y"}
                    y{"d MMM, y - d MMM, y"}
                }
                yMd{
                    M{"d/M/yy - d/M/yy"}
                    d{"d/M/yy - d/M/yy"}
                    y{"d/M/yy - d/M/yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Ion",
                        "Chwef",
                        "Mawrth",
                        "Ebrill",
                        "Mai",
                        "Meh",
                        "Gorff",
                        "Awst",
                        "Medi",
                        "Hyd",
                        "Tach",
                        "Rhag",
                    }
                    wide{
                        "Ionawr",
                        "Chwefror",
                        "Mawrth",
                        "Ebrill",
                        "Mai",
                        "Mehefin",
                        "Gorffenaf",
                        "Awst",
                        "Medi",
                        "Hydref",
                        "Tachwedd",
                        "Rhagfyr",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Ion",
                        "Chwe",
                        "Maw",
                        "Ebr",
                        "Mai",
                        "Meh",
                        "Gor",
                        "Awst",
                        "Medi",
                        "Hyd",
                        "Tach",
                        "Rhag",
                    }
                    narrow{
                        "I",
                        "C",
                        "M",
                        "E",
                        "M",
                        "M",
                        "G",
                        "A",
                        "M",
                        "H",
                        "T",
                        "R",
                    }
                    wide{
                        "Ionawr",
                        "Chwefror",
                        "Mawrth",
                        "Ebrill",
                        "Mai",
                        "Mehefin",
                        "Gorffennaf",
                        "Awst",
                        "Medi",
                        "Hydref",
                        "Tachwedd",
                        "Rhagfyr",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Ch1",
                        "Ch2",
                        "Ch3",
                        "Ch4",
                    }
                    wide{
                        "Chwarter 1af",
                        "2il chwarter",
                        "3ydd chwarter",
                        "4ydd chwarter",
                    }
                }
                stand-alone{
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
            }
        }
    }
    measurementSystemNames{
        US{"UD"}
        metric{"Metrig"}
    }
    zoneStrings{
        hourFormat{"+HHmm;-HHmm"}
    }
}
