# Lithuanian translations for grid package.
# Copyright (C) 2020 THE grid'S COPYRIGHT HOLDER
# This file is distributed under the same license as the grid package.
# <r.zakauskas@gmail.com;gabriele.dauksaite@gmail.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: grid 4.1.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2021-11-06 17:17+0100\n"
"PO-Revision-Date: 2020-12-08 14:24+0200\n"
"Last-Translator: r.zakauskas@gmail.com;gabriele.dauksaite@gmail.com\n"
"Language-Team: Lithuanian\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.4.1\n"

#: gpar.c:523
msgid "updateGContext must only be called after initGContext"
msgstr "updateGContext turi būti iškviestas tik po initGContext"

#: grid.c:199
#, fuzzy
msgid "Turning clipping on or off within a (clipping) path is no honoured"
msgstr "Atskyrimo įjungimas arba išjungimas atskirties linijoje nėra leidžiamas"

#: grid.c:241
msgid "cannot clip to rotated viewport"
msgstr "negalima apkirpti iki pasuktos peržiūros srities"

#: grid.c:455
#, fuzzy
msgid "Clipping paths within a (clipping) path are not honoured"
msgstr "Atskirties linijos atskirties linijoje nėra leidžiamos"

#: grid.c:474
#, fuzzy
msgid "Masks within a (clipping) path are not honoured"
msgstr "Šablonai atskirties linijoje nėra leidžiami"

#: grid.c:916 grid.c:921 grid.c:1040 grid.c:1045
msgid "cannot pop the top-level viewport ('grid' and 'graphics' output mixed?)"
msgstr "negalima atverti aukščiausio lygio peržiūros srities (sumaišyta 'grid' ir 'graphics' išvestis?)"

#: grid.c:1246
msgid "attempt to plot on null device"
msgstr "bandymas braižyti tuščiame įrenginyje"

#: grid.c:1702
msgid "there is no layout defined"
msgstr "nėra numatyto maketo"

#: grid.c:1922
msgid "polygon edge not found (zero-width or zero-height?)"
msgstr "daugiakampio kraštinė nerasta (plotis arba aukštis yra 0?)"

#: grid.c:1931
msgid "polygon edge not found"
msgstr "daugiakampio kraštinė nerasta"

#: grid.c:2085
msgid "require at least two points to draw arrow"
msgstr "piešiant rodyklę turi būti bent du taškai"

#: grid.c:2408
msgid "non-finite control point in Xspline"
msgstr "nebaigtinis Xspline valdymo taškas"

#: grid.c:3333
msgid "non-finite x or y in graphics path"
msgstr "grafiko adrese x arba y nėra baigtinis"

#: grid.c:3383
msgid "Empty raster"
msgstr "Tuščias rastras"

#: grid.c:3869
msgid "invalid plotting symbol"
msgstr "negalimas braižymo simbolis"

#: grid.c:3963
msgid "unable to clip to rotated rectangle"
msgstr "negalima apkirpti iki pasukto stačiakampio"

#: layout.c:600
msgid "invalid 'layout.pos.row'"
msgstr "neteisingas 'layout.pos.row'"

#: layout.c:604
msgid "invalid 'layout.pos.col'"
msgstr "neteisingas 'layout.pos.col'"

#: matrix.c:50
msgid "singular transformation matrix"
msgstr "ypatingoji transformacijos matrica"

#: state.c:192
msgid "unable to store 'grid' state.  Too many devices open?"
msgstr "negalima saugoti 'grid' būsenos. Atverta per daug įrenginių?"

#: unit.c:65
msgid "Cannot create unit scalar from 0-length unit vector"
msgstr "Negalima sukurti vieneto skaliaro iš nulio ilgio vieneto vektoriaus"

#: unit.c:799 unit.c:1298
msgid "invalid unit or unit not yet implemented"
msgstr "negalimas vienetas arba vienetas dar neįdiegtas"

#: unit.c:1355 unit.c:1386
msgid "Viewport has zero dimension(s)"
msgstr "Peržiūros sritis turi nulinę dimensiją"

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

#: unit.c:1555
msgid "Invalid unit"
msgstr "Neteisingas vienetas"

#: unit.c:1570
msgid "'units' must be character"
msgstr "'units' turi būti simbolis"

#: unit.c:1573
msgid "'units' must be of length > 0"
msgstr "'units' ilgis turi būti >0"

#: unit.c:1584
msgid "data must be either NULL, have length 1, or match the length of the final unit vector"
msgstr "duomenys turi būti NULL (ilgis 1) arba atitikti galutinio vieneto vektoriaus ilgį"

#: unit.c:1596
msgid "no string supplied for 'strwidth/height' unit"
msgstr "nėra eilutės, kuri pateikiama 'strwidth/height' vienetui"

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

#: unit.c:1618
msgid "'gPath' must have depth 1 in 'grobwidth/height' units"
msgstr "'gPath' gylis turi būti 1 'grobwidth/height' vienetais"

#: unit.c:1623
msgid "non-NULL value supplied for plain unit"
msgstr "ne NULL reikšmė pateikta paprastam vienetui"

#: unit.c:1676 unit.c:1710 unit.c:1759
msgid "old version of unit class is no longer allowed"
msgstr "sena vieneto klasės versija nebeleidžiama"

#: unit.c:1682
msgid "object is not coercible to a unit"
msgstr "objektas nėra verčiamas į vienetą"

#: unit.c:1708
msgid "object is not a unit"
msgstr "objektas nėra vienetas"

#: unit.c:1840
msgid "units can only be multiplied with numerics and integers"
msgstr "vienetus galima dauginti tik iš skaitinių ir sveikųjų skaičių"

#: viewport.c:56
msgid "Mask is not logical value ('none' or 'inherit')"
msgstr "Šablonas nėra loginė reikšmė ('none' arba 'inherit')"

#: viewport.c:330
msgid "non-finite location and/or size for viewport"
msgstr "nebaigtinė peržiūros srities vieta ir/arba dydis"
