# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the utils package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: utils 3.6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-29 07:06-0700\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"

#: io.c:329 io.c:333 io.c:343 io.c:574 io.c:774 io.c:827 io.c:840 io.c:844
#: io.c:850 io.c:851 io.c:1097 io.c:1098 io.c:1100 io.c:1101 io.c:1102
#: io.c:1103 io.c:1104 io.c:1105 stubs.c:47 stubs.c:67 windows/dialogs.c:169
#: windows/dialogs.c:194 windows/dialogs.c:197 windows/dialogs.c:241
#: windows/dialogs.c:278 windows/dialogs.c:289 windows/dialogs.c:313
#: windows/dialogs.c:321 windows/util.c:117 windows/widgets.c:78
#: windows/widgets.c:81 windows/widgets.c:86
#, c-format
msgid "invalid '%s' argument"
msgstr ""

#: io.c:352 io.c:837
msgid "invalid quote symbol set"
msgstr ""

#: io.c:364 io.c:860 io.c:1085
msgid "cannot open the connection"
msgstr ""

#: io.c:367 io.c:371
msgid "cannot read from this connection"
msgstr ""

#: io.c:418 io.c:436
#, c-format
msgid "quoted string on line %d terminated by EOF"
msgstr ""

#: io.c:570
msgid "the first argument must be of mode character"
msgstr ""

#: io.c:600
#, c-format
msgid "invalid 'numerals' string: \"%s\""
msgstr ""

#: io.c:776
#, c-format
msgid "Selection: "
msgstr ""

#: io.c:870 io.c:886
msgid "cannot allocate buffer in 'readTableHead'"
msgstr ""

#: io.c:900
msgid "\\ followed by EOF"
msgstr ""

#: io.c:953 io.c:958
#, c-format
msgid "incomplete final line found by readTableHeader on '%s'"
msgstr ""

#: io.c:1016
msgid "index out of range"
msgstr ""

#: io.c:1053
#, c-format
msgid "Problem closing connection:  %s"
msgstr ""

#: io.c:1055
msgid "Problem closing connection"
msgstr ""

#: io.c:1078
msgid "'file' is not a connection"
msgstr ""

#: io.c:1081
msgid "cannot write to this connection"
msgstr ""

#: io.c:1111
msgid "'dec' must be a single character"
msgstr ""

#: io.c:1137
#, c-format
msgid "corrupt data frame -- length of column %d does not not match nrows"
msgstr ""

#: io.c:1168
#, c-format
msgid "column %s claims to be a factor but does not have numeric codes"
msgstr ""

#: io.c:1186
msgid "corrupt matrix -- dims not not match length"
msgstr ""

#: stubs.c:56
msgid "'savehistory' can only be used in Rgui and Rterm"
msgstr ""

#: stubs.c:73
msgid "'loadhistory' can only be used in Rgui and Rterm"
msgstr ""

#: stubs.c:85
msgid "invalid timestamp"
msgstr ""

#: stubs.c:151 stubs.c:159
msgid "X11 dataentry cannot be loaded"
msgstr ""

#: stubs.c:155 stubs.c:184 stubs.c:190
msgid "X11 is not available"
msgstr ""

#: stubs.c:248 stubs.c:251
#, c-format
msgid "invalid '%s' specification"
msgstr ""

#: utils.c:85
msgid "'hostname' must be a character vector of length 1"
msgstr ""

#: utils.c:91
#, c-format
msgid "nsl() was unable to resolve host '%s'"
msgstr ""

#: utils.c:98
msgid "unknown format returned by 'gethostbyname'"
msgstr ""

#: utils.c:107
msgid "nsl() is not supported on this platform"
msgstr ""

#: windows/dialogs.c:181
msgid "unknown type"
msgstr ""

#: windows/dialogs.c:213 windows/dialogs.c:237 windows/dialogs.c:275
#: windows/dialogs.c:310
msgid "menu functions can only be used in the GUI"
msgstr ""

#: windows/dialogs.c:245
#, c-format
msgid "unable to retrieve items for %s (%s)"
msgstr ""

#: windows/dialogs.c:283
#, c-format
msgid "unable to add menu (%s)"
msgstr ""

#: windows/dialogs.c:295
#, c-format
msgid "unable to add menu item (%s)"
msgstr ""

#: windows/dialogs.c:318
msgid "menu does not exist"
msgstr ""

#: windows/dialogs.c:325
#, c-format
msgid "unable to delete menu item (%s)"
msgstr ""

#: windows/registry.c:73 windows/registry.c:248 windows/registry.c:251
#: windows/registry.c:254
#, c-format
msgid "invalid '%s' value"
msgstr ""

#: windows/registry.c:266
#, c-format
msgid "Registry key '%ls' not found"
msgstr ""

#: windows/util.c:42
msgid "unsupported version of Windows"
msgstr ""

#: windows/util.c:281
msgid "argument must be a character vector or a raw vector"
msgstr ""

#: windows/util.c:318
msgid "unable to open the clipboard"
msgstr ""

#: windows/util.c:323
msgid "unable to write to the clipboard"
msgstr ""

#: windows/util.c:402
msgid "'title' must be a character string"
msgstr ""

#: windows/util.c:411
msgid "'text' must be a character string"
msgstr ""

#: windows/util.c:450
#, c-format
msgid "'%s' must be length 1"
msgstr ""

#: windows/util.c:563
#, c-format
msgid "'%s' must be a list"
msgstr ""

#: windows/util.c:567
#, c-format
msgid "'%s' element %d is not a window handle"
msgstr ""

#: windows/widgets.c:108
msgid "Select one or more"
msgstr ""

#: windows/widgets.c:108
msgid "Select one"
msgstr ""

#: windows/widgets.c:182 windows/widgets.c:250
msgid "'default' must be a character string"
msgstr ""

#: windows/widgets.c:184 windows/widgets.c:252
msgid "'default' is overlong"
msgstr ""

#: windows/widgets.c:188 windows/widgets.c:256
msgid "'caption' must be a character string"
msgstr ""

#: windows/widgets.c:190
msgid "'multi' must be a logical value"
msgstr ""

#: windows/widgets.c:192
msgid "'filterindex' must be an integer value"
msgstr ""
