# 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.Kr., e.Kr.
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = januar, februar, mars, april, mai, juni, juli, august, september, oktober, november, desember
shortMonths = jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = januar, februar, mars, april, mai, juni, juli, august, september, oktober, november, desember
standaloneShortMonths = jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des
weekdays = søndag, måndag, tysdag, onsdag, torsdag, fredag, laurdag
shortWeekdays = sø., må, ty, on, to, fr, la
narrowWeekdays = S, M, T, O, T, F, L
standaloneWeekdays = søndag, måndag, tysdag, onsdag, torsdag, fredag, laurdag
standaloneShortWeekdays = sø., må., ty, on, to, fr, la.
standaloneNarrowWeekdays = S, M, T, O, T, F, L
shortQuarters = K1, K2, K3, K4
quarters = 1. kvartal, 2. kvartal, 3. kvartal, 4. kvartal
ampms = formiddag, ettermiddag
dateFormats = EEEE d. MMMM yyyy, d. MMMM yyyy, d. MMM. yyyy, dd.MM.yy
timeFormats = 'kl'. HH.mm.ss v, HH.mm.ss z, HH.mm.ss, HH.mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
