# 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 = E diel
weekday-1-long = E hënë
weekday-2-long = E martë
weekday-3-long = E mërkurë
weekday-4-long = E enjte
weekday-5-long = E premte
weekday-6-long = E shtunë

weekday-0-short = Die
weekday-1-short = Hën
weekday-2-short = Mar
weekday-3-short = Mër
weekday-4-short = Enj
weekday-5-short = Pre
weekday-6-short = Sht

# Month names


month-0-long  = Janar
month-1-long  = Shkurt
month-2-long  = Mars
month-3-long  = Prill
month-4-long  = Maj
month-5-long  = Qershor
month-6-long  = Korrik
month-7-long  = Gusht
month-8-long  = Shtator
month-9-long  = Tetor
month-10-long = Nëntor
month-11-long = Dhjetor

month-0-genitive  = të Janarit
month-1-genitive  = të Shkurtit
month-2-genitive  = të Marsit
month-3-genitive  = të Prillit
month-4-genitive  = të Majit
month-5-genitive  = të Qershorit
month-6-genitive  = të Korrikut
month-7-genitive  = të Gushtit
month-8-genitive  = të Shtatorit
month-9-genitive  = të Tetorit
month-10-genitive = të Nëntorit
month-11-genitive = të Dhjetorit

month-0-short  = Jan
month-1-short  = Shk
month-2-short  = Mar
month-3-short  = Pri
month-4-short  = Maj
month-5-short  = Qer
month-6-short  = Kor
month-7-short  = Gus
month-8-short  = Sht
month-9-short  = Tet
month-10-short = Nën
month-11-short = Dhj

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

minutes-ago-long={[ plural(value) ]}
minutes-ago-long[zero]  = mu tani
minutes-ago-long[one]   = një minutë më parë
minutes-ago-long[two]   = {{value}} minuta më parë
minutes-ago-long[few]   = {{value}} minuta më parë
minutes-ago-long[many]  = {{value}} minuta më parë
minutes-ago-long[other] = {{value}} minuta më parë

hours-ago-long={[ plural(value) ]}
hours-ago-long[zero]  = mu tani
hours-ago-long[one]   = një orë më parë
hours-ago-long[two]   = {{value}} orë më parë
hours-ago-long[few]   = {{value}} orë më parë
hours-ago-long[many]  = {{value}} orë më parë
hours-ago-long[other] = {{value}} orë më parë

days-ago-long={[ plural(value) ]}
days-ago-long[zero]  = sot
days-ago-long[one]   = dje
days-ago-long[two]   = {{value}} ditë më parë
days-ago-long[few]   = {{value}} ditë më parë
days-ago-long[many]  = {{value}} ditë më parë
days-ago-long[other] = {{value}} ditë më parë

weeks-ago-long={[ plural(value) ]}
weeks-ago-long[zero]  = këtë javë
weeks-ago-long[one]   = javën e kaluar
weeks-ago-long[two]   = {{value}} javë më parë
weeks-ago-long[few]   = {{value}} javë më parë
weeks-ago-long[many]  = {{value}} javë më parë
weeks-ago-long[other] = {{value}} javë më parë

months-ago-long={[ plural(value) ]}
months-ago-long[zero]  = këtë muaj
months-ago-long[one]   = muajin e kaluar
months-ago-long[two]   = {{value}} muaj më parë
months-ago-long[few]   = {{value}} muaj më parë
months-ago-long[many]  = {{value}} muaj më parë
months-ago-long[other] = {{value}} muaj më parë

years-ago-long={[ plural(value) ]}
years-ago-long[zero]  = këtë vit
years-ago-long[one]   = vitin e kaluar
years-ago-long[two]   = {{value}} vite më parë
years-ago-long[few]   = {{value}} vite më parë
years-ago-long[many]  = {{value}} vite më parë
years-ago-long[other] = {{value}} vite më parë

minutes-until-long={[ plural(value) ]}
minutes-until-long[zero]  = tani
minutes-until-long[one]   = për një minutë
minutes-until-long[two]   = për {{value}} minuta
minutes-until-long[few]   = për {{value}} minuta
minutes-until-long[many]  = për {{value}} minuta
minutes-until-long[other] = për {{value}} minuta

hours-until-long={[ plural(value) ]}
hours-until-long[zero]  = tani
hours-until-long[one]   = për një orë
hours-until-long[two]   = për {{value}} orë
hours-until-long[few]   = për {{value}} orë
hours-until-long[many]  = për {{value}} orë
hours-until-long[other] = për {{value}} orë

days-until-long={[ plural(value) ]}
days-until-long[zero]  = sot
days-until-long[one]   = nesër
days-until-long[two]   = për {{value}} ditë
days-until-long[few]   = për {{value}} ditë
days-until-long[many]  = për {{value}} ditë
days-until-long[other] = për {{value}} ditë

weeks-until-long={[ plural(value) ]}
weeks-until-long[zero]  = këtë javë
weeks-until-long[one]   = javën pasuese
weeks-until-long[two]   = për {{value}} javë
weeks-until-long[few]   = për {{value}} javë
weeks-until-long[many]  = për {{value}} javë
weeks-until-long[other] = për {{value}} javë

months-until-long={[ plural(value) ]}
months-until-long[zero]  = këtë muaj
months-until-long[one]   = muajin pasues
months-until-long[two]   = për {{value}} muaj
months-until-long[few]   = për {{value}} muaj
months-until-long[many]  = për {{value}} muaj
months-until-long[other] = për {{value}} muaj

years-until-long={[ plural(value) ]}
years-until-long[zero]  = këtë vit
years-until-long[one]   = vitin pasues
years-until-long[two]   = për {{value}} vjet
years-until-long[few]   = për {{value}} vjet
years-until-long[many]  = për {{value}} vjet
years-until-long[other] = për {{value}} vjet

# 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]  = mu tani
minutes-ago-short[other] = {{value}}m më parë

hours-ago-short={[ plural(value) ]}
hours-ago-short[zero]  = mu tani
hours-ago-short[other] = {{value}}h më parë

days-ago-short={[ plural(value) ]}
days-ago-short[zero]  = sot
days-ago-short[other] = {{value}}d më parë

minutes-until-short={[ plural(value) ]}
minutes-until-short[zero]  = tani
minutes-until-short[other] = për {{value}}m

hours-until-short={[ plural(value) ]}
hours-until-short[zero]  = tani
hours-until-short[other] = për {{value}}h

days-until-short={[ plural(value) ]}
days-until-short[zero]  = sot
days-until-short[other] = për {{value}}d

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

incorrectDate = (datë e pasaktë)

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

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

shortTimeFormat = %I:%M %p
shortDateTimeFormat = %x %I:%M %p

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

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