# 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 = p.n.e., n.e.
eraNames = p.n.e., n.e.
narrowMonths = s, l, m, k, m, c, l, s, w, p, l, g
months = stycznia, lutego, marca, kwietnia, maja, czerwca, lipca, sierpnia, września, października, listopada, grudnia
shortMonths = sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis, gru
standaloneNarrowMonths = s, l, m, k, m, c, l, s, w, p, l, g
standaloneMonths = styczeń, luty, marzec, kwiecień, maj, czerwiec, lipiec, sierpień, wrzesień, październik, listopad, grudzień
standaloneShortMonths = sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis, gru
weekdays = niedziela, poniedziałek, wtorek, środa, czwartek, piątek, sobota
shortWeekdays = niedz., pon., wt., śr., czw., pt., sob.
narrowWeekdays = N, P, W, Ś, C, P, S
standaloneWeekdays = niedziela, poniedziałek, wtorek, środa, czwartek, piątek, sobota
standaloneShortWeekdays = niedz., pon., wt., śr., czw., pt., sob.
standaloneNarrowWeekdays = N, P, W, Ś, C, P, S
shortQuarters = K1, K2, K3, K4
quarters = I kwartał, II kwartał, III kwartał, IV kwartał
ampms = AM, PM
dateFormats = EEEE\\, d MMMM y, d MMMM y, dd-MM-yyyy, dd-MM-yy
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
