# Following code is generated from CLDR data by script. You can do
# emergency fix here, but you fix will be lost unless it is also
# fixed in CLDR. The data generation scripts exists outside GWT and
# will be run manually after each major CLDR updates. Each update
# will be manually checked before check in to make sure undesired
# changes in CLDR will not break existing applications as possible.

# CLDR version 1.7.1 is used in this generation.

eras = CC, OC
eraNames = Cyn Crist, Oed Crist
narrowMonths = I, C, M, E, M, M, G, A, M, H, T, R
months = Ionawr, Chwefror, Mawrth, Ebrill, Mai, Mehefin, Gorffenaf, Awst, Medi, Hydref, Tachwedd, Rhagfyr
shortMonths = Ion, Chwef, Mawrth, Ebrill, Mai, Meh, Gorff, Awst, Medi, Hyd, Tach, Rhag
standaloneNarrowMonths = I, C, M, E, M, M, G, A, M, H, T, R
standaloneMonths = Ionawr, Chwefror, Mawrth, Ebrill, Mai, Mehefin, Gorffennaf, Awst, Medi, Hydref, Tachwedd, Rhagfyr
standaloneShortMonths = Ion, Chwe, Maw, Ebr, Mai, Meh, Gor, Awst, Medi, Hyd, Tach, Rhag
weekdays = Dydd Sul, Dydd Llun, Dydd Mawrth, Dydd Mercher, Dydd Iau, Dydd Gwener, Dydd Sadwrn
shortWeekdays = Sul, Llun, Maw, Mer, Iau, Gwen, Sad
narrowWeekdays = S, L, M, M, I, G, S
standaloneWeekdays = Dydd Sul, Dydd Llun, Dydd Mawrth, Dydd Mercher, Dydd Iau, Dydd Gwener, Dydd Sadwrn
standaloneShortWeekdays = Sul, Llun, Maw, Mer, Iau, Gwe, Sad
standaloneNarrowWeekdays = S, L, M, M, I, G, S
shortQuarters = Ch1, Ch2, Ch3, Ch4
quarters = Chwarter 1af, 2il chwarter, 3ydd chwarter, 4ydd chwarter
ampms = AM, PM
dateFormats = EEEE\\, dd MMMM y, dd MMMM y, d MMM y, dd/MM/yyyy
timeFormats = h:mm:ss a zzzz, h:mm:ss a z, h:mm:ss a, h:mm a
firstDayOfTheWeek = 2
weekendRange = 7, 1
