# 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>, 2006.
#
msgid ""
msgstr ""
"Project-Id-Version: R 2.4.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2020-03-24 10:13\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"

msgid "invalid 'at' location in 'axis'"
msgstr "'axis'里的'at'位置不对"

msgid "invalid to specify axis labels when 'at' is NULL"
msgstr "'at'是NULL的话不能设定轴标签"

msgid "'labels' and 'at' locations must have same length"
msgstr "'labels'和'at'的位置量必需有相同的长度"

msgid "logical 'label' supplied of length 0"
msgstr "提供的逻辑'label'的长度为零"

msgid "end points must not be identical"
msgstr "端点两头的值是不能相等的"

msgid "'x1', 'y1', 'x2', and 'y2' must be units"
msgstr "'x1', 'y1' ,'x2'和'y2'必需是单元"

msgid "'shape' must be between -1 and 1"
msgstr "'shape'的值必需在-1和1之间"

msgid "'squareShape' must be between -1 and 1"
msgstr "'squareShape'的值必需在-1和1之间"

msgid "'arrow' must be an arrow object or NULL"
msgstr "'arrow' 要么是箭头对象，要么是NULL值"

msgid "how did we get here?"
msgstr "怎么搞的？"

msgid "must start new page if showing leaves separately"
msgstr "如果分别显示树叶的话需要重新开一页"

msgid "invalid 'edit' information"
msgstr "'edit'信息不对"

msgid "'gEditList' can only contain 'gEdit' objects"
msgstr "'gEditList'只能包含'gEdit'对象"

msgid "invalid 'frame'"
msgstr "'frame'的值不对"

msgid "invalid 'grob'"
msgstr "'grob'的值不对"

msgid "invalid 'row' and/or 'col' (no such cell in frame layout)"
msgstr "'row'或者是'col'的值不对(没有在框布局里有这样的单元格)"

msgid "'col' can only be a range of existing columns"
msgstr "'col'的值只能在已存在列的范围之内"

msgid "invalid 'col' specification"
msgstr "'col'设定得不对"

msgid "'row' can only be a range of existing rows"
msgstr "'row'的值只能在已存在行的范围之内"

msgid "invalid 'row' specification"
msgstr "'row'设定得不对"

msgid ""
"cannot specify more than one of 'side=[\"left\", \"right\"]', 'col', 'col."
"before', or 'col.after'"
msgstr ""
"只能设定'side=[\"left\", \"right\"]', 'col', 'col.before'或'col.after'中的一"
"个"

msgid ""
"must specify exactly one of 'side=[\"top\", \"bottom\"]', 'row', 'row."
"before', or 'row.after'"
msgstr ""
"只能设定'side=[\"top\", \"bottom\"]', 'row', 'row.before'或'row.after'中的一"
"个"

msgid "invalid 'n'"
msgstr "'n'的值不对"

msgid "invalid 'f'"
msgstr "'f'的值不对"

msgid "'gpar' element '%s' must not be length 0"
msgstr "'gpar'成分'%s'的长度不能为零"

msgid "mixture of missing and non-missing values for %s"
msgstr ""

msgid "'gamma' 'gpar' element is defunct"
msgstr "'gamma' gpar已经不再有用"

msgid "invalid 'linemitre' value"
msgstr "'linemitre'的值不对"

msgid "invalid 'alpha' value"
msgstr "'alpha'的值不对"

msgid "must specify only one of 'font' and 'fontface'"
msgstr "'font'和'fontface'两个量只能设定一个"

#, fuzzy
msgid "invalid fontface"
msgstr "字体面设定不对"

msgid "argument must be a 'gpar' object"
msgstr "参数必需是'gpar'对象"

msgid "must specify only valid 'gpar' names"
msgstr "只能用正确的'gpar'名字"

msgid "invalid display list element"
msgstr "显示列成分不对"

#, fuzzy
msgid ""
"one or more grobs overwritten (grab WILL not be faithful; try 'wrap.grobs = "
"TRUE')"
msgstr "grob被覆盖(grab不会保持原状态；用'wrap=TRUE'试一试)"

msgid "viewport overwritten (grab MAY not be faithful)"
msgstr "视口被覆盖(grab有可能不保持原状态)"

msgid ""
"grob pushed viewports and did not pop/up them (grab MAY not be faithful)"
msgstr "grob推了视口，但没有将它弹起来(grab有可能不保持原状态)"

msgid "only valid to push viewports"
msgstr "只能推视口"

msgid "must specify at least one viewport"
msgstr "至少必需设定一个视口"

#, fuzzy
msgid "Down viewport failed to record on display list"
msgstr "显示列里所插入的对象不对"

#, fuzzy
msgid "Down viewport incorrectly recorded on display list"
msgstr "显示列里所插入的对象不对"

msgid "must pop at least one viewport"
msgstr "至少需要弹起一个视口"

msgid "must navigate up at least one viewport"
msgstr "至少需要往上驾一个视口"

msgid "Invalid number of generations"
msgstr ""

msgid "invalid object inserted on the display list"
msgstr "显示列里所插入的对象不对"

msgid "invalid modification of the display list"
msgstr "显示单修改得不对"

msgid "'expr' must return a grob or gList"
msgstr "'expr'必需回归grob或gList"

msgid "invalid 'grob' argument"
msgstr "'grob'参数值不对"

msgid "invalid 'vp' slot"
msgstr "'vp'槽的值不对"

msgid "invalid 'gp' slot"
msgstr "'gp'槽的值不对"

msgid "invalid 'grob' class"
msgstr "'grob'的类别不对"

msgid "a 'grob' path must contain at least one 'grob' name"
msgstr "'grob'的路径至少要包含一个'grob'名字"

msgid "unable to coerce to \"gList\""
msgstr "无法转换成\"gList\""

msgid "only 'grobs' allowed in \"gList\""
msgstr "\"gList\"只许用'grobs'"

msgid "invalid element to add to \"gList\""
msgstr "\"gList\"加的成分不对"

msgid "can only set 'children' for a \"gTree\""
msgstr "\"gTree\"只能给'children'设定值"

msgid "'children' must be a \"gList\""
msgstr "'children'必需是\"gList\"这种对象"

msgid "it is only valid to get 'children' from a \"gTree\""
msgstr "只能从\"gTree\"那儿得到'children'的值"

msgid "invalid \"gTree\" class"
msgstr "\"gTree\"的类别不对"

msgid "'allDevices' not yet implemented"
msgstr "'allDevices'还没有被实现"

msgid "invalid 'gPath'"
msgstr "'gPath'的值不对"

msgid "invalid 'grep' value"
msgstr "'grep'的值不对"

msgid "it is only valid to get a child from a \"gTree\""
msgstr "只能从\"gTree\"那儿取得子树"

msgid "'gPath' does not specify a valid child"
msgstr "'gPath'没有设定正确的子值"

msgid "it is only valid to set a child of a \"gTree\""
msgstr "只能给\"gTree\"设子值"

msgid "it is only valid to set a 'grob' as child of a \"gTree\""
msgstr "\"gTree\"的子值只能设成'grob'"

msgid "New 'grob' name (%s) does not match 'gPath' (%s)"
msgstr "新的'grob'名(%s) 与原来的'gPath'(%s) 名不相配"

msgid "it is only valid to add a 'grob' to a \"gTree\""
msgstr "对\"gTree\"只能加'grob'这样的值数"

msgid "it is only valid to add a child to a \"gTree\""
msgstr "给\"gTree\"只能加子值"

msgid "'gPath' (%s) not found"
msgstr "不存在'gPath'(%s)"

msgid "it is only valid to remove a child from a \"gTree\""
msgstr "只能从\"gTree\"那儿删除子值"

msgid "it is only valid to edit a child of a \"gTree\""
msgstr "只能对'gTree'的子值进行修改"

msgid "it is invalid to directly edit the 'children' or 'childrenOrder' slot"
msgstr "不能直接对'children'或'childrenOrder'这样的槽进行修改"

msgid "invalid 'result'"
msgstr "'result'的值不对"

msgid "the new 'grob' must have the same name as the old 'grob'"
msgstr "新的'grob'值必需等于旧的'grob'值"

msgid "slot '%s' not found"
msgstr "没有'%s'这样的槽"

msgid "gPath (%s) not found"
msgstr "gPath(%s)不存在"

msgid "grob '%s' not found"
msgstr "不存在grob'%s'这个值"

#, fuzzy
msgid "Invalid force target"
msgstr "'order'的值不对"

#, fuzzy
msgid "Invalid revert target"
msgstr "'print'参数值不对"

msgid "can only reorder 'children' for a \"gTree\""
msgstr "\"gTree\"只能给'children'设定值"

msgid "Invalid 'order'"
msgstr "'order'的值不对"

msgid "'l' must be a layout"
msgstr "'l'必需为布局"

msgid "'pch' and 'labels' not the same length"
msgstr "'pch'和'labels'的长度不一样"

msgid "'hgap' must be single unit"
msgstr "'hgap'的值必需是单元"

msgid "'vgap' must be single unit"
msgstr "'vgap'的值必需是单元"

#, fuzzy
msgid "'nrow' must be >= 1"
msgstr "'l'必需为布局"

#, fuzzy
msgid "'ncol' must be >= 1"
msgstr "'l'必需为布局"

msgid "nrow * ncol < #{legend labels}"
msgstr ""

msgid "invalid justification"
msgstr "定位不对"

msgid "invalid horizontal justification"
msgstr "水平定位不对"

msgid "invalid vertical justification"
msgstr "垂直定位不对"

msgid "'respect' must be logical or an 'nrow' by 'ncol' matrix"
msgstr "'respect'的值要么是逻辑值，要么是一个'nrow'乘'ncol'大小的矩阵"

msgid "invalid 'print' argument"
msgstr "'print'参数值不对"

msgid "invalid object in 'listing'"
msgstr "'listing'里目标对象不对"

msgid "invalid listing"
msgstr "表不对"

msgid "invalid 'listing'"
msgstr "'listing'不对"

msgid "invalid 'origin'"
msgstr "'origin'的值不对"

msgid "'length' must be a 'unit' object"
msgstr "'length'的值必需是'unit'对象"

msgid "invalid 'ends' or 'type' argument"
msgstr "'ends'或'type'参数的值不对"

msgid "'x' and 'y' must be units"
msgstr "'x'和'y'必需为单元值"

msgid "'x' and 'y' must have length 1"
msgstr "'x'和'y'的长度必需为一"

msgid "invalid 'arrow' argument"
msgstr "'arrow'参数不对"

msgid "it is invalid to specify both 'id' and 'id.lengths'"
msgstr "不能同时对'id'和'id.lengths'进行设定"

msgid "'x' and 'y' must be same length"
msgstr "'x'和'y'的长度必需相同"

msgid "'x' and 'y' and 'id' must all be same length"
msgstr "'x'，'y'和'id'的长度必需相同"

msgid "'x' and 'y' and 'id.lengths' must specify same overall length"
msgstr "'x'，'y'和'id.lengths'必需设定整体长度"

msgid "'x0', 'y0', 'x1', and 'y1' must be units"
msgstr "'x0', 'y0', 'x1'和'y1'必需为单元值"

msgid "'x' and 'y' must be units or NULL"
msgstr "'x'和'y'要么是单元值，要么是NULL"

msgid "corrupt 'arrows' object"
msgstr "'arrows'对象出了错"

#, fuzzy
msgid "'x' and 'y' and 'pathId.lengths' must specify same overall length"
msgstr "'x'，'y'和'id.lengths'必需设定整体长度"

msgid "x and y must be units"
msgstr "x和y必需为单元值"

msgid "must have exactly 4 control points"
msgstr "一定要有4个控制点"

msgid "must have exactly 4 control points per Bezier curve"
msgstr "每个Bezier曲线一定要有4个控制点"

msgid "'x', 'y', and 'r' must be units"
msgstr "'x', 'y'和'r'必需为单元值"

msgid "'x', 'y', 'width', and 'height' must be units"
msgstr "'x', 'y', 'width'和'height'必需为单元值"

msgid "invalid 'rot' value"
msgstr "'rot'的值不对"

msgid "zero-length 'pch'"
msgstr "'pch'的长度不能为零"

msgid "'x', 'y' and 'size' must be units"
msgstr "'x', 'y'和'size'必需为单元值"

msgid "'x' and 'y' must be 'unit' objects and have the same length"
msgstr "'x'和'y'必需为'unit'对象，而且它们的长度必需相同"

msgid "'x', 'y', 'width', and 'height' must all be units of length 1"
msgstr "'x', 'y', 'width'和'height'都应该是长度为一的单元值"

msgid "'x' and 'y' must all be units of length 1"
msgstr "'x'和'y'必需是长度为一的单元"

msgid "'r' must be a 'unit' object"
msgstr "''的值必需是'unit'对象"

msgid "'x', 'y', 'width', and 'height' must have length 1"
msgstr "'x', 'y', 'width'和'height'的长度都应该是为一"

msgid "'x' and 'units' must have length > 0"
msgstr "'x'和'unit'的长度必需大于零"

msgid "invalid 'axis' or 'type'"
msgstr "'axis'或'type'的值不对"

#, fuzzy
msgid "Not a unit object"
msgstr "'unit'对象不对"

msgid "'Summary' function '%s' not meaningful for units"
msgstr "'Summary'函数'%s'对这个单元没有意义"

msgid "operator '%s' not meaningful for units"
msgstr "运算符号'%s'对这个单元没有意义"

msgid "'*' or '/' cannot be used as a unary operator"
msgstr ""

msgid "only one operand may be a unit"
msgstr "只能有一个单元运算对象"

msgid "non-unit operand must be numeric"
msgstr "非单元运算对象必需为数字"

msgid "can't divide with a unit"
msgstr ""

msgid "both operands must be units"
msgstr "两个运算对象都必需为单元"

#, fuzzy
msgid "index out of bounds (\"unit\" subsetting)"
msgstr "索引值出界(取'unit'子集时)"

msgid "Cannot create zero-length unit vector (\"unit\" subsetting)"
msgstr ""

#, fuzzy
msgid "index must be of length 1"
msgstr "'x'和'y'必需是长度为一的单元"

#, fuzzy
msgid "replacement must be of length 1"
msgstr "'gpar'成分'%s'的长度不能为零"

msgid "invalid 'theta'"
msgstr "'theta'值不对"

msgid "'range' must be numeric"
msgstr "'range'必需为数字"

msgid "invalid 'gp' value"
msgstr "'gp'的值不对"

msgid "invalid 'clip' value"
msgstr "'clip'值不对"

msgid "invalid 'xscale' in viewport"
msgstr "视口里的'xscale'值不对"

msgid "invalid 'yscale' in viewport"
msgstr "视口里的'yscale'值不对"

msgid "invalid 'angle' in viewport"
msgstr "视口里的'angle'值不对"

msgid "invalid 'layout' in viewport"
msgstr "视口里的'layout'值不对"

msgid "invalid 'layout.pos.row' in viewport"
msgstr "视口里的'layout.pos.row'值不对"

msgid "invalid 'layout.pos.col' in viewport"
msgstr "视口里的'layout.pos.col'值不对"

msgid "only viewports allowed in 'vpList'"
msgstr "'vpList'里的值只能是视口"

msgid "only viewports allowed in 'vpStack'"
msgstr "'vpStack'里的值只能是视口"

msgid ""
"'parent' must be a viewport and 'children' must be a 'vpList' in 'vpTree'"
msgstr "'parent'的值必需为视口，'children'的值必需是'vpTree'里的'vpList'"

msgid "a viewport path must contain at least one viewport name"
msgstr "视口路径至少要有一个视口的名字"

msgid "must specify at least one of 'x' or 'xscale'"
msgstr "至少要设定'x'或'xscale'两个中的一个"

msgid "must specify at least one of 'y' or 'yscale'"
msgstr "至少要设定'y'或'yscale'两个中的一个"

msgid "shutting down all devices when unloading 'grid' namespace"
msgstr "卸载'grid'名字空间时关闭所有的设备"

msgid "invalid grob name"
msgid_plural "invalid grob names"
msgstr[0] "'grob'名字不对"

msgid "invalid viewport name"
msgid_plural "invalid viewport names"
msgstr[0] "视口名字不对"

#~ msgid "'x' argument must be a unit object"
#~ msgstr "'x'参数必需是单元对象"

#~ msgid "no string supplied for 'strwidth/height' unit"
#~ msgstr "'strwidth/height'单元值缺少字符串"

#~ msgid "no 'grob' supplied for 'grobwidth/height' unit"
#~ msgstr "'grobwidth/height'单元值缺少'grob'的值"

#~ msgid "'gPath' must have depth 1 in 'grobwidth/height' units"
#~ msgstr "'grobwidth/height'单元值里的'gPath'其深度必需为一"

#~ msgid "non-NULL value supplied for plain unit"
#~ msgstr "简单单元里不能有非NULL值"

#~ msgid "no arguments where at least one expected"
#~ msgstr "不能没有参数，至少需要有一个"

#~ msgid "Zero arguments where at least one expected"
#~ msgstr "不能没有参数，至少需要有一个"

#~ msgid "cannot mix signs of indices"
#~ msgstr "不能混用索引符号"

#~ msgid "index out of bounds (unit arithmetic subsetting)"
#~ msgstr "索引值出界(取单元数字子集时)"

#~ msgid "index out of bounds (unit list subsetting)"
#~ msgstr "索引值出界(取单元串子集时)"

#, fuzzy
#~ msgid "Value being assigned must be a unit"
#~ msgstr "x和y必需为单元值"

#~ msgid "it is invalid to combine 'unit' objects with other types"
#~ msgstr "不能将'unit'对象同其它类别的对象相结合"

#~ msgid "invalid element in the display list"
#~ msgstr "显示单里的成分不对"

#, fuzzy
#~ msgid "Nothing on the display list"
#~ msgstr "显示单修改得不对"

#~ msgid "the 'vp' argument is deprecated"
#~ msgstr "'vp'参数已经不再有用"

#~ msgid "grid.grob() is deprecated; please use grob() instead"
#~ msgstr "grid.grob()已经不再有用; 请用grob()"

#~ msgid "the 'grob' argument must be a 'line.to', 'lines', or 'segments' grob"
#~ msgstr "'grob'参数需要有'line.to', 'lines'或'segments'这三个grob中的一个"

#, fuzzy
#~ msgid "invalid 'ask' value"
#~ msgstr "'ask'的值不对"

#~ msgid "Cannot mix signs of indices"
#~ msgstr "不能混用索引符号"

#, fuzzy
#~ msgid "It is only valid to remove a child from a \"gTree\""
#~ msgstr "只能从'gTree'那儿删除子值"

#~ msgid "This function is redundant and will disappear in future versions."
#~ msgstr "这个函数多余，因此在新的版本里将被删除。"

#~ msgid ""
#~ "grid.arrows() has been deprecated;  use 'arrow' arguments to line drawing "
#~ "functions."
#~ msgstr "grid.arrows()不再有用；请用画线函数中'arrow'这一参数。"

#~ msgid "shape must be between -1 and 1"
#~ msgstr "形状的值必需在-1和1之间"

#~ msgid "Non-unit operand must be numeric"
#~ msgstr "非单元运算对象必需为数字"

#~ msgid ""
#~ "unit.rep has been deprecated in favour of a unit method for the generic "
#~ "rep function"
#~ msgstr "unit.rep不再有用，取而代之的是一个同属rep函数的单元方法"

#~ msgid ""
#~ "unit.length has been deprecated in favour of a unit method for the "
#~ "generic length function"
#~ msgstr "unit.length不再有用，取而代之的是一个同属length函数的单元方法"

#, fuzzy
#~ msgid "invalid graphics parameters"
#~ msgstr "图形参数值不对"

#~ msgid "at least one of 'width' and 'height' must be specified"
#~ msgstr "至少需要设定'width'或'height'中的一个"

#~ msgid "Viewport '%s' was not found"
#~ msgstr "找不到视口'%s'"

#~ msgid "Invalid"
#~ msgstr "不对"

#~ msgid "print"
#~ msgstr "印刷"

#~ msgid "argument"
#~ msgstr "参数"

#~ msgid "It is invalid to specify both 'id' and 'id.lengths"
#~ msgstr "不能同时对'id'和'id.lengths'进行设定"

#~ msgid "'x' must be numeric"
#~ msgstr "'x'必需是数字"
