# 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-2020.
#
msgid ""
msgstr ""
"Project-Id-Version: methods 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"
"X-Generator: Poedit 2.2.1\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"

#: class_support.c:29
msgid "calling the C routine used as an initializer for 'externalptr' objects"
msgstr ""
"chiamata la routine C utilizzata come inizializzatore per oggetti "
"'externalptr'"

#: do_substitute_direct.c:41
msgid "invalid list for substitution"
msgstr "lista di sostituzione non valida"

#: methods_list_dispatch.c:151
msgid ""
"could not find the skeleton calls for 'methods' (package detached?): expect "
"very bad things to happen"
msgstr ""
"non è possibile trovare le chiamate skeleton per 'methods' (pacchetto "
"scollegato?): sono attese cose molto brutte"

#: methods_list_dispatch.c:217
#, c-format
msgid ""
"no \"allMethods\" slot found in object of class \"%s\" used as methods list "
"for function '%s'"
msgstr ""
"nessun slot \"allMethods\" trovato nell'oggetto di classe \"%s\" utilizzata "
"come lista metodi per la funzione '%s'"

#: methods_list_dispatch.c:445
#, c-format
msgid "no generic function definition found for '%s'"
msgstr "nessuna definizione di funzione generica trovata per '%s'"

#: methods_list_dispatch.c:448
#, c-format
msgid ""
"no generic function definition found for '%s' in the supplied environment"
msgstr ""
"nessuna definizione di funzione generica trovata per '%s' nell'ambiente "
"passato"

#: methods_list_dispatch.c:483
#, c-format
msgid ""
"invalid generic function object for method selection for function '%s': "
"expected a function or a primitive, got an object of class \"%s\""
msgstr ""
"oggetto funzione generica non valido per la selezione del metodo per la "
"funzione '%s': attesa una funzione o una primitiva, ottenuto un oggetto di "
"classe \"%s\""

#: methods_list_dispatch.c:498
#, c-format
msgid "no direct or inherited method for function '%s' for this call"
msgstr ""
"nessun metodo diretto o collegato per la funzione '%s' per questa chiamata"

#: methods_list_dispatch.c:528 methods_list_dispatch.c:1077
msgid "invalid object (non-function) used as method"
msgstr "oggetto (non-funzione) non valido utilizzato come metodo"

#: methods_list_dispatch.c:549
#, c-format
msgid "could not find symbol '%s' in frame of call"
msgstr "non trovo il simbolo '%s' nel frame di chiamata"

#: methods_list_dispatch.c:557
#, c-format
msgid ""
"invalid symbol in checking for missing argument in method dispatch: expected "
"a name, got an object of class \"%s\""
msgstr ""
"simbolo non valido nel controllo per argomenti mancanti nel dispatch del "
"metodo: atteso un nome, ricevuto un oggetto di classe \"%s\""

#: methods_list_dispatch.c:560
msgid "use of NULL environment is defunct"
msgstr "l'utilizzo dell'ambiente NULL è rimosso"

#: methods_list_dispatch.c:564
#, c-format
msgid ""
"invalid environment in checking for missing argument, '%s', in methods "
"dispatch: got an object of class \"%s\""
msgstr ""
"ambiente non valido nel controllo per argomenti mancanti, '%s', nel dispatch "
"dei metodi: ricevuto un oggetto di classe \"%s\""

#: methods_list_dispatch.c:590
#, c-format
msgid ""
"object of class \"%s\" used as methods list for function '%s' ( no "
"'argument' slot)"
msgstr ""
"oggetto di classe \"%s\" utilizzato come lista metodi per la funzione "
"'%s' (nessun slot 'argument')"

#: methods_list_dispatch.c:601
#, c-format
msgid ""
"(in selecting a method for function '%s') '...' and related variables cannot "
"be used for methods dispatch"
msgstr ""
"(nella selezione di un metodo per la funzione '%s') '...' e relative "
"variabili non possono essere utilizzate per il dispatch dei metodi"

#: methods_list_dispatch.c:604
#, c-format
msgid ""
"(in selecting a method for function '%s') the 'environment' argument for "
"dispatch must be an R environment; got an object of class \"%s\""
msgstr ""
"(nella selezione di un metodo per la funzione '%s') l'argomento "
"'environment' per il dispatch dev'essere un ambiente R; ricevuto un oggetto "
"di classe \"%s\""

#: methods_list_dispatch.c:618 methods_list_dispatch.c:630
#: methods_list_dispatch.c:1023
#, c-format
msgid ""
"error in evaluating the argument '%s' in selecting a method for function "
"'%s': %s"
msgstr ""
"errore durante la valutazione dell'argomento '%s' nella selezione di un "
"metodo per la funzione '%s': %s"

#: methods_list_dispatch.c:638
#, c-format
msgid "no matching method for function '%s' (argument '%s', with class \"%s\")"
msgstr ""
"nessun metodo corrispondente per la funzione '%s' (argomento '%s', con "
"classe \"%s\")"

#: methods_list_dispatch.c:645
#, c-format
msgid ""
"recursive use of function '%s' in method selection, with no default method"
msgstr ""
"utilizzo ricorsivo della funzione '%s' nella selezione del metodo, senza "
"alcun metodo predefinito"

#: methods_list_dispatch.c:716
#, c-format
msgid "error in evaluating a 'primitive' next method: %s"
msgstr "errore nella valutazione di un metodo 'primitive' successivo: %s"

#: methods_list_dispatch.c:816
#, c-format
msgid "'%s' must be a single string (got a character vector of length %d)"
msgstr ""
"'%s' dev'essere una stringa singola (ricevuto un vettore di caratteri di "
"lunghezza %d)"

#: methods_list_dispatch.c:820
#, c-format
msgid "'%s' must be a non-empty string; got an empty string"
msgstr "'%s' dev'essere una stringa non vuota; ricevuta una stringa vuota"

#: methods_list_dispatch.c:824
#, c-format
msgid "'%s' must be a single string (got an object of class \"%s\")"
msgstr ""
"'%s' dev'essere una stringa singola (ricevuto un oggetto di classe \"%s\")"

#: methods_list_dispatch.c:901
msgid "class should be either a character-string name or a class definition"
msgstr ""
"la classe dovrebbe essere o un nome stringa di caratteri o una definizione "
"di classe"

#: methods_list_dispatch.c:981
#, c-format
msgid "failed to get the generic for the primitive \"%s\""
msgstr "ricezione fallita del generic per la primitiva \"%s\""

#: methods_list_dispatch.c:988
#, c-format
msgid ""
"expected a generic function or a primitive for dispatch, got an object of "
"class \"%s\""
msgstr ""
"attesa una funzione generica o una primitiva per dispatch, ricevuto un "
"oggetto di classe \"%s\""
