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

#: Rmd5.c:47
msgid "argument 'files' must be character"
msgstr "l'argomento 'files' dev'essere di tipo character"

#: Rmd5.c:63
#, c-format
msgid "md5 failed on file '%ls'"
msgstr "md5 fallito sul file '%ls'"

#: Rmd5.c:65
#, c-format
msgid "md5 failed on file '%s'"
msgstr "md5 fallito sul file '%s'"

#: getfmts.c:61
#, c-format
msgid "only %d arguments are allowed"
msgstr "sono ammessi solo %d argomenti"

#: getfmts.c:66
msgid "'fmt' is not a character vector"
msgstr "'fmt' non è un vettore di caratteri"

#: getfmts.c:69
msgid "'fmt' must be length 1"
msgstr "'fmt' dev'essere di lunghezza 1"

#: getfmts.c:75
#, c-format
msgid "'fmt' length exceeds maximal format length %d"
msgstr "la lunghezza di 'fmt' eccede la lunghezza massima del formato %d"

#: getfmts.c:96
#, c-format
msgid "unrecognised format specification '%s'"
msgstr "specificazione formato '%s' non riconosciuto"

#: getfmts.c:136
msgid "at most one asterisk '*' is supported in each conversion specification"
msgstr "almeno un asterisco '*' è supportato in ogni specificazione di conversione"

#: gramLatex.c:2390 gramRd.c:3976
#, c-format
msgid "unable to allocate buffer for long string at line %d"
msgstr "non è possibile allocare un buffer stringhe long alla linea %d"

#: gramLatex.c:2627 gramRd.c:4522 gramRd.c:4528
#, c-format
msgid "invalid '%s' value"
msgstr "valore '%s' non valido"

#: gramRd.c:2547 gramRd.c:2550
#, c-format
msgid "bad markup (extra space?) at %s:%d:%d"
msgstr "markup errato (troppi spazi?) in %s:%d:%d"

#: gramRd.c:3125
#, c-format
msgid "Macro '%s' previously defined."
msgstr "Macro '%s' precedentemente definita."

#: gramRd.c:3135
#, c-format
msgid "At most 4 arguments are allowed for user defined macros."
msgstr "Almeno 4 argomenti sono ammessi per le macro definite dall'utente."

#: gramRd.c:3177
#, c-format
msgid "No macro definition for '%s'."
msgstr "Nessuna definizione macro per '%s'."

#: gramRd.c:3239
#, c-format
msgid "Not enough arguments passed to user macro '%s'"
msgstr "Gli argomenti passati alla macro utente '%s' non sono abbastanza"

#: gramRd.c:3379 gramRd.c:3383
#, c-format
msgid "newline within quoted string at %s:%d"
msgstr "newline dentro una stringa virgolettata in %s: %d"

#: gramRd.c:3402
#, c-format
msgid "unable to allocate buffer for long macro at line %d"
msgstr "non è possibile allocare il buffer per macro long in %d"

#: gramRd.c:3432
msgid "macros nested too deeply: infinite recursion?"
msgstr "macro annidate troppo profondamente: ricorsione infinita?"

#: gramRd.c:3838
#, c-format
msgid "Unable to find macro %s"
msgstr "Non è possibile trovare la macro %s"

#: gramRd.c:4036
#, c-format
msgid "Unexpected end of input (in %c quoted string opened at %s:%d:%d)"
msgstr "Fine inattesa dell'input (nella %c stringa virgolettata aperta in %s:%d:%d)"

#: gramRd.c:4535
msgid "cannot open the connection"
msgstr "non è possibile aprire la connessione"

#: gramRd.c:4542
msgid "cannot read from this connection"
msgstr "non è possibile leggere da questa connessione"

#: gramRd.c:4550
msgid "invalid Rd file"
msgstr "file Rd non valido"

#: gramRd.c:4569
msgid "'deparseRd' only supports deparsing character elements"
msgstr "'deparseRd' supporta unicamente il deparsing di elementi carattere"

#: gramRd.c:4572
msgid "bad state"
msgstr "stato errato"

#: gramRd.c:4585
#, c-format
msgid "bad text mode %d in 'deparseRd'"
msgstr "modalità testo errata %d in 'deparseRd'"

#: http.c:32
msgid "invalid bind address specification"
msgstr "specificazione indirizzo bind non valida"

#: install.c:98
msgid "path too long"
msgstr ""

#: install.c:115 install.c:134 install.c:136
#, c-format
msgid "invalid '%s' argument"
msgstr "argomento '%s' non valido"

#: install.c:165
msgid "write error during file append"
msgstr "errore di scrittura durante file append"

#: pdscan.c:67
msgid "too many items"
msgstr "troppi elementi"

#: pdscan.c:115
msgid "non-character argument"
msgstr "argomento non-character"

#: signals.c:42
msgid "pskill() is not supported on this platform"
msgstr "pskill() non è supportata su questa piattaforma"

#: signals.c:140
msgid "psnice() is not supported on this platform"
msgstr "psnice() non è supportata su questa piattaforma"

#: text.c:69
msgid "invalid argument type"
msgstr "tipo argomento non valido"

#: text.c:225 text.c:247
msgid "out of memory"
msgstr "memoria esausta"
