# 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., mars, apr., mai, juni, juli, 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., mars, apr., mai, juni, juli, aug., sep., okt., nov., des.
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 = 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
