# 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: grid 4.1.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2021-11-06 17:17+0100\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"

#: gpar.c:523
msgid "updateGContext must only be called after initGContext"
msgstr "updateGContext dev'essere unicamente chiamato dopo initGContext"

#: grid.c:199
#, fuzzy
msgid "Turning clipping on or off within a (clipping) path is no honoured"
msgstr "On/off del clipping all'interno di un clipping path non onorato"

#: grid.c:241
msgid "cannot clip to rotated viewport"
msgstr "non è possibile tagliare su una viewport ruotata"

#: grid.c:455
#, fuzzy
msgid "Clipping paths within a (clipping) path are not honoured"
msgstr "Clipping path interno ad altri non onorato"

#: grid.c:474
#, fuzzy
msgid "Masks within a (clipping) path are not honoured"
msgstr "Maschere interne a un clipping path non onorate"

#: grid.c:916 grid.c:921 grid.c:1040 grid.c:1045
msgid "cannot pop the top-level viewport ('grid' and 'graphics' output mixed?)"
msgstr "non è possibile mostrare la view-port di livello più alto (output di 'grid' e 'graphics' mischiato?)"

#: grid.c:1246
msgid "attempt to plot on null device"
msgstr "tentativo di scrivere sul dispositivo null"

#: grid.c:1702
msgid "there is no layout defined"
msgstr "non c'è alcun layout definito"

#: grid.c:1922
msgid "polygon edge not found (zero-width or zero-height?)"
msgstr "bordo poligonale non trovato (larghezza o altezza zero?)"

#: grid.c:1931
msgid "polygon edge not found"
msgstr "bordo poligonale non trovato"

#: grid.c:2085
msgid "require at least two points to draw arrow"
msgstr "richiedono almeno due punti per disegnare la freccia"

#: grid.c:2408
msgid "non-finite control point in Xspline"
msgstr "punto di controllo non finito in Xspline"

#: grid.c:3333
msgid "non-finite x or y in graphics path"
msgstr "x o y non finiti nel percorso grafico"

#: grid.c:3383
msgid "Empty raster"
msgstr "Raster vuoto"

#: grid.c:3869
msgid "invalid plotting symbol"
msgstr "simbolo di plotting non valido"

#: grid.c:3963
msgid "unable to clip to rotated rectangle"
msgstr "non è possibile tagliare su un rettangolo ruotato"

#: layout.c:600
msgid "invalid 'layout.pos.row'"
msgstr "'layout.pos.row' non valido"

#: layout.c:604
msgid "invalid 'layout.pos.col'"
msgstr "'layout.pos.col' non valido"

#: matrix.c:50
msgid "singular transformation matrix"
msgstr "matrice di trasformazione singolare"

#: state.c:192
msgid "unable to store 'grid' state.  Too many devices open?"
msgstr "non è possibile memorizzare lo stato di 'grid'. Troppi dispositivi aperti?"

#: unit.c:65
msgid "Cannot create unit scalar from 0-length unit vector"
msgstr "Non è possibile creare un'unità scalare da un vettore unità di lunghezza zero"

#: unit.c:799 unit.c:1298
msgid "invalid unit or unit not yet implemented"
msgstr "unità non valida o non ancora implementata"

#: unit.c:1355 unit.c:1386
msgid "Viewport has zero dimension(s)"
msgstr "La viewport ha zero dimensioni"

#: unit.c:1418 unit.c:1433 unit.c:1448 unit.c:1463
msgid "Unsupported unit conversion"
msgstr "Conversione unit non supportata"

#: unit.c:1555
msgid "Invalid unit"
msgstr "unit non valida"

#: unit.c:1570
msgid "'units' must be character"
msgstr "'units' dev'essere di tipo character"

#: unit.c:1573
msgid "'units' must be of length > 0"
msgstr "'units' dev'essere di lunghezza > 0"

#: unit.c:1584
msgid "data must be either NULL, have length 1, or match the length of the final unit vector"
msgstr "i dati devono essere NULL, avere lunghezza 1 o corrispondere alla lunghezza del vettore dell'unità finale"

#: unit.c:1596
msgid "no string supplied for 'strwidth/height' unit"
msgstr "nessuna stringa passata per unità 'strwidth/height'"

#: unit.c:1600
msgid "no 'grob' supplied for 'grobwidth/height' unit"
msgstr "nessun 'grob' passato per unità 'grobwidth/height'"

#: unit.c:1618
msgid "'gPath' must have depth 1 in 'grobwidth/height' units"
msgstr "'gPath' deve avere profondità 1 nelle unità 'grobwidth/height'"

#: unit.c:1623
msgid "non-NULL value supplied for plain unit"
msgstr "valore non-NULL passato per unità normale"

#: unit.c:1676 unit.c:1710 unit.c:1759
msgid "old version of unit class is no longer allowed"
msgstr "la vecchia versione della classe unità non è più ammessa"

#: unit.c:1682
msgid "object is not coercible to a unit"
msgstr "l'oggetto non è convertibile in una unità"

#: unit.c:1708
msgid "object is not a unit"
msgstr "l'oggetto non è un'unità"

#: unit.c:1840
msgid "units can only be multiplied with numerics and integers"
msgstr "le unità possono unicamente essere moltiplicate con numerici e interi"

#: viewport.c:56
msgid "Mask is not logical value ('none' or 'inherit')"
msgstr "Mask non è un valore logico ('none' o 'inherit')"

#: viewport.c:330
msgid "non-finite location and/or size for viewport"
msgstr "posizione e/o dimensione della viewport non finita"

#~ msgid "unimplemented unit function"
#~ msgstr "funzione unit non implementata"
