# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR The R Foundation
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgid ""
msgstr ""
"Project-Id-Version: R 3.0.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2021-11-06 17:17+0100\n"
"PO-Revision-Date: 2011-11-28 23:18+0200\n"
"Last-Translator: Joe <joedalton2@yahoo.dk>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: da\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: Pootle 2.1.6\n"

#: gpar.c:523
msgid "updateGContext must only be called after initGContext"
msgstr ""

#: grid.c:199
msgid "Turning clipping on or off within a (clipping) path is no honoured"
msgstr ""

#: grid.c:241
#, fuzzy
msgid "cannot clip to rotated viewport"
msgstr "Kan ikke klippe til roteret viewport"

#: grid.c:455
msgid "Clipping paths within a (clipping) path are not honoured"
msgstr ""

#: grid.c:474
msgid "Masks within a (clipping) path are not honoured"
msgstr ""

#: grid.c:916 grid.c:921 grid.c:1040 grid.c:1045
#, fuzzy
msgid "cannot pop the top-level viewport ('grid' and 'graphics' output mixed?)"
msgstr "Kan ikke pop topniveau-viewporten (gitter og grafiks uddata blandet?)"

#: grid.c:1246
msgid "attempt to plot on null device"
msgstr "forsøg på at plotte på null-enhed"

#: grid.c:1702
#, fuzzy
msgid "there is no layout defined"
msgstr "Der er ingen layout defineret"

#: grid.c:1922
#, fuzzy
msgid "polygon edge not found (zero-width or zero-height?)"
msgstr "Polygonkant ikke fundet (nulbredde eller nulhøjde?)"

#: grid.c:1931
#, fuzzy
msgid "polygon edge not found"
msgstr "Polygonkant ikke fundet"

#: grid.c:2085
#, fuzzy
msgid "require at least two points to draw arrow"
msgstr "Kræver mindst to punkter at tegne pil"

#: grid.c:2408
#, fuzzy
msgid "non-finite control point in Xspline"
msgstr "Ikkebegrænsende kontrolpunkter i Xspline"

#: grid.c:3333
msgid "non-finite x or y in graphics path"
msgstr "ikkebegrænsende x eller y i grafiksti"

#: grid.c:3383
msgid "Empty raster"
msgstr ""

#: grid.c:3869
msgid "invalid plotting symbol"
msgstr "ugyldigt plotsymbol"

#: grid.c:3963
#, fuzzy
msgid "unable to clip to rotated rectangle"
msgstr "Kan ikke klippe til roteret rektangel"

#: layout.c:600
#, fuzzy
msgid "invalid 'layout.pos.row'"
msgstr "ugyldig layout.pos.row"

#: layout.c:604
#, fuzzy
msgid "invalid 'layout.pos.col'"
msgstr "ugyldig layout.pos.col"

#: matrix.c:50
msgid "singular transformation matrix"
msgstr "entalstransformationsmatrix"

#: state.c:192
#, fuzzy
msgid "unable to store 'grid' state.  Too many devices open?"
msgstr "Kan ikke lagre gittertilstand.  For mange enheder åbne?"

#: unit.c:65
msgid "Cannot create unit scalar from 0-length unit vector"
msgstr ""

#: unit.c:799 unit.c:1298
#, fuzzy
msgid "invalid unit or unit not yet implemented"
msgstr "Illegal enhed eller enhed er endnu ikke implementeret"

#: unit.c:1355 unit.c:1386
msgid "Viewport has zero dimension(s)"
msgstr ""

#: unit.c:1418 unit.c:1433 unit.c:1448 unit.c:1463
msgid "Unsupported unit conversion"
msgstr ""

#: unit.c:1555
msgid "Invalid unit"
msgstr "Ugyldig enhed"

#: unit.c:1570
#, fuzzy
msgid "'units' must be character"
msgstr "Enheder skal være tegn"

#: unit.c:1573
#, fuzzy
msgid "'units' must be of length > 0"
msgstr "Enheder skal have længde > 0"

#: unit.c:1584
msgid "data must be either NULL, have length 1, or match the length of the final unit vector"
msgstr ""

#: unit.c:1596
msgid "no string supplied for 'strwidth/height' unit"
msgstr ""

#: unit.c:1600
msgid "no 'grob' supplied for 'grobwidth/height' unit"
msgstr ""

#: unit.c:1618
msgid "'gPath' must have depth 1 in 'grobwidth/height' units"
msgstr ""

#: unit.c:1623
msgid "non-NULL value supplied for plain unit"
msgstr ""

#: unit.c:1676 unit.c:1710 unit.c:1759
msgid "old version of unit class is no longer allowed"
msgstr ""

#: unit.c:1682
msgid "object is not coercible to a unit"
msgstr ""

#: unit.c:1708
msgid "object is not a unit"
msgstr ""

#: unit.c:1840
msgid "units can only be multiplied with numerics and integers"
msgstr ""

#: viewport.c:56
msgid "Mask is not logical value ('none' or 'inherit')"
msgstr ""

#: viewport.c:330
#, fuzzy
msgid "non-finite location and/or size for viewport"
msgstr "Ikkebegrænsende placeirng og/eller størrelse for viewport"

#, fuzzy
#~ msgid "unimplemented unit function"
#~ msgstr "Ikke implementeret enhedsfunktion"
