# Korean translation for R splines package
# Copyright (C) 1995-2018 The R Core Team
#
# This file is distributed under the same license as the R splines 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\n"
"PO-Revision-Date: 2018-04-09 12:10-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"

msgid "must have at least 'ord' knots"
msgstr "반드시 적어도 'ord' 놋트를 가져야 합니다"

msgid "length of 'derivs' is larger than length of 'x'"
msgstr "'derivs'의 길이가 'x'의 길이보다 깁니다."

msgid "empty 'derivs'"
msgstr ""

msgid "'ord' must be positive integer, at most the number of knots"
msgstr "'ord'는 반드시 양의 정수이며 최대 놋트의 수만큼입니다"

msgid "need at least %s (=%d) knots"
msgstr "적어도 %s (=%d) 놋트를 필요로 합니다"

msgid "the 'x' data must be in the range %g to %g unless you set '%s'"
msgstr ""
"만약 '%3$s'를 정하지 않았다면, 'x' 데이터는 반드시 %1$g에서 %2$g 범위내에 "
"있어야 합니다"

msgid "%s needs package 'Matrix' correctly installed"
msgstr "%s는 올바르게 설치된 패키지 'Matrix'를 필요로 합니다"

msgid "values of 'x' must be distinct"
msgstr "'x'의 값들은 반드시 고유하게 구별되어야 합니다"

msgid "must have at least 'ord'=%d points"
msgstr ""

msgid "'formula' must be of the form \"y ~ x\""
msgstr "'formula'는 반드시 \"y ~ x\"와 같은 형식을 가지고 있어야 합니다"

msgid "lengths of 'x' and 'y' must match"
msgstr "'x'와 'y'의 길이는 반드시 일치해야 합니다"

msgid "values of 'x' must be strictly increasing"
msgstr "'x'의 값들은 반드시 감소없이 증가해야만 합니다"

msgid "'ord' must be >= 2"
msgstr "'ord'는 반드시 2 보다 크거나 같아야 합니다"

msgid "the range of 'x' values exceeds one period"
msgstr "'x' 값들에 대한 범위는 한 주기를 초과해야 합니다"

msgid "knot positions must be non-decreasing"
msgstr "놋트 위치들은 반드시 감소하지 말아야 합니다"

msgid "lengths of 'x' and 'y' must be the same"
msgstr "'x'와 'y'의 길이는 반드시 같아야 합니다"

msgid "'deriv' must be between 0 and %d"
msgstr "'deriv'는 반드시 0과 %d 사이에 있어야 합니다"

msgid "knot positions must be strictly increasing"
msgstr "놋트 위치들은 반드시 감소없이 증가해야만 합니다"

msgid "currently implemented only for cubic splines"
msgstr ""

msgid "spline must be monotone"
msgstr "spline은 반드시 monotone해야 합니다"

msgid "'degree' must be integer >= 1"
msgstr "'degree'는 반드시 1 보다 크거나 같은 정수이어야 합니다"

msgid "'df' was too small; have used %d"
msgstr "'df'가 너무 작아 %d의 값이 사용되고 있습니다"

msgid "some 'x' values beyond boundary knots may cause ill-conditioned bases"
msgstr ""
"boundary knots를 넘어서는 일부 'x'값들은 올바르지 ill-conditioned bases를 "
"유발할 수 있습니다"
