# German translation of 
# src/library/graphics/po/grid.pot
# Copyright (C) 2009-2014 The R Foundation
# This file is distributed under the same license as the R package.
# Detlef Steuer <steuer@hsu-hh.de>, 2009-2014.
msgid ""
msgstr ""
"Project-Id-Version: R-3.2.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-24 10:53-0700\n"
"PO-Revision-Date: 2015-03-20 16:09+0100\n"
"Last-Translator: Detlef Steuer <steuer@hsu-hh.de>\n"
"Language-Team:  <R-core@r-project.org>\n"
"Language: de\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 ? 0 : 1;\n"

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

#: grid.c:212
msgid "cannot clip to rotated viewport"
msgstr "kann rotierten Viewport nicht beschneiden"

#: grid.c:697 grid.c:702 grid.c:792 grid.c:797
msgid "cannot pop the top-level viewport ('grid' and 'graphics' output mixed?)"
msgstr ""
"kann den obersten viewport nicht vom Stack werfen ('grid' und 'graphics' "
"Ausgaben gemischt?)"

#: grid.c:979
msgid "attempt to plot on null device"
msgstr "Versuch in das Null-Device zu zeichnen"

#: grid.c:1400
msgid "there is no layout defined"
msgstr "kein Layout definiert"

#: grid.c:1620
msgid "polygon edge not found (zero-width or zero-height?)"
msgstr "Polygonkante nicht gefunden (Breite oder Länge 0?)"

#: grid.c:1629
msgid "polygon edge not found"
msgstr "Polygonkante nicht gefunden"

#: grid.c:1783
msgid "require at least two points to draw arrow"
msgstr "mindestens zwei Punkte nötig, um einen Pfeil zu zeichnen"

#: grid.c:2102
msgid "non-finite control point in Xspline"
msgstr "nicht-endlicher Kontrollpunkt in Xspline"

#: grid.c:2982
msgid "non-finite x or y in graphics path"
msgstr "unendliches x oder y im Grafikpfad"

#: grid.c:3026
msgid "Empty raster"
msgstr "Leeres Raster"

#: grid.c:3509
msgid "invalid plotting symbol"
msgstr "unzulässiges Plotsymbol"

#: grid.c:3597
msgid "unable to clip to rotated rectangle"
msgstr "kann nicht auf das rotierte Rechteck zurechtschneiden"

#: layout.c:600
msgid "invalid 'layout.pos.row'"
msgstr "unzulässige 'layout.pos.row'"

#: layout.c:604
msgid "invalid 'layout.pos.col'"
msgstr "unzulässige 'layout.pos.col'"

#: matrix.c:50
msgid "singular transformation matrix"
msgstr "singuläre Transformationsmatrix"

#: state.c:170
msgid "unable to store 'grid' state.  Too many devices open?"
msgstr "kann den Status von 'grid' nicht speichern. Zu viele geöffnete Geräte?"

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

#: unit.c:789 unit.c:1288
msgid "invalid unit or unit not yet implemented"
msgstr "unzulässige Einheit oder Einheit noch nicht implementiert"

#: unit.c:1345 unit.c:1376
msgid "Viewport has zero dimension(s)"
msgstr "Viewport hat keine Dimension(en)"

#: unit.c:1408 unit.c:1423 unit.c:1438 unit.c:1453
msgid "Unsupported unit conversion"
msgstr "Nichtunterstützte Einheitenumwandlung"

#: unit.c:1545
msgid "Invalid unit"
msgstr "Ungültige Einheit"

#: unit.c:1560
msgid "'units' must be character"
msgstr "'units' müssen Zeichenketten sein"

#: unit.c:1563
msgid "'units' must be of length > 0"
msgstr "'units' müssen positive Länge haben"

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

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

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

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

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

#: unit.c:1666 unit.c:1700 unit.c:1749
msgid "old version of unit class is no longer allowed"
msgstr ""

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

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

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

#: viewport.c:315
msgid "non-finite location and/or size for viewport"
msgstr "nicht-endlicher Ort oder/und Größe des Viewports"

#~ msgid "unimplemented unit function"
#~ msgstr "nicht implementierte Einheitenfunktion"
