# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR The R Core Team
# This file is distributed under the same license as the R package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: R 4.2.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2021-05-03 09:56+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: class_support.c:29
msgid "calling the C routine used as an initializer for 'externalptr' objects"
msgstr ""

#: do_substitute_direct.c:41
msgid "invalid list for substitution"
msgstr ""

#: methods_list_dispatch.c:129
#, c-format
msgid "unexpected type '%s' for condition message"
msgstr ""

#: methods_list_dispatch.c:132
msgid "condition message must be length 1"
msgstr ""

#: methods_list_dispatch.c:213
msgid ""
"could not find the skeleton calls for 'methods' (package detached?): expect "
"very bad things to happen"
msgstr ""

#: methods_list_dispatch.c:279
#, c-format
msgid ""
"no \"allMethods\" slot found in object of class \"%s\" used as methods list "
"for function '%s'"
msgstr ""

#: methods_list_dispatch.c:407
#, c-format
msgid ""
"S language method selection did not return normally when called from "
"internal dispatch for function '%s'"
msgstr ""

#: methods_list_dispatch.c:409
msgid "Function name for method selection called internally"
msgstr ""

#: methods_list_dispatch.c:503
#, c-format
msgid "no generic function definition found for '%s'"
msgstr ""

#: methods_list_dispatch.c:506
#, c-format
msgid ""
"no generic function definition found for '%s' in the supplied environment"
msgstr ""

#: methods_list_dispatch.c:541
#, 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 ""

#: methods_list_dispatch.c:556
#, c-format
msgid "no direct or inherited method for function '%s' for this call"
msgstr ""

#: methods_list_dispatch.c:586 methods_list_dispatch.c:1157
msgid "invalid object (non-function) used as method"
msgstr ""

#: methods_list_dispatch.c:607
#, c-format
msgid "could not find symbol '%s' in frame of call"
msgstr ""

#: methods_list_dispatch.c:615
#, c-format
msgid ""
"invalid symbol in checking for missing argument in method dispatch: expected "
"a name, got an object of class \"%s\""
msgstr ""

#: methods_list_dispatch.c:618
msgid "use of NULL environment is defunct"
msgstr ""

#: methods_list_dispatch.c:622
#, c-format
msgid ""
"invalid environment in checking for missing argument, '%s', in methods "
"dispatch: got an object of class \"%s\""
msgstr ""

#: methods_list_dispatch.c:645
#, c-format
msgid ""
"error in evaluating the argument '%s' in selecting a method for function "
"'%s': %s"
msgstr ""

#: methods_list_dispatch.c:662
#, c-format
msgid ""
"object of class \"%s\" used as methods list for function '%s' ( no "
"'argument' slot)"
msgstr ""

#: methods_list_dispatch.c:673
#, c-format
msgid ""
"(in selecting a method for function '%s') '...' and related variables cannot "
"be used for methods dispatch"
msgstr ""

#: methods_list_dispatch.c:676
#, 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 ""

#: methods_list_dispatch.c:707
#, c-format
msgid "no matching method for function '%s' (argument '%s', with class \"%s\")"
msgstr ""

#: methods_list_dispatch.c:714
#, c-format
msgid ""
"recursive use of function '%s' in method selection, with no default method"
msgstr ""

#: methods_list_dispatch.c:739
#, c-format
msgid "error in evaluating a 'primitive' next method: %s"
msgstr ""

#: methods_list_dispatch.c:895
#, c-format
msgid "'%s' must be a single string (got a character vector of length %d)"
msgstr ""

#: methods_list_dispatch.c:899
#, c-format
msgid "'%s' must be a non-empty string; got an empty string"
msgstr ""

#: methods_list_dispatch.c:903
#, c-format
msgid "'%s' must be a single string (got an object of class \"%s\")"
msgstr ""

#: methods_list_dispatch.c:980
msgid "class should be either a character-string name or a class definition"
msgstr ""

#: methods_list_dispatch.c:1066
#, c-format
msgid "failed to get the generic for the primitive \"%s\""
msgstr ""

#: methods_list_dispatch.c:1073
#, c-format
msgid ""
"expected a generic function or a primitive for dispatch, got an object of "
"class \"%s\""
msgstr ""
