# 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.

weekday-0-long = domenica
weekday-1-long = lunedì
weekday-2-long = martedì
weekday-3-long = mercoledì
weekday-4-long = giovedì
weekday-5-long = venerdì
weekday-6-long = sabato
weekday-0-short = dom
weekday-1-short = lun
weekday-2-short = mar
weekday-3-short = mer
weekday-4-short = gio
weekday-5-short = ven
weekday-6-short = sab
month-0-long = gennaio
month-1-long = febbraio
month-2-long = marzo
month-3-long = aprile
month-4-long = maggio
month-5-long = giugno
month-6-long = luglio
month-7-long = agosto
month-8-long = settembre
month-9-long = ottobre
month-10-long = novembre
month-11-long = dicembre
month-0-genitive = gennaio
month-1-genitive = febbraio
month-2-genitive = marzo
month-3-genitive = aprile
month-4-genitive = maggio
month-5-genitive = giugno
month-6-genitive = luglio
month-7-genitive = agosto
month-8-genitive = settembre
month-9-genitive = ottobre
month-10-genitive = novembre
month-11-genitive = dicembre
month-0-short = gen
month-1-short = feb
month-2-short = mar
month-3-short = apr
month-4-short = mag
month-5-short = giu
month-6-short = lug
month-7-short = ago
month-8-short = set
month-9-short = ott
month-10-short = nov
month-11-short = dic
minutes-ago-long = {[ plural(value) ]}
minutes-ago-long[zero] = adesso
minutes-ago-long[one] = un minuto fa
minutes-ago-long[two] = {{value}} minuti fa
minutes-ago-long[few] = {{value}} minuti fa
minutes-ago-long[many] = {{value}} minuti fa
minutes-ago-long[other] = {{value}} minuti fa
hours-ago-long = {[ plural(value) ]}
hours-ago-long[zero] = adesso
hours-ago-long[one] = un’ora fa
hours-ago-long[two] = {{value}} ore fa
hours-ago-long[few] = {{value}} ore fa
hours-ago-long[many] = {{value}} ore fa
hours-ago-long[other] = {{value}} ore fa
days-ago-long = {[ plural(value) ]}
days-ago-long[zero] = oggi
days-ago-long[one] = ieri
days-ago-long[two] = {{value}} giorni fa
days-ago-long[few] = {{value}} giorni fa
days-ago-long[many] = {{value}} giorni fa
days-ago-long[other] = {{value}} giorni fa
weeks-ago-long = {[ plural(value) ]}
weeks-ago-long[zero] = questa settimana
weeks-ago-long[one] = settimana scorsa
weeks-ago-long[two] = {{value}} settimane fa
weeks-ago-long[few] = {{value}} settimane fa
weeks-ago-long[many] = {{value}} settimane fa
weeks-ago-long[other] = {{value}} settimane fa
months-ago-long = {[ plural(value) ]}
months-ago-long[zero] = questo mese
months-ago-long[one] = mese scorso
months-ago-long[two] = {{value}} mesi fa
months-ago-long[few] = {{value}} mesi fa
months-ago-long[many] = {{value}} mesi fa
months-ago-long[other] = {{value}} mesi fa
years-ago-long = {[ plural(value) ]}
years-ago-long[zero] = quest’anno
years-ago-long[one] = anno scorso
years-ago-long[two] = {{value}} anni fa
years-ago-long[few] = {{value}} anni fa
years-ago-long[many] = {{value}} anni fa
years-ago-long[other] = {{value}} anni fa
minutes-until-long = {[ plural(value) ]}
minutes-until-long[zero] = adesso
minutes-until-long[one] = tra un minuto
minutes-until-long[two] = tra {{value}} minuti
minutes-until-long[few] = tra {{value}} minuti
minutes-until-long[many] = tra {{value}} minuti
minutes-until-long[other] = tra {{value}} minuti
hours-until-long = {[ plural(value) ]}
hours-until-long[zero] = adesso
hours-until-long[one] = tra un’ora
hours-until-long[two] = tra {{value}} ore
hours-until-long[few] = tra {{value}} ore
hours-until-long[many] = tra {{value}} ore
hours-until-long[other] = tra {{value}} ore
days-until-long = {[ plural(value) ]}
days-until-long[zero] = oggi
days-until-long[one] = domani
days-until-long[two] = tra {{value}} giorni
days-until-long[few] = tra {{value}} giorni
days-until-long[many] = tra {{value}} giorni
days-until-long[other] = tra {{value}} giorni
weeks-until-long = {[ plural(value) ]}
weeks-until-long[zero] = questa settimana
weeks-until-long[one] = prossima settimana
weeks-until-long[two] = tra {{value}} settimane
weeks-until-long[few] = tra {{value}} settimane
weeks-until-long[many] = tra {{value}} settimane
weeks-until-long[other] = tra {{value}} settimane
months-until-long = {[ plural(value) ]}
months-until-long[zero] = questo mese
months-until-long[one] = prossimo mese
months-until-long[two] = in {{value}} mesi
months-until-long[few] = tra {{value}} mesi
months-until-long[many] = tra {{value}} mesi
months-until-long[other] = in {{value}} mesi
years-until-long = {[ plural(value) ]}
years-until-long[zero] = quest’anno
years-until-long[one] = prossimo anno
years-until-long[two] = tra {{value}} anni
years-until-long[few] = tra {{value}} anni
years-until-long[many] = tra {{value}} anni
years-until-long[other] = tra {{value}} anni
minutes-ago-short = {[ plural(value) ]}
minutes-ago-short[zero] = adesso
minutes-ago-short[other] = {{value}}m fa
hours-ago-short = {[ plural(value) ]}
hours-ago-short[zero] = adesso
hours-ago-short[other] = {{value}}h fa
days-ago-short = {[ plural(value) ]}
days-ago-short[zero] = oggi
days-ago-short[other] = {{value}}g fa
minutes-until-short = {[ plural(value) ]}
minutes-until-short[zero] = adesso
minutes-until-short[other] = tra {{value}}m
hours-until-short = {[ plural(value) ]}
hours-until-short[zero] = adesso
hours-until-short[other] = tra {{value}}h
days-until-short = {[ plural(value) ]}
days-until-short[zero] = oggi
days-until-short[other] = tra {{value}}d
incorrectDate = (data errata)
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
weekStartsOnMonday = 1
time_am = AM
time_pm = PM
