# 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 = pred n.l., n.l.
eraNames = pred n.l., n.l.
narrowMonths = j, f, m, a, m, j, j, a, s, o, n, d
months = januára, februára, marca, apríla, mája, júna, júla, augusta, septembra, októbra, novembra, decembra
shortMonths = jan, feb, mar, apr, máj, jún, júl, aug, sep, okt, nov, dec
standaloneNarrowMonths = j, f, m, a, m, j, j, a, s, o, n, d
standaloneMonths = január, február, marec, apríl, máj, jún, júl, august, september, október, november, december
standaloneShortMonths = jan, feb, mar, apr, máj, jún, júl, aug, sep, okt, nov, dec
weekdays = nedeľa, pondelok, utorok, streda, štvrtok, piatok, sobota
shortWeekdays = ne, po, ut, st, št, pi, so
narrowWeekdays = N, P, U, S, Š, P, S
standaloneWeekdays = nedeľa, pondelok, utorok, streda, štvrtok, piatok, sobota
standaloneShortWeekdays = ne, po, ut, st, št, pi, so
standaloneNarrowWeekdays = N, P, U, S, Š, P, S
shortQuarters = Q1, Q2, Q3, Q4
quarters = 1. štvrťrok, 2. štvrťrok, 3. štvrťrok, 4. štvrťrok
ampms = AM, PM
dateFormats = EEEE\\, d. MMMM y, d. MMMM y, d.M.y, d.M.y
timeFormats = H:mm:ss zzzz, H:mm:ss z, H:mm:ss, H:mm
dateTimeFormats = {1} {0}, {1} {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 2
weekendRange = 7, 1
