# Chinese translations for R package
# Copyright (C) 2006 The R Foundation
# This file is distributed under the same license as the PACKAGE package.
# 陈斐 <feic@normipaiva.com>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: R 2.4.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-29 07:06-0700\n"
"PO-Revision-Date: 2005-02-04 08:37+0000\n"
"Last-Translator: 陈斐 <feic@normipaiva.com>\n"
"Language-Team: Chinese\n"
"Language: zh_CN\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"

#: Rmd5.c:36
msgid "argument 'files' must be character"
msgstr "参数'files'必需是字符"

#: Rmd5.c:50
#, c-format
msgid "md5 failed on file '%s'"
msgstr "用于'%s'文件的md5运行失败"

#: getfmts.c:61
#, c-format
msgid "only %d arguments are allowed"
msgstr "只允许%d个参数"

#: getfmts.c:66
msgid "'fmt' is not a character vector"
msgstr "'fmt'不是字符向量"

#: getfmts.c:69
msgid "'fmt' must be length 1"
msgstr "'fmt'的长度必需为一"

#: getfmts.c:75
#, c-format
msgid "'fmt' length exceeds maximal format length %d"
msgstr "'fmt'的长度超过了最大格式长度%d"

#: getfmts.c:96
#, c-format
msgid "unrecognised format specification '%s'"
msgstr "没有这样的格式设定'%s'"

#: getfmts.c:136
msgid "at most one asterisk '*' is supported in each conversion specification"
msgstr "每一个转换设置最多只支持一个星'*'"

#: gramLatex.c:2376 gramRd.c:3898
#, c-format
msgid "unable to allocate buffer for long string at line %d"
msgstr "无法为%d行的长字串分配缓冲区"

#: gramLatex.c:2613 gramRd.c:4387 gramRd.c:4393
#, c-format
msgid "invalid '%s' value"
msgstr "'%s'值不对"

#: gramRd.c:2531 gramRd.c:2534
#, c-format
msgid "bad markup (extra space?) at %s:%d:%d"
msgstr "坏标记（额外的空间？）在%s：%d：%d"

#: gramRd.c:3113
#, c-format
msgid "Macro '%s' previously defined."
msgstr "'%s'宏之前已经定义了"

#: gramRd.c:3123
#, c-format
msgid "At most 4 arguments are allowed for user defined macros."
msgstr "用户定义的宏最多只允许四个参数"

#: gramRd.c:3157
#, c-format
msgid "No macro definition for '%s'."
msgstr "'%s'宏的定义没有。"

#: gramRd.c:3313 gramRd.c:3317
#, c-format
msgid "newline within quoted string at %s:%d"
msgstr "出现了换行内引号的字符串在%s:%d"

#: gramRd.c:3336
#, c-format
msgid "unable to allocate buffer for long macro at line %d"
msgstr "无法为在第%d行的长宏分配缓冲区"

#: gramRd.c:3366
msgid "macros nested too deeply: infinite recursion?"
msgstr "宏嵌套过深：无限递归？"

#: gramRd.c:3760
#, c-format
msgid "Unable to find macro %s"
msgstr "找不到宏%s "

#: gramRd.c:3958
#, c-format
msgid "Unexpected end of input (in %c quoted string opened at %s:%d:%d)"
msgstr "意外结束输入（在%c 引号的字符串于%s:%d:%d）"

#: gramRd.c:4400
msgid "cannot open the connection"
msgstr "打不开链接"

#: gramRd.c:4407
msgid "cannot read from this connection"
msgstr "无法从这个链接读取"

#: gramRd.c:4415
msgid "invalid Rd file"
msgstr "Rd文件不对"

#: gramRd.c:4434
msgid "'deparseRd' only supports deparsing character elements"
msgstr "'deparseRd'只支持反解析字符元素"

#: gramRd.c:4437
msgid "bad state"
msgstr "状态不好"

#: gramRd.c:4450
#, c-format
msgid "bad text mode %d in 'deparseRd'"
msgstr "'deparseRd'里的文本模式%d不对"

#: http.c:32
msgid "invalid bind address specification"
msgstr "绑定地址规范不对"

#: install.c:112 install.c:131 install.c:133
#, c-format
msgid "invalid '%s' argument"
msgstr "'%s'参数不对"

#: install.c:162
msgid "write error during file append"
msgstr "文件追加写入时出了错"

#: signals.c:42
msgid "pskill() is not supported on this platform"
msgstr "这个平台不支持pskill()"

#: signals.c:140
msgid "psnice() is not supported on this platform"
msgstr "这个平台不支持psnice()"

#: text.c:67
msgid "invalid argument type"
msgstr "参数种类不对"

#: text.c:225 text.c:247
msgid "out of memory"
msgstr "内存不足"
