# Korean translation for R grid package
# Copyright (C) 1995-2018 The R Core Team
#
# This file is distributed under the same license as the R grid package.
# Maintained by Chel Hee Lee <gnustats@gmail.com>, 2008-2018.
#
msgid ""
msgstr ""
"Project-Id-Version: R-3.5.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2018-03-29 07:06-0700\n"
"PO-Revision-Date: 2018-04-09 12:06-0600\n"
"Last-Translator: Chel Hee Lee <gnustats@gmail.com>\n"
"Language-Team: \n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: grid.c:212
msgid "cannot clip to rotated viewport"
msgstr "회전된 뷰포트에 고정 할 수 없습니다"

#: 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 ""
"최상단 뷰포트를 띄울 수 없습니다 ('grid'와 'graphics' 출력을 혼용하고 있나"
"요?)"

#: grid.c:977
msgid "attempt to plot on null device"
msgstr "null 장치위에 플랏을 시도합니다"

#: grid.c:1309
msgid "there is no layout defined"
msgstr "정의된 레이아웃이 없습니다"

#: grid.c:1529
msgid "polygon edge not found (zero-width or zero-height?)"
msgstr "다각형의 끝점을 찾을 수 없습니다 (혹시 너비 또는 높이가 0인가요?)"

#: grid.c:1538
msgid "polygon edge not found"
msgstr "다각형의 끝점을 찾을 수 없습니다"

#: grid.c:1692
msgid "require at least two points to draw arrow"
msgstr "화살표를 그리기 위해서는 최소한 두개의 점이 필요합니다"

#: grid.c:2008
msgid "non-finite control point in Xspline"
msgstr "Xspline에서 유한하지 않은 컨트롤 포인트입니다"

#: grid.c:2873
msgid "non-finite x or y in graphics path"
msgstr "그래픽 패스에 유한하지 않은 x 또는 y가 있습니다"

#: grid.c:2914
msgid "Empty raster"
msgstr "비어있는 래스터입니다"

#: grid.c:3368
msgid "invalid plotting symbol"
msgstr "유효하지 않은 플랏팅 기호입니다"

#: grid.c:3454
msgid "unable to clip to rotated rectangle"
msgstr "회전된 사각형을 고정할 수 없습니다"

#: layout.c:589
msgid "invalid 'layout.pos.row'"
msgstr "유효하지 않은 'layout.pos.row'입니다"

#: layout.c:593
msgid "invalid 'layout.pos.col'"
msgstr "유효하지 않은 'layout.pos.col'입니다"

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

#: state.c:170
msgid "unable to store 'grid' state.  Too many devices open?"
msgstr "'grid'상태를 저장할 수 없는데 혹시 너무 많은 장치가 열려있나요?"

#: unit.c:260 unit.c:410 unit.c:1210 unit.c:1290 unit.c:1370 unit.c:1450
msgid "unimplemented unit function"
msgstr "구현되지 않은 유닛함수입니다"

#: unit.c:893 unit.c:1645
msgid "invalid unit or unit not yet implemented"
msgstr "유효하지 않은 유닛이거나 아직 구현되지 않은 유닛입니다"

#: unit.c:1702 unit.c:1733
msgid "Viewport has zero dimension(s)"
msgstr "뷰어포트가 영인 차원(들)을 가지고 있습니다"

#: unit.c:1765 unit.c:1780 unit.c:1795 unit.c:1810
msgid "Unsupported unit conversion"
msgstr "지원되지 않는 단위변환입니다"

#: unit.c:1898
msgid "Invalid unit"
msgstr "유효하지 않은 유닛입니다"

#: unit.c:1914
msgid "'units' must be character"
msgstr "'units'은 반드시 문자이어야 합니다"

#: unit.c:1917
msgid "'units' must be of length > 0"
msgstr "유닛은 반드시 길이가 0 보다 커야 합니다"

#: viewport.c:315
msgid "non-finite location and/or size for viewport"
msgstr "뷰포트의 위치 그리고/또는 크기가 유한하지 않습니다"
