# 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 = BCE, CE
eraNames = BCE, CE
narrowMonths = U, O, M, A, M, E, U, A, I, U, A, A
months = urtarrila, otsaila, martxoa, apirila, maiatza, ekaina, uztaila, abuztua, iraila, urria, azaroa, abendua
shortMonths = urt, ots, mar, api, mai, eka, uzt, abu, ira, urr, aza, abe
standaloneNarrowMonths = U, O, M, A, M, E, U, A, I, U, A, A
standaloneMonths = urtarrila, otsaila, martxoa, apirila, maiatza, ekaina, uztaila, abuztua, iraila, urria, azaroa, abendua
standaloneShortMonths = urt, ots, mar, api, mai, eka, uzt, abu, ira, urr, aza, abe
weekdays = igandea, astelehena, asteartea, asteazkena, osteguna, ostirala, larunbata
shortWeekdays = ig, al, as, az, og, or, lr
narrowWeekdays = 1, 2, 3, 4, 5, 6, 7
standaloneWeekdays = igandea, astelehena, asteartea, asteazkena, osteguna, ostirala, larunbata
standaloneShortWeekdays = ig, al, as, az, og, or, lr
standaloneNarrowWeekdays = 1, 2, 3, 4, 5, 6, 7
shortQuarters = 1Hh, 2Hh, 3Hh, 4Hh
quarters = 1. hiruhilekoa, 2. hiruhilekoa, 3. hiruhilekoa, 4. hiruhilekoa
ampms = AM, PM
dateFormats = EEEE\\, y'eko' MMMM'ren' dd'a', y'eko' MMM'ren' dd'a', y MMM d, yyyy-MM-dd
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
