# 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 = p. n. e., n. e
eraNames = Pre nove ere, Nove ere
narrowMonths = j, f, m, a, m, j, j, a, s, o, n, d
months = januar, februar, mart, april, maj, juni, juli, avgust, septembar, oktobar, novembar, decembar
shortMonths = jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec
standaloneNarrowMonths = j, f, m, a, m, j, j, a, s, o, n, d
standaloneMonths = januar, februar, mart, april, maj, juni, juli, avgust, septembar, oktobar, novembar, decembar
standaloneShortMonths = jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec
weekdays = nedjelja, ponedjeljak, utorak, srijeda, četvrtak, petak, subota
shortWeekdays = ned, pon, uto, sri, čet, pet, sub
narrowWeekdays = S, M, T, W, T, F, S
standaloneWeekdays = nedjelja, ponedjeljak, utorak, srijeda, četvrtak, petak, subota
standaloneShortWeekdays = ned, pon, uto, sri, čet, pet, sub
standaloneNarrowWeekdays = S, M, T, W, T, F, S
shortQuarters = K1, K2, K3, K4
quarters = Prvi kvartal, Drugi kvartal, Treći kvartal, Četvrti kvartal
ampms = pre podne, popodne
dateFormats = EEEE\\, dd. MMMM y., dd. 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
