# 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 = pr.n.e., AD
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 = 01., 02., 03., 04., 05., 06., 07., 08., 09., 10., 11., 12.
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 = 01., 02., 03., 04., 05., 06., 07., 08., 09., 10., 11., 12.
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.M.yyyy., dd.MM.yyyy.
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
