# 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: \n"
"POT-Creation-Date: 2020-03-24 10:53-0700\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"

#: splines.c:154
msgid "'ord' must be a positive integer"
msgstr "'ord'는 반드시 양의 정수이어야 합니다."

#: splines.c:222
#, c-format
msgid "derivs = %d >= ord = %d, but should be in {0,..,ord-1}"
msgstr "derivs = %d >= ord = %d 이지만, {0,..,ord-1} 내에 있어야 합니다."

#: splines.c:225
#, c-format
msgid "derivs[%d] = %d >= ord = %d, but should be in {0,..,ord-1}"
msgstr "derivs[%d] = %d >= ord = %d 이지만, {0,..,ord-1} 내에 있어야 합니다."
