# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# Day names

weekday-0-long = Söndag
weekday-1-long = Måndag
weekday-2-long = Tisdag
weekday-3-long = Onsdag
weekday-4-long = Torsdag
weekday-5-long = Fredag
weekday-6-long = Lördag

weekday-0-short = Sön
weekday-1-short = Mån
weekday-2-short = Tis
weekday-3-short = Ons
weekday-4-short = Tor
weekday-5-short = Fre
weekday-6-short = Lör

# Month names

month-0-long  = Januari
month-1-long  = Februari
month-2-long  = Mars
month-3-long  = April
month-4-long  = Maj
month-5-long  = Juni
month-6-long  = Juli
month-7-long  = Augusti
month-8-long  = September
month-9-long  = Oktober
month-10-long = November
month-11-long = December

month-0-genitive  = Januari
month-1-genitive  = Februari
month-2-genitive  = Mars
month-3-genitive  = April
month-4-genitive  = Maj
month-5-genitive  = Juni
month-6-genitive  = Juli
month-7-genitive  = Augusti
month-8-genitive  = September
month-9-genitive  = Oktober
month-10-genitive = November
month-11-genitive = December

month-0-short  = Jan
month-1-short  = Feb
month-2-short  = Mar
month-3-short  = Apr
month-4-short  = Maj
month-5-short  = Jun
month-6-short  = Jul
month-7-short  = Aug
month-8-short  = Sep
month-9-short  = Okt
month-10-short = Nov
month-11-short = Dec

# Relative time ("pretty dates"), normal/long variant

minutes-ago-long={[ plural(value) ]}
minutes-ago-long[zero]  = nyss
minutes-ago-long[one]   = en minut sen
minutes-ago-long[two]   = {{value}} minuter sen
minutes-ago-long[few]   = {{value}} minuter sen
minutes-ago-long[many]  = {{value}} minuter sen
minutes-ago-long[other] = {{value}} minuter sen

hours-ago-long={[ plural(value) ]}
hours-ago-long[zero]  = nyss
hours-ago-long[one]   = en timme sen
hours-ago-long[two]   = {{value}} timmar sen
hours-ago-long[few]   = {{value}} timmar sen
hours-ago-long[many]  = {{value}} timmar sen
hours-ago-long[other] = {{value}} timmar sen

days-ago-long={[ plural(value) ]}
days-ago-long[zero]  = idag
days-ago-long[one]   = igår
days-ago-long[two]   = {{value}} dagar sen
days-ago-long[few]   = {{value}} dagar sen
days-ago-long[many]  = {{value}} dagar sen
days-ago-long[other] = {{value}} dagar sen

weeks-ago-long={[ plural(value) ]}
weeks-ago-long[zero]  = denna vecka
weeks-ago-long[one]   = förra veckan
weeks-ago-long[two]   = {{value}} veckor sen
weeks-ago-long[few]   = {{value}} veckor sen
weeks-ago-long[many]  = {{value}} veckor sen
weeks-ago-long[other] = {{value}} veckor sen

months-ago-long={[ plural(value) ]}
months-ago-long[zero]  = denna månad
months-ago-long[one]   = förra månaden
months-ago-long[two]   = {{value}} månader sen
months-ago-long[few]   = {{value}} månader sen
months-ago-long[many]  = {{value}} månader sen
months-ago-long[other] = {{value}} månader sen

years-ago-long={[ plural(value) ]}
years-ago-long[zero]  = detta år
years-ago-long[one]   = förra året
years-ago-long[two]   = {{value}} år sen
years-ago-long[few]   = {{value}} år sen
years-ago-long[many]  = {{value}} år sen
years-ago-long[other] = {{value}} år sen

minutes-until-long={[ plural(value) ]}
minutes-until-long[zero]  = nu
minutes-until-long[one]   = om en minut
minutes-until-long[two]   = om {{value}} minuter
minutes-until-long[few]   = om {{value}} minuter
minutes-until-long[many]  = om {{value}} minuter
minutes-until-long[other] = om {{value}} minuter

hours-until-long={[ plural(value) ]}
hours-until-long[zero]  = nu
hours-until-long[one]   = om en timme
hours-until-long[two]   = om {{value}} timmar
hours-until-long[few]   = om {{value}} timmar
hours-until-long[many]  = om {{value}} timmar
hours-until-long[other] = om {{value}} timmar

days-until-long={[ plural(value) ]}
days-until-long[zero]  = idag
days-until-long[one]   = imorgon
days-until-long[two]   = om {{value}} dagar
days-until-long[few]   = om {{value}} dagar
days-until-long[many]  = om {{value}} dagar
days-until-long[other] = om {{value}} dagar

weeks-until-long={[ plural(value) ]}
weeks-until-long[zero]  = denna vecka
weeks-until-long[one]   = nästa vecka
weeks-until-long[two]   = om {{value}} veckor
weeks-until-long[few]   = om {{value}} veckor
weeks-until-long[many]  = om {{value}} veckor
weeks-until-long[other] = om {{value}} veckor

months-until-long={[ plural(value) ]}
months-until-long[zero]  = denna månad
months-until-long[one]   = nästa månad
months-until-long[two]   = om {{value}} månader
months-until-long[few]   = om {{value}} månader
months-until-long[many]  = om {{value}} månader
months-until-long[other] = om {{value}} månader

years-until-long={[ plural(value) ]}
years-until-long[zero]  = detta år
years-until-long[one]   = nästa år
years-until-long[two]   = om {{value}} år
years-until-long[few]   = om {{value}} år
years-until-long[many]  = om {{value}} år
years-until-long[other] = om {{value}} år


# Relative time ("pretty dates"), short variant
# LOCALIZATION NOTE: the time unit should be as short as possible,
# and the whole string should not exceed a length of ~10 latin characters.
# LOCALIZATION NOTE: the prime (’) can be used to represent minutes for most
# locales, but we use “m” instead for the English locale to prevent a possible
# confusion (35’ ago ≠ 35 feet ago).

minutes-ago-short={[ plural(value) ]}
minutes-ago-short[zero]  = nyss
minutes-ago-short[other] = {{value}}min sen

hours-ago-short={[ plural(value) ]}
hours-ago-short[zero]  = nyss
hours-ago-short[other] = {{value}}tim. sen

days-ago-short={[ plural(value) ]}
days-ago-short[zero]  = idag
days-ago-short[other] = {{value}}dygn sen

minutes-until-short={[ plural(value) ]}
minutes-until-short[zero]  = nu
minutes-until-short[other] = om {{value}}min

hours-until-short={[ plural(value) ]}
hours-until-short[zero]  = nu
hours-until-short[other] = om {{value}}tim.

days-until-short={[ plural(value) ]}
days-until-short[zero]  = idag
days-until-short[other] = om {{value}}dygn

# Relative time ("pretty dates"), unexpected error

incorrectDate = (felaktigt datum)

# Date/Time format
# see http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html

dateTimeFormat_%c = %a %e %b %Y %H:%M:%S
dateTimeFormat_%x = %d/%m/%Y
dateTimeFormat_%X = %H:%M:%S

shortTimeFormat = %H:%M
shortDateTimeFormat = %x %H:%M

# Boolean to indicate if weekStarts on Monday (1) or Sunday (0).
weekStartsOnMonday = 1

# Localize “AM" and "PM" used in %p format for time
time_am = AM
time_pm = PM
