# 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.

eras = f.Kr., e.Kr.
eraNames = före Kristus, efter Kristus
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = januari, februari, mars, april, maj, juni, juli, augusti, september, oktober, november, december
shortMonths = jan, feb, mar, apr, maj, jun, jul, aug, sep, okt, nov, dec
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = januari, februari, mars, april, maj, juni, juli, augusti, september, oktober, november, december
standaloneShortMonths = jan, feb, mar, apr, maj, jun, jul, aug, sep, okt, nov, dec
weekdays = söndag, måndag, tisdag, onsdag, torsdag, fredag, lördag
shortWeekdays = sön, mån, tis, ons, tors, fre, lör
narrowWeekdays = S, M, T, O, T, F, L
standaloneWeekdays = söndag, måndag, tisdag, onsdag, torsdag, fredag, lördag
standaloneShortWeekdays = sön, mån, tis, ons, tors, fre, lör
standaloneNarrowWeekdays = S, M, T, O, T, F, L
shortQuarters = K1, K2, K3, K4
quarters = 1:a kvartalet, 2:a kvartalet, 3:e kvartalet, 4:e kvartalet
ampms = fm, em
dateFormats = EEEE 'den' d MMMM yyyy, d MMMM yyyy, d MMM yyyy, yyyy-MM-dd
timeFormats = 'kl'. HH.mm.ss v, HH.mm.ss z, HH.mm.ss, HH.mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
