# 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.
# File generated from CLDR ver. 25

eras = av. Cr., s. Cr.
eraNames = avant Cristus, suenter Cristus
narrowMonths = S, F, M, A, M, Z, F, A, S, O, N, D
months = schaner, favrer, mars, avrigl, matg, zercladur, fanadur, avust, settember, october, november, december
shortMonths = schan., favr., mars, avr., matg, zercl., fan., avust, sett., oct., nov., dec.
standaloneNarrowMonths = S, F, M, A, M, Z, F, A, S, O, N, D
standaloneMonths = schaner, favrer, mars, avrigl, matg, zercladur, fanadur, avust, settember, october, november, december
standaloneShortMonths = schan., favr., mars, avr., matg, zercl., fan., avust, sett., oct., nov., dec.
weekdays = dumengia, glindesdi, mardi, mesemna, gievgia, venderdi, sonda
shortWeekdays = du, gli, ma, me, gie, ve, so
narrowWeekdays = D, G, M, M, G, V, S
standaloneWeekdays = dumengia, glindesdi, mardi, mesemna, gievgia, venderdi, sonda
standaloneShortWeekdays = du, gli, ma, me, gie, ve, so
standaloneNarrowWeekdays = D, G, M, M, G, V, S
shortQuarters = 1. quartal, 2. quartal, 3. quartal, 4. quartal
quarters = 1. quartal, 2. quartal, 3. quartal, 4. quartal
ampms = am, sm
dateFormats = EEEE\\, 'ils' d 'da' MMMM y, d 'da' MMMM y, dd-MM-y, dd-MM-yy
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
dateTimeFormats = {1} {0}, {1} {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 2
weekendRange = 7, 1
