# R Italian translation
# Copyright (C) The R Foundation
# This file is distributed under the same license as the R package.
# Daniele Medri <dmedri@gmail.com>, 2005-2021.
#
msgid ""
msgstr ""
"Project-Id-Version: R-splines 4.1.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2021-02-01 13:59\n"
"PO-Revision-Date: \n"
"Last-Translator: Daniele Medri <dmedri@gmail.com>\n"
"Language-Team: Italian https://github.com/dmedri/R-italian-lang\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.2.1\n"

msgid "must have at least 'ord' knots"
msgstr "bisogna avere almeno nodi 'ord'"

msgid "length of 'derivs' is larger than length of 'x'"
msgstr "la lunghezza di 'derivs' è più grande della lunghezza di 'x'"

msgid "empty 'derivs'"
msgstr "'derivs' vuoto"

msgid "'ord' must be positive integer, at most the number of knots"
msgstr "'ord' dev'essere un intero positivo, al massimo il numero dei nodi"

msgid "need at least %s (=%d) knots"
msgstr "richiesti almeno %s (=%d) nodi"

msgid "the 'x' data must be in the range %g to %g unless you set '%s'"
msgstr ""
"i dati 'x' devono essere nell'intervallo %g a %g finché non imposti '%s'"

msgid "%s needs package 'Matrix' correctly installed"
msgstr "%s richiede il pacchetto 'Matrix' correttamente installato"

msgid "values of 'x' must be distinct"
msgstr "i valori di 'x' devono essere distinti"

msgid "must have at least 'ord'=%d points"
msgstr "devi avere almeno 'ord'=%d punti"

msgid "'formula' must be of the form \"y ~ x\""
msgstr "'formula' dev'essere nella forma \"y ~ x\""

msgid "lengths of 'x' and 'y' must match"
msgstr "le lunghezze di 'x' e 'y' devono corrispondere"

msgid "values of 'x' must be strictly increasing"
msgstr "i valori di 'x' devono essere strettamente crescenti"

msgid "'ord' must be >= 2"
msgstr "'ord' dev'essere >= 2"

msgid "the range of 'x' values exceeds one period"
msgstr "l'intervallo dei valori di 'x' eccede un periodo"

msgid "knot positions must be non-decreasing"
msgstr "le posizioni dei nodi devono essere non-decrescenti"

msgid "lengths of 'x' and 'y' must be the same"
msgstr "le lunghezze di 'x' e 'y' devono essere le medesime"

msgid "'deriv' must be between 0 and %d"
msgstr "'deriv' dev'essere tra 0 e %d"

msgid "knot positions must be strictly increasing"
msgstr "le posizioni dei nodi devono essere strettamente crescenti"

msgid "currently implemented only for cubic splines"
msgstr "attualmente implementate solo per splines cubiche"

msgid "spline must be monotone"
msgstr "spline dev'essere monotona"

msgid "'degree' must be integer >= 1"
msgstr "'degree' dev'essere un intero >= 1"

msgid "'df' was too small; have used %d"
msgstr "'df' era troppo piccolo; si è utilizzato %d"

msgid "some 'x' values beyond boundary knots may cause ill-conditioned bases"
msgstr ""
"alcuni valori 'x' oltre i nodi di confine potrebbero causare basi mal "
"condizionate"
