# Traditional Chinese translations for R package.
# Copyright (C) 2006 The R Foundation
# This file is distributed under the same license as the R package.
# 陈斐 <feic@avaya.com>, 2005, 07.
# Wei-Lun Chao <bluebat@member.fsf.org>, 2018.
#
msgid ""
msgstr ""
"Project-Id-Version: R 3.5.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-30 07:34-0700\n"
"PO-Revision-Date: 2018-09-16 23:38+0800\n"
"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
"Language: zh_TW\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}"
