# 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 = 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, marts, april, maj, juni, juli, august, 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 = januar, februar, marts, april, maj, juni, juli, august, september, oktober, november, december
standaloneShortMonths = jan, feb, mar, apr, maj, jun, jul, aug, sep, okt, nov, dec
weekdays = søndag, mandag, tirsdag, onsdag, torsdag, fredag, lørdag
shortWeekdays = søn., man., tir., ons., tor., fre., lør.
narrowWeekdays = S, M, T, O, T, F, L
standaloneWeekdays = søndag, mandag, tirsdag, onsdag, torsdag, fredag, lørdag
standaloneShortWeekdays = søn, man, tir, ons, tor, fre, lør
standaloneNarrowWeekdays = S, M, T, O, T, F, L
shortQuarters = K1, K2, K3, K4
quarters = 1. kvartal, 2. kvartal, 3. kvartal, 4. kvartal
ampms = AM, PM
dateFormats = EEEE 'den' d. MMMM y, d. MMM y, dd/MM/y, dd/MM/yy
timeFormats = HH.mm.ss zzzz, HH.mm.ss z, HH.mm.ss, HH.mm
dateTimeFormats = {1} 'kl.' {0}, {1} 'kl.' {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 2
weekendRange = 7, 1
