# 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 = î.Hr., d.Hr.
eraNames = înainte de Hristos, după Hristos
narrowMonths = I, F, M, A, M, I, I, A, S, O, N, D
months = ianuarie, februarie, martie, aprilie, mai, iunie, iulie, august, septembrie, octombrie, noiembrie, decembrie
shortMonths = ian., feb., mar., apr., mai, iun., iul., aug., sept., oct., nov., dec.
standaloneNarrowMonths = I, F, M, A, M, I, I, A, S, O, N, D
standaloneMonths = ianuarie, februarie, martie, aprilie, mai, iunie, iulie, august, septembrie, octombrie, noiembrie, decembrie
standaloneShortMonths = ian., feb., mar., apr., mai, iun., iul., aug., sept., oct., nov., dec.
weekdays = duminică, luni, marți, miercuri, joi, vineri, sâmbătă
shortWeekdays = Dum, Lun, Mar, Mie, Joi, Vin, Sâm
narrowWeekdays = D, L, M, M, J, V, S
standaloneWeekdays = duminică, luni, marți, miercuri, joi, vineri, sâmbătă
standaloneShortWeekdays = Dum, Lun, Mar, Mie, Joi, Vin, Sâm
standaloneNarrowWeekdays = D, L, M, M, J, V, S
shortQuarters = trim. I, trim. II, trim. III, trim. IV
quarters = trimestrul I, trimestrul al II-lea, trimestrul al III-lea, trimestrul al IV-lea
ampms = a.m., p.m.
dateFormats = EEEE\\, d MMMM y, d MMMM y, d MMM y, dd.MM.y
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
