# 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 = pr. Kr., p. Kr.
eraNames = Prije Krista, Poslije Krista
narrowMonths = 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.
months = siječnja, veljače, ožujka, travnja, svibnja, lipnja, srpnja, kolovoza, rujna, listopada, studenoga, prosinca
shortMonths = sij, velj, ožu, tra, svi, lip, srp, kol, ruj, lis, stu, pro
standaloneNarrowMonths = 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.
standaloneMonths = siječanj, veljača, ožujak, travanj, svibanj, lipanj, srpanj, kolovoz, rujan, listopad, studeni, prosinac
standaloneShortMonths = sij, velj, ožu, tra, svi, lip, srp, kol, ruj, lis, stu, pro
weekdays = nedjelja, ponedjeljak, utorak, srijeda, četvrtak, petak, subota
shortWeekdays = ned, pon, uto, sri, čet, pet, sub
narrowWeekdays = N, P, U, S, Č, P, S
standaloneWeekdays = nedjelja, ponedjeljak, utorak, srijeda, četvrtak, petak, subota
standaloneShortWeekdays = ned, pon, uto, sri, čet, pet, sub
standaloneNarrowWeekdays = n, p, u, s, č, p, s
shortQuarters = 1kv, 2kv, 3kv, 4kv
quarters = 1. kvartal, 2. kvartal, 3. kvartal, 4. kvartal
ampms = AM, PM
dateFormats = EEEE\\, d. MMMM y., d. MMMM y., d. MMM y., d.M.yy.
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
dateTimeFormats = {1} 'u' {0}, {1} 'u' {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 2
weekendRange = 7, 1
