# Italian translations for R package.
# Copyright (C) 2005 The R Foundation
# This file is distributed under the same license as the R package.
# stefano iacus <>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: R 2.1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-29 07:06-0700\n"
"PO-Revision-Date: 2005-04-17 16:57+0200\n"
"Last-Translator: stefano iacus <>\n"
"Language-Team: Italian <it@li.org>\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"

#: Rmd5.c:36
msgid "argument 'files' must be character"
msgstr "argomento 'files' deve essere di tipo chararcter"

#: Rmd5.c:50
#, 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 ""

#: getfmts.c:66
msgid "'fmt' is not a character vector"
msgstr ""

#: getfmts.c:69
msgid "'fmt' must be length 1"
msgstr ""

#: getfmts.c:75
#, c-format
msgid "'fmt' length exceeds maximal format length %d"
msgstr ""

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

#: getfmts.c:136
msgid "at most one asterisk '*' is supported in each conversion specification"
msgstr ""

#: gramLatex.c:2376 gramRd.c:3898
#, c-format
msgid "unable to allocate buffer for long string at line %d"
msgstr ""

#: gramLatex.c:2613 gramRd.c:4387 gramRd.c:4393
#, fuzzy, c-format
msgid "invalid '%s' value"
msgstr "tipo argomento non valido"

#: gramRd.c:2531 gramRd.c:2534
#, c-format
msgid "bad markup (extra space?) at %s:%d:%d"
msgstr ""

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

#: gramRd.c:3123
#, c-format
msgid "At most 4 arguments are allowed for user defined macros."
msgstr ""

#: gramRd.c:3157
#, c-format
msgid "No macro definition for '%s'."
msgstr ""

#: gramRd.c:3313 gramRd.c:3317
#, c-format
msgid "newline within quoted string at %s:%d"
msgstr ""

#: gramRd.c:3336
#, c-format
msgid "unable to allocate buffer for long macro at line %d"
msgstr ""

#: gramRd.c:3366
msgid "macros nested too deeply: infinite recursion?"
msgstr ""

#: gramRd.c:3760
#, c-format
msgid "Unable to find macro %s"
msgstr ""

#: gramRd.c:3958
#, c-format
msgid "Unexpected end of input (in %c quoted string opened at %s:%d:%d)"
msgstr ""

#: gramRd.c:4400
msgid "cannot open the connection"
msgstr ""

#: gramRd.c:4407
msgid "cannot read from this connection"
msgstr ""

#: gramRd.c:4415
msgid "invalid Rd file"
msgstr ""

#: gramRd.c:4434
msgid "'deparseRd' only supports deparsing character elements"
msgstr ""

#: gramRd.c:4437
msgid "bad state"
msgstr ""

#: gramRd.c:4450
#, c-format
msgid "bad text mode %d in 'deparseRd'"
msgstr ""

#: http.c:32
msgid "invalid bind address specification"
msgstr ""

#: install.c:112 install.c:131 install.c:133
#, fuzzy, c-format
msgid "invalid '%s' argument"
msgstr "tipo argomento non valido"

#: install.c:162
msgid "write error during file append"
msgstr ""

#: signals.c:42
msgid "pskill() is not supported on this platform"
msgstr ""

#: signals.c:140
msgid "psnice() is not supported on this platform"
msgstr ""

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

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