# 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. št., po Kr.
eraNames = pred našim štetjem, naše štetje
narrowMonths = j, f, m, a, m, j, j, a, s, o, n, d
months = januar, februar, marec, april, maj, junij, julij, avgust, september, oktober, november, december
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, marec, april, maj, junij, julij, avgust, september, oktober, november, december
standaloneShortMonths = jan, feb, mar, apr, maj, jun, jul, avg, sep, okt, nov, dec
weekdays = nedelja, ponedeljek, torek, sreda, četrtek, petek, sobota
shortWeekdays = ned, pon, tor, sre, čet, pet, sob
narrowWeekdays = n, p, t, s, č, p, s
standaloneWeekdays = nedelja, ponedeljek, torek, sreda, četrtek, petek, sobota
standaloneShortWeekdays = ned, pon, tor, sre, čet, pet, sob
standaloneNarrowWeekdays = n, p, t, s, č, p, s
shortQuarters = Q1, Q2, Q3, Q4
quarters = 1. četrtletje, 2. četrtletje, 3. četrtletje, 4. četrtletje
ampms = dop., pop.
dateFormats = EEEE\\, dd. MMMM y, dd. MMMM y, d. MMM. yyyy, d. MM. yy
timeFormats = H:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
