# R Italian translation
# This file is distributed under the same license as the R package.
# Copyright (C) The R Foundation.
# Daniele Medri <dmedri@gmail.com>, 2005-2020.
#
msgid ""
msgstr ""
"Project-Id-Version: graphics 3.6.3\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\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"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"X-Generator: Poedit 2.2.1\n"

#: base.c:43
msgid "no base graphics system is registered"
msgstr "nessun sistema grafico base è registrato"

#: base.c:310
msgid "Incompatible graphics state"
msgstr "stato grafico non compatibile"

#: base.c:385 base.c:392 base.c:400
msgid "the base graphics system is not registered"
msgstr "il sistema grafico base non è registrato"

#: graphics.c:297
#, c-format
msgid "bad units specified in '%s'"
msgstr "specificate unità errate in '%s'"

#: graphics.c:1791 graphics.c:1813
msgid "attempt to plot on null device"
msgstr "tentaivo di disegnare sul dispositivo null"

#: graphics.c:1843
msgid "outer margins too large (figure region too small)"
msgstr "margini esterni troppo grandi (area della figura troppo piccola)"

#: graphics.c:1845
msgid "figure region too large"
msgstr "regione della figura troppo grande"

#: graphics.c:1847
msgid "figure margins too large"
msgstr "margini figura troppo grandi"

#: graphics.c:1849
msgid "plot region too large"
msgstr "regione di plot troppo grande"

#: graphics.c:1896
#, c-format
msgid "relative range of values (%4.0f * EPS) is small (axis %d)"
msgstr "l'intervallo relativo di valori (%4.0f * EPS) è piccolo (asse %d)"

#: graphics.c:1948
#, c-format
msgid "nonfinite axis limits [GScale(%g,%g,%d, .); log=%d]"
msgstr "limiti asse non finiti [GScale(%g,%g,%d, .); log=%d]"

#: graphics.c:1978
#, c-format
msgid "axis style \"%c\" unimplemented"
msgstr "stile asse \"%c\" non implementato"

#: graphics.c:2216
msgid "no graphics device is active"
msgstr "nessun dispositivo grafico attivo"

#: graphics.c:2411
msgid "plot.new has not been called yet"
msgstr "plot.new non è ancora stato chiamato"

#: graphics.c:2413
msgid "invalid graphics state"
msgstr "stato grafico non valido"

#: graphics.c:2564
msgid "graphics device closed during call to locator or identify"
msgstr "dispositivo grafico chiuso durante la chiamata a locator o identify"

#: graphics.c:2614
msgid "No graphics device is active"
msgstr "Nessun dispositivo grafico attivo"

#: graphics.c:3073
msgid "zero-length arrow is of indeterminate angle and so skipped"
msgstr ""
"frecce di lunghezza nulla hanno un angolo indeterminato e quindi saranno "
"ignorate"

#: graphics.c:3154
#, c-format
msgid "invalid par(\"bty\") = '%c'; no box() drawn"
msgstr "par(\"bty\") = '%c' non valido; nessun box() disegnato"

#: graphics.c:3171
msgid "invalid argument to GBox"
msgstr "argomento non valido in GBox"

#: graphics.c:3416
msgid "metric information not available for this device"
msgstr "informazione metrica non disponibile per questo dispositivo"

#: par-common.c:146
msgid "graphical parameter 'family' has a maximum length of 200 bytes"
msgstr "il parametro grafico 'family' ha una lunghezza massima di 200 byte"

#: par.c:160
#, c-format
msgid "invalid value specified for graphical parameter \"%s\""
msgstr "specificato valore non valido per il parametro grafico \"%s\""

#: par.c:167
#, c-format
msgid "graphical parameter \"%s\" has the wrong length"
msgstr "il parametro \"%s\" ha la lunghezza sbagliata"

#: par.c:262 par.c:673
#, c-format
msgid "graphical parameter \"%s\" cannot be set"
msgstr "il parametro \"%s\" non può essere impostato"

#: par.c:434
msgid "parameter \"mfg\" has the wrong length"
msgstr "il parametro \"mfg\" ha la lunghezza sbagliata"

#: par.c:442
msgid "parameter \"i\" in \"mfg\" is out of range"
msgstr "parametro \"i\" in \"mfg\" fuori range"

#: par.c:444
msgid "parameter \"j\" in \"mfg\" is out of range"
msgstr "parametro \"j\" in \"mfg\" fuori range"

#: par.c:449
msgid "value of 'nr' in \"mfg\" is wrong and will be ignored"
msgstr "il valore di 'nr' in \"mfg\" è sbagliato e sarà ignorato"

#: par.c:451
msgid "value of 'nc' in \"mfg\" is wrong and will be ignored"
msgstr "il valore di 'nc' in \"mfg\" è sbagliato e sarà ignorato"

#: par.c:478
msgid "calling par(new=TRUE) with no plot"
msgstr "chiamata per par(new=TRUE) senza alcun plot"

#: par.c:665 par.c:1063
#, c-format
msgid "graphical parameter \"%s\" is obsolete"
msgstr "il parametro grafico \"%s\" è obsoleto"

#: par.c:669 par.c:1067
#, c-format
msgid "\"%s\" is not a graphical parameter"
msgstr "parametro grafico \"%s\" non valido"

#: par.c:1120
msgid "invalid argument passed to par()"
msgstr "parametro non valido passato a par()"

#: par.c:1164
#, c-format
msgid "too many rows in layout, limit %d"
msgstr "troppe righe nel layout, limite %d"

#: par.c:1170
#, c-format
msgid "too many columns in layout, limit %d"
msgstr "troppe colonne nel layout, limite %d"

#: par.c:1172
#, c-format
msgid "too many cells in layout, limit %d"
msgstr "troppe celle nel layout, limite %d"

#: plot.c:60
msgid "invalid color specification"
msgstr "specificazione colore non valida"

#: plot.c:126
msgid "only NA allowed in logical plotting symbol"
msgstr "sono ammessi solo gli NA come simboli grafici di tipo logico"

#: plot.c:128
msgid "invalid plotting symbol"
msgstr "simbolo grafico non valido"

#: plot.c:217
msgid "invalid font specification"
msgstr "specificazione del carattere non valida"

#: plot.c:276 plot.c:290 plot.c:481 plot.c:486 plot.c:2112 plot.c:2119
#: plot.c:3141 plot.c:3143 plot.c:3145 plot.c:3300 plot3d.c:1163 plot3d.c:1167
#: plot3d.c:1169 plot3d.c:1903
#, c-format
msgid "invalid '%s' value"
msgstr "valore '%s' non valido"

#: plot.c:293
#, c-format
msgid "invalid 'vfont' value [typeface %d]"
msgstr "valore 'vfont' non valido [typeface %d]"

#: plot.c:317
#, c-format
msgid "invalid 'vfont' value [typeface = %d, fontindex = %d]"
msgstr "valore 'vfont' non valido [typeface = %d, fontindex = %d]"

#: plot.c:391
msgid "invalid graphics parameter"
msgstr "parametro grafico non valido"

#: plot.c:477
msgid "at least 3 arguments required"
msgstr "necessari almeno 3 argomenti"

#: plot.c:492
msgid "\"log=\" specification must be character"
msgstr "specificazione \"log=\" dev'essere di tipo character"

#: plot.c:503
#, c-format
msgid "invalid \"log=%s\" specification"
msgstr "specificazione \"log=%s\" non valida"

#: plot.c:518
msgid "NAs not allowed in 'xlim'"
msgstr "NA non ammessi in 'xlim'"

#: plot.c:524
msgid "need finite 'xlim' values"
msgstr "i valori 'xlim' devono essere finiti"

#: plot.c:530
msgid "NAs not allowed in 'ylim'"
msgstr "NA non ammessi in 'ylim'"

#: plot.c:536
msgid "need finite 'ylim' values"
msgstr "i valori di 'ylim' devono essere finiti"

#: plot.c:542
msgid "Logarithmic axis must have positive limits"
msgstr "Gli assi logaritmici devono avere limiti positivi"

#: plot.c:664
msgid "invalid type for axis labels"
msgstr "tipo non valido per le etichette dell'asse"

#: plot.c:765 plot.c:1298 plot.c:1621 plot.c:1686 plot.c:1761 plot.c:1827
#: plot.c:1901 plot.c:1996 plot.c:2072 plot.c:2350 plot.c:2524 plot.c:2740
#: plot.c:3282 plot.c:3409 plot.c:3485 plot.c:3651 plot.c:3931 plot3d.c:1872
msgid "too few arguments"
msgstr "argomenti insufficienti"

#: plot.c:776
#, c-format
msgid "invalid axis number %d"
msgstr "numero asse %d non valido"

#: plot.c:866
msgid "'hadj' must be of length one"
msgstr "'hadj' dev'essere di lunghezza 1"

#: plot.c:873 plot.c:2084 plot.c:2361 plot.c:2367 plot.c:2374 plot.c:2382
#: plot.c:2389 plot.c:2396 plot.c:2403 plot.c:2410 plot.c:2418 plot.c:2425
#: plot.c:3148
#, c-format
msgid "zero-length '%s' specified"
msgstr "specificato '%s' di lunghezza zero"

#: plot.c:942
msgid "'labels' is supplied and not 'at'"
msgstr "'labels' è passato e non 'at'"

#: plot.c:946
#, c-format
msgid "'at' and 'labels' lengths differ, %d != %d"
msgstr "le lunghezze di 'at' e 'label' differiscono, %d != %d"

#: plot.c:963
msgid "no locations are finite"
msgstr "nessuna posizione finita"

#: plot.c:1314
msgid "invalid plotting structure"
msgstr "struttura disegno non valida"

#: plot.c:1316
#, c-format
msgid "'x' and 'y' lengths differ in %s()"
msgstr "lunghezza di 'x' e 'y' differenti in %s()"

#: plot.c:1327
#, c-format
msgid "plot type '%s' will be truncated to first character"
msgstr "tipo lpot '%s' verrà troncato al primo carattere"

#: plot.c:1331 plot.c:3002
msgid "invalid plot type"
msgstr "tipo plot non valido"

#: plot.c:1533
#, c-format
msgid "invalid plot type '%c'"
msgstr "tipo plot '%c' non valido"

#: plot.c:1576
msgid "invalid first argument"
msgstr "primo argomento non valido"

#: plot.c:1583
msgid "invalid second argument"
msgstr "secondo argomento non valido"

#: plot.c:1591
msgid "invalid third argument"
msgstr "terzo argomento non valido"

#: plot.c:1599
msgid "invalid fourth argument"
msgstr "quarto argomento non valido"

#: plot.c:1607
msgid "cannot mix zero-length and non-zero-length coordinates"
msgstr ""
"non è possibile mischiare coordinate di lunghezza-zero con quelle di "
"lunghezza-non-zero"

#: plot.c:1832
msgid "Empty raster"
msgstr "Raster vuoto"

#: plot.c:1914
msgid "invalid arrow head length"
msgstr "lunghezza non valida per la punta della freccia"

#: plot.c:1919
msgid "invalid arrow head angle"
msgstr "angolazione della punta della freccia non valida"

#: plot.c:1924
msgid "invalid arrow head specification"
msgstr "specificazione non valida per la punta della freccia"

#: plot.c:2158
msgid "no coordinates were supplied"
msgstr "nessuna coordinata è stata passata"

#: plot.c:2781
msgid "invalid a=, b= specification"
msgstr "specificazione a=, b= non valida"

#: plot.c:2790
msgid "'a' and 'b' must be finite"
msgstr "'a' e 'b' devono essere finiti"

#: plot.c:2925 plot.c:4051 plot.c:4055 plot.c:4058 plot.c:4078 plot.c:4082
#: plot.c:4085 plot3d.c:1085 plot3d.c:1089 plot3d.c:1094 plot3d.c:1098
#: plot3d.c:1102 plot3d.c:1106 stem.c:153 stem.c:154 stem.c:156 stem.c:157
#: stem.c:203 stem.c:204
#, c-format
msgid "invalid '%s' argument"
msgstr "argomento '%s' non valido"

#: plot.c:2997 plot.c:3137
#, c-format
msgid "invalid number of points in %s"
msgstr "numero di punti non valido in %s"

#: plot.c:3139
msgid "incorrect argument type"
msgstr "tipo argomento non valido"

#: plot.c:3151
msgid "different argument lengths"
msgstr "argomenti di lunghezza diversa"

#: plot.c:3153
msgid "more 'labels' than points"
msgstr "più 'labels' che punti"

#: plot.c:3202
#, c-format
msgid "warning: no point within %.2f inches\n"
msgstr "avvertimento: nessun punto entro %.2f pollici\n"

#: plot.c:3208
msgid "warning: nearest point already identified\n"
msgstr "attenzione: il punto più vicino è già stato identificato\n"

#: plot.c:3293
msgid "invalid units"
msgstr "unità non valide"

#: plot.c:3469 plot.c:3576
msgid "invalid dendrogram input"
msgstr "dendrogramma in input non valido"

#: plot.c:3633
msgid "invalid symbol parameter vector"
msgstr "simbolo non valido per il vettore parametro"

#: plot.c:3656
msgid "invalid symbol coordinates"
msgstr "simbolo coordinate non valido"

#: plot.c:3664
msgid "x/y/parameter length mismatch"
msgstr "lunghezze x/y/parametro discordanti"

#: plot.c:3683
msgid "invalid circles data"
msgstr "cerchi dati non validi"

#: plot.c:3685 plot.c:3706 plot.c:3731 plot.c:3761
msgid "invalid symbol parameter"
msgstr "simbolo non valido per il parametro"

#: plot.c:3704
msgid "invalid squares data"
msgstr "dati dei quadrati non validi"

#: plot.c:3729
msgid "invalid rectangles data (need 2 columns)"
msgstr "dati dei rettangoli non validi (richieste 2 colonne)"

#: plot.c:3759
msgid "invalid stars data"
msgstr "dati delle stelle non validi"

#: plot.c:3801
msgid "invalid thermometers data (need 3 or 4 columns)"
msgstr "dati dei termometri non validi (richieste 3 o 4 colonne)"

#: plot.c:3804
#, c-format
msgid "invalid 'thermometers[, %s]'"
msgstr "'thermometers[, %s]' non valido"

#: plot.c:3807
#, c-format
msgid "'thermometers[, %s]' not in [0,1] -- may look funny"
msgstr "'thermometers[, %s]' non in [0,1] -- potrebbe risultare divertente"

#: plot.c:3810
msgid "invalid 'thermometers[, 1:2]'"
msgstr "'thermometers[, 1:2]' non valido"

#: plot.c:3849
msgid "invalid 'boxplots' data (need 5 columns)"
msgstr "dati 'boxplots' non validi (richieste 5 colonne)"

#: plot.c:3858
msgid "'boxplots[, 5]' outside [0,1] -- may look funny"
msgstr "'boxplots[, 5]' fuori da [0,1] -- potrebbe sembrare divertente"

#: plot.c:3860
msgid "invalid 'boxplots[, 1:4]'"
msgstr "'boxplots[,1:4]' non valido"

#: plot.c:3906
msgid "invalid symbol type"
msgstr "tipo simbolo non valido"

#: plot.c:3944 plot.c:3946 plot.c:3951 plot.c:3953
#, c-format
msgid "incorrect length for '%s' argument"
msgstr "lunghezza incorretta per l'argomento '%s'"

#: plot3d.c:181 plot3d.c:1929
msgid "insufficient 'x' or 'y' values"
msgstr "valori di 'x' o 'y' insufficienti"

#: plot3d.c:185 plot3d.c:1932
msgid "dimension mismatch"
msgstr "dimensione discordante"

#: plot3d.c:193 plot3d.c:1935
msgid "no contour values"
msgstr "nessun valore di contour"

#: plot3d.c:255
msgid "invalid x / y values or limits"
msgstr "valori o limiti di x / y non validi"

#: plot3d.c:257
msgid "invalid contour levels: must be strictly increasing"
msgstr "curve di livello non valide: devono essere strettamente crescenti"

#: plot3d.c:1049 plot3d.c:1062
msgid "Axis orientation not calculated"
msgstr "Orientamento degli assi non calcolato"

#: plot3d.c:1082
msgid "too few parameters"
msgstr "gli argomenti sono troppo pochi"

#: plot3d.c:1112
msgid "invalid 'x' limits"
msgstr "limiti di 'x' non validi"

#: plot3d.c:1114
msgid "invalid 'y' limits"
msgstr "limiti di 'y' non validi"

#: plot3d.c:1116
msgid "invalid 'z' limits"
msgstr "limiti di 'z' non validi"

#: plot3d.c:1137
msgid "'xlab' must be a character vector of length 1"
msgstr "'xlab' dev'essere un vettore di caratteri di lunghezza 1"

#: plot3d.c:1139
msgid "'ylab' must be a character vector of length 1"
msgstr "'ylab' dev'essere un vettore di caratteri di lunghezza 1"

#: plot3d.c:1141
msgid "'zlab' must be a character vector of length 1"
msgstr "'zlab' dev'essere un vettore di caratteri di lunghezza 1"

#: plot3d.c:1161
msgid "invalid viewing parameters"
msgstr "visualizzazione parametri non valida"

#: plot3d.c:1179 plot3d.c:1183
#, c-format
msgid "invalid '%s' specification"
msgstr "specificazione di '%s' non valida"

#: plot3d.c:1529
#, c-format
msgid "contour(): circular/long seglist -- set %s > %d?"
msgstr "contour(): circular/long seglist -- impostare %s > %d?"

#: plot3d.c:1939
msgid "missing 'x' values"
msgstr "valore 'x' mancante"

#: plot3d.c:1941
msgid "increasing 'x' values expected"
msgstr "necessari valori di 'x' crescenti"

#: plot3d.c:1946
msgid "missing 'y' values"
msgstr "valore 'y' mancante"

#: plot3d.c:1948
msgid "increasing 'y' values expected"
msgstr "necessari valori di 'y' crescenti"

#: plot3d.c:1953
msgid "invalid NA contour values"
msgstr "valori di contorno NA non validi"

#: plot3d.c:1965
msgid "all z values are equal"
msgstr "tutti i valori di z sono uguali"

#: plot3d.c:1967
msgid "all z values are NA"
msgstr "tutti i valori di z sono NA"

#: stem.c:150
#, c-format
msgid "long vector '%s' is not supported"
msgstr "il vettore long '%s' non è supportato"
