# English translations for R package.
# Copyright (C) 2005 The R Foundation
# This file is distributed under the same license as the R package.
# Prof Brian Ripley <ripley@stats.ox.ac.uk>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: R 2.1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-24 10:53-0700\n"
"PO-Revision-Date: 2005-02-22 16:55+0000\n"
"Last-Translator: Prof Brian Ripley <ripley@stats.ox.ac.uk>\n"
"Language-Team: English\n"
"Language: en_GB\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: axis_scales.c:37 axis_scales.c:38 axis_scales.c:56
#, c-format
msgid "'%s' must be numeric of length %d"
msgstr ""

#: colors.c:69
#, fuzzy, c-format
msgid "color intensity %s, not in [0,1]"
msgstr "colour intensity %g, not in [0,1]"

#: colors.c:71
#, c-format
msgid "color intensity %g, not in [0,1]"
msgstr "colour intensity %g, not in [0,1]"

#: colors.c:78
#, fuzzy, c-format
msgid "color intensity %s, not in 0:255"
msgstr "colour intensity %d, not in 0:255"

#: colors.c:80
#, c-format
msgid "color intensity %d, not in 0:255"
msgstr "colour intensity %d, not in 0:255"

#: colors.c:87
#, fuzzy, c-format
msgid "alpha level %s, not in [0,1]"
msgstr "invalid grey level, must be in [0,1]"

#: colors.c:89
#, c-format
msgid "alpha level %g, not in [0,1]"
msgstr ""

#: colors.c:96
#, fuzzy, c-format
msgid "alpha level %s, not in 0:255"
msgstr "colour intensity %d, not in 0:255"

#: colors.c:98
#, c-format
msgid "alpha level %d, not in 0:255"
msgstr ""

#: colors.c:113
msgid "inputs must be finite"
msgstr ""

#: colors.c:128
msgid "bad hsv to rgb color conversion"
msgstr ""

#: colors.c:220 colors.c:234
msgid "invalid hsv color"
msgstr "invalid hsv colour"

#: colors.c:346 colors.c:366
msgid "invalid hcl color"
msgstr "invalid hcl colour"

#: colors.c:398
msgid "invalid value of 'maxColorValue'"
msgstr ""

#: colors.c:426
msgid "invalid 'names' vector"
msgstr ""

#: colors.c:485 colors.c:494
msgid "invalid gray level, must be in [0,1]."
msgstr "invalid grey level, must be in [0,1]"

#: colors.c:550
#, fuzzy, c-format
msgid "invalid '%s' value"
msgstr "invalid hsv colour"

#: colors.c:1337
msgid "invalid hex digit in 'color' or 'lty'"
msgstr ""

#: colors.c:1347 colors.c:1357
msgid "invalid RGB specification"
msgstr ""

#: colors.c:1390
#, fuzzy, c-format
msgid "invalid color name '%s'"
msgstr "invalid hsv colour"

#: colors.c:1440 colors.c:1449
#, c-format
msgid "invalid color specification \"%s\""
msgstr ""

#: colors.c:1477
msgid "supplied color is neither numeric nor character"
msgstr ""

#: colors.c:1481
#, c-format
msgid "numerical color values must be >= 0, found %d"
msgstr ""

#: colors.c:1492
#, fuzzy
msgid "invalid argument type"
msgstr "invalid hcl colour"

#: colors.c:1503
msgid "unknown palette (need >= 2 colors)"
msgstr ""

#: colors.c:1507 colors.c:1529
#, c-format
msgid "maximum number of colors is %d"
msgstr ""

#: devPS.c:562
#, c-format
msgid "afm file '%s' could not be opened"
msgstr ""

#: devPS.c:630
msgid "unknown AFM entity encountered"
msgstr ""

#: devPS.c:742 devPS.c:745 devPS.c:4452 devPS.c:7965 devPicTeX.c:465
#: devPicTeX.c:467
#, c-format
msgid "invalid string in '%s'"
msgstr ""

#: devPS.c:776
#, c-format
msgid "font width unknown for character 0x%x"
msgstr ""

#: devPS.c:834
#, c-format
msgid "unknown encoding '%s' in 'PostScriptMetricInfo'"
msgstr ""

#: devPS.c:850 devPS.c:861
#, c-format
msgid "font metrics unknown for Unicode character U+%04x"
msgstr ""

#: devPS.c:869
#, c-format
msgid "font metrics unknown for character 0x%x"
msgstr ""

#: devPS.c:883
#, c-format
msgid ""
"invalid character (%04x) sent to 'PostScriptCIDMetricInfo' in a single-byte "
"locale"
msgstr ""

#: devPS.c:891
msgid ""
"invalid character sent to 'PostScriptCIDMetricInfo' in a single-byte locale"
msgstr ""

#: devPS.c:996
msgid "failed to allocate CID font info"
msgstr ""

#: devPS.c:1012
msgid "failed to allocate Type 1 font info"
msgstr ""

#: devPS.c:1032
msgid "failed to allocate encoding info"
msgstr ""

#: devPS.c:1050
msgid "failed to allocate CID font family"
msgstr ""

#: devPS.c:1063
msgid "failed to allocate Type 1 font family"
msgstr ""

#: devPS.c:1102 devPS.c:1113
msgid "failed to allocate font list"
msgstr ""

#: devPS.c:1164
msgid "failed to allocated encoding list"
msgstr ""

#: devPS.c:1312
msgid "truncated string which was too long for copy"
msgstr ""

#: devPS.c:1352
#, c-format
msgid "failed to load encoding file '%s'"
msgstr ""

#: devPS.c:1445 devPS.c:1478
msgid "invalid font name or more than one font name"
msgstr ""

#: devPS.c:1599 devPS.c:1634
#, c-format
msgid "font family '%s' not found in PostScript font database"
msgstr ""

#: devPS.c:1718 devPS.c:1800 devPS.c:1827
#, c-format
msgid "font encoding for family '%s' not found in font database"
msgstr ""

#: devPS.c:1745 devPS.c:1772
#, c-format
msgid "font CMap for family '%s' not found in font database"
msgstr ""

#: devPS.c:1967 devPS.c:2047 devPS.c:2115
#, c-format
msgid "cannot load afm file '%s'"
msgstr ""

#: devPS.c:2403
msgid "corrupt loaded encodings;  encoding not recorded"
msgstr ""

#: devPS.c:2414
msgid "failed to record device encoding"
msgstr ""

#: devPS.c:2585
msgid "object '.ps.prolog' is not a character vector"
msgstr ""

#: devPS.c:2660 devPS.c:6459 devWindows.c:801
#, fuzzy
msgid "invalid line end"
msgstr "invalid hcl colour"

#: devPS.c:2679 devPS.c:6478 devWindows.c:814
#, fuzzy
msgid "invalid line join"
msgstr "invalid hcl colour"

#: devPS.c:2687
#, fuzzy
msgid "invalid line mitre"
msgstr "invalid hcl colour"

#: devPS.c:2896 devPS.c:3802 devPS.c:4250 devPS.c:4277 devPS.c:5290
#: devPS.c:7815 devPS.c:7860
#, c-format
msgid "attempt to use invalid font %d replaced by font 1"
msgstr ""

#: devPS.c:3118 devPS.c:4752 devPS.c:5871
#, c-format
msgid "filename too long in %s()"
msgstr ""

#: devPS.c:3124 devPS.c:4758 devPS.c:5877
#, c-format
msgid "memory allocation problem in %s()"
msgstr ""

#: devPS.c:3142 devPS.c:5941
#, c-format
msgid "encoding path is too long in %s()"
msgstr ""

#: devPS.c:3156 devPS.c:4798
#, c-format
msgid "failed to load encoding file in %s()"
msgstr ""

#: devPS.c:3201 devPS.c:3264 devPS.c:6000 devPS.c:6056 devPS.c:7695
msgid "invalid font type"
msgstr ""

#: devPS.c:3225
msgid "failed to initialise default PostScript font"
msgstr ""

#: devPS.c:3291
msgid "failed to initialise additional PostScript fonts"
msgstr ""

#: devPS.c:3307
msgid "invalid foreground/background color (postscript)"
msgstr "invalid foreground/background colour (postscript)"

#: devPS.c:3312
msgid "'command' is too long"
msgstr ""

#: devPS.c:3317
msgid "'postscript(print.it=TRUE)' used with an empty 'print' command"
msgstr ""

#: devPS.c:3368
#, c-format
msgid "invalid page type '%s' (postscript)"
msgstr ""

#: devPS.c:3482 devPS.c:4602 devWindows.c:2350
msgid ""
"semi-transparency is not supported on this device: reported only once per "
"page"
msgstr ""

#: devPS.c:3593 devPS.c:3604
#, c-format
msgid "cannot open 'postscript' pipe to '%s'"
msgstr ""

#: devPS.c:3615 devPS.c:5008 devPS.c:5021 devPS.c:7114 qdPDF.c:98
#, c-format
msgid "cannot open file '%s'"
msgstr ""

#: devPS.c:3743 devPS.c:3758
#, c-format
msgid ""
"error from postscript() in running:\n"
"    %s"
msgstr ""

#: devPS.c:3790
#, c-format
msgid "CID family '%s' not included in postscript() device"
msgstr ""

#: devPS.c:3808 devPS.c:3819 devPS.c:4257 devPS.c:4287 devPS.c:4392
#, c-format
msgid "family '%s' not included in postscript() device"
msgstr ""

#: devPS.c:4332
#, c-format
msgid "unknown encoding '%s' in 'mbcsToSbcs'"
msgstr ""

#: devPS.c:4342
#, c-format
msgid "conversion failure on '%s' in 'mbcsToSbcs': dot substituted for <%02x>"
msgstr ""

#: devPS.c:4420
#, c-format
msgid "failed open converter to encoding '%s'"
msgstr ""

#: devPS.c:4438 devPS.c:5335 devPS.c:7950
#, c-format
msgid "failed in text conversion to encoding '%s'"
msgstr ""

#: devPS.c:4616
#, fuzzy
msgid "ran out of colors in xfig()"
msgstr "run out of colours in xfig()"

#: devPS.c:4645
#, c-format
msgid "unimplemented line texture %08x: using Dash-double-dotted"
msgstr ""

#: devPS.c:4711
#, c-format
msgid "unknown postscript font family '%s', using Helvetica"
msgstr ""

#: devPS.c:4783
msgid "invalid foreground/background color (xfig)"
msgstr "invalid foreground/background colour (xfig)"

#: devPS.c:4816
msgid "only Type 1 fonts supported for XFig"
msgstr ""

#: devPS.c:4829
msgid "failed to initialise default XFig font"
msgstr ""

#: devPS.c:4866
#, c-format
msgid "invalid page type '%s' (xfig)"
msgstr ""

#: devPS.c:4874
#, c-format
msgid "xfig(%s, onefile=FALSE) will only return the last plot"
msgstr ""

#: devPS.c:5000
msgid "empty file name"
msgstr ""

#: devPS.c:5067 devPS.c:5119 devPS.c:5697 devPS.c:5741 devPS.c:7174
msgid "write failed"
msgstr ""

#: devPS.c:5324
#, c-format
msgid "unable to use encoding '%s'"
msgstr ""

#: devPS.c:5585 devPS.c:5588
msgid "failed to increase 'maxRaster'"
msgstr ""

#: devPS.c:5600
msgid "unable to allocate raster image"
msgstr ""

#: devPS.c:5801
msgid "corrupt loaded encodings;  font not added"
msgstr ""

#: devPS.c:5811
msgid "failed to record device encoding; font not added"
msgstr ""

#: devPS.c:5927
msgid "increasing the PDF version to 1.2"
msgstr ""

#: devPS.c:5957
msgid "failed to load default encoding"
msgstr ""

#: devPS.c:6024
msgid "failed to initialise default PDF font"
msgstr ""

#: devPS.c:6079
msgid "failed to initialise additional PDF fonts"
msgstr ""

#: devPS.c:6092
msgid "failed to allocate rasters"
msgstr ""

#: devPS.c:6099
msgid "failed to allocate masks"
msgstr ""

#: devPS.c:6164
#, c-format
msgid "invalid paper type '%s' (pdf)"
msgstr ""

#: devPS.c:6188
msgid "invalid foreground/background color (pdf)"
msgstr "invalid foreground/background colour (pdf)"

#: devPS.c:6307
msgid "invalid 'alpha' value in PDF"
msgstr ""

#: devPS.c:6332
msgid "increasing the PDF version to 1.4"
msgstr ""

#: devPS.c:6383 devPS.c:6430
msgid "unknown 'colormodel', using 'srgb'"
msgstr ""

#: devPS.c:6624
#, fuzzy
msgid "failed to load sRGB colorspace file"
msgstr "Failed to load sRGB colourspace file"

#: devPS.c:6888
msgid "corrupt encodings in PDF device"
msgstr ""

#: devPS.c:6969
msgid "increasing the PDF version to 1.3"
msgstr ""

#: devPS.c:7098
#, c-format
msgid "cannot open 'pdf' pipe to '%s'"
msgstr ""

#: devPS.c:7104
msgid "file = \"|cmd\" implies 'onefile = TRUE'"
msgstr ""

#: devPS.c:7247
#, c-format
msgid ""
"cannot open 'pdf' file argument '%s'\n"
"  please shut down the PDF device"
msgstr ""

#: devPS.c:7266
#, c-format
msgid ""
"Cannot open temporary file '%s' for compression (reason: %s); compression "
"has been turned off for this device"
msgstr ""

#: devPS.c:7720 devPS.c:8082 devPS.c:8129
msgid "failed to find or load PDF font"
msgstr ""

#: devPS.c:7904 devPS.c:8037
msgid "failed to find or load PDF CID font"
msgstr ""

#: devPS.c:8268 devPS.c:8272 devPS.c:8433 devPS.c:8437
#, c-format
msgid "invalid 'family' parameter in %s"
msgstr ""

#: devPS.c:8290 devPS.c:8449
#, c-format
msgid "invalid 'fonts' parameter in %s"
msgstr ""

#: devPS.c:8296 devPS.c:8459 devPS.c:8462 devWindows.c:3656 devWindows.c:3660
#: devWindows.c:3668 devWindows.c:3679 devWindows.c:3685 devWindows.c:3692
#: devWindows.c:3699 devWindows.c:3703
#, c-format
msgid "invalid value of '%s'"
msgstr ""

#: devPS.c:8309 devPS.c:8376 devPS.c:8476 devPicTeX.c:736 devWindows.c:3746
#, c-format
msgid "unable to start %s() device"
msgstr ""

#: devQuartz.c:651
#, c-format
msgid "font \"%s\" could not be found for family \"%s\""
msgstr ""

#: devQuartz.c:669
msgid "font family name is too long"
msgstr ""

#: devQuartz.c:709
#, c-format
msgid "no font could be found for family \"%s\""
msgstr ""

#: devQuartz.c:1374
msgid "invalid 'file' argument"
msgstr ""

#: devQuartz.c:1401
msgid "invalid quartz() device size"
msgstr ""

#: devQuartz.c:1429
msgid "unable to create device description"
msgstr ""

#: devQuartz.c:1479
msgid ""
"unable to create quartz() device target, given type may not be supported"
msgstr ""

#: devQuartz.c:1609
msgid "Quartz device is not available on this platform"
msgstr ""

#: devWindows.c:358 devWindows.c:404 devWindows.c:475
msgid "Not enough memory to copy graphics window"
msgstr ""

#: devWindows.c:363 devWindows.c:409 devWindows.c:480
msgid "No device available to copy graphics window"
msgstr ""

#: devWindows.c:413 devWindows.c:484
#, c-format
msgid "'%%' is not allowed in file name"
msgstr ""

#: devWindows.c:621
msgid "invalid font specification"
msgstr ""

#: devWindows.c:660
msgid "font family not found in Windows font database"
msgstr ""

#: devWindows.c:1091
msgid "plot history seems corrupted"
msgstr ""

#: devWindows.c:1098
msgid "no plot history!"
msgstr ""

#: devWindows.c:1816
#, c-format
msgid "filename too long in %s() call"
msgstr ""

#: devWindows.c:1821 devWindows.c:1856 devWindows.c:1886
#, c-format
msgid "'width=%d, height=%d' are unlikely values in pixels"
msgstr ""

#: devWindows.c:1829 devWindows.c:1834 devWindows.c:1859 devWindows.c:1864
#: devWindows.c:1889 devWindows.c:1894
msgid "unable to allocate bitmap"
msgstr ""

#: devWindows.c:1840 devWindows.c:1870 devWindows.c:2190
#, c-format
msgid "unable to open file '%s' for writing"
msgstr ""

#: devWindows.c:1853
msgid "filename too long in jpeg() call"
msgstr ""

#: devWindows.c:1883
msgid "filename too long in tiff() call"
msgstr ""

#: devWindows.c:1915
msgid "filename too long in win.metafile() call"
msgstr ""

#: devWindows.c:1925
#, c-format
msgid "unable to open metafile '%s' for writing"
msgstr ""

#: devWindows.c:1927
msgid "unable to open clipboard to write metafile"
msgstr ""

#: devWindows.c:2138
msgid "Insufficient memory for resize. Killing device"
msgstr ""

#: devWindows.c:2146
msgid "Insufficient memory for resize. Disabling alpha blending"
msgstr ""

#: devWindows.c:2175
msgid "a clipboard metafile can store only one figure."
msgstr ""

#: devWindows.c:2181
#, c-format
msgid "metafile '%s' could not be created"
msgstr ""

#: devWindows.c:3121 devWindows.c:3770
msgid "R Graphics"
msgstr ""

#: devWindows.c:3135
msgid "attempt to use the locator after dev.hold()"
msgstr ""

#: devWindows.c:3166
msgid "graphics device closed during call to locator or identify"
msgstr ""

#: devWindows.c:3407
msgid "option 'windowsTimeouts' should be integer"
msgstr ""

#: devWindows.c:3428
msgid "invalid device number in 'savePlot'"
msgstr ""

#: devWindows.c:3430
msgid "invalid device in 'savePlot'"
msgstr ""

#: devWindows.c:3433
msgid "invalid filename argument in 'savePlot'"
msgstr ""

#: devWindows.c:3438
msgid "invalid type argument in 'savePlot'"
msgstr ""

#: devWindows.c:3465
msgid "unknown type in savePlot"
msgstr ""

#: devWindows.c:3510 devWindows.c:3542 devWindows.c:3570 devWindows.c:3601
#: devWindows.c:3622
msgid "processing of the plot ran out of memory"
msgstr ""

#: devWindows.c:3586
msgid "Impossible to open "
msgstr ""

#: devWindows.c:3651
msgid "invalid 'width' or 'height'"
msgstr ""

#: devices.c:51
msgid "argument must have positive length"
msgstr ""

#: devices.c:60
msgid "invalid argument"
msgstr ""

#: devices.c:89 devices.c:97 devices.c:105
msgid "NA argument is invalid"
msgstr ""

#: qdBitmap.c:79
#, c-format
msgid "QuartzBitmap_Output - unable to open file '%s'"
msgstr ""

#: qdBitmap.c:94
msgid "not a supported scheme, no image data written"
msgstr ""

#: stubs.c:104
#, c-format
msgid "invalid '%s' argument"
msgstr ""

#~ msgid "only gray colors are allowed in this color model"
#~ msgstr "only grey colours are allowed in this colour model"
