summaryrefslogtreecommitdiff
path: root/doc/translations/zh_CN.po
diff options
context:
space:
mode:
Diffstat (limited to 'doc/translations/zh_CN.po')
-rw-r--r--doc/translations/zh_CN.po4005
1 files changed, 2318 insertions, 1687 deletions
diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po
index 7647bf0081..966ec9b0f9 100644
--- a/doc/translations/zh_CN.po
+++ b/doc/translations/zh_CN.po
@@ -58,11 +58,13 @@
# 苏轼 <youwanyuyu@gmail.com>, 2021.
# ErrorDreemurr <diandaokui@qq.com>, 2021.
# 烧风 <hk-shao@foxmail.com>, 2022.
+# Yan Chen <cyan97087@gmail.com>, 2022.
+# Caten <catenhu@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2022-07-31 16:43+0000\n"
+"PO-Revision-Date: 2022-12-12 06:48+0000\n"
"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot-class-reference/zh_Hans/>\n"
@@ -71,7 +73,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Weblate 4.14-dev\n"
+"X-Generator: Weblate 4.15-dev\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -369,7 +371,7 @@ msgid ""
"not use this option if the serialized object comes from untrusted sources to "
"avoid potential security threats (remote code execution)."
msgstr ""
-"将字节数组解码返回一个值。当 [code]allow_objects[/code] 为 [code]true[/code] "
+"将字节数组解码回一个值。当 [code]allow_objects[/code] 为 [code]true[/code] "
"时,允许解码对象。\n"
"[b]警告:[/b]反序列化得到的对象可能包含可执行的代码。如果序列化的对象的来源不"
"可信,请不要激活此选项,以避免潜在的安全威胁(远程执行代码)。"
@@ -684,7 +686,8 @@ msgid ""
" 1.5 0.0 0.0\n"
"[/codeblock]"
msgstr ""
-"返回 [code]a/b[/code] 的浮点模数,对正负数进行一致的循环。\n"
+",对正负数进行一致的循环返回 [code]a/b[/code] 的浮点模数,对正负数进行一致的"
+"循环。\n"
"[codeblock]\n"
"for i in 7:\n"
" var x = 0.5 * i - 1.5\n"
@@ -695,10 +698,10 @@ msgstr ""
"-1.5 -0.0 0.0\n"
"-1.0 -1.0 0.5\n"
"-0.5 -0.5 1.0\n"
-" 0.0 0.0 0.0\n"
-" 0.5 0.5 0.5\n"
-" 1.0 1.0 1.0\n"
-" 1.5 0.0 0.0\n"
+" 0.0 0.0 0.0\n"
+" 0.5 0.5 0.5\n"
+" 1.0 1.0 1.0\n"
+" 1.5 0.0 0.0\n"
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -716,8 +719,8 @@ msgid ""
"[/codeblock]"
msgstr ""
"返回对 [code]instance[/code] 节点中指定函数 [code]funcname[/code] 的引用。由"
-"于函数在GDScript中不是一级对象,因此请使用 [code]funcref[/code] 将 [FuncRef] "
-"存储在变量中,然后再调用它。\n"
+"于函数在 GDScript 中不是一级对象,因此请使用 [code]funcref[/code] 将 "
+"[FuncRef] 存储在变量中,然后再进行调用。\n"
"[codeblock]\n"
"func foo():\n"
" return(\"bar\")\n"
@@ -727,8 +730,10 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
+#, fuzzy
msgid ""
-"Returns an array of dictionaries representing the current call stack.\n"
+"Returns an array of dictionaries representing the current call stack. See "
+"also [method print_stack].\n"
"[codeblock]\n"
"func _ready():\n"
" foo()\n"
@@ -743,7 +748,11 @@ msgid ""
"[codeblock]\n"
"[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, "
"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"[b]Note:[/b] [method get_stack] only works if the running instance is "
+"connected to a debugging server (i.e. an editor instance). [method "
+"get_stack] will not work in projects exported in release mode, or in "
+"projects exported in debug mode if not connected to a debugging server."
msgstr ""
"返回一个表示当前调用堆栈的字典数组。\n"
"[codeblock]\n"
@@ -834,8 +843,9 @@ msgid ""
"[code]0.0[/code] and [code]1.0[/code] if [code]weight[/code] is between "
"[code]from[/code] and [code]to[/code] (inclusive). If [code]weight[/code] is "
"located outside this range, then an extrapolation factor will be returned "
-"(return value lower than [code]0.0[/code] or greater than [code]1.0[/"
-"code]).\n"
+"(return value lower than [code]0.0[/code] or greater than [code]1.0[/code]). "
+"Use [method clamp] on the result of [method inverse_lerp] if this is not "
+"desired.\n"
"[codeblock]\n"
"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
"var middle = lerp(20, 30, 0.75)\n"
@@ -845,13 +855,15 @@ msgid ""
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
"[/codeblock]\n"
-"See also [method lerp] which performs the reverse of this operation."
+"See also [method lerp] which performs the reverse of this operation, and "
+"[method range_lerp] to map a continuous series of values to another."
msgstr ""
"返回插值或外推的因子。范围用 [code]from[/code] 和 [code]to[/code] 指定,插值"
"后的值用 [code]weight[/code] 指定。如果 [code]weight[/code] 在 [code]from[/"
"code] 和 [code]to[/code] 之间(包含),那么返回的值在 [code]0.0[/code] 和 "
"[code]1.0[/code] 之间。如果 [code]weight[/code] 在该范围之外,则返回的是外推"
-"因子(返回值小于 [code]0.0[/code] 或大于 [code]1.0[/code])。\n"
+"因子(返回值小于 [code]0.0[/code] 或大于 [code]1.0[/code])。如果不希望这样,"
+"请对 [method inverse_lerp] 的结果使用 [method clamp]。\n"
"[codeblock]\n"
"# 下面的 `lerp()` 调用时的插值比例是 0.75。\n"
"var middle = lerp(20, 30, 0.75)\n"
@@ -927,7 +939,8 @@ msgid ""
"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
"between [code]0.0[/code] and [code]1.0[/code] (inclusive). However, values "
"outside this range are allowed and can be used to perform [i]extrapolation[/"
-"i].\n"
+"i]. Use [method clamp] on the result of [method lerp] if this is not "
+"desired.\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
@@ -939,11 +952,13 @@ msgid ""
"[/codeblock]\n"
"See also [method inverse_lerp] which performs the reverse of this operation. "
"To perform eased interpolation with [method lerp], combine it with [method "
-"ease] or [method smoothstep]."
+"ease] or [method smoothstep]. See also [method range_lerp] to map a "
+"continuous series of values to another."
msgstr ""
"在两个值之间按照 [code]weight[/code] 定义的因数进行线性插值。进行插值时,"
"[code]weight[/code] 应该在 [code]0.0[/code] 和 [code]1.0[/code] 之间(包"
-"含)。然而,在此区间外的值也是允许的,可用于执行[i]外推[/i]。\n"
+"含)。然而,在此区间外的值也是允许的,可用于执行[i]外推[/i]。如果不希望这样,"
+"请对 [method lerp] 的结果使用 [method clamp]。\n"
"如果 [code]from[/code] 和 [code]to[/code] 参数类型是 [int] 或 [float],返回值"
"都是 [float]。\n"
"如果两者都是相同的向量类型([Vector2]、[Vector3]或[Color]),返回值将是相同的"
@@ -954,7 +969,8 @@ msgstr ""
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # 返回 Vector2(2, 3.5)\n"
"[/codeblock]\n"
"另请参阅本操作的逆运算 [method inverse_lerp]。要执行缓动的 [method lerp] 插"
-"值,请将其与 [method ease] 或 [method smoothstep] 组合。"
+"值,请将其与 [method ease] 或 [method smoothstep] 组合。另请参阅 [method "
+"range_lerp],可以将一系列连续的值映射到另一个上。"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1254,10 +1270,10 @@ msgstr ""
"-3 0 0\n"
"-2 -2 1\n"
"-1 -1 2\n"
-" 0 0 0\n"
-" 1 1 1\n"
-" 2 2 2\n"
-" 3 0 0\n"
+" 0 0 0\n"
+" 1 1 1\n"
+" 2 2 2\n"
+" 3 0 0\n"
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
@@ -1340,18 +1356,17 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
-"Prints a stack track at code location, only works when running with debugger "
-"turned on.\n"
+"Prints a stack trace at the current code location. See also [method "
+"get_stack].\n"
"Output in the console would look something like this:\n"
"[codeblock]\n"
"Frame 0 - res://test.gd:16 in function '_process'\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"[b]Note:[/b] [method print_stack] only works if the running instance is "
+"connected to a debugging server (i.e. an editor instance). [method "
+"print_stack] will not work in projects exported in release mode, or in "
+"projects exported in debug mode if not connected to a debugging server."
msgstr ""
-"在代码位置打印堆栈轨迹,仅在打开调试器的情况下运行。\n"
-"控制台中的输出如下所示:\n"
-"[codeblock]\n"
-"Frame 0 - res://test.gd:16 in function '_process'\n"
-"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -1612,16 +1627,25 @@ msgstr ""
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
"Maps a [code]value[/code] from range [code][istart, istop][/code] to [code]"
-"[ostart, ostop][/code].\n"
+"[ostart, ostop][/code]. See also [method lerp] and [method inverse_lerp]. If "
+"[code]value[/code] is outside [code][istart, istop][/code], then the "
+"resulting value will also be outside [code][ostart, ostop][/code]. Use "
+"[method clamp] on the result of [method range_lerp] if this is not desired.\n"
"[codeblock]\n"
"range_lerp(75, 0, 100, -1, 1) # Returns 0.5\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"For complex use cases where you need multiple ranges, consider using [Curve] "
+"or [Gradient] instead."
msgstr ""
-"将 [code]value[/code] 从范围 [code][istart, istop][/code] 映射到 [code]"
-"[ostart, ostop][/code]。\n"
+"将范围 [code][istart, istop][/code] 中的值 [code]value[/code] 映射到 [code]"
+"[ostart, ostop][/code] 中。另请参阅 [method lerp] 和 [method inverse_lerp]。"
+"如果 [code]value[/code] 在 [code][istart, istop][/code] 之外,则结果也会在 "
+"[code][ostart, ostop][/code] 之外。如果不希望这样,请对 [method range_lerp] "
+"的结果使用 [method clamp]。\n"
"[codeblock]\n"
"range_lerp(75, 0, 100, -1, 1) # 返回 0.5\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"如果是更复杂的情况,要用到多个范围,请考虑使用 [Curve] 或 [Gradient] 代替。"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -3706,19 +3730,19 @@ msgstr "游戏手柄 SDL 杂项按钮。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL paddle 1 button."
-msgstr "游戏手柄 SDL 拨片1按钮。"
+msgstr "游戏手柄 SDL 拨片 1 按钮。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL paddle 2 button."
-msgstr "游戏手柄 SDL 拨片2按钮。"
+msgstr "游戏手柄 SDL 拨片 2 按钮。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL paddle 3 button."
-msgstr "游戏手柄 SDL 拨片3按钮。"
+msgstr "游戏手柄 SDL 拨片 3 按钮。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL paddle 4 button."
-msgstr "游戏手柄 SDL 拨片4按钮。"
+msgstr "游戏手柄 SDL 拨片 4 按钮。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL touchpad button."
@@ -3734,7 +3758,7 @@ msgstr "游戏手柄左扳机键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick click."
-msgstr "游戏手柄左键点击。"
+msgstr "游戏手柄左摇杆点击。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right Shoulder button."
@@ -3746,7 +3770,7 @@ msgstr "游戏手柄的右扳机键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right stick click."
-msgstr "游戏手柄右键单击。"
+msgstr "游戏手柄右摇杆点击。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick horizontal axis."
@@ -4175,8 +4199,8 @@ msgid ""
"above the max or below the min values. Example: [code]\"-360,360,1,"
"or_greater,or_lesser\"[/code]."
msgstr ""
-"通过提示串[code]\"min,max\"[/code] 或[code]\"min,max,step\"[/code]来提示一个"
-"整数或浮点数属性应当落在指定范围内。提示串可以选择性地包含 "
+"通过提示串 [code]\"min,max\"[/code] 或 [code]\"min,max,step\"[/code] 来提示一"
+"个整数或浮点数属性应当落在指定范围内。提示串可以选择性地包含 "
"[code]\"or_greater\"[/code] 与/或 [code]\"or_lesser\"[/code] 来允许手动输入的"
"值超过或低于最大最小值。例如:[code]\"-360,360,1,or_greater,or_lesser\"[/"
"code]。"
@@ -4232,8 +4256,8 @@ msgid ""
"easing."
msgstr ""
"提示一个浮点数属性应当通过指数缓动函数来编辑。此处的提示串可以包含 "
-"[code]\"attenuation\"[/code] 来翻转曲线的水平方向,并且/或者也可以通过"
-"[code]\"inout\"[/code]来控制是否缓入缓出。"
+"[code]\"attenuation\"[/code] 来翻转曲线的水平方向,并且/或者也可以通过 "
+"[code]\"inout\"[/code] 来控制是否缓入缓出。"
#: doc/classes/@GlobalScope.xml
msgid "Deprecated hint, unused."
@@ -4328,8 +4352,8 @@ msgid ""
"Editing it will show a popup menu of valid resource types to instantiate."
msgstr ""
"提示一个属性是一个 [Resource] 派生类的实例,可以通过提示字符串指定(例如 "
-"[code]\"Texture\"[/code])。编辑该属性时会显示一个列举了可用的待实例化的资源"
-"类型的弹出菜单。"
+"[code]\"Texture\"[/code])。编辑该属性时会显示一个弹出菜单,列举了可用的待实"
+"例化的资源类型。"
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -4365,6 +4389,26 @@ msgid "Hints that an image is compressed using lossless compression."
msgstr "提示一个图片使用了无损压缩进行压缩。"
#: doc/classes/@GlobalScope.xml
+msgid ""
+"Hint that a property represents a particular type. If a property is "
+"[constant TYPE_STRING], allows to set a type from the create dialog. If you "
+"need to create an [Array] to contain elements of a specific type, the "
+"[code]hint_string[/code] must encode nested types using [code]\":\"[/code] "
+"and [code]\"/\"[/code] for specifying [Resource] types. For instance:\n"
+"[codeblock]\n"
+"hint_string = \"%s:\" % [TYPE_INT] # Array of inteters.\n"
+"hint_string = \"%s:%s:\" % [TYPE_ARRAY, TYPE_REAL] # Two-dimensional array "
+"of floats.\n"
+"hint_string = \"%s/%s:Resource\" % [TYPE_OBJECT, TYPE_OBJECT] # Array of "
+"resources.\n"
+"hint_string = \"%s:%s/%s:Resource\" % [TYPE_ARRAY, TYPE_OBJECT, TYPE_OBJECT] "
+"# Two-dimensional array of resources.\n"
+"[/codeblock]\n"
+"[b]Note:[/b] The final colon is required to specify for properly detecting "
+"built-in types."
+msgstr ""
+
+#: doc/classes/@GlobalScope.xml
msgid "The property is serialized and saved in the scene file (default)."
msgstr "将属性序列化并保存到场景文件中(默认)。"
@@ -4962,8 +5006,8 @@ msgstr ""
"confirmed] 信号时执行类似输入验证的操作,则可以将其设置为 [code]false[/"
"code],然后在自己的逻辑中处理对话框的隐藏。\n"
"[b]注意:[/b]从此类派生的某些节点可以具有不同的默认值,并且可能有自己的内置逻"
-"辑会覆盖此设置。例如,[FileDialog] 默认其为 [code]false[/code],并在按下确定"
-"时实现了自己的输入验证代码,如果输入有效,最终将隐藏对话框。因此,不能在 "
+"辑会覆盖此设置。例如 [FileDialog] 默认其为 [code]false[/code],并在按下确定时"
+"实现了自己的输入验证代码,如果输入有效,最终将隐藏对话框。因此,不能在 "
"[FileDialog] 中使用此属性来禁止在按确定时隐藏对话框。"
#: doc/classes/AcceptDialog.xml
@@ -5152,8 +5196,7 @@ msgstr "2D 精灵动画"
#: doc/classes/AudioStreamPlayer.xml doc/classes/Button.xml
#: doc/classes/CanvasLayer.xml doc/classes/CollisionShape2D.xml
#: doc/classes/ColorRect.xml doc/classes/Input.xml doc/classes/InputEvent.xml
-#: doc/classes/InputEventAction.xml doc/classes/Label.xml
-#: doc/classes/Particles2D.xml doc/classes/Timer.xml
+#: doc/classes/InputEventAction.xml doc/classes/Label.xml doc/classes/Timer.xml
#: doc/classes/VisibilityNotifier2D.xml
msgid "2D Dodge The Creeps Demo"
msgstr "2D Dodge The Creeps 演示"
@@ -5560,16 +5603,16 @@ msgid ""
"Returns the in handle of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
-"返回由 [code]key_idx[/code] 识别的键的输入句柄,[code]track_idx[/code] 必须是"
-"贝塞尔轨道的索引。"
+"返回由 [code]key_idx[/code] 识别的键的入点手柄,[code]track_idx[/code] 必须是"
+"贝赛尔曲线轨道的索引。"
#: doc/classes/Animation.xml
msgid ""
"Returns the out handle of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
-"返回由 [code]key_idx[/code] 识别的键的输出句柄,[code]track_idx[/code] 必须是"
-"贝塞尔轨道的索引。"
+"返回由 [code]key_idx[/code] 识别的键的出点手柄,[code]track_idx[/code] 必须是"
+"贝赛尔曲线轨道的索引。"
#: doc/classes/Animation.xml
msgid ""
@@ -6002,22 +6045,27 @@ msgstr ""
"[AnimationRootNode] 时才有用,否则编辑器将不会显示你的节点进行添加。"
#: doc/classes/AnimationNode.xml
-msgid "Gets the text caption for this node (used by some editors)."
-msgstr "获取此节点的文本标题(由某些编辑器使用)。"
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"override the text caption for this node."
+msgstr ""
+"继承 [AnimationRootNode] 时,实现这个虚方法可以覆盖这个节点的标题文本。"
#: doc/classes/AnimationNode.xml
msgid ""
-"Gets a child node by index (used by editors inheriting from "
-"[AnimationRootNode])."
-msgstr "按索引获取一个子节点(由继承 [AnimationRootNode] 的编辑器使用)。"
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return a child node by its [code]name[/code]."
+msgstr ""
+"继承 [AnimationRootNode] 时,实现这个虚方法可以根据名称 [code]name[/code] 来"
+"返回对应的子节点。"
#: doc/classes/AnimationNode.xml
msgid ""
-"Gets all children nodes in order as a [code]name: node[/code] dictionary. "
-"Only useful when inheriting [AnimationRootNode]."
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return all children nodes in order as a [code]name: node[/code] dictionary."
msgstr ""
-"按照 [code]name: node[/code] 字典的顺序获取所有子节点。仅在继承 "
-"[AnimationRootNode] 时有用。"
+"继承 [AnimationRootNode] 时,实现这个虚方法可以用 [code]名称:节点[/code] 字典"
+"的形式按顺序返回所有子节点。"
#: doc/classes/AnimationNode.xml
msgid ""
@@ -6039,26 +6087,33 @@ msgstr ""
#: doc/classes/AnimationNode.xml
msgid ""
-"Gets the default value of a parameter. Parameters are custom local memory "
-"used for your nodes, given a resource can be reused in multiple trees."
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return the default value of parameter \"[code]name[/code]\". Parameters are "
+"custom local memory used for your nodes, given a resource can be reused in "
+"multiple trees."
msgstr ""
-"获取一个参数的默认值。参数是用于节点的自定义本地内存,给定资源可以在多个树中"
-"重用。"
+"继承 [AnimationRootNode] 时,实现这个虚方法可以返回参数“[code]name[/code]”的"
+"默认值。参数是节点的自定义本地存储,资源可以在多个树中重用。"
#: doc/classes/AnimationNode.xml
msgid ""
-"Gets the property information for parameter. Parameters are custom local "
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return a list of the properties on this node. Parameters are custom local "
"memory used for your nodes, given a resource can be reused in multiple "
"trees. Format is similar to [method Object.get_property_list]."
msgstr ""
-"获取参数的属性信息。参数是你的节点使用的自定义本地内存,给定的资源可以在多个"
-"树中重复使用。格式类似于[method Object.get_property_list]。"
+"继承 [AnimationRootNode] 时,实现这个虚方法可以返回这个节点的属性列表。参数是"
+"节点的自定义本地存储,资源可以在多个树中重用。格式与 [method Object."
+"get_property_list] 类似。"
#: doc/classes/AnimationNode.xml
msgid ""
-"Returns [code]true[/code] whether you want the blend tree editor to display "
-"filter editing on this node."
-msgstr "返回 [code]true[/code],是否希望混合树编辑器在此节点上显示过滤器编辑。"
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return whether the blend tree editor should display filter editing on this "
+"node."
+msgstr ""
+"继承 [AnimationRootNode] 时,实现这个虚方法可以返回混合树编辑器是否应该在这个"
+"节点上显示过滤器编辑。"
#: doc/classes/AnimationNode.xml
msgid "Returns whether the given path is filtered."
@@ -6066,21 +6121,23 @@ msgstr "返回是否对给定的路径进行过滤。"
#: doc/classes/AnimationNode.xml
msgid ""
-"User-defined callback called when a custom node is processed. The "
-"[code]time[/code] parameter is a relative delta, unless [code]seek[/code] is "
-"[code]true[/code], in which case it is absolute.\n"
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"run some code when this node is processed. The [code]time[/code] parameter "
+"is a relative delta, unless [code]seek[/code] is [code]true[/code], in which "
+"case it is absolute.\n"
"Here, call the [method blend_input], [method blend_node] or [method "
"blend_animation] functions. You can also use [method get_parameter] and "
"[method set_parameter] to modify local memory.\n"
"This function should return the time left for the current animation to "
"finish (if unsure, pass the value from the main blend being called)."
msgstr ""
-"用户定义的回调,会在处理自定义节点时调用。时间参数 [code]time[/code] 是一个相"
-"对的增量,除非 [code]seek[/code] 是 [code]true[/code],此时它是绝对的时间。\n"
-"请在这里调用 [method blend_input]、[method blend_node] 或 [method "
+"继承 [AnimationRootNode] 时,实现这个虚方法可以在这个节点进行处理时执行代码。"
+"参数 [code]time[/code] 是相对增量,除非 [code]seek[/code] 为 [code]true[/"
+"code],此时为绝对时间。\n"
+"请在此处调用 [method blend_input]、[method blend_node] 或 [method "
"blend_animation] 函数。你也可以使用 [method get_parameter] 和 [method "
-"set_parameter] 来修改本地内存。\n"
-"这个函数应该返回当前动画完成的剩余时间(如果不确定,请传递被调用的主混合"
+"set_parameter] 来修改本地存储。\n"
+"这个函数应当返回当前动画还需多少时间完成(不确定的话,请传递调用主混合的"
"值)。"
#: doc/classes/AnimationNode.xml
@@ -6810,19 +6867,19 @@ msgid ""
"Turn on auto advance when this condition is set. The provided name will "
"become a boolean parameter on the [AnimationTree] that can be controlled "
"from code (see [url=$DOCS_URL/tutorials/animation/animation_tree."
-"html#controlling-from-code][/url]). For example, if [member AnimationTree."
-"tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] "
-"is set to [code]\"idle\"[/code]:\n"
+"html#controlling-from-code]Using AnimationTree[/url]). For example, if "
+"[member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and "
+"[member advance_condition] is set to [code]\"idle\"[/code]:\n"
"[codeblock]\n"
"$animation_tree[\"parameters/conditions/idle\"] = is_on_floor and "
"(linear_velocity.x == 0)\n"
"[/codeblock]"
msgstr ""
-"设置此条件,开启自动前进。提供的名称将成为 [AnimationTree] 上的一个布尔参数,"
-"可以通过代码控制,请参阅 [url=$DOCS_URL/tutorials/animation/animation_tree."
-"html#controlling-from-code][/url]。例如,如果 [member AnimationTree."
-"tree_root] 是一个 [AnimationNodeStateMachine],[member advance_condition] 被"
-"设置为 [code]\"idle\"[/code]。\n"
+"这个条件为真时,将开启自动前进。提供的名称将成为 [AnimationTree] 上的布尔参"
+"数,可以通过代码控制,请参阅 [url=$DOCS_URL/tutorials/animation/"
+"animation_tree.html#controlling-from-code]使用 AnimationTree[/url]。例如,如"
+"果 [member AnimationTree.tree_root] 是一个 [AnimationNodeStateMachine],"
+"[member advance_condition] 被设置为 [code]\"idle\"[/code]:\n"
"[codeblock]\n"
"$animation_tree[\"parameters/conditions/idle\"] = is_on_floor and "
"(linear_velocity.x == 0)\n"
@@ -7031,11 +7088,11 @@ msgstr "返回 [code]animation[/code] 的名称,如果没有找到,则返回
#: doc/classes/AnimationPlayer.xml
msgid ""
-"Returns the [Animation] with key [code]name[/code] or [code]null[/code] if "
-"not found."
+"Returns the [Animation] with the key [code]name[/code]. If the animation "
+"does not exist, [code]null[/code] is returned and an error is logged."
msgstr ""
-"返回键为 [code]name[/code] 的 [Animation] 动画,未找到时为 [code]null[/"
-"code]。"
+"返回键为 [code]name[/code] 的 [Animation] 动画。如果该动画不存在,将返回 "
+"[code]null[/code] 并在日志中记录错误。"
#: doc/classes/AnimationPlayer.xml
msgid "Returns the list of stored animation names."
@@ -7634,7 +7691,7 @@ msgstr "返回给定其名称的 OneShot 节点的淡出时间。"
#: doc/classes/AnimationTreePlayer.xml
msgid "Returns whether a OneShot node will auto restart given its name."
-msgstr "返回OneShot节点是否会根据其名称自动重新启动。"
+msgstr "返回 OneShot 节点是否会根据其名称自动重新启动。"
#: doc/classes/AnimationTreePlayer.xml
msgid "Returns whether a OneShot node is active given its name."
@@ -7716,8 +7773,9 @@ msgid ""
"If applied after a blend or mix, affects all input animations to that blend "
"or mix."
msgstr ""
-"设置名称为 [code]id[/code] 的TimeScale节点的时间缩放为[code]scale[/code]。\n"
-"时间缩放节点用来加快[Animation]的速度,如果缩放高于1,就会减慢它们。\n"
+"设置名称为 [code]id[/code] 的 TimeScale 节点的时间缩放为 [code]scale[/"
+"code]。\n"
+"时间缩放节点用来加快 [Animation] 的速度,如果缩放高于1,就会减慢它们。\n"
"如果在混合后应用,会影响到该混合的所有输入动画。"
#: doc/classes/AnimationTreePlayer.xml
@@ -7727,9 +7785,9 @@ msgid ""
"This functions as a seek in the [Animation] or the blend or mix of "
"[Animation]s input in it."
msgstr ""
-"设置名称为 [code]id[/code] 的TimeSeek节点的时间查寻值为[code]seconds[/"
+"设置名称为 [code]id[/code] 的 TimeSeek 节点的时间查寻值为 [code]seconds[/"
"code]。\n"
-"这在[Animation]或输入的[Animation]的混合中起到查寻的作用。"
+"这在 [Animation] 或输入的 [Animation] 的混合中起到查寻的作用。"
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7763,8 +7821,8 @@ msgid ""
"transition node with name [code]id[/code] is set to automatically advance to "
"the next input upon completion."
msgstr ""
-"如果过渡节点上名称为 [code]id[/code] 的[code]input_idx[/code]的输入被设置为在"
-"完成后自动前进到下一个输入,则返回 [code]true[/code]。"
+"如果过渡节点上名称为 [code]id[/code] 的 [code]input_idx[/code] 的输入被设置为"
+"在完成后自动前进到下一个输入,则返回 [code]true[/code]。"
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7778,8 +7836,8 @@ msgid ""
"The transition node with name [code]id[/code] advances to its next input "
"automatically when the input at [code]input_idx[/code] completes."
msgstr ""
-"当[code]input_idx[/code]处的输入完成后,名称为 [code]id[/code] 的过渡节点自动"
-"进行到下一个输入。"
+"当 [code]input_idx[/code] 处的输入完成后,名称为 [code]id[/code] 的过渡节点自"
+"动进行到下一个输入。"
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7792,13 +7850,13 @@ msgid ""
"The transition node with name [code]id[/code] sets its cross fade time to "
"[code]time_sec[/code]."
msgstr ""
-"名称为 [code]id[/code] 的过渡节点将其交叉淡化时间设置为[code]time_sec[/"
+"名称为 [code]id[/code] 的过渡节点将其交叉淡化时间设置为 [code]time_sec[/"
"code]。"
#: doc/classes/AnimationTreePlayer.xml
msgid ""
"If [code]true[/code], the [AnimationTreePlayer] is able to play animations."
-msgstr "如果为 [code]true[/code],[AnimationTreePlayer]就能够播放动画。"
+msgstr "如果为 [code]true[/code],[AnimationTreePlayer] 就能够播放动画。"
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7807,7 +7865,7 @@ msgid ""
"[AnimationPlayer] would point its Root Node at."
msgstr ""
"相对访问其他节点的节点。\n"
-"它访问骨骼,应该指向[AnimationPlayer]将指向其根节点的同一个节点。"
+"它访问骨骼,应该指向 [AnimationPlayer] 将指向其根节点的同一个节点。"
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7817,7 +7875,7 @@ msgid ""
msgstr ""
"通过 [AnimationPlayer] 的路径,此 [AnimationTreePlayer] 将动画绑定到动画节"
"点。\n"
-"设置后,[Animation]节点可以添加到[AnimationPlayer]。"
+"设置后,[Animation] 节点可以添加到 [AnimationPlayer]。"
#: doc/classes/AnimationTreePlayer.xml
msgid "The thread in which to update animations."
@@ -7871,10 +7929,19 @@ msgstr "用于检测和物理及音频影响的 3D 区域。"
msgid ""
"3D area that detects [CollisionObject] nodes overlapping, entering, or "
"exiting. Can also alter or override local physics parameters (gravity, "
-"damping) and route audio to custom audio buses."
-msgstr ""
-"检测 [CollisionObject] 节点重叠、进入或退出的 3D 区域。还可以改变或覆盖局部物"
-"理参数(重力、阻尼),并将音频路由到自定义音频总线。"
+"damping) and route audio to a custom audio bus.\n"
+"To give the area its shape, add a [CollisionShape] or a [CollisionPolygon] "
+"node as a [i]direct[/i] child (or add multiple such nodes as direct "
+"children) of the area.\n"
+"[b]Warning:[/b] See [ConcavePolygonShape] (also called \"trimesh\") for a "
+"warning about possibly unexpected behavior when using that shape for an area."
+msgstr ""
+"3D 区域可以检测到 [CollisionObject] 节点间的重叠、进入及退出。也可以修改或覆"
+"盖局部的物理参数(重力、阻尼)、将音频导流至自定义的音频总线。\n"
+"要为区域设置形状,请将一个 [CollisionShape] 或 [CollisionPolygon] 节点添加为"
+"该区域的[i]直接[/i]子节点(或者添加多个这种节点作为直接子节点)。\n"
+"[b]警告:[/b]使用凹多边形(也叫“三角形网格”)作为区域的形状时,可能产生出乎预"
+"料的行为,见 [ConcavePolygonShape]。"
#: doc/classes/Area.xml doc/classes/QuadMesh.xml doc/classes/Viewport.xml
#: doc/classes/ViewportTexture.xml
@@ -7946,7 +8013,7 @@ msgid ""
"details about damping."
msgstr ""
"物体在此区域停止旋转的速度。代表每秒损失的角速度.\n"
-"关于阻尼的更多细节,见[member ProjectSettings.physics/3d/"
+"关于阻尼的更多细节,见 [member ProjectSettings.physics/3d/"
"default_angular_damp]。"
#: doc/classes/Area.xml doc/classes/Area2D.xml
@@ -7964,8 +8031,8 @@ msgid ""
"multiplies the gravity vector. This is useful to alter the force of gravity "
"without altering its direction."
msgstr ""
-"该区域内的重力强度(单位:m/s^2)。这个值是重力向量的倍数。这个量在改变引力大"
-"小而不改变其方向很有用。"
+"该区域内的重力强度(单位为米每秒的平方)。这个值是重力向量的倍数。这个量在改"
+"变引力大小而不改变其方向很有用。"
#: doc/classes/Area.xml doc/classes/Area2D.xml
msgid ""
@@ -8051,7 +8118,7 @@ msgid ""
"be set to [code]true[/code].\n"
"[code]area[/code] the other Area."
msgstr ""
-"当另一个 Area 进入这个 Area 时触发。需要将监控 [member monitoring] 设置为 "
+"当另一个 Area 进入这个 Area 时触发。需要 [member monitoring] 被设置为 "
"[code]true[/code]。\n"
"[code]area[/code] 参数是另外一个 Area。"
@@ -8061,9 +8128,9 @@ msgid ""
"be set to [code]true[/code].\n"
"[code]area[/code] the other Area."
msgstr ""
-"当另一个区域退出这个区域时发出的。要求监控[member monitoring]被设置为 "
+"当另一个区域退出这个区域时发出的。要求 [member monitoring] 被设置为 "
"[code]true[/code]。\n"
-"[code]area[/code]参数是另外一个Area。"
+"[code]area[/code] 参数是另外一个 Area。"
#: doc/classes/Area.xml
msgid ""
@@ -8079,17 +8146,17 @@ msgid ""
"the [PhysicsServer]. Get the [CollisionShape] node with [code]self."
"shape_owner_get_owner(local_shape_index)[/code]."
msgstr ""
-"当另一个区域的一个[Shape]进入这个区域的一个[Shape]时发出的。要求[member "
+"当另一个区域的一个 [Shape] 进入这个区域的一个 [Shape] 时发出的。要求 [member "
"monitoring] 被设置为 [code]true[/code]。\n"
-"[code]area_rid[/code] [PhysicsServer]使用的其他区域的[CollisionObject]的"
+"[code]area_rid[/code] [PhysicsServer]使用的其他区域的 [CollisionObject] 的 "
"[RID]。\n"
"[code]area[/code] 其他区域。\n"
-"[code]area_shape_index[/code] [PhysicsServer]使用的其他区域的[Shape]的索引。"
-"用[code]area.shape_owner_get_owner(area_shape_index)[/code]获得"
-"[CollisionShape]节点。\n"
-"[code]local_shape_index[/code]是[PhysicsServer]使用的该区域的[Shape]的索引。"
-"用[code]self.shape_owner_get_owner(local_shape_index)[/code]获得"
-"[CollisionShape]节点。"
+"[code]area_shape_index[/code] [PhysicsServer] 使用的其他区域的 [Shape] 的索"
+"引。用 [code]area.shape_owner_get_owner(area_shape_index)[/code] 获得 "
+"[CollisionShape] 节点。\n"
+"[code]local_shape_index[/code] [PhysicsServer] 使用的该区域的 [Shape] 的索"
+"引。用 [code]self.shape_owner_get_owner(local_shape_index)[/code] 获得 "
+"[CollisionShape] 节点。"
#: doc/classes/Area.xml
msgid ""
@@ -8143,7 +8210,7 @@ msgstr ""
"[code]body[/code] [PhysicsBody] 或 [GridMap] 的 [Node],如果它存在于树中的"
"话。\n"
"[code]body_shape_index[/code] [PhysicsServer] 使用的 [PhysicsBody] 或 "
-"[GridMap] 的 [Shape]的索引。用 [code]body."
+"[GridMap] 的 [Shape] 的索引。用 [code]body."
"shape_owner_get_owner(body_shape_index)[/code] 获取 [CollisionShape] 节点。\n"
"[code]local_shape_index[/code] 这个区域的 [Shape] 的索引,由 [PhysicsServer] "
"使用。用 [code]self.shape_owner_get_owner(local_shape_index)[/code] 获得 "
@@ -8191,10 +8258,19 @@ msgstr "用于检测、物理和音频影响的 2D 区域。"
msgid ""
"2D area that detects [CollisionObject2D] nodes overlapping, entering, or "
"exiting. Can also alter or override local physics parameters (gravity, "
-"damping) and route audio to a custom audio bus."
-msgstr ""
-"检测 [CollisionObject2D] 节点重叠、进入或退出的2D区域。还可以改变或覆盖局部物"
-"理参数(重力、阻尼),并将音频路由到一个自定义的音频总线。"
+"damping) and route audio to a custom audio bus.\n"
+"To give the area its shape, add a [CollisionShape2D] or a "
+"[CollisionPolygon2D] node as a [i]direct[/i] child (or add multiple such "
+"nodes as direct children) of the area.\n"
+"[b]Warning:[/b] See [ConcavePolygonShape2D] for a warning about possibly "
+"unexpected behavior when using that shape for an area."
+msgstr ""
+"2D 区域可以检测到 [CollisionObject2D] 节点间的重叠、进入及退出。也可以修改或"
+"覆盖局部的物理参数(重力、阻尼)、将音频导流至自定义的音频总线。\n"
+"要为区域设置形状,请将一个 [CollisionShape2D] 或 [CollisionPolygon2D] 节点添"
+"加为该区域的[i]直接[/i]子节点(或者添加多个这种节点作为直接子节点)。\n"
+"[b]警告:[/b]使用凹多边形(也叫“三角形网格”)作为区域的形状时,可能产生出乎预"
+"料的行为,见 [ConcavePolygonShape2D]。"
#: doc/classes/Area2D.xml
msgid "Using Area2D"
@@ -8285,7 +8361,7 @@ msgid ""
"multiplies the gravity vector. This is useful to alter the force of gravity "
"without altering its direction."
msgstr ""
-"该区域的重力强度(以像素/秒的平方为单位)。这个值是重力向量的倍数。这对改变引"
+"该区域的重力强度(单位为像素每秒的平方)。这个值是重力向量的倍数。这对改变引"
"力大小而不改变其方向很有用。"
#: doc/classes/Area2D.xml
@@ -8465,7 +8541,7 @@ msgstr ""
"点。\n"
"[code]local_shape_index[/code] 这个 Area2D 的 [Shape2D] 的索引,由 "
"[Physics2DServer] 使用。用 [code]self."
-"shape_owner_get_owner(local_shape_index)[/code]获取[CollisionShape2D]节点。"
+"shape_owner_get_owner(local_shape_index)[/code]获取 [CollisionShape2D] 节点。"
#: doc/classes/Array.xml
msgid "A generic array datatype."
@@ -8732,6 +8808,7 @@ msgstr ""
"较慢。这是因为所有放置在删除元素之后的元素都必须重新索引。"
#: doc/classes/Array.xml
+#, fuzzy
msgid ""
"Assigns the given value to all elements in the array. This can typically be "
"used together with [method resize] to create an array with a given size and "
@@ -8740,7 +8817,10 @@ msgid ""
"var array = []\n"
"array.resize(10)\n"
"array.fill(0) # Initialize the 10 elements to 0.\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"[b]Note:[/b] If [code]value[/code] is of a reference type ([Object]-derived, "
+"[Array], [Dictionary], etc.) then the array is filled with the references to "
+"the same object, i.e. no duplicates are created."
msgstr ""
"将该数组中的所有元素都设置为给定的值。通常与 [method resize] 一起使用,用于创"
"建给定大小数组并对其元素进行初始化:\n"
@@ -8949,8 +9029,8 @@ msgid ""
"size is smaller, elements are cleared, if bigger, new elements are "
"[code]null[/code]."
msgstr ""
-"调整数组至包含不同数量的元素。如果数组变小则清除多余元素,变大则新元素为 "
-"[code]null[/code]。"
+"调整数组的大小,让包含的元素数量发生变化。如果数组变小则清除多余元素,变大则"
+"新元素为 [code]null[/code]。"
#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
@@ -8991,13 +9071,17 @@ msgid ""
"and upper index are inclusive, with the [code]step[/code] describing the "
"change between indices while slicing."
msgstr ""
-"复制函数中描述的子集并以数组形式返回,如果[code]deep[/code]为 [code]true[/"
-"code],则深度复制数组。下索引和上索引是包含的,[code]step[/code]描述了分片时"
+"复制函数中描述的子集并以数组形式返回,如果 [code]deep[/code] 为 [code]true[/"
+"code],则深度复制数组。下索引和上索引是包含的,[code]step[/code] 描述了分片时"
"索引之间的变化。"
#: doc/classes/Array.xml
+#, fuzzy
msgid ""
"Sorts the array.\n"
+"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/"
+"wiki/Sorting_algorithm#Stability]stable[/url]. This means that values "
+"considered equal may have their order changed when using [method sort].\n"
"[b]Note:[/b] Strings are sorted in alphabetical order (as opposed to natural "
"order). This may lead to unexpected behavior when sorting an array of "
"strings ending with a sequence of numbers. Consider the following example:\n"
@@ -9017,6 +9101,7 @@ msgstr ""
"[/codeblock]"
#: doc/classes/Array.xml
+#, fuzzy
msgid ""
"Sorts the array using a custom method. The arguments are an object that "
"holds the method and the name of such method. The custom method receives two "
@@ -9025,9 +9110,13 @@ msgid ""
"For two elements [code]a[/code] and [code]b[/code], if the given method "
"returns [code]true[/code], element [code]b[/code] will be after element "
"[code]a[/code] in the array.\n"
+"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/"
+"wiki/Sorting_algorithm#Stability]stable[/url]. This means that values "
+"considered equal may have their order changed when using [method "
+"sort_custom].\n"
"[b]Note:[/b] You cannot randomize the return value as the heapsort algorithm "
-"expects a deterministic result. Doing so will result in unexpected "
-"behavior.\n"
+"expects a deterministic result. Randomizing the return value will result in "
+"unexpected behavior.\n"
"[codeblock]\n"
"class MyCustomSorter:\n"
" static func sort_ascending(a, b):\n"
@@ -9109,9 +9198,8 @@ msgstr ""
"var m = MeshInstance.new()\n"
"m.mesh = arr_mesh\n"
"[/codeblock]\n"
-"这个 [MeshInstance] 已经准备就绪,以添加到要显示的 [SceneTree] 中。\n"
-"程序式几何体生成,请参阅 [ImmediateGeometry]、[MeshDataTool]、"
-"[SurfaceTool]。\n"
+"这个 [MeshInstance] 就可以添加到要显示的 [SceneTree] 中了。\n"
+"程序式几何体生成请参阅 [ImmediateGeometry]、[MeshDataTool]、[SurfaceTool]。\n"
"[b]注意:[/b]Godot 对三角形图元模式的正面使用顺时针[url=https://learnopengl-"
"cn.github.io/04%20Advanced%20OpenGL/04%20Face%20culling/]环绕顺序[/url]。"
@@ -9138,7 +9226,15 @@ msgid ""
"mode\" where the vertex and other arrays become the sources of data and the "
"index array defines the vertex order. All sub-arrays must have the same "
"length as the vertex array or be empty, except for [constant ARRAY_INDEX] if "
-"it is used."
+"it is used.\n"
+"[code]compress_flags[/code] is a bitfield made of [enum Mesh.ArrayFormat] "
+"values. It defaults to [constant Mesh.ARRAY_COMPRESS_DEFAULT].\n"
+"[b]Note:[/b] The default [code]compress_flags[/code] enable [constant Mesh."
+"ARRAY_COMPRESS_COLOR], which makes vertex colors stored as 8-bit unsigned "
+"integers. This will clamp overbright vertex colors to [code]Color(1, 1, 1, 1)"
+"[/code] and reduce their precision. To store HDR vertex colors, remove the "
+"vertex color compression flag by passing [code]Mesh.ARRAY_COMPRESS_DEFAULT ^ "
+"Mesh.ARRAY_COMPRESS_COLOR[/code] as the value of [code]compress_flags[/code]."
msgstr ""
"创建一个新的面。\n"
"创建面是为了使用 [code]primitive[/code] 进行渲染,可以是 [enum Mesh."
@@ -9149,7 +9245,14 @@ msgstr ""
"ArrayType]。例如,[code]arrays[0][/code] 是顶点的数组。总是需要第一个顶点子数"
"组,其他的可选。添加一个索引数组使这个函数进入“索引模式”,顶点和其他数组作为"
"数据来源,索引数组定义其顶点顺序。所有的子数组必须与顶点数组具有相同的长度,"
-"或者为空,如果使用了 [constant ARRAY_INDEX] 时除外。"
+"或者为空,如果使用了 [constant ARRAY_INDEX] 时除外。\n"
+"[code]compress_flags[/code] 是由 [enum Mesh.ArrayFormat] 枚举值组成的位域,默"
+"认为 [constant Mesh.ARRAY_COMPRESS_DEFAULT]。\n"
+"[b]注意:[/b][code]compress_flags[/code] 默认会启用 [constant Mesh."
+"ARRAY_COMPRESS_COLOR],所以顶点颜色会作为 8 位无符号整数存储。这会导致过亮颜"
+"色被钳制到 [code]Color(1, 1, 1, 1)[/code],降低颜色的精度。要存储 HDR 顶点颜"
+"色,请将 [code]Mesh.ARRAY_COMPRESS_DEFAULT ^ Mesh.ARRAY_COMPRESS_COLOR[/"
+"code] 传入 [code]compress_flags[/code],移除顶点颜色压缩标志。"
#: doc/classes/ArrayMesh.xml
msgid "Removes all blend shapes from this [ArrayMesh]."
@@ -9549,7 +9652,7 @@ msgid ""
"If provided by the [ARVRInterface], this returns a mesh associated with the "
"controller. This can be used to visualize the controller."
msgstr ""
-"如果由 [ARVRInterface]提供,则返回与控制器相关的网格。这可用于可视化控制器。"
+"如果由 [ARVRInterface] 提供,则返回与控制器相关的网格。这可用于可视化控制器。"
#: doc/classes/ARVRController.xml
msgid ""
@@ -9588,8 +9691,8 @@ msgid ""
"This is a useful property to animate if you want the controller to vibrate "
"for a limited duration."
msgstr ""
-"控制器振动的程度。范围从 [code]0.0[/code] 到 [code]1.0[/code]。如果更改,"
-"会相应地更新 [member ARVRPositionalTracker.rumble]。\n"
+"控制器振动的程度。范围从 [code]0.0[/code] 到 [code]1.0[/code]。如果更改,会相"
+"应地更新 [member ARVRPositionalTracker.rumble]。\n"
"如果你想让控制器在限定时间内振动,这是一个有用的属性,可以将其动画化。"
#: doc/classes/ARVRController.xml
@@ -9685,10 +9788,10 @@ msgid ""
msgstr ""
"调用这个来初始化这个接口。第一个被初始化的接口确定为主接口,用于渲染输出。\n"
"在初始化了接口之后,需要启用视窗的 AR/VR 模式,将开始渲染。\n"
-"[b]注意:[/b]对于任何使用Godot主输出的设备,如移动VR,你必须在主视窗上启用 "
-"AR/VR 模式。\n"
+"[b]注意:[/b]对于任何使用 Godot 主输出的设备,如移动 VR,你必须在主视口上启"
+"用 AR/VR 模式。\n"
"如果你为一个处理自己输出的平台这样做(如 OpenVR),Godot 就会在屏幕上只显示一"
-"只眼睛而不失真。另外,你可以在场景中添加一个单独的视窗节点,在该视窗上启用 "
+"只眼睛而不失真。另外,你可以在场景中添加一个单独的视口节点,在该视口上启用 "
"AR/VR。它将被用来输出到 HMD,让你在主窗口中做你喜欢的事情,比如用一个单独的相"
"机作为旁观者相机,或者渲染一些完全不同的东西。\n"
"虽然目前没有使用,但你可以激活其他接口。如果你想跟踪其他平台的控制器,可能希"
@@ -10527,7 +10630,7 @@ msgstr ""
"var res = astar.get_id_path(1, 3) # 返回 [1, 2, 3]\n"
"[/codeblock]\n"
"如果你把第 2 点的权重改为 3,那么结果就会变成 [code][1, 4, 3][/code],因为现"
-"在虽然距离长了,但通过第 4 点比通过第 2 点 “容易”。"
+"在虽然距离长了,但通过第 4 点比通过第 2 点“容易”。"
#: doc/classes/AStar.xml doc/classes/AStar2D.xml
msgid ""
@@ -10841,10 +10944,10 @@ msgid ""
"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it "
"will return an empty [PoolVector2Array] and will print an error message."
msgstr ""
-"返回一个数组,该数组包含了AStar2D在给定点之间找到的路径中的点。该数组从路径的"
-"起点到终点排序。\n"
-"[b]注意:[/b]这个方法不是线程安全的。如果从一个[Thread]线程中调用,它将返回一"
-"个空的[PoolVector2Array],并打印一个错误信息。"
+"返回一个数组,该数组包含了 AStar2D 在给定点之间找到的路径中的点。该数组从路径"
+"的起点到终点排序。\n"
+"[b]注意:[/b]这个方法不是线程安全的。如果从 [Thread] 线程中调用,它将返回一个"
+"空的 [PoolVector2Array],并打印一个错误信息。"
#: doc/classes/AtlasTexture.xml
msgid ""
@@ -10914,7 +11017,7 @@ msgid ""
"the connections between buses. See [AudioServer] for usage."
msgstr ""
"存储位置、静音、独奏、旁通、效果、效果位置、音量以及总线之间的连接。使用方法"
-"参阅 [AudioServer] 。"
+"见 [AudioServer] 。"
#: doc/classes/AudioEffect.xml
msgid "Audio effect for audio."
@@ -10926,8 +11029,9 @@ msgid ""
"resource is applied on."
msgstr "音频总线的基础资源。在该资源所应用的总线上应用音频效果。"
-#: doc/classes/AudioEffect.xml doc/classes/AudioEffectRecord.xml
-#: doc/classes/AudioServer.xml doc/classes/AudioStream.xml
+#: doc/classes/AudioEffect.xml doc/classes/AudioEffectCapture.xml
+#: doc/classes/AudioEffectRecord.xml doc/classes/AudioServer.xml
+#: doc/classes/AudioStream.xml doc/classes/AudioStreamMicrophone.xml
#: doc/classes/AudioStreamPlayer.xml
msgid "Audio Mic Record Demo"
msgstr "音频麦克风录音演示"
@@ -10986,28 +11090,42 @@ msgid ""
"attached audio effect bus into its internal ring buffer.\n"
"Application code should consume these audio frames from this ring buffer "
"using [method get_buffer] and process it as needed, for example to capture "
-"data from a microphone, implement application defined effects, or to "
-"transmit audio over the network. When capturing audio data from a "
+"data from an [AudioStreamMicrophone], implement application-defined effects, "
+"or to transmit audio over the network. When capturing audio data from a "
"microphone, the format of the samples will be stereo 32-bit floating point "
-"PCM."
+"PCM.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/enable_audio_input] must be "
+"[code]true[/code] for audio input to work. See also that setting's "
+"description for caveats related to permissions and operating system privacy "
+"settings."
msgstr ""
"AudioEffectCapture 是一种 AudioEffect,可将所附音频效果总线的所有音频帧复制到"
"其内部的环形缓冲器中。\n"
"应用程序代码应使用 [method get_buffer] 从该环形缓冲器中消耗这些音频帧,并根据"
-"需要进行处理,例如从麦克风捕获数据、实现应用程序定义的效果或通过网络传输音"
-"频。从麦克风捕获音频数据时,样本的格式为立体声 32 位浮点数 PCM。"
+"需要进行处理,例如从 [AudioStreamMicrophone] 捕获数据、实现应用程序定义的效果"
+"或通过网络传输音频。从麦克风捕获音频数据时,样本的格式为立体声 32 位浮点数 "
+"PCM。\n"
+"[b]注意:[/b][member ProjectSettings.audio/enable_audio_input] 必须为 "
+"[code]true[/code] 音频输入才能正常工作。另请参阅该设置项的描述,了解权限和操"
+"作系统隐私设置相关的说明。"
+
+#: doc/classes/AudioEffectCapture.xml doc/classes/AudioEffectDistortion.xml
+#: doc/classes/AudioEffectFilter.xml doc/classes/AudioEffectHighShelfFilter.xml
+#: doc/classes/AudioEffectLowShelfFilter.xml doc/classes/AudioServer.xml
+msgid "Audio buses"
+msgstr "音频总线"
#: doc/classes/AudioEffectCapture.xml
msgid ""
"Returns [code]true[/code] if at least [code]frames[/code] audio frames are "
"available to read in the internal ring buffer."
msgstr ""
-"如果内部环缓冲器中至少有[code]frames[/code]音频帧可供读取,则返回 "
+"如果内部环形缓冲区中至少有 [code]frames[/code] 个音频帧可供读取,则返回 "
"[code]true[/code]。"
#: doc/classes/AudioEffectCapture.xml
msgid "Clears the internal ring buffer."
-msgstr "清除内部环缓冲区。"
+msgstr "清除内部环形缓冲区。"
#: doc/classes/AudioEffectCapture.xml
msgid ""
@@ -11017,13 +11135,13 @@ msgid ""
"samples if available, or an empty [PoolVector2Array] if insufficient data "
"was available."
msgstr ""
-"从内部环缓冲区获取下一个[code]frames[/code]音频样本。\n"
-"如果有的话,返回一个正好包含[code]frames[/code]音频样本的[PoolVector2Array],"
-"如果没有足够的数据,则返回一个空[PoolVector2Array]。"
+"从内部环形缓冲区获取后续 [code]frames[/code] 个音频样本。\n"
+"如果有的话,返回一个正好包含 [code]frames[/code] 个音频样本的 "
+"[PoolVector2Array],如果没有足够的数据,则返回一个空 [PoolVector2Array]。"
#: doc/classes/AudioEffectCapture.xml
msgid "Returns the total size of the internal ring buffer in frames."
-msgstr "返回内部环缓冲区的总大小,以帧为单位。"
+msgstr "返回内部环形缓冲区的总大小,以帧为单位。"
#: doc/classes/AudioEffectCapture.xml
msgid ""
@@ -11045,7 +11163,7 @@ msgid ""
"Length of the internal ring buffer, in seconds. Setting the buffer length "
"will have no effect if already initialized."
msgstr ""
-"内部环缓冲区的长度,单位是秒。如果已经初始化,设置缓冲区长度将没有效果。"
+"内部环形缓冲区的长度,单位为秒。如果已经初始化,设置缓冲区长度将没有效果。"
#: doc/classes/AudioEffectChorus.xml
msgid "Adds a chorus audio effect."
@@ -11270,12 +11388,6 @@ msgstr ""
"通过扭曲波形,频率内容会发生变化,这通常会使声音“清脆”或“粗糙”。对于游戏,它"
"可以非常有效地模拟来自一些饱和设备或扬声器的声音。"
-#: doc/classes/AudioEffectDistortion.xml doc/classes/AudioEffectFilter.xml
-#: doc/classes/AudioEffectHighShelfFilter.xml
-#: doc/classes/AudioEffectLowShelfFilter.xml doc/classes/AudioServer.xml
-msgid "Audio buses"
-msgstr "音频总线"
-
#: doc/classes/AudioEffectDistortion.xml
msgid "Distortion power. Value can range from 0 to 1."
msgstr "失真度。值的范围可在 0 到 1 之间。"
@@ -11932,8 +12044,17 @@ msgstr ""
"[AudioEffect] 效果。"
#: doc/classes/AudioServer.xml
-msgid "Returns the names of all audio input devices detected on the system."
-msgstr "返回系统上检测到的所有音频输入设备的名称。"
+msgid ""
+"Returns the names of all audio input devices detected on the system.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/enable_audio_input] must be "
+"[code]true[/code] for audio input to work. See also that setting's "
+"description for caveats related to permissions and operating system privacy "
+"settings."
+msgstr ""
+"返回系统中检测到的所有音频输入设备的名称。\n"
+"[b]注意:[/b][member ProjectSettings.audio/enable_audio_input] 必须为 "
+"[code]true[/code] 音频输入才能正常工作。另请参阅该设置项的描述,了解权限和操"
+"作系统隐私设置相关的说明。"
#: doc/classes/AudioServer.xml
msgid "Generates an [AudioBusLayout] using the available buses and effects."
@@ -12092,7 +12213,7 @@ msgid ""
"Sets the volume of the bus at index [code]bus_idx[/code] to [code]volume_db[/"
"code]."
msgstr ""
-"将索引 [code]bus_idx[/code] 处的总线容量设置为 [code]volume_db[/code]。"
+"将索引 [code]bus_idx[/code] 处的总线音量设置为 [code]volume_db[/code]。"
#: doc/classes/AudioServer.xml
msgid "Swaps the position of two effects in bus [code]bus_idx[/code]."
@@ -12110,17 +12231,24 @@ msgstr "可用音频总线的数量。"
#: doc/classes/AudioServer.xml
msgid ""
-"Name of the current device for audio input (see [method get_device_list]). "
-"On systems with multiple audio inputs (such as analog, USB and HDMI audio), "
-"this can be used to select the audio input device. The value "
-"[code]\"Default\"[/code] will record audio on the system-wide default audio "
-"input. If an invalid device name is set, the value will be reverted back to "
-"[code]\"Default\"[/code]."
-msgstr ""
-"当前音频输出设备的名称(见 [method get_device_list])。在具有多个音频输出的系"
-"统中(例如模拟、USB、HDMI 音频),可用于选择音频输出设备。为 "
+"Name of the current device for audio input (see [method "
+"capture_get_device_list]). On systems with multiple audio inputs (such as "
+"analog, USB and HDMI audio), this can be used to select the audio input "
+"device. The value [code]\"Default\"[/code] will record audio on the system-"
+"wide default audio input. If an invalid device name is set, the value will "
+"be reverted back to [code]\"Default\"[/code].\n"
+"[b]Note:[/b] [member ProjectSettings.audio/enable_audio_input] must be "
+"[code]true[/code] for audio input to work. See also that setting's "
+"description for caveats related to permissions and operating system privacy "
+"settings."
+msgstr ""
+"当前音频输出设备的名称(见 [method capture_get_device_list])。在具有多个音频"
+"输出的系统中(例如模拟、USB、HDMI 音频),可用于选择音频输出设备。为 "
"[code]\"Default\"[/code] 时会从系统默认的音频输出播放音频。如果设置了无效的设"
-"备名称,该值会被恢复为 [code]\"Default\"[/code]。"
+"备名称,该值会被恢复为 [code]\"Default\"[/code]。\n"
+"[b]注意:[/b][member ProjectSettings.audio/enable_audio_input] 必须为 "
+"[code]true[/code] 音频输入才能正常工作。另请参阅该设置项的描述,了解权限和操"
+"作系统隐私设置相关的说明。"
#: doc/classes/AudioServer.xml
msgid ""
@@ -12274,15 +12402,14 @@ msgid "Clears the audio sample data buffer."
msgstr "清除音频样本数据缓冲区。"
#: doc/classes/AudioStreamGeneratorPlayback.xml
+#, fuzzy
msgid ""
-"Returns the number of audio data frames left to play. If this returned "
-"number reaches [code]0[/code], the audio will stop playing until frames are "
-"added again. Therefore, make sure your script can always generate and push "
-"new audio frames fast enough to avoid audio cracking."
+"Returns the number of frames that can be pushed to the audio sample data "
+"buffer without overflowing it. If the result is [code]0[/code], the buffer "
+"is full."
msgstr ""
-"返回要播放的音频数据帧数。如果返回的数字达到 [code]0[/code],音频将停止播放,"
-"直到再次添加帧。因此,请确保你的脚本始终能够以足够快的速度生成和推送新的音频"
-"帧,以避免音频破裂。"
+"如果可以将大小为 [code]amount[/code] 的缓冲区推送到音频采样数据缓冲区而不使其"
+"溢出,则返回 [code]true[/code],否则返回 [code]false[/code]。"
#: doc/classes/AudioStreamGeneratorPlayback.xml
msgid ""
@@ -12304,6 +12431,26 @@ msgstr ""
"[method push_buffer] 效率低,但在 GDScript 中 [method push_frame] 可能[i]更高"
"效[/i]。"
+#: doc/classes/AudioStreamMicrophone.xml
+msgid "Plays real-time audio input data."
+msgstr "播放实时音频输入数据。"
+
+#: doc/classes/AudioStreamMicrophone.xml
+msgid ""
+"When used directly in an [AudioStreamPlayer] node, [AudioStreamMicrophone] "
+"plays back microphone input in real-time. This can be used in conjunction "
+"with [AudioEffectCapture] to process the data or save it.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/enable_audio_input] must be "
+"[code]true[/code] for audio input to work. See also that setting's "
+"description for caveats related to permissions and operating system privacy "
+"settings."
+msgstr ""
+"在 [AudioStreamPlayer] 节点中直接使用时,[AudioStreamMicrophone] 会实时播放麦"
+"克风的输入。可以与 [AudioEffectCapture] 配合使用,对数据进行处理或保存。\n"
+"[b]注意:[/b][member ProjectSettings.audio/enable_audio_input] 必须为 "
+"[code]true[/code] 音频输入才能正常工作。另请参阅该设置项的描述,了解权限和操"
+"作系统隐私设置相关的说明。"
+
#: modules/minimp3/doc_classes/AudioStreamMP3.xml
msgid "MP3 audio stream driver."
msgstr "MP3 音频流驱动程序。"
@@ -12323,7 +12470,7 @@ msgstr "如果为 [code]true[/code],当流到达末尾时将自动循环。"
#: modules/minimp3/doc_classes/AudioStreamMP3.xml
#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
msgid "Time in seconds at which the stream starts after being looped."
-msgstr "循环后流开始的时间(秒)。"
+msgstr "循环时,流开始的时间,单位为秒。"
#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
msgid "OGG Vorbis audio stream driver."
@@ -12456,18 +12603,23 @@ msgstr "在 2D 空间中播放与位置相关的声音。"
#: doc/classes/AudioStreamPlayer2D.xml
msgid ""
-"Plays audio that dampens with distance from screen center.\n"
+"Plays audio that dampens with distance from a given position.\n"
+"By default, audio is heard from the screen center. This can be changed by "
+"adding a [Listener2D] node to the scene and enabling it by calling [method "
+"Listener2D.make_current] on it.\n"
"See also [AudioStreamPlayer] to play a sound non-positionally.\n"
"[b]Note:[/b] Hiding an [AudioStreamPlayer2D] node does not disable its audio "
"output. To temporarily disable an [AudioStreamPlayer2D]'s audio output, set "
"[member volume_db] to a very low value like [code]-100[/code] (which isn't "
"audible to human hearing)."
msgstr ""
-"播放音频,随着与屏幕中心的距离而减弱。\n"
-"参阅 [AudioStreamPlayer] 来播放非位置性的声音。\n"
-"[b]注意:[/b]隐藏一个 [AudioStreamPlayer2D] 节点并不能禁用其音频输出。要暂时"
-"禁用 [AudioStreamPlayer2D] 的音频输出,请将 [member volume_db] 设置为一个非常"
-"低的值,如[code]-100[/code](人的听觉听不到)。"
+"播放音频,随着与给定位置的距离而减弱。\n"
+"默认情况下,音频是从屏幕中心收听的。要修改这个位置,可以在场景中添加一个 "
+"[Listener2D] 节点,并通过调用 [method Listener2D.make_current] 将其启用。\n"
+"另请参阅 [AudioStreamPlayer] 来播放非位置性的声音。\n"
+"[b]注意:[/b]隐藏 [AudioStreamPlayer2D] 节点并不能禁用其音频输出。要暂时禁用 "
+"[AudioStreamPlayer2D] 的音频输出,请将 [member volume_db] 设置为非常低的值,"
+"如 [code]-100[/code](人的听觉听不到)。"
#: doc/classes/AudioStreamPlayer2D.xml doc/classes/AudioStreamPlayer3D.xml
msgid "Returns the position in the [AudioStream]."
@@ -12530,14 +12682,14 @@ msgid ""
"audible to human hearing)."
msgstr ""
"播放具有定向性的声音效果,如果需要,可随着距离的增加而减弱,产生空间中可听到"
-"的位置效果。为了更逼真,低通滤波器会自动应用于远处的声音。这可以通过设置"
-"[member attenuation_filter_cutoff_hz]为[code]20500[/code]来禁用。\n"
-"默认情况下,音频是从相机的位置听到的,这可以通过在场景中添加一个[Listener]节"
-"点,并通过对其调用[method Listener.make_current]来启用它,以改变。\n"
-"参阅[AudioStreamPlayer]来播放非位置的声音。\n"
-"[b]注意:[/b]隐藏一个[AudioStreamPlayer3D]节点并不能禁用其音频输出。要暂时禁"
-"用[AudioStreamPlayer3D]的音频输出,请将[member unit_db]设置为一个非常低的值,"
-"如[code]-100[/code](人的听觉听不到)。"
+"的位置效果。为了更逼真,低通滤波器会自动应用于远处的声音。这可以通过设置 "
+"[member attenuation_filter_cutoff_hz] 为 [code]20500[/code] 来禁用。\n"
+"默认情况下,音频是从相机的位置听到的,这可以通过在场景中添加一个 [Listener] "
+"节点,并通过对其调用 [method Listener.make_current] 来启用它,以改变。\n"
+"参阅 [AudioStreamPlayer] 来播放非位置的声音。\n"
+"[b]注意:[/b]隐藏一个 [AudioStreamPlayer3D] 节点并不能禁用其音频输出。要暂时"
+"禁用 [AudioStreamPlayer3D] 的音频输出,请将 [member unit_db] 设置为一个非常低"
+"的值,如 [code]-100[/code](人的听觉听不到)。"
#: doc/classes/AudioStreamPlayer3D.xml
msgid ""
@@ -12609,8 +12761,9 @@ msgid ""
"doppler_tracking] property is set to a value other than [constant Camera."
"DOPPLER_TRACKING_DISABLED]."
msgstr ""
-"决定 [url=https://en.wikipedia.org/wiki/Doppler_effect]多普勒效应[/url] 应该"
-"在哪一步计算。\n"
+"决定[url=https://zh.wikipedia.org/wiki/"
+"%E5%A4%9A%E6%99%AE%E5%8B%92%E6%95%88%E5%BA%94]多普勒效应[/url]应该在哪一步计"
+"算。\n"
"[b]注意:[/b]仅当当前 [Camera] 的 [member Camera.doppler_tracking] 属性设置"
"为 [constant Camera.DOPPLER_TRACKING_DISABLED] 以外的值时有效。"
@@ -12640,7 +12793,7 @@ msgstr "设置声级的绝对最大值,以分贝为单位。"
msgid ""
"Sets the distance from which the [member out_of_range_mode] takes effect. "
"Has no effect if set to 0."
-msgstr "设置[member out_of_range_mode]生效的距离。设置为0时没有效果。"
+msgstr "设置 [member out_of_range_mode] 生效的距离。设置为 0 时没有效果。"
#: doc/classes/AudioStreamPlayer3D.xml
msgid ""
@@ -12780,12 +12933,12 @@ msgid ""
"PCM8 to signed PCM8, subtract 128 from each byte."
msgstr ""
"包含以字节为单位的音频数据。\n"
-"[b]注意:[/b]此属性需要有符号的 PCM8数据。要将无符号的 PCM8转换为有符号的 "
-"PCM8,需要从每个字节中减去128。"
+"[b]注意:[/b]此属性需要有符号的 PCM8 数据。要将无符号的 PCM8 转换为有符号的 "
+"PCM8,需要从每个字节中减去 128。"
#: doc/classes/AudioStreamSample.xml
msgid "Audio format. See [enum Format] constants for values."
-msgstr "音频格式。参阅 [enum Format] 常量的值。"
+msgstr "音频格式。取值见 [enum Format] 常量。"
#: doc/classes/AudioStreamSample.xml
msgid ""
@@ -12889,16 +13042,17 @@ msgstr ""
"[code]texture(SCREEN_TEXTURE, ...)[/code] 函数在着色器脚本中对其进行访问。"
#: doc/classes/BackBufferCopy.xml
+#, fuzzy
msgid ""
"Node for back-buffering the currently-displayed screen. The region defined "
-"in the BackBufferCopy node is buffered with the content of the screen it "
+"in the [BackBufferCopy] node is buffered with the content of the screen it "
"covers, or the entire screen according to the copy mode set. Use the "
"[code]texture(SCREEN_TEXTURE, ...)[/code] function in your shader scripts to "
"access the buffer.\n"
"[b]Note:[/b] Since this node inherits from [Node2D] (and not [Control]), "
"anchors and margins won't apply to child [Control]-derived nodes. This can "
"be problematic when resizing the window. To avoid this, add [Control]-"
-"derived nodes as [i]siblings[/i] to the BackBufferCopy node instead of "
+"derived nodes as [i]siblings[/i] to the [BackBufferCopy] node instead of "
"adding them as children."
msgstr ""
"用于对当前屏幕显示进行后台缓冲的节点。BackBufferCopy 节点中定义的区域与其覆盖"
@@ -12914,26 +13068,30 @@ msgid "Buffer mode. See [enum CopyMode] constants."
msgstr "缓冲区模式。见 [enum CopyMode] 常量。"
#: doc/classes/BackBufferCopy.xml
+#, fuzzy
msgid ""
-"The area covered by the BackBufferCopy. Only used if [member copy_mode] is "
+"The area covered by the [BackBufferCopy]. Only used if [member copy_mode] is "
"[constant COPY_MODE_RECT]."
msgstr ""
"BackBufferCopy 覆盖的区域。只有当 [member copy_mode] 是 [constant "
"COPY_MODE_RECT] 时才使用。"
#: doc/classes/BackBufferCopy.xml
+#, fuzzy
msgid ""
-"Disables the buffering mode. This means the BackBufferCopy node will "
+"Disables the buffering mode. This means the [BackBufferCopy] node will "
"directly use the portion of screen it covers."
msgstr ""
"禁用缓冲模式。这意味着 BackBufferCopy 节点将直接使用它所覆盖的屏幕部分。"
#: doc/classes/BackBufferCopy.xml
-msgid "BackBufferCopy buffers a rectangular region."
+#, fuzzy
+msgid "[BackBufferCopy] buffers a rectangular region."
msgstr "BackBufferCopy 缓冲一个矩形区域。"
#: doc/classes/BackBufferCopy.xml
-msgid "BackBufferCopy buffers the entire screen."
+#, fuzzy
+msgid "[BackBufferCopy] buffers the entire screen."
msgstr "BackBufferCopy 缓冲整个屏幕。"
#: doc/classes/BakedLightmap.xml
@@ -13151,7 +13309,7 @@ msgid ""
"When enabled, a lightmap denoiser will be used to reduce the noise inherent "
"to Monte Carlo based global illumination."
msgstr ""
-"启用后,将使用光照贴图降噪器来减少基于Monte Carlo的全局照明固有的噪声。"
+"启用后,将使用光照贴图降噪器来减少基于 Monte Carlo 的全局照明固有的噪声。"
#: doc/classes/BakedLightmap.xml
msgid ""
@@ -13197,12 +13355,12 @@ msgid ""
"Returns if no viable save path is found. This can happen where an [member "
"image_path] is not specified or when the save location is invalid."
msgstr ""
-"如果没有找到合适的保存路径,则返回。这可能发生在没有指定[member image_path]或"
-"者保存位置无效的情况下。"
+"如果没有找到合适的保存路径,则返回。这可能发生在没有指定 [member image_path] "
+"或者保存位置无效的情况下。"
#: doc/classes/BakedLightmap.xml doc/classes/SpatialMaterial.xml
msgid "Currently unused."
-msgstr "当前未使用."
+msgstr "当前未使用。"
#: doc/classes/BakedLightmap.xml
msgid "Returns when the baker cannot save per-mesh textures to file."
@@ -13322,7 +13480,7 @@ msgid ""
"group]."
msgstr ""
"改变按钮的 [member pressed] 状态,不触发 [signal toggled]。当你只想改变按钮的"
-"状态而不发送按下事件时使用(例如,在初始化场景时)。只有当 [member "
+"状态而不发送按下事件时使用(例如在初始化场景时)。只有当 [member "
"toggle_mode] 是 [code]true[/code] 时才有效。\n"
"[b]注意:[/b]这个方法不会释放其按钮 [member group] 中的其他按钮。"
@@ -13753,7 +13911,7 @@ msgstr ""
#: doc/classes/BitMap.xml
msgid ""
"Creates a bitmap with the specified size, filled with [code]false[/code]."
-msgstr "创建一个指定尺寸的位图,用[code]false[/code]填充。"
+msgstr "创建一个指定尺寸的位图,用 [code]false[/code] 填充。"
#: doc/classes/BitMap.xml
msgid ""
@@ -13777,7 +13935,7 @@ msgstr "返回位图的尺寸。"
#: doc/classes/BitMap.xml
msgid ""
"Returns the amount of bitmap elements that are set to [code]true[/code]."
-msgstr "返回设置为 [code]true[/code]的位图元素的数量。"
+msgstr "返回设置为 [code]true[/code] 的位图元素的数量。"
#: doc/classes/BitMap.xml
msgid ""
@@ -13811,9 +13969,9 @@ msgid ""
"bmfont/]BMFont[/url] format.\n"
"Handles files with the [code].fnt[/code] extension."
msgstr ""
-"使用[url=https://www.angelcode.com/products/bmfont/]BMFont[/url]格式的字体来"
-"渲染文本。\n"
-"处理扩展名为[code].fnt[/code]的文件。"
+"使用 [url=https://www.angelcode.com/products/bmfont/]BMFont[/url] 格式的字体"
+"来渲染文本。\n"
+"处理扩展名为 [code].fnt[/code] 的文件。"
#: doc/classes/BitmapFont.xml
msgid ""
@@ -13931,7 +14089,7 @@ msgstr ""
#: doc/classes/Bone2D.xml
msgid ""
"Length of the bone's representation drawn in the editor's viewport in pixels."
-msgstr "在编辑器的视窗中绘制的骨骼的长度,单位为像素。"
+msgstr "在编辑器的视口中绘制的骨骼的长度,单位为像素。"
#: doc/classes/Bone2D.xml
msgid ""
@@ -14262,7 +14420,7 @@ msgstr "将文本向左对齐。"
#: doc/classes/Button.xml
msgid "Align the text to the center."
-msgstr "将文本居中对齐。。"
+msgstr "将文本居中对齐。"
#: doc/classes/Button.xml
msgid "Align the text to the right."
@@ -14413,7 +14571,7 @@ msgid ""
"[code]enable_next[/code] is [code]true[/code], request to make the next "
"camera current, if any."
msgstr ""
-"如果这是当前相机,则将其从当前相机中移除。如果[code]enable_next[/code]是"
+"如果这是当前相机,则将其从当前相机中移除。如果 [code]enable_next[/code] 为 "
"[code]true[/code],请求使下一个相机成为当前相机(如果有)。"
#: doc/classes/Camera.xml
@@ -14436,8 +14594,8 @@ msgid ""
"Returns [code]true[/code] if the given [code]layer[/code] in the [member "
"cull_mask] is enabled, [code]false[/code] otherwise."
msgstr ""
-"如果[member cull_mask]中给定的[code]layer[/code]被启用,返回 [code]true[/"
-"code],否则返回 [code]false[/code]。"
+"如果 [member cull_mask] 中给定的 [code]layer[/code] 被启用,则返回 "
+"[code]true[/code],否则返回 [code]false[/code]。"
#: doc/classes/Camera.xml
msgid ""
@@ -14507,18 +14665,19 @@ msgstr ""
#: doc/classes/Camera.xml
msgid ""
"Enables or disables the given [code]layer[/code] in the [member cull_mask]."
-msgstr "启用或禁用[member cull_mask]中给定的[code]layer[/code]。"
+msgstr "启用或禁用 [member cull_mask] 中给定的 [code]layer[/code]。"
#: doc/classes/Camera.xml
msgid ""
"Sets the camera projection to frustum mode (see [constant "
"PROJECTION_FRUSTUM]), by specifying a [code]size[/code], an [code]offset[/"
"code], and the [code]z_near[/code] and [code]z_far[/code] clip planes in "
-"world space units."
+"world space units. See also [member frustum_offset]."
msgstr ""
"通过指定大小 [code]size[/code] 、偏移量 [code]offset[/code] 以及以世界空间为"
"单位的 [code]z_near[/code] 和 [code]z_far[/code] 裁剪平面,将相机投影设置为视"
-"锥模式(请参阅 [constant PROJECTION_FRUSTUM])。"
+"锥模式(请参阅 [constant PROJECTION_FRUSTUM])。另请参阅 [member "
+"frustum_offset]。"
#: doc/classes/Camera.xml
msgid ""
@@ -14637,19 +14796,23 @@ msgstr ""
"相机的视野角度,以度为单位。仅适用于透视模式。由于 [member keep_aspect] 锁定"
"一个轴,因此 [code]fov[/code] 设置另一个轴的视角。\n"
"作为参考,默认的垂直视野值([code]70.0[/code])相当于以下水平 FOV:\n"
-"- 在 4:3 视窗中约86.07 度\n"
-"- 在 16:10 视窗中约 96.50 度\n"
-"- 在 16:9 视窗中约102.45 度\n"
-"- 在 21:9 视窗中约117.06 度"
+"- 在 4:3 视口中约86.07 度\n"
+"- 在 16:10 视口中约 96.50 度\n"
+"- 在 16:9 视口中约102.45 度\n"
+"- 在 21:9 视口中约117.06 度"
#: doc/classes/Camera.xml
msgid ""
"The camera's frustum offset. This can be changed from the default to create "
"\"tilted frustum\" effects such as [url=https://zdoom.org/wiki/Y-shearing]Y-"
-"shearing[/url]."
+"shearing[/url].\n"
+"[b]Note:[/b] Only effective if [member projection] is [constant "
+"PROJECTION_FRUSTUM]."
msgstr ""
-"相机的机身偏移。可以更改默认值,以创建 \"倾斜frustum \"效果,如[url=https://"
-"zdoom.org/wiki/Y-shearing]Y-shearing[/url]。"
+"相机的机身偏移。可以更改默认值,以创建“倾斜平截头体”效果,如 [url=https://"
+"zdoom.org/wiki/Y-shearing]Y-shearing[/url]。\n"
+"[b]注意:[/b]仅在 [member projection] 为 [constant PROJECTION_FRUSTUM] 时有"
+"效。"
#: doc/classes/Camera.xml
msgid "The horizontal (X) offset of the camera viewport."
@@ -14680,12 +14843,12 @@ msgstr ""
#: doc/classes/Camera.xml
msgid ""
-"The camera's size measured as 1/2 the width or height. Only applicable in "
-"orthogonal and frustum modes. Since [member keep_aspect] locks on axis, "
-"[code]size[/code] sets the other axis' size length."
+"The camera's size in meters measured as the diameter of the width or height, "
+"depending on [member keep_aspect]. Only applicable in orthogonal and frustum "
+"modes."
msgstr ""
-"相机的尺寸,以 1/2 的宽度或高度为单位。仅适用于正交及视锥模式。由于 [member "
-"keep_aspect] 锁定在轴上,因此 [code]size[/code] 设置其他轴的尺寸长度。"
+"该相机的大小,单位为米,描述的是完整的宽度或者高度,取决于 [member "
+"keep_aspect]。仅适用于正交和平截头体模式。"
#: doc/classes/Camera.xml
msgid "The vertical (Y) offset of the camera viewport."
@@ -14860,7 +15023,7 @@ msgstr ""
msgid ""
"Make this the current 2D camera for the scene (viewport and layer), in case "
"there are many cameras in the scene."
-msgstr "使之成为场景(视窗和图层)的当前 2D 相机,以防场景中有很多相机。"
+msgstr "使之成为该场景(视区和图层)的当前 2D 相机,以防场景中有很多相机。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -14906,8 +15069,8 @@ msgid ""
"The custom [Viewport] node attached to the [Camera2D]. If [code]null[/code] "
"or not a [Viewport], uses the default viewport instead."
msgstr ""
-"连接到[Camera2D]的自定义[Viewport]节点。如果[code]null[/code]或不是"
-"[Viewport],则使用默认的 Viewpor。"
+"连接到 [Camera2D] 的自定义 [Viewport] 节点。如果为 [code]null[/code] 或者不"
+"是 [Viewport],则使用默认的视区。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -15038,7 +15201,7 @@ msgstr ""
#: doc/classes/Camera2D.xml
msgid "The camera's process callback. See [enum Camera2DProcessMode]."
-msgstr "相机的过程回调。请参阅[enum Camera2DProcessMode]。"
+msgstr "相机的过程回调。见 [enum Camera2DProcessMode]。"
#: doc/classes/Camera2D.xml
msgid "If [code]true[/code], the camera view rotates with the target."
@@ -15067,9 +15230,9 @@ msgid ""
"example, use [code]Vector2(0.5, 0.5)[/code] for a 2× zoom-in, and "
"[code]Vector2(4, 4)[/code] for a 4× zoom-out."
msgstr ""
-"相机相对于视窗的缩放比例。大于 [code]Vector2(1, 1)[/code] 的值会缩小内容,而"
-"较小的值会起到放大镜的作用。例如,将 [code]Vector2(0.5, 0.5)[/code] 放大 2 "
-"倍,然后将 [code]Vector2(4, 4)[/code] 用于 4 倍缩小。"
+"相机相对于视口的缩放比例。大于 [code]Vector2(1, 1)[/code] 的值会缩小内容,而"
+"较小的值会起到放大的作用。例如,将 [code]Vector2(0.5, 0.5)[/code] 放大 2 倍,"
+"然后将 [code]Vector2(4, 4)[/code] 用于 4 倍缩小。"
#: doc/classes/Camera2D.xml
msgid ""
@@ -15206,11 +15369,11 @@ msgstr "移除指定的相机源 [code]feed[/code]。"
#: doc/classes/CameraServer.xml
msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
-msgstr "当添加 [CameraFeed] 时触发(例如,插入网络摄像头)。"
+msgstr "当添加 [CameraFeed] 时触发(例如插入网络摄像头时)。"
#: doc/classes/CameraServer.xml
msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
-msgstr "当移除 [CameraFeed] 时触发(例如,拔掉网络摄像头)。"
+msgstr "当移除 [CameraFeed] 时触发(例如拔掉网络摄像头时)。"
#: doc/classes/CameraServer.xml
msgid "The RGBA camera image."
@@ -15269,13 +15432,14 @@ msgid ""
"inherit and extend their parent's transform. [CanvasItem] is extended by "
"[Control] for anything GUI-related, and by [Node2D] for anything related to "
"the 2D engine.\n"
-"Any [CanvasItem] can draw. For this, [method update] must be called, then "
-"[constant NOTIFICATION_DRAW] will be received on idle time to request "
-"redraw. Because of this, canvas items don't need to be redrawn on every "
-"frame, improving the performance significantly. Several functions for "
+"Any [CanvasItem] can draw. For this, [method update] is called by the "
+"engine, then [constant NOTIFICATION_DRAW] will be received on idle time to "
+"request redraw. Because of this, canvas items don't need to be redrawn on "
+"every frame, improving the performance significantly. Several functions for "
"drawing on the [CanvasItem] are provided (see [code]draw_*[/code] "
-"functions). However, they can only be used inside the [method Object."
-"_notification], signal or [method _draw] virtual functions.\n"
+"functions). However, they can only be used inside [method _draw], its "
+"corresponding [method Object._notification] or methods connected to the "
+"[signal draw] signal.\n"
"Canvas items are drawn in tree order. By default, children are on top of "
"their parents so a root [CanvasItem] will be drawn behind everything. This "
"behavior can be changed on a per-item basis.\n"
@@ -15292,13 +15456,13 @@ msgstr ""
"任何 2D 对象的基类。画布项目(Canvas Item)以树状排列;子节点继承并扩展其父节"
"点的变换。[CanvasItem] 由 [Control] 扩展为任何 GUI 相关的东西,由 [Node2D] 扩"
"展为任何 2D 引擎相关的东西。\n"
-"任何 [CanvasItem] 都可以绘图。要绘图就必须调用 [method update],然后就会在空"
-"闲时接收到 [constant NOTIFICATION_DRAW] 来请求重绘。因此画布项目不需要每一帧"
-"都重绘,大大提升了性能。提供了几个用于在 [CanvasItem] 上绘图的函数(请参阅 "
-"[code]draw_*[/code] 函数)。但是,它们只能在 [method Object._notification]、"
-"信号或虚函数 [method _draw] 内部使用。\n"
-"画布项目是按树状顺序绘制的。默认情况下,子项目在其父项目的顶部,因此根"
-"[CanvasItem]将被画在所有项目的后面。这种行为可以在每个项目的基础上进行更"
+"任何 [CanvasItem] 都可以绘图。绘图时,引擎会调用 [method update],然后就会在"
+"空闲时接收到 [constant NOTIFICATION_DRAW] 来请求重绘。因此画布项目不需要每一"
+"帧都重绘,大大提升了性能。提供了几个用于在 [CanvasItem] 上绘图的函数(请参阅 "
+"[code]draw_*[/code] 函数)。不过它们都只能在 [method _draw] 及其对应的 "
+"[method Object._notification] 或 [signal draw] 内部使用。\n"
+"画布项目是按树状顺序绘制的。默认情况下,子项目在其父项目的顶部,因此根 "
+"[CanvasItem] 将被画在所有项目的后面。这种行为可以在每个项目的基础上进行更"
"改。\n"
"[CanvasItem] 也可以被隐藏,这也将隐藏其子项目。它提供了许多方法来改变参数,如"
"调制(对它自己和它的子项目)和自调制(只对它自己),以及它的混合模式。\n"
@@ -15318,9 +15482,14 @@ msgstr "2D 中的自定义绘图"
#: doc/classes/CanvasItem.xml
msgid ""
-"Overridable function called by the engine (if defined) to draw the canvas "
-"item."
-msgstr "引擎调用的可覆盖函数(如果定义了)来绘制画布项目。"
+"Called when [CanvasItem] has been requested to redraw (when [method update] "
+"is called, either manually or by the engine).\n"
+"Corresponds to the [constant NOTIFICATION_DRAW] notification in [method "
+"Object._notification]."
+msgstr ""
+"当 [CanvasItem] 被请求重绘时调用(手动调用或者引擎调用 [method update] "
+"时)。\n"
+"对应于 [method Object._notification] 中的 [constant NOTIFICATION_DRAW] 通知。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15624,9 +15793,10 @@ msgid ""
"[/codeblock]\n"
"See also [method Font.draw]."
msgstr ""
-"使用指定的[code]font[/code]在[code]position[/code]绘制[code]text[/code](左下"
-"角作为字体的基线)。该文本的颜色将乘以[code]modulate[/code]。如果"
-"[code]clip_w[/code]大于或等于0,文本超过了指定的宽度,将被裁剪。\n"
+"使用指定的字体 [code]font[/code] 在 [code]position[/code] 位置绘制 "
+"[code]text[/code](位置为字体基线的左下角)。该文本的颜色将乘以 "
+"[code]modulate[/code]。如果 [code]clip_w[/code] 大于等于 0,文本超过了指定的"
+"宽度时会被裁剪。\n"
"[b]使用项目默认字体的例子:[/b]\n"
"[codeblock]\n"
"# 如果在不断重绘的脚本中使用此方法,\n"
@@ -15635,7 +15805,7 @@ msgstr ""
"var default_font = Control.new().get_font(\"font\")\n"
"draw_string(default_font, Vector2(64, 64), \"Hello world\")\n"
"[/codeblock]\n"
-"参阅[method Font.draw]。"
+"另请参阅 [method Font.draw]。"
#: doc/classes/CanvasItem.xml
msgid "Draws a styled rectangle."
@@ -15721,7 +15891,7 @@ msgstr "返回这个项目相对于视区的变换。"
#: doc/classes/CanvasItem.xml
msgid "Returns the [World2D] where this item is in."
-msgstr "返回此物品所在的[World2D]。"
+msgstr "返回此物品所在的 [World2D]。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15742,7 +15912,7 @@ msgid ""
"Returns [code]true[/code] if the node is set as top-level. See [method "
"set_as_toplevel]."
msgstr ""
-"如果节点设置为顶层,则返回 [code]true[/code]。参阅 [method set_as_toplevel]。"
+"如果节点设置为顶层,则返回 [code]true[/code]。见 [method set_as_toplevel]。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15750,16 +15920,16 @@ msgid ""
"to children."
msgstr "如果将全局变换通知传达给子级,则返回 [code]true[/code]。"
-#: doc/classes/CanvasItem.xml doc/classes/Spatial.xml
+#: doc/classes/CanvasItem.xml
msgid ""
"Returns [code]true[/code] if the node is present in the [SceneTree], its "
"[member visible] property is [code]true[/code] and all its antecedents are "
"also visible. If any antecedent is hidden, this node will not be visible in "
-"the scene tree."
+"the scene tree, and is consequently not drawn (see [method _draw])."
msgstr ""
"如果该节点位于 [SceneTree] 中,并且其 [member visible] 属性为 [code]true[/"
"code],并且其所有上层节点也均可见,则返回 [code]true[/code]。如果任何上层节点"
-"被隐藏,则该节点在场景树中将不可见。"
+"被隐藏,则该节点在场景树中将不可见,因此也不会进行绘制(见 [method _draw])。"
#: doc/classes/CanvasItem.xml
msgid "Assigns [code]screen_point[/code] as this node's new local transform."
@@ -15814,11 +15984,14 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Queue the [CanvasItem] for update. [constant NOTIFICATION_DRAW] will be "
-"called on idle time to request redraw."
+"Queues the [CanvasItem] to redraw. During idle time, if [CanvasItem] is "
+"visible, [constant NOTIFICATION_DRAW] is sent and [method _draw] is called. "
+"This only occurs [b]once[/b] per frame, even if this method has been called "
+"multiple times."
msgstr ""
-"将 [CanvasItem] 排队等待更新。在空闲时间将调用 [constant NOTIFICATION_DRAW] "
-"以请求重绘。"
+"将该 [CanvasItem] 加入重绘队列。空闲时,如果 [CanvasItem] 可见,则会发送 "
+"[constant NOTIFICATION_DRAW] 并调用 [method _draw]。即便多次调用这个方法,每"
+"帧也都只会发生[b]一次[/b]绘制。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15865,18 +16038,23 @@ msgid ""
"visible is to call one of the multiple [code]popup*()[/code] functions "
"instead."
msgstr ""
-"如果为 [code]true[/code],这个[CanvasItem]被绘制。只有当它的所有父节点也可见"
-"时,该节点才是可见的(换句话说,[method is_visible_in_tree]必须返回 "
+"如果为 [code]true[/code],这个 [CanvasItem] 被绘制。只有当它的所有父节点也可"
+"见时,该节点才是可见的(换句话说,[method is_visible_in_tree] 必须返回 "
"[code]true[/code])。\n"
-"[b]注意:[/b]对于继承了[Popup]的控件,使其可见的正确方法是调用多个"
-"[code]popup*()[/code]函数之一。"
+"[b]注意:[/b]对于继承了 [Popup] 的控件,使其可见的正确方法是调用多个 "
+"[code]popup*()[/code] 函数之一。"
#: doc/classes/CanvasItem.xml
msgid ""
-"Emitted when the [CanvasItem] must redraw. This can only be connected "
-"realtime, as deferred will not allow drawing."
+"Emitted when the [CanvasItem] must redraw, [i]after[/i] the related "
+"[constant NOTIFICATION_DRAW] notification, and [i]before[/i] [method _draw] "
+"is called.\n"
+"[b]Note:[/b] Deferred connections do not allow drawing through the "
+"[code]draw_*[/code] methods."
msgstr ""
-"当 [CanvasItem] 必须重绘时发出。这只能是实时连接,因为延迟将不允许绘制。"
+"当该 [CanvasItem] 必须重绘时发出,发生在相关的 [constant NOTIFICATION_DRAW] "
+"通知[i]之后[/i],调用 [method _draw] [i]之前[/i]。\n"
+"[b]注意:[/b]延迟连接无法使用 [code]draw_*[/code] 方法进行绘制。"
#: doc/classes/CanvasItem.xml
msgid "Emitted when becoming hidden."
@@ -15945,20 +16123,20 @@ msgstr ""
"set_notify_local_transform] 启用时,才会收到这个通知。"
#: doc/classes/CanvasItem.xml
-msgid "The [CanvasItem] is requested to draw."
-msgstr "要求绘制[CanvasItem]。"
+msgid "The [CanvasItem] is requested to draw (see [method _draw])."
+msgstr "要求绘制该 [CanvasItem](见 [method _draw])。"
#: doc/classes/CanvasItem.xml
msgid "The [CanvasItem]'s visibility has changed."
-msgstr "[CanvasItem]的可见性已更改。"
+msgstr "该 [CanvasItem] 的可见性已更改。"
#: doc/classes/CanvasItem.xml
msgid "The [CanvasItem] has entered the canvas."
-msgstr "[CanvasItem]已进入画布。"
+msgstr "该 [CanvasItem] 已进入画布。"
#: doc/classes/CanvasItem.xml
msgid "The [CanvasItem] has exited the canvas."
-msgstr "[CanvasItem]已退出画布。"
+msgstr "该 [CanvasItem] 已退出画布。"
#: doc/classes/CanvasItemMaterial.xml
msgid "A material for [CanvasItem]s."
@@ -16097,9 +16275,15 @@ msgstr ""
#: doc/classes/CanvasLayer.xml
msgid ""
-"Sets the layer to follow the viewport in order to simulate a pseudo 3D "
+"If enabled, the [CanvasLayer] will use the viewport's transform, so it will "
+"move when camera moves instead of being anchored in a fixed position on the "
+"screen.\n"
+"Together with [member follow_viewport_scale] it can be used for a pseudo 3D "
"effect."
-msgstr "将图层设置为跟随视区,以模拟伪 3D 效果。"
+msgstr ""
+"启用时,该 [CanvasLayer] 会使用视区的变换,所以它会随相机移动,而不是保持在屏"
+"幕上的某个固定位置。\n"
+"与 [member follow_viewport_scale] 配合可以实现伪 3D 效果。"
#: doc/classes/CanvasLayer.xml
msgid ""
@@ -16469,7 +16653,7 @@ msgstr ""
"外观不同。为了遵循用户体验,建议在切换它对某些东西有[b]直接[/b]影响时使用"
"CheckButton。例如,如果切换它可以启用或禁用设置而不需要用户按下确认按钮时,使"
"用它。\n"
-"参阅[BaseButton],它包含了与该节点相关的常规属性和方法。"
+"另请参阅 [BaseButton],它包含了与该节点相关的常规属性和方法。"
#: doc/classes/CheckButton.xml
msgid "The [CheckButton] text's font color."
@@ -16642,10 +16826,10 @@ msgid ""
"[b]Note:[/b] In exported release builds the debug info is not available, so "
"the returned dictionaries will contain only method names."
msgstr ""
-"如果[code]no_inheritance[/code]是[code]false[/code],返回一个包含"
-"[code]class[/code]或其父级所有方法的数组。数组的每个元素都是一个"
-"[Dictionary],其键值如:[code]args[/code], [code]default_args[/code], "
-"[code]flags[/code], [code]id[/code], [code]name[/code], [code]return:"
+"如果 [code]no_inheritance[/code] 为 [code]false[/code],返回一个包含 "
+"[code]class[/code] 或其父级所有方法的数组。数组的每个元素都是一个 "
+"[Dictionary],包含的键有:[code]args[/code]、[code]default_args[/code]、"
+"[code]flags[/code]、[code]id[/code]、[code]name[/code]、[code]return:"
"(class_name, hint, hint_string, name, type, usage)[/code]。\n"
"[b]注意:[/b]在导出的发布版本中,调试信息不可用,所以返回的字典将只包含方法名"
"称。"
@@ -16729,25 +16913,25 @@ msgstr "返回所有可用类的名称。"
msgid ""
"Returns the names of all the classes that directly or indirectly inherit "
"from [code]class[/code]."
-msgstr "返回直接或间接继承自[code]class[/code]的所有类的名称。"
+msgstr "返回所有直接或间接继承自 [code]class[/code] 的类的名称。"
#: doc/classes/ClassDB.xml
msgid "Returns the parent class of [code]class[/code]."
-msgstr "返回 [code]class[/code]的父类。"
+msgstr "返回 [code]class[/code] 的父类。"
#: doc/classes/ClassDB.xml
msgid "Creates an instance of [code]class[/code]."
-msgstr "创建[code]class[/code]的实例。"
+msgstr "创建 [code]class[/code] 的实例。"
#: doc/classes/ClassDB.xml
msgid "Returns whether this [code]class[/code] is enabled or not."
-msgstr "返回是否启用此[code]class[/code]。"
+msgstr "返回这个 [code]class[/code] 是否已启用。"
#: doc/classes/ClassDB.xml
msgid ""
"Returns whether [code]inherits[/code] is an ancestor of [code]class[/code] "
"or not."
-msgstr "返回 [code]inherits[/code]是否是[code]class[/code]的祖先。"
+msgstr "返回 [code]inherits[/code] 是否为 [code]class[/code] 的祖先。"
#: doc/classes/ClippedCamera.xml
msgid "A [Camera] that includes collision."
@@ -16787,7 +16971,7 @@ msgid ""
"[b]Note:[/b] Bit indices range from 0-19."
msgstr ""
"如果指定的位索引打开,则返回 [code]true[/code]。\n"
-"[b]注意:[/b]位索引的范围是0-19。"
+"[b]注意:[/b]位索引的范围是 0-19。"
#: doc/classes/ClippedCamera.xml
msgid "Removes a collision exception with the specified node."
@@ -16802,8 +16986,8 @@ msgid ""
"Sets the specified bit index to the [code]value[/code].\n"
"[b]Note:[/b] Bit indices range from 0-19."
msgstr ""
-"将指定的位索引设置为[code]value[/code]。\n"
-"[b]注意:[/b]位索引的范围是0-19。"
+"将指定的位索引设置为 [code]value[/code]。\n"
+"[b]注意:[/b]位索引的范围是 0-19。"
#: doc/classes/ClippedCamera.xml
msgid "If [code]true[/code], the camera stops on contact with [Area]s."
@@ -16832,7 +17016,7 @@ msgstr "相机的碰撞距离。相机与碰撞物体的距离不能超过这个
#: doc/classes/ClippedCamera.xml
msgid "The camera's process callback. See [enum ProcessMode]."
-msgstr "相机的过程回调。请参阅 [enum ProcessMode]。"
+msgstr "相机的处理回调。见 [enum ProcessMode]。"
#: doc/classes/CollisionObject.xml
msgid "Base node for collision objects."
@@ -16876,14 +17060,14 @@ msgid ""
"Returns whether or not the specified [code]bit[/code] of the [member "
"collision_layer] is set."
msgstr ""
-"返回是否设置了碰撞层 [member collision_layer] 的指定位[code]bit[/code]。"
+"返回是否设置了碰撞层 [member collision_layer] 的指定位 [code]bit[/code]。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
msgid ""
"Returns whether or not the specified [code]bit[/code] of the [member "
"collision_mask] is set."
msgstr ""
-"返回是否设置了碰撞掩码 [member collision_mask] 的指定位[code]bit[/code]。"
+"返回是否设置了碰撞掩码 [member collision_mask] 的指定位 [code]bit[/code]。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
#: doc/classes/Navigation2D.xml
@@ -16895,8 +17079,8 @@ msgid ""
"Returns an [Array] of [code]owner_id[/code] identifiers. You can use these "
"ids in other methods that take [code]owner_id[/code] as an argument."
msgstr ""
-"返回一个[code]owner_id[/code]标识符的[Array]。你可以在其他使用"
-"[code]owner_id[/code]作为参数的方法中使用这些id。"
+"返回一个 [code]owner_id[/code] 标识符的 [Array]。你可以在其他使用 "
+"[code]owner_id[/code] 作为参数的方法中使用这些 ID。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
msgid "If [code]true[/code], the shape owner and its shapes are disabled."
@@ -16909,30 +17093,30 @@ msgstr "移除给定形状的所有者。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
msgid ""
"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
-"code] in the the [member collision_layer].\n"
+"code] in the [member collision_layer].\n"
"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
-"code] in the the [member collision_layer]."
+"code] in the [member collision_layer]."
msgstr ""
-"如果[code]value[/code]为 [code]true[/code],则设置[member collision_layer]中"
-"指定的[code]bit[/code]位。\n"
-"如果[code]value[/code]为 [code]false[/code],清除[member collision_layer]中指"
-"定的 [code]bit[/code]位。"
+"如果 [code]value[/code] 为 [code]true[/code],则设置 [member "
+"collision_layer] 中指定的 [code]bit[/code] 位。\n"
+"如果 [code]value[/code] 为 [code]false[/code],则清除 [member "
+"collision_layer] 中指定的 [code]bit[/code] 位。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
msgid ""
"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
-"code] in the the [member collision_mask].\n"
+"code] in the [member collision_mask].\n"
"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
-"code] in the the [member collision_mask]."
+"code] in the [member collision_mask]."
msgstr ""
-"如果[code]value[/code]为 [code]true[/code],则设置[member collision_mask]中指"
-"定的[code]bit[/code]位。\n"
-"如果[code]value[/code]为 [code]false[/code],清除[member collision_mask]中指"
-"定的 [code]bit[/code]位。"
+"如果 [code]value[/code] 为 [code]true[/code],则设置 [member collision_mask] "
+"中指定的 [code]bit[/code] 位。\n"
+"如果 [code]value[/code] 为 [code]false[/code],则清除 [member "
+"collision_mask] 中指定的 [code]bit[/code] 位。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
msgid "Returns the [code]owner_id[/code] of the given shape."
-msgstr "返回指定形状的[code]owner_id[/code]。"
+msgstr "返回指定形状的 [code]owner_id[/code]。"
#: doc/classes/CollisionObject.xml
msgid "Adds a [Shape] to the shape owner."
@@ -17303,17 +17487,19 @@ msgstr "表示 3D 空间中的碰撞形状数据的节点。"
#: doc/classes/CollisionShape.xml
msgid ""
-"Editor facility for creating and editing collision shapes in 3D space. You "
-"can use this node to represent all sorts of collision shapes, for example, "
-"add this to an [Area] to give it a detection shape, or add it to a "
-"[PhysicsBody] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-"
-"only helper to create shapes, use [method CollisionObject."
-"shape_owner_get_shape] to get the actual shape."
+"Editor facility for creating and editing collision shapes in 3D space. Set "
+"the [member shape] property to configure the shape. [b]IMPORTANT[/b]: this "
+"is an Editor-only helper to create shapes, use [method CollisionObject."
+"shape_owner_get_shape] to get the actual shape.\n"
+"You can use this node to represent all sorts of collision shapes, for "
+"example, add this to an [Area] to give it a detection shape, or add it to a "
+"[PhysicsBody] to create a solid object."
msgstr ""
-"用于在 3D 空间中创建和编辑碰撞形状的编辑工具。您可以使用此节点表示各种碰撞形"
-"状,例如,将其添加到 [Area] 以使其具有检测形状,或将其添加到物理体 "
-"[PhysicsBody] 以创建实体对象。[b]重要[/b]:这是一个编辑器专用的创建形状的助"
-"手,使用 [method CollisionObject.shape_owner_get_shape] 获取实际形状。"
+"用于在 3D 空间中创建和编辑碰撞形状的编辑工具。请使用 [member shape] 属性配置"
+"形状。[b]重要[/b]:这是专为编辑器提供的形状创建工具,要获取实际形状,请使用 "
+"[method CollisionObject.shape_owner_get_shape]。\n"
+"你可以使用这个节点表示各种碰撞形状,例如,将其添加到 [Area] 以使其具有检测形"
+"状,或将其添加到物理体 [PhysicsBody] 以创建实体对象。"
#: doc/classes/CollisionShape.xml doc/classes/CollisionShape2D.xml
#: doc/classes/Physics2DDirectBodyState.xml
@@ -17349,17 +17535,19 @@ msgstr "表示2D空间中的碰撞形状数据的节点。"
#: doc/classes/CollisionShape2D.xml
msgid ""
-"Editor facility for creating and editing collision shapes in 2D space. You "
-"can use this node to represent all sorts of collision shapes, for example, "
-"add this to an [Area2D] to give it a detection shape, or add it to a "
-"[PhysicsBody2D] to create a solid object. [b]IMPORTANT[/b]: this is an "
-"Editor-only helper to create shapes, use [method CollisionObject2D."
-"shape_owner_get_shape] to get the actual shape."
+"Editor facility for creating and editing collision shapes in 2D space. Set "
+"the [member shape] property to configure the shape. [b]IMPORTANT[/b]: this "
+"is an Editor-only helper to create shapes, use [method CollisionObject2D."
+"shape_owner_get_shape] to get the actual shape.\n"
+"You can use this node to represent all sorts of collision shapes, for "
+"example, add this to an [Area2D] to give it a detection shape, or add it to "
+"a [PhysicsBody2D] to create a solid object."
msgstr ""
-"编辑器功能,用于在2D空间中创建和编辑碰撞形状。您可以使用此节点表示各种碰撞形"
-"状,例如,将其添加到 [Area2D] 以提供检测形状,或将其添加到 [PhysicsBody2D] 以"
-"创建实体。[b]重要事项[/b]:这是创建形状的仅编辑器助手,请使用 [method "
-"CollisionObject2D.shape_owner_get_shape] 获取实际形状。"
+"用于在 2D 空间中创建和编辑碰撞形状的编辑工具。请使用 [member shape] 属性配置"
+"形状。[b]重要[/b]:这是专为编辑器提供的形状创建工具,要获取实际形状,请使用 "
+"[method CollisionObject2D.shape_owner_get_shape]。\n"
+"你可以使用这个节点表示各种碰撞形状,例如,将其添加到 [Area2D] 以使其具有检测"
+"形状,或将其添加到物理体 [PhysicsBody2D] 以创建实体对象。"
#: doc/classes/CollisionShape2D.xml doc/classes/KinematicBody2D.xml
#: doc/classes/RectangleShape2D.xml doc/classes/TileMap.xml
@@ -17546,10 +17734,10 @@ msgid ""
"var darkgreen = green.darkened(0.2) # 20% darker than regular green\n"
"[/codeblock]"
msgstr ""
-"返回一个新的颜色,这个颜色按指定的百分比(比例从0 到 1)变暗。\n"
+"返回一个新的颜色,这个颜色按指定的百分比(比例从 0 到 1)变暗。\n"
"[codeblock]\n"
"var green = Color(0.0, 1.0, 0.0)\n"
-"var darkgreen = green.darkened(0.2) # 20% darker than regular green\n"
+"var darkgreen = green.darkened(0.2) # 比普通的绿色深 20%\n"
"[/codeblock]"
#: doc/classes/Color.xml
@@ -18688,13 +18876,27 @@ msgid ""
"area. This shape is created by feeding a list of triangles.\n"
"[b]Note:[/b] When used for collision, [ConcavePolygonShape] is intended to "
"work with static [PhysicsBody] nodes like [StaticBody] and will not work "
-"with [KinematicBody] or [RigidBody] with a mode other than Static."
-msgstr ""
-"凹多边形形状资源,可设置为[PhysicsBody]或区域。这个形状是通过提供一个三角形列"
-"表来创建的。\n"
-"[b]注意:[/b]用于碰撞时,[ConcavePolygonShape] 旨在与静态 [PhysicsBody] 节点"
-"一起使用,如 [StaticBody],并且不适用于具有非静态模式的 [KinematicBody] 或 "
-"[RigidBody]。"
+"with [KinematicBody] or [RigidBody] with a mode other than Static.\n"
+"[b]Warning:[/b] Using this shape for an [Area] (via a [CollisionShape] node, "
+"created e.g. by using the [i]Create Trimesh Collision Sibling[/i] option in "
+"the [i]Mesh[/i] menu that appears when selecting a [MeshInstance] node) may "
+"give unexpected results: when using Godot Physics, the area will only detect "
+"collisions with the triangle faces in the [ConcavePolygonShape] (and not "
+"with any \"inside\" of the shape, for example), and when using Bullet "
+"Physics the area will not detect any collisions with the concave shape at "
+"all (this is a known bug)."
+msgstr ""
+"凹多边形形状资源,可以放到 [PhysicsBody] 和区域之中。这种形状是通过输入一组三"
+"角形来创建的。\n"
+"[b]注意:[/b]用于碰撞时,[ConcavePolygonShape] 应与 [StaticBody] 等静态 "
+"[PhysicsBody] 节点一起使用,与 [KinematicBody] 和非 Static 模式的 "
+"[RigidBody] 一起使用是无法正常工作的。\n"
+"[b]警告:[/b]将这种形状用于 [Area](通过 [CollisionShape] 节点,例如选中 "
+"[MeshInstance] 节点后,通过出现的[i]网格[/i]菜单中的[i]创建三角网格碰撞同级[/"
+"i]来创建)可能得到出乎预料的结果:使用 Godot Physics 时,区域只会检测与 "
+"[ConcavePolygonShape] 的三角形面产生的碰撞(不会检测该形状的“内部”,这里只是"
+"举个例子),使用 Bullet Physics 时根本不会检测到任何与凹形状的碰撞(这是已知"
+"的问题)。"
#: doc/classes/ConcavePolygonShape.xml
msgid "Returns the faces (an array of triangles)."
@@ -18719,14 +18921,22 @@ msgid ""
"The main difference between a [ConvexPolygonShape2D] and a "
"[ConcavePolygonShape2D] is that a concave polygon assumes it is concave and "
"uses a more complex method of collision detection, and a convex one forces "
-"itself to be convex in order to speed up collision detection."
-msgstr ""
-"凹面多边形2D形状资源用于物理。它是由线段组成的,是复杂的多边形凹面碰撞的最佳"
-"选择。但是,建议不要将其用于[RigidBody2D]节点。建议使用凸分解模式(实体)或多"
-"个凸对象的CollisionPolygon2D代替。否则,凹多边形2D形状更适合静态碰撞。\n"
-"[ConvexPolygonShape2D]和[ConcavePolygonShape2D]之间的主要区别在于,凹面多边形"
-"假定其为凹面,并使用更复杂的碰撞检测方法,而凸面多边形则将自身强制变为凸面,"
-"以加快碰撞检测的速度。"
+"itself to be convex in order to speed up collision detection.\n"
+"[b]Warning:[/b] Using this shape for an [Area2D] (via a [CollisionShape2D] "
+"node) may give unexpected results: the area will only detect collisions with "
+"the segments in the [ConcavePolygonShape2D] (and not with any \"inside\" of "
+"the shape, for example)."
+msgstr ""
+"用于物理的凹多边形 2D 形状资源。它是由线段组成的,是复杂的多边形凹面碰撞的最"
+"佳选择。但是建议不要将其用于 [RigidBody2D] 节点。建议使用凸分解模式(实体)或"
+"多个凸对象的 CollisionPolygon2D 代替。否则,凹多边形 2D 形状更适合静态碰"
+"撞。\n"
+"[ConvexPolygonShape2D] 和 [ConcavePolygonShape2D] 之间的主要区别在于,凹多边"
+"形假定其为凹面,并使用更复杂的碰撞检测方法,而凸多边形则将自身强制变为凸面,"
+"以加快碰撞检测的速度。\n"
+"[b]警告:[/b]将这种形状用于 [Area2D](通过 [CollisionShape2D] 节点)可能得到"
+"出乎预料的结果:区域只会检测与 [ConcavePolygonShape2D] 的线段产生的碰撞(不会"
+"检测该形状的“内部”,这里只是举个例子)。"
#: doc/classes/ConcavePolygonShape2D.xml
msgid ""
@@ -19462,7 +19672,7 @@ msgstr ""
"时,本地覆盖项始终优先。\n"
"[b]注意:[/b]为覆盖项设 [code]null[/code] 值可将其删除。该行为已废弃,将在 "
"4.0 中移除,请换成 [method remove_stylebox_override]。\n"
-"参阅 [method get_stylebox]。\n"
+"另请参阅 [method get_stylebox]。\n"
"[b]通过复制来修改 StyleBox 中的属性的示例:[/b]\n"
"[codeblock]\n"
"# 下面的代码片段假设子节点 MyButton 分配了一个 StyleBoxFlat。\n"
@@ -19535,7 +19745,7 @@ msgstr "找到下一个可以接受焦点的 [Control],在树的下方。"
#: doc/classes/Control.xml
msgid ""
"Finds the previous (above in the tree) [Control] that can receive the focus."
-msgstr "找到可以接收焦点的上一个 [Control],在树的上方。"
+msgstr "找到上一个可以接受焦点的 [Control],在树的上方。"
#: doc/classes/Control.xml
msgid ""
@@ -19598,11 +19808,11 @@ msgstr ""
"code],则使用当前控件的类名作为类型,如果定义了 [member "
"theme_type_variation] 则也会使用。如果类型是类名,则还会按继承顺序检查其父"
"类。\n"
-"对于当前控件,首先考虑其本地覆盖项,参阅 [method add_color_override],然后是"
-"其分配的 [member theme]。在当前控件之后,考虑每个父控件及其分配的 [member "
-"theme];未分配[member theme]的控件将被跳过。如果在树中找不到匹配的 [Theme],"
-"则使用自定义项目 [Theme]和默认的 [Theme],参阅 [member ProjectSettings.gui/"
-"theme/custom]。\n"
+"对于当前控件,会首先考虑其本地覆盖项(见 [method add_color_override]),然后"
+"再是为其分配的 [member theme]。在当前控件之后,考虑每个父控件及其分配的 "
+"[member theme];未分配 [member theme] 的控件将被跳过。如果在树中找不到匹配的 "
+"[Theme],则使用自定义项目 [Theme](见 [member ProjectSettings.gui/theme/"
+"custom])和默认的 [Theme]。\n"
"[codeblock]\n"
"func _ready():\n"
" # 获取为当前控件类定义的字体颜色(如果存在)。\n"
@@ -19788,19 +19998,23 @@ msgid ""
"be clicked instead\n"
"[/codeblock]"
msgstr ""
-"创建一个[InputEventMouseButton],尝试点击控件。如果接收到该事件,控件就会获得"
-"焦点。\n"
+"创建尝试点击该控件的 [InputEventMouseButton]。如果接收到该事件,该控件就会获"
+"得焦点。\n"
"[codeblock]\n"
"func _process(delta):\n"
-" grab_click_focus() #when clicking another Control node, this node will "
-"be clicked instead\n"
+" grab_click_focus() # 点击其它 Control 节点时,实际会点到这个节点\n"
"[/codeblock]"
#: doc/classes/Control.xml
msgid ""
"Steal the focus from another control and become the focused control (see "
-"[member focus_mode])."
-msgstr "从另一个控件中窃取焦点,并成为焦点控件(请参阅[member focus_mode])。"
+"[member focus_mode]).\n"
+"[b]Note[/b]: Using this method together with [method Object.call_deferred] "
+"makes it more reliable, especially when called inside [method Node._ready]."
+msgstr ""
+"从别的控件上窃取焦点,成为聚焦的控件(见 [member focus_mode])。\n"
+"[b]注意:[/b]这个方法与 [method Object.call_deferred] 配合使用更加可靠,尤其"
+"是在 [method Node._ready] 中使用时。"
#: doc/classes/Control.xml
msgid ""
@@ -19849,7 +20063,7 @@ msgid ""
"Returns [code]true[/code] if this is the current focused control. See "
"[member focus_mode]."
msgstr ""
-"如果这是当前的焦点控件,则返回 [code]true[/code]。参阅[member focus_mode]。"
+"如果这是当前的焦点控件,则返回 [code]true[/code]。见 [member focus_mode]。"
#: doc/classes/Control.xml
msgid ""
@@ -19915,7 +20129,7 @@ msgid ""
msgstr ""
"如果此 [Control] 节点中具有指定 [code]name[/code] 的主题着色器存在本地覆盖"
"项,则返回 [code]true[/code]。\n"
-"参阅[method add_shader_override]。"
+"见 [method add_shader_override]。"
#: doc/classes/Control.xml
msgid ""
@@ -19936,7 +20150,7 @@ msgid ""
msgstr ""
"如果在此 [Control] 节点中具有指定 [code]name[/code] 的主题 [StyleBox] 的本地"
"覆盖项,则返回 [code]true[/code]。\n"
-"参阅 [method add_stylebox_override]。"
+"见 [method add_stylebox_override]。"
#: doc/classes/Control.xml
msgid ""
@@ -19955,9 +20169,9 @@ msgid ""
"changed. Setting [member rect_min_size] directly calls this method "
"automatically."
msgstr ""
-"使此节点和父节点(直至最高级别)中的大小缓存无效。打算在更改返回值时与"
-"[method get_minimum_size]一起使用。设置[member rect_min_size]直接直接自动调用"
-"此方法。"
+"使这个节点及其直至最顶层的各级父节点中的大小缓存失效。应在 [method "
+"get_minimum_size] 的返回值发生变化时配合使用。直接设置 [member "
+"rect_min_size] 会自动调用这个方法。"
#: doc/classes/Control.xml
msgid ""
@@ -20006,15 +20220,15 @@ msgid ""
"[code]push_opposite_anchor[/code] was [code]false[/code], the left anchor "
"would get value 0.5."
msgstr ""
-"将由[enum Margin]枚举的[code]margin[/code]常量标识的锚设置为值[code]anchor[/"
-"code]。用于[member anchor_bottom],[member anchor_left],[member "
-"anchor_right]和[member anchor_top]的setter方法。\n"
-"如果[code]keep_margin[/code]为 [code]true[/code],则在执行此操作后不会更新边"
-"距。\n"
-"如果[code]push_opposite_anchor[/code]为 [code]true[/code],并且相对的锚点与该"
-"锚点重叠,则相对的锚点将覆盖其值。例如,当将左锚点设置为1且右锚点的值为0.5"
-"时,右锚点的值也将为1。如果[code]push_opposite_anchor[/code]为 [code]false[/"
-"code],则左锚点将得到值0.5。"
+"将由 [code]margin[/code] 常量标识的锚点设置为值 [code]anchor[/code],取值为 "
+"[enum Margin] 枚举。这是 [member anchor_bottom]、[member anchor_left]、"
+"[member anchor_right]、[member anchor_top] 的 setter 方法。\n"
+"如果 [code]keep_margin[/code] 为 [code]true[/code],则在执行此操作后不会更新"
+"边距。\n"
+"如果 [code]push_opposite_anchor[/code] 为 [code]true[/code],并且相对的锚点与"
+"该锚点重叠,则相对的锚点将覆盖其值。例如,当将左锚点设置为 1 且右锚点的值为 "
+"0.5 时,右锚点的值也将为 1。如果 [code]push_opposite_anchor[/code] 为 "
+"[code]false[/code],则左锚点将得到值 0.5。"
#: doc/classes/Control.xml
msgid ""
@@ -20023,15 +20237,14 @@ msgid ""
"offset yourself (see [method set_margin])."
msgstr ""
"与 [method set_anchor] 的工作原理相同,但是它代替 [code]keep_margin[/code] 参"
-"数和边距的自动更新,它允许您自己设置边距偏移量(请参阅 [method "
-"set_margin])。"
+"数和边距的自动更新,它允许您自己设置边距偏移量(见 [method set_margin])。"
#: doc/classes/Control.xml
msgid ""
"Sets both anchor preset and margin preset. See [method set_anchors_preset] "
"and [method set_margins_preset]."
msgstr ""
-"设置锚点预设和边距预设。请参阅 [method set_anchors_preset] 和 [method "
+"设置锚点预设和边距预设。见 [method set_anchors_preset] 和 [method "
"set_margins_preset]。"
#: doc/classes/Control.xml
@@ -20051,7 +20264,7 @@ msgid ""
"Sets [member margin_left] and [member margin_top] at the same time. "
"Equivalent of changing [member rect_position]."
msgstr ""
-"同时设置[member margin_left]和[member margin_top]。等效于更改[member "
+"同时设置 [member margin_left] 和 [member margin_top]。等效于更改 [member "
"rect_position]。"
#: doc/classes/Control.xml
@@ -20143,7 +20356,7 @@ msgstr ""
#: doc/classes/Control.xml
msgid "Sets [member margin_right] and [member margin_bottom] at the same time."
-msgstr "同时设置[member margin_right]和[member margin_bottom]。"
+msgstr "同时设置 [member margin_right] 和 [member margin_bottom]。"
#: doc/classes/Control.xml
msgid ""
@@ -20163,9 +20376,9 @@ msgid ""
"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
"updated instead of margins."
msgstr ""
-"将[member rect_global_position]设置为给定的[code]position[/code]。\n"
-"如果[code]keep_margins[/code]为 [code]true[/code],则控件的锚点将被更新,而不"
-"是边距。"
+"将 [member rect_global_position] 设置为给定的 [code]position[/code]。\n"
+"如果 [code]keep_margins[/code] 为 [code]true[/code],则更新的是控件的锚点,而"
+"不是边距。"
#: doc/classes/Control.xml
msgid ""
@@ -20203,9 +20416,9 @@ msgid ""
"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
"updated instead of margins."
msgstr ""
-"将[member rect_position]设置为给定的[code]position[/code]。\n"
-"如果[code]keep_margins[/code]为 [code]true[/code],则控件的锚点将被更新,而不"
-"是边距。"
+"将 [member rect_position] 设置为给定的 [code]position[/code]。\n"
+"如果 [code]keep_margins[/code] 为 [code]true[/code],则更新的是控件的锚点,而"
+"不是边距。"
#: doc/classes/Control.xml
msgid "Sets the rotation (in radians)."
@@ -20289,8 +20502,8 @@ msgid ""
"The focus access mode for the control (None, Click or All). Only one Control "
"can be focused at the same time, and it will receive keyboard signals."
msgstr ""
-"控件的焦点访问模式(“无”,“单击”或“全部”)。只能同时集中一个控件,它将接收键"
-"盘信号。"
+"控件的焦点访问模式(“无”“单击”或“全部”)。只能同时聚焦一个控件,该控件会收到"
+"键盘信号。"
#: doc/classes/Control.xml
msgid ""
@@ -20300,10 +20513,10 @@ msgid ""
"must be a [Control]. If this property is not set, Godot will give focus to "
"the closest [Control] to the bottom of this one."
msgstr ""
-"告诉Godot,默认情况下,如果用户按下键盘上的向下箭头或游戏手柄上的向下箭头,则"
-"应将焦点对准哪个节点。您可以通过编辑[code]ui_down[/code]输入操作来更改键。该"
-"节点必须是[Control]。如果未设置此属性,则Godot会将焦点放在该控件底部最接近的"
-"[Control]。"
+"告诉 Godot,默认情况下,如果用户按下键盘上的向下箭头或游戏手柄上的向下箭头,"
+"则应将焦点对准哪个节点。您可以通过编辑 [code]ui_down[/code] 输入操作来更改"
+"键。该节点必须是 [Control]。如果未设置此属性,则 Godot 会将焦点放在该控件底部"
+"最接近的 [Control]。"
#: doc/classes/Control.xml
msgid ""
@@ -20313,10 +20526,10 @@ msgid ""
"must be a [Control]. If this property is not set, Godot will give focus to "
"the closest [Control] to the left of this one."
msgstr ""
-"告诉Godot,默认情况下,如果用户按下键盘上的向左箭头或游戏手柄上的向左键,应该"
-"将焦点对准键盘上的哪个节点。您可以通过编辑[code]ui_left[/code]输入操作来更改"
-"键。该节点必须是[Control]。如果未设置此属性,则Godot会将焦点放在该控件左侧最"
-"接近的[Control]。"
+"告诉 Godot,默认情况下,如果用户按下键盘上的向左箭头或游戏手柄上的向左键,应"
+"该将焦点对准键盘上的哪个节点。您可以通过编辑 [code]ui_left[/code] 输入操作来"
+"更改键。该节点必须是 [Control]。如果未设置此属性,则 Godot 会将焦点放在该控件"
+"左侧最接近的 [Control]。"
#: doc/classes/Control.xml
msgid ""
@@ -20326,10 +20539,10 @@ msgid ""
"must be a [Control]. If this property is not set, Godot will give focus to "
"the closest [Control] to the bottom of this one."
msgstr ""
-"告诉Godot,如果用户按键盘上的右键或默认的游戏手柄上的右键,它应该把键盘焦点给"
-"哪个节点。你可以通过编辑[code]ui_right[/code]输入动作来改变这个键。该节点必须"
-"是一个[Control]。如果没有设置这个属性,Godot将把焦点交给离这个节点底部最近的"
-"[Control]。"
+"告诉 Godot,如果用户按键盘上的右键或默认的游戏手柄上的右键,它应该把键盘焦点"
+"给哪个节点。你可以通过编辑 [code]ui_right[/code] 输入动作来改变这个键。该节点"
+"必须是一个 [Control]。如果没有设置这个属性,Godot 将把焦点交给离这个节点底部"
+"最近的 [Control]。"
#: doc/classes/Control.xml
msgid ""
@@ -20339,10 +20552,10 @@ msgid ""
"[Control]. If this property is not set, Godot will give focus to the closest "
"[Control] to the bottom of this one."
msgstr ""
-"告诉Godot默认情况下,如果用户按下键盘上的顶部箭头或游戏手柄上的顶部,则应该将"
-"焦点对准键盘上的哪个节点。您可以通过编辑[code]ui_top[/code]输入操作来更改键。"
-"该节点必须是[Control]。如果未设置此属性,则Godot会将焦点放在该控件底部最接近"
-"的[Control]。"
+"告诉 Godot 默认情况下,如果用户按下键盘上的顶部箭头或游戏手柄上的顶部,则应该"
+"将焦点对准键盘上的哪个节点。您可以通过编辑 [code]ui_top[/code] 输入操作来更改"
+"键。该节点必须是 [Control]。如果未设置此属性,则 Godot 会将焦点放在该控件底部"
+"最接近的 [Control]。"
#: doc/classes/Control.xml
msgid ""
@@ -20352,9 +20565,9 @@ msgid ""
"If this property is not set, Godot will select a \"best guess\" based on "
"surrounding nodes in the scene tree."
msgstr ""
-"告诉Godot,如果用户默认按键盘上的Tab键,它应该把键盘焦点给哪个节点。你可以通"
-"过编辑[code]ui_focus_next[/code]输入动作来改变这个键。\n"
-"如果这个属性没有设置,Godot会根据场景树中的周围节点选择一个 \"最佳猜测\"。"
+"告诉 Godot,如果用户默认按键盘上的 Tab 键,它应该把键盘焦点给哪个节点。你可以"
+"通过编辑 [code]ui_focus_next[/code] 输入动作来改变这个键。\n"
+"如果这个属性没有设置,Godot 会根据场景树中的周围节点选择一个“最佳猜测”。"
#: doc/classes/Control.xml
msgid ""
@@ -20364,9 +20577,9 @@ msgid ""
"If this property is not set, Godot will select a \"best guess\" based on "
"surrounding nodes in the scene tree."
msgstr ""
-"告诉Godot,如果用户按键盘上的Shift+Tab键,它应该把键盘焦点给哪个节点,这是默"
-"认。你可以通过编辑[code]ui_focus_prev[/code]输入动作来改变这个键。\n"
-"如果没有设置这个属性,Godot会根据场景树中的周围节点选择一个 \"最佳猜测\"。"
+"告诉 Godot,如果用户按键盘上的 Shift+Tab 键,它应该把键盘焦点给哪个节点,这是"
+"默认。你可以通过编辑 [code]ui_focus_prev[/code] 输入动作来改变这个键。\n"
+"如果没有设置这个属性,Godot 会根据场景树中的周围节点选择一个“最佳猜测”。"
#: doc/classes/Control.xml
msgid ""
@@ -20409,18 +20622,19 @@ msgid ""
"[/codeblock]"
msgstr ""
"改变工具提示的文本。当用户的鼠标光标在这个控件上停留片刻,工具提示就会出现,"
-"前提是[member mouse_filter]属性非[constant MOUSE_FILTER_IGNORE]。你可以用项目"
-"设置中的[code]gui/timers/tooltip_delay_sec[/code]选项改变工具提示出现的时"
-"间。\n"
-"工具提示的弹出将使用默认的实现,或者你可以通过覆盖[method "
-"_make_custom_tooltip]提供一个自定义的实现。默认的工具提示包括一个[PopupPanel]"
-"和[Label],其主题属性可以通过[code]\"TooltipPanel\"[/code]和"
-"[code]\"TooltipLabel\"[/code]方法分别进行自定义。如:\n"
+"前提是 [member mouse_filter] 属性非 [constant MOUSE_FILTER_IGNORE]。你可以用"
+"项目设置中的 [code]gui/timers/tooltip_delay_sec[/code] 选项改变工具提示出现的"
+"时间。\n"
+"工具提示的弹出将使用默认的实现,或者你可以通过覆盖 [method "
+"_make_custom_tooltip] 提供一个自定义的实现。默认的工具提示包括一个 "
+"[PopupPanel] 和 [Label],其主题属性可以通过 [Theme] 的方法对 "
+"[code]\"TooltipPanel\"[/code] 和 [code]\"TooltipLabel\"[/code] 分别进行自定"
+"义。如:\n"
"[codeblock]\n"
"var style_box = StyleBoxFlat.new()\n"
"style_box.set_bg_color(Color(1, 1, 0))\n"
"style_box.set_border_width_all(2)\n"
-"# 我们在这里假设`theme`属性已经被事先分配了一个自定义的Theme。\n"
+"# 我们在这里假设`theme`属性已经被事先分配了一个自定义的 Theme。\n"
"theme.set_stylebox(\"panel\", \"TooltipPanel\", style_box)\n"
"theme.set_color(\"font_color\", \"TooltipLabel\", Color(0, 1, 1))\n"
"[/codeblock]"
@@ -20432,9 +20646,9 @@ msgid ""
"handling. The viewport first hides the modal and after marks the input as "
"handled."
msgstr ""
-"启用当你关闭控件模态时,输入是否传播。\n"
-"如果为 [code]false[/code],在视区输入事件处理时将停止事件处理。视区首先隐藏模"
-"态,之后将输入标记为已处理。"
+"关闭模态控件时,输入是否传播。\n"
+"如果为 [code]false[/code],事件处理将停止在视区的输入事件处理。该视区会先将模"
+"态控件隐藏,然后再将输入标记为已处理。"
#: doc/classes/Control.xml
msgid ""
@@ -20597,7 +20811,7 @@ msgstr ""
msgid ""
"The size of the node's bounding rectangle, in pixels. [Container] nodes "
"update this property automatically."
-msgstr "节点边界矩形的大小,以像素为单位。[Container]节点会自动更新此属性。"
+msgstr "节点边界矩形的大小,以像素为单位。[Container] 节点会自动更新此属性。"
#: doc/classes/Control.xml
msgid ""
@@ -20764,11 +20978,11 @@ msgstr "当节点更改大小时发送。使用 [member rect_size] 获取新大
#: doc/classes/Control.xml
msgid "Sent when the mouse pointer enters the node."
-msgstr "当鼠标指针进入节点时发送。"
+msgstr "当鼠标指针进入该节点时发送。"
#: doc/classes/Control.xml
msgid "Sent when the mouse pointer exits the node."
-msgstr "当鼠标指针退出节点时发送。"
+msgstr "当鼠标指针退出该节点时发送。"
#: doc/classes/Control.xml
msgid "Sent when the node grabs focus."
@@ -20784,8 +20998,8 @@ msgid ""
"control. Happens when you call one of the [code]add_*_override[/code] "
"methods."
msgstr ""
-"当节点的 [member theme] 改变时,就在Godot重绘控件之前发送。当你调用"
-"[code]add_*_override[/code]方法之一时发生。"
+"当节点的 [member theme] 改变时,就在 Godot 重绘控件之前发送。当你调用 "
+"[code]add_*_override[/code] 方法之一时发生。"
#: doc/classes/Control.xml
msgid "Sent when an open modal dialog closes. See [method show_modal]."
@@ -20817,8 +21031,8 @@ msgid ""
"beam pointer has a shape similar to \"I\". It tells the user they can "
"highlight or insert text."
msgstr ""
-"当用户将节点悬停时,显示系统的I型光束鼠标光标。工字梁指针的形状类似于“I”。它"
-"告诉用户他们可以突出显示或插入文本。"
+"当用户将节点悬停时,显示系统的 I 型光束鼠标光标。工字梁指针的形状类似于“I”。"
+"它告诉用户他们可以突出显示或插入文本。"
#: doc/classes/Control.xml
msgid ""
@@ -20857,7 +21071,7 @@ msgid ""
"grabbing, like a node in the Scene dock."
msgstr ""
"当用户悬停节点时,显示系统的落地鼠标光标。它可以是一个张开的手。它告诉用户可"
-"以放下一个他们当前正在抓取的物品,比如场景dock中的一个节点。"
+"以放下一个他们当前正在抓取的物品,比如场景面板中的一个节点。"
#: doc/classes/Control.xml
msgid ""
@@ -20910,8 +21124,8 @@ msgid ""
"2 double-headed arrows at a 90 degree angle. It tells the user they can move "
"a UI element freely."
msgstr ""
-"当用户将节点悬停时,显示系统的移动鼠标光标。它以90度角显示2个双向箭头。它告诉"
-"用户他们可以自由移动 UI 元素。"
+"当用户将节点悬停时,显示系统的移动鼠标光标。它以 90 度角显示 2 个双向箭头。它"
+"告诉用户他们可以自由移动 UI 元素。"
#: doc/classes/Control.xml
msgid ""
@@ -21097,8 +21311,8 @@ msgid ""
"the available space without pushing any other node. Use with [member "
"size_flags_horizontal] and [member size_flags_vertical]."
msgstr ""
-"告诉父[Container]扩展此节点的边界,以在不推其他节点的情况下填充所有可用空间。"
-"使用[member size_flags_horizontal]和[member size_flags_vertical]。"
+"告诉父 [Container] 扩展此节点的边界,以在不推其他节点的情况下填充所有可用空"
+"间。用于 [member size_flags_horizontal] 和 [member size_flags_vertical]。"
#: doc/classes/Control.xml
msgid ""
@@ -21108,17 +21322,17 @@ msgid ""
"size_flags_stretch_ratio]. Use with [member size_flags_horizontal] and "
"[member size_flags_vertical]."
msgstr ""
-"告诉父级[Container]让该节点占用您标记的轴上的所有可用空间。如果将多个相邻节点"
-"设置为扩展,它们将根据其拉伸比共享空间。参阅[member "
-"size_flags_stretch_ratio]。与[member size_flags_horizontal]和[member "
-"size_flags_vertical]一起使用。"
+"告诉父级 [Container] 让该节点占用您标记的轴上的所有可用空间。如果将多个相邻节"
+"点设置为扩展,它们将根据其拉伸比共享空间。见 [member "
+"size_flags_stretch_ratio]。用于 [member size_flags_horizontal] 和 [member "
+"size_flags_vertical]。"
#: doc/classes/Control.xml
msgid ""
"Sets the node's size flags to both fill and expand. See the 2 constants "
"above for more information."
msgstr ""
-"将节点的大小标志设置为同时填充和扩展。有关更多信息,请参阅上面的2个常量。"
+"将节点的大小标志设置为同时填充和扩展。有关更多信息,请参阅上面的 2 个常量。"
#: doc/classes/Control.xml
msgid ""
@@ -21128,8 +21342,8 @@ msgid ""
"size_flags_vertical]."
msgstr ""
"告诉父级 [Container] 使节点本身居中。它基于控件的包围框居中,因此它不适用于 "
-"fill 或 expand 尺寸标志。与 [member size_flags_horizontal] 和 [member "
-"size_flags_vertical] 一起使用。"
+"fill 或 expand 尺寸标志。用于 [member size_flags_horizontal] 和 [member "
+"size_flags_vertical]。"
#: doc/classes/Control.xml
msgid ""
@@ -21139,8 +21353,8 @@ msgid ""
"size_flags_vertical]."
msgstr ""
"告诉父级 [Container] 将节点与其末端(底部或右侧)对齐。它不适用于 fill 或 "
-"expand size 标志。与 [member size_flags_horizontal] 和 [member "
-"size_flags_vertical] 一起使用。"
+"expand size 标志。用于 [member size_flags_horizontal] 和 [member "
+"size_flags_vertical]。"
#: doc/classes/Control.xml
msgid ""
@@ -21297,7 +21511,8 @@ msgid ""
"and doesn't need to be configured by the user."
msgstr ""
"基于 CPU 的 3D 粒子节点,用于创建各种粒子系统和效果。\n"
-"参阅 [Particles],它是以硬件加速提供相同的功能,但可能无法在旧设备上运行。\n"
+"另请参阅 [Particles],它是以硬件加速提供相同的功能,但可能无法在旧设备上运"
+"行。\n"
"[b]注意:[/b]与 [Particles] 不同,其可见性矩形是即时生成的,不需要用户配置。"
#: doc/classes/CPUParticles.xml
@@ -21324,7 +21539,7 @@ msgstr "返回由 [enum Parameter] 指定的参数的随机性系数。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid ""
"Returns the enabled state of the given flag (see [enum Flags] for options)."
-msgstr "返回给定标志的启用状态(有关选项,请参阅 [enum Flags])。"
+msgstr "返回给定标志的启用状态(可选项见 [enum Flags])。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Restarts the particle emitter."
@@ -21345,7 +21560,7 @@ msgstr "设置 [enum Parameter] 指定的参数的随机性因子。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Enables or disables the given flag (see [enum Flags] for options)."
-msgstr "启用或禁用给定标志(有关选项,请参阅 [enum Flags])。"
+msgstr "启用或禁用给定标志(可选项见 [enum Flags])。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/Particles.xml doc/classes/Particles2D.xml
@@ -21463,7 +21678,7 @@ msgstr "指定粒子发射方向的单位向量。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/Particles.xml doc/classes/Particles2D.xml
msgid "Particle draw order. Uses [enum DrawOrder] values."
-msgstr "粒子绘制顺序。使用 [enum DrawOrder] 值。"
+msgstr "粒子绘制顺序。使用 [enum DrawOrder] 的值。"
#: doc/classes/CPUParticles.xml
msgid ""
@@ -21560,7 +21775,7 @@ msgstr ""
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/ParticlesMaterial.xml
msgid "Align Y axis of particle with the direction of its velocity."
-msgstr "将粒子的Y轴与其速度方向对齐。"
+msgstr "将粒子的 Y 轴与其速度方向对齐。"
#: doc/classes/CPUParticles.xml doc/classes/ParticlesMaterial.xml
msgid "If [code]true[/code], particles will not move on the z axis."
@@ -21611,7 +21826,7 @@ msgstr "色相变化随机率。"
msgid ""
"Initial velocity magnitude for each particle. Direction comes from [member "
"spread] and the node's orientation."
-msgstr "每个粒子的初始速度大小。方向来自[member spread]和节点的方向。"
+msgstr "每个粒子的初始速度大小。方向取决于 [member spread] 和该节点的朝向。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/ParticlesMaterial.xml
@@ -21621,7 +21836,7 @@ msgstr "初始速度随机率。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/Particles.xml doc/classes/Particles2D.xml
msgid "The amount of time each particle will exist (in seconds)."
-msgstr "每个粒子存在的时间,以秒为单位。"
+msgstr "每个粒子存在的时间(以秒为单位)。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
#: doc/classes/ParticlesMaterial.xml
@@ -21677,7 +21892,7 @@ msgid ""
msgstr ""
"应用于每个粒子的轨道速度。使粒子在局部XY平面上绕原点旋转。用每秒绕原点旋转的"
"次数来表示。\n"
-"只有当[member flag_disable_z]为 [code]true[/code] 时,此属性才可用。"
+"只有当 [member flag_disable_z] 为 [code]true[/code] 时,此属性才可用。"
#: doc/classes/CPUParticles.xml doc/classes/CPUParticles2D.xml
msgid "Each particle's orbital velocity will vary along this [Curve]."
@@ -21998,8 +22213,8 @@ msgid ""
"the value to 2 will make the particles render at 2 frames per second. Note "
"this does not slow down the simulation of the particle system itself."
msgstr ""
-"粒子系统的帧速率固定为一个值。例如,将值更改为2将使粒子以每秒2帧的速度渲染。"
-"注意,这不会减慢粒子系统本身的仿真速度。"
+"粒子系统的帧速率固定为一个值。例如,将值更改为 2 将使粒子以每秒 2 帧的速度渲"
+"染。注意,这不会减慢粒子系统本身的仿真速度。"
#: doc/classes/CPUParticles2D.xml doc/classes/Particles2D.xml
msgid ""
@@ -22146,8 +22361,8 @@ msgid ""
"[b]Note:[/b] The maximum size of accepted ciphertext is limited by the key "
"size."
msgstr ""
-"用提供的私人[code]key[/code]解密给定的[code]ciphertext[/code]。\n"
-"[b]注意:[/b]所接受的密码文本的最大尺寸受到密钥大小限制。"
+"用提供的私钥 [code]key[/code] 解密给定的密文 [code]ciphertext[/code]。\n"
+"[b]注意:[/b]所接受的密文的最大尺寸受到密钥大小的限制。"
#: doc/classes/Crypto.xml
msgid ""
@@ -22156,8 +22371,8 @@ msgid ""
"[b]Note:[/b] The maximum size of accepted plaintext is limited by the key "
"size."
msgstr ""
-"用提供的公钥 [code]key[/code] 加密给定的[code]plaintext[/code]。\n"
-"[b]注意:[/b]接受的明文的最大尺寸受到密钥大小的限制。"
+"用提供的公钥 [code]key[/code] 加密给定的明文 [code]plaintext[/code]。\n"
+"[b]注意:[/b]所接受的明文的最大尺寸受到密钥大小的限制。"
#: doc/classes/Crypto.xml
msgid ""
@@ -22217,9 +22432,9 @@ msgid ""
"Currently, only [constant HashingContext.HASH_SHA256] and [constant "
"HashingContext.HASH_SHA1] are supported."
msgstr ""
-"使用 [code]key[/code] 生成 [code]msg[/code] 的 [url=https://en.wikipedia.org/"
-"wiki/HMAC]HMAC[/url] 摘要。[code]hash_type[/code] 参数是用于内部和外部哈希的"
-"哈希算法。\n"
+"使用密钥 [code]key[/code] 生成 [code]msg[/code] 的 [url=https://en.wikipedia."
+"org/wiki/HMAC]HMAC[/url] 摘要。[code]hash_type[/code] 参数是用于内部和外部哈"
+"希的哈希算法。\n"
"目前仅支持 [constant HashingContext.HASH_SHA256] 和 [constant HashingContext."
"HASH_SHA1]。"
@@ -22591,7 +22806,7 @@ msgid ""
"coordinates will match geometry exactly with no tiling."
msgstr ""
"当 [member mode] 为 [constant MODE_PATH] 时,这是纹理坐标沿着路径的距离,以米"
-"为单位,将进行平铺。当设置为0时,纹理坐标将与几何图形完全匹配,没有平铺。"
+"为单位,将进行平铺。当设置为 0 时,纹理坐标将与几何图形完全匹配,没有平铺。"
#: modules/csg/doc_classes/CSGPolygon.xml
msgid ""
@@ -22671,16 +22886,16 @@ msgid ""
"will determine the distance, in meters, each interval of the path will "
"extrude."
msgstr ""
-"当 [member mode] 被设置为路径[constant MODE_PATH] 时,[member path_interval] "
-"将决定路径的每个间隔将被挤出的距离,单位为米。"
+"当 [member mode] 被设置为 [constant MODE_PATH] 时,[member path_interval] 将"
+"决定路径的每个间隔将被挤出的距离,单位为米。"
#: modules/csg/doc_classes/CSGPolygon.xml
msgid ""
"When [member mode] is set to [constant MODE_PATH], [member path_interval] "
"will subdivide the polygons along the path."
msgstr ""
-"当 [member mode] 被设置为路径 [constant MODE_PATH]时,[member path_interval] "
-"将沿着路径细分多边形。"
+"当 [member mode] 被设置为 [constant MODE_PATH]时,[member path_interval] 将沿"
+"着路径细分多边形。"
#: modules/csg/doc_classes/CSGPrimitive.xml
msgid "Base class for CSG primitives."
@@ -22806,8 +23021,8 @@ msgid ""
"CSG child node as the operation is between this node and the previous child "
"of this nodes parent."
msgstr ""
-"在此形状上执行的操作。对于第一个CSG子节点,将忽略此操作,因为操作是在此节点与"
-"该节点父级的上一个子级之间进行的。"
+"在此形状上执行的操作。对于第一个 CSG 子节点,将忽略此操作,因为操作是在此节点"
+"与该节点父级的上一个子级之间进行的。"
#: modules/csg/doc_classes/CSGShape.xml
msgid ""
@@ -22824,8 +23039,8 @@ msgid ""
"always act like a static body. Note that the collision shape is still active "
"even if the CSG shape itself is hidden."
msgstr ""
-"为我们的 CSG 形状向物理引擎添加碰撞形状。这将始终像一个静态物体。请注意,即使"
-"CSG形状本身被隐藏,碰撞形状仍处于活动状态。"
+"为我们的 CSG 形状向物理引擎添加碰撞形状。这将始终像一个静态物体。请注意,即"
+"使 CSG 形状本身被隐藏,碰撞形状仍处于活动状态。"
#: modules/csg/doc_classes/CSGShape.xml
msgid ""
@@ -22930,8 +23145,8 @@ msgid ""
"effect making the torus seem rounded. If [code]false[/code] the torus will "
"have a flat shaded look."
msgstr ""
-"如果[code]true[/code]设置圆环的法线以提供平滑效果,则使圆环看起来是圆形的。如"
-"果为 [code]false[/code],则圆环将具有平坦的阴影表现。"
+"如果 [code]true[/code] 设置圆环的法线以提供平滑效果,则使圆环看起来是圆形的。"
+"如果为 [code]false[/code],则圆环将具有平坦的阴影表现。"
#: modules/mono/doc_classes/CSharpScript.xml
msgid ""
@@ -23243,10 +23458,13 @@ msgstr "数学曲线。"
msgid ""
"A curve that can be saved and re-used for other objects. By default, it "
"ranges between [code]0[/code] and [code]1[/code] on the Y axis and positions "
-"points relative to the [code]0.5[/code] Y position."
+"points relative to the [code]0.5[/code] Y position.\n"
+"See also [Gradient] which is designed for color interpolation. See also "
+"[Curve2D] and [Curve3D]."
msgstr ""
"可以保存并重新用于其他对象的曲线。默认情况下,它在 Y 轴上的范围在 [code]0[/"
-"code] 到 [code]1[/code] 之间,并且位置点相对于 [code]0.5[/code] Y 位置。"
+"code] 到 [code]1[/code] 之间,并且位置点相对于 [code]0.5[/code] Y 位置。\n"
+"另请参阅为颜色插值设计的 [Gradient]。另请参阅 [Curve2D] 和 [Curve3D]。"
#: doc/classes/Curve.xml
msgid ""
@@ -23407,24 +23625,24 @@ msgstr ""
"动采样用于其他目的。\n"
"它保留了沿曲线的预计算点的缓存,以加快进一步的计算。"
-#: doc/classes/Curve2D.xml
+#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
msgid ""
-"Adds a point to a curve at [code]position[/code] relative to the [Curve2D]'s "
-"position, with control points [code]in[/code] and [code]out[/code].\n"
-"If [code]at_position[/code] is given, the point is inserted before the point "
-"number [code]at_position[/code], moving that point (and every point after) "
-"after the inserted point. If [code]at_position[/code] is not given, or is an "
-"illegal value ([code]at_position <0[/code] or [code]at_position >= [method "
-"get_point_count][/code]), the point will be appended at the end of the point "
-"list."
-msgstr ""
-"在曲线的 [code]position[/code] 上添加一个点,相对于该 [Curve2D] 的位置,以及"
-"控制点 [code]in[/code] 和 [code]out[/code]。\n"
-"如果给定了 [code]at_position[/code],这个点会被插入到点号 [code]at_position[/"
-"code] 之前,并将这个点(以及之后的每一个点)移到被插入点之后。如果 "
-"[code]at_position[/code] 没有给定,或者是非法值([code]at_position <0[/code] "
-"或 [code]at_position >= [method get_point_count][/code]),该点将被追加在点列"
-"表的最后。"
+"Adds a point with the specified [code]position[/code] relative to the "
+"curve's own position, with control points [code]in[/code] and [code]out[/"
+"code]. Appends the new point at the end of the point list.\n"
+"If [code]index[/code] is given, the new point is inserted before the "
+"existing point identified by index [code]index[/code]. Every existing point "
+"starting from [code]index[/code] is shifted further down the list of points. "
+"The index must be greater than or equal to [code]0[/code] and must not "
+"exceed the number of existing points in the line. See [method "
+"get_point_count]."
+msgstr ""
+"在指定的位置 [code]position[/code] 上添加一个点,相对于该曲线自身的位置,控制"
+"点为 [code]in[/code] 和 [code]out[/code]。新的点会被加入到点的列表末尾。\n"
+"如果给定了索引 [code]index[/code],这个新点会被插入到 [code]index[/code] 所对"
+"应的现存点之前。从 [code]index[/code] 往后的所有现存点都会在列表中往后移一"
+"位。该索引必须大于等于 [code]0[/code],不能够超出线段上现存点的数量。见 "
+"[method get_point_count]。"
#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
msgid ""
@@ -23476,8 +23694,8 @@ msgid ""
"console, and returns [code](0, 0)[/code]."
msgstr ""
"返回从顶点 [code]idx[/code] 引出的控制点位置。返回的位置是相对于顶点 "
-"[code]idx[/code]。如果索引越界,函数会向控制台发送错误,并返回 [code](0, "
-"0)[/code]。"
+"[code]idx[/code]。如果索引越界,函数会向控制台发送错误,并返回 [code](0, 0)[/"
+"code]。"
#: doc/classes/Curve2D.xml
msgid ""
@@ -23621,25 +23839,6 @@ msgstr ""
"它沿曲线保留了一个预先计算好的点缓存,以加快进一步的计算。"
#: doc/classes/Curve3D.xml
-msgid ""
-"Adds a point to a curve at [code]position[/code] relative to the [Curve3D]'s "
-"position, with control points [code]in[/code] and [code]out[/code].\n"
-"If [code]at_position[/code] is given, the point is inserted before the point "
-"number [code]at_position[/code], moving that point (and every point after) "
-"after the inserted point. If [code]at_position[/code] is not given, or is an "
-"illegal value ([code]at_position <0[/code] or [code]at_position >= [method "
-"get_point_count][/code]), the point will be appended at the end of the point "
-"list."
-msgstr ""
-"在曲线的 [code]position[/code] 上添加一个点,相对于该 [Curve2D] 的位置,以及"
-"控制点 [code]in[/code] 和 [code]out[/code]。\n"
-"如果给定了 [code]at_position[/code],这个点会被插入到点号 [code]at_position[/"
-"code] 之前,并将这个点(以及之后的每一个点)移到被插入点之后。如果 "
-"[code]at_position[/code] 没有给定,或者是非法值([code]at_position <0[/code] "
-"或 [code]at_position >= [method get_point_count][/code]),该点将被追加在点列"
-"表的最后。"
-
-#: doc/classes/Curve3D.xml
msgid "Returns the cache of points as a [PoolVector3Array]."
msgstr "以 [PoolVector3Array] 的形式返回缓存的点。"
@@ -23880,6 +24079,14 @@ msgid "Cylinder shape for collisions."
msgstr "碰撞用的圆柱体形状。"
#: doc/classes/CylinderShape.xml
+msgid ""
+"Cylinder shape for collisions.\n"
+"[b]Note:[/b] When using GodotPhysics instead of the default Bullet physics "
+"engine, there are several known bugs with cylinder collision shapes. Using "
+"[CapsuleShape] or [BoxShape] instead is recommended."
+msgstr ""
+
+#: doc/classes/CylinderShape.xml
msgid "The cylinder's height."
msgstr "圆柱体的高度。"
@@ -24599,7 +24806,7 @@ msgid ""
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"创建一个目录。参数可以是当前目录的相对路径,也可以是绝对路径。目标目录应该放"
-"置在一个已经存在的目录中(如果要递归创建完整的路径,请参阅[method "
+"置在一个已经存在的目录中(如果要递归创建完整的路径,请参阅 [method "
"make_dir_recursive])。\n"
"返回 [enum Error] 代码常量之一(成功时返回 [code]OK[/code])。"
@@ -24886,11 +25093,11 @@ msgstr "返回给定 [code]type[/code] 的间距(见 [enum SpacingType])。"
#: doc/classes/DynamicFont.xml
msgid "Removes the fallback font at index [code]idx[/code]."
-msgstr "移除位于索引[code]idx[/code]处的后备字体。"
+msgstr "移除位于索引 [code]idx[/code] 处的后备字体。"
#: doc/classes/DynamicFont.xml
msgid "Sets the fallback font at index [code]idx[/code]."
-msgstr "设置索引[code]idx[/code]处的后备字体。"
+msgstr "设置索引 [code]idx[/code] 处的后备字体。"
#: doc/classes/DynamicFont.xml
msgid ""
@@ -25013,7 +25220,7 @@ msgstr "矢量字体文件的路径。"
#: doc/classes/DynamicFontData.xml
msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
-msgstr "FreeType 使用的字体提示模式。参阅 [enum Hinting] 选项。"
+msgstr "FreeType 使用的字体提示模式。可选项见 [enum Hinting]。"
#: doc/classes/DynamicFontData.xml
msgid ""
@@ -25237,8 +25444,8 @@ msgid ""
"specified by [code]class_name[/code]."
msgstr ""
"如果 [code]class_name[/code] 指定的类中的 [code]property[/code] 属性被禁用,"
-"则返回 [code]true[/code]。禁用某一属性后,当选中继承自 "
-"[code]class_name[/code] 类的节点时,该属性将不会出现在检查器中。"
+"则返回 [code]true[/code]。禁用某一属性后,当选中继承自 [code]class_name[/"
+"code] 类的节点时,该属性将不会出现在检查器中。"
#: doc/classes/EditorFeatureProfile.xml
msgid ""
@@ -25254,9 +25461,8 @@ msgid ""
"format obtained by using the feature profile manager's [b]Export[/b] button "
"or the [method save_to_file] method."
msgstr ""
-"从文件中加载一个编辑器功能配置文件。该文件必须遵循 JSON "
-"格式,通过使用功能配置文件管理器的[b]导出[/b]按钮或 [method save_to_file] "
-"方法获得。"
+"从文件中加载一个编辑器功能配置文件。该文件必须遵循 JSON 格式,通过使用功能配"
+"置文件管理器的[b]导出[/b]按钮或 [method save_to_file] 方法获得。"
#: doc/classes/EditorFeatureProfile.xml
msgid ""
@@ -25264,9 +25470,8 @@ msgid ""
"imported using the feature profile manager's [b]Import[/b] button or the "
"[method load_from_file] method."
msgstr ""
-"将编辑器的功能配置保存到 JSON "
-"格式的文件中。然后可以使用功能配置文件管理器的[b]导入[/b]按钮或 [method "
-"load_from_file] 方法导入它。"
+"将编辑器的功能配置保存到 JSON 格式的文件中。然后可以使用功能配置文件管理器的"
+"[b]导入[/b]按钮或 [method load_from_file] 方法导入它。"
#: doc/classes/EditorFeatureProfile.xml
msgid ""
@@ -25274,9 +25479,8 @@ msgid ""
"by [code]class_name[/code]. When disabled, the class won't appear in the "
"Create New Node dialog."
msgstr ""
-"如果 [code]disable[/code] 为 [code]true[/code],则禁用 "
-"[code]class_name[/code] 指定的类。禁用后,该类不会出现在“创建新 "
-"Node”对话框中。"
+"如果 [code]disable[/code] 为 [code]true[/code],则禁用 [code]class_name[/"
+"code] 指定的类。禁用后,该类不会出现在“创建新 Node”对话框中。"
#: doc/classes/EditorFeatureProfile.xml
msgid ""
@@ -25285,9 +25489,9 @@ msgid ""
"appear in the Create New Node dialog but the inspector will be read-only "
"when selecting a node that extends the class."
msgstr ""
-"如果 [code]disable[/code] 为 [code]true[/code],则禁用 "
-"[code]class_name[/code] 指定的类的编辑。禁用后,该类仍然会出现在“创建新 "
-"Node”对话框中,但在选中继承的节点时,检查器将只读。"
+"如果 [code]disable[/code] 为 [code]true[/code],则禁用 [code]class_name[/"
+"code] 指定的类的编辑。禁用后,该类仍然会出现在“创建新 Node”对话框中,但在选中"
+"继承的节点时,检查器将只读。"
#: doc/classes/EditorFeatureProfile.xml
msgid ""
@@ -25296,10 +25500,9 @@ msgid ""
"When a property is disabled, it won't appear in the inspector when selecting "
"a node that extends the class specified by [code]class_name[/code]."
msgstr ""
-"如果 [code]disable[/code] 为 [code]true[/code],则禁用 "
-"[code]class_name[/code] 指定的类中的 [code]property[/code] "
-"属性的编辑。禁用某一属性后,选中继承自 [code]class_name[/code] "
-"指定的类的节点时,这个属性将不会出现在检查器中。"
+"如果 [code]disable[/code] 为 [code]true[/code],则禁用 [code]class_name[/"
+"code] 指定的类中的 [code]property[/code] 属性的编辑。禁用某一属性后,选中继承"
+"自 [code]class_name[/code] 指定的类的节点时,这个属性将不会出现在检查器中。"
#: doc/classes/EditorFeatureProfile.xml
msgid ""
@@ -25336,7 +25539,7 @@ msgstr "AssetLib 选项卡。如果禁用此功能,则不会显示 AssetLib
msgid ""
"Scene tree editing. If this feature is disabled, the Scene tree dock will "
"still be visible but will be read-only."
-msgstr "场景树编辑。如果禁用此功能,场景树停靠点仍将可见,但将是只读的。"
+msgstr "场景树编辑。如果禁用此功能,场景树面板仍将可见,但将是只读的。"
#: doc/classes/EditorFeatureProfile.xml
msgid ""
@@ -25926,7 +26129,7 @@ msgstr ""
#: doc/classes/EditorInspector.xml
msgid "A control used to edit properties of an object."
-msgstr "用于编辑所选节点属性的控件。"
+msgstr "用于编辑对象属性的控件。"
#: doc/classes/EditorInspector.xml
msgid ""
@@ -26531,9 +26734,9 @@ msgid ""
"custom gizmos to the 3D preview viewport for a [Spatial].\n"
"See [method add_inspector_plugin] for an example of how to register a plugin."
msgstr ""
-"注册一个新的空间辅助器插件 [EditorSpatialGizmoPlugin]。Gizmo插件用于为 "
-"[Spatial] 的 3D预览视窗添加自定义的 gizmos。\n"
-"参见 [method add_inspector_plugin] 以了解如何注册一个插件的例子。"
+"注册一个新的 [EditorSpatialGizmoPlugin]。小工具插件可以在 3D 预览视区中为 "
+"[Spatial] 添加自定义的小工具。\n"
+"注册插件的示例见 [method add_inspector_plugin]。"
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -27020,7 +27223,7 @@ msgstr "删除由 [method add_scene_import_plugin] 注册的场景导入器。"
#: doc/classes/EditorPlugin.xml
msgid "Removes a gizmo plugin registered by [method add_spatial_gizmo_plugin]."
-msgstr "删除由 [method add_spatial_gizmo_plugin] 注册的控制器插件。"
+msgstr "删除由 [method add_spatial_gizmo_plugin] 注册的小工具插件。"
#: doc/classes/EditorPlugin.xml
msgid "Removes a menu [code]name[/code] from [b]Project > Tools[/b]."
@@ -27687,6 +27890,7 @@ msgid "Base script that can be used to add extension functions to the editor."
msgstr "可用于为编辑器添加扩展功能的基础脚本。"
#: doc/classes/EditorScript.xml
+#, fuzzy
msgid ""
"Scripts extending this class and implementing its [method _run] method can "
"be executed from the Script Editor's [b]File > Run[/b] menu option (or by "
@@ -27704,7 +27908,10 @@ msgid ""
"[/codeblock]\n"
"[b]Note:[/b] The script is run in the Editor context, which means the output "
"is visible in the console window started with the Editor (stdout) instead of "
-"the usual Godot [b]Output[/b] dock."
+"the usual Godot [b]Output[/b] dock.\n"
+"[b]Note:[/b] EditorScript is reference counted, meaning it is destroyed when "
+"nothing references it. This can cause errors during asynchronous operations "
+"if there are no references to the script."
msgstr ""
"扩展该类并实现其 [method _run] 方法的脚本可以在编辑器运行时通过脚本编辑器的"
"[b]文件 > 运行[/b]菜单选项(或按 [code]Ctrl+Shift+X[/code])执行。这对于向 "
@@ -28042,7 +28249,7 @@ msgstr ""
#: doc/classes/EditorSpatialGizmo.xml
msgid "Custom gizmo for editing Spatial objects."
-msgstr "用于编辑空间对象的自定义小工具。"
+msgstr "用于编辑 Spatial 对象的自定义小工具。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28058,7 +28265,7 @@ msgid ""
"Adds the specified [code]segments[/code] to the gizmo's collision shape for "
"picking. Call this function during [method redraw]."
msgstr ""
-"将指定的 [code]segments[/code] 添加到 gizmo 的碰撞形状中,以便挑选。在 "
+"将指定的线段 [code]segments[/code] 添加到小工具的碰撞形状中,用于点选。请在 "
"[method redraw] 时调用此函数。"
#: doc/classes/EditorSpatialGizmo.xml
@@ -28067,8 +28274,8 @@ msgid ""
"generated from a regular [Mesh] too. Call this function during [method "
"redraw]."
msgstr ""
-"将碰撞三角形添加到小工具中,供挑选。也可以从普通的 [Mesh] 生成 "
-"[TriangleMesh]。在 [method redraw] 时调用此函数。"
+"将碰撞三角形添加到小工具中,用于点选。也可以从普通的 [Mesh] 生成 "
+"[TriangleMesh]。请在 [method redraw] 时调用此函数。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28077,8 +28284,8 @@ msgid ""
"There are virtual functions which will be called upon editing of these "
"handles. Call this function during [method redraw]."
msgstr ""
-"添加一个句柄(点)列表,可以用来对编辑的对象进行变形。\n"
-"有一些虚函数将在编辑这些句柄时被调用。在 [method redraw]时调用这个函数。"
+"添加列表中的手柄(点),可以用来对编辑的对象进行变形。\n"
+"编辑这些手柄时会调用一些虚函数。请在 [method redraw] 时调用这个函数。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28086,8 +28293,8 @@ msgid ""
"lines are used for visualizing the gizmo. Call this function during [method "
"redraw]."
msgstr ""
-"用给定的材质在小工具上添加线条到 gizmo(作为 2 个点的集合)。线条用于可视化 "
-"gizmo。在 [method redraw] 时调用此函数。"
+"在小工具上添加使用给定材质的线条(形式为 2 个点的集合)。线条将用于显示小工"
+"具。请在 [method redraw] 时调用此函数。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28096,10 +28303,10 @@ msgid ""
"is [code]true[/code], the mesh will rotate to always face the camera. Call "
"this function during [method redraw]."
msgstr ""
-"以指定的 [code]billboard[/code] 状态、[code]skeleton[/code] 和 "
-"[code]materia[/code] 添加网格到小工具。如果 [code]billboard[/code] 为 "
-"[code]true[/code],则网格将旋转为始终面向相机。在 [method redraw] 时调用此函"
-"数。"
+"在小工具上添加指定的网格,网格使用的是指定的 [code]billboard[/code] 状态、"
+"[code]skeleton[/code] 和 [code]materia[/code]。如果 [code]billboard[/code] "
+"为 [code]true[/code],则网格将旋转为始终面向相机。请在 [method redraw] 时调用"
+"此函数。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28110,7 +28317,7 @@ msgstr "添加一个未缩放的广告牌以实现可视化。在 [method redraw
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
"Removes everything in the gizmo including meshes, collisions and handles."
-msgstr "移除小工具中的一切,包括网格、碰撞和句柄。"
+msgstr "移除小工具中的一切,包括网格、碰撞和手柄。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28119,9 +28326,9 @@ msgid ""
"If the [code]cancel[/code] parameter is [code]true[/code], an option to "
"restore the edited value to the original is provided."
msgstr ""
-"提交一个正在编辑的句柄(句柄必须是之前通过[method add_handles]添加的)。\n"
-"如果[code]cancel[/code]参数是[code]true[/code],则提供了一个将编辑后的值恢复"
-"到原始值的选项。"
+"提交正在编辑的手柄(手柄必须是之前通过 [method add_handles] 添加的)。\n"
+"如果 [code]cancel[/code] 参数为 [code]true[/code],则会提供一个将编辑后的值恢"
+"复到原始值的选项。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28129,16 +28336,16 @@ msgid ""
"by [method add_handles]).\n"
"Handles can be named for reference to the user when editing."
msgstr ""
-"获取已编辑的句柄的名称(句柄必须是之前通过[method add_handles]添加的)。\n"
-"句柄的名称可以在编辑时被命名作为用户参考。"
+"获取编辑的手柄的名称(手柄必须是之前通过 [method add_handles] 添加的)。\n"
+"手柄的名称可以在编辑时被命名作为用户参考。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
"Gets actual value of a handle. This value can be anything and used for "
"eventually undoing the motion when calling [method commit_handle]."
msgstr ""
-"获取一个句柄的实际值,这个值可以是任何东西,用于在调用[method commit_handle]"
-"时最终撤销动作。这个值可以是任何东西,用于在调用[method commit_handle]时最终"
+"获取手柄的实际值。这个值可以是任何东西,用于在调用 [method commit_handle] 时"
+"最终撤销动作。这个值可以是任何东西,用于在调用 [method commit_handle] 时最终"
"撤销动作。"
#: doc/classes/EditorSpatialGizmo.xml
@@ -28158,15 +28365,16 @@ msgid ""
"Returns [code]true[/code] if the handle at index [code]index[/code] is "
"highlighted by being hovered with the mouse."
msgstr ""
-"如果鼠标悬停索引为 [code]index[/code] 的句柄高亮,则返回 [code]true[/code]。"
+"如果鼠标悬停在索引为 [code]index[/code] 的手柄上使之高亮,则返回 [code]true[/"
+"code]。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
"This function is called when the [Spatial] this gizmo refers to changes (the "
"[method Spatial.update_gizmo] is called)."
msgstr ""
-"当这个工具所指 [Spatial] 的变化时([method Spatial.update_gizmo] 函数被调"
-"用)。"
+"这个小工具所引用的 [Spatial] 发生变化时([method Spatial.update_gizmo] 函数被"
+"调用)会调用这个函数。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
@@ -28175,8 +28383,8 @@ msgid ""
"The [Camera] is also provided so screen coordinates can be converted to "
"raycasts."
msgstr ""
-"当用户在屏幕坐标中拖动一个 gizmo 工具手柄时(之前用 [method add_handles] 添加"
-"的),就会使用这个函数。\n"
+"当用户在屏幕坐标中拖动小工具手柄时(之前用 [method add_handles] 添加),就会"
+"使用这个函数。\n"
"还提供了相机 [Camera],以便将屏幕坐标转换为射线投影。"
#: doc/classes/EditorSpatialGizmo.xml
@@ -28184,18 +28392,19 @@ msgid ""
"Sets the gizmo's hidden state. If [code]true[/code], the gizmo will be "
"hidden. If [code]false[/code], it will be shown."
msgstr ""
-"设置工具的隐藏状态。如果为 [code]true[/code],则小控件将被隐藏。如果为 "
-"[code]false[/code],将显示它。"
+"设置该小工具的隐藏状态。如果为 [code]true[/code],则该小工具将被隐藏。如果为 "
+"[code]false[/code] 则会显示。"
#: doc/classes/EditorSpatialGizmo.xml
msgid ""
"Sets the reference [Spatial] node for the gizmo. [code]node[/code] must "
"inherit from [Spatial]."
-msgstr "设置工具的参考 [Spatial] 节点。[code]node[/code]必须继承自 [Spatial]。"
+msgstr ""
+"设置该小工具所引用的 [Spatial] 节点。[code]node[/code]必须继承自 [Spatial]。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid "Used by the editor to define Spatial gizmo types."
-msgstr "由编辑部用于定义空间小工具的类型。"
+msgstr "由编辑部用于定义 Spatial 小工具的类型。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
@@ -28206,8 +28415,8 @@ msgid ""
"To use [EditorSpatialGizmoPlugin], register it using the [method "
"EditorPlugin.add_spatial_gizmo_plugin] method first."
msgstr ""
-"[EditorSpatialGizmoPlugin] 可用于定义新的控制器类型。这样做的主要方法有两种:"
-"比较简单的控制器可以扩展 [EditorSpatialGizmoPlugin],或者可以创建新的 "
+"[EditorSpatialGizmoPlugin] 可用于定义新的小工具类型。这样做的主要方法有两种:"
+"比较简单的小工具可以扩展 [EditorSpatialGizmoPlugin],或者可以创建新的 "
"[EditorSpatialGizmo] 类型。有关更多信息,请参阅文档中的教程。\n"
"要使用 [EditorSpatialGizmoPlugin],请先用 [method EditorPlugin."
"add_spatial_gizmo_plugin] 注册。"
@@ -28225,13 +28434,13 @@ msgid ""
"Override this method to define whether the gizmo can be hidden or not. "
"Returns [code]true[/code] if not overridden."
msgstr ""
-"重写此方法以定义是否可以隐藏 Gizmo。如果未覆盖,则返回 [code]true[/code]。"
+"重写此方法以定义是否可以隐藏该小工具。如果未覆盖,则返回 [code]true[/code]。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
"Override this method to commit gizmo handles. Called for this plugin's "
"active gizmos."
-msgstr "重写此方法以提交 Gizmo 句柄。调用此插件的活动辅助工具。"
+msgstr "重写此方法以提交小工具手柄。会为这个插件的活动小工具进行调用。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
@@ -28282,13 +28491,13 @@ msgstr ""
msgid ""
"Override this method to provide gizmo's handle names. Called for this "
"plugin's active gizmos."
-msgstr "重写此方法以提供 Gizmo 的句柄名称。调用此插件的活动工具。"
+msgstr "重写此方法以提供小工具的手柄名称。会为这个插件的活动小工具进行调用。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
"Gets actual value of a handle from gizmo. Called for this plugin's active "
"gizmos."
-msgstr "从 Gizmo 获取句柄的实际值。调用此插件的活动工具。"
+msgstr "从小工具获取手柄的实际值。会为这个插件的活动小工具进行调用。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
@@ -28303,7 +28512,7 @@ msgstr ""
msgid ""
"Override this method to provide the name that will appear in the gizmo "
"visibility menu."
-msgstr "重写此方法以提供将出现在工具可见性菜单中的名称。"
+msgstr "重写此方法以提供将出现在小工具可见性菜单中的名称。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
@@ -28314,10 +28523,10 @@ msgid ""
"overridden, this method will return [code]0[/code], which means custom "
"gizmos will automatically override built-in gizmos."
msgstr ""
-"重写此方法可以设置工具的优先级。值越高,优先级越高。如果具有较高优先级的工具"
-"与另一个工具发生冲突,则仅使用具有较高优先级的工具。\n"
-"所有内置编辑器小控件均返回 [code]-1[/code]优先级。如果未重写,则此方法将返回 "
-"[code]0[/code],这意味着自定义控件将自动覆盖内置控件。"
+"重写此方法可以设置小工具的优先级。值越高,优先级越高。如果具有较高优先级的小"
+"工具与另一个小工具发生冲突,则仅使用具有较高优先级的小工具。\n"
+"所有内置编辑器小工具均返回 [code]-1[/code] 优先级。如果未重写,则此方法将返"
+"回 [code]0[/code],这意味着自定义控件将自动覆盖内置小工具。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
@@ -28326,34 +28535,36 @@ msgid ""
"if it returns [code]true[/code] the node gets a generic [EditorSpatialGizmo] "
"assigned and is added to this plugin's list of active gizmos."
msgstr ""
-"覆盖这个方法来定义哪些空间节点有这个插件的 gizmo。每当一个 [Spatial] 节点被添"
-"加到一个场景中时,这个方法就会被调用,如果它返回 [code]true[/code],该节点就"
-"会被分配一个通用的 [EditorSpatialGizmo],并被添加到这个插件的激活 Gizmos列表"
-"中。"
+"覆盖这个方法来定义哪些 Spatial 节点有这个插件的小工具。每当一个 [Spatial] 节"
+"点被添加到一个场景中时,这个方法就会被调用,如果它返回 [code]true[/code],该"
+"节点就会被分配一个通用的 [EditorSpatialGizmo],并被添加到这个插件的激活小工具"
+"列表中。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
"Gets whether a handle is highlighted or not. Called for this plugin's active "
"gizmos."
-msgstr "获取句柄是否高亮显示。调用此插件的活动工具。"
+msgstr "获取手柄是否高亮显示。会为这个插件的活动小工具进行调用。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
"Override this method to define whether a Spatial with this gizmo should be "
"selectable even when the gizmo is hidden."
-msgstr "覆盖此方法,以定义具有此工具的空间是否应该在工具被隐藏时也可以被选择。"
+msgstr ""
+"覆盖此方法,以定义具有此小工具的 Spatial 是否应该在小工具被隐藏时也可以被选"
+"择。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
"Callback to redraw the provided gizmo. Called for this plugin's active "
"gizmos."
-msgstr "回调以重新绘制提供的工具。调用此插件的活动工具。"
+msgstr "用以重绘给定的小工具的回调。会为这个插件的活动小工具进行调用。"
#: doc/classes/EditorSpatialGizmoPlugin.xml
msgid ""
"Update the value of a handle after it has been updated. Called for this "
"plugin's active gizmos."
-msgstr "更新句柄后更新其值。调用此插件的活动工具。"
+msgstr "更新手柄后更新其值。会为这个插件的活动小工具进行调用。"
#: doc/classes/EditorSpinSlider.xml
msgid "Godot editor's control for editing numeric values."
@@ -28779,8 +28990,8 @@ msgid ""
"here.\n"
"[/codeblock]"
msgstr ""
-"返回自引擎初始化以来的总帧数,在每个[b]空闲帧[/b]都会进行,无论渲染循环是否被"
-"启用。参阅 [method get_frames_drawn] 和 [method get_physics_frames]。\n"
+"返回自引擎初始化以来的总帧数,无论是否启用渲染循环,每个[b]空闲帧[/b]都会增"
+"长。另请参阅 [method get_frames_drawn] 和 [method get_physics_frames]。\n"
"[method get_idle_frames] 可以用来减少运行高消耗逻辑的次数,而不需要依靠 "
"[Timer]。\n"
"[codeblock]\n"
@@ -29020,14 +29231,14 @@ msgstr ""
"信息可能会被隐藏,即使它们是由其他脚本触发。如果在 [code]tool[/code] 脚本中把"
"这个设置为 [code]false[/code],这也会影响到编辑器本身。在确保错误信息被启用之"
"前,[i]请勿[/i]报告错误(因为默认情况下是会的)。\n"
-"[b]注意:[/b]当从编辑器运行一个项目时,这个属性不影响编辑器的错误选项卡。"
+"[b]注意:[/b]从编辑器运行项目时,这个属性不影响编辑器的错误选项卡。"
#: doc/classes/Engine.xml
msgid ""
"The desired frames per second. If the hardware cannot keep up, this setting "
"may not be respected. A value of 0 means no limit."
msgstr ""
-"所需的每秒帧数。如果硬件无法跟上,则可能不遵守此设置。值为0表示没有限制。"
+"所需的每秒帧数。如果硬件无法跟上,则可能不遵守此设置。值为 0 表示没有限制。"
#: doc/classes/Engine.xml
msgid ""
@@ -29688,8 +29899,8 @@ msgid ""
"HDR values to be suitable for rendering on a SDR display. (Godot doesn't "
"support rendering on HDR displays yet.)"
msgstr ""
-"要使用的色调映射模式。色调映射是将 HDR 值“转换”为适合在 SDR "
-"显示器上呈现的值过程。(Godot 尚不支持在 HDR 显示器上进行渲染。)"
+"要使用的色调映射模式。色调映射是将 HDR 值“转换”为适合在 SDR 显示器上呈现的值"
+"过程。(Godot 尚不支持在 HDR 显示器上进行渲染。)"
#: doc/classes/Environment.xml
msgid ""
@@ -29740,7 +29951,7 @@ msgid ""
msgstr ""
"使用自定义的透明颜色清除背景,并允许定义天空的阴影和反射。这种模式比 "
"[constant BG_SKY] 稍快,应是在可以看到反射,但天空本身不可见的场景中的首选"
-"(例如,自上而下的相机)。"
+"(例如俯视角相机)。"
#: doc/classes/Environment.xml
msgid "Displays a [CanvasLayer] in the background."
@@ -30146,11 +30357,17 @@ msgstr ""
#: doc/classes/File.xml
msgid ""
-"Returns the whole file as a [String].\n"
-"Text is interpreted as being UTF-8 encoded."
+"Returns the whole file as a [String]. Text is interpreted as being UTF-8 "
+"encoded.\n"
+"If [code]skip_cr[/code] is [code]true[/code], carriage return characters "
+"([code]\\r[/code], CR) will be ignored when parsing the UTF-8, so that only "
+"line feed characters ([code]\\n[/code], LF) represent a new line (Unix "
+"convention)."
msgstr ""
-"将整个文件作为 [String] 字符串返回。\n"
-"将按照 UTF-8 编码解析文本。"
+"以 [String] 形式返回整个文件。文本会按照 UTF-8 编码解析。\n"
+"如果 [code]skip_cr[/code] 为 [code]true[/code],解析 UTF-8 时会忽略回车符"
+"([code]\\r[/code],CR),只使用换行符([code]\\n[/code],LF)表示新一行的开"
+"始(Unix 规范)。"
#: doc/classes/File.xml
msgid "Returns next [code]len[/code] bytes of the file as a [PoolByteArray]."
@@ -30701,7 +30918,7 @@ msgid ""
"will change the window title to \"Open a File\")."
msgstr ""
"如果为 [code]true[/code],更改 [code]Mode[/code] 属性将相应地设置窗口标题(例"
-"如,将模式设置为 [constant MODE_OPEN_FILE] 会将窗口标题更改为“打开文件”)。"
+"如将模式设置为 [constant MODE_OPEN_FILE] 会将窗口标题更改为“打开文件”)。"
#: doc/classes/FileDialog.xml
msgid "If [code]true[/code], the dialog will show hidden files."
@@ -30938,13 +31155,17 @@ msgid ""
"[code]next[/code] is passed. clipping the width. [code]position[/code] "
"specifies the baseline, not the top. To draw from the top, [i]ascent[/i] "
"must be added to the Y axis. The width used by the character is returned, "
-"making this function useful for drawing strings character by character."
+"making this function useful for drawing strings character by character.\n"
+"If [code]outline[/code] is [code]true[/code], the outline of the character "
+"is drawn instead of the character itself."
msgstr ""
"使用字体在画布项目的指定位置绘制字符 [code]char[/code],使用的颜色是 "
"[code]modulate[/code],并且会根据宽度做裁剪,如果传入了 [code]next[/code] 还"
"会利用到字偶距。[code]position[/code] 指定的是基线,而不是顶部。要从顶部绘"
"制,必须在 Y 轴上加上[i]字体的升部大小[/i]。该函数返回的是字符所使用的宽度,"
-"因此用来逐字符绘制字符串非常方便。"
+"因此用来逐字符绘制字符串非常方便。\n"
+"如果 [code]outline[/code] 为 [code]true[/code],则绘制的是该字符的轮廓而不是"
+"该字符本身。"
#: doc/classes/Font.xml
msgid "Returns the font ascent (number of pixels above the baseline)."
@@ -31005,7 +31226,7 @@ msgstr "返回字体的减少量(低于基线的像素数)。"
#: doc/classes/Font.xml
msgid "Returns the total font height (ascent plus descent) in pixels."
-msgstr "返回总体字体的高度(增加和减少),单位是像素。"
+msgstr "返回字体的总高度(升部加降部),单位为像素。"
#: doc/classes/Font.xml
msgid ""
@@ -31905,11 +32126,11 @@ msgid ""
"(hole) produced which could be distinguished by calling [method "
"is_polygon_clockwise]."
msgstr ""
-"将[code]polygon_a[/code]与[code]polygon_b[/code]相交并返回相交的多边形数组。"
-"这在多边形之间执行[constant OPERATION_INTERSECTION]。换句话说,返回多边形共享"
-"的公共区域。如果没有发生相交,则返回一个空数组。\n"
-"该操作可能导致产生外部多边形(边界)和内部多边形(孔),可以通过调用[method "
-"is_polygon_clockwise]来区分。"
+"将 [code]polygon_a[/code] 与 [code]polygon_b[/code] 相交并返回相交的多边形数"
+"组。这在多边形之间执行 [constant OPERATION_INTERSECTION]。换句话说,返回多边"
+"形共享的公共区域。如果没有发生相交,则返回一个空数组。\n"
+"该操作可能导致产生外部多边形(边界)和内部多边形(孔),可以通过调用 [method "
+"is_polygon_clockwise] 来区分。"
#: doc/classes/Geometry.xml
msgid ""
@@ -31968,10 +32189,9 @@ msgid ""
"[Vector2] that specifies the positions of each tile, [code]size[/code] "
"contains the overall size of the whole atlas as [Vector2]."
msgstr ""
-"给定表示图块的 [Vector2] "
-"数组,构建一个地图集。返回的字典有两个键:[code]points[/code] 是 [Vector2] "
-"的数组,用于指定每个图块的位置,[code]size[/code] 包含整个图集的整体大小,"
-"是一个 [Vector2]。"
+"给定表示图块的 [Vector2] 数组,构建一个地图集。返回的字典有两个键:"
+"[code]points[/code] 是 [Vector2] 的数组,用于指定每个图块的位置,[code]size[/"
+"code] 包含整个图集的整体大小,是一个 [Vector2]。"
#: doc/classes/Geometry.xml
msgid ""
@@ -32047,14 +32267,14 @@ msgid ""
"(hole) produced which could be distinguished by calling [method "
"is_polygon_clockwise]."
msgstr ""
-"通过[code]delta[/code]单位(像素)对[code]多边形线polyline[/code]进行充气或放"
-"气,产生多边形。如果[code]delta[/code]为正数,则使多段线向外增长。返回一个多"
-"边形数组,因为充气/放气可能导致多个离散的多边形。如果[code]delta[/code]为负"
-"数,返回一个空数组。\n"
-"每个多边形的顶点将由[code]join_type[/code]决定,见[enum PolyJoinType]。\n"
-"每个多边形的端点将由[code]end_type[/code]决定,见[enum PolyEndType]。\n"
-"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),可以通过调用"
-"[method is_polygon_clockwise]来区分。"
+"对多段线 [code]polyline[/code]进行 [code]delta[/code] 个单位(像素)的充气或"
+"放气,产生多边形。如果 [code]delta[/code] 为正数,则使多段线向外增长。返回一"
+"个多边形数组,因为充气/放气可能导致多个离散的多边形。如果 [code]delta[/code] "
+"为负数,返回一个空数组。\n"
+"每个多边形的顶点将由 [code]join_type[/code] 决定,见 [enum PolyJoinType]。\n"
+"每个多边形的端点将由 [code]end_type[/code] 决定,见 [enum PolyEndType]。\n"
+"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),可以通过调用 "
+"[method is_polygon_clockwise] 来区分。"
#: doc/classes/Geometry.xml
msgid ""
@@ -32071,9 +32291,9 @@ msgid ""
"[code]b[/code] and [code]c[/code]. If yes, returns the point of intersection "
"as [Vector3]. If no intersection takes place, an empty [Variant] is returned."
msgstr ""
-"测试从[code]from[/code]开始,方向为[code]dir[/code]的3D射线是否与[code]a[/"
-"code]、[code]b[/code]和[code]c[/code]指定的三角形相交。如果是,返回相交点为"
-"[Vector3]。如果没有发生相交,将返回一个空的[Variant]。"
+"测试从 [code]from[/code] 开始,方向为 [code]dir[/code] 的 3D 射线是否与 "
+"[code]a[/code]、[code]b[/code] 和 [code]c[/code] 指定的三角形相交。如果是,返"
+"回相交点为 [Vector3]。如果没有发生相交,将返回一个空的 [Variant]。"
#: doc/classes/Geometry.xml
msgid ""
@@ -32895,15 +33115,19 @@ msgstr "颜色插值器资源,可用于在用户定义的颜色点之间生成
#: doc/classes/Gradient.xml
msgid ""
"Given a set of colors, this resource will interpolate them in order. This "
-"means that if you have color 1, color 2 and color 3, the ramp will "
-"interpolate from color 1 to color 2 and from color 2 to color 3. The ramp "
-"will initially have 2 colors (black and white), one (black) at ramp lower "
-"offset 0 and the other (white) at the ramp higher offset 1."
+"means that if you have color 1, color 2 and color 3, the gradient will "
+"interpolate from color 1 to color 2 and from color 2 to color 3. The "
+"gradient will initially have 2 colors (black and white), one (black) at "
+"gradient lower offset 0 and the other (white) at the gradient higher offset "
+"1.\n"
+"See also [Curve] which supports more complex easing methods, but does not "
+"support colors."
msgstr ""
"给定一组颜色,这个资源将依次两两插值。这意味着,如果你有颜色 1、颜色 2和颜色 "
"3,渐变将从颜色 1 插值到颜色2、从颜色 2 插值到颜色 3。渐变最初有两种颜色(黑"
"色和白色),一种(黑色)位于渐变较低的偏移量 0 处,另一种(白色)位于渐变较高"
-"的偏移量 1 处。"
+"的偏移量 1 处。\n"
+"另请参阅 [Curve],支持更多复杂的缓动函数,但不支持颜色。"
#: doc/classes/Gradient.xml
msgid ""
@@ -33204,8 +33428,8 @@ msgid ""
"Makes it not possible to connect between two different slot types. The type "
"is defined with the [method GraphNode.set_slot] method."
msgstr ""
-"使得两个不同槽型之间的连接成为不可能。该类型是通过[method GraphNode.set_slot]"
-"方法定义的。"
+"使得两个不同槽型之间的连接成为不可能。该类型是通过 [method GraphNode."
+"set_slot] 方法定义的。"
#: doc/classes/GraphEdit.xml
msgid ""
@@ -33231,7 +33455,7 @@ msgstr ""
#: doc/classes/GraphEdit.xml
msgid "Sets the specified [code]node[/code] as the one selected."
-msgstr "选中一个特定的节点 [code]node[/code]."
+msgstr "将指定的 [code]node[/code] 节点设置为选中的节点。"
#: doc/classes/GraphEdit.xml
msgid "If [code]true[/code], the minimap is visible."
@@ -33251,7 +33475,8 @@ msgstr "小图矩形的大小。地图自身基于网格区域的大小,并被
msgid ""
"If [code]true[/code], enables disconnection of existing connections in the "
"GraphEdit by dragging the right end."
-msgstr "如果为 [code]true[/code],通过拖动右端,可以断开 GraphEdit 中现有的连接。"
+msgstr ""
+"如果为 [code]true[/code],通过拖动右端,可以断开 GraphEdit 中现有的连接。"
#: doc/classes/GraphEdit.xml
msgid "The scroll offset."
@@ -33501,7 +33726,7 @@ msgstr "返回槽[code]idx[/code]的左边(输入)颜色[Color]。"
#: doc/classes/GraphNode.xml
msgid "Returns the right (output) [Color] of the slot [code]idx[/code]."
-msgstr "返回槽[code]idx[/code]的右边(输出)颜色[Color]。"
+msgstr "返回槽[code]idx[/code]的右边(输出)颜色 [Color]。"
#: doc/classes/GraphNode.xml
msgid "Returns the left (input) type of the slot [code]idx[/code]."
@@ -33539,17 +33764,17 @@ msgid ""
"Individual properties can be set using one of the [code]set_slot_*[/code] "
"methods. You must enable at least one side of the slot to do so."
msgstr ""
-"设置ID为[code]idx[/code]的插槽的属性。\n"
-"如果[code]enable_left[/code]/[code]right[/code],就会出现一个端口,该插槽就可"
-"以从这一侧连接。\n"
-"[code]type_left[/code]/[code]right[/code]是端口的一个任意类型。只有具有相同类"
-"型值的端口才能被连接。\n"
-"[code]color_left[/code]/[code]right[/code]是端口在这一侧的图标的色调。\n"
-"[code]custom_left[/code]/[code]right[/code]是这一侧的端口的自定义纹理。\n"
-"[b]注意:[/b]这个方法只设置槽的属性。要创建槽,需要在GraphNode中添加一个"
-"[Control]的派生类。\n"
-"可以使用[code]set_slot_*[/code]方法之一来设置单个属性。你必须至少启用插槽的一"
-"边才能这样做。"
+"设置 ID 为 [code]idx[/code] 的插槽的属性。\n"
+"如果 [code]enable_left[/code]/[code]right[/code],就会出现一个端口,该插槽就"
+"可以从这一侧连接。\n"
+"[code]type_left[/code]/[code]right[/code] 是端口的一个任意类型。只有具有相同"
+"类型值的端口才能被连接。\n"
+"[code]color_left[/code]/[code]right[/code] 是端口在这一侧的图标的色调。\n"
+"[code]custom_left[/code]/[code]right[/code] 是这一侧的端口的自定义纹理。\n"
+"[b]注意:[/b]这个方法只设置槽的属性。要创建槽,需要在 GraphNode 中添加一个 "
+"[Control] 的派生类。\n"
+"可以使用 [code]set_slot_*[/code] 方法之一来设置单个属性。你必须至少启用插槽的"
+"一边才能这样做。"
#: doc/classes/GraphNode.xml
msgid ""
@@ -33563,7 +33788,8 @@ msgstr ""
msgid ""
"Sets the [Color] of the right (output) side of the slot [code]idx[/code] to "
"[code]color_right[/code]."
-msgstr "将插槽 [code]idx[/code] 的右侧(输出)的颜色 [Color] 设置为 "
+msgstr ""
+"将插槽 [code]idx[/code] 的右侧(输出)的颜色 [Color] 设置为 "
"[code]color_right[/code]。"
#: doc/classes/GraphNode.xml
@@ -33622,9 +33848,9 @@ msgid ""
"[b]Note:[/b] Dragging the handle will only emit the [signal resize_request] "
"signal, the GraphNode needs to be resized manually."
msgstr ""
-"如果为 [code]true[/code],用户可以调整图形节点GraphNode的大小。\n"
-"[b]注意:[/b]拖动手柄只会发出 [signal resize_request] 信号,图形节点GraphNode"
-"需要手动调整大小。"
+"如果为 [code]true[/code],用户可以调整 GraphNode 的大小。\n"
+"[b]注意:[/b]拖动手柄只会发出 [signal resize_request] 信号,GraphNode 需要手"
+"动调整大小。"
#: doc/classes/GraphNode.xml
msgid "If [code]true[/code], the GraphNode is selected."
@@ -33637,7 +33863,7 @@ msgid ""
"the GraphNode needs to be removed manually."
msgstr ""
"如果为 [code]true[/code],则关闭按钮将可见。\n"
-"[b]注意:[/b]按下它只会发出[signal close_request]信号,需要手动删除图形节点"
+"[b]注意:[/b]按下它只会发出 [signal close_request] 信号,需要手动删除 "
"GraphNode。"
#: doc/classes/GraphNode.xml
@@ -34564,8 +34790,8 @@ msgstr "低级别的超文本传输协议客户端。"
msgid ""
"Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used "
"to make HTTP requests to download web content, upload files and other data "
-"or to communicate with various services, among other use cases. [b]See the "
-"[HTTPRequest] node for a higher-level alternative.[/b]\n"
+"or to communicate with various services, among other use cases.\n"
+"See the [HTTPRequest] node for a higher-level alternative.\n"
"[b]Note:[/b] This client only needs to connect to a host once (see [method "
"connect_to_host]) to send multiple requests. Because of this, methods that "
"take URLs usually take just the part after the host instead of the full URL, "
@@ -34595,8 +34821,8 @@ msgid ""
"managed certificates with a short validity period."
msgstr ""
"超文本传输协议客户端,有时称为“用户代理”。用于发出 HTTP 请求,以下载网络内"
-"容、上传文件和其他数据,或与各种服务进行通信,以及其他情况。[b]更高级的替代方"
-"案请参阅 [HTTPRequest] 节点[/b] 。\n"
+"容、上传文件和其他数据,或与各种服务进行通信,以及其他情况。\n"
+"更高级的替代方案请参阅 [HTTPRequest] 节点。\n"
"[b]注意:[/b]这个客户端只需要连接主机一次就可以发送多个请求,参阅 [method "
"connect_to_host]。因此,获取 URL 的方法通常只获取主机后面的部分,而不是完整"
"的 URL,因为客户端已经连接到了一个主机。参阅 [method request]以获得完整的例"
@@ -36845,7 +37071,7 @@ msgstr "原始纹理(在压缩前)使用 sRGB 空间。"
msgid ""
"Source texture (before compression) is a normal texture (e.g. it can be "
"compressed into two channels)."
-msgstr "原始纹理(在压缩前)是法线纹理(例如,可以压缩为两个通道)。"
+msgstr "原始纹理(在压缩前)是法线纹理(例如可以压缩为两个通道)。"
#: doc/classes/Image.xml
msgid "Source texture (before compression) is a [TextureLayered]."
@@ -37088,7 +37314,7 @@ msgstr "下一个顶点的 UV。"
#: doc/classes/ImmediateGeometry.xml
msgid "The next vertex's second layer UV."
-msgstr "下一个顶点的第二层UV。"
+msgstr "下一个顶点的第二层 UV。"
#: doc/classes/Input.xml
msgid "A singleton that deals with inputs."
@@ -37163,13 +37389,13 @@ msgid ""
"measurement for each axis is m/s² while on iOS and UWP it's a multiple of "
"the Earth's gravitational acceleration [code]g[/code] (~9.81 m/s²)."
msgstr ""
-"如果设备有加速度传感器,则返回设备的加速度。否则,该方法返回[constant "
+"如果设备有加速度传感器,则返回设备的加速度。否则,该方法返回 [constant "
"Vector3.ZERO]。\n"
-"请注意,即使你的设备有一个加速度计,当从编辑器运行时,该方法也会返回一个空的"
-"[Vector3]。你必须将项目导出到一个支持的设备上,以便从加速度计上读取数值。\n"
-"[b]注意:[/b]这个方法只在iOS、Android和UWP上工作。在其他平台上,它总是返回"
-"[constant Vector3.ZERO]。在Android上,每个轴的测量单位是m/s²,而在iOS和UWP"
-"上,它是地球重力加速度的倍数[code]g[/code](~9.81 m/s²)。"
+"请注意,即使你的设备有加速度计,当从编辑器运行时,该方法也会返回空的 "
+"[Vector3]。你必须将项目导出到支持的设备上,才能从加速度计上读到数值。\n"
+"[b]注意:[/b]这个方法只在 iOS、Android 和 UWP 上有效。在其他平台上,它总是返"
+"回 [constant Vector3.ZERO]。在 Android 上,每个轴的测量单位是 m/s²,而在 iOS "
+"和 UWP 上,它是地球重力加速度的倍数 [code]g[/code](~9.81 m/s²)。"
#: doc/classes/Input.xml
msgid ""
@@ -37321,9 +37547,9 @@ msgid ""
"[b]Note:[/b] This method only works on Android, iOS and UWP. On other "
"platforms, it always returns [constant Vector3.ZERO]."
msgstr ""
-"如果设备有磁力传感器,则返回设备所有轴的磁场强度,微特斯拉。否则,该方法返回"
-"[constant Vector3.ZERO]。\n"
-"[b]注意:[/b]这个方法只在Android、iOS和UWP上有效。在其他平台上,总是返回"
+"如果设备有磁力传感器,则返回设备所有轴的磁场强度,单位为微特斯拉。否则,该方"
+"法返回 [constant Vector3.ZERO]。\n"
+"[b]注意:[/b]这个方法只在 Android、iOS 和 UWP 上有效。在其他平台上,总是返回 "
"[constant Vector3.ZERO]。"
#: doc/classes/Input.xml
@@ -37422,7 +37648,7 @@ msgid ""
"Returns [code]true[/code] if you are pressing the joypad button (see [enum "
"JoystickList])."
msgstr ""
-"如果你正在按下手柄按钮,则返回 [code]true[/code],参阅[enum JoystickList]。"
+"如果你正在按下手柄按钮,则返回 [code]true[/code](见 [enum JoystickList])。"
#: doc/classes/Input.xml
msgid ""
@@ -37642,16 +37868,21 @@ msgstr "停止游戏手柄的振动。"
#: doc/classes/Input.xml
msgid ""
-"Vibrate Android and iOS devices.\n"
+"Vibrate handheld devices.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, and HTML5.\n"
"[b]Note:[/b] For Android, it requires enabling the [code]VIBRATE[/code] "
"permission in the export preset.\n"
"[b]Note:[/b] For iOS, specifying the duration is supported in iOS 13 and "
-"later."
+"later.\n"
+"[b]Note:[/b] Some web browsers such as Safari and Firefox for Android do not "
+"support this method."
msgstr ""
-"振动 Android 和 iOS 设备。\n"
+"振动手持设备。\n"
+"[b]注意:[/b]这个方法在 Android、iOS 及 HTML5 上实现。\n"
"[b]注意:[/b]Android 需要导出设置中的 [code]VIBRATE[/code] 权限。iOS 不支持持"
"续时间。\n"
-"[b]注意:[/b]在 iOS 平台上,iOS 13 及之后的版本才支持指定持续时间。"
+"[b]注意:[/b]在 iOS 平台上,iOS 13 及之后的版本才支持指定持续时间。\n"
+"[b]注意:[/b]Safari 和 Firefox 的 Android 版本等部分浏览器不支持这个方法。"
#: doc/classes/Input.xml
msgid ""
@@ -37824,13 +38055,13 @@ msgstr "移动光标。表示那些东西可以移动。"
msgid ""
"Vertical split mouse cursor. On Windows, it's the same as [constant "
"CURSOR_VSIZE]."
-msgstr "垂直拆分鼠标光标。在 Windows 上,它与 [constant CURSOR_VSIZE] 相同。"
+msgstr "垂直拆分鼠标光标。在 Windows 上与 [constant CURSOR_VSIZE] 相同。"
#: doc/classes/Input.xml
msgid ""
"Horizontal split mouse cursor. On Windows, it's the same as [constant "
"CURSOR_HSIZE]."
-msgstr "水平分割的鼠标光标。在 Windows 上,它与 [constant CURSOR_HSIZE] 相同。"
+msgstr "水平分割的鼠标光标。在 Windows 上与 [constant CURSOR_HSIZE] 相同。"
#: doc/classes/Input.xml
msgid "Help cursor. Usually a question mark."
@@ -38093,7 +38324,7 @@ msgid ""
"Input event type for gamepad joysticks and other motions. For buttons, see "
"[code]InputEventJoypadButton[/code]."
msgstr ""
-"用于游戏板操纵杆和其他动作的输入事件类型。对于按钮,见"
+"用于游戏板操纵杆和其他动作的输入事件类型。对于按钮,见 "
"[code]InputEventJoypadButton[/code]。"
#: doc/classes/InputEventJoypadMotion.xml
@@ -38124,7 +38355,7 @@ msgstr "键盘事件的输入事件类型。"
msgid ""
"Stores key presses on the keyboard. Supports key presses, key releases and "
"[member echo] events."
-msgstr "存储键盘上的按键。支持按键、按键释放和[member echo]回显事件。"
+msgstr "存储键盘上的按键。支持按键、按键释放和 [member echo] 回显事件。"
#: doc/classes/InputEventKey.xml
msgid ""
@@ -38712,8 +38943,17 @@ msgstr ""
#: doc/classes/InstancePlaceholder.xml
msgid ""
-"Not thread-safe. Use [method Object.call_deferred] if calling from a thread."
-msgstr "不是线程安全的。如果从线程调用,请使用 [method Object.call_deferred]。"
+"Call this method to actually load in the node. The created node will be "
+"placed as a sibling [i]above[/i] the [InstancePlaceholder] in the scene "
+"tree. The [Node]'s reference is also returned for convenience.\n"
+"[b]Note:[/b] [method create_instance] is not thread-safe. Use [method Object."
+"call_deferred] if calling from a thread."
+msgstr ""
+"调用这个方法会实际载入节点。创建的节点会被放置在场景树中该 "
+"[InstancePlaceholder] 的[i]上方[/i]。出于方便的考虑,还会返回该 [Node] 的引"
+"用。\n"
+"[b]注意:[/b][method create_instance] 不是线程安全的。从线程中调用时请使用 "
+"[method Object.call_deferred]。"
#: doc/classes/InstancePlaceholder.xml
msgid ""
@@ -38726,6 +38966,20 @@ msgstr ""
#: doc/classes/InstancePlaceholder.xml
msgid ""
+"Returns the list of properties that will be applied to the node when [method "
+"create_instance] is called.\n"
+"If [code]with_order[/code] is [code]true[/code], a key named [code].order[/"
+"code] (note the leading period) is added to the dictionary. This [code]."
+"order[/code] key is an [Array] of [String] property names specifying the "
+"order in which properties will be applied (with index 0 being the first)."
+msgstr ""
+"返回在调用 [method create_instance] 时会应用到节点上的属性列表。\n"
+"如果 [code]with_order[/code] 为 [code]true[/code],会在字典中加入 [code]."
+"order[/code] 字段(注意有个前缀的点)。这个 [code].order[/code] 字段是属性名"
+"称 [String] 的 [Array],指定属性的应用顺序(索引为 0 的是第一个)。"
+
+#: doc/classes/InstancePlaceholder.xml
+msgid ""
"Replaces this placeholder by the scene handed as an argument, or the "
"original scene if no argument is given. As for all resources, the scene is "
"loaded only if it's not loaded already. By manually loading the scene "
@@ -38892,8 +39146,8 @@ msgid ""
"Removes all of a [code]hostname[/code]'s cached references. If no "
"[code]hostname[/code] is given, all cached IP addresses are removed."
msgstr ""
-"移除所有[code]hostname[/code]主机名的缓存引用。如果没有给出[code]hostname[/"
-"code],所有缓存的IP地址将被删除。"
+"移除所有 [code]hostname[/code] 主机名的缓存引用。如果没有给出 "
+"[code]hostname[/code],所有缓存的 IP 地址将被删除。"
#: doc/classes/IP.xml
msgid ""
@@ -38939,7 +39193,7 @@ msgid ""
"[method get_resolve_item_status])."
msgstr ""
"给定队列 [code]id[/code],返回排队主机名的 IP 地址。出现错误或解析尚未发生时"
-"返回一个空字符串(参阅 [method get_resolve_item_status])。"
+"返回一个空字符串(见 [method get_resolve_item_status])。"
#: doc/classes/IP.xml
msgid ""
@@ -39460,11 +39714,11 @@ msgstr "指导线的颜色[Color]。指导线是在每行项目之间画的一
#: doc/classes/ItemList.xml
msgid "The horizontal spacing between items."
-msgstr "项目菜单之间的水平间距。"
+msgstr "项目之间的水平间距。"
#: doc/classes/ItemList.xml
msgid "The spacing between item's icon and text."
-msgstr "项目菜单的图标和文本之间的间距。"
+msgstr "项目的图标和文本之间的间距。"
#: doc/classes/ItemList.xml
msgid "The vertical spacing between each line of text."
@@ -39482,31 +39736,31 @@ msgstr "项目文本的字体 [Font] 。"
msgid ""
"Default [StyleBox] for the [ItemList], i.e. used when the control is not "
"being focused."
-msgstr "[ItemList] 的默认样式盒 [StyleBox],即在控件未获得焦点时使用。"
+msgstr "该 [ItemList] 的默认样式盒 [StyleBox],即会在该控件未获得焦点时使用。"
#: doc/classes/ItemList.xml
msgid "[StyleBox] used when the [ItemList] is being focused."
-msgstr "当 [ItemList] 被聚焦时使用的样式盒 [StyleBox]。"
+msgstr "当该 [ItemList] 获得焦点时所使用的样式盒 [StyleBox]。"
#: doc/classes/ItemList.xml
msgid "[StyleBox] used for the cursor, when the [ItemList] is being focused."
-msgstr "当 [ItemList] 被聚焦时,用于光标的样式盒 [StyleBox]。"
+msgstr "当该 [ItemList] 获得焦点时,用作光标的样式盒 [StyleBox]。"
#: doc/classes/ItemList.xml
msgid ""
"[StyleBox] used for the cursor, when the [ItemList] is not being focused."
-msgstr "当 [ItemList] 没有被聚焦时,用于光标的样式盒 [StyleBox]。"
+msgstr "当该 [ItemList] 未获得焦点时,用作光标的样式盒 [StyleBox]。"
#: doc/classes/ItemList.xml
msgid ""
"[StyleBox] for the selected items, used when the [ItemList] is not being "
"focused."
-msgstr "所选项的样式盒 [StyleBox],当 [ItemList] 没有获得焦点时使用。"
+msgstr "所选项的样式盒 [StyleBox],当该 [ItemList] 未获得焦点时使用。"
#: doc/classes/ItemList.xml
msgid ""
"[StyleBox] for the selected items, used when the [ItemList] is being focused."
-msgstr "所选项的样式盒 [StyleBox],当 [ItemList] 没有获得焦点时使用。"
+msgstr "所选项的样式盒 [StyleBox],当该 [ItemList] 获得焦点时使用。"
#: doc/classes/JavaScript.xml
msgid ""
@@ -39538,8 +39792,8 @@ msgid ""
"JavaScript. The reference must be kept until the callback happens, or it "
"won't be called at all. See [JavaScriptObject] for usage."
msgstr ""
-"创建脚本函数的引用,可以被JavaScript用作回调。这个引用必须保持到回调发生为"
-"止,否则它就不会被调用。使用方法参阅[JavaScriptObject]。"
+"创建脚本函数的引用,可以被 JavaScript 用作回调。这个引用必须保持到回调发生为"
+"止,否则它就不会被调用。使用方法见 [JavaScriptObject]。"
#: doc/classes/JavaScript.xml
msgid ""
@@ -39547,8 +39801,9 @@ msgid ""
"[code]object[/code] must a valid property of the JavaScript [code]window[/"
"code]. See [JavaScriptObject] for usage."
msgstr ""
-"使用[code]new[/code]构造函数创建新的JavaScript对象。[code]object[/code]必须是"
-"JavaScript[code]window[/code]的有效属性。使用方法参阅[JavaScriptObject]。"
+"使用 [code]new[/code] 构造函数创建新的 JavaScript 对象。[code]object[/code] "
+"必须是 JavaScript [code]window[/code] 的有效属性。使用方法见 "
+"[JavaScriptObject]。"
#: doc/classes/JavaScript.xml
msgid ""
@@ -39563,12 +39818,12 @@ msgid ""
"[b]Note:[/b] Browsers might ask the user for permission or block the "
"download if multiple download requests are made in a quick succession."
msgstr ""
-"提示用户下载一个包含指定[code]buffer[/code]缓冲区的文件。该文件将具有给定的"
-"[code]name[/code]和[code]mime[/code]类型。\n"
-"[b]注意:[/b]浏览器可能会根据文件[code]name[/code]的扩展名,覆盖所提供的"
-"[url=https://en.wikipedia.org/wiki/Media_type]MIME类型[/url]。\n"
-"[b]注意:[/b]如果[method download_buffer]不是由用户交互调用,如点击按钮,浏览"
-"器可能会阻止下载。\n"
+"提示用户下载一个包含指定 [code]buffer[/code] 缓冲区的文件。该文件将具有给定"
+"的 [code]name[/code] 和 [code]mime[/code] 类型。\n"
+"[b]注意:[/b]浏览器可能会根据文件 [code]name[/code] 的扩展名,覆盖所提供的 "
+"[url=https://en.wikipedia.org/wiki/Media_type]MIME 类型[/url]。\n"
+"[b]注意:[/b]如果 [method download_buffer] 不是由用户交互调用,如点击按钮,浏"
+"览器可能会阻止下载。\n"
"[b]注意:[/b]如果快速连续提出多个下载请求,浏览器可能会要求用户同意或阻止下"
"载。"
@@ -39582,10 +39837,11 @@ msgid ""
"evaluated in the execution context of a function within the engine's runtime "
"environment."
msgstr ""
-"在浏览器窗口中执行字符串[code]code[/code]作为JavaScript代码。这是对实际的全局"
-"JavaScript函数[code]eval()[/code]的调用。\n"
-"如果[code]use_global_execution_context[/code]是[code]true[/code],代码将在全"
-"局执行环境中被求值。否则,它将在引擎运行时环境中函数的执行上下文中进行求值。"
+"在浏览器窗口中将 [code]code[/code] 字符串作为 JavaScript 代码执行。这是对实际"
+"的全局 JavaScript 函数 [code]eval()[/code] 的调用。\n"
+"如果 [code]use_global_execution_context[/code] 为 [code]true[/code],代码将在"
+"全局执行环境中被求值。否则,它将在引擎运行时环境中函数的执行上下文中进行求"
+"值。"
#: doc/classes/JavaScript.xml
msgid ""
@@ -39595,9 +39851,9 @@ msgid ""
"which will contain the JavaScript [code]arguments[/code]. See "
"[JavaScriptObject] for usage."
msgstr ""
-"返回可以被脚本使用的JavaScript对象的接口。这个[code]interface[/code]必须是"
-"JavaScript[code]window[/code]的一个有效属性。回调必须接受一个[Array]参数,它"
-"将包含JavaScript [code]arguments[/code]。参阅[JavaScriptObject]的用法。"
+"返回可以被脚本使用的 JavaScript 对象的接口。这个 [code]interface[/code] 必须"
+"是 JavaScript [code]window[/code] 的一个有效属性。回调必须接受一个 [Array] 参"
+"数,它将包含JavaScript [code]arguments[/code]。用法见 [JavaScriptObject]。"
#: doc/classes/JavaScript.xml
msgid ""
@@ -39796,7 +40052,8 @@ msgstr ""
#: doc/classes/Joint2D.xml
msgid ""
"If [code]true[/code], [member node_a] and [member node_b] can not collide."
-msgstr "如果为 [code]true[/code],[member node_a]和[member node_b]不能碰撞。"
+msgstr ""
+"如果为 [code]true[/code],则 [member node_a] 和 [member node_b] 无法碰撞。"
#: doc/classes/Joint2D.xml
msgid "The first body attached to the joint. Must derive from [PhysicsBody2D]."
@@ -39805,7 +40062,7 @@ msgstr "连接到关节的第一个实体。必须继承自 [PhysicsBody2D] 。"
#: doc/classes/Joint2D.xml
msgid ""
"The second body attached to the joint. Must derive from [PhysicsBody2D]."
-msgstr "连接到关节的第二实体。必须继承自 [PhysicsBody2D]。"
+msgstr "连接到关节的第二个实体。必须继承自 [PhysicsBody2D]。"
#: doc/classes/JSON.xml
msgid "Helper class for parsing JSON data."
@@ -40009,10 +40266,10 @@ msgid ""
"standard on top of [Dictionary]; you will have to convert between a "
"[Dictionary] and [JSON] with other functions."
msgstr ""
-"[url=https://www.jsonrpc.org/]JSON-RPC[/url]是一个标准,它将一个方法调用包装"
-"在一个[JSON]对象中。该对象有一个特定的结构,并标识出哪个方法被调用,该函数的"
-"参数,并携带一个ID来跟踪响应。这个类在[Dictionary]之上实现了该标准;你必须用"
-"其他函数在[Dictionary]和[JSON]之间进行转换。"
+"[url=https://www.jsonrpc.org/]JSON-RPC[/url] 是一项标准,它将方法调用包装在一"
+"个 [JSON] 对象中。该对象有一个特定的结构,并标识出哪个方法被调用,该函数的参"
+"数,并携带一个 ID 来跟踪响应。这个类在 [Dictionary] 之上实现了该标准;你必须"
+"用其他函数在 [Dictionary] 和 [JSON] 之间进行转换。"
#: doc/classes/JSONRPC.xml
msgid ""
@@ -40154,8 +40411,8 @@ msgid ""
"move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/"
"code]."
msgstr ""
-"返回最后一个碰撞点的地板的表面法线。只有在调用[method move_and_slide]或"
-"[method move_and_slide_with_snap]后,以及[method is_on_floor]返回 "
+"返回最后一个碰撞点的地板的表面法线。只有在调用 [method move_and_slide] 或 "
+"[method move_and_slide_with_snap] 后,以及 [method is_on_floor] 返回 "
"[code]true[/code] 时才有效。"
#: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml
@@ -40326,8 +40583,8 @@ msgid ""
"[code]lock[/code]. See also [member move_lock_x], [member move_lock_y] and "
"[member move_lock_z]."
msgstr ""
-"根据[code]lock[/code]的值,锁定或解锁指定的[code]axis[/code]。参阅[member "
-"move_lock_x]、[member move_lock_y]和[member move_lock_z]。"
+"根据 [code]lock[/code] 的值,锁定或解锁指定的 [code]axis[/code]。另请参阅 "
+"[member move_lock_x]、[member move_lock_y] 和 [member move_lock_z]。"
#: doc/classes/KinematicBody.xml
msgid ""
@@ -40369,8 +40626,8 @@ msgid ""
"scale to avoid visible jittering, or for stability with a stack of kinematic "
"bodies."
msgstr ""
-"在运动函数中用于碰撞恢复的额外边距,参阅 [method move_and_collide]、[method "
-"move_and_slide]、[method move_and_slide_with_snap]。\n"
+"在运动函数中用于碰撞恢复的额外边距(见 [method move_and_collide]、[method "
+"move_and_slide]、[method move_and_slide_with_snap])。\n"
"如果物体离另一个物体至少这么近,它就会认为它们正在发生碰撞,并在执行实际运动"
"之前被推开。\n"
"一个较高的值意味着它在检测碰撞时更加灵活,这有助于持续检测墙壁和地板。\n"
@@ -40384,9 +40641,9 @@ msgid ""
"for example on moving platforms. Do [b]not[/b] use together with [method "
"move_and_slide] or [method move_and_collide] functions."
msgstr ""
-"如果为 [code]true[/code],则物体的运动将与物理帧同步。当通过[AnimationPlayer]"
-"为运动设置动画时,例如在移动平台上,这个功能很有用。请[b]不要[/b]与 [method "
-"move_and_slide] 或 [method move_and_collide] 函数一起使用。"
+"如果为 [code]true[/code],则物体的运动将与物理帧同步。当通过 "
+"[AnimationPlayer] 为运动设置动画时,例如在移动平台上,这个功能很有用。请[b]不"
+"要[/b]与 [method move_and_slide] 或 [method move_and_collide] 函数一起使用。"
#: doc/classes/KinematicBody.xml
msgid ""
@@ -40455,14 +40712,14 @@ msgid ""
"characters that collide against a world, but don't require advanced physics."
msgstr ""
"运动体是特殊类型的物体,旨在让用户控制。它们完全不受物理影响;对于其他类型的"
-"物体,如角色或刚体,它们与静态体一样。然而,它们有两个主要用途:\n"
-"[b]模拟运动:[/b]当这些物体被手动移动时,无论是从代码还是从"
-"[AnimationPlayer],将[member AnimationPlayer.playback_process_mode]设置为 "
-"\"physics\",物理将自动计算其线性和角速度的估值。这使得它们对于移动平台或其他"
-"AnimationPlayer控制的物体非常有用,比如一扇门、一座能打开的桥等。\n"
-"[b]运动型角色:[/b] KinematicBody2D也有一个API用于移动物体([method "
-"move_and_collide]和[method move_and_slide]方法),同时进行碰撞测试。这使得它"
-"们在实现对世界进行碰撞,但不需要高级物理的角色时非常有用。"
+"物体,如角色或刚体,它们与静态体一样。然而,它们有两个主要用途:\n"
+"[b]模拟运动:[/b]当这些物体被手动移动时,无论是从代码还是从 "
+"[AnimationPlayer],将 [member AnimationPlayer.playback_process_mode] 设置"
+"为“physics”,物理将自动计算其线性和角速度的估值。这使得它们对于移动平台或其"
+"他 AnimationPlayer 控制的物体非常有用,比如门、吊桥等。\n"
+"[b]运动学角色:[/b]KinematicBody2D 也有一个 API 用于移动物体([method "
+"move_and_collide] 和 [method move_and_slide] 方法),同时进行碰撞测试。这使得"
+"它们在实现对世界进行碰撞,但不需要高级物理的角色时非常有用。"
#: doc/classes/KinematicBody2D.xml
msgid "Using KinematicBody2D"
@@ -41028,8 +41285,8 @@ msgid ""
"sorted from back to front (subject to priority)."
msgstr ""
"设置文本轮廓的渲染优先级。优先级高的物体将被排序在优先级低的物体前面。\n"
-"[b]注意:[/b]仅在 [member alpha_cut] 为 [constant "
-"ALPHA_CUT_DISABLED](默认值)时适用。\n"
+"[b]注意:[/b]仅在 [member alpha_cut] 为 [constant ALPHA_CUT_DISABLED](默认"
+"值)时适用。\n"
"[b]注意:[/b]仅适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排序"
"方式。这是因为不透明对象不被排序,而透明对象则从后往前排序(取决于优先级)。"
@@ -41049,8 +41306,8 @@ msgid ""
"sorted from back to front (subject to priority)."
msgstr ""
"设置文本的渲染优先级。优先级高的物体将被排序在优先级低的物体前面。\n"
-"[b]注意:[/b]仅在 [member alpha_cut] 为 [constant "
-"ALPHA_CUT_DISABLED](默认值)时适用。\n"
+"[b]注意:[/b]仅在 [member alpha_cut] 为 [constant ALPHA_CUT_DISABLED](默认"
+"值)时适用。\n"
"[b]注意:[/b]仅适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排序"
"方式。这是因为不透明对象不被排序,而透明对象则从后往前排序(取决于优先级)。"
@@ -41272,11 +41529,14 @@ msgstr ""
"如果为 [code]true[/code],则光线的效果会逆转,使区域变暗并投射明亮的阴影。"
#: doc/classes/Light.xml
+#, fuzzy
msgid ""
"The size of the light in Godot units. Only considered in baked lightmaps and "
"only if [member light_bake_mode] is set to [constant BAKE_ALL]. Increasing "
"this value will make the shadows appear blurrier. This can be used to "
-"simulate area lights to an extent."
+"simulate area lights to an extent.\n"
+"[b]Note:[/b] [member light_size] is not affected by [member Spatial.scale] "
+"(the light's scale or its parent's scale)."
msgstr ""
"灯光的大小,使用 Godot 的单位。只在烘焙的光照贴图中考虑,并且只在 [member "
"light_bake_mode] 被设置为 [constant BAKE_ALL] 时考虑。增加这个值会使阴影看起"
@@ -41657,44 +41917,44 @@ msgstr ""
#: doc/classes/Line2D.xml
msgid ""
-"Adds a point at the [code]position[/code]. Appends the point at the end of "
-"the line.\n"
-"If [code]at_position[/code] is given, the point is inserted before the point "
-"number [code]at_position[/code], moving that point (and every point after) "
-"after the inserted point. If [code]at_position[/code] is not given, or is an "
-"illegal value ([code]at_position < 0[/code] or [code]at_position >= [method "
-"get_point_count][/code]), the point will be appended at the end of the point "
-"list."
-msgstr ""
-"在 [code]position[/code] 添加点。将点追加到直线的末尾。\n"
-"如果给定了位置 [code]at_position[/code],则在位置 [code]at_position[/code] 之"
-"前插入该点,并将该点(以及之后的每个点)移动到插入点之后。如果未给出位置处的 "
-"[code]at_position[/code],或者是非法值([code]at_position < 0[/code] 或 "
-"[code]at_position >= [method get_point_count][/code]),则该点将追加到点列表"
-"的末尾。"
+"Adds a point with the specified [code]position[/code] relative to the line's "
+"own position. Appends the new point at the end of the point list.\n"
+"If [code]index[/code] is given, the new point is inserted before the "
+"existing point identified by index [code]index[/code]. Every existing point "
+"starting from [code]index[/code] is shifted further down the list of points. "
+"The index must be greater than or equal to [code]0[/code] and must not "
+"exceed the number of existing points in the line. See [method "
+"get_point_count]."
+msgstr ""
+"在指定的位置 [code]position[/code] 添加一个点,相对于该线段自身的位置。新的点"
+"会被加入到点的列表末尾。\n"
+"如果给定了索引 [code]index[/code],这个新点会被插入到 [code]index[/code] 所对"
+"应的现存点之前。从 [code]index[/code] 往后的所有现存点都会在列表中往后移一"
+"位。该索引必须大于等于 [code]0[/code],不能够超出线段上现存点的数量。见 "
+"[method get_point_count]。"
#: doc/classes/Line2D.xml
msgid "Removes all points from the line."
msgstr "移除直线上的所有点。"
#: doc/classes/Line2D.xml
-msgid "Returns the Line2D's amount of points."
-msgstr "返回该 Line2D 上点的数量。"
+msgid "Returns the amount of points in the line."
+msgstr "返回线段中的点的数量。"
#: doc/classes/Line2D.xml
-msgid "Returns point [code]i[/code]'s position."
-msgstr "返回点 [code]i[/code] 的位置。"
+msgid "Returns the position of the point at index [code]index[/code]."
+msgstr "返回索引 [code]index[/code] 处的点的位置。"
#: doc/classes/Line2D.xml
-msgid "Removes the point at index [code]i[/code] from the line."
-msgstr "将索引 [code]i[/code] 处的点从直线中移除。"
+msgid "Removes the point at index [code]index[/code] from the line."
+msgstr "将索引 [code]index[/code] 处的点从直线中移除。"
#: doc/classes/Line2D.xml
msgid ""
-"Overwrites the position in point [code]i[/code] with the supplied "
-"[code]position[/code]."
+"Overwrites the position of the point at index [code]index[/code] with the "
+"supplied [code]position[/code]."
msgstr ""
-"用提供的 [code]position[/code] 位置覆盖索引 [code]i[/code] 处点的位置。"
+"用提供的 [code]position[/code] 位置覆盖索引 [code]index[/code] 处点的位置。"
#: doc/classes/Line2D.xml
msgid ""
@@ -42323,7 +42583,7 @@ msgstr ""
#: doc/classes/LinkButton.xml
msgid ""
"Determines when to show the underline. See [enum UnderlineMode] for options."
-msgstr "决定何时显示下划线。参阅 [enum UnderlineMode] 的选项。"
+msgstr "决定何时显示下划线。可选项见 [enum UnderlineMode]。"
#: doc/classes/LinkButton.xml
msgid "The LinkButton will always show an underline at the bottom of its text."
@@ -42959,8 +43219,8 @@ msgstr ""
"点击后会弹出 [PopupMenu] 的特殊按钮。\n"
"可以使用 [code]get_popup().add_item(\"菜单项目名称\")[/code] 在这个 "
"[PopupMenu] 中创建新项目。你也可以直接从编辑器中创建它们。要做到这点,选择 "
-"[MenuButton] 节点,然后在 2D 编辑器顶部的工具栏中,点击[b]项目[/b],然后点击"
-"弹出窗口中的[b]添加[/b]。你将能够赋予每个项目新的属性。\n"
+"[MenuButton] 节点,然后在 2D 编辑器顶部的工具栏中,点击[b]列表项[/b],然后点"
+"击弹出窗口中的[b]添加[/b]。你将能够赋予每个项目新的属性。\n"
"与该节点相关的常用属性和方法请参阅 [BaseButton]。"
#: doc/classes/MenuButton.xml doc/classes/OptionButton.xml
@@ -42992,7 +43252,7 @@ msgstr ""
#: doc/classes/MenuButton.xml
msgid "Emitted when [PopupMenu] of this MenuButton is about to show."
-msgstr "当此 MenuButton 的 [PopupMenu] 即将显示时触发。"
+msgstr "当这个 MenuButton 的 [PopupMenu] 即将显示时触发。"
#: doc/classes/MenuButton.xml
msgid "Default text [Color] of the [MenuButton]."
@@ -43117,23 +43377,23 @@ msgstr ""
msgid ""
"Returns all the vertices that make up the faces of the mesh. Each three "
"vertices represent one triangle."
-msgstr "返回所有在这个网格中,构成面的顶点。每三个顶点代表一个三角形。"
+msgstr "返回网格中所有构成面的顶点。每三个顶点代表一个三角形。"
#: doc/classes/Mesh.xml
msgid "Returns the amount of surfaces that the [Mesh] holds."
-msgstr "返回该网格的面数。"
+msgstr "返回该 [Mesh] 中表面的个数。"
#: doc/classes/Mesh.xml
msgid ""
"Returns the arrays for the vertices, normals, uvs, etc. that make up the "
"requested surface (see [method ArrayMesh.add_surface_from_arrays])."
msgstr ""
-"返回所有组成面所需的东西构成的数组的数组,例如顶点,法向,UV等。(参阅"
-"[method ArrayMesh.add_surface_from_arrays])。"
+"返回构成请求表面的顶点、法线、UV 等数组。(见 [method ArrayMesh."
+"add_surface_from_arrays])。"
#: doc/classes/Mesh.xml
msgid "Returns the blend shape arrays for the requested surface."
-msgstr "返回所需面的混合形状数组。"
+msgstr "返回请求表面的混合形状数组。"
#: doc/classes/Mesh.xml
msgid ""
@@ -43157,31 +43417,31 @@ msgstr ""
#: doc/classes/Mesh.xml
msgid "Render array as points (one vertex equals one point)."
-msgstr "将顶点数组渲染为点阵(一个顶点对应一个点阵中的点)。"
+msgstr "将数组渲染为点(一个顶点对应一个点)。"
#: doc/classes/Mesh.xml
msgid "Render array as lines (every two vertices a line is created)."
-msgstr "将顶点组渲染为线条(每两个顶点之间创建一条连线)。"
+msgstr "将数组渲染为线(每两个顶点创建一条连线)。"
#: doc/classes/Mesh.xml
msgid "Render array as line strip."
-msgstr "将顶点组渲染为线条。"
+msgstr "将数组渲染为线条。"
#: doc/classes/Mesh.xml
msgid "Render array as line loop (like line strip, but closed)."
-msgstr "将数组渲染成线状环(像线条,但是封闭的)。"
+msgstr "将数组渲染为线环(类似线条,但是封闭的)。"
#: doc/classes/Mesh.xml
msgid "Render array as triangles (every three vertices a triangle is created)."
-msgstr "将顶点组渲染为三角形(每三个相邻顶点创建一个三角形)。"
+msgstr "将数组渲染为三角形(每三个顶点创建一个三角形)。"
#: doc/classes/Mesh.xml
msgid "Render array as triangle strips."
-msgstr "将顶点组渲染为三角形线框。"
+msgstr "将数组渲染为三角形条。"
#: doc/classes/Mesh.xml
msgid "Render array as triangle fans."
-msgstr "将数组渲染成三角形扇形。"
+msgstr "将数组渲染为三角形扇。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Blend shapes are normalized."
@@ -43189,46 +43449,45 @@ msgstr "混合形状是被归一化了的。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Blend shapes are relative to base weight."
-msgstr "混合形状相对于基础的权重。"
+msgstr "混合形状是相对于基础的权重。"
#: doc/classes/Mesh.xml
msgid ""
"Mesh array contains vertices. All meshes require a vertex array so this "
"should always be present."
-msgstr ""
-"网格组包含许多顶点。每一个网格都需要一个顶点数组,所以这应该持久化储存。"
+msgstr "网格数组包含顶点。所有网格都需要有顶点数组,所以这应该始终存在。"
#: doc/classes/Mesh.xml
msgid "Mesh array contains normals."
-msgstr "网格组包含法线。"
+msgstr "网格数组包含法线。"
#: doc/classes/Mesh.xml
msgid "Mesh array contains tangents."
-msgstr "网格组包含切向。"
+msgstr "网格数组包含切线。"
#: doc/classes/Mesh.xml
msgid "Mesh array contains colors."
-msgstr "网格组包含颜色。"
+msgstr "网格数组包含颜色。"
#: doc/classes/Mesh.xml
msgid "Mesh array contains UVs."
-msgstr "网格组包含 UV。"
+msgstr "网格数组包含 UV。"
#: doc/classes/Mesh.xml
msgid "Mesh array contains second UV."
-msgstr "网格组包含第二套 UV。"
+msgstr "网格数组包含第二套 UV。"
#: doc/classes/Mesh.xml
msgid "Mesh array contains bones."
-msgstr "网格组包含骨骼。"
+msgstr "网格数组包含骨骼。"
#: doc/classes/Mesh.xml
msgid "Mesh array contains bone weights."
-msgstr "网格组包含骨骼权重。"
+msgstr "网格数组包含骨骼权重。"
#: doc/classes/Mesh.xml
msgid "Mesh array uses indices."
-msgstr "网格组使用索引。"
+msgstr "网格数组使用索引。"
#: doc/classes/Mesh.xml
msgid ""
@@ -43242,25 +43501,32 @@ msgstr "用于标记压缩(半精度浮点)顶点数组的标志。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark a compressed (half float) normal array."
-msgstr "曾经用于标记压缩(半精度浮点)法向数组的标志。"
+msgstr "用于标记压缩(半精度浮点)法向数组的标志。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark a compressed (half float) tangent array."
-msgstr "曾经用于标记压缩(半精度浮点)切向数组的标志。"
+msgstr "用于标记压缩(半精度浮点)切线数组的标志。"
-#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
-msgid "Flag used to mark a compressed (half float) color array."
-msgstr "曾用于标记压缩(半精度浮点)颜色数组的标志。"
+#: doc/classes/Mesh.xml
+msgid ""
+"Flag used to mark a compressed (half float) color array.\n"
+"[b]Note:[/b] If this flag is enabled, vertex colors will be stored as 8-bit "
+"unsigned integers. This will clamp overbright colors to [code]Color(1, 1, 1, "
+"1)[/code] and reduce colors' precision."
+msgstr ""
+"用于标记压缩(半精度浮点)颜色数组的标志。\n"
+"[b]注意:[/b]如果启用这个标志,顶点颜色会作为 8 位无符号整数存储。这会导致过"
+"亮颜色被钳制到 [code]Color(1, 1, 1, 1)[/code],降低颜色的精度。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark a compressed (half float) UV coordinates array."
-msgstr "曾用于标记压缩(半精度浮点)UV 坐标数组的标志。"
+msgstr "用于标记压缩(半精度浮点)UV 坐标数组的标志。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid ""
"Flag used to mark a compressed (half float) UV coordinates array for the "
"second UV coordinates."
-msgstr "曾用于标记第二套 UV 坐标的压缩(半精度浮点)UV 坐标数组的标志。"
+msgstr "用于标记第二套 UV 坐标的压缩(半精度浮点)UV 坐标数组的标志。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark a compressed bone array."
@@ -43272,11 +43538,11 @@ msgstr "用于标记压缩(半精度浮点)权重数组的标志。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark a compressed index array."
-msgstr "曾用于标记压缩索引数组的标志。"
+msgstr "用于标记压缩索引数组的标志。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark that the array contains 2D vertices."
-msgstr "曾用于标记包含 2D 顶点的数组的标志。"
+msgstr "用于标记包含 2D 顶点的数组的标志。"
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark that the array uses 16-bit bones instead of 8-bit."
@@ -43294,13 +43560,19 @@ msgid ""
"ARRAY_COMPRESS_NORMAL], [constant ARRAY_COMPRESS_TANGENT], [constant "
"ARRAY_COMPRESS_COLOR], [constant ARRAY_COMPRESS_TEX_UV], [constant "
"ARRAY_COMPRESS_TEX_UV2], [constant ARRAY_COMPRESS_WEIGHTS], and [constant "
-"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] quickly."
+"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] quickly.\n"
+"[b]Note:[/b] Since this flag enables [constant ARRAY_COMPRESS_COLOR], vertex "
+"colors will be stored as 8-bit unsigned integers. This will clamp overbright "
+"colors to [code]Color(1, 1, 1, 1)[/code] and reduce colors' precision."
msgstr ""
"用于快速设置标志 [constant ARRAY_COMPRESS_VERTEX]、[constant "
"ARRAY_COMPRESS_NORMAL]、[constant ARRAY_COMPRESS_TANGENT]、[constant "
"ARRAY_COMPRESS_COLOR]、[constant ARRAY_COMPRESS_TEX_UV]、[constant "
"ARRAY_COMPRESS_TEX_UV2]、[constant ARRAY_COMPRESS_WEIGHTS]、[constant "
-"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] 。"
+"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] 。\n"
+"[b]注意:[/b]因为这个标志会启用 [constant ARRAY_COMPRESS_COLOR],所以顶点颜色"
+"会作为 8 位无符号整数存储。这会导致过亮颜色被钳制到 [code]Color(1, 1, 1, 1)[/"
+"code],降低颜色的精度。"
#: doc/classes/Mesh.xml
msgid "Array of vertices."
@@ -43312,7 +43584,7 @@ msgstr "法线数组。"
#: doc/classes/Mesh.xml
msgid "Array of tangents as an array of floats, 4 floats per tangent."
-msgstr "切向数组。每一个切向数据由四个 float 变量描述。"
+msgstr "切线数组,是浮点数数组,每 4 个浮点数表示一条切线。"
#: doc/classes/Mesh.xml
msgid "Array of colors."
@@ -43328,7 +43600,7 @@ msgstr "第二套 UV 坐标数组。"
#: doc/classes/Mesh.xml
msgid "Array of bone data."
-msgstr "骨骼数据的数组。"
+msgstr "骨骼数据数组。"
#: doc/classes/Mesh.xml
msgid "Array of weights."
@@ -43340,7 +43612,7 @@ msgstr "索引数组。"
#: doc/classes/MeshDataTool.xml
msgid "Helper tool to access and edit [Mesh] data."
-msgstr "用于帮助编辑和使用 [Mesh] 网格数据的工具。"
+msgstr "用于访问和编辑 [Mesh] 数据的辅助工具。"
#: doc/classes/MeshDataTool.xml
msgid ""
@@ -43410,7 +43682,7 @@ msgstr "将当前 MeshDataTool 中所有的数据全部清除。"
#: doc/classes/MeshDataTool.xml
msgid "Adds a new surface to specified [Mesh] with edited data."
-msgstr "使用编辑后的数据,向特定的[Mesh]中添加一个新的面。"
+msgstr "使用编辑后的数据,向指定的 [Mesh] 中添加一个新的表面。"
#: doc/classes/MeshDataTool.xml
msgid ""
@@ -43418,11 +43690,11 @@ msgid ""
"Requires [Mesh] with primitive type [constant Mesh.PRIMITIVE_TRIANGLES]."
msgstr ""
"使用给定 [Mesh] 的指定表面来填充 MeshDataTool 的数据。\n"
-"要求 [Mesh] 具有基本类型 [constant Mesh.PRIMITIVE_TRIANGLES]。"
+"要求 [Mesh] 的图元类型为 [constant Mesh.PRIMITIVE_TRIANGLES]。"
#: doc/classes/MeshDataTool.xml
msgid "Returns the number of edges in this [Mesh]."
-msgstr "返回这个[Mesh]的边数。"
+msgstr "返回这个 [Mesh] 的边数。"
#: doc/classes/MeshDataTool.xml
msgid "Returns array of faces that touch given edge."
@@ -43479,15 +43751,15 @@ msgid ""
"ARRAY_FORMAT_NORMAL] is [code]2[/code].\n"
"See [enum ArrayMesh.ArrayFormat] for a list of format flags."
msgstr ""
-"返回 [Mesh] 的格式,该格式是由 [Mesh] 格式标识组合而成的整数。例如,一个同时"
-"包含顶点和法线的网格将返回 [code]3[/code]格式,因为 [constant ArrayMesh."
-"ARRAY_FORMAT_VERTEX] = [code]1[/code],[constant ArrayMesh."
-"ARRAY_FORMAT_NORMAL] = [code]2[/code]。\n"
-"参阅 [enum ArrayMesh.ArrayFormat] 的格式标识列表。"
+"返回该 [Mesh] 的格式,该格式是由 [Mesh] 格式标识组合而成的整数。例如,一个同"
+"时包含顶点和法线的网格返回的格式是 [code]3[/code],因为 [constant ArrayMesh."
+"ARRAY_FORMAT_VERTEX] 是 [code]1[/code] 而 [constant ArrayMesh."
+"ARRAY_FORMAT_NORMAL] 是 [code]2[/code]。\n"
+"格式标志列表见 [enum ArrayMesh.ArrayFormat]。"
#: doc/classes/MeshDataTool.xml
msgid "Returns the material assigned to the [Mesh]."
-msgstr "返回分配给 [Mesh] 的材质。"
+msgstr "返回分配给该 [Mesh] 的材质。"
#: doc/classes/MeshDataTool.xml
msgid "Returns the vertex at given index."
@@ -43495,7 +43767,7 @@ msgstr "返回给定索引处的顶点。"
#: doc/classes/MeshDataTool.xml
msgid "Returns the bones of the given vertex."
-msgstr "返回给定顶点的骨架。"
+msgstr "返回给定顶点的骨骼。"
#: doc/classes/MeshDataTool.xml
msgid "Returns the color of the given vertex."
@@ -43523,7 +43795,7 @@ msgstr "返回给定顶点的法线。"
#: doc/classes/MeshDataTool.xml
msgid "Returns the tangent of the given vertex."
-msgstr "返回给定顶点的正切值。"
+msgstr "返回给定顶点的切线。"
#: doc/classes/MeshDataTool.xml
msgid "Returns the UV of the given vertex."
@@ -43555,7 +43827,7 @@ msgstr "设置给定顶点的位置。"
#: doc/classes/MeshDataTool.xml
msgid "Sets the bones of the given vertex."
-msgstr "设置给定顶点的骨架。"
+msgstr "设置给定顶点的骨骼。"
#: doc/classes/MeshDataTool.xml
msgid "Sets the color of the given vertex."
@@ -43594,14 +43866,14 @@ msgid ""
"MeshInstance is a node that takes a [Mesh] resource and adds it to the "
"current scenario by creating an instance of it. This is the class most often "
"used to get 3D geometry rendered and can be used to instance a single [Mesh] "
-"in many places. This allows to reuse geometry and save on resources. When a "
-"[Mesh] has to be instanced more than thousands of times at close proximity, "
-"consider using a [MultiMesh] in a [MultiMeshInstance] instead."
+"in many places. This allows reusing geometry, which can save on resources. "
+"When a [Mesh] has to be instanced more than thousands of times at close "
+"proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead."
msgstr ""
-"MeshInstance 是一个节点,它获取 [Mesh] 资源并创建一个实例,将其添加到当前场景"
-"中。这是最常被用来渲染 3D 几何体的类,这可以在很多地方使用 [Mesh] 实例,它允"
-"许重复使用几何体并节省资源。当 [Mesh] 必须在很近的地方被实例化超过数千次时,"
-"可以考虑在 [MultiMeshInstance] 中使用 [MultiMesh] 来代替。"
+"MeshInstance 节点可以携带 [Mesh] 资源,创建其实例并添加到当前场景中。这是渲"
+"染 3D 几何体时最常用的类,这可以将单个 [Mesh] 在多处实例化。这样就能够重复使"
+"用几何体并节省资源。当 [Mesh] 必须在很近的地方被实例化超过数千次时,可以考虑"
+"在 [MultiMeshInstance] 中使用 [MultiMesh] 来代替。"
#: doc/classes/MeshInstance.xml
msgid ""
@@ -43628,7 +43900,7 @@ msgid ""
"calculated from the mesh geometry. It's mainly used for testing."
msgstr ""
"这个辅助工具创建 [MeshInstance] 子节点,在每个顶点都有根据网格几何形状计算的"
-"辅助线框。其主要用于测试。"
+"小工具。其主要用于测试。"
#: doc/classes/MeshInstance.xml
msgid ""
@@ -43777,7 +44049,7 @@ msgstr ""
#: doc/classes/MeshInstance2D.xml
msgid "The [Mesh] that will be drawn by the [MeshInstance2D]."
-msgstr "[Mesh] 将由 [MeshInstance2D] 绘制。"
+msgstr "该 [MeshInstance2D] 绘制的 [Mesh]。"
#: doc/classes/MeshInstance2D.xml doc/classes/MultiMeshInstance2D.xml
msgid ""
@@ -43798,8 +44070,8 @@ msgid ""
"The [Texture] that will be used if using the default [CanvasItemMaterial]. "
"Can be accessed as [code]TEXTURE[/code] in CanvasItem shader."
msgstr ""
-"如果使用默认的[CanvasItemMaterial],就会使用[Texture]。可以在CanvasItem着色器"
-"中作为[code]TEXTURE[/code]访问。"
+"如果使用默认的 [CanvasItemMaterial],就会使用 [Texture]。可以在 CanvasItem 着"
+"色器中作为 [code]TEXTURE[/code] 访问。"
#: doc/classes/MeshInstance2D.xml doc/classes/MultiMeshInstance2D.xml
msgid "Emitted when the [member texture] is changed."
@@ -43832,15 +44104,15 @@ msgstr ""
#: doc/classes/MeshLibrary.xml
msgid "Returns the first item with the given name."
-msgstr "返回第一个指定名称的 item。"
+msgstr "返回第一个具有指定名称的项。"
#: doc/classes/MeshLibrary.xml
msgid "Returns the list of item IDs in use."
-msgstr "返回正在使用的 item id 列表。"
+msgstr "返回正在使用的项目 ID 列表。"
#: doc/classes/MeshLibrary.xml
msgid "Returns the item's mesh."
-msgstr "返回该 item 的网格模型。"
+msgstr "返回该项目的网格。"
#: doc/classes/MeshLibrary.xml
msgid "Returns the transform applied to the item's mesh."
@@ -43848,7 +44120,7 @@ msgstr "返回应用到项目网格的变换。"
#: doc/classes/MeshLibrary.xml
msgid "Returns the item's name."
-msgstr "返回项的名称。"
+msgstr "返回该项的名称。"
#: doc/classes/MeshLibrary.xml
msgid "Returns the item's navigation mesh."
@@ -43905,7 +44177,7 @@ msgstr ""
#: doc/classes/MeshLibrary.xml
msgid "Sets the item's navigation mesh."
-msgstr "设置此项的导航网格。"
+msgstr "设置该项的导航网格。"
#: doc/classes/MeshLibrary.xml
msgid "Sets the transform to apply to the item's navigation mesh."
@@ -43940,7 +44212,7 @@ msgstr ""
#: doc/classes/MeshTexture.xml
msgid "Sets the base texture that the Mesh will use to draw."
-msgstr "设置网格用来绘制的基础纹理。"
+msgstr "设置该 Mesh 用来绘制的基础纹理。"
#: doc/classes/MeshTexture.xml
msgid "Sets the size of the image, needed for reference."
@@ -44034,7 +44306,7 @@ msgstr "显示器与设备内部镜片之间的距离,单位为厘米。"
#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
msgid "The width of the display in centimeters."
-msgstr "显示器的宽度,以厘米为单位。"
+msgstr "显示器的宽度,单位为厘米。"
#: modules/mobile_vr/doc_classes/MobileVRInterface.xml
msgid ""
@@ -44067,7 +44339,7 @@ msgid ""
"performance."
msgstr ""
"过采样设置。由于镜头失真,我们必须以比屏幕自然分辨率更高的质量渲染我们的缓冲"
-"区。介于1.5和2.0之间的值通常可以提供良好的结果,但会牺牲性能。"
+"区。介于 1.5 和 2.0 之间的值通常可以提供良好的结果,但会牺牲性能。"
#: doc/classes/MultiMesh.xml
msgid "Provides high-performance mesh instancing."
@@ -44104,7 +44376,7 @@ msgstr ""
#: doc/classes/MultiMesh.xml
msgid "Gets a specific instance's color."
-msgstr "获取一个特定实例的颜色。"
+msgstr "获取特定实例的颜色。"
#: doc/classes/MultiMesh.xml
msgid "Returns the custom data that has been set for a specific instance."
@@ -44112,7 +44384,7 @@ msgstr "返回已经为特定实例设置的自定义数据。"
#: doc/classes/MultiMesh.xml
msgid "Returns the [Transform] of a specific instance."
-msgstr "返回一个特定实例的 [Transform]。"
+msgstr "返回特定实例的 [Transform]。"
#: doc/classes/MultiMesh.xml
msgid "Returns the [Transform2D] of a specific instance."
@@ -44174,12 +44446,15 @@ msgid ""
"existing vertex colors.\n"
"For the color to take effect, ensure that [member color_format] is non-"
"[code]null[/code] on the [MultiMesh] and [member SpatialMaterial."
-"vertex_color_use_as_albedo] is [code]true[/code] on the material."
+"vertex_color_use_as_albedo] is [code]true[/code] on the material. If the "
+"color doesn't look as expected, make sure the material's albedo color is set "
+"to pure white ([code]Color(1, 1, 1)[/code])."
msgstr ""
-"通过[i]乘以[/i]网格的现有顶点颜色来设置特定实例的颜色。\n"
-"为了使颜色生效,请确保[MultiMesh]上的[member color_format]不是[code]null[/"
-"code],并且[member SpatialMaterial.vertex_color_use_as_albedo]上的材质是"
-"[code]true[/code]。"
+"通过与该网格的现有顶点颜色做[i]乘法[/i]来设置指定实例的颜色。\n"
+"要让颜色生效,请确保该 [MultiMesh] 的 [member color_format] 非 [code]null[/"
+"code],并且材质的 [member SpatialMaterial.vertex_color_use_as_albedo] 为 "
+"[code]true[/code]。如果颜色看上去不对,请确保材质的反照率颜色为纯白"
+"([code]Color(1, 1, 1)[/code])。"
#: doc/classes/MultiMesh.xml
msgid ""
@@ -44243,7 +44518,7 @@ msgid ""
"Limits the number of instances drawn, -1 draws all instances. Changing this "
"does not change the sizes of the buffers."
msgstr ""
-"限制绘制的实例数量,-1会绘制所有的实例。改变这一点并不改变缓冲区的大小。"
+"限制绘制的实例数量,-1 会绘制所有的实例。改变这一点并不改变缓冲区的大小。"
#: doc/classes/MultiMesh.xml
msgid "Use this when using 2D transforms."
@@ -44321,7 +44596,7 @@ msgid ""
msgstr ""
"[MultiMeshInstance] 是特有的节点,用于基于 [MultiMesh] 资源的 "
"[GeometryInstance] 的实例。\n"
-"这对于优化给定网格的大量实例的渲染是非常有用的(例如,森林中的树木或草丛)。"
+"这对于优化给定网格的大量实例的渲染是非常有用的(例如森林中的树木或草丛)。"
#: doc/classes/MultiMeshInstance.xml
msgid ""
@@ -44435,7 +44710,7 @@ msgid ""
"[code]id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). "
"Default ID is [code]0[/code], i.e. broadcast to all peers."
msgstr ""
-"将给定的原始字节 [code]bytes[/code]发送到由 [code]id[/code] 确定的特定对等体"
+"将给定的原始字节 [code]bytes[/code] 发送到由 [code]id[/code] 确定的特定对等体"
"(见 [method NetworkedMultiplayerPeer.set_target_peer])。默认 ID 是 "
"[code]0[/code],即向所有对等体广播。"
@@ -44621,7 +44896,7 @@ msgid ""
"Behave like [constant RPC_MODE_MASTER] but also make the call or property "
"change locally. Analogous to the [code]mastersync[/code] keyword."
msgstr ""
-"类似于 [constant RPC_MODE_MASTER],但也使方法调用或属性改变本地。类似于 "
+"行为类似于 [constant RPC_MODE_MASTER],但也使方法调用或属性改变本地。类似于 "
"[code]mastersync[/code] 关键字。"
#: doc/classes/MultiplayerAPI.xml
@@ -44663,9 +44938,9 @@ msgid ""
"[b]Note:[/b] This function returns [constant OK] if the thread already has "
"ownership of the mutex."
msgstr ""
-"试图锁定此[Mutex],但并不阻塞。成功时返回[constant OK],否则返回[constant "
+"试图锁定此 [Mutex],但并不阻塞。成功时返回 [constant OK],否则返回 [constant "
"ERR_BUSY]。\n"
-"[b]注意:[/b]如果线程已经拥有了该Mutex的所有权,该函数返回[constant OK]。"
+"[b]注意:[/b]如果线程已经拥有了该 Mutex 的所有权,该函数返回 [constant OK]。"
#: doc/classes/Mutex.xml
msgid ""
@@ -44720,7 +44995,7 @@ msgid ""
msgstr ""
"构建基础类型的新对象,并附加此类型的脚本。\n"
"[b]注意:[/b]传递给这个函数的任何参数将被忽略,不会传递给局部构造函数。这将在"
-"未来的API扩展中改变。"
+"未来的 API 扩展中改变。"
#: doc/classes/Navigation.xml
msgid "Mesh-based navigation and pathfinding node."
@@ -45272,6 +45547,7 @@ msgid "3D agent used in navigation for collision avoidance."
msgstr "在导航中用于防撞的 3D 代理。"
#: doc/classes/NavigationAgent.xml
+#, fuzzy
msgid ""
"3D agent that is used in navigation to reach a location while avoiding "
"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
@@ -45285,7 +45561,10 @@ msgid ""
"use the [method get_next_location] function once every physics frame to "
"update the internal path logic of the NavigationAgent. The returned vector "
"position from this function should be used as the next movement position for "
-"the agent's parent Node."
+"the agent's parent Node.\n"
+"[b]Note:[/b] By default, the expensive calculations for avoidance are done "
+"in a thread. In HTML5 exports without thread support, they will be done on "
+"the main thread, which can lead to performance issues."
msgstr ""
"导航中使用的 3D 代理,可以在前往某个位置时躲避静态和动态障碍物。躲避动态障碍"
"物使用的是 RVO(Reciprocal Velocity Obstacles,相对速度障碍物)防撞算法。代理"
@@ -45475,7 +45754,7 @@ msgstr "忽略 Y 轴上的碰撞。在水平面上移动时必须为 [code]true[
#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid "The maximum number of neighbors for the agent to consider."
-msgstr "代理所需考虑的最大邻居数。"
+msgstr "该代理所需考虑的最大邻居数。"
#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid "The maximum speed that an agent can move."
@@ -45578,14 +45857,17 @@ msgstr "抵达由 [method set_target_location] 设置的玩家定义目标时发
#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
msgid ""
"Notifies when the collision avoidance velocity is calculated after a call to "
-"[method set_velocity]."
-msgstr "调用 [method set_velocity] 后,计算出防撞速度时发出通知。"
+"[method set_velocity]. Only emitted when [member avoidance_enabled] is true."
+msgstr ""
+"调用 [method set_velocity] 后,计算出防撞速度时发出通知。仅在 [member "
+"avoidance_enabled] 为真时发出。"
#: doc/classes/NavigationAgent2D.xml
msgid "2D agent used in navigation for collision avoidance."
msgstr "在导航中用于防撞的 2D 代理。"
#: doc/classes/NavigationAgent2D.xml
+#, fuzzy
msgid ""
"2D agent that is used in navigation to reach a location while avoiding "
"static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
@@ -45599,7 +45881,10 @@ msgid ""
"use the [method get_next_location] function once every physics frame to "
"update the internal path logic of the NavigationAgent. The returned vector "
"position from this function should be used as the next movement position for "
-"the agent's parent Node."
+"the agent's parent Node.\n"
+"[b]Note:[/b] By default, the expensive calculations for avoidance are done "
+"in a thread. In HTML5 exports without thread support, they will be done on "
+"the main thread, which can lead to performance issues."
msgstr ""
"导航中使用的 2D 代理,可以在前往某个位置时躲避静态和动态障碍物。躲避动态障碍"
"物使用的是 RVO(Reciprocal Velocity Obstacles,相对速度障碍物)防撞算法。代理"
@@ -45680,14 +45965,14 @@ msgid ""
"environment are traversable to aid agents in pathfinding through complicated "
"spaces."
msgstr ""
-"导航网格是多边形的集合,用于定义环境中的哪些区域是可遍历的,以帮助代理在复杂"
+"导航网格是多边形的集合,用于定义环境中的哪些区域是可以穿越的,帮助代理在复杂"
"的空间中寻路。"
#: doc/classes/NavigationMesh.xml doc/classes/NavigationPolygon.xml
msgid ""
"Adds a polygon using the indices of the vertices you get when calling "
"[method get_vertices]."
-msgstr "使用调用[method get_vertices]得到的顶点的索引添加一个多边形。"
+msgstr "使用调用 [method get_vertices] 得到的顶点的索引添加一个多边形。"
#: doc/classes/NavigationMesh.xml
msgid ""
@@ -45711,7 +45996,7 @@ msgstr ""
msgid ""
"Returns a [PoolIntArray] containing the indices of the vertices of a created "
"polygon."
-msgstr "返回包含创建的多边形顶点索引的[PoolIntArray]。"
+msgstr "返回包含创建的多边形顶点索引的 [PoolIntArray]。"
#: doc/classes/NavigationMesh.xml
msgid "Returns the number of polygons in the navigation mesh."
@@ -45721,7 +46006,7 @@ msgstr "返回导航网格中的多边形数量。"
msgid ""
"Returns a [PoolVector3Array] containing all the vertices being used to "
"create the polygons."
-msgstr "返回包含用于创建多边形的所有顶点的[PoolVector3Array]。"
+msgstr "返回包含用于创建多边形的所有顶点的 [PoolVector3Array]。"
#: doc/classes/NavigationMesh.xml
msgid ""
@@ -45739,7 +46024,7 @@ msgstr ""
msgid ""
"Sets the vertices that can be then indexed to create polygons with the "
"[method add_polygon] method."
-msgstr "设置顶点,然后使用 [method add_polygon] 方法创建多边形。"
+msgstr "设置顶点,可以使用 [method add_polygon] 方法对其进行索引,创建多边形。"
#: doc/classes/NavigationMesh.xml
msgid ""
@@ -45781,7 +46066,7 @@ msgstr "用于字段 Y 轴单元的尺寸。"
#: doc/classes/NavigationMesh.xml
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
-msgstr "生成细分网格时使用的采样距离,以单元为单位。"
+msgstr "生成细分网格时使用的采样距离,以单元格为单位。"
#: doc/classes/NavigationMesh.xml
msgid ""
@@ -45802,7 +46087,7 @@ msgid ""
"multiple of [member cell_size]."
msgstr ""
"沿网格边界的轮廓的最大允许长度。\n"
-"[b]注意:[/b]烘焙时,这个值会向上取整到最接近的[member cell_size]的倍数。"
+"[b]注意:[/b]烘焙时,这个值会向上取整到最接近的 [member cell_size] 的倍数。"
#: doc/classes/NavigationMesh.xml
msgid ""
@@ -45856,7 +46141,7 @@ msgstr ""
msgid ""
"The source of the geometry used when baking. See [enum SourceGeometryMode] "
"for possible values."
-msgstr "烘焙时使用的几何体的源。可能的取值见 [enum SourceGeometryMode]。"
+msgstr "烘焙时使用的几何体的来源。可能的取值见 [enum SourceGeometryMode]。"
#: doc/classes/NavigationMesh.xml
msgid ""
@@ -45865,7 +46150,7 @@ msgid ""
"SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] or [constant "
"SOURCE_GEOMETRY_GROUPS_EXPLICIT]."
msgstr ""
-"要扫描的几何体组的名称。\n"
+"分组的名称,会在该分组中扫描几何体。\n"
"只有当 [member geometry_source_geometry_mode] 是 [constant "
"SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] 或 [constant "
"SOURCE_GEOMETRY_GROUPS_EXPLICIT] 时才使用。"
@@ -45884,8 +46169,8 @@ msgid ""
"For example, a value of 20 will set the number of cells to 400."
msgstr ""
"如果可能的话,任何小于这个尺寸的区域将与较大的区域合并。\n"
-"[b]注意:[/b]这个值将被平方来计算单元格的数量。例如,一个20的值将把单元格的数"
-"量设为400。"
+"[b]注意:[/b]这个值将被平方来计算单元格的数量。例如,值为 20 时将把单元格的数"
+"量设为 400。"
#: doc/classes/NavigationMesh.xml
msgid ""
@@ -46093,13 +46378,13 @@ msgid ""
"The cost of traveling distances inside this region can be controlled with "
"the [member travel_cost] multiplier."
msgstr ""
-"[NavigationMesh] 的实例。[Navigation] 节点根据它的 [NavigationMesh] "
-"资源来确定哪些可以进行导航、哪些不能。\n"
+"[NavigationMesh] 的实例。[Navigation] 节点根据它的 [NavigationMesh] 资源来确"
+"定哪些可以进行导航、哪些不能。\n"
"默认情况下,这个节点会在默认的 [World] 导航地图中进行注册。如果这个节点是 "
"[Navigation] 节点的子项,就会在该导航节点的导航地图中进行注册。\n"
"如果两个地图共享类似的边界,就可以相互连接。你可以通过 [method "
-"NavigationServer.map_set_edge_connection_margin] "
-"设置两个顶点连接两条边界所需的最小距离。\n"
+"NavigationServer.map_set_edge_connection_margin] 设置两个顶点连接两条边界所需"
+"的最小距离。\n"
"[b]注意:[/b]将两个地区的导航网格相互重叠并不足以将其相连。它们必须共享类似的"
"边界。\n"
"从另一个地区进入这个地图的消耗可以通过 [member enter_cost] 进行控制。\n"
@@ -46430,13 +46715,13 @@ msgid ""
"The pathfinding cost of traveling distances inside this region can be "
"controlled with the [member travel_cost] multiplier."
msgstr ""
-"导航地图上的地区。[Navigation2DServer] 根据它的 [NavigationPolygon] "
-"资源来确定哪些可以进行导航、哪些不能。\n"
+"导航地图上的地区。[Navigation2DServer] 根据它的 [NavigationPolygon] 资源来确"
+"定哪些可以进行导航、哪些不能。\n"
"默认情况下,这个节点会在默认的 [World2D] 导航地图中进行注册。如果这个节点是 "
"[Navigation2D] 节点的子项,就会在该导航节点的导航地图中进行注册。\n"
"如果两个地图共享类似的边界,就可以相互连接。你可以通过 [method "
-"Navigation2DServer.map_set_edge_connection_margin] "
-"设置两个顶点连接两条边界所需的最小距离。\n"
+"Navigation2DServer.map_set_edge_connection_margin] 设置两个顶点连接两条边界所"
+"需的最小距离。\n"
"[b]注意:[/b]将两个地区的导航网格相互重叠并不足以将其相连。它们必须共享类似的"
"边界。\n"
"从另一个地区进入这个地图的寻路消耗可以通过 [member enter_cost] 进行控制。\n"
@@ -46478,6 +46763,7 @@ msgid "Server interface for low-level 3D navigation access."
msgstr "访问底层 3D 导航的服务器接口。"
#: doc/classes/NavigationServer.xml
+#, fuzzy
msgid ""
"NavigationServer is the server responsible for all 3D navigation. It handles "
"several objects, namely maps, regions and agents.\n"
@@ -46498,6 +46784,9 @@ msgid ""
"modified velocity as-is might lead to pushing and agent outside of a "
"navigable area. This is a limitation of the collision avoidance system, any "
"more complex situation may require the use of the physics engine.\n"
+"[b]Note:[/b] By default, the expensive calculations for avoidance are done "
+"in a thread. In HTML5 exports without thread support, they will be done on "
+"the main thread, which can lead to performance issues.\n"
"This server keeps tracks of any call and executes them during the sync "
"phase. This means that you can request any change to the map, using any "
"thread, without worrying."
@@ -46610,15 +46899,39 @@ msgstr ""
#: doc/classes/NetworkedMultiplayerCustom.xml
msgid ""
"Initialize the peer with the given [code]peer_id[/code] (must be between 1 "
-"and 2147483647)."
-msgstr "使用给定的 [code]peer_id[/code] 初始化该对等体(必须在 1 和 2147483647 "
-"之间)。"
+"and 2147483647).\n"
+"Can only be called if the connection status is [constant "
+"NetworkedMultiplayerPeer.CONNECTION_CONNECTING]. See [method "
+"set_connection_status]."
+msgstr ""
+"使用给定的 [code]peer_id[/code] 初始化该对等体(必须在 1 和 2147483647 之"
+"间)。\n"
+"只能在连接状态为 [constant NetworkedMultiplayerPeer.CONNECTION_CONNECTING] 时"
+"调用。见 [method set_connection_status]。"
#: doc/classes/NetworkedMultiplayerCustom.xml
msgid ""
"Set the state of the connection. See [enum NetworkedMultiplayerPeer."
-"ConnectionStatus]."
-msgstr "设置连接的状态。见 [enum NetworkedMultiplayerPeer.ConnectionStatus]。"
+"ConnectionStatus].\n"
+"This will emit the [signal NetworkedMultiplayerPeer.connection_succeeded], "
+"[signal NetworkedMultiplayerPeer.connection_failed] or [signal "
+"NetworkedMultiplayerPeer.server_disconnected] signals depending on the "
+"status and if the peer has the unique network id of [code]1[/code].\n"
+"You can only change to [constant NetworkedMultiplayerPeer."
+"CONNECTION_CONNECTING] from [constant NetworkedMultiplayerPeer."
+"CONNECTION_DISCONNECTED] and to [constant NetworkedMultiplayerPeer."
+"CONNECTION_CONNECTED] from [constant NetworkedMultiplayerPeer."
+"CONNECTION_CONNECTING]."
+msgstr ""
+"设置连接的状态。见 [enum NetworkedMultiplayerPeer.ConnectionStatus]。\n"
+"根据状态的不同,以及该对等体的唯一网络 ID 是否为 [code]1[/code],会触发 "
+"[signal NetworkedMultiplayerPeer.connection_succeeded]、[signal "
+"NetworkedMultiplayerPeer.connection_failed] 或 [signal "
+"NetworkedMultiplayerPeer.server_disconnected] 信号。\n"
+"从 [constant NetworkedMultiplayerPeer.CONNECTION_DISCONNECTED] 才能变到 "
+"[constant NetworkedMultiplayerPeer.CONNECTION_CONNECTING],从 [constant "
+"NetworkedMultiplayerPeer.CONNECTION_CONNECTING] 才能变到 [constant "
+"NetworkedMultiplayerPeer.CONNECTION_CONNECTED]。"
#: doc/classes/NetworkedMultiplayerCustom.xml
msgid "Set the max packet size that this peer can handle."
@@ -46632,15 +46945,15 @@ msgid ""
"it's received)."
msgstr ""
"当本地 [MultiplayerAPI] 生成数据包时触发。\n"
-"你的脚本应当获取这个数据包并将其通过网络发送给请求的对等体("
-"对方收到该数据时应当调用 [method deliver_packet])。"
+"你的脚本应当获取这个数据包并将其通过网络发送给请求的对等体(对方收到该数据时"
+"应当调用 [method deliver_packet])。"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
"html]ENet[/url] library."
msgstr ""
-"使用[url=http://enet.bespin.org/index.html]ENet[/url]库实现PacketPeer。"
+"使用 [url=http://enet.bespin.org/index.html]ENet[/url] 库实现 PacketPeer。"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
@@ -46693,19 +47006,19 @@ msgid ""
"code] is specified, the client will also listen to the given port; this is "
"useful for some NAT traversal techniques."
msgstr ""
-"创建客户端,使用指定的[code]端口[/code]连接到[code]地址[/code]的服务器上。给"
-"定的地址需要是一个完全合格的域名(例如,[code]\"www.example.com\"[/code])或"
-"一个IPv4或IPv6格式的IP地址(例如,[code]\"192.168.1.1\"[/code])。"
-"[code]port[/code]是服务器所监听的端口。[code]in_bandwidth[/code]和"
-"[code]out_bandwidth[/code]参数可用于将传入和传出的带宽限制在给定的字节数/秒。"
-"默认的0意味着无限的带宽。请注意,ENet会在对等体之间连接的特定一侧战略性地丢弃"
-"数据包,以确保对等体的带宽不被淹没。带宽参数也决定了连接的窗口大小,它限制了"
-"在任何给定时间内可能正在传输的可靠数据包的数量。如果创建了一个客户端,返回"
-"[constant OK];如果这个NetworkedMultiplayerENet实例已经有一个开放的连接(在这"
-"种情况下,你需要先调用[method close_connection]),返回[constant "
-"ERR_CANT_CREATE];如果不能创建客户端,返回[constant ERR_CANT_CREATE]。如果指"
-"定了[code]client_port[/code],客户端也将监听给定的端口;这对一些NAT穿越技术很"
-"有用。"
+"创建客户端,使用指定的 [code]port[/code]连接到[code]address[/code]的服务器"
+"上。给定的地址需要是一个完全合格的域名(例如 [code]\"www.example.com\"[/"
+"code])或一个 IPv4 或 IPv6 格式的 IP 地址(例如 [code]\"192.168.1.1\"[/"
+"code])。[code]port[/code] 是服务器所监听的端口。[code]in_bandwidth[/code] "
+"和 [code]out_bandwidth[/code] 参数可用于将传入和传出的带宽限制在给定的字节数/"
+"秒。默认的 0 意味着无限的带宽。请注意,ENet 会在对等体之间连接的特定一侧战略"
+"性地丢弃数据包,以确保对等体的带宽不被淹没。带宽参数也决定了连接的窗口大小,"
+"它限制了在任何给定时间内可能正在传输的可靠数据包的数量。如果创建了一个客户"
+"端,返回 [constant OK];如果这个 NetworkedMultiplayerENet 实例已经有一个开放"
+"的连接(在这种情况下,你需要先调用 [method close_connection]),返回 "
+"[constant ERR_CANT_CREATE];如果不能创建客户端,则返回 [constant "
+"ERR_CANT_CREATE]。如果指定了 [code]client_port[/code],客户端也将监听给定的端"
+"口;这对一些 NAT 穿越技术很有用。"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
@@ -46724,16 +47037,16 @@ msgid ""
"case you need to call [method close_connection] first) or [constant "
"ERR_CANT_CREATE] if the server could not be created."
msgstr ""
-"创建服务器,通过[code]port[/code]监听连接。该端口需要是一个可用的、未使用的端"
-"口,在0到65535之间。注意,低于1024的端口是特权端口,根据平台的不同可能需要提"
-"高权限。要改变服务器监听的接口,请使用[method set_bind_ip]。默认IP是通配符"
-"[code]\"*\"[/code],它监听所有可用的接口。[code]max_clients[/code]是允许同时"
-"进行的最大客户数,可以使用任何数字,最高可达4095,尽管可实现的同时进行的客户"
-"数可能要低得多,并且取决于应用。关于带宽参数的其他细节,见[method "
-"create_client]。如果服务器被创建,返回[constant OK];如果这个"
-"NetworkedMultiplayerENet实例已经有一个开放的连接(在这种情况下,你需要先调用"
-"[method close_connection]),返回[constant ERR_CANT_CREATE];如果服务器不能被"
-"创建,返回[constant ERR_CANT_CREATE]。"
+"创建服务器,通过 [code]port[/code] 监听连接。该端口需要是一个可用的、未使用的"
+"端口,在 0 到 65535 之间。注意,低于 1024 的端口是特权端口,根据平台的不同可"
+"能需要提高权限。要改变服务器监听的接口,请使用 [method set_bind_ip]。默认 IP "
+"是通配符 [code]\"*\"[/code],会监听所有可用的接口。[code]max_clients[/code] "
+"是允许同时进行的最大客户数,可以使用任何数字,最高可达 4095,尽管可实现的同时"
+"进行的客户数可能要低得多,并且取决于应用。关于带宽参数的其他细节,见 [method "
+"create_client]。如果服务器被创建,则返回 [constant OK];如果这个 "
+"NetworkedMultiplayerENet 实例已经有一个开放的连接(在这种情况下,你需要先调"
+"用 [method close_connection]),则返回 [constant ERR_CANT_CREATE];如果服务器"
+"不能被创建,则返回 [constant ERR_CANT_CREATE]。"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
@@ -46772,8 +47085,9 @@ msgid ""
"needs to be in IPv4 or IPv6 address format, for example: "
"[code]\"192.168.1.1\"[/code]."
msgstr ""
-"创建服务器时使用的IP。默认情况下,这被设置为通配符[code]\"*\"[/code],它绑定"
-"到所有可用的接口。IP地址格式为IPv4或IPv6,例如:[code]\"192.168.1.1\"[/code]。"
+"创建服务器时使用的 IP。默认情况下,这被设置为通配符 [code]\"*\"[/code],它绑"
+"定到所有可用的接口。给定的 IP 地址格式需要是 IPv4 或 IPv6,例如:"
+"[code]\"192.168.1.1\"[/code]。"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
@@ -46932,8 +47246,8 @@ msgid ""
"requiring the fewest CPU resources. This option may also be used to make "
"network debugging using tools like Wireshark easier."
msgstr ""
-"无压缩。这使用最多的带宽,但具有占用最少 CPU 资源的好处。这个选项可以用于"
-"Wireshark等工具使用,更容易进行网络调试。"
+"无压缩。这使用最多的带宽,但具有占用最少 CPU 资源的好处。这个选项可以用于 "
+"Wireshark 等工具使用,更容易进行网络调试。"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid ""
@@ -46960,13 +47274,13 @@ msgid ""
"packets smaller than 4 KB. Therefore, it's recommended to use other "
"compression algorithms in most cases."
msgstr ""
-"[url=https://www.zlib.net/]Zlib[/url]压缩。与 [constant COMPRESS_FASTLZ] 相"
+"[url=https://www.zlib.net/]Zlib[/url] 压缩。与 [constant COMPRESS_FASTLZ] 相"
"比,这个选项使用较少的带宽,但代价是使用更多的 CPU 资源。请注意,这种算法对小"
"于4KB的数据包不是很有效。因此,建议在大多数情况下使用其他压缩算法。"
#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml
msgid "[url=https://facebook.github.io/zstd/]Zstandard[/url] compression."
-msgstr "[url=https://facebook.github.io/zstd/]Zstandard[/url]压缩。"
+msgstr "[url=https://facebook.github.io/zstd/]Zstandard[/url] 压缩。"
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid "A high-level network interface to simplify multiplayer interactions."
@@ -47068,8 +47382,8 @@ msgid ""
"consider whether the order matters."
msgstr ""
"数据包不被确认,对丢失的数据包不进行重发尝试。数据包可以以任何顺序到达。可能"
-"比[constant TRANSFER_MODE_UNRELIABLE_ORDERED]快。用于非关键数据,并注意考虑顺"
-"序是否重要。"
+"比 [constant TRANSFER_MODE_UNRELIABLE_ORDERED] 快。用于非关键数据,并注意考虑"
+"顺序是否重要。"
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid ""
@@ -47080,8 +47394,8 @@ msgid ""
"example movement and positional data."
msgstr ""
"数据包不被确认,对丢失的数据包不进行重发尝试。数据包按其发送顺序接收。有可能"
-"比[constant TRANSFER_MODE_RELIABLE]快。用于非关键数据或由于重发尝试而迟迟不能"
-"收到的数据,例如运动和位置数据。"
+"比 [constant TRANSFER_MODE_RELIABLE] 快。用于非关键数据或由于重发尝试而迟迟不"
+"能收到的数据,例如运动和位置数据。"
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid ""
@@ -47094,8 +47408,8 @@ msgid ""
msgstr ""
"数据包必须被接收,并应进行重发尝试,直到数据包被确认。数据包必须按照其发送的"
"顺序接收。最可靠的传输模式,但由于开销很大,可能是最慢的。用于必须按顺序传输"
-"和到达的关键数据,例如,正在触发的能力或聊天信息。仔细考虑信息是否真的是关键"
-"的,并尽量少用。"
+"和到达的关键数据,例如触发的能力或聊天信息。仔细考虑信息是否真的是关键的,并"
+"尽量少用。"
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid "The ongoing connection disconnected."
@@ -47444,8 +47758,8 @@ msgstr ""
"set_input_as_handled]。\n"
"对于游戏输入,[method _unhandled_input] 和 [method _unhandled_key_input] 通常"
"更适合,因为它们允许 GUI 首先拦截事件。\n"
-"[b]注意:[/b]这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它"
-"非“孤儿”)。"
+"[b]注意:[/b]这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它不"
+"是“孤儿”)。"
#: doc/classes/Node.xml
msgid ""
@@ -47508,8 +47822,8 @@ msgid ""
"call with [method request_ready], which may be called anywhere before adding "
"the node again."
msgstr ""
-"当节点“就绪”时被调用。子节点的 [method _ready] 回调会首先被触发,而父节点会在"
-"之后收到就绪通知。\n"
+"当该节点“就绪”时被调用。子节点的 [method _ready] 回调会首先被触发,而父节点会"
+"在之后收到就绪通知。\n"
"对应于 [method Object._notification] 中的 [constant NOTIFICATION_READY] 通"
"知。也请参阅变量的 [code]onready[/code] 关键字。\n"
"通常用于初始化。对于更早的初始化,可以使用 [method Object._init]。也请参阅 "
@@ -47625,10 +47939,10 @@ msgid ""
"will have a human-readable name based on the name of the node being "
"instanced instead of its type."
msgstr ""
-"添加[code]child_node[/code]作为子节点。该子节点在子节点列表中被置于给定的"
-"[code]node[/code]之下。\n"
-"如果[code]legible_unique_name[/code]是[code]true[/code],子节点将有一个基于被"
-"实例化的节点名称,而不是其类型可读的名称。"
+"将 [code]child_node[/code] 添加为子节点。该子节点在子节点列表中被置于给定的 "
+"[code]node[/code] 之下。\n"
+"如果 [code]legible_unique_name[/code] 为 [code]true[/code],子节点将有一个基"
+"于被实例化的节点名称,而不是其类型可读的名称。"
#: doc/classes/Node.xml
msgid ""
@@ -47685,10 +47999,10 @@ msgid ""
"constructor arguments (i.e. needs to supply arguments to [method Object."
"_init] method). In that case, the node will be duplicated without a script."
msgstr ""
-"复制节点,返回一个新的节点。\n"
-"你可以使用[code]flags[/code]来微调这个行为(见[enum DuplicateFlags])。\n"
-"[b]注意:[/b]如果节点包含一个带有构造参数的脚本(即需要向[method Object."
-"_init]方法提供参数),它将不能正常工作。在这种情况下,节点将被复制而没有脚"
+"复制该节点,返回一个新的节点。\n"
+"你可以使用 [code]flags[/code] 来微调这个行为(见 [enum DuplicateFlags])。\n"
+"[b]注意:[/b]如果节点包含一个带有构造参数的脚本(即需要向 [method Object."
+"_init] 方法提供参数),它将不能正常工作。在这种情况下,节点将被复制而没有脚"
"本。"
#: doc/classes/Node.xml
@@ -47746,9 +48060,9 @@ msgid ""
"method is often used for iterating all children of a node.\n"
"To access a child node via its name, use [method get_node]."
msgstr ""
-"按索引返回一个子节点(见[method get_child_count])。这个方法经常被用于遍历一"
+"按索引返回一个子节点(见 [method get_child_count])。这个方法经常被用于遍历一"
"个节点的所有子节点。\n"
-"要通过一个子节点的名字访问它,请使用[method get_node]。"
+"要通过一个子节点的名字访问它,请使用 [method get_node]。"
#: doc/classes/Node.xml
msgid "Returns the number of child nodes."
@@ -47793,13 +48107,13 @@ msgstr ""
#: doc/classes/Node.xml
msgid ""
"Returns the node's index, i.e. its position among the siblings of its parent."
-msgstr "返回节点的索引,即它在其父节点的兄弟节点中的位置。"
+msgstr "返回该节点的索引,即它在其父节点的兄弟节点中的位置。"
#: doc/classes/Node.xml
msgid ""
"Returns the peer ID of the network master for this node. See [method "
"set_network_master]."
-msgstr "返回此节点的网络主节点的对等 ID。见 [method set_network_master]。"
+msgstr "返回这个节点的网络主节点的对等 ID。见 [method set_network_master]。"
#: doc/classes/Node.xml
msgid ""
@@ -47990,7 +48304,7 @@ msgstr "如果给定节点是当前节点的直接或间接子节点,则返回
msgid ""
"Returns [code]true[/code] if the node is folded (collapsed) in the Scene "
"dock."
-msgstr "如果节点在场景dock中折叠(collapsed),则返回 [code]true[/code]。"
+msgstr "如果该节点在场景面板中折叠,则返回 [code]true[/code]。"
#: doc/classes/Node.xml
msgid ""
@@ -48225,10 +48539,10 @@ msgid ""
"of it. After using [code]raise[/code], a Control will be drawn on top of its "
"siblings."
msgstr ""
-"将此节点移到父节点的子节点层次的底部。这在GUI([Control]节点)中通常很有用,"
-"因为它们的绘制顺序取决于它们在树中的顺序。最上面的节点首先被绘制出来,然后在"
-"层次结构中最上面的节点下面的所有同级被依次绘制在它的上面。使用[code]raise[/"
-"code]后,一个控件将被绘制在其同级的上面。"
+"将这个节点移到父节点的子节点层次的底部。这在 GUI([Control]节点)中通常很有"
+"用,因为它们的绘制顺序取决于它们在树中的顺序。最上面的节点首先被绘制出来,然"
+"后在层次结构中最上面的节点下面的所有同级被依次绘制在它的上面。使用 "
+"[code]raise[/code] 后,控件将被绘制在其同级之上。"
#: doc/classes/Node.xml
msgid ""
@@ -48595,8 +48909,8 @@ msgid ""
"character, which is reserved for unique names when using [method add_child]. "
"When setting the name manually, any [code]@[/code] will be removed."
msgstr ""
-"节点的名称。此名称在兄弟节点(来自同一父节点的其他子节点)中是唯一的。当设置"
-"为现有名称时,节点将自动重命名。\n"
+"该节点的名称。这个名称在兄弟节点(来自同一父节点的其他子节点)中是唯一的。当"
+"设置为现有名称时,节点将自动重命名。\n"
"[b]注意:[/b]自动生成的名称可能包含 [code]@[/code] 字符,在使用 [method "
"add_child] 时保留该字符用于唯一名称。手动设置名称时,将删除任何 [code]@[/"
"code]。"
@@ -48617,9 +48931,10 @@ msgid ""
"will not be visible in the scene tree, though it will be visible in the "
"2D/3D view."
msgstr ""
-"节点的所有者。节点的所有者可以是任何其他节点(需要是父节点或祖父节点等,即场"
-"景树上的祖先)。(通过 [PackedScene])保存一个节点时,它拥有的所有节点也会随"
-"之保存。这样就可以创建复杂的 [SceneTree],能够进行实例化与次实例化。\n"
+"该节点的所有者。节点的所有者可以是任何其他节点(需要是沿场景树向上的有效节"
+"点,如父节点、祖父节点等)。(通过 [PackedScene])保存节点时,它拥有的所有节"
+"点也会随之保存。这样就可以创建复杂的 [SceneTree],能够进行实例化与次实例"
+"化。\n"
"[b]注意:[/b]如果想要将子节点持久化进 [PackedScene],除了调用 [method "
"add_child] 之外你还必须设置 [member owner]。通常在[url=$DOCS_URL/tutorials/"
"plugins/running_code_in_the_editor.html]工具脚本[/url]和[url=$DOCS_URL/"
@@ -48650,7 +48965,7 @@ msgid ""
"process priority value is [i]lower[/i] will have their processing callbacks "
"executed first."
msgstr ""
-"节点在已启用的处理回调(即 [constant NOTIFICATION_PROCESS]、[constant "
+"该节点在已启用的处理回调(即 [constant NOTIFICATION_PROCESS]、[constant "
"NOTIFICATION_PHYSICS_PROCESS] 及其内部对应物)的执行顺序中的优先级。进程优先"
"级值[i]较低[/i]的节点将首先执行其处理回调。"
@@ -50221,7 +50536,7 @@ msgstr ""
"[OccluderShape] 是 [Occluder] 节点所使用的资源,用于几何遮挡剔除。\n"
"该多边形必须是凸多边形。多边形顶点的创建与删除可以在编辑器的检查器中进行,也"
"可以通过调用 [code]set_polygon_points[/code] 实现。每一条边的顶点都可以通过在"
-"编辑器视窗中拖拽句柄设置。\n"
+"编辑器视窗中拖拽手柄设置。\n"
"另外,每一个多边形遮挡器都可以支持单个空洞。如果你在编辑器的检查器中为空洞添"
"加至少三个顶点,就可以在编辑器视窗中拖拽空洞边缘顶点的句柄。\n"
"一般而言,多边形以及空洞的边数越少,运行时系统的处理速度就越快,所以在大多数"
@@ -50317,11 +50632,14 @@ msgstr ""
"光的衰减(下降)曲线。在[b]检查器[/b]中,通过右键点击曲线,可以获得许多预设。"
#: doc/classes/OmniLight.xml
+#, fuzzy
msgid ""
"The light's radius. Note that the effectively lit area may appear to be "
"smaller depending on the [member omni_attenuation] in use. No matter the "
"[member omni_attenuation] in use, the light will never reach anything "
-"outside this radius."
+"outside this radius.\n"
+"[b]Note:[/b] [member omni_range] is not affected by [member Spatial.scale] "
+"(the light's scale or its parent's scale)."
msgstr ""
"光的半径。请注意,有效的照明区域可能看起来更小,这取决于使用的 [member "
"omni_attenuation]。无论使用何种 [member omni_attenuation],光线都不会到达这个"
@@ -50342,8 +50660,8 @@ msgid ""
msgstr ""
"为这个 [OmniLight] 使用的阴影渲染模式。见 [enum ShadowMode]。\n"
"[b]注意:[/b]在 GLES2 中,只有支持深度立方体贴图功能的 GPU 才支持 [constant "
-"SHADOW_CUBE]。Radeon HD 4000 系列等较老的 GPU "
-"不支持立方体贴图阴影,因此会回退到使用双抛物面阴影。"
+"SHADOW_CUBE]。Radeon HD 4000 系列等较老的 GPU 不支持立方体贴图阴影,因此会回"
+"退到使用双抛物面阴影。"
#: doc/classes/OmniLight.xml
msgid ""
@@ -50358,8 +50676,8 @@ msgid ""
"SHADOW_DUAL_PARABOLOID], but higher-quality. Only supported on GPUs that "
"feature support for depth cubemaps."
msgstr ""
-"阴影被渲染至一个立方体贴图。比 [constant SHADOW_DUAL_PARABOLOID] "
-"慢,但质量更高。仅在支持深度立方体贴图功能的 GPU 上支持。"
+"阴影被渲染至一个立方体贴图。比 [constant SHADOW_DUAL_PARABOLOID] 慢,但质量更"
+"高。仅在支持深度立方体贴图功能的 GPU 上支持。"
#: doc/classes/OmniLight.xml
msgid "Use more detail vertically when computing the shadow."
@@ -50488,8 +50806,8 @@ msgid ""
"value of 1 means all the octaves have the same contribution, a value of 0.5 "
"means each octave contributes half as much as the previous one."
msgstr ""
-"不同八度音阶的贡献因子。[code]persistence[/code]值为1表示所有的八度有相同的贡"
-"献,值为0.5表示每个八度的贡献是前一个的一半。"
+"不同八度的贡献因子。[code]persistence[/code] 值为 1 表示所有的八度有相同的贡"
+"献,值为 0.5 表示每个八度的贡献是前一个的一半。"
#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml
msgid ""
@@ -50979,13 +51297,14 @@ msgid "Returns the audio driver name for the given index."
msgstr "返回给定索引的音频驱动程序名称。"
#: doc/classes/OS.xml
+#, fuzzy
msgid ""
"Returns the [i]global[/i] cache data directory according to the operating "
-"system's standards. On desktop platforms, this path can be overridden by "
-"setting the [code]XDG_CACHE_HOME[/code] environment variable before starting "
-"the project. See [url=$DOCS_URL/tutorials/io/data_paths.html]File paths in "
-"Godot projects[/url] in the documentation for more information. See also "
-"[method get_config_dir] and [method get_data_dir].\n"
+"system's standards. On Linux, this path can be overridden by setting the "
+"[code]XDG_CACHE_HOME[/code] environment variable before starting the "
+"project. See [url=$DOCS_URL/tutorials/io/data_paths.html]File paths in Godot "
+"projects[/url] in the documentation for more information. See also [method "
+"get_config_dir] and [method get_data_dir].\n"
"Not to be confused with [method get_user_data_dir], which returns the "
"[i]project-specific[/i] user data path."
msgstr ""
@@ -51043,13 +51362,14 @@ msgstr ""
"[/codeblock]"
#: doc/classes/OS.xml
+#, fuzzy
msgid ""
"Returns the [i]global[/i] user configuration directory according to the "
-"operating system's standards. On desktop platforms, this path can be "
-"overridden by setting the [code]XDG_CONFIG_HOME[/code] environment variable "
-"before starting the project. See [url=$DOCS_URL/tutorials/io/data_paths."
-"html]File paths in Godot projects[/url] in the documentation for more "
-"information. See also [method get_cache_dir] and [method get_data_dir].\n"
+"operating system's standards. On Linux, this path can be overridden by "
+"setting the [code]XDG_CONFIG_HOME[/code] environment variable before "
+"starting the project. See [url=$DOCS_URL/tutorials/io/data_paths.html]File "
+"paths in Godot projects[/url] in the documentation for more information. See "
+"also [method get_cache_dir] and [method get_data_dir].\n"
"Not to be confused with [method get_user_data_dir], which returns the "
"[i]project-specific[/i] user data path."
msgstr ""
@@ -51078,13 +51398,14 @@ msgid ""
msgstr "返回当前使用的视频驱动程序,使用[enum VideoDriver]中的一个值。"
#: doc/classes/OS.xml
+#, fuzzy
msgid ""
"Returns the [i]global[/i] user data directory according to the operating "
-"system's standards. On desktop platforms, this path can be overridden by "
-"setting the [code]XDG_DATA_HOME[/code] environment variable before starting "
-"the project. See [url=$DOCS_URL/tutorials/io/data_paths.html]File paths in "
-"Godot projects[/url] in the documentation for more information. See also "
-"[method get_cache_dir] and [method get_config_dir].\n"
+"system's standards. On Linux, this path can be overridden by setting the "
+"[code]XDG_DATA_HOME[/code] environment variable before starting the project. "
+"See [url=$DOCS_URL/tutorials/io/data_paths.html]File paths in Godot "
+"projects[/url] in the documentation for more information. See also [method "
+"get_cache_dir] and [method get_config_dir].\n"
"Not to be confused with [method get_user_data_dir], which returns the "
"[i]project-specific[/i] user data path."
msgstr ""
@@ -51614,13 +51935,17 @@ msgid ""
"are also subject to automatic adjustments by the operating system. [b]Always "
"use[/b] [method get_ticks_usec] or [method get_ticks_msec] for precise time "
"calculation instead, since they are guaranteed to be monotonic (i.e. never "
-"decrease)."
+"decrease).\n"
+"[b]Note:[/b] To get a floating point timestamp with sub-second precision, "
+"use [method Time.get_unix_time_from_system]."
msgstr ""
"以秒为单位返回当前的 UNIX 纪元时间戳。\n"
"[b]重要:[/b]这是用户可以手动设置的系统时钟。[b]永远不要使用[/b]这种方法进行"
"精确的时间计算,因为它的结果也会受到操作系统的自动调整。[b]始终使用[/b] "
"[method get_ticks_usec] 或 [method get_ticks_msec] 进行精确时间计算,因为它们"
-"保证是单调的(即永不减少)。"
+"保证是单调的(即永不减少)。\n"
+"[b]注意:[/b]如果要获取精度比秒更高的浮点数时间戳,请使用 [method Time."
+"get_unix_time_from_system]。"
#: doc/classes/OS.xml
msgid ""
@@ -51798,12 +52123,12 @@ msgid ""
"template (debug or release), use [code]OS.has_feature(\"standalone\")[/code] "
"instead."
msgstr ""
-"如果用于运行项目的Godot二进制文件是[i]debug[/i]导出,或在编辑器中运行时,返"
-"回 [code]true[/code]。\n"
-"如果用于运行项目的Godot二进制文件是[i]release[/i]导出,则返回 [code]false[/"
-"code]。\n"
-"要检查用于运行项目的Godot二进制文件是否是被导出版本(调试或发布),请使用"
-"[code]OS.has_feature(\"standalone\")[/code]代替。"
+"如果用于运行项目的 Godot 二进制文件是[i]调试[/i]导出模板,或是在编辑器中运行"
+"时,则返回 [code]true[/code]。\n"
+"如果用于运行项目的 Godot 二进制文件是[i]发布[/i]导出模板,则返回 "
+"[code]false[/code]。\n"
+"要检查用于运行项目的 Godot 二进制文件是否为导出模板(调试或发布),请使用 "
+"[code]OS.has_feature(\"standalone\")[/code] 代替。"
#: doc/classes/OS.xml
msgid ""
@@ -52904,10 +53229,9 @@ msgid ""
"[constant ERR_OUT_OF_MEMORY]."
msgstr ""
"编码 [Variant] 时允许的最大缓冲区大小。提高此值以支持更大的内存分配。\n"
-"[method put_var] 方法在堆栈上分配内存,使用的缓冲区将自动增长到最接近的二次"
-"方,以匹配 [Variant] 的大小。如果 [Variant] 大于 "
-"[code]encode_buffer_max_size[/code],则该方法将以 [constant "
-"ERR_OUT_OF_MEMORY] 出错。"
+"[method put_var] 方法在栈上分配内存,使用的缓冲区将自动增长到最接近的二次方,"
+"以匹配 [Variant] 的大小。如果 [Variant] 大于 [code]encode_buffer_max_size[/"
+"code],则该方法将以 [constant ERR_OUT_OF_MEMORY] 出错。"
#: doc/classes/PacketPeerDTLS.xml
msgid "DTLS packet peer."
@@ -53536,6 +53860,17 @@ msgid "Particle systems (2D)"
msgstr "粒子系统(2D)"
#: doc/classes/Particles2D.xml
+#, fuzzy
+msgid "2D Particles Demo"
+msgstr "2D 平台跳跃演示"
+
+#: doc/classes/Particles2D.xml
+msgid ""
+"2D Dodge The Creeps Demo (uses GPUParticles2D for the trail behind the "
+"player)"
+msgstr ""
+
+#: doc/classes/Particles2D.xml
msgid "Returns a rectangle containing the positions of all existing particles."
msgstr "返回一个包含所有现存粒子位置的矩形。"
@@ -54632,7 +54967,7 @@ msgstr ""
"返回一个包含运动的安全和不安全比例(0 到 1 之间)的数组。安全比例是在没有碰撞"
"的情况下可以进行的运动的最大比例。不安全比例是碰撞必须移动的距离的最小部分。"
"如果没有检测到碰撞,将返回 [code][1.0, 1.0][/code] 的结果。\n"
-"[b]注意:[/b]任何已经碰撞的[Shape2D](比如内部的)会被忽略。使用 [method "
+"[b]注意:[/b]任何已经碰撞的 [Shape2D](比如内部的)会被忽略。使用 [method "
"collide_shape] 确定形状已经碰撞的 [Shape2D]。"
#: doc/classes/Physics2DDirectSpaceState.xml
@@ -54667,20 +55002,20 @@ msgid ""
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape."
msgstr ""
-"通过[Physics2DShapeQueryParameters]对象给出的形状与空间的检查交点。如果它与一"
-"个以上的形状发生碰撞,则选择最近的一个。如果该形状没有与任何对象相交,那么将"
-"返回一个空字典。\n"
-"[b]注意:[/b]这个方法不考虑对象的[code]motion[/code]属性。返回的对象是包含以"
-"下字段的字典。\n"
-"[code]collider_id[/code]:碰撞对象的ID。\n"
-"[code]linear_velocity[/code]:碰撞物体的速度[Vector2]。如果对象是一个"
-"[Area2D],结果是[code](0, 0)[/code]。\n"
-"[code]metadata[/code]:相交形状的元数据。这个元数据与[method Object.get_meta]"
-"不同,它是用[method Physics2DServer.shape_set_data]设置的。\n"
-"[code]normal[/code]:物体在交点处的表面法线。\n"
-"[code]point[/code]:相交点。\n"
-"[code]rid[/code]:相交物体的[RID]。\n"
-"[code]shape[/code]:碰撞形状的形状索引。"
+"通过 [Physics2DShapeQueryParameters] 对象给出的形状与空间的检查交点。如果它与"
+"一个以上的形状发生碰撞,则选择最近的一个。如果该形状没有与任何对象相交,那么"
+"将返回一个空字典。\n"
+"[b]注意:[/b]这个方法不考虑对象的 [code]motion[/code] 属性。返回的对象是包含"
+"以下字段的字典。\n"
+"[code]collider_id[/code]:碰撞对象的 ID。\n"
+"[code]linear_velocity[/code]:碰撞物体的速度 [Vector2]。如果对象是一个 "
+"[Area2D],结果是 [code](0, 0)[/code]。\n"
+"[code]metadata[/code]:相交形状的元数据。这个元数据与 [method Object."
+"get_meta] 不同,它是用 [method Physics2DServer.shape_set_data] 设置的。\n"
+"[code]normal[/code]:物体在交点处的表面法线。\n"
+"[code]point[/code]:相交点。\n"
+"[code]rid[/code]:相交物体的 [RID]。\n"
+"[code]shape[/code]:碰撞形状的形状索引。"
#: doc/classes/Physics2DDirectSpaceState.xml
msgid ""
@@ -55912,7 +56247,7 @@ msgstr ""
"返回一个包含运动的安全和不安全比例(0 到 1 之间)的数组。安全比例是在没有碰撞"
"的情况下可以进行的运动的最大比例。不安全比例是碰撞必须移动的距离的最小部分。"
"如果未检测到碰撞,将返回 [code][1.0, 1.0][/code] 的结果。\n"
-"[b]注意:[/b]任何已经碰撞的[Shape2D](比如内部的)会被忽略。使用 [method "
+"[b]注意:[/b]任何已经碰撞的 [Shape2D](比如内部的)会被忽略。使用 [method "
"collide_shape] 确定形状已经碰撞的 [Shape]。"
#: doc/classes/PhysicsDirectSpaceState.xml
@@ -57622,7 +57957,8 @@ msgid ""
"Returns a [String] with each element of the array joined with the given "
"[code]delimiter[/code]."
msgstr ""
-"返回一个[String],数组的每个元素都用给定的[code]delimiter[/code]分隔符连接。"
+"返回一个 [String],数组的每个元素都用给定的 [code]delimiter[/code] 分隔符连"
+"接。"
#: doc/classes/PoolStringArray.xml
msgid "Appends a string element at end of the array."
@@ -58270,8 +58606,12 @@ msgstr ""
"[b]注意:[/b]被移除项后的项的索引将被移位 1。"
#: doc/classes/PopupMenu.xml
-msgid "Sets the currently focused item as the given [code]index[/code]."
-msgstr "将当前聚焦项目设置为给定的索引 [code]index[/code]。"
+msgid ""
+"Sets the currently focused item as the given [code]index[/code].\n"
+"Passing [code]-1[/code] as the index makes so that no item is focused."
+msgstr ""
+"将当前聚焦项目设置为给定的索引 [code]index[/code]。\n"
+"将 [code]-1[/code] 作为索引传入不会聚焦任何项目。"
#: doc/classes/PopupMenu.xml
msgid "Hides the [PopupMenu] when the window loses focus."
@@ -58532,11 +58872,15 @@ msgstr "用于显示带有面板背景的弹出窗口的类。"
msgid ""
"Class for displaying popups with a panel background. In some cases it might "
"be simpler to use than [Popup], since it provides a configurable background. "
-"If you are making windows, better check [WindowDialog]."
+"If you are making windows, better check [WindowDialog].\n"
+"If any [Control] node is added as a child of this [PopupPanel], it will be "
+"stretched to fit the panel's size (similar to how [PanelContainer] works)."
msgstr ""
"用于显示具有面板背景的弹出窗口的类。在某些情况下,它可能比 [Popup] 更容易使"
"用,因为它提供了一个可配置的背景。如果你正在制作窗口,最好是查看 "
-"[WindowDialog]。"
+"[WindowDialog]。\n"
+"任何添加为这个 [PopupPanel] 子项的 [Control] 都会被拉伸到与面板一样的大小"
+"(与 [PanelContainer] 类似)。"
#: doc/classes/PopupPanel.xml
msgid "The background panel style of this [PopupPanel]."
@@ -58644,7 +58988,7 @@ msgid ""
"visual size by using the gizmo in the 2D editor while the node is selected."
msgstr ""
"用于编辑的通用 2D 位置提示。它就像一个普通的 [Node2D],但它在 2D 编辑器中始终"
-"显示为一个十字。选择节点时,可以使用 2D 编辑器中的小控件来设置十字的视觉大"
+"显示为一个十字。选中节点时,可以使用 2D 编辑器中的小工具来设置十字的视觉大"
"小。"
#: doc/classes/Position3D.xml
@@ -59490,10 +59834,17 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid ""
"If [code]true[/code], microphone input will be allowed. This requires "
-"appropriate permissions to be set when exporting to Android or iOS."
-msgstr ""
-"如果为 [code]true[/code],将允许麦克风输入。导出到 Android 或 iOS 时须设置适"
-"当的权限。"
+"appropriate permissions to be set when exporting to Android or iOS.\n"
+"[b]Note:[/b] If the operating system blocks access to audio input devices "
+"(due to the user's privacy settings), audio capture will only return "
+"silence. On Windows 10 and later, make sure that apps are allowed to access "
+"the microphone in the OS' privacy settings."
+msgstr ""
+"如果为 [code]true[/code],会允许麦克风输入。导出到 Android 和 iOS 时需要设置"
+"合适的权限。\n"
+"[b]注意:[/b]如果操作系统(根据该用户的隐私设置)阻止了对音频输入设备的访问,"
+"那么音频捕获只会返回静音。自 Windows 10 起,请确保在操作系统的隐私设置中允许"
+"应用对麦克风的访问。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -59878,7 +60229,7 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid "Maximum call stack allowed for debugging GDScript."
-msgstr "调试GDScript时允许的最大调用堆栈。"
+msgstr "调试 GDScript 时允许的最大调用堆栈。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -61597,7 +61948,7 @@ msgid ""
"Physics2DServer.AREA_PARAM_GRAVITY, 98)\n"
"[/codeblock]"
msgstr ""
-"2D 中默认的重力强度(单位:每秒平方像素)。\n"
+"2D 中默认的重力强度(单位为像素每秒的平方)。\n"
"[b]注意:[/b]这个属性只在项目启动时被读取。要在运行时改变默认的重力,请使用以"
"下代码示例:\n"
"[codeblock]\n"
@@ -61753,7 +62104,7 @@ msgid ""
"PhysicsServer.AREA_PARAM_GRAVITY, 9.8)\n"
"[/codeblock]"
msgstr ""
-"3D 中的默认重力强度,单位:米/秒平方。\n"
+"3D 中的默认重力强度(单位为米每秒的平方)。\n"
"[b]注意:[/b]该属性仅在项目启动时读取。要在运行时更改默认重力,请使用以下代码"
"示例:\n"
"[codeblock]\n"
@@ -62805,11 +63156,29 @@ msgstr ""
msgid ""
"Maximum anisotropic filter level used for textures with anisotropy enabled. "
"Higher values will result in sharper textures when viewed from oblique "
-"angles, at the cost of performance. Only power-of-two values are valid (2, "
-"4, 8, 16)."
-msgstr ""
-"用于启用各向异性的纹理的最大各向异性过滤器级别。从倾斜角度查看时,较高的值将"
-"导致更清晰的纹理,但会牺牲性能。只有二的指数倍的值是有效(如 2、4、8、16)。"
+"angles, at the cost of performance. With the exception of [code]1[/code], "
+"only power-of-two values are valid ([code]2[/code], [code]4[/code], [code]8[/"
+"code], [code]16[/code]). A value of [code]1[/code] forcibly disables "
+"anisotropic filtering, even on textures where it is enabled.\n"
+"[b]Note:[/b] For performance reasons, anisotropic filtering [i]is not "
+"enabled by default[/i] on textures. For this setting to have an effect, "
+"anisotropic texture filtering can be enabled by selecting a texture in the "
+"FileSystem dock, going to the Import dock, checking the [b]Anisotropic[/b] "
+"checkbox then clicking [b]Reimport[/b]. However, anisotropic filtering is "
+"rarely useful in 2D, so only enable it for textures in 2D if it makes a "
+"meaningful visual difference.\n"
+"[b]Note:[/b] This property is only read when the project starts. There is "
+"currently no way to change this setting at run-time."
+msgstr ""
+"纹理开启各向异性时,所使用的各向异性过滤的最大级别。值越高,斜视角观察到的纹"
+"理越锐利,但性能消耗也更大。取值只允许二的幂([code]2[/code]、[code]4[/"
+"code]、[code]8[/code]、[code]16[/code]),例外是 [code]1[/code]。取 [code]1[/"
+"code] 时会禁用各向异性过滤,即便纹理上是启用状态。\n"
+"[b]注意:[/b]出于性能的原因,纹理[i]默认没有开启[/i]各向异性过滤。要让这个设"
+"置起效,可以启用纹理的各向异性过滤:在“文件系统”面板里选中纹理,再到“导入”面"
+"板中勾选[b]各向异性[/b]复选框,再点击[b]重新导入[/b]。不过,各向异性过滤在 "
+"2D 中没什么用,所以请在有可见差别时才在 2D 纹理上启用。\n"
+"[b]注意:[/b]这个属性只在项目启动时读取。目前没有在运行时修改的方法。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -62835,17 +63204,25 @@ msgstr ""
"的值通常会给出最好的结果。另见 [member rendering/quality/filters/use_fxaa]。"
#: doc/classes/ProjectSettings.xml
+#, fuzzy
msgid ""
"If [code]true[/code], uses a fast post-processing filter to make banding "
-"significantly less visible. In some cases, debanding may introduce a "
-"slightly noticeable dithering pattern. It's recommended to enable debanding "
-"only when actually needed since the dithering pattern will make lossless-"
-"compressed screenshots larger.\n"
+"significantly less visible in 3D. 2D rendering is [i]not[/i] affected by "
+"debanding unless the [member Environment.background_mode] is [constant "
+"Environment.BG_CANVAS]. In this case, [member rendering/quality/"
+"intended_usage/framebuffer_allocation] must also be set to [b]3D[/b].\n"
+"In some cases, debanding may introduce a slightly noticeable dithering "
+"pattern. It's recommended to enable debanding only when actually needed "
+"since the dithering pattern will make lossless-compressed screenshots "
+"larger.\n"
"[b]Note:[/b] Only available on the GLES3 backend. [member rendering/quality/"
"depth/hdr] must also be [code]true[/code] for debanding to be effective.\n"
"[b]Note:[/b] There are known issues with debanding breaking rendering on "
"mobile platforms. Due to this, it is recommended to leave this option "
-"disabled when targeting mobile platforms."
+"disabled when targeting mobile platforms.\n"
+"[b]Note:[/b] This property is only read when the project starts. To set "
+"debanding at run-time, set [member Viewport.debanding] on the root "
+"[Viewport] instead."
msgstr ""
"如果为 [code]true[/code],则使用快速后处理过滤器使条带明显不那么明显。在某些"
"情况下,去带可能会引入稍微明显的抖动模式。建议仅在实际需要时启用去条带,因为"
@@ -63863,7 +64240,7 @@ msgstr ""
"pcg-random.org/]PCG32[/url]。\n"
"[b]注意:[/b]底层算法是实现细节。因此,跨 Godot 版本的可重复随机流不应该依赖"
"于此。\n"
-"要根据时间相关种子生成随机浮点数,在给定范围内:\n"
+"要根据时间相关种子生成(给定范围内的)随机浮点数:\n"
"[codeblock]\n"
"var rng = RandomNumberGenerator.new()\n"
"func _ready():\n"
@@ -63883,14 +64260,14 @@ msgid ""
"Generates a pseudo-random float between [code]0.0[/code] and [code]1.0[/"
"code] (inclusive)."
msgstr ""
-"生成一个[code]0.0[/code]和[code]1.0[/code](包括端点)之间的伪随机浮点数。"
+"生成一个 [code]0.0[/code] 和 [code]1.0[/code](包括端点)之间的伪随机浮点数。"
#: doc/classes/RandomNumberGenerator.xml
msgid ""
"Generates a pseudo-random float between [code]from[/code] and [code]to[/"
"code] (inclusive)."
msgstr ""
-"生成一个[code]from[/code]和[code]to[/code](包括端点)之间的伪随机浮点数。"
+"生成一个 [code]from[/code] 和 [code]to[/code](包括端点)之间的伪随机浮点数。"
#: doc/classes/RandomNumberGenerator.xml
msgid ""
@@ -64040,14 +64417,14 @@ msgid ""
"Maximum value. Range is clamped if [code]value[/code] is greater than "
"[code]max_value[/code]."
msgstr ""
-"最大值。如果[code]value[/code]大于[code]max_value[/code],则会被范围限制。"
+"最大值。如果 [code]value[/code] 大于 [code]max_value[/code],则会被范围限制。"
#: doc/classes/Range.xml
msgid ""
"Minimum value. Range is clamped if [code]value[/code] is less than "
"[code]min_value[/code]."
msgstr ""
-"最小值。如果[code]value[/code]小于[code]min_value[/code],则会被范围限制。"
+"最小值。如果 [code]value[/code] 小于 [code]min_value[/code],则会被范围限制。"
#: doc/classes/Range.xml
msgid ""
@@ -64593,7 +64970,7 @@ msgstr ""
#: doc/classes/ReferenceRect.xml
msgid "Reference frame for GUI."
-msgstr "GUI的引用框架。"
+msgstr "GUI 的参考框。"
#: doc/classes/ReferenceRect.xml
msgid ""
@@ -64607,21 +64984,21 @@ msgstr ""
#: doc/classes/ReferenceRect.xml
msgid "Sets the border [Color] of the [ReferenceRect]."
-msgstr "设置 [ReferenceRect] 的边框 [Color]。"
+msgstr "设置该 [ReferenceRect] 的边框 [Color]。"
#: doc/classes/ReferenceRect.xml
msgid ""
"Sets the border width of the [ReferenceRect]. The border grows both inwards "
"and outwards with respect to the rectangle box."
-msgstr "设置 [ReferenceRect] 的边框宽度。边界相对于矩形框向内和向外生长。"
+msgstr "设置该 [ReferenceRect] 的边框宽度。边界相对于矩形框同时向内向外伸长。"
#: doc/classes/ReferenceRect.xml
msgid ""
"If set to [code]true[/code], the [ReferenceRect] will only be visible while "
"in editor. Otherwise, [ReferenceRect] will be visible in game."
msgstr ""
-"如果设置为 [code]true[/code],[ReferenceRect]将只在编辑器中可见。否则,"
-"[ReferenceRect]将在游戏中可见。"
+"如果设置为 [code]true[/code],该 [ReferenceRect] 将只在编辑器中可见。否则,"
+"[ReferenceRect] 将在游戏中可见。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -64729,7 +65106,7 @@ msgstr "定义反射强度。"
msgid ""
"Sets the ambient light color to be used when this probe is set to [member "
"interior_enable]."
-msgstr "设置环境光的颜色,当此探针被设置为[member interior_enable]时使用。"
+msgstr "设置环境光的颜色,当此探针被设置为 [member interior_enable] 时使用。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -64745,7 +65122,7 @@ msgid ""
"Sets the energy multiplier for this reflection probe's ambient light "
"contribution when set to [member interior_enable]."
msgstr ""
-"当设置为[member interior_enable]时,为该反射探针的环境光贡献设置能量乘数。"
+"当设置为 [member interior_enable] 时,为该反射探针的环境光贡献设置能量乘数。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -64753,8 +65130,8 @@ msgid ""
"lighting is then controlled by the [code]interior_ambient_*[/code] "
"properties."
msgstr ""
-"如果为 [code]true[/code],反射将忽略天空的贡献。然后环境照明由"
-"[code]internal_ambient_*[/code]属性控制。"
+"如果为 [code]true[/code],反射将忽略天空的贡献。然后环境照明由 "
+"[code]internal_ambient_*[/code] 属性控制。"
#: doc/classes/ReflectionProbe.xml
msgid ""
@@ -64787,7 +65164,7 @@ msgid ""
"Sets how frequently the [ReflectionProbe] is updated. Can be [constant "
"UPDATE_ONCE] or [constant UPDATE_ALWAYS]."
msgstr ""
-"设置 [ReflectionProbe] 的更新频率。可以是 [constant UPDATE_ONCE] 或 "
+"设置该 [ReflectionProbe] 的更新频率。可以是 [constant UPDATE_ONCE] 或 "
"[constant UPDATE_ALWAYS]。"
#: doc/classes/ReflectionProbe.xml
@@ -64986,33 +65363,45 @@ msgstr "返回此对象是否分配了有效的搜索模式。"
#: modules/regex/doc_classes/RegEx.xml
msgid ""
"Searches the text for the compiled pattern. Returns a [RegExMatch] container "
-"of the first matching result if found, otherwise [code]null[/code]. The "
-"region to search within can be specified without modifying where the start "
-"and end anchor would be."
+"of the first matching result if found, otherwise [code]null[/code].\n"
+"The region to search within can be specified with [code]offset[/code] and "
+"[code]end[/code]. This is useful when searching for another match in the "
+"same [code]subject[/code] by calling this method again after a previous "
+"success. Setting these parameters differs from passing over a shortened "
+"string. For example, the start anchor [code]^[/code] is not affected by "
+"[code]offset[/code], and the character before [code]offset[/code] will be "
+"checked for the word boundary [code]\\b[/code]."
msgstr ""
-"在文本中搜索编译后的模式。如果找到,返回第一个匹配结果的 [RegExMatch] 容器,"
-"否则返回 [code]null[/code]。可以指定要搜索的区域,而不需要修改开始和结束锚点"
-"的位置。"
#: modules/regex/doc_classes/RegEx.xml
msgid ""
"Searches the text for the compiled pattern. Returns an array of [RegExMatch] "
"containers for each non-overlapping result. If no results were found, an "
-"empty array is returned instead. The region to search within can be "
-"specified without modifying where the start and end anchor would be."
+"empty array is returned instead.\n"
+"The region to search within can be specified with [code]offset[/code] and "
+"[code]end[/code]. This is useful when searching for another match in the "
+"same [code]subject[/code] by calling this method again after a previous "
+"success. Setting these parameters differs from passing over a shortened "
+"string. For example, the start anchor [code]^[/code] is not affected by "
+"[code]offset[/code], and the character before [code]offset[/code] will be "
+"checked for the word boundary [code]\\b[/code]."
msgstr ""
-"在文本中搜索编译过的模式。为每个不重叠的结果返回一个 [RegExMatch] 容器数组。"
-"如果没有发现任何结果,则返回一个空数组。可以指定要搜索的区域,而不需要修改开"
-"始和结束锚点的位置。"
#: modules/regex/doc_classes/RegEx.xml
+#, fuzzy
msgid ""
"Searches the text for the compiled pattern and replaces it with the "
"specified string. Escapes and backreferences such as [code]$1[/code] and "
"[code]$name[/code] are expanded and resolved. By default, only the first "
"instance is replaced, but it can be changed for all instances (global "
-"replacement). The region to search within can be specified without modifying "
-"where the start and end anchor would be."
+"replacement).\n"
+"The region to search within can be specified with [code]offset[/code] and "
+"[code]end[/code]. This is useful when searching for another match in the "
+"same [code]subject[/code] by calling this method again after a previous "
+"success. Setting these parameters differs from passing over a shortened "
+"string. For example, the start anchor [code]^[/code] is not affected by "
+"[code]offset[/code], and the character before [code]offset[/code] will be "
+"checked for the word boundary [code]\\b[/code]."
msgstr ""
"搜索文本中的编译模式,并将其替换为指定的字符串。诸如 [code]$1[/code] 和 "
"[code]$name[/code] 等转义和反向引用会被展开和解决。默认情况下,只有第一个实例"
@@ -65059,9 +65448,9 @@ msgid ""
"Returns -1 if the group did not match or doesn't exist."
msgstr ""
"返回源字符串中匹配的起始位置。捕获组的起始位置可以通过提供它的组号作为一个整"
-"数或它的字符串名称(如果它是一个命名组)来检索。默认值为0,指的是整个表达"
+"数或它的字符串名称(如果它是一个命名组)来检索。默认值为 0,指的是整个表达"
"式。\n"
-"如果组没有匹配或不存在,返回-1。"
+"如果组没有匹配或不存在,返回 -1。"
#: modules/regex/doc_classes/RegExMatch.xml
msgid ""
@@ -65072,7 +65461,7 @@ msgid ""
"Returns an empty string if the group did not match or doesn't exist."
msgstr ""
"返回源字符串中匹配的子串。捕获组可以通过提供它的组号作为整数或它的字符串名称"
-"(如果它是一个命名组)来检索。默认值为0,指的是整个表达式。\n"
+"(如果它是一个命名组)来检索。默认值为 0,指的是整个表达式。\n"
"如果组没有匹配或不存在,则返回一个空字符串。"
#: modules/regex/doc_classes/RegExMatch.xml
@@ -65164,7 +65553,7 @@ msgid ""
msgstr ""
"RemoteTransform2D 将自己的 [Transform2D] 推送到场景中另一个 [CanvasItem] 派生"
"的节点(称为远程节点)。\n"
-"它可以被设置为更新另一个Node的位置、旋转或比例。它可以使用全局坐标或局部坐"
+"它可以被设置为更新另一个 Node 的位置、旋转或比例。它可以使用全局坐标或局部坐"
"标。"
#: doc/classes/RemoteTransform2D.xml
@@ -65237,12 +65626,13 @@ msgid ""
msgstr ""
"复制资源,返回一个复制了导出成员属性的新资源。[b]注意:[/b]为了复制资源,构造"
"函数被调用,没有参数。当构造函数没有默认值时,这个方法会出错。\n"
-"默认情况下,为了提高效率,子资源在资源副本之间被共享。这可以通过向"
-"[code]subresources[/code]参数传递[code]true[/code]来改变,它将复制子资源。\n"
-"[b]注意:[/b]如果[code]subresources[/code]是[code]true[/code],这个方法将只执"
-"行一个浅层拷贝。子资源中的嵌套资源不会被复制,仍然会被共享。\n"
-"[b]注意:[/b]当复制一个资源时,只有导出[code]export[/code]的属性被复制。其他"
-"属性将被设置为新资源中的默认值。"
+"默认情况下,为了提高效率,子资源在资源副本之间被共享。这可以通过向 "
+"[code]subresources[/code] 参数传递 [code]true[/code] 来改变,它将复制子资"
+"源。\n"
+"[b]注意:[/b]如果 [code]subresources[/code] 为 [code]true[/code],这个方法将"
+"只执行一个浅层拷贝。子资源中的嵌套资源不会被复制,仍然会被共享。\n"
+"[b]注意:[/b]当复制一个资源时,只有导出 [code]export[/code] 的属性被复制。其"
+"他属性将被设置为新资源中的默认值。"
#: doc/classes/Resource.xml
msgid ""
@@ -65480,7 +65870,7 @@ msgid ""
"Returns the list of extensions available for saving the resource object, "
"provided it is recognized (see [method recognize])."
msgstr ""
-"返回可用于保存资源对象的扩展列表,前提是它被识别(见[method recognize])。"
+"返回可用于保存资源对象的扩展列表,前提是它被识别(见 [method recognize])。"
#: doc/classes/ResourceFormatSaver.xml
msgid "Returns whether the given resource object can be saved by this saver."
@@ -65509,7 +65899,7 @@ msgid ""
"[EditorImportPlugin]."
msgstr ""
"这是在核心部分实现的资源导入器的基类。要使用编辑器插件实现你自己的资源导入"
-"器,请参阅[EditorImportPlugin]。"
+"器,见 [EditorImportPlugin]。"
#: doc/classes/ResourceImporter.xml
msgid "Import plugins"
@@ -65574,11 +65964,11 @@ msgid ""
"Returns another [enum Error] code if the poll has failed."
msgstr ""
"对加载操作进行轮询,即加载一个数据块到下一个阶段。\n"
-"如果轮询成功,但加载操作还没有完成(中间阶段),则返回[constant OK]。这意味着"
-"[method poll]将不得不再次被调用,直到最后阶段完成。\n"
-"如果加载操作已经成功完成,返回[constant ERR_FILE_EOF]。可以通过调用[method "
-"get_resource]获得加载的资源。\n"
-"如果轮询失败,返回另一个[enum Error]错误代码。"
+"如果轮询成功,但加载操作还没有完成(中间阶段),则返回 [constant OK]。这意味"
+"着 [method poll] 将不得不再次被调用,直到最后阶段完成。\n"
+"如果加载操作已经成功完成,返回 [constant ERR_FILE_EOF]。可以通过调用 [method "
+"get_resource] 获得加载的资源。\n"
+"如果轮询失败,返回另一个 [enum Error] 错误代码。"
#: doc/classes/ResourceInteractiveLoader.xml
msgid ""
@@ -65590,10 +65980,10 @@ msgid ""
"Returns another [enum Error] code if a poll has failed, aborting the "
"operation."
msgstr ""
-"连续地对加载操作进行轮询,直到资源被完全加载或方法[method poll]轮询失败。\n"
-"如果加载操作成功完成,返回[constant ERR_FILE_EOF]。可以通过调用[method "
-"get_resource]获得加载的资源。\n"
-"如果轮询失败,返回另一个[enum Error]错误代码,中止操作。"
+"连续地对加载操作进行轮询,直到资源被完全加载或方法 [method poll] 轮询失败。\n"
+"如果加载操作成功完成,返回 [constant ERR_FILE_EOF]。可以通过调用 [method "
+"get_resource] 获得加载的资源。\n"
+"如果轮询失败,返回另一个 [enum Error] 错误代码,中止操作。"
#: doc/classes/ResourceLoader.xml
msgid "Singleton used to load resource files."
@@ -65607,7 +65997,7 @@ msgid ""
"them to a format that can be used by the engine."
msgstr ""
"用于从文件系统加载资源文件的单例。\n"
-"它使用在引擎中注册的许多[ResourceFormatLoader]类(无论是内置的还是来自插件"
+"它使用在引擎中注册的许多 [ResourceFormatLoader] 类(无论是内置的还是来自插件"
"的)来将文件加载到内存中,并将它们转换为引擎可以使用的格式。"
#: doc/classes/ResourceLoader.xml
@@ -65646,10 +66036,10 @@ msgid ""
"can be overridden by using [method Resource.take_over_path] on a new "
"resource for that same path."
msgstr ""
-"返回给定路径[code]path[/code]的缓存资源是否可用。\n"
-"一旦资源被引擎加载,它就会被缓存在内存中,以便更快地访问,未来对[method load]"
-"或[method load_interactive]方法的调用将使用缓存的版本。缓存的资源可以通过对同"
-"一路径的新资源使用[method Resource.take_over_path]来覆盖。"
+"返回给定路径 [code]path[/code] 的缓存资源是否可用。\n"
+"一旦资源被引擎加载,它就会被缓存在内存中,以便更快地访问,未来对 [method "
+"load] 或 [method load_interactive] 方法的调用将使用缓存的版本。缓存的资源可以"
+"通过对同一路径的新资源使用 [method Resource.take_over_path] 来覆盖。"
#: doc/classes/ResourceLoader.xml
msgid ""
@@ -65671,17 +66061,17 @@ msgid ""
"be used in most situations, leaving the use of [ResourceLoader] for more "
"advanced scenarios."
msgstr ""
-"在给定的路径[code]path[/code]上加载一个资源,缓存结果以便进一步访问。\n"
-"依次查询注册的[ResourceFormatLoader],找到第一个可以处理该文件扩展名的加载"
-"器,然后尝试加载。如果加载失败,其余的ResourceFormatLoaders也会被尝试。\n"
-"一个可选的[code]type_hint[/code]类型提示可以用来进一步指定"
-"[ResourceFormatLoader]应处理的[Resource]资源类型。任何继承自[Resource]的东西"
-"都可以被用作类型提示,例如图像[Image]。\n"
-"如果[code]no_cache[/code]是[code]true[/code],资源缓存将被绕过,资源将被重新"
-"加载。否则,如果缓存的资源存在,将被返回。\n"
-"如果没有[ResourceFormatLoader]可以处理该文件,则返回一个空资源。\n"
-"GDScript有一个简化的[method @GDScript.load]内置方法,可以在大多数情况下使用,"
-"把[ResourceLoader]的使用留给更高级的场景。"
+"在给定的路径 [code]path[/code] 上加载一个资源,缓存结果以便进一步访问。\n"
+"依次查询注册的 [ResourceFormatLoader],找到第一个可以处理该文件扩展名的加载"
+"器,然后尝试加载。如果加载失败,其余的 ResourceFormatLoader 也会被尝试。\n"
+"一个可选的 [code]type_hint[/code] 类型提示可以用来进一步指定 "
+"[ResourceFormatLoader] 应处理的 [Resource] 资源类型。任何继承自 [Resource] 的"
+"东西都可以被用作类型提示,例如 [Image]。\n"
+"如果 [code]no_cache[/code] 是 [code]true[/code],资源缓存将被绕过,资源将被重"
+"新加载。否则,如果缓存的资源存在,将被返回。\n"
+"如果没有 [ResourceFormatLoader] 可以处理该文件,则返回一个空资源。\n"
+"GDScript 有一个简化的 [method @GDScript.load] 内置方法,可以在大多数情况下使"
+"用,把 [ResourceLoader] 的使用留给更高级的场景。"
#: doc/classes/ResourceLoader.xml
msgid ""
@@ -65694,11 +66084,11 @@ msgid ""
"Anything that inherits from [Resource] can be used as a type hint, for "
"example [Image]."
msgstr ""
-"开始交互式加载一个资源。返回的[ResourceInteractiveLoader]对象允许以高粒度加"
-"载,连续调用其[method ResourceInteractiveLoader.poll]轮询方法来加载分块。\n"
-"一个可选的[code]type_hint[/code]类型提示可以用来进一步指定应该由"
-"[ResourceFormatLoader]处理的资源[Resource]类型。任何继承自[Resource]的东西都"
-"可以被用作类型提示,例如[Image]。"
+"开始交互式加载一个资源。返回的 [ResourceInteractiveLoader] 对象允许以高粒度加"
+"载,连续调用其 [method ResourceInteractiveLoader.poll] 轮询方法来加载分块。\n"
+"一个可选的 [code]type_hint[/code] 类型提示可以用来进一步指定应该由 "
+"[ResourceFormatLoader] 处理的资源 [Resource] 类型。任何继承自 [Resource] 的东"
+"西都可以被用作类型提示,例如 [Image]。"
#: doc/classes/ResourceLoader.xml
msgid ""
@@ -65731,9 +66121,9 @@ msgid ""
"will be renamed to \"[code]name[/code] N\" where N is an incrementing number "
"starting from 2."
msgstr ""
-"将一个资源添加到预加载器中,并给出[code]name[/code]。如果给定的[code]name[/"
-"code]的资源已经存在,新的资源将被重命名为\"[code]name[/code] N\",其中N是一个"
-"从2开始的递增数字。"
+"将一个资源添加到预加载器中,并给出 [code]name[/code]。如果给定的 [code]name[/"
+"code] 的资源已经存在,新的资源将被重命名为 \"[code]name[/code] N\",其中 N 是"
+"一个从 2 开始的递增数字。"
#: doc/classes/ResourcePreloader.xml
msgid "Returns the resource associated to [code]name[/code]."
@@ -65748,22 +66138,23 @@ msgid ""
"Returns [code]true[/code] if the preloader contains a resource associated to "
"[code]name[/code]."
msgstr ""
-"如果预加载器包含一个与[code]name[/code]相关的资源,则返回 [code]true[/code]。"
+"如果预加载器包含一个与 [code]name[/code] 相关的资源,则返回 [code]true[/"
+"code]。"
#: doc/classes/ResourcePreloader.xml
msgid ""
"Removes the resource associated to [code]name[/code] from the preloader."
-msgstr "从预加载器中删除与[code]name[/code]有关的资源。"
+msgstr "从预加载器中删除与 [code]name[/code] 有关的资源。"
#: doc/classes/ResourcePreloader.xml
msgid ""
"Renames a resource inside the preloader from [code]name[/code] to "
"[code]newname[/code]."
-msgstr "将预加载器中的资源从[code]name[/code]重命名为[code]newname[/code]。"
+msgstr "将预加载器中的资源从 [code]name[/code] 重命名为 [code]newname[/code]。"
#: doc/classes/ResourceSaver.xml
msgid "Singleton for saving Godot-specific resource types."
-msgstr "用于保存Godot特定资源类型的单例。"
+msgstr "用于保存 Godot 特定资源类型的单例。"
#: doc/classes/ResourceSaver.xml
msgid ""
@@ -65773,10 +66164,10 @@ msgid ""
"text-based (e.g. [code].tres[/code] or [code].tscn[/code]) or binary files "
"(e.g. [code].res[/code] or [code].scn[/code])."
msgstr ""
-"用于将Godot特定的资源类型保存到文件系统的单例。\n"
-"它使用在引擎中注册的许多[ResourceFormatSaver]类(无论是内置的还是来自插件"
-"的),将引擎特定的资源数据保存到基于文本(如[code].res[/code]或[code].tscn[/"
-"code])或二进制文件(如[code].res[/code]或[code].scn[/code])。"
+"用于将 Godot 特定的资源类型保存到文件系统的单例。\n"
+"它使用在引擎中注册的许多 [ResourceFormatSaver] 类(无论是内置的还是来自插件"
+"的),将引擎特定的资源数据保存到基于文本(如 [code].res[/code] 或 [code]."
+"tscn[/code])或二进制文件(如 [code].res[/code] 或 [code].scn[/code])。"
#: doc/classes/ResourceSaver.xml
msgid ""
@@ -65792,9 +66183,9 @@ msgid ""
"behavior.\n"
"Returns [constant OK] on success."
msgstr ""
-"使用识别资源对象的[ResourceFormatSaver]将资源保存到给定路径的磁盘。\n"
+"使用识别资源对象的 [ResourceFormatSaver] 将资源保存到给定路径的磁盘。\n"
"可以指定 [code]flags[/code] 位掩码来自定义保存行为。\n"
-"成功后返回[constant OK]。"
+"成功后返回 [constant OK]。"
#: doc/classes/ResourceSaver.xml
msgid "Save the resource with a path relative to the scene which uses it."
@@ -65869,8 +66260,8 @@ msgid ""
"successfully. If the method returns [code]false[/code], it will skip "
"transformation to avoid displaying broken text."
msgstr ""
-"覆盖这个方法来修改[code]char_fx[/code]中的属性。如果字符可以被成功转换,该方"
-"法必须返回 [code]true[/code]。如果该方法返回 [code]false[/code],它将跳过转"
+"覆盖这个方法来修改 [code]char_fx[/code] 中的属性。如果字符可以被成功转换,该"
+"方法必须返回 [code]true[/code]。如果该方法返回 [code]false[/code],它将跳过转"
"换,以避免显示破碎的文本。"
#: doc/classes/RichTextLabel.xml
@@ -65902,9 +66293,9 @@ msgid ""
"characters instead. This will be resolved in Godot 4.0."
msgstr ""
"富文本可以包含自定义文本、字体、图像和一些基本格式。该标签会将这些以内部标签"
-"堆栈的形式进行管理。它还可以适应给定的宽度/高度。\n"
-"[b]注意:[/b]为 [member bbcode_text] 设置内容会清除标签堆栈并根据该属性的内容"
-"重建。对 [member bbcode_text] 所做的任何编辑都将删除先前从其他手动来源(例如 "
+"栈的形式进行管理。它还可以适应给定的宽度/高度。\n"
+"[b]注意:[/b]为 [member bbcode_text] 设置内容会清除标签栈并根据该属性的内容重"
+"建。对 [member bbcode_text] 所做的任何编辑都将删除先前从其他手动来源(例如 "
"[method append_bbcode] 和 [code]push_*[/code] / [method pop] 方法)所做的编"
"辑。\n"
"[b]注意:[/b]RichTextLabel 不支持纠缠的 BBCode 标签。例如,不要使用 [code]"
@@ -65934,7 +66325,7 @@ msgid ""
"If [code]width[/code] or [code]height[/code] is set to 0, the image size "
"will be adjusted in order to keep the original aspect ratio."
msgstr ""
-"将图像的开头和结尾标签添加到标签堆中,可以选择提供 [code]width[/code] 和 "
+"将图像的开头和结尾标签添加到标签栈中,可以选择提供 [code]width[/code] 和 "
"[code]height[/code] 来调整图像的大小。\n"
"如果 [code]width[/code] 或 [code]height[/code] 被设置为 0,图像的大小被调整为"
"保持原始长宽比。"
@@ -65955,7 +66346,7 @@ msgid ""
"[b]Note:[/b] This method internals' can't possibly fail, but an error code "
"is returned for backwards compatibility, which will always be [constant OK]."
msgstr ""
-"解析 [code]bbcode[/code] 并根据需要将标签添加到标签堆栈中。\n"
+"解析 [code]bbcode[/code] 并根据需要将标签添加到标签栈中。\n"
"[b]注意:[/b]使用此方法,您无法关闭在之前的 [method append_bbcode] 调用中打开"
"的标签。这样做是为了提高性能,特别是在更新大型 RichTextLabel 时,因为每次重建"
"整个 BBCode 会更慢。如果您绝对需要在将来的方法调用中关闭标签,请附加 [member "
@@ -65965,7 +66356,7 @@ msgstr ""
#: doc/classes/RichTextLabel.xml
msgid "Clears the tag stack and sets [member bbcode_text] to an empty string."
-msgstr "清除标记堆栈并将 [member bbcode_text] 设置为空字符串。"
+msgstr "清除标签栈并将 [member bbcode_text] 设置为空字符串。"
#: doc/classes/RichTextLabel.xml
msgid "Returns the height of the content."
@@ -66000,7 +66391,7 @@ msgstr ""
#: doc/classes/RichTextLabel.xml
msgid "Adds a newline tag to the tag stack."
-msgstr "在标签堆中添加一个换行标签。"
+msgstr "在标签栈中添加一个换行标签。"
#: doc/classes/RichTextLabel.xml
msgid ""
@@ -66039,40 +66430,40 @@ msgid ""
"the same as adding a [code][b][/code] tag if not currently in a [code][i][/"
"code] tag."
msgstr ""
-"在标签堆中添加一个[code][font][/code]标签,字体为黑体。如果当前没有[code][i]"
-"[/code]标签,这与添加一个[code][b][/code]标签相同。"
+"在标签栈中添加一个 [code][font][/code] 标签,字体为黑体。如果当前没有 [code]"
+"[i][/code] 标签,这与添加一个 [code][b][/code] 标签相同。"
#: doc/classes/RichTextLabel.xml
msgid ""
"Adds a [code][font][/code] tag with a bold italics font to the tag stack."
-msgstr "在标签堆中添加一个[code][font][/code]标签,字体为粗斜体。"
+msgstr "在标签栈中添加一个 [code][font][/code] 标签,字体为粗斜体。"
#: doc/classes/RichTextLabel.xml
msgid ""
"Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code]"
"[table][/code] tag. See [method push_table] for details."
msgstr ""
-"将一个[code][cell][/code]标签添加到标签堆中。必须在一个[code][table][/code]标"
-"签内。详情见[method push_table]。"
+"在标签栈中添加一个 [code][cell][/code] 标签。必须位于 [code][table][/code] 标"
+"签内。详见 [method push_table]。"
#: doc/classes/RichTextLabel.xml
msgid "Adds a [code][color][/code] tag to the tag stack."
-msgstr "将一个[code][color][/code]标签添加到标签堆。"
+msgstr "在标签栈中添加一个 [code][color][/code] 标签。"
#: doc/classes/RichTextLabel.xml
msgid ""
"Adds a [code][font][/code] tag to the tag stack. Overrides default fonts for "
"its duration."
msgstr ""
-"将一个[code][font][/code]标签添加到标签堆中。在其有效期内覆盖默认字体。"
+"在标签栈中添加一个 [code][font][/code] 标签。在其有效期内覆盖默认字体。"
#: doc/classes/RichTextLabel.xml
msgid ""
"Adds an [code][indent][/code] tag to the tag stack. Multiplies [code]level[/"
"code] by current [member tab_size] to determine new margin length."
msgstr ""
-"将 [code][indent][/code] 标签添加到标签堆栈。将 [code]level[/code] 乘以当前 "
-"[member tab_size] 以确定新的边距长度。"
+"在标签栈中添加一个 [code][indent][/code] 标签。将 [code]level[/code] 乘以当"
+"前 [member tab_size] 以确定新的边距长度。"
#: doc/classes/RichTextLabel.xml
msgid ""
@@ -66080,8 +66471,8 @@ msgid ""
"the same as adding a [code][i][/code] tag if not currently in a [code][b][/"
"code] tag."
msgstr ""
-"在标签堆中添加一个[code][font][/code]标签,字体为斜体。如果当前没有[code][b]"
-"[/code]标签,这与添加[code][i][/code]标签相同。"
+"在标签栈中添加一个 [code][font][/code] 标签,字体为斜体。如果当前没有 [code]"
+"[b][/code] 标签,这与添加 [code][i][/code] 标签相同。"
#: doc/classes/RichTextLabel.xml
msgid ""
@@ -66089,36 +66480,36 @@ msgid ""
"[code][ol][/code] or [code][ul][/code], but supports more list types. Not "
"fully implemented!"
msgstr ""
-"在标签栈中添加一个[code][list][/code]标签。类似于BBCodes [code][ol][/code] "
-"或 [code][ul][/code] ,但支持更多的列表类型。未完全实现!"
+"在标签栈中添加一个 [code][list][/code] 标签。类似于 BBCode 的 [code][ol][/"
+"code] 或 [code][ul][/code] ,但支持更多的列表类型。未完全实现!"
#: doc/classes/RichTextLabel.xml
msgid ""
"Adds a [code][meta][/code] tag to the tag stack. Similar to the BBCode [code]"
"[url=something]{text}[/url][/code], but supports non-[String] metadata types."
msgstr ""
-"添加一个[code][meta][/code]标签到标签堆中。类似于BBCode [code][url=something]"
-"{text}[/url][/code],但支持非[String]元数据类型。"
+"在标签栈中添加一个 [code][meta][/code] 标签。类似于BBCode 的 [code]"
+"[url=something]{text}[/url][/code],但支持非 [String] 元数据类型。"
#: doc/classes/RichTextLabel.xml
msgid "Adds a [code][font][/code] tag with a monospace font to the tag stack."
-msgstr "在标签堆中添加一个[code][font][/code]标签,该标签为等宽字体。"
+msgstr "在标签栈中添加一个 [code][font][/code] 标签,该标签为等宽字体。"
#: doc/classes/RichTextLabel.xml
msgid "Adds a [code][font][/code] tag with a normal font to the tag stack."
-msgstr "在标签堆中添加一个具有正常字体的[code][font][/code]标签。"
+msgstr "在标签栈中添加一个具有正常字体的 [code][font][/code] 标签。"
#: doc/classes/RichTextLabel.xml
msgid "Adds a [code][s][/code] tag to the tag stack."
-msgstr "将一个[code][s][/code]标签添加到标签堆中。"
+msgstr "在标签栈中添加一个 [code][s][/code] 标签。"
#: doc/classes/RichTextLabel.xml
msgid "Adds a [code][table=columns][/code] tag to the tag stack."
-msgstr "将一个[code][table=columns][/code]标签添加到标签栈。"
+msgstr "在标签栈中添加一个 [code][table=columns][/code] 标签。"
#: doc/classes/RichTextLabel.xml
msgid "Adds a [code][u][/code] tag to the tag stack."
-msgstr "将一个[code][u][/code]标签添加到标签堆中。"
+msgstr "在标签栈中添加一个 [code][u][/code] 标签。"
#: doc/classes/RichTextLabel.xml
msgid ""
@@ -66259,7 +66650,7 @@ msgid ""
"Does not parse BBCodes. Does not modify [member bbcode_text]."
msgstr ""
"标签的原始文本。\n"
-"设置后,清除标签堆栈并在其顶部添加一个原始文本标签。不解析 BBCode。不修改 "
+"设置后,清除标签栈并在其顶部添加一个原始文本标签。不解析 BBCode。不修改 "
"[member bbcode_text]。"
#: doc/classes/RichTextLabel.xml
@@ -66283,7 +66674,7 @@ msgid ""
msgstr ""
"当用户点击元标记之间的内容时触发。如果元是在文本中定义的,例如[code]"
"[url={\"data\"=\"hi\"}]hi[/url][/code],则该信号的参数为[String]类型。如果需"
-"要特定类型或对象,则必须使用 [method push_meta] 方法将数据手动插入标签堆栈。"
+"要特定类型或对象,则必须使用 [method push_meta] 方法将数据手动插入标签栈。"
#: doc/classes/RichTextLabel.xml
msgid "Triggers when the mouse exits a meta tag."
@@ -66892,8 +67283,8 @@ msgid ""
"Rigid body mode. This is the \"natural\" state of a rigid body. It is "
"affected by forces, and can move, rotate, and be affected by user code."
msgstr ""
-"刚体模式。这是一个刚体的“自然”状态。它受到力的影响,可以移动、旋转,并受到用"
-"户代码的影响。"
+"刚体模式。这是刚体的“自然”状态。它受到力的影响,可以移动、旋转,并受到用户代"
+"码的影响。"
#: doc/classes/RigidBody.xml
msgid ""
@@ -67003,7 +67394,7 @@ msgid ""
"collision (should there be one)."
msgstr ""
"如果在给定的向量中移动会导致碰撞,则返回 [code]true[/code]。[code]margin[/"
-"code]增加参与碰撞检测的形状的大小,[code]result[/code] 是一个 "
+"code] 增加参与碰撞检测的形状的大小,[code]result[/code] 是一个 "
"[Physics2DTestMotionResult] 类型的对象,它包含关于碰撞的额外信息(如果有的"
"话)。"
@@ -67555,18 +67946,24 @@ msgstr ""
msgid ""
"Switches the portal culling system on and off.\n"
"It is important to note that when portal culling is active, it is "
-"responsible for [b]all[/b] the 3d culling. Some editor functionality may be "
-"more difficult to use, so switching the active flag is intended to be used "
-"to make sure your [Room] / [Portal] layout works within the editor.\n"
+"responsible for [b]all[/b] the 3d culling. Some editor visual debugging "
+"helpers may not be available when active, so switching the active flag is "
+"intended to be used to ensure your [Room] / [Portal] layout works within the "
+"editor.\n"
"Switching to [code]active[/code] will have no effect when the [code]room "
-"graph[/code] is unloaded (the rooms have not yet been converted)."
+"graph[/code] is unloaded (the rooms have not yet been converted).\n"
+"[b]Note:[/b] For efficiency, the portal system is designed to work with only "
+"the core visual object types. In particular, only nodes derived from "
+"[VisualInstance] are expected to show when the system is active."
msgstr ""
"打开和关闭入口剔除系统。\n"
-"需要注意的是,当入口剔除处于活动状态时,它负责[b]所有[/b] 3d 剔除。某些编辑器"
-"功能可能更难使用,因此切换活动标志旨在确保您的 [Room] / [Portal] 布局在编辑器"
-"中工作。\n"
+"需要注意的是,当入口剔除处于活动状态时,它负责进行[b]所有[/b] 3d 剔除。活动状"
+"态下,可能无法使用编辑器中的部分可视化调试工具,因此活动标志的开关的目的只是"
+"确保您的 [Room] / [Portal] 布局在编辑器中能够正常工作。\n"
"当 [code]room graph[/code] 被卸载(空间尚未转换)时,切换到 [code]active[/"
-"code] 将不起作用。"
+"code] 将不起作用。\n"
+"[b]注意:[/b]出于效率的考虑,入口系统在设计时只考虑了核心可视对象类型。具体来"
+"说,就是只有继承自 [VisualInstance] 的节点才会在该系统启用时显示。"
#: doc/classes/RoomManager.xml
msgid ""
@@ -67725,8 +68122,8 @@ msgid ""
msgstr ""
"在转换过程中,[Room] 内对象的几何形状,或自定义指定的手动绑定,用于生成 [b]凸"
"多边形绑定[/b]。\n"
-"这个凸多边形在可见性系统中是 [b]必需的[/b],并且用于许多目的。最重要的是,它"
-"用于决定[Camera](或物体)是否在[Room]内。凸多边形生成算法很好,但有时它会创"
+"这个凸多边形在可见性系统中是[b]必需的[/b],并且用于许多目的。最重要的是,它用"
+"于决定 [Camera](或物体)是否在 [Room] 内。凸多边形生成算法很好,但有时它会创"
"建太多(或太少)的平面,无法很好地表示空间体积。\n"
"[code]room_simplify[/code] 值可用于对该过程进行精细控制。它决定了如何相似平面"
"才能将它们视为相同(并删除重复项)。该值可以设置在 0(无简化)和 1(最大简"
@@ -67747,7 +68144,7 @@ msgstr ""
#: doc/classes/RoomManager.xml
msgid "Shows the [Portal] margins when the portal gizmo is used in the editor."
-msgstr "当在编辑器中使用入口工具时,显示 [Portal] 的边界。"
+msgstr "当在编辑器中使用入口小工具时,显示 [Portal] 的边界。"
#: doc/classes/RoomManager.xml
msgid ""
@@ -68144,13 +68541,16 @@ msgid ""
"cannot be instantiated.\n"
"[b]Note:[/b] The scene change is deferred, which means that the new scene "
"node is added on the next idle frame. You won't be able to access it "
-"immediately after the [method change_scene_to] call."
+"immediately after the [method change_scene_to] call.\n"
+"[b]Note:[/b] Passing a value of [code]null[/code] into the method will "
+"unload the current scene without loading a new one."
msgstr ""
"将正在运行的场景改变为给定的 [PackedScene] 的新实例。\n"
"成功时返回 [constant OK],如果场景不能被实例化,则返回 [constant "
"ERR_CANT_CREATE]。\n"
-"[b]注意:[/b]场景改变有延迟,即新的场景节点是在下一个空闲帧中添加的。在 "
-"[method change_scene_to] 调用之后,你无法立即访问到它。"
+"[b]注意:[/b]场景改变有延迟,新的场景节点是在下一个空闲帧中添加的。在 "
+"[method change_scene_to] 调用之后,你无法立即访问到它。\n"
+"[b]注意:[/b]向该方法传入 [code]null[/code] 会卸载当前场景,不会加载新场景。"
#: doc/classes/SceneTree.xml
msgid ""
@@ -68331,18 +68731,26 @@ msgstr "当前场景。"
#: doc/classes/SceneTree.xml
msgid ""
"If [code]true[/code], collision shapes will be visible when running the game "
-"from the editor for debugging purposes."
+"from the editor for debugging purposes.\n"
+"[b]Note:[/b] This property is not designed to be changed at run-time. "
+"Changing the value of [member debug_collisions_hint] while the project is "
+"running will not have the desired effect."
msgstr ""
-"如果为 [code]true[/code],以调试为目的从编辑器运行游戏时,碰撞形状将是可见"
-"的。"
+"如果为 [code]true[/code],从编辑器中运行游戏时会显示碰撞形状,方便调试。\n"
+"[b]注意:[/b]这个属性不应在运行时更改。在运行项目时更改 [member "
+"debug_collisions_hint] 的值不会有想要的效果。"
#: doc/classes/SceneTree.xml
msgid ""
"If [code]true[/code], navigation polygons will be visible when running the "
-"game from the editor for debugging purposes."
+"game from the editor for debugging purposes.\n"
+"[b]Note:[/b] This property is not designed to be changed at run-time. "
+"Changing the value of [member debug_navigation_hint] while the project is "
+"running will not have the desired effect."
msgstr ""
-"如果为 [code]true[/code],以调试为目的从编辑器运行游戏时,导航多边形将是可见"
-"的。"
+"如果为 [code]true[/code],从编辑器中运行游戏时会显示导航多边形,方便调试。\n"
+"[b]注意:[/b]这个属性不应在运行时更改。在运行项目时更改 [member "
+"debug_navigation_hint] 的值不会有想要的效果。"
#: doc/classes/SceneTree.xml
msgid "The root of the edited scene."
@@ -68571,8 +68979,12 @@ msgid "Call a group immediately (calls are normally made on idle)."
msgstr "对组进行调用时,立即执行(正常情况下是在空闲时调用的)。"
#: doc/classes/SceneTree.xml
-msgid "Call a group only once even if the call is executed many times."
-msgstr "对组进行调用时,即便执行了多次调用也只调用一次。"
+msgid ""
+"Call a group only once even if the call is executed many times.\n"
+"[b]Note:[/b] Arguments are not taken into account when deciding whether the "
+"call is unique or not. Therefore when the same method is called with "
+"different arguments, only the first call will be performed."
+msgstr ""
#: doc/classes/SceneTree.xml
msgid "No stretching."
@@ -68723,6 +69135,18 @@ msgid ""
"[/codeblock]\n"
"In the example above, all children of a node are moved one after another to "
"position (0, 0).\n"
+"You should avoid using more than one [SceneTreeTween] per object's property. "
+"If two or more tweens animate one property at the same time, the last one "
+"created will take priority and assign the final value. If you want to "
+"interrupt and restart an animation, consider assigning the [SceneTreeTween] "
+"to a variable:\n"
+"[codeblock]\n"
+"var tween\n"
+"func animate():\n"
+" if tween:\n"
+" tween.kill() # Abort the previous animation.\n"
+" tween = create_tween()\n"
+"[/codeblock]\n"
"Some [Tweener]s use transitions and eases. The first accepts a [enum Tween."
"TransitionType] constant, and refers to the way the timing of the animation "
"is handled (see [url=https://easings.net/]easings.net[/url] for some "
@@ -68735,7 +69159,10 @@ msgid ""
"tween_cheatsheet.png]Tween easing and transition types cheatsheet[/url]\n"
"[b]Note:[/b] All [SceneTreeTween]s will automatically start by default. To "
"prevent a [SceneTreeTween] from autostarting, you can call [method stop] "
-"immediately after it is created."
+"immediately after it is created.\n"
+"[b]Note:[/b] [SceneTreeTween]s are processing after all of nodes in the "
+"current frame, i.e. after [method Node._process] or [method Node."
+"_physics_process] (depending on [enum Tween.TweenProcessMode])."
msgstr ""
"[SceneTreeTween] 是由场景树管理的补间动画。与 [Tween] 相对,不需要实例化节"
"点。\n"
@@ -68786,6 +69213,16 @@ msgstr ""
" tween.tween_property(sprite, \"position\", Vector2(0, 0), 1)\n"
"[/codeblock]\n"
"上面的示例中,该节点的所有子节点都会依次被移动到 (0, 0)。\n"
+"你应该避免在对象的同一个属性上使用多个 [SceneTreeTween]。如果对某个属性同时进"
+"行两个或者更多的补间动画,会优先使用最后创建的那个设置最终的值。如果你想要中"
+"断并重启动画,请考虑将该 [SceneTreeTween] 赋给变量:\n"
+"[codeblock]\n"
+"var tween\n"
+"func animate():\n"
+" if tween:\n"
+" tween.kill() # 终止之前的补间动画。\n"
+" tween = create_tween()\n"
+"[/codeblock]\n"
"一些 [Tweener] 会用到过渡和缓动。前者接受 [enum Tween.TransitionType] 常量,"
"指的是如何处理该动画的时间(示例见 [url=https://easings.net/]easings.net[/"
"url])。第二个接受的是 [enum Tween.EaseType] 常量,控制 [code]trans_type[/"
@@ -68795,7 +69232,10 @@ msgstr ""
"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
"tween_cheatsheet.png]补间缓动与过渡类型速查表[/url]\n"
"[b]注意:[/b]所有 [SceneTreeTween] 都默认会自动启动。如果要阻止某个 "
-"[SceneTreeTween] 自动启动,你可以在创建后立即调用 [method stop]。"
+"[SceneTreeTween] 自动启动,你可以在创建后立即调用 [method stop]。\n"
+"[b]注意:[/b][SceneTreeTween] 的处理时机在当前帧的所有节点之后,即在 [method "
+"Node._process] 或 [method Node._physics_process] 之后(取决于 [enum Tween."
+"TweenProcessMode])。"
#: doc/classes/SceneTreeTween.xml
msgid ""
@@ -69930,8 +70370,14 @@ msgstr ""
"[code]color[/code]。确切的绘制方法是每个形状特有的,无法配置。"
#: doc/classes/Shape2D.xml
-msgid "The shape's custom solver bias."
-msgstr "形状的自定义求解器偏置。"
+msgid ""
+"The shape's custom solver bias. Defines how much bodies react to enforce "
+"contact separation when this shape is involved.\n"
+"When set to [code]0.0[/code], the default value of [code]0.3[/code] is used."
+msgstr ""
+"该形状的的自定义求解器偏差。定义了强制接触分离涉及到这个形状时,物体会做出多"
+"大的反应。\n"
+"设为 [code]0.0[/code] 时,会使用默认的 [code]0.3[/code]。"
#: doc/classes/ShortCut.xml
msgid "A shortcut for binding input."
@@ -70521,9 +70967,9 @@ msgid ""
"the optional [code]attachment_path[/code] can define a [Spatial] the pinned "
"vertex will be attached to."
msgstr ""
-"设置表面顶点的固定状态。当设置为 [code]true[/code] 时,可选的"
-"[code]attachment_path[/code]可以定义一个空间[Spatial],被固定的顶点将连接到这"
-"个空间。"
+"设置表面顶点的固定状态。当设置为 [code]true[/code] 时,可选的 "
+"[code]attachment_path[/code] 可以定义一个 [Spatial],被固定的顶点将连接到这个"
+"节点。"
#: doc/classes/SoftBody.xml
msgid ""
@@ -70688,24 +71134,35 @@ msgstr ""
msgid ""
"Returns whether this node uses a scale of [code](1, 1, 1)[/code] or its "
"local transformation scale."
-msgstr "返回该节点是否使用[code](1, 1, 1)[/code]的比例或其本地转换比例。"
+msgstr "返回该节点是否使用 [code](1, 1, 1)[/code] 的比例或其本地变换比例。"
#: doc/classes/Spatial.xml
msgid ""
"Returns whether this node is set as Toplevel, that is whether it ignores its "
"parent nodes transformations."
-msgstr "返回该节点是否被设置为Toplevel,也就是是否忽略其父节点的变换。"
+msgstr "返回该节点是否被设置为顶层(Toplevel),即是否忽略其父节点的变换。"
#: doc/classes/Spatial.xml
msgid ""
"Returns whether the node notifies about its global and local transformation "
"changes. [Spatial] will not propagate this by default."
msgstr ""
-"返回节点是否通知其全局和局部的变换变化。默认情况下,[Spatial]不会对此进行传"
+"返回节点是否通知其全局和局部的变换变化。默认情况下 [Spatial] 不会对此进行传"
"播。"
#: doc/classes/Spatial.xml
msgid ""
+"Returns [code]true[/code] if the node is present in the [SceneTree], its "
+"[member visible] property is [code]true[/code] and all its antecedents are "
+"also visible. If any antecedent is hidden, this node will not be visible in "
+"the scene tree."
+msgstr ""
+"如果该节点位于 [SceneTree] 中,并且其 [member visible] 属性为 [code]true[/"
+"code],并且其所有上层节点也均可见,则返回 [code]true[/code]。如果任何上层节点"
+"被隐藏,则该节点在场景树中将不可见。"
+
+#: doc/classes/Spatial.xml
+msgid ""
"Rotates the node so that the local forward axis (-Z) points toward the "
"[code]target[/code] position.\n"
"The local up axis (+Y) points as close to the [code]up[/code] vector as "
@@ -70733,8 +71190,8 @@ msgid ""
"itself to point toward the [code]target[/code] as per [method look_at]. "
"Operations take place in global space."
msgstr ""
-"将节点移动到指定的[code]position[/code],然后按照[method look_at]的要求旋转自"
-"己以指向[code]target[/code]。操作是在全局空间进行的。"
+"将节点移动到指定的 [code]position[/code],然后按照 [method look_at] 的要求旋"
+"转自己以指向 [code]target[/code]。操作是在全局空间进行的。"
#: doc/classes/Spatial.xml
msgid ""
@@ -70756,7 +71213,7 @@ msgid ""
"Rotates the local transformation around axis, a unit [Vector3], by specified "
"angle in radians. The rotation axis is in object-local coordinate system."
msgstr ""
-"围绕轴(单位 [Vector3])旋转本地变换,指定角度(弧度)。旋转轴是在物体的本地"
+"围绕轴(单位 [Vector3])旋转局部变换,指定角度(弧度)。旋转轴是在物体的本地"
"坐标系中。"
#: doc/classes/Spatial.xml
@@ -70818,7 +71275,7 @@ msgid ""
"editor context and it has a valid gizmo."
msgstr ""
"设置节点是否通知其全局和局部变换的变化。[Spatial] 默认情况下不会传播,除非是"
-"在编辑器上下文中,并且它有一个有效的控制器。"
+"在编辑器上下文中,并且它有一个有效的小工具。"
#: doc/classes/Spatial.xml
msgid ""
@@ -70923,12 +71380,15 @@ msgid ""
msgstr "旋转部分局部变换为度,按 YXZ-Euler 角格式指定(X 角、Y 角、Z 角)。"
#: doc/classes/Spatial.xml
+#, fuzzy
msgid ""
"Scale part of the local transformation.\n"
"[b]Note:[/b] Mixed negative scales in 3D are not decomposable from the "
"transformation matrix. Due to the way scale is represented with "
"transformation matrices in Godot, the scale values will either be all "
-"positive or all negative."
+"positive or all negative.\n"
+"[b]Note:[/b] Not all nodes are visually scaled by the [member scale] "
+"property. For example, [Light]s are not visually affected by [member scale]."
msgstr ""
"局部变换的缩放部分。\n"
"[b]注意:[/b]3D 中,变换矩阵是无法分解出正负混合的缩放的。由于 Godot 中使用变"
@@ -70977,39 +71437,41 @@ msgid ""
"need to ask for it, with [method set_notify_transform]. The notification is "
"also sent if the node is in the editor context and it has a valid gizmo."
msgstr ""
-"当空间节点的全局变换发生变化时,空间节点会收到这个通知。这意味着当前节点或父"
-"节点改变了它的变换。\n"
-"为了使[constant NOTIFICATION_TRANSFORM_CHANGED]生效,用户首先需要用[method "
-"set_notify_transform]发送请求。如果节点是在编辑器的上下文中,并且它有一个有效"
-"的gizmo,那么该通知也会被发送。"
+"当 Spatial 节点的全局变换发生变化时会收到这个通知。这意味着当前节点或父节点改"
+"变了它的变换。\n"
+"为了使 [constant NOTIFICATION_TRANSFORM_CHANGED] 生效,用户首先需要用 "
+"[method set_notify_transform] 发送请求。如果节点是在编辑器的上下文中,并且它"
+"有一个有效的小工具,那么该通知也会被发送。"
#: doc/classes/Spatial.xml
msgid ""
"Spatial nodes receives this notification when they are registered to new "
"[World] resource."
-msgstr "空间节点在注册到新的 [World] 资源时会收到此通知。"
+msgstr "Spatial 节点在注册到新的 [World] 资源时会收到此通知。"
#: doc/classes/Spatial.xml
msgid ""
"Spatial nodes receives this notification when they are unregistered from "
"current [World] resource."
-msgstr "当空间节点从当前的 [World] 资源中取消注册时,它们会收到此通知。"
+msgstr "当 Spatial 节点从当前的 [World] 资源中取消注册时,它们会收到此通知。"
#: doc/classes/Spatial.xml
msgid "Spatial nodes receives this notification when their visibility changes."
-msgstr "空间节点在其可见性发生变化时会收到此通知。"
+msgstr "Spatial 节点在其可见性发生变化时会收到此通知。"
#: doc/classes/Spatial.xml
msgid ""
"Spatial nodes receives this notification if the portal system gameplay "
"monitor detects they have entered the gameplay area."
-msgstr "如果入口系统游戏监视器检测到它们已进入游戏区域,空间节点会收到此通知。"
+msgstr ""
+"如果入口系统游戏监视器检测到它们已进入游戏区域,Spatial 节点会收到此通知。"
#: doc/classes/Spatial.xml
msgid ""
"Spatial nodes receives this notification if the portal system gameplay "
"monitor detects they have exited the gameplay area."
-msgstr "如果入口系统游戏监视器检测到它们已退出游戏区域,空间节点会收到此通知。"
+msgstr ""
+"如果入口系统游戏监视器检测到它们已退出游戏区域,Spatial 节点会收到此通知。"
#: doc/classes/SpatialMaterial.xml
msgid "Default 3D rendering material."
@@ -71033,8 +71495,7 @@ msgid ""
"Returns [code]true[/code], if the specified flag is enabled. See [enum "
"Flags] enumerator for options."
msgstr ""
-"如果指定的标志被启用,返回 [code]true[/code]。参阅 [enum Flags] 枚举器的选"
-"项。"
+"如果指定的标志被启用,返回 [code]true[/code]。选项见 [enum Flags] 枚举值。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71063,8 +71524,8 @@ msgid ""
msgstr ""
"如果为 [code]true[/code],则启用指定的标志。标志是可以打开和关闭的可选行为。"
"使用该函数一次只能启用一个标志,不能将标志枚举值像位掩码一样进行合并,一次启"
-"用或禁用多个标志。也可以通过将相应成员设置为 [code]true[/code] 来启用标志。有"
-"关选项,请参阅 [enum Flags] 枚举器。"
+"用或禁用多个标志。也可以通过将相应成员设置为 [code]true[/code] 来启用标志。选"
+"项见 [enum Flags] 枚举值。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71103,7 +71564,9 @@ msgid ""
"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
"texture filtering. Anisotropic texture filtering can be enabled by selecting "
"a texture in the FileSystem dock, going to the Import dock, checking the "
-"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]."
+"[b]Anisotropic[/b] checkbox then clicking [b]Reimport[/b]. The anisotropic "
+"filtering level can be changed by adjusting [member ProjectSettings."
+"rendering/quality/filters/anisotropic_filter_level]."
msgstr ""
"如果为 [code]true[/code],则启用各向异性。各向异性会改变镜面反射斑点的形状并"
"将其与切线空间对其。可用于拉丝铝材和毛发反射。\n"
@@ -71111,7 +71574,8 @@ msgstr ""
"效果就会看上去有问题。\n"
"[b]注意:[/b]材质的各向异性不应与纹理的各向异性过滤相混淆。纹理各向异性过滤的"
"启用方法是,在“文件系统”面板中选中纹理,然后在“导入”面板中勾选[b]各向异性[/b]"
-"复选框,然后点击[b]重新导入[/b]。"
+"复选框,然后点击[b]重新导入[/b]。各向异性过滤级别可以通过 [member "
+"ProjectSettings.rendering/quality/filters/anisotropic_filter_level] 调整。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71391,7 +71855,7 @@ msgstr "指定要使用的淡入淡出类型。可以是任何一个 [enum Dista
#: doc/classes/SpatialMaterial.xml
msgid "The emitted light's color. See [member emission_enabled]."
-msgstr "发出的光的颜色。参阅 [member emission_enabled]。"
+msgstr "发出的光的颜色。见 [member emission_enabled]。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71428,7 +71892,7 @@ msgstr "纹理,指定某点的表面发光的程度。"
msgid ""
"Forces a conversion of the [member albedo_texture] from sRGB space to linear "
"space."
-msgstr "强制将 [member albedo_texture] 从sRGB空间转换为线性空间。"
+msgstr "强制将 [member albedo_texture] 从 sRGB 空间转换为线性空间。"
#: doc/classes/SpatialMaterial.xml
msgid "Enables signed distance field rendering shader."
@@ -71464,7 +71928,7 @@ msgid ""
"If [code]true[/code], transparency is enabled on the body. See also [member "
"params_blend_mode]."
msgstr ""
-"如果为 [code]true[/code],则启用物体的透明度。参阅 [member "
+"如果为 [code]true[/code],则启用物体的透明度。另请参阅 [member "
"params_blend_mode]。"
#: doc/classes/SpatialMaterial.xml
@@ -71565,7 +72029,7 @@ msgstr ""
msgid ""
"Texture used to specify metallic for an object. This is multiplied by "
"[member metallic]."
-msgstr "用于指定对象的金属质感。此值乘 [member metallic]。"
+msgstr "用于指定对象的金属质感。这个值会与 [member metallic] 相乘。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71634,9 +72098,9 @@ msgid ""
"head instead of on the table. See [url=https://github.com/godotengine/godot/"
"issues/41567]GitHub issue #41567[/url] for details."
msgstr ""
-"控制对象如何面向摄像机。参阅[enum BillboardMode]。\n"
-"[b]注意:[/b]广告牌模式不适合VR,因为当屏幕贴在你的头部而不是在桌子上时,摄像"
-"机的左右向量不是水平的。参阅[url=https://github.com/godotengine/godot/"
+"控制对象如何面向摄像机。见 [enum BillboardMode]。\n"
+"[b]注意:[/b]广告牌模式不适合 VR,因为当屏幕贴在你的头部而不是在桌子上时,摄"
+"像机的左右向量不是水平的。详见 [url=https://github.com/godotengine/godot/"
"issues/41567]GitHub issue #41567[/url]。"
#: doc/classes/SpatialMaterial.xml
@@ -71646,7 +72110,7 @@ msgid ""
"transparent pipeline. See [enum BlendMode]."
msgstr ""
"材质的混合模式。\n"
-"[b]注意:[/b]除 [code]Mix[/code] 以外的值会强制对象进入透明管道。参阅 [enum "
+"[b]注意:[/b]除 [code]Mix[/code] 以外的值会强制对象进入透明管道。见 [enum "
"BlendMode]。"
#: doc/classes/SpatialMaterial.xml
@@ -71673,7 +72137,7 @@ msgid ""
"If [code]true[/code], enables the vertex grow setting. See [member "
"params_grow_amount]."
msgstr ""
-"如果为 [code]true[/code],启用顶点生长设置。参见[member params_grow_amount]。"
+"如果为 [code]true[/code],启用顶点生长设置。见 [member params_grow_amount]。"
#: doc/classes/SpatialMaterial.xml
msgid "Grows object vertices in the direction of their normals."
@@ -71685,19 +72149,19 @@ msgstr "目前在 Godot 中未实现。"
#: doc/classes/SpatialMaterial.xml
msgid "The point size in pixels. See [member flags_use_point_size]."
-msgstr "点的大小,以像素为单位。参见[member flags_use_point_size]。"
+msgstr "点的大小,以像素为单位。见 [member flags_use_point_size]。"
#: doc/classes/SpatialMaterial.xml
msgid "The method for rendering the specular blob. See [enum SpecularMode]."
-msgstr "镜面反射斑点的渲染方法。请参阅 [enum SpecularMode]。"
+msgstr "镜面反射斑点的渲染方法。见 [enum SpecularMode]。"
#: doc/classes/SpatialMaterial.xml
msgid ""
"If [code]true[/code], the shader will discard all pixels that have an alpha "
"value less than [member params_alpha_scissor_threshold]."
msgstr ""
-"如果为 [code]true[/code],着色器将丢弃所有alpha值小于[member "
-"params_alpha_scissor_threshold]的像素。"
+"如果为 [code]true[/code],着色器将丢弃所有 Alpha 值小于 [member "
+"params_alpha_scissor_threshold] 的像素。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71705,7 +72169,7 @@ msgid ""
"when using [constant BILLBOARD_PARTICLES]. See [member "
"params_billboard_mode]."
msgstr ""
-"粒子精灵表中的水平帧数。仅在使用 [constant BILLBOARD_PARTICLES] 时启用。参阅"
+"粒子精灵表中的水平帧数。仅在使用 [constant BILLBOARD_PARTICLES] 时启用。见 "
"[member params_billboard_mode]。"
#: doc/classes/SpatialMaterial.xml
@@ -71714,7 +72178,7 @@ msgid ""
"using [constant BILLBOARD_PARTICLES]. See [member params_billboard_mode]."
msgstr ""
"如果为 [code]true[/code],循环粒子动画。仅在使用 [constant "
-"BILLBOARD_PARTICLES] 时启用。参阅[member params_billboard_mode]。"
+"BILLBOARD_PARTICLES] 时启用。见 [member params_billboard_mode]。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71722,7 +72186,7 @@ msgid ""
"when using [constant BILLBOARD_PARTICLES]. See [member "
"params_billboard_mode]."
msgstr ""
-"粒子精灵表中的垂直帧数。仅在使用 [constant BILLBOARD_PARTICLES] 时启用。参阅"
+"粒子精灵表中的垂直帧数。仅在使用 [constant BILLBOARD_PARTICLES] 时启用。见 "
"[member params_billboard_mode]。"
#: doc/classes/SpatialMaterial.xml
@@ -71760,7 +72224,7 @@ msgstr "折射效果的强度。较高的值会使折射的表现更加扭曲。
msgid ""
"Texture that controls the strength of the refraction per-pixel. Multiplied "
"by [member refraction_scale]."
-msgstr "控制每个像素折射强度的纹理。乘以[member refraction_scale]。"
+msgstr "控制每个像素折射强度的纹理。会与 [member refraction_scale] 相乘。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71770,9 +72234,9 @@ msgid ""
"stored metallic in the red channel, roughness in the blue, and ambient "
"occlusion in the green you could reduce the number of textures you use."
msgstr ""
-"指定存储折射信息的[member refraction_texture]的通道。当你在纹理中存储多种效果"
-"的信息时,这很有用。例如,如果你在红色通道中存储金属效果,在蓝色通道中存储粗"
-"糙度,在绿色通道中存储环境遮挡,就可以减少使用纹理的数量。"
+"指定存储折射信息的 [member refraction_texture] 的通道。当你在纹理中存储多种效"
+"果的信息时,这很有用。例如,如果你在红色通道中存储金属效果,在蓝色通道中存储"
+"粗糙度,在绿色通道中存储环境遮挡,就可以减少使用纹理的数量。"
#: doc/classes/SpatialMaterial.xml
msgid "Sets the strength of the rim lighting effect."
@@ -71794,7 +72258,7 @@ msgstr ""
msgid ""
"Texture used to set the strength of the rim lighting effect per-pixel. "
"Multiplied by [member rim]."
-msgstr "纹理用于设置每个像素的边缘光照效果的强度。乘以 [member rim]。"
+msgstr "纹理用于设置每个像素的边缘光照效果的强度。会与 [member rim] 相乘。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71818,7 +72282,7 @@ msgstr ""
msgid ""
"Texture used to control the roughness per-pixel. Multiplied by [member "
"roughness]."
-msgstr "用于控制每个像素粗糙度的纹理。乘以 [member roughness]。"
+msgstr "用于控制每个像素粗糙度的纹理。会与 [member roughness] 相乘。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71837,8 +72301,8 @@ msgid ""
"Texture used to control the subsurface scattering strength. Stored in the "
"red texture channel. Multiplied by [member subsurf_scatter_strength]."
msgstr ""
-"用于控制次表面散射强度的纹理。存储在红色纹理通道中。乘以 [member "
-"subsurf_scatter_strength]。"
+"用于控制次表面散射强度的纹理。存储在红色纹理通道中。会与 [member "
+"subsurf_scatter_strength] 相乘。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71854,7 +72318,7 @@ msgstr "如果为 [code]true[/code],则启用传输效果。"
msgid ""
"Texture used to control the transmission effect per-pixel. Added to [member "
"transmission]."
-msgstr "纹理用于控制每个像素的传输效果。添加到 [member transmission]。"
+msgstr "纹理用于控制每个像素的传输效果。会与 [member transmission] 相加。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71862,7 +72326,7 @@ msgid ""
"added to [code]UV[/code] in the vertex function. This can be used to offset "
"a texture."
msgstr ""
-"[code]UV[/code]坐标的偏移量。这个量将被添加到顶点函数中的 [code]UV[/code] "
+"[code]UV[/code] 坐标的偏移量。这个量将被添加到顶点函数中的 [code]UV[/code] "
"中。这可以用来偏移纹理。"
#: doc/classes/SpatialMaterial.xml
@@ -71870,7 +72334,7 @@ msgid ""
"How much to scale the [code]UV[/code] coordinates. This is multiplied by "
"[code]UV[/code] in the vertex function."
msgstr ""
-"缩放 [code]UV[/code] 坐标的多少。这个值乘以顶点函数中的 [code]UV[/code]。"
+"[code]UV[/code] 坐标的缩放量。这个值会与顶点函数中的 [code]UV[/code] 相乘。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71912,7 +72376,7 @@ msgid ""
"How much to scale the [code]UV2[/code] coordinates. This is multiplied by "
"[code]UV2[/code] in the vertex function."
msgstr ""
-"缩放 [code]UV[/code] 坐标的多少。这个值乘以顶点函数中的 [code]UV[/code]。"
+"[code]UV2[/code] 坐标的缩放量。这个值会与顶点函数中的 [code]UV2[/code] 相乘。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71979,7 +72443,7 @@ msgstr "指定每个像素流图方向的纹理,用于 [member anisotropy]。"
#: doc/classes/SpatialMaterial.xml
msgid "Texture specifying per-pixel ambient occlusion value."
-msgstr "指定每个像素环境遮挡值的纹理。"
+msgstr "指定每个像素环境光遮蔽的纹理。"
#: doc/classes/SpatialMaterial.xml
msgid "Texture specifying per-pixel depth."
@@ -71987,7 +72451,7 @@ msgstr "指定每个像素深度的纹理。"
#: doc/classes/SpatialMaterial.xml
msgid "Texture specifying per-pixel subsurface scattering."
-msgstr "指定每个像素的亚表面散射的纹理。"
+msgstr "指定每个像素的次表面散射的纹理。"
#: doc/classes/SpatialMaterial.xml
msgid "Texture specifying per-pixel transmission color."
@@ -72097,7 +72561,7 @@ msgstr "不透明和透明的对象都要计算深度绘制。"
#: doc/classes/SpatialMaterial.xml
msgid "No depth draw."
-msgstr "没有深度的绘制。"
+msgstr "不进行深度绘制。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -72107,7 +72571,7 @@ msgstr "对于透明对象,首先对不透明部分进行不透明传递,然
#: doc/classes/SpatialMaterial.xml
msgid "Default cull mode. The back of the object is culled when not visible."
-msgstr "默认的裁剪模式。当不可见时,对象的背面会被剔除。"
+msgstr "默认的剔除模式。对象的背面会在不可见时被剔除。"
#: doc/classes/SpatialMaterial.xml
msgid "The front of the object is culled when not visible."
@@ -72259,11 +72723,11 @@ msgstr "广告牌模式被禁用。"
#: doc/classes/SpatialMaterial.xml
msgid "The object's Z axis will always face the camera."
-msgstr "对象的Z轴将始终面向相机。"
+msgstr "对象的 Z 轴将始终面向相机。"
#: doc/classes/SpatialMaterial.xml
msgid "The object's X axis will always face the camera."
-msgstr "对象的X轴将始终面向相机。"
+msgstr "对象的 X 轴将始终面向相机。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -72319,7 +72783,7 @@ msgid ""
"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
msgstr ""
"根据每个像素与相机的距离,使用抖动方法平滑地淡化对象。抖动会根据设定的模式丢"
-"弃像素,在不启用透明的情况下平滑淡化。在某些硬件上,这比 [constant "
+"弃像素,在不启用透明的情况下平滑淡化。在某些硬件上比 [constant "
"DISTANCE_FADE_PIXEL_ALPHA] 更快。"
#: doc/classes/SpatialMaterial.xml
@@ -72330,8 +72794,8 @@ msgid ""
"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
msgstr ""
"根据对象与相机的距离,使用抖动的方法平滑地淡化对象。抖动根据设定的模式丢弃像"
-"素,在不启用透明度的情况下平滑淡化。在某些硬件上,这可能比[constant "
-"DISTANCE_FADE_PIXEL_ALPHA]更快。"
+"素,在不启用透明度的情况下平滑淡化。在某些硬件上可能比 [constant "
+"DISTANCE_FADE_PIXEL_ALPHA] 更快。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -72569,8 +73033,11 @@ msgstr ""
"max_lights_per_object],以着色器编译时间为代价。"
#: doc/classes/SpotLight.xml
-msgid "The spotlight's angle in degrees."
-msgstr "聚光灯的角度,单位是度。"
+msgid ""
+"The spotlight's angle in degrees.\n"
+"[b]Note:[/b] [member spot_angle] is not affected by [member Spatial.scale] "
+"(the light's scale or its parent's scale)."
+msgstr ""
#: doc/classes/SpotLight.xml
msgid "The spotlight's angular attenuation curve."
@@ -72581,11 +73048,14 @@ msgid "The spotlight's light energy attenuation curve."
msgstr "聚光灯的光量衰减曲线。"
#: doc/classes/SpotLight.xml
+#, fuzzy
msgid ""
"The maximal range that can be reached by the spotlight. Note that the "
"effectively lit area may appear to be smaller depending on the [member "
"spot_attenuation] in use. No matter the [member spot_attenuation] in use, "
-"the light will never reach anything outside this range."
+"the light will never reach anything outside this range.\n"
+"[b]Note:[/b] [member spot_range] is not affected by [member Spatial.scale] "
+"(the light's scale or its parent's scale)."
msgstr ""
"聚光灯可以达到的最大范围。请注意,根据使用的 [member spot_attenuation],有效"
"照明区域可能看起来更小。无论使用[member spot_attenuation],光都不会到达此范围"
@@ -72828,10 +73298,10 @@ msgstr ""
#: doc/classes/Sprite3D.xml
msgid ""
"[Texture] object to draw. If [member GeometryInstance.material_override] is "
-"used, this will be overridden."
+"used, this will be overridden. The size information is still used."
msgstr ""
-"要绘制的 [Texture] 对象。如果 [member GeometryInstance.material_override] 被"
-"使用,这将被覆盖。"
+"要绘制的 [Texture] 对象。如果使用了 [member GeometryInstance."
+"material_override],这将被覆盖。仍会使用其大小信息。"
#: doc/classes/SpriteBase3D.xml
msgid "2D sprite node in 3D environment."
@@ -72919,8 +73389,8 @@ msgid ""
"sorted from back to front (subject to priority)."
msgstr ""
"设置该精灵的渲染优先级。优先级高的物体将被排序在优先级低的物体前面。\n"
-"[b]注意:[/b]仅在 [member alpha_cut] 为 [constant "
-"ALPHA_CUT_DISABLED](默认值)时适用。\n"
+"[b]注意:[/b]仅在 [member alpha_cut] 为 [constant ALPHA_CUT_DISABLED](默认"
+"值)时适用。\n"
"[b]注意:[/b]仅适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排序"
"方式。这是因为不透明对象不被排序,而透明对象则从后往前排序(取决于优先级)。"
@@ -73703,7 +74173,7 @@ msgstr ""
msgid ""
"Returns a copy of the string with special characters escaped using the C "
"language standard."
-msgstr "返回一个使用C语言标准转义的特殊字符的字符串的副本。"
+msgstr "返回一个使用 C 语言标准转义的特殊字符的字符串的副本。"
#: doc/classes/String.xml
msgid ""
@@ -74426,6 +74896,9 @@ msgid ""
"the substrings, starting from right.\n"
"The splits in the returned array are sorted in the same order as the "
"original string, from left to right.\n"
+"If [code]allow_empty[/code] is [code]true[/code], and there are two adjacent "
+"delimiters in the string, it will add an empty string to the array of "
+"substrings at this position.\n"
"If [code]maxsplit[/code] is specified, it defines the number of splits to do "
"from the right up to [code]maxsplit[/code]. The default value of 0 means "
"that all items are split, thus giving the same result as [method split].\n"
@@ -74441,6 +74914,8 @@ msgstr ""
"从右侧开始,通过 [code]delimiter[/code] 字符串拆分字符串并返回子字符串数"
"组。\n"
"返回数组中的拆分按与原始字符串相同的顺序从左到右排序。\n"
+"如果 [code]allow_empty[/code] 为 [code]true[/code],并且该字符串中存在两个连"
+"续的分隔符,就会将一个空字符串加入到子字符串数组的这个位置中。\n"
"如果指定了 [code]maxsplit[/code],它定义了从右边到 [code]maxsplit[/code] 的分"
"割数。默认值 0 表示所有项目都被拆分,因此给出与 [method split] 相同的结果。\n"
"例子:\n"
@@ -74513,6 +74988,9 @@ msgstr "返回简化的规范路径。"
msgid ""
"Splits the string by a [code]delimiter[/code] string and returns an array of "
"the substrings. The [code]delimiter[/code] can be of any length.\n"
+"If [code]allow_empty[/code] is [code]true[/code], and there are two adjacent "
+"delimiters in the string, it will add an empty string to the array of "
+"substrings at this position.\n"
"If [code]maxsplit[/code] is specified, it defines the number of splits to do "
"from the left up to [code]maxsplit[/code]. The default value of [code]0[/"
"code] means that all items are split.\n"
@@ -74531,6 +75009,8 @@ msgid ""
msgstr ""
"通过 [code]delimiter[/code] 字符串拆分字符串并返回子字符串数组。"
"[code]delimiter[/code] 可以是任意长度。\n"
+"如果 [code]allow_empty[/code] 为 [code]true[/code],并且该字符串中存在两个连"
+"续的分隔符,就会将一个空字符串加入到子字符串数组的这个位置中。\n"
"如果指定了 [code]maxsplit[/code],它定义了从左边到 [code]maxsplit[/code] 的分"
"割次数。默认值 [code]0[/code] 表示所有项目都被拆分。\n"
"如果你只需要该数组中的某个元素,[method get_slice] 是一个效率更高的选项。\n"
@@ -74549,11 +75029,16 @@ msgid ""
"Splits the string in floats by using a delimiter string and returns an array "
"of the substrings.\n"
"For example, [code]\"1,2.5,3\"[/code] will return [code][1,2.5,3][/code] if "
-"split by [code]\",\"[/code]."
+"split by [code]\",\"[/code].\n"
+"If [code]allow_empty[/code] is [code]true[/code], and there are two adjacent "
+"delimiters in the string, it will add an empty string to the array of "
+"substrings at this position."
msgstr ""
"使用分隔符字符串将字符串拆分为浮点数,并返回子字符串数组。\n"
"例如,如果被 [code]\",\"[/code] 分割,[code]\"1,2.5,3\"[/code] 将返回 [code]"
-"[1,2.5,3][/code] 。"
+"[1,2.5,3][/code] 。\n"
+"如果 [code]allow_empty[/code] 为 [code]true[/code],并且该字符串中存在两个连"
+"续的分隔符,就会将一个空字符串加入到子字符串数组的这个位置中。"
#: doc/classes/String.xml
msgid ""
@@ -75970,6 +76455,10 @@ msgid "Returns [code]true[/code] if select with right mouse button is enabled."
msgstr "如果启用鼠标右键选择,则返回 [code]true[/code]。"
#: doc/classes/Tabs.xml
+msgid "Returns the button icon from the tab at index [code]tab_idx[/code]."
+msgstr "返回索引 [code]tab_idx[/code] 处的选项卡的按钮图标。"
+
+#: doc/classes/Tabs.xml
msgid "Returns the number of hidden tabs offsetted to the left."
msgstr "返回向左偏移的隐藏选项卡的数量。"
@@ -75999,6 +76488,10 @@ msgid ""
msgstr "如果为 [code]true[/code],启用鼠标右键选择选项卡。"
#: doc/classes/Tabs.xml
+msgid "Sets the button icon from the tab at index [code]tab_idx[/code]."
+msgstr "为索引 [code]tab_idx[/code] 处的选项卡设置按钮图标。"
+
+#: doc/classes/Tabs.xml
msgid "Sets an [code]icon[/code] for the tab at index [code]tab_idx[/code]."
msgstr "为索引 [code]tab_idx[/code] 处的选项卡设置 [code]icon[/code]。"
@@ -76012,8 +76505,8 @@ msgid ""
"dragging tabs between [Tabs]. Enable drag with [member "
"drag_to_rearrange_enabled]."
msgstr ""
-"定义重新排列组的ID。为每个[Tabs]选择相同的值,以便在[Tabs]之间拖动标签。用"
-"[member drag_to_rearrange_enabled]启用拖动。"
+"定义重新排列组的 ID。为每个 [Tabs] 选择相同的值,以便在 [Tabs] 之间拖动标签。"
+"用 [member drag_to_rearrange_enabled] 启用拖动。"
#: doc/classes/Tabs.xml
msgid "Select tab at index [code]tab_idx[/code]."
@@ -76042,12 +76535,13 @@ msgid ""
"Emitted when the active tab is rearranged via mouse drag. See [member "
"drag_to_rearrange_enabled]."
msgstr ""
-"通过鼠标拖动重新排列活动选项卡时发出。参阅 [member "
-"drag_to_rearrange_enabled]。"
+"通过鼠标拖动重新排列活动选项卡时发出。见 [member drag_to_rearrange_enabled]。"
#: doc/classes/Tabs.xml
-msgid "Emitted when a tab is right-clicked."
-msgstr "当选项卡被右键单击时发出。"
+msgid ""
+"Emitted when a tab's right button is pressed. See [method "
+"set_tab_button_icon]."
+msgstr "选项卡的右侧按钮被按下时发出。见 [method set_tab_button_icon]。"
#: doc/classes/Tabs.xml
msgid "Emitted when a tab is clicked, even if it is the current tab."
@@ -76473,13 +76967,13 @@ msgid ""
" var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]\n"
"[/codeblock]"
msgstr ""
-"在文本内部进行搜索。搜索标志可以在[enum SearchFlags]枚举中指定。\n"
-"如果没有找到结果,返回一个空的[code]PoolIntArray[/code]。否则,可以通过[enum "
-"SearchResult]枚举中指定的索引访问结果行和列,例如。\n"
+"在文本内部进行搜索。搜索标志可以用 [enum SearchFlags] 枚举指定。\n"
+"如果没有找到结果,返回一个空的 [code]PoolIntArray[/code]。否则,可以通过 "
+"[enum SearchResult] 枚举中指定的索引访问结果行和列,例如:\n"
"[codeblock]\n"
"var result = search(key, flags, line, column)\n"
"if result.size() > 0:\n"
-" # 找到的结果。\n"
+" # 找到结果。\n"
" var res_line = result[TextEdit.SEARCH_RESULT_LINE)\n"
" var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]\n"
"[/codeblock]"
@@ -76510,8 +77004,8 @@ msgid ""
"code]. Deletes the bookmark if [code]bookmark[/code] is [code]false[/code].\n"
"Bookmarks are shown in the [member breakpoint_gutter]."
msgstr ""
-"如果 [code]bookmark[/code] 为 [code]true[/code],则为行 [code]line[/code] "
-"设置书签。如果 [code]bookmark[/code] 为 [code]false[/code],则删除该书签。\n"
+"如果 [code]bookmark[/code] 为 [code]true[/code],则为行 [code]line[/code] 设"
+"置书签。如果 [code]bookmark[/code] 为 [code]false[/code],则删除该书签。\n"
"书签显示在 [member breakpoint_gutter] 中。"
#: doc/classes/TextEdit.xml
@@ -76944,7 +77438,7 @@ msgid ""
"Returns an [Image] that is a copy of data from this [Texture]. [Image]s can "
"be accessed and manipulated directly."
msgstr ""
-"返回一个 [Image],它是此 [Texture] 中数据的副本。[Image] 图像可以直接访问和操"
+"返回一个 [Image],它是这个 [Texture] 中数据的副本。[Image] 可以直接访问和操"
"作。"
#: doc/classes/Texture.xml
@@ -77290,7 +77784,7 @@ msgstr "返回纹理的高度。高度通常由Y轴表示。"
#: doc/classes/TextureLayered.xml
msgid ""
"Returns an [Image] resource with the data from specified [code]layer[/code]."
-msgstr "返回一个带有指定[code]layer[/code]层数据的[Image]图像资源。"
+msgstr "返回一个带有指定 [code]layer[/code] 层数据的 [Image] 图像资源。"
#: doc/classes/TextureLayered.xml
msgid ""
@@ -77640,47 +78134,48 @@ msgstr "清除主题上的所有值。"
#: doc/classes/Theme.xml
msgid ""
-"Clears the [Color] at [code]name[/code] if the theme has [code]node_type[/"
+"Clears the [Color] at [code]name[/code] if the theme has [code]theme_type[/"
"code]."
msgstr ""
-"如果主题包含 [code]node_type[/code],则清除名为 [code]name[/code] 的 [Color]"
+"如果主题包含 [code]theme_type[/code],则清除名为 [code]name[/code] 的 [Color]"
"颜色。"
#: doc/classes/Theme.xml
msgid ""
-"Clears the constant at [code]name[/code] if the theme has [code]node_type[/"
+"Clears the constant at [code]name[/code] if the theme has [code]theme_type[/"
"code]."
msgstr ""
-"如果主题包含 [code]node_type[/code],则清除名为 [code]name[/code] 的常量。"
+"如果主题包含 [code]theme_type[/code],则清除名为 [code]name[/code] 的常量。"
#: doc/classes/Theme.xml
msgid ""
-"Clears the [Font] at [code]name[/code] if the theme has [code]node_type[/"
+"Clears the [Font] at [code]name[/code] if the theme has [code]theme_type[/"
"code]."
msgstr ""
-"如果主题包含 [code]node_type[/code],则清除名为 [code]name[/code] 的 [Font]字"
-"体。"
+"如果主题包含 [code]theme_type[/code],则清除名为 [code]name[/code] 的 [Font]"
+"字体。"
#: doc/classes/Theme.xml
msgid ""
-"Clears the icon at [code]name[/code] if the theme has [code]node_type[/code]."
+"Clears the icon at [code]name[/code] if the theme has [code]theme_type[/"
+"code]."
msgstr ""
-"如果主题包含 [code]node_type[/code],则清除名为 [code]name[/code] 的图标。"
+"如果主题包含 [code]theme_type[/code],则清除名为 [code]name[/code] 的图标。"
#: doc/classes/Theme.xml
msgid ""
-"Clears [StyleBox] at [code]name[/code] if the theme has [code]node_type[/"
+"Clears [StyleBox] at [code]name[/code] if the theme has [code]theme_type[/"
"code]."
msgstr ""
-"如果主题包含 [code]node_type[/code],则清除名为 [code]name[/code] 的 "
+"如果主题包含 [code]theme_type[/code],则清除名为 [code]name[/code] 的 "
"[StyleBox]样式盒。"
#: doc/classes/Theme.xml
msgid ""
"Clears the theme item of [code]data_type[/code] at [code]name[/code] if the "
-"theme has [code]node_type[/code]."
+"theme has [code]theme_type[/code]."
msgstr ""
-"如果主题具有 [code]node_type[/code],则清除 [code]name[/code] 处的 "
+"如果主题具有 [code]theme_type[/code],则清除 [code]name[/code] 处的 "
"[code]data_type[/code] 主题项。"
#: doc/classes/Theme.xml
@@ -77701,17 +78196,19 @@ msgstr "将主题的取值设置为指定主题的副本。"
#: doc/classes/Theme.xml
msgid ""
-"Returns the [Color] at [code]name[/code] if the theme has [code]node_type[/"
+"Returns the [Color] at [code]name[/code] if the theme has [code]theme_type[/"
"code]."
-msgstr "如果主题有[code]node_type[/code],返回 [code]name[/code]处的[Color]。"
+msgstr ""
+"如果主题有 [code]theme_type[/code],返回 [code]name[/code] 处的 [Color]。"
#: doc/classes/Theme.xml
msgid ""
"Returns all the [Color]s as a [PoolStringArray] filled with each [Color]'s "
-"name, for use in [method get_color], if the theme has [code]node_type[/code]."
+"name, for use in [method get_color], if the theme has [code]theme_type[/"
+"code]."
msgstr ""
-"如果主题有[code]node_type[/code],将所有的[Color]作为[PoolStringArray]返回,"
-"并填充每个[Color]的名称,用于[method get_color]使用。"
+"如果主题有 [code]theme_type[/code],将所有的 [Color] 作为 [PoolStringArray] "
+"返回,并填充每个 [Color] 的名称,用于 [method get_color] 使用。"
#: doc/classes/Theme.xml
msgid ""
@@ -77723,17 +78220,17 @@ msgstr ""
#: doc/classes/Theme.xml
msgid ""
-"Returns the constant at [code]name[/code] if the theme has [code]node_type[/"
+"Returns the constant at [code]name[/code] if the theme has [code]theme_type[/"
"code]."
-msgstr "如果主题有 [code]node_type[/code],返回 [code]name[/code] 处的常量。"
+msgstr "如果主题有 [code]theme_type[/code],返回 [code]name[/code] 处的常量。"
#: doc/classes/Theme.xml
msgid ""
"Returns all the constants as a [PoolStringArray] filled with each constant's "
-"name, for use in [method get_constant], if the theme has [code]node_type[/"
+"name, for use in [method get_constant], if the theme has [code]theme_type[/"
"code]."
msgstr ""
-"如果主题有 [code]node_type[/code],将所有常量作为 [PoolStringArray] 返回,并"
+"如果主题有 [code]theme_type[/code],将所有常量作为 [PoolStringArray] 返回,并"
"填充每个常量的名称,以供 [method get_constant] 使用。"
#: doc/classes/Theme.xml
@@ -77747,20 +78244,20 @@ msgstr ""
#: doc/classes/Theme.xml
msgid ""
-"Returns the [Font] at [code]name[/code] if the theme has [code]node_type[/"
+"Returns the [Font] at [code]name[/code] if the theme has [code]theme_type[/"
"code]. If such item does not exist and [member default_font] is set on the "
"theme, the default font will be returned."
msgstr ""
-"如果主题有 [code]node_type[/code],则返回名为 [code]name[/code] 的 [Font]。如"
-"果不存在这样的项目,而该主题设置了 [member default_font],则会返回该默认字"
+"如果主题有 [code]theme_type[/code],则返回名为 [code]name[/code] 的 [Font]。"
+"如果不存在这样的项目,而该主题设置了 [member default_font],则会返回该默认字"
"体。"
#: doc/classes/Theme.xml
msgid ""
"Returns all the [Font]s as a [PoolStringArray] filled with each [Font]'s "
-"name, for use in [method get_font], if the theme has [code]node_type[/code]."
+"name, for use in [method get_font], if the theme has [code]theme_type[/code]."
msgstr ""
-"如果主题有 [code]node_type[/code],将所有的 [Font] 作为 [PoolStringArray] 返"
+"如果主题有 [code]theme_type[/code],将所有的 [Font] 作为 [PoolStringArray] 返"
"回,并填入每个 [Font] 的名称,以供 [method get_font] 使用。"
#: doc/classes/Theme.xml
@@ -77774,17 +78271,18 @@ msgstr ""
#: doc/classes/Theme.xml
msgid ""
"Returns the icon [Texture] at [code]name[/code] if the theme has "
-"[code]node_type[/code]."
+"[code]theme_type[/code]."
msgstr ""
-"如果主题有[code]node_type[/code],返回 [code]name[/code]处的图标[Texture]。"
+"如果主题有 [code]theme_type[/code],返回 [code]name[/code] 处的图标 "
+"[Texture]。"
#: doc/classes/Theme.xml
msgid ""
"Returns all the icons as a [PoolStringArray] filled with each [Texture]'s "
-"name, for use in [method get_icon], if the theme has [code]node_type[/code]."
+"name, for use in [method get_icon], if the theme has [code]theme_type[/code]."
msgstr ""
-"如果主题有[code]node_type[/code],则返回所有的图标为一个[PoolStringArray],并"
-"填入每个[Texture]的名称,以供[method get_icon]使用。"
+"如果主题有 [code]theme_type[/code],则返回所有的图标为一个 "
+"[PoolStringArray],并填入每个 [Texture] 的名称,以供 [method get_icon] 使用。"
#: doc/classes/Theme.xml
msgid ""
@@ -77797,24 +78295,28 @@ msgstr ""
#: doc/classes/Theme.xml
msgid ""
"Returns the [StyleBox] at [code]name[/code] if the theme has "
-"[code]node_type[/code].\n"
+"[code]theme_type[/code].\n"
"Valid [code]name[/code]s may be found using [method get_stylebox_list]. "
-"Valid [code]node_type[/code]s may be found using [method get_stylebox_types]."
+"Valid [code]theme_type[/code]s may be found using [method "
+"get_stylebox_types]."
msgstr ""
-"如果主题有[code]node_type[/code],返回 [code]name[/code]处的[StyleBox]。\n"
-"可以使用[method get_stylebox_list]找到有效的[code]name[/code]。可以通过"
-"[method get_stylebox_types]来找到有效的[code]node_type[/code]。"
+"如果主题有 [code]theme_type[/code],返回 [code]name[/code] 处的 "
+"[StyleBox]。\n"
+"可以使用 [method get_stylebox_list] 找到有效的 [code]name[/code]。可以通过 "
+"[method get_stylebox_types] 来找到有效的 [code]theme_type[/code]。"
#: doc/classes/Theme.xml
msgid ""
"Returns all the [StyleBox]s as a [PoolStringArray] filled with each "
"[StyleBox]'s name, for use in [method get_stylebox], if the theme has "
-"[code]node_type[/code].\n"
-"Valid [code]node_type[/code]s may be found using [method get_stylebox_types]."
+"[code]theme_type[/code].\n"
+"Valid [code]theme_type[/code]s may be found using [method "
+"get_stylebox_types]."
msgstr ""
-"如果主题有[code]node_type[/code],则返回所有[StyleBox]的[PoolStringArray],并"
-"填入每个[StyleBox]的名称,以供[method get_stylebox]使用。\n"
-"可以使用[method get_stylebox_types]找到有效的[code]node_type[/code]。"
+"如果主题有 [code]theme_type[/code],则返回所有 [StyleBox] 的 "
+"[PoolStringArray],并填入每个 [StyleBox] 的名称,以供 [method get_stylebox] "
+"使用。\n"
+"可以使用 [method get_stylebox_types] 找到有效的 [code]theme_type[/code]。"
#: doc/classes/Theme.xml
msgid ""
@@ -77828,30 +78330,30 @@ msgstr ""
#: doc/classes/Theme.xml
msgid ""
"Returns the theme item of [code]data_type[/code] at [code]name[/code] if the "
-"theme has [code]node_type[/code].\n"
+"theme has [code]theme_type[/code].\n"
"Valid [code]name[/code]s may be found using [method get_theme_item_list] or "
-"a data type specific method. Valid [code]node_type[/code]s may be found "
+"a data type specific method. Valid [code]theme_type[/code]s may be found "
"using [method get_theme_item_types] or a data type specific method."
msgstr ""
-"如果主题有 [code]node_type[/code],则以 [code]name[/code] 返回 "
+"如果主题有 [code]theme_type[/code],则以 [code]name[/code] 返回 "
"[code]data_type[/code] 的主题项目。\n"
"使用 [method get_theme_item_list] 或数据类型特定方法,可能会找到有效的 "
"[code]name[/code]。可以使用 [method get_theme_item_types] 或数据类型特定方"
-"法,找到有效的 [code]node_type[/code]。"
+"法,找到有效的 [code]theme_type[/code]。"
#: doc/classes/Theme.xml
msgid ""
"Returns all the theme items of [code]data_type[/code] as a [PoolStringArray] "
"filled with each theme items's name, for use in [method get_theme_item] or a "
-"data type specific method, if the theme has [code]node_type[/code].\n"
-"Valid [code]node_type[/code]s may be found using [method "
+"data type specific method, if the theme has [code]theme_type[/code].\n"
+"Valid [code]theme_type[/code]s may be found using [method "
"get_theme_item_types] or a data type specific method."
msgstr ""
-"返回所有[code]data_type[/code]的主题项目,以[PoolStringArray]的形式填入每个主"
-"题项目的名称,如果主题有[code]node_type[/code],可以在[method get_theme_item]"
-"或特定数据类型方法中使用。\n"
-"可以通过[method get_theme_item_types]或特定数据类型的方法找到有效的"
-"[code]node_type[/code]。"
+"返回所有 [code]data_type[/code] 的主题项目,以 [PoolStringArray] 的形式填入每"
+"个主题项目的名称,如果主题有 [code]theme_type[/code],可以在 [method "
+"get_theme_item] 或特定数据类型方法中使用。\n"
+"可以通过 [method get_theme_item_types] 或特定数据类型的方法找到有效的 "
+"[code]theme_type[/code]。"
#: doc/classes/Theme.xml
msgid ""
@@ -77867,12 +78369,12 @@ msgstr ""
msgid ""
"Returns all the theme types as a [PoolStringArray] filled with unique type "
"names, for use in other [code]get_*[/code] functions of this theme.\n"
-"[b]Note:[/b] [code]node_type[/code] has no effect and will be removed in "
+"[b]Note:[/b] [code]theme_type[/code] has no effect and will be removed in "
"future version."
msgstr ""
-"将所有的主题类型作为一个[PoolStringArray]返回,其中填入了唯一的类型名称,以供"
-"这个主题的其他[code]get_*[/code]函数使用。\n"
-"[b]注意:[/b][code]node_type[/code]没有生效,在未来的版本中会被删除。"
+"将所有的主题类型作为一个 [PoolStringArray] 返回,其中填入了唯一的类型名称,以"
+"供这个主题的其他 [code]get_*[/code] 函数使用。\n"
+"[b]注意:[/b][code]theme_type[/code] 没有生效,在未来的版本中会被删除。"
#: doc/classes/Theme.xml
msgid ""
@@ -77890,22 +78392,24 @@ msgstr "返回给定的基础类型 [code]base_type[/code] 的所有类型变种
#: doc/classes/Theme.xml
msgid ""
"Returns [code]true[/code] if [Color] with [code]name[/code] is in "
-"[code]node_type[/code].\n"
-"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+"[code]theme_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]theme_type[/"
+"code]."
msgstr ""
-"如果带有[code]name[/code]的[Color]在[code]node_type[/code]中,则返回 "
+"如果 [code]theme_type[/code] 中存在名为 [code]name[/code] 的 [Color],则返回 "
"[code]true[/code]。\n"
-"如果主题没有[code]node_type[/code],则返回 [code]false[/code]。"
+"如果主题没有 [code]theme_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
msgid ""
"Returns [code]true[/code] if constant with [code]name[/code] is in "
-"[code]node_type[/code].\n"
-"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+"[code]theme_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]theme_type[/"
+"code]."
msgstr ""
-"如果带有[code]name[/code]的常量在[code]node_type[/code]中,则返回 "
+"如果 [code]theme_type[/code] 中存在名为 [code]name[/code] 的常量,则返回 "
"[code]true[/code]。\n"
-"如果主题没有[code]node_type[/code],则返回 [code]false[/code]。"
+"如果主题没有[code]theme_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
msgid ""
@@ -77917,42 +78421,46 @@ msgstr ""
#: doc/classes/Theme.xml
msgid ""
"Returns [code]true[/code] if [Font] with [code]name[/code] is in "
-"[code]node_type[/code].\n"
-"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+"[code]theme_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]theme_type[/"
+"code]."
msgstr ""
-"如果带有[code]name[/code]的[Font]在[code]node_type[/code]中,则返回 "
+"如果 [code]theme_type[/code] 中存在名为 [code]name[/code] 的 [Font],则返回 "
"[code]true[/code]。\n"
-"如果主题没有[code]node_type[/code],则返回 [code]false[/code]。"
+"如果主题没有[code]theme_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
msgid ""
"Returns [code]true[/code] if icon [Texture] with [code]name[/code] is in "
-"[code]node_type[/code].\n"
-"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+"[code]theme_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]theme_type[/"
+"code]."
msgstr ""
-"如果带有[code]name[/code]的图标[Texture]在[code]node_type[/code]中,则返回 "
-"[code]true[/code]。\n"
-"如果主题没有[code]node_type[/code],则返回 [code]false[/code]。"
+"如果 [code]theme_type[/code] 中存在名为 [code]name[/code] 的图标 [Texture],"
+"则返回 [code]true[/code]。\n"
+"如果主题没有[code]theme_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
msgid ""
"Returns [code]true[/code] if [StyleBox] with [code]name[/code] is in "
-"[code]node_type[/code].\n"
-"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+"[code]theme_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]theme_type[/"
+"code]."
msgstr ""
-"如果带有[code]name[/code]的[StyleBox]在[code]node_type[/code]中,返回 "
-"[code]true[/code]。\n"
-"如果主题没有[code]node_type[/code],则返回 [code]false[/code]。"
+"如果 [code]theme_type[/code] 中存在名为 [code]name[/code] 的 [StyleBox],则返"
+"回 [code]true[/code]。\n"
+"如果主题没有[code]theme_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
msgid ""
"Returns [code]true[/code] if a theme item of [code]data_type[/code] with "
-"[code]name[/code] is in [code]node_type[/code].\n"
-"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
+"[code]name[/code] is in [code]theme_type[/code].\n"
+"Returns [code]false[/code] if the theme does not have [code]theme_type[/"
+"code]."
msgstr ""
-"如果一个 [code]data_type[/code] 的主题项目与 [code]name[/code] 在 "
-"[code]node_type[/code] 中,则返回 [code]true[/code]。\n"
-"如果该主题没有 [code]node_type[/code],则返回 [code]false[/code]。"
+"如果 [code]theme_type[/code] 中存在名为 [code]name[/code] 的 "
+"[code]data_type[/code] 类型的主题项目,则返回 [code]true[/code]。\n"
+"如果该主题没有 [code]theme_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
msgid ""
@@ -77986,120 +78494,121 @@ msgstr ""
#: doc/classes/Theme.xml
msgid ""
"Renames the [Color] at [code]old_name[/code] to [code]name[/code] if the "
-"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"theme has [code]theme_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr ""
-"如果主题有 [code]node_type[/code],则将 [code]old_name[/code] 的 [Color] 重命"
-"名为 [code]name[/code]。如果 [code]name[/code] 已经被占用,则此方法将失败。"
+"如果主题有 [code]theme_type[/code],则将 [code]old_name[/code] 的 [Color] 重"
+"命名为 [code]name[/code]。如果 [code]name[/code] 已经被占用,则此方法将失败。"
#: doc/classes/Theme.xml
msgid ""
"Renames the constant at [code]old_name[/code] to [code]name[/code] if the "
-"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"theme has [code]theme_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr ""
-"如果主题有 [code]node_type[/code],则将 [code]old_name[/code] 的常量重命名为 "
-"[code]name[/code]。如果 [code]name[/code] 已经被占用,则此方法失败。"
+"如果主题有 [code]theme_type[/code],则将 [code]old_name[/code] 的常量重命名"
+"为 [code]name[/code]。如果 [code]name[/code] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
msgid ""
"Renames the [Font] at [code]old_name[/code] to [code]name[/code] if the "
-"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"theme has [code]theme_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr ""
-"如果主题有 [code]node_type[/code],则将 [code]old_name[/code] 的 [Font] 重命"
+"如果主题有 [code]theme_type[/code],则将 [code]old_name[/code] 的 [Font] 重命"
"名为 [code]name[/code]。如果 [code]name[/code] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
msgid ""
"Renames the icon at [code]old_name[/code] to [code]name[/code] if the theme "
-"has [code]node_type[/code]. If [code]name[/code] is already taken, this "
+"has [code]theme_type[/code]. If [code]name[/code] is already taken, this "
"method fails."
msgstr ""
-"如果主题有 [code]node_type[/code],则将 [code]old_name[/code] 的图标重命名为 "
-"[code]name[/code]。如果 [code]name[/code] 已经被占用,则此方法失败。"
+"如果主题有 [code]theme_type[/code],则将 [code]old_name[/code] 的图标重命名"
+"为 [code]name[/code]。如果 [code]name[/code] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
msgid ""
"Renames [StyleBox] at [code]old_name[/code] to [code]name[/code] if the "
-"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
+"theme has [code]theme_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr ""
-"如果主题有 [code]node_type[/code],则将 [StyleBox] 在 [code]old_name[/code] "
+"如果主题有 [code]theme_type[/code],则将 [StyleBox] 在 [code]old_name[/code] "
"重命名为 [code]name[/code]。如果 [code]name[/code] 已经被占用,此方法会失败。"
#: doc/classes/Theme.xml
msgid ""
"Renames the theme item of [code]data_type[/code] at [code]old_name[/code] to "
-"[code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/"
+"[code]name[/code] if the theme has [code]theme_type[/code]. If [code]name[/"
"code] is already taken, this method fails."
msgstr ""
-"如果主题具有 [code]node_type[/code],则将 [code]old_name[/code] 处的 "
+"如果主题具有 [code]theme_type[/code],则将 [code]old_name[/code] 处的 "
"[code]data_type[/code] 的主题项重命名为 [code]name[/code]。如果 [code]name[/"
"code] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
msgid ""
"Sets the theme's [Color] to [code]color[/code] at [code]name[/code] in "
-"[code]node_type[/code].\n"
-"Creates [code]node_type[/code] if the theme does not have it."
+"[code]theme_type[/code].\n"
+"Creates [code]theme_type[/code] if the theme does not have it."
msgstr ""
-"在 [code]node_type[/code] 中的 [code]name[/code] 处,设置主题的[Color]为"
-"[code]color[/code]。\n"
-"如果主题没有[code]node_type[/code],则创建该节点。"
+"在主题的 [code]theme_type[/code] 中,将名为 [code]name[/code] 的 [Color] 设置"
+"为 [code]color[/code]。\n"
+"如果该主题没有 [code]theme_type[/code],会创建该主题类型。"
#: doc/classes/Theme.xml
msgid ""
"Sets the theme's constant to [code]constant[/code] at [code]name[/code] in "
-"[code]node_type[/code].\n"
-"Creates [code]node_type[/code] if the theme does not have it."
+"[code]theme_type[/code].\n"
+"Creates [code]theme_type[/code] if the theme does not have it."
msgstr ""
-"在 [code]node_type[/code] 中的 [code]name[/code] 处,将主题的常量设置为"
+"在主题的 [code]theme_type[/code] 中,将名为 [code]name[/code] 的常量设置为 "
"[code]constant[/code]。\n"
-"如果主题没有,则创建[code]node_type[/code]。"
+"如果该主题没有 [code]theme_type[/code],会创建该主题类型。"
#: doc/classes/Theme.xml
msgid ""
"Sets the theme's [Font] to [code]font[/code] at [code]name[/code] in "
-"[code]node_type[/code].\n"
-"Creates [code]node_type[/code] if the theme does not have it."
+"[code]theme_type[/code].\n"
+"Creates [code]theme_type[/code] if the theme does not have it."
msgstr ""
-"在 [code]node_type[/code] 中的 [code]name[/code] 处将主题的 [Font] 设置为"
-"[code]font[/code]。\n"
-"如果主题没有[code]node_type[/code],则创建该节点。"
+"在主题的 [code]theme_type[/code] 中,将名为 [code]name[/code] 的 [Font] 设置"
+"为 [code]font[/code]。\n"
+"如果该主题没有 [code]theme_type[/code],会创建该主题类型。"
#: doc/classes/Theme.xml
msgid ""
"Sets the theme's icon [Texture] to [code]texture[/code] at [code]name[/code] "
-"in [code]node_type[/code].\n"
-"Creates [code]node_type[/code] if the theme does not have it."
+"in [code]theme_type[/code].\n"
+"Creates [code]theme_type[/code] if the theme does not have it."
msgstr ""
-"在 [code]node_type[/code] 中的 [code]name[/code] 处设置主题的图标[Texture]为"
-"[code]texture[/code]。\n"
-"如果主题没有[code]node_type[/code],则创建该节点。"
+"在主题的 [code]theme_type[/code] 中,将名为 [code]name[/code] 的图标 "
+"[Texture] 设置为 [code]texture[/code]。\n"
+"如果该主题没有 [code]theme_type[/code],会创建该主题类型。"
#: doc/classes/Theme.xml
msgid ""
"Sets theme's [StyleBox] to [code]stylebox[/code] at [code]name[/code] in "
-"[code]node_type[/code].\n"
-"Creates [code]node_type[/code] if the theme does not have it."
+"[code]theme_type[/code].\n"
+"Creates [code]theme_type[/code] if the theme does not have it."
msgstr ""
-"将主题的[StyleBox]设置为[code]stylebox[/code],在[code]node_type[/code]的"
-"[code]name[/code]处。\n"
-"如果主题没有[code]node_type[/code],则创建该节点。"
+"在主题的 [code]theme_type[/code] 中,将名为 [code]name[/code] 的 [StyleBox] "
+"设置为 [code]stylebox[/code]。\n"
+"如果该主题没有 [code]theme_type[/code],会创建该主题类型。"
#: doc/classes/Theme.xml
msgid ""
"Sets the theme item of [code]data_type[/code] to [code]value[/code] at "
-"[code]name[/code] in [code]node_type[/code].\n"
+"[code]name[/code] in [code]theme_type[/code].\n"
"Does nothing if the [code]value[/code] type does not match [code]data_type[/"
"code].\n"
-"Creates [code]node_type[/code] if the theme does not have it."
+"Creates [code]theme_type[/code] if the theme does not have it."
msgstr ""
-"将[code]data_type[/code]的主题项目设置为[code]value[/code],在"
-"[code]node_type[/code]中的[code]name[/code]。\n"
-"如果[code]value[/code]类型与[code]data_type[/code]不匹配,则不做任何处理。\n"
-"如果主题没有[code]node_type[/code],则创建该类型。"
+"在主题的 [code]theme_type[/code] 中,将名为 [code]name[/code] 的 "
+"[code]data_type[/code] 类型的主题项目设置为 [code]value[/code]。\n"
+"如果 [code]value[/code]类型与 [code]data_type[/code]不匹配,则不做任何处"
+"理。\n"
+"如果该主题没有 [code]theme_type[/code],会创建该主题类型。"
#: doc/classes/Theme.xml
msgid ""
@@ -78335,14 +78844,14 @@ msgid ""
"Returns a [Vector2] array with the positions of all cells containing a tile "
"from the tileset (i.e. a tile index different from [code]-1[/code])."
msgstr ""
-"返回一个[Vector2]数组,其中包含图块集中所有单元格的位置(图块索引非[code]-1[/"
-"code])。"
+"返回一个 [Vector2] 数组,其中包含图块集中所有单元格的位置(图块索引非 "
+"[code]-1[/code])。"
#: doc/classes/TileMap.xml
msgid ""
"Returns an array of all cells with the given tile index specified in "
"[code]id[/code]."
-msgstr "返回所有具有[code]id[/code]中指定的图块索引的单元格的数组。"
+msgstr "返回所有具有 [code]id[/code] 中指定的图块索引的单元格的数组。"
#: doc/classes/TileMap.xml
msgid "Returns a rectangle enclosing the used (non-empty) tiles of the map."
@@ -78374,7 +78883,7 @@ msgid ""
"Optionally, the tilemap's half offset can be ignored."
msgstr ""
"返回与指定的图块地图(基于网格)坐标相对应的单元格左上角的局部坐标。\n"
-"要获得全局坐标,请使用[method Node2D.to_global]。\n"
+"要获得全局位置,请使用 [method Node2D.to_global]:\n"
"[codeblock]\n"
"var local_position = my_tilemap.map_to_world(map_position)\n"
"var global_position = my_tilemap.to_global(local_position)\n"
@@ -78438,17 +78947,18 @@ msgstr ""
#: doc/classes/TileMap.xml
msgid "Sets the given collision layer bit."
-msgstr "设置指定碰撞层bit位。"
+msgstr "设置指定碰撞层比特位。"
#: doc/classes/TileMap.xml
msgid "Sets the given collision mask bit."
-msgstr "设置指定碰撞遮罩bit位。"
+msgstr "设置指定碰撞遮罩比特位。"
#: doc/classes/TileMap.xml
msgid ""
"Applies autotiling rules to the cell (and its adjacent cells) referenced by "
"its grid-based X and Y coordinates."
-msgstr "对基于网格的X和Y坐标所引用的单元格,及其相邻单元格,应用自动平移规则。"
+msgstr ""
+"对基于网格的 X 和 Y 坐标所引用的单元格(及其相邻单元格)应用自动平移规则。"
#: doc/classes/TileMap.xml
msgid ""
@@ -78457,8 +78967,8 @@ msgid ""
"Calling with invalid (or missing) parameters applies autotiling rules for "
"the entire tilemap."
msgstr ""
-"对指定区域内的单元格应用自动平移规则,由基于网格的X和Y坐标指定。\n"
-"用无效的或缺失的参数调用时,自动平铺规则应用于整个图块地图。"
+"对指定区域内的单元格应用自动平移规则(由基于网格的 X 和 Y 坐标指定)。\n"
+"用无效(或缺失)的参数调用时,自动平铺规则应用于整个图块地图。"
#: doc/classes/TileMap.xml
msgid ""
@@ -78506,15 +79016,15 @@ msgstr "依次排列的图块的偏移量。可能的取值见 [enum HalfOffset]
msgid ""
"The TileMap's quadrant size. Optimizes drawing by batching, using chunks of "
"this size."
-msgstr "图块地图的象限大小。使用这个尺寸的图块,通过批处理优化绘制。"
+msgstr "该 TileMap 的象限大小。会使用这个大小的区块对绘制进行批处理优化。"
#: doc/classes/TileMap.xml
msgid "The TileMap's cell size."
-msgstr "图块地图的单元大小。"
+msgstr "该 TileMap 的单元格大小。"
#: doc/classes/TileMap.xml
msgid "Position for tile origin. See [enum TileOrigin] for possible values."
-msgstr "图块原点的坐标。可能的取值见 [enum TileOrigin]。"
+msgstr "图块原点的位置。可能的取值见 [enum TileOrigin]。"
#: doc/classes/TileMap.xml
msgid ""
@@ -79678,7 +80188,7 @@ msgid ""
"[b]Note:[/b] This is a \"pass-by\" (not \"bypass\") press mode."
msgstr ""
"如果为 [code]true[/code],只要按下的手指进出按钮,就会发出 [signal pressed] "
-"和[signal released] ]信号,即使压力开始于按钮的有效区域之外。\n"
+"和 [signal released] 信号,即使压力开始于按钮的有效区域之外。\n"
"[b]注意:[/b]这是一种“pass-by”的按压模式 ,而不是“bypass”。"
#: doc/classes/TouchScreenButton.xml
@@ -81989,21 +82499,25 @@ msgid "Makes subsequent actions with the same name be merged into one."
msgstr "使具有相同名称的后续动作合并为一个。"
#: modules/upnp/doc_classes/UPNP.xml
-msgid "UPNP network functions."
-msgstr "UPNP 网络功能。"
+msgid ""
+"Universal Plug and Play (UPnP) functions for network device discovery, "
+"querying and port forwarding."
+msgstr "通用即插即用(UPnP)功能,用于网络设备的发现、查询及端口映射。"
#: modules/upnp/doc_classes/UPNP.xml
msgid ""
-"Provides UPNP functionality to discover [UPNPDevice]s on the local network "
-"and execute commands on them, like managing port mappings (port forwarding) "
-"and querying the local and remote network IP address. Note that methods on "
-"this class are synchronous and block the calling thread.\n"
-"To forward a specific port:\n"
+"This class can be used to discover compatible [UPNPDevice]s on the local "
+"network and execute commands on them, like managing port mappings (for port "
+"forwarding/NAT traversal) and querying the local and remote network IP "
+"address. Note that methods on this class are synchronous and block the "
+"calling thread.\n"
+"To forward a specific port (here [code]7777[/code], note both [method "
+"discover] and [method add_port_mapping] can return errors that should be "
+"checked):\n"
"[codeblock]\n"
-"const PORT = 7777\n"
"var upnp = UPNP.new()\n"
-"upnp.discover(2000, 2, \"InternetGatewayDevice\")\n"
-"upnp.add_port_mapping(port)\n"
+"upnp.discover()\n"
+"upnp.add_port_mapping(7777)\n"
"[/codeblock]\n"
"To close a specific port (e.g. after you have finished using it):\n"
"[codeblock]\n"
@@ -82016,7 +82530,7 @@ msgid ""
"or failure).\n"
"signal upnp_completed(error)\n"
"\n"
-"# Replace this with your own server port number between 1025 and 65535.\n"
+"# Replace this with your own server port number between 1024 and 65535.\n"
"const SERVER_PORT = 3928\n"
"var thread = null\n"
"\n"
@@ -82045,34 +82559,66 @@ msgid ""
" # Wait for thread finish here to handle game exit while the thread is "
"running.\n"
" thread.wait_to_finish()\n"
-"[/codeblock]"
-msgstr ""
-"提供 UPNP 功能来发现本地网络上的 [UPNPDevice],并对它们执行指令,如管理端口映"
-"射(端口转发)和查询本地和远程网络 IP 地址。注意,这个类的方法是同步的,会阻"
-"塞调用线程。\n"
-"要转发一个特定的端口:\n"
+"[/codeblock]\n"
+"[b]Terminology:[/b] In the context of UPnP networking, \"gateway\" (or "
+"\"internet gateway device\", short IGD) refers to network devices that allow "
+"computers in the local network to access the internet (\"wide area "
+"network\", WAN). These gateways are often also called \"routers\".\n"
+"[b]Pitfalls:[/b]\n"
+"- As explained above, these calls are blocking and shouldn't be run on the "
+"main thread, especially as they can block for multiple seconds at a time. "
+"Use threading!\n"
+"- Networking is physical and messy. Packets get lost in transit or get "
+"filtered, addresses, free ports and assigned mappings change, and devices "
+"may leave or join the network at any time. Be mindful of this, be diligent "
+"when checking and handling errors, and handle these gracefully if you can: "
+"add clear error UI, timeouts and re-try handling.\n"
+"- Port mappings may change (and be removed) at any time, and the remote/"
+"external IP address of the gateway can change likewise. You should consider "
+"re-querying the external IP and try to update/refresh the port mapping "
+"periodically (for example, every 5 minutes and on networking failures).\n"
+"- Not all devices support UPnP, and some users disable UPnP support. You "
+"need to handle this (e.g. documenting and requiring the user to manually "
+"forward ports, or adding alternative methods of NAT traversal, like a relay/"
+"mirror server, or NAT hole punching, STUN/TURN, etc.).\n"
+"- Consider what happens on mapping conflicts. Maybe multiple users on the "
+"same network would like to play your game at the same time, or maybe another "
+"application uses the same port. Make the port configurable, and optimally "
+"choose a port automatically (re-trying with a different port on failure).\n"
+"[b]Further reading:[/b] If you want to know more about UPnP (and the "
+"Internet Gateway Device (IGD) and Port Control Protocol (PCP) specifically), "
+"[url=https://en.wikipedia.org/wiki/Universal_Plug_and_Play]Wikipedia[/url] "
+"is a good first stop, the specification can be found at the [url=https://"
+"openconnectivity.org/developer/specifications/upnp-resources/upnp/]Open "
+"Connectivity Foundation[/url] and Godot's implementation is based on the "
+"[url=https://github.com/miniupnp/miniupnp]MiniUPnP client[/url]."
+msgstr ""
+"这个类可用于在本地网络中发现兼容的 [UPNPDevice] 并在这些设备上执行命令,如管"
+"理端口映射(用于端口转发/NAT 穿透)和查询本地及远程网络 IP 地址。请注意,这个"
+"类的方法都是同步的,会阻塞调用线程。\n"
+"要转发指定端口(此处为 [code]7777[/code],请注意 [method discover] 和 "
+"[method add_port_mapping] 都可能返回错误,应进行检查):\n"
"[codeblock]\n"
-"const PORT = 7777\n"
"var upnp = UPNP.new()\n"
-"upnp.discover(2000, 2, \"InternetGatewayDevice\")\n"
-"upnp.add_port_mapping(port)\n"
+"upnp.discover()\n"
+"upnp.add_port_mapping(7777)\n"
"[/codeblock]\n"
-"要关闭一个特定的端口(例如,在你使用完它之后):\n"
+"要关闭指定端口(例如结束使用后):\n"
"[codeblock]\n"
"upnp.delete_port_mapping(port)\n"
"[/codeblock]\n"
-"[b]注意:[/b]UPnP 发现会阻塞当前线程。要在不阻塞主线程的情况下执行发现,可以"
-"像这样使用 [Thread]:\n"
+"[b]注意:[/b]UPnP 发现会阻塞当前线程。要在不阻塞主线程的前提下执行发现,请像"
+"这样使用 [Thread]:\n"
"[codeblock]\n"
-"# 当完成 UPnP 端口映射设置时发出(无论成功或失败)。\n"
+"# UPnP 端口映射建立完成时发出(无论成败)。\n"
"signal upnp_completed(error)\n"
"\n"
-"# 将其替换为您自己的服务器端口号(介于 1025 和 65535之间)。\n"
+"# 请将其替换为你自己的服务器端口号,在 1024 和 65535 之间。\n"
"const SERVER_PORT = 3928\n"
"var thread = null\n"
"\n"
"func _upnp_setup(server_port):\n"
-" # UPNP 查询需要一些时间。\n"
+" # UPNP 查询比较耗时。\n"
" var upnp = UPNP.new()\n"
" var err = upnp.discover()\n"
"\n"
@@ -82093,9 +82639,34 @@ msgstr ""
" thread.start(self, \"_upnp_setup\", SERVER_PORT)\n"
"\n"
"func _exit_tree():\n"
-" # 当线程正在运行时,在这里等待线程结束来处理游戏退出。\n"
+" # 游戏退出但线程还在运行时,在此处等待线程完成。\n"
" thread.wait_to_finish()\n"
-"[/codeblock]"
+"[/codeblock]\n"
+"[b]术语:[/b]UPnP 网络中,“网关”(gateway,或称“互联网网关设备”,internet "
+"gateway device,简称 IGD)指的是在局域网中让计算机能够访问互联网(“广域网”,"
+"wide area network,WAN)的网络设备。这些网关经常也叫做“路由器”。\n"
+"[b]陷阱:[/b]\n"
+"- 前文解释过,这些调用都是阻塞的,不应该在主线程上执行,一次就能阻塞上很多"
+"秒。用用线程吧!\n"
+"- 网络是实打实的混乱。数据包可能会在传输过程中丢失或者被过滤掉,地址、空闲端"
+"口、端口映射有可能发生变化,设备可以随时离开或者加入网络。请考虑周全,老老实"
+"实地检查错误并进行处理,处理错误时请尽量友好:添加简洁的报错 UI、超时处理、重"
+"试机制。\n"
+"- 端口映射是随时会变的(也可以被删除),网关的远程/外部 IP 也可能发生改变。你"
+"应该考虑定期重新查询外部 IP、尝试更新/刷新端口映射(例如每隔 5 分钟或者在发生"
+"网络错误时执行)。\n"
+"- 并不是所有的设备都支持 UPnP,有些用户还会禁用 UPnP 支持。你需要处理这种情况"
+"(例如编写文档,要求用户手动进行端口映射,或者加入接力/镜像服务器、NAT 打洞、"
+"STUN/TURN 等 NAT 穿透的备用方案)。\n"
+"- 请考虑映射冲突时该怎么办。可能在同一个网络上同时有多个用户想要来玩你的游"
+"戏,或者有其他应用程序用了一样的端口。请把端口号做成可配置的,最好能够自动选"
+"择(失败时重试其他端口)。\n"
+"[b]拓展阅读:[/b]如果你想了解更多关于 UPnP(尤其是 Internet Gateway Device"
+"(IGD)和 Port Control Protocol(PCP)),可以首先查看[url=https://en."
+"wikipedia.org/wiki/Universal_Plug_and_Play]维基百科[/url],技术规范可以在 "
+"[url=https://openconnectivity.org/developer/specifications/upnp-resources/"
+"upnp/]Open Connectivity 基金会[/url]找到,Godot 的实现基于的是 [url=https://"
+"github.com/miniupnp/miniupnp]MiniUPnP 客户端[/url]。"
#: modules/upnp/doc_classes/UPNP.xml
msgid "Adds the given [UPNPDevice] to the list of discovered devices."
@@ -82104,36 +82675,58 @@ msgstr "将给定的 [UPNPDevice] 添加到已发现设备的列表中。"
#: modules/upnp/doc_classes/UPNP.xml
msgid ""
"Adds a mapping to forward the external [code]port[/code] (between 1 and "
-"65535) on the default gateway (see [method get_gateway]) to the "
-"[code]internal_port[/code] on the local machine for the given protocol "
-"[code]proto[/code] (either [code]TCP[/code] or [code]UDP[/code], with UDP "
-"being the default). If a port mapping for the given port and protocol "
-"combination already exists on that gateway device, this method tries to "
-"overwrite it. If that is not desired, you can retrieve the gateway manually "
-"with [method get_gateway] and call [method add_port_mapping] on it, if any.\n"
+"65535, although recommended to use port 1024 or above) on the default "
+"gateway (see [method get_gateway]) to the [code]internal_port[/code] on the "
+"local machine for the given protocol [code]proto[/code] (either [code]TCP[/"
+"code] or [code]UDP[/code], with UDP being the default). If a port mapping "
+"for the given port and protocol combination already exists on that gateway "
+"device, this method tries to overwrite it. If that is not desired, you can "
+"retrieve the gateway manually with [method get_gateway] and call [method "
+"add_port_mapping] on it, if any. Note that forwarding a well-known port "
+"(below 1024) with UPnP may fail depending on the device.\n"
+"Depending on the gateway device, if a mapping for that port already exists, "
+"it will either be updated or it will refuse this command due to that "
+"conflict, especially if the existing mapping for that port wasn't created "
+"via UPnP or points to a different network address (or device) than this "
+"one.\n"
"If [code]internal_port[/code] is [code]0[/code] (the default), the same port "
"number is used for both the external and the internal port (the [code]port[/"
"code] value).\n"
-"The description ([code]desc[/code]) is shown in some router UIs and can be "
-"used to point out which application added the mapping. The mapping's lease "
-"duration can be limited by specifying a [code]duration[/code] (in seconds). "
-"However, some routers are incompatible with one or both of these, so use "
-"with caution and add fallback logic in case of errors to retry without them "
-"if in doubt.\n"
+"The description ([code]desc[/code]) is shown in some routers management UIs "
+"and can be used to point out which application added the mapping.\n"
+"The mapping's lease [code]duration[/code] can be limited by specifying a "
+"duration in seconds. The default of [code]0[/code] means no duration, i.e. a "
+"permanent lease and notably some devices only support these permanent "
+"leases. Note that whether permanent or not, this is only a request and the "
+"gateway may still decide at any point to remove the mapping (which usually "
+"happens on a reboot of the gateway, when its external IP address changes, or "
+"on some models when it detects a port mapping has become inactive, i.e. had "
+"no traffic for multiple minutes). If not [code]0[/code] (permanent), the "
+"allowed range according to spec is between [code]120[/code] (2 minutes) and "
+"[code]86400[/code] seconds (24 hours).\n"
"See [enum UPNPResult] for possible return values."
msgstr ""
-"添加一个映射,将默认网关上的外部[code]port[/code],介于1和65535之间,转发到本"
-"地机器上的[code]internal_port[/code],用于指定协议[code]proto[/code],即"
-"[code]TCP[/code]或[code]UDP[/code],默认为UDP。如果该网关设备上已经存在给定端"
-"口和协议组合的端口映射,该方法将尝试覆盖它。如果不希望这样,你可以用[method "
-"get_gateway]手动检索该网关,如果有的话,就调用[method add_port_mapping]。\n"
-"如果[code]internal_port[/code]是[code]0[/code](默认值),外部和内部端口都使"
-"用相同的端口号([code]port[/code]值)。\n"
-"描述([code]desc[/code])显示在一些路由器的UI中,可以用来指出是哪个应用添加了"
-"映射。可以通过指定[code]duration[/code](单位:秒)来限制映射的租用期限。然"
-"而,有些路由器与其中的个别不兼容,所以要谨慎使用,并在出错时添加回退逻辑,如"
-"果有疑问,可以在没有它们的情况下重试。\n"
-"参阅[method get_gateway]。参阅[enum UPNPResult],了解可能的返回值。"
+"添加映射,针对给定的协议 [code]proto[/code]([code]TCP[/code] 或 [code]UDP[/"
+"code],默认为 UDP),将默认网关(见 [method get_gateway])上的外部端口 "
+"[code]port[/code](在 1 到 65535 之间,不过推荐使用 1024 以上的端口)映射到本"
+"机上的内部端口 [code]internal_port[/code]。如果该网关上已经存在给定的端口与协"
+"议的组合,这个方法会尝试进行覆盖。如果不希望如此,你可以使用 [method "
+"get_gateway] 手动获取网关,获取到后调用其 [method add_port_mapping] 方法。请"
+"注意,使用 UPnP 转发公认端口(1024 以下)在有些设备上可能会失败。\n"
+"如果端口的映射已存在,有些网关设备可能会对其进行更新,有些则会因为冲突而拒绝"
+"这个命令,尤其当现有端口映射不是由 UPnP 创建的,或者指向的是别的网络地址(或"
+"设备)的时候。\n"
+"如果 [code]internal_port[/code] 为 [code]0[/code](默认),表示内外部端口相同"
+"(使用 [code]port[/code] 的值)。\n"
+"描述([code]desc[/code])会显示在一些路由器的管理界面上,可以用来识别添加映射"
+"的程序。\n"
+"映射的租赁时长 [code]duration[/code] 可以通过指定秒数来限定。默认的 [code]0[/"
+"code] 表示没有时长,即永久租赁,有些设备只支持这种永久租赁。请注意,无论是否"
+"永久都只是一种请求,网关仍然可以随时移除映射(通常发生在重启网关后外部 IP 地"
+"址发生变化时,也有些型号会在映射不再活动,即若干分钟无流量时移除)。如果非 "
+"[code]0[/code](永久),技术规格所允许的范围是 [code]120[/code](2 分钟)到 "
+"[code]86400[/code] 秒(24 小时)。\n"
+"可能的返回值见 [enum UPNPResult]。"
#: modules/upnp/doc_classes/UPNP.xml
msgid "Clears the list of discovered devices."
@@ -82144,13 +82737,16 @@ msgid ""
"Deletes the port mapping for the given port and protocol combination on the "
"default gateway (see [method get_gateway]) if one exists. [code]port[/code] "
"must be a valid port between 1 and 65535, [code]proto[/code] can be either "
-"[code]TCP[/code] or [code]UDP[/code]. See [enum UPNPResult] for possible "
-"return values."
+"[code]TCP[/code] or [code]UDP[/code]. May be refused for mappings pointing "
+"to addresses other than this one, for well-known ports (below 1024), or for "
+"mappings not added via UPnP. See [enum UPNPResult] for possible return "
+"values."
msgstr ""
-"如果默认网关上存在给定的端口和协议组合的端口映射(见 [method get_gateway]),"
+"如果默认网关上(见 [method get_gateway])存在给定的端口和协议组合的端口映射,"
"则将其删除。[code]port[/code] 必须是 1 到 65535 之间的有效端口,[code]proto[/"
-"code] 可以是 [code]TCP[/code] 或 [code]UDP[/code]。可能的返回值见 [enum "
-"UPNPResult]。"
+"code] 可以是 [code]TCP[/code] 或 [code]UDP[/code]。拒绝的原因可能是映射指向的"
+"不是本机地址、使用的是公认端口(1024 以下)、或者映射不是由 UPnP 添加的。可能"
+"的返回值见 [enum UPNPResult]。"
#: modules/upnp/doc_classes/UPNP.xml
msgid ""
@@ -82371,20 +82967,20 @@ msgid "Unknown error."
msgstr "未知错误。"
#: modules/upnp/doc_classes/UPNPDevice.xml
-msgid "UPNP device."
-msgstr "UPNP 设备。"
+msgid "Universal Plug and Play (UPnP) device."
+msgstr "通用即插即用(UPnP)设备。"
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid ""
-"UPNP device. See [UPNP] for UPNP discovery and utility functions. Provides "
-"low-level access to UPNP control commands. Allows to manage port mappings "
-"(port forwarding) and to query network information of the device (like local "
-"and external IP address and status). Note that methods on this class are "
-"synchronous and block the calling thread."
+"Universal Plug and Play (UPnP) device. See [UPNP] for UPnP discovery and "
+"utility functions. Provides low-level access to UPNP control commands. "
+"Allows to manage port mappings (port forwarding) and to query network "
+"information of the device (like local and external IP address and status). "
+"Note that methods on this class are synchronous and block the calling thread."
msgstr ""
-"UPNP 设备。参阅 [UPNP] 了解 UPNP 发现和实用功能。提供对 UPNP 控制命令的低层访"
-"问。允许管理端口映射(端口转发)和查询设备的网络信息,如本地和外部IP地址和状"
-"态。请注意,这个类的方法是同步的,会阻塞调用线程。"
+"通用即插即用(UPnP)设备。UPnP 发现及工具函数见 [UPNP]。提供对 UPNP 控制命令"
+"的低层访问。允许管理端口映射(端口转发)和查询设备的网络信息(如本地和外部 "
+"IP 地址和状态)。请注意,这个类的方法是同步的,会阻塞调用线程。"
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid ""
@@ -82468,7 +83064,7 @@ msgstr "未知设备。"
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Invalid control."
-msgstr "无效控件。"
+msgstr "无效控制。"
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Memory allocation error."
@@ -82765,9 +83361,9 @@ msgid ""
"result at position [code]weight[/code]. [code]weight[/code] is on the range "
"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-"用[code]pre_a[/code]和[code]post_b[/code]作为句柄,在这个向量和[code]b[/code]"
-"之间进行三次插值,并在[code]weight[/code]位置返回结果。[code]weight[/code]的"
-"范围是0.0 到 1.0,表示插值的量。"
+"用 [code]pre_a[/code] 和 [code]post_b[/code] 作为控制柄,在这个向量和 "
+"[code]b[/code] 之间进行三次插值,并在 [code]weight[/code] 位置返回结果。"
+"[code]weight[/code] 的范围是 0.0 到 1.0,表示插值的量。"
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -82891,8 +83487,8 @@ msgid ""
"Returns a vector composed of the [method @GDScript.fposmod] of this vector's "
"components and [code]modv[/code]'s components."
msgstr ""
-"返回一个由这个向量的[code]modv[/code]分量和[method @GDScript.fposmod]分量组成"
-"的向量。"
+"返回一个由这个向量的 [code]modv[/code] 分量和 [method @GDScript.fposmod] 分量"
+"组成的向量。"
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid "Returns this vector projected onto the vector [code]b[/code]."
@@ -82958,7 +83554,7 @@ msgstr ""
msgid ""
"Returns a perpendicular vector rotated 90 degrees counter-clockwise compared "
"to the original, with the same length."
-msgstr "返回一个与原来相比逆时针旋转90度的垂直向量,长度不变。"
+msgstr "返回一个与原来相比逆时针旋转 90 度的垂直向量,长度不变。"
#: doc/classes/Vector2.xml doc/classes/Vector3.xml
msgid ""
@@ -83046,9 +83642,9 @@ msgid ""
"result at position [code]weight[/code]. [code]weight[/code] is on the range "
"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
-"用 [code]pre_a[/code] 和 [code]post_b[/code] 作为句柄,在这个向量和 [code]b[/"
-"code] 之间进行三次插值,并在 [code]weight[/code] 位置返回结果。[code]weight[/"
-"code] 的范围是 0.0 到 1.0,表示插值的量。"
+"用 [code]pre_a[/code] 和 [code]post_b[/code] 作为控制柄,在这个向量和 "
+"[code]b[/code] 之间进行三次插值,并在 [code]weight[/code] 位置返回结果。"
+"[code]weight[/code] 的范围是 0.0 到 1.0,表示插值的量。"
#: doc/classes/Vector3.xml
msgid "Returns the distance between this vector and [code]b[/code]."
@@ -83069,11 +83665,11 @@ msgid ""
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
"返回此向量与 [code]b[/code] 的点积。这可以用来比较两个向量之间的角度。例如,"
-"这可以用来确定一个敌人是否正面对玩家。\n"
-"对于直角 90 度,点积将是 [code]0[/code],对于窄于 90 度的角度,点积大于 0,对"
-"于宽于 90 度的角度,点积小于 0。\n"
-"当使用归一化单位向量,向量朝向相反方向时,结果总是在 [code]-1.0[/code](180 "
-"度角)和 [code]1.0[/code](0 度角)之间,当向量对齐。\n"
+"这可以用来确定敌人是否面对玩家。\n"
+"直角(90 度)的点积是 [code]0[/code],夹角小于 90 度点积大于 0,夹角大于 90 "
+"度点积小于 0。\n"
+"使用单位(归一化)向量时,结果总是在表示方向相反的 [code]-1.0[/code](180 度"
+"角)和表示方向相同的 [code]1.0[/code](0 度角)之间。\n"
"[b]注意:[/b][code]a.dot(b)[/code] 与 [code]b.dot(a)[/code] 等价。"
#: doc/classes/Vector3.xml
@@ -83099,8 +83695,8 @@ msgid ""
"constants. If all components are equal, this method returns [constant "
"AXIS_X]."
msgstr ""
-"返回向量的最大值的轴。参阅 [code]AXIS_*[/code] 常量。如果所有分量都相等,该方"
-"法返回 [constant AXIS_X]。"
+"返回该向量中值最大的轴。见 [code]AXIS_*[/code] 常量。如果所有分量都相等,则该"
+"方法返回 [constant AXIS_X]。"
#: doc/classes/Vector3.xml
msgid ""
@@ -83108,8 +83704,8 @@ msgid ""
"constants. If all components are equal, this method returns [constant "
"AXIS_Z]."
msgstr ""
-"返回矢量的最小值的轴。参阅 [code]AXIS_*[/code] 常量。如果所有分量都相等,本方"
-"法返回 [constant AXIS_Z]。"
+"返回该向量中值最小的轴。见 [code]AXIS_*[/code] 常量。如果所有分量都相等,则该"
+"方法返回 [constant AXIS_Z]。"
#: doc/classes/Vector3.xml
msgid "Returns the outer product with [code]b[/code]."
@@ -83134,8 +83730,8 @@ msgid ""
"clockwise direction when viewed from the side specified by the [code]axis[/"
"code]."
msgstr ""
-"返回给定向量的带符号的角度,单位是弧度。当从[code]axis[/code]指定的一侧看,该"
-"角度的符号在逆时针方向是正的,在顺时针方向是负的。"
+"返回给定向量的带符号的角度,单位是弧度。当从 [code]axis[/code] 指定的一侧看,"
+"该角度的符号在逆时针方向是正的,在顺时针方向是负的。"
#: doc/classes/Vector3.xml
msgid ""
@@ -83246,8 +83842,8 @@ msgid ""
"value in the 25 - 30 range for hard braking."
msgstr ""
"通过施加一个制动力使车辆减速。只有当车轮接触到表面时,车辆才会减速。你需要施"
-"加多少力来使你的车辆充分减速,取决于车辆的[member RigidBody.mass]。对于一个质"
-"量设置为1000的车辆,尝试在25-30的范围内进行硬制动。"
+"加多少力来使你的车辆充分减速,取决于车辆的 [member RigidBody.mass]。对于一个"
+"质量设置为 1000 的车辆,尝试在 25 到 30 的范围内进行硬制动。"
#: doc/classes/VehicleBody.xml
msgid ""
@@ -83263,8 +83859,8 @@ msgid ""
msgstr ""
"通过施加一个引擎力来加速车辆。只有当 [member VehicleWheel.use_as_traction] 设"
"置为 [code]true[/code] 并与表面接触的车轮才会加速。车辆的 [member RigidBody."
-"mass] 对车辆的加速度有影响。对于一个质量设置为 1000 的车辆,可以尝试在 25-50 "
-"的范围内选择加速度的值。\n"
+"mass] 对车辆的加速度有影响。对于一个质量设置为 1000 的车辆,可以尝试在 25 到 "
+"50 的范围内选择加速度的值。\n"
"[b]注意:[/b]模拟不考虑齿轮的影响,如果你想模拟齿轮,将需要为其添加逻辑。\n"
"负值将导致车辆倒车。"
@@ -83275,8 +83871,8 @@ msgid ""
"VehicleWheel.use_as_steering] set to [code]true[/code] will automatically be "
"rotated."
msgstr ""
-"车辆的转向角。将此设置为非零值将导致车辆在移动时转向。将[member VehicleWheel."
-"use_as_steering]设置为 [code]true[/code]的车轮会自动旋转。"
+"车辆的转向角。将此设置为非零值将导致车辆在移动时转向。将 [member "
+"VehicleWheel.use_as_steering] 设置为 [code]true[/code] 的车轮会自动旋转。"
#: doc/classes/VehicleWheel.xml
msgid "Physics object that simulates the behavior of a wheel."
@@ -83320,8 +83916,9 @@ msgid ""
"skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 "
"means not skidding (the wheel has full grip, e.g. dry asphalt road)."
msgstr ""
-"返回一个介于0.0和1.0之间的值,表示这个轮子是否打滑。0.0表示打滑,即车轮失去了"
-"抓地力,例如冰雪地形,1.0表示不打滑,即车轮有充分的抓地力,例如干燥的沥青路。"
+"返回一个介于 0.0 和 1.0 之间的值,表示这个轮子是否打滑。0.0 表示打滑(车轮失"
+"去了抓地力,例如冰雪地形),1.0 表示不打滑(车轮有充分的抓地力,例如干燥的沥"
+"青路)。"
#: doc/classes/VehicleWheel.xml
msgid "Returns [code]true[/code] if this wheel is in contact with a surface."
@@ -83346,9 +83943,9 @@ msgid ""
"car will keep bouncing as the spring keeps its energy. A good value for this "
"is around 0.3 for a normal car, 0.5 for a race car."
msgstr ""
-"当弹簧被压缩时,应用在弹簧上的阻尼。这个值应该在0.0(无阻尼)和1.0之间。0.0的"
-"值意味着汽车将持续弹跳,因为弹簧将保持其能量。一个好的值是,普通汽车0.3左右,"
-"赛车0.5左右。"
+"当弹簧被压缩时,应用在弹簧上的阻尼。这个值应该在 0.0(无阻尼)和 1.0 之间。"
+"0.0 的值意味着汽车将持续弹跳,因为弹簧将保持其能量。普通汽车 0.3 左右,赛车 "
+"0.5 左右比较好。"
#: doc/classes/VehicleWheel.xml
msgid ""
@@ -83357,9 +83954,9 @@ msgid ""
"higher than the [member damping_compression] property. For a [member "
"damping_compression] value of 0.3, try a relaxation value of 0.5."
msgstr ""
-"放松时施加在弹簧上的阻尼。这个值应该在0.0(无阻尼)和1.0之间。这个值应该总是"
-"比 [member damping_compression] 属性稍高。对于 [member damping_compression] "
-"值0.3,尝试放松值为0.5。"
+"放松时施加在弹簧上的阻尼。这个值应该在 0.0(无阻尼)和 1.0 之间。这个值应该总"
+"是比 [member damping_compression] 属性稍高。对于 [member "
+"damping_compression] 值 0.3,尝试放松值为 0.5。"
#: doc/classes/VehicleWheel.xml
msgid ""
@@ -83390,9 +83987,9 @@ msgid ""
"will not carry the weight of the vehicle. Good results are often obtained by "
"a value that is about 3× to 4× this number."
msgstr ""
-"弹簧所能抵抗的最大力。此值应该高于[VehicleBody]的[member RigidBody.mass]的四"
-"分之一,否则弹簧将无法承载车辆的重量。通常由大约3×到4×这个数字的值,以获得良"
-"好的效果。"
+"弹簧所能抵抗的最大力。此值应该高于 [VehicleBody] 的 [member RigidBody.mass] "
+"的四分之一,否则弹簧将无法承载车辆的重量。通常由大约 3× 到 4× 这个数字的值,"
+"以获得良好的效果。"
#: doc/classes/VehicleWheel.xml
msgid ""
@@ -83400,8 +83997,8 @@ msgid ""
"50 for an off-road car, a value between 50 and 100 for a race car and try "
"something around 200 for something like a Formula 1 car."
msgstr ""
-"这个值定义了悬架的刚度。越野车使用低于50的值,赛车使用50至100的值,像一级方程"
-"式赛车则尝试200左右的值。"
+"这个值定义了悬架的刚度。越野车使用低于 50 的值,赛车使用 50 至 100 的值,像一"
+"级方程式赛车则尝试 200 左右的值。"
#: doc/classes/VehicleWheel.xml
msgid ""
@@ -83442,10 +84039,10 @@ msgid ""
"simulate tire wear.\n"
"It's best to set this to 1.0 when starting out."
msgstr ""
-"这决定了这个轮子的抓地力有多大。它与车轮所接触的表面的摩擦力设置相结合。0.0意"
-"味着没有抓地力,1.0是正常抓地力。对于漂移车的设置,尝试将后轮的抓地力设置得比"
-"前轮略低,或者使用较低的数值来模拟轮胎的磨损。\n"
-"在开始时最好将其设置为1.0。"
+"这决定了这个轮子的抓地力有多大。它与车轮所接触的表面的摩擦力设置相结合。0.0 "
+"意味着没有抓地力,1.0 是正常抓地力。对于漂移车的设置,尝试将后轮的抓地力设置"
+"得比前轮略低,或者使用较低的数值来模拟轮胎的磨损。\n"
+"在开始时最好将其设置为 1.0。"
#: doc/classes/VehicleWheel.xml
msgid "The radius of the wheel in meters."
@@ -83459,9 +84056,9 @@ msgid ""
"will take when bottoming out, then use the rest length to move the wheel "
"down to the position it should be in when the car is in rest."
msgstr ""
-"这是轮子从原点下降的距离,以米为单位。不要把这个设置为0.0,然后把车轮移到位置"
-"上,而是把车轮的原点(Godot中的Gizmo)移到车轮触底时的位置,然后使用剩余长度"
-"将轮子向下移动到汽车静止时它应该所处位置。"
+"这是轮子从原点下降的距离,以米为单位。不要把这个设置为 0.0,然后把车轮移到位"
+"置上,而是把车轮的原点(Godot 中的小工具)移到车轮触底时的位置,然后使用剩余"
+"长度将轮子向下移动到汽车静止时它应该所处位置。"
#: doc/classes/VehicleWheel.xml
msgid ""
@@ -83469,8 +84066,8 @@ msgid ""
"your vehicle will be prone to rolling over, while a value of 0.0 will resist "
"body roll."
msgstr ""
-"这个值会影响车辆的滚动。如果所有车轮都设置为1.0,车辆将容易翻车,而0.0的值将"
-"阻止车身侧倾。"
+"这个值会影响车辆的滚动。如果所有车轮都设置为 1.0,车辆将容易翻车,而 0.0 的值"
+"将阻止车身侧倾。"
#: doc/classes/VFlowContainer.xml
msgid "Vertical flow container."
@@ -83514,21 +84111,21 @@ msgstr ""
#: doc/classes/VideoPlayer.xml
msgid "Returns the current frame as a [Texture]."
-msgstr "将当前帧作为[Texture]返回。"
+msgstr "将当前帧作为 [Texture] 返回。"
#: doc/classes/VideoPlayer.xml
msgid ""
"Returns [code]true[/code] if the video is playing.\n"
"[b]Note:[/b] The video is still considered playing if paused during playback."
msgstr ""
-"如果视频正在播放,返回 [code]true[/code] 。\n"
+"如果视频正在播放,返回 [code]true[/code]。\n"
"[b]注意:[/b]如果在播放过程中暂停,视频仍被认为在播放。"
#: doc/classes/VideoPlayer.xml
msgid ""
"Starts the video playback from the beginning. If the video is paused, this "
"will not unpause the video."
-msgstr "从头开始播放视频。如果视频暂停,这不会取消暂停。"
+msgstr "从头开始播放视频。如果视频处于暂停状态,不会取消暂停。"
#: doc/classes/VideoPlayer.xml
msgid ""
@@ -83536,8 +84133,8 @@ msgid ""
"[b]Note:[/b] Although the stream position will be set to 0, the first frame "
"of the video stream won't become the current frame."
msgstr ""
-"停止视频播放并将视频流位置设置为0。\n"
-"[b]注意:[/b]虽然视频流位置将被设置为0,但视频流的第一帧不会成为当前帧。"
+"停止视频播放并将视频流位置设置为 0。\n"
+"[b]注意:[/b]虽然视频流位置将被设置为 0,但视频流的第一帧不会成为当前帧。"
#: doc/classes/VideoPlayer.xml
msgid "The embedded audio track to play."
@@ -83588,7 +84185,7 @@ msgstr "音频音量为线性值。"
#: doc/classes/VideoPlayer.xml
msgid "Audio volume in dB."
-msgstr "音频音量,单位是dB。"
+msgstr "音频音量,单位是 dB。"
#: doc/classes/VideoPlayer.xml
msgid "Emitted when playback is finished."
@@ -83604,8 +84201,8 @@ msgid ""
"[VideoStream] can all be used as resource types to play back videos in "
"[VideoPlayer]."
msgstr ""
-"所有视频流的资源类型基类。派生自[VideoStream]的类都可以作为资源类型,在"
-"[VideoPlayer]中播放视频。"
+"所有视频流的资源类型基类。派生自 [VideoStream] 的类都可以作为资源类型,在 "
+"[VideoPlayer] 中播放视频。"
#: modules/gdnative/doc_classes/VideoStreamGDNative.xml
msgid "[VideoStream] resource for video formats implemented via GDNative."
@@ -83625,7 +84222,7 @@ msgstr ""
#: modules/gdnative/doc_classes/VideoStreamGDNative.xml
msgid "Returns the video file handled by this [VideoStreamGDNative]."
-msgstr "返回由这个[VideoStreamGDNative]处理的视频文件。"
+msgstr "返回由这个 [VideoStreamGDNative] 处理的视频文件。"
#: modules/gdnative/doc_classes/VideoStreamGDNative.xml
msgid ""
@@ -83633,12 +84230,12 @@ msgid ""
"supported extensions depend on the GDNative plugins used to expose video "
"formats."
msgstr ""
-"设置此[VideoStreamGDNative]资源处理的视频文件。支持的扩展取决于,用于公开视频"
-"格式的GDNative插件。"
+"设置此 [VideoStreamGDNative] 资源处理的视频文件。支持的扩展取决于,用于公开视"
+"频格式的 GDNative 插件。"
#: modules/theora/doc_classes/VideoStreamTheora.xml
msgid "[VideoStream] resource for Ogg Theora videos."
-msgstr "[VideoStream] Ogg Theora视频的资源。"
+msgstr "[VideoStream] Ogg Theora 视频的资源。"
#: modules/theora/doc_classes/VideoStreamTheora.xml
msgid ""
@@ -83771,7 +84368,7 @@ msgid ""
"Returns the first valid [World] for this viewport, searching the [member "
"world] property of itself and any Viewport ancestor."
msgstr ""
-"返回该视窗的首个有效 [World],在它自身及任何 Viewport 祖先节点的 [member "
+"返回该视口的首个有效 [World],在它自身及任何 Viewport 祖先节点的 [member "
"world] 属性中查找。"
#: doc/classes/Viewport.xml
@@ -83779,7 +84376,7 @@ msgid ""
"Returns the first valid [World2D] for this viewport, searching the [member "
"world_2d] property of itself and any Viewport ancestor."
msgstr ""
-"返回该视窗的首个有效 [World2D],在它自身及任何 Viewport 祖先节点的 [member "
+"返回该视口的首个有效 [World2D],在它自身及任何 Viewport 祖先节点的 [member "
"world_2d] 属性中查找。"
#: doc/classes/Viewport.xml
@@ -83834,7 +84431,7 @@ msgstr ""
#: doc/classes/Viewport.xml
msgid "Returns the viewport's RID from the [VisualServer]."
-msgstr "从 [VisualServer] 返回该视窗的 RID。"
+msgstr "从 [VisualServer] 返回该视口的 RID。"
#: doc/classes/Viewport.xml
msgid "Returns the visible rectangle in global screen coordinates."
@@ -83871,8 +84468,7 @@ msgid ""
"Returns [code]true[/code] if the size override is enabled. See [method "
"set_size_override]."
msgstr ""
-"如果启用了尺寸覆盖,则返回 [code]true[/code]。请参阅 [method "
-"set_size_override]。"
+"如果启用了尺寸覆盖,则返回 [code]true[/code]。见 [method set_size_override]。"
#: doc/classes/Viewport.xml
msgid ""
@@ -83907,7 +84503,7 @@ msgid ""
"size. If the size parameter is [code](-1, -1)[/code], it won't update the "
"size."
msgstr ""
-"设置该视窗的尺寸覆盖。如果 [code]enable[/code] 参数是 [code]true[/code],就会"
+"设置该视口的尺寸覆盖。如果 [code]enable[/code] 参数是 [code]true[/code],就会"
"使用覆盖,否则就使用默认尺寸。如果尺寸参数是 [code](-1, -1)[/code],它将不会"
"更新尺寸。"
@@ -83924,15 +84520,15 @@ msgstr ""
#: doc/classes/Viewport.xml
msgid "If [code]true[/code], the viewport will be used in AR/VR process."
-msgstr "如果为 [code]true[/code],该视窗将用于AR/VR进程。"
+msgstr "如果为 [code]true[/code],该视口将用于AR/VR进程。"
#: doc/classes/Viewport.xml
msgid "If [code]true[/code], the viewport will process 2D audio streams."
-msgstr "如果为 [code]true[/code],该视窗将处理 2D 音频流。"
+msgstr "如果为 [code]true[/code],该视口将处理 2D 音频流。"
#: doc/classes/Viewport.xml
msgid "If [code]true[/code], the viewport will process 3D audio streams."
-msgstr "如果为 [code]true[/code],该视窗将处理 3D 音频流。"
+msgstr "如果为 [code]true[/code],该视口将处理 3D 音频流。"
#: doc/classes/Viewport.xml
msgid ""
@@ -83940,16 +84536,22 @@ msgid ""
"positions of all child [CanvasItem]s. This is relative to the global canvas "
"transform of the viewport."
msgstr ""
-"该视窗的画布变换,对改变所有子 [CanvasItem] 的屏幕位置很有用。相对于该视窗的"
+"该视口的画布变换,对改变所有子 [CanvasItem] 的屏幕位置很有用。相对于该视口的"
"全局画布变换。"
#: doc/classes/Viewport.xml
+#, fuzzy
msgid ""
"If [code]true[/code], uses a fast post-processing filter to make banding "
-"significantly less visible. In some cases, debanding may introduce a "
-"slightly noticeable dithering pattern. It's recommended to enable debanding "
-"only when actually needed since the dithering pattern will make lossless-"
-"compressed screenshots larger.\n"
+"significantly less visible in 3D. 2D rendering is [i]not[/i] affected by "
+"debanding unless the [member Environment.background_mode] is [constant "
+"Environment.BG_CANVAS]. In this case, [member usage] must also be set to "
+"[constant USAGE_3D]. See also [member ProjectSettings.rendering/quality/"
+"filters/use_debanding].\n"
+"In some cases, debanding may introduce a slightly noticeable dithering "
+"pattern. It's recommended to enable debanding only when actually needed "
+"since the dithering pattern will make lossless-compressed screenshots "
+"larger.\n"
"[b]Note:[/b] Only available on the GLES3 backend. [member hdr] must also be "
"[code]true[/code] for debanding to be effective."
msgstr ""
@@ -83964,11 +84566,12 @@ msgid "The overlay mode for test rendered geometry in debug purposes."
msgstr "在调试时,用于测试渲染的几何图形的叠加模式。"
#: doc/classes/Viewport.xml
+#, fuzzy
msgid ""
-"If [code]true[/code], the viewport will disable 3D rendering. For actual "
-"disabling use [code]usage[/code]."
+"If [code]true[/code], the viewport will disable 3D rendering. To actually "
+"disable allocation of 3D buffers, set [member usage] instead."
msgstr ""
-"如果为 [code]true[/code],该视窗将禁用 3D 渲染。对于实际禁用,使用 "
+"如果为 [code]true[/code],该视口将禁用 3D 渲染。对于实际禁用,使用 "
"[code]usage[/code]。"
#: doc/classes/Viewport.xml
@@ -83982,24 +84585,24 @@ msgid ""
msgstr ""
"启用快速近似抗锯齿。FXAA 是一种流行的屏幕空间抗锯齿方法,它的速度很快,但会使"
"图像看起来很模糊,特别是在较低的分辨率。在 1440p 和 4K 这样的大分辨率下,它仍"
-"然可以较好工作。一些损失的锐度可以通过启用对比度适应性锐化来恢复,参阅 "
-"[member sharpen_intensity]。"
+"然可以较好工作。一些损失的锐度可以通过启用对比度适应性锐化来恢复(见 [member "
+"sharpen_intensity])。"
#: doc/classes/Viewport.xml
msgid ""
"The global canvas transform of the viewport. The canvas transform is "
"relative to this."
-msgstr "该视窗的全局画布变换。画布变换是相对于这个的。"
+msgstr "该视口的全局画布变换。画布变换是相对于这个的。"
#: doc/classes/Viewport.xml
msgid "If [code]true[/code], the viewport will not receive input events."
-msgstr "如果为 [code]true[/code],该视窗将不接收输入事件。"
+msgstr "如果为 [code]true[/code],该视口将不接收输入事件。"
#: doc/classes/Viewport.xml
msgid ""
"If [code]true[/code], the GUI controls on the viewport will lay pixel "
"perfectly."
-msgstr "如果为 [code]true[/code],该视窗上的 GUI 控件将完美地放置像素。"
+msgstr "如果为 [code]true[/code],该视口上的 GUI 控件将完美地放置像素。"
#: doc/classes/Viewport.xml
msgid ""
@@ -84012,7 +84615,7 @@ msgid ""
"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
-"如果为 [code]true[/code],视窗的渲染将获益于高动态范围算法。高动态范围允许视"
+"如果为 [code]true[/code],视口的渲染将获益于高动态范围算法。高动态范围允许视"
"窗接收 0-1 范围以外的数值。在 Godot 中 HDR 默认使用半精度浮点数(16 位)。要"
"使用全精度浮点数(32 位),请启用 [member use_32_bpc_depth]。\n"
"[b]注意:[/b]需要将 [member usage] 设置为 [constant USAGE_3D] 或 [constant "
@@ -84032,11 +84635,11 @@ msgid ""
"require input in linear color space!"
msgstr ""
"如果为 [code]true[/code],3D 渲染后的结果将不会应用线性到 sRGB 的颜色转换。当"
-"视窗被用作渲染目标时,这点很重要,因为渲染结果会被用作另一个视窗中渲染的 3D "
-"物体的纹理。如果视窗被用来创建不基于颜色的数据,噪声、高度图、采图等,这也很"
-"重要。当视窗被用作 2D 对象的纹理时,或者视窗是你的最终输出时,请不要启用这个"
+"视口被用作渲染目标时,这点很重要,因为渲染结果会被用作另一个视窗中渲染的 3D "
+"物体的纹理。如果视口被用来创建不基于颜色的数据,噪声、高度图、采图等,这也很"
+"重要。当视口被用作 2D 对象的纹理时,或者视口是你的最终输出时,请不要启用这个"
"功能。对于 GLES2 驱动来说,这将把 sRGB 输出转换为线性输出,这应该只用于需要线"
-"性色彩空间输入的VR插件!"
+"性色彩空间输入的 VR 插件!"
#: doc/classes/Viewport.xml
msgid ""
@@ -84044,22 +84647,22 @@ msgid ""
"edges at the cost of significantly worse performance. A value of 4 is best "
"unless targeting very high-end systems."
msgstr ""
-"多重采样抗锯齿模式。一个较高的数字会使边缘更平滑,但代价是性能明显下降。除非"
-"是针对非常高端的系统,否则数值为4是最好的。"
+"多重采样抗锯齿模式。数字越高边缘越平滑,但代价是性能明显下降。除非是针对非常"
+"高端的系统,否则数值为 4 是最好的。"
#: doc/classes/Viewport.xml
msgid ""
"If [code]true[/code], the viewport will use a unique copy of the [World] "
"defined in [member world]."
msgstr ""
-"如果为 [code]true[/code],该视窗将使用 [member world] 中定义的 [World] 的唯一"
+"如果为 [code]true[/code],该视口将使用 [member world] 中定义的 [World] 的唯一"
"副本。"
#: doc/classes/Viewport.xml
msgid ""
"If [code]true[/code], the objects rendered by viewport become subjects of "
"mouse picking process."
-msgstr "如果为 [code]true[/code],该视窗渲染的对象将成为鼠标拾取过程的对象。"
+msgstr "如果为 [code]true[/code],该视口渲染的对象将成为鼠标拾取过程的对象。"
#: doc/classes/Viewport.xml
msgid ""
@@ -84069,22 +84672,22 @@ msgid ""
"Viewport or from [code]SCREEN_TEXTURE[/code] becomes unavailable. For more "
"information see [method VisualServer.viewport_set_render_direct_to_screen]."
msgstr ""
-"如果为 [code]true[/code],会直接将 Viewport 渲染到屏幕上,而不是渲染到根视窗"
-"上。只在 GLES2 中可用。这是一个低级别的优化,在大多数情况下不应该使用。如果使"
-"用,从 Viewport 或从 [code]SCREEN_TEXTURE[/code] 读取将变得不可用。更多信息参"
-"阅 [method VisualServer.viewport_set_render_direct_to_screen]。"
+"如果为 [code]true[/code],会直接将该 Viewport 渲染到屏幕上,而不是渲染到根视"
+"口上。只在 GLES2 中可用。这是一个低级别的优化,在大多数情况下不应该使用。如果"
+"使用,从该 Viewport 或从 [code]SCREEN_TEXTURE[/code] 读取将变得不可用。更多信"
+"息参阅 [method VisualServer.viewport_set_render_direct_to_screen]。"
#: doc/classes/Viewport.xml
msgid ""
"The clear mode when viewport used as a render target.\n"
"[b]Note:[/b] This property is intended for 2D usage."
msgstr ""
-"视窗用作渲染目标时的清除模式。\n"
+"视口用作渲染目标时的清除模式。\n"
"[b]注意:[/b]此属性适用于 2D 使用。"
#: doc/classes/Viewport.xml
msgid "The update mode when viewport used as a render target."
-msgstr "视窗用作渲染目标时的更新模式。"
+msgstr "视口用作渲染目标时的更新模式。"
#: doc/classes/Viewport.xml
msgid ""
@@ -84133,17 +84736,17 @@ msgid ""
"Values around [code]0.5[/code] generally give the best results. See also "
"[member fxaa]."
msgstr ""
-"如果设置为大于[code]0.0[/code]的值,对比度适应性锐化将被应用到3D视窗中。这具"
-"有较低的性能成本,可以用来恢复使用FXAA所损失的一些锐度。一般来说,[code]0.5[/"
-"code]左右的数值可以得到最好的效果。参阅[member fxaa]。"
+"如果设置为大于 [code]0.0[/code] 的值,对比度适应性锐化将被应用到3D视窗中。这"
+"具有较低的性能成本,可以用来恢复使用 FXAA 所损失的一些锐度。一般来说,"
+"[code]0.5[/code] 左右的数值可以得到最好的效果。另请参阅 [member fxaa]。"
#: doc/classes/Viewport.xml
msgid ""
"The width and height of viewport. Must be set to a value greater than or "
"equal to 2 pixels on both dimensions. Otherwise, nothing will be displayed."
msgstr ""
-"视窗的宽度和高度。必须在两个维度上设置为大于或等于2像素的值。否则,将不会显示"
-"任何东西。"
+"视口的宽度和高度。必须在两个维度上设置为大于或等于 2 像素的值。否则,将不会显"
+"示任何东西。"
#: doc/classes/Viewport.xml
msgid "If [code]true[/code], the size override affects stretch as well."
@@ -84153,11 +84756,14 @@ msgstr "如果为 [code]true[/code],尺寸重写也会影响拉伸。"
msgid ""
"If [code]true[/code], the viewport should render its background as "
"transparent."
-msgstr "如果为 [code]true[/code],该视区应使其背景渲染为透明。"
+msgstr "如果为 [code]true[/code],该视口应使其背景渲染为透明。"
#: doc/classes/Viewport.xml
+#, fuzzy
msgid ""
-"The rendering mode of viewport.\n"
+"The viewport's rendering mode. This controls which buffers are allocated for "
+"the viewport (2D only, or 2D + 3D). 2D-only options can reduce memory usage "
+"and improve performance slightly, especially on low-end devices.\n"
"[b]Note:[/b] If set to [constant USAGE_2D] or [constant "
"USAGE_2D_NO_SAMPLING], [member hdr] will have no effect when enabled since "
"HDR is not supported for 2D."
@@ -84201,7 +84807,7 @@ msgid ""
"Emitted when the size of the viewport is changed, whether by [method "
"set_size_override], resize of window, or some other means."
msgstr ""
-"当视窗的大小被改变时,无论是通过[method set_size_override],调整窗口的大小,"
+"当视口的大小被改变时,无论是通过 [method set_size_override]、调整窗口的大小,"
"还是其他方式,都会触发。"
#: doc/classes/Viewport.xml
@@ -84236,11 +84842,11 @@ msgstr "此象限将分为 4 个,最多使用 4 个阴影贴图。"
#: doc/classes/Viewport.xml
msgid "This quadrant will be split 16 ways and used by up to 16 shadow maps."
-msgstr "此象限将被分成16个方向,并被最多16张阴影贴图使用。"
+msgstr "此象限将被分成 16 个方向,并被最多 16 张阴影贴图使用。"
#: doc/classes/Viewport.xml
msgid "This quadrant will be split 64 ways and used by up to 64 shadow maps."
-msgstr "这个象限将被分成64个方向,并被最多64张阴影贴图使用。"
+msgstr "这个象限将被分成 64 个方向,并被最多 64 张阴影贴图使用。"
#: doc/classes/Viewport.xml
msgid ""
@@ -84248,7 +84854,7 @@ msgid ""
"Unless the [member shadow_atlas_size] is very high, the shadows in this "
"quadrant will be very low resolution."
msgstr ""
-"这个象限将被分成256个方向,并被最多256个阴影贴图使用。除非 [member "
+"这个象限将被分成 256 个方向,并被最多 256 个阴影贴图使用。除非 [member "
"shadow_atlas_size] 非常高,否则这个象限内的阴影分辨率会非常低。"
#: doc/classes/Viewport.xml
@@ -84257,12 +84863,12 @@ msgid ""
"Unless the [member shadow_atlas_size] is very high, the shadows in this "
"quadrant will be very low resolution."
msgstr ""
-"这个象限将被分成1024个方向,并被最多1024个阴影贴图使用。除非 [member "
+"这个象限将被分成 1024 个方向,并被最多 1024 个阴影贴图使用。除非 [member "
"shadow_atlas_size] 非常高,否则这个象限内的阴影分辨率会非常低。"
#: doc/classes/Viewport.xml
msgid "Represents the size of the [enum ShadowAtlasQuadrantSubdiv] enum."
-msgstr "代表[enum ShadowAtlasQuadrantSubdiv]枚举的大小。"
+msgstr "代表 [enum ShadowAtlasQuadrantSubdiv] 枚举的大小。"
#: doc/classes/Viewport.xml
msgid "Amount of objects in frame."
@@ -84421,10 +85027,10 @@ msgid ""
"[b]Note:[/b] [member stretch] must be [code]true[/code] for this property to "
"work."
msgstr ""
-"将视窗的有效分辨率除以这个值,同时保留其比例。这可以用来加快渲染速度。\n"
-"例如,一个1280×720的视窗,如果[member stretch_shrink]设置为[code]2[/code],将"
-"以640×360的尺寸进行渲染,同时在容器中占据同样的尺寸。\n"
-"[b]注意:[/b][member stretch]拉伸必须是[code]true[/code],这个属性才能发挥作"
+"将视口的有效分辨率除以这个值,同时保留其比例。这可以用来加快渲染速度。\n"
+"例如,将 1280×720 的视口的 [member stretch_shrink] 设置为 [code]2[/code],将"
+"以 640×360 的尺寸进行渲染,同时在容器中占据同样的尺寸。\n"
+"[b]注意:[/b][member stretch] 必须是 [code]true[/code],这个属性才能发挥作"
"用。"
#: doc/classes/ViewportTexture.xml
@@ -84489,27 +85095,27 @@ msgstr "返回由给定的 [enum Enabler] 常量标识的启用程序是否处
#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
msgid ""
"Sets active state of the enabler identified by given [enum Enabler] constant."
-msgstr "设置由给定的[enum Enabler]常量识别的启用程序的活动状态。"
+msgstr "设置由给定的 [enum Enabler] 常量识别的启用程序的活动状态。"
#: doc/classes/VisibilityEnabler.xml
msgid "If [code]true[/code], [RigidBody] nodes will be paused."
-msgstr "如果为 [code]true[/code],[RigidBody]节点将被暂停。"
+msgstr "如果为 [code]true[/code],[RigidBody] 节点将被暂停。"
#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
msgid "If [code]true[/code], [AnimationPlayer] nodes will be paused."
-msgstr "如果为 [code]true[/code],[AnimationPlayer]节点将被暂停。"
+msgstr "如果为 [code]true[/code],[AnimationPlayer] 节点将被暂停。"
#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
msgid "This enabler will pause [AnimationPlayer] nodes."
-msgstr "这个启用程序将暂停[AnimationPlayer]节点。"
+msgstr "这个启用程序将暂停 [AnimationPlayer] 节点。"
#: doc/classes/VisibilityEnabler.xml
msgid "This enabler will freeze [RigidBody] nodes."
-msgstr "这个启用程序将冻结[RigidBody]节点。"
+msgstr "这个启用程序将冻结 [RigidBody] 节点。"
#: doc/classes/VisibilityEnabler.xml doc/classes/VisibilityEnabler2D.xml
msgid "Represents the size of the [enum Enabler] enum."
-msgstr "表示[enum Enabler]枚举的大小。"
+msgstr "表示 [enum Enabler] 枚举的大小。"
#: doc/classes/VisibilityEnabler2D.xml
msgid ""
@@ -84525,38 +85131,39 @@ msgid ""
"[b]Note:[/b] VisibilityEnabler2D will not affect nodes added after scene "
"initialization."
msgstr ""
-"VisibilityEnabler2D会在[RigidBody2D]、[AnimationPlayer]和其他节点不可见时禁用"
-"它们。它只会影响与VisibilityEnabler2D的根节点相同的节点,以及根节点本身。\n"
-"如果你只想接收通知,请使用[VisibilityNotifier2D]代替。\n"
-"[b]注意:[/b]由于性能原因,VisibilityEnabler2D使用一个近似的启发式方法,其精"
+"VisibilityEnabler2D 会在 [RigidBody2D]、[AnimationPlayer] 和其他节点不可见时"
+"禁用它们。它只会影响与 VisibilityEnabler2D 的根节点相同的节点,以及根节点本"
+"身。\n"
+"如果你只想接收通知,请使用 [VisibilityNotifier2D] 代替。\n"
+"[b]注意:[/b]由于性能原因,VisibilityEnabler2D 使用一个近似的启发式方法,其精"
"度由 [member ProjectSettings.world/2d/cell_size] 决定。如果你需要精确的可见性"
-"检查,请使用另一种方法,例如添加一个[Area2D]节点作为[Camera2D]节点的子节"
+"检查,请使用另一种方法,例如添加一个 [Area2D] 节点作为 [Camera2D] 节点的子节"
"点。\n"
-"[b]注意:[/b]VisibilityEnabler2D不会影响场景初始化后添加的节点。"
+"[b]注意:[/b]VisibilityEnabler2D 不会影响场景初始化后添加的节点。"
#: doc/classes/VisibilityEnabler2D.xml
msgid "If [code]true[/code], [RigidBody2D] nodes will be paused."
-msgstr "如果为 [code]true[/code],[RigidBody2D]节点将被暂停。"
+msgstr "如果为 [code]true[/code],[RigidBody2D] 节点将被暂停。"
#: doc/classes/VisibilityEnabler2D.xml
msgid "If [code]true[/code], [AnimatedSprite] nodes will be paused."
-msgstr "如果为 [code]true[/code],[AnimatedSprite]节点将被暂停。"
+msgstr "如果为 [code]true[/code],[AnimatedSprite] 节点将被暂停。"
#: doc/classes/VisibilityEnabler2D.xml
msgid "If [code]true[/code], [Particles2D] nodes will be paused."
-msgstr "如果为 [code]true[/code],[Particles2D]节点将被暂停。"
+msgstr "如果为 [code]true[/code],[Particles2D] 节点将被暂停。"
#: doc/classes/VisibilityEnabler2D.xml
msgid ""
"If [code]true[/code], the parent's [method Node._physics_process] will be "
"stopped."
msgstr ""
-"如果为 [code]true[/code],父级的[method Node._physics_process]将被停止。"
+"如果为 [code]true[/code],父级的 [method Node._physics_process] 将被停止。"
#: doc/classes/VisibilityEnabler2D.xml
msgid ""
"If [code]true[/code], the parent's [method Node._process] will be stopped."
-msgstr "如果为 [code]true[/code],父级的[method Node._process]将被停止。"
+msgstr "如果为 [code]true[/code],父级的 [method Node._process] 将被停止。"
#: doc/classes/VisibilityEnabler2D.xml
msgid "This enabler will freeze [RigidBody2D] nodes."
@@ -84619,7 +85226,7 @@ msgstr ""
#: doc/classes/VisibilityNotifier.xml
msgid "The VisibilityNotifier's bounding box."
-msgstr "VisibilityNotifier的边界框。"
+msgstr "VisibilityNotifier 的边界框。"
#: doc/classes/VisibilityNotifier.xml
msgid ""
@@ -84637,19 +85244,19 @@ msgstr ""
#: doc/classes/VisibilityNotifier.xml
msgid "Emitted when the VisibilityNotifier enters a [Camera]'s view."
-msgstr "当VisibilityNotifier进入[Camera]的视图时触发。"
+msgstr "当 VisibilityNotifier 进入 [Camera] 的视图时触发。"
#: doc/classes/VisibilityNotifier.xml
msgid "Emitted when the VisibilityNotifier exits a [Camera]'s view."
-msgstr "当VisibilityNotifier退出[Camera]的视图时触发。"
+msgstr "当 VisibilityNotifier 退出 [Camera] 的视图时触发。"
#: doc/classes/VisibilityNotifier.xml
msgid "Emitted when the VisibilityNotifier enters the screen."
-msgstr "当VisibilityNotifier进入屏幕时触发。"
+msgstr "当 VisibilityNotifier 进入屏幕时触发。"
#: doc/classes/VisibilityNotifier.xml
msgid "Emitted when the VisibilityNotifier exits the screen."
-msgstr "当VisibilityNotifier退出屏幕时触发。"
+msgstr "当 VisibilityNotifier 退出屏幕时触发。"
#: doc/classes/VisibilityNotifier2D.xml
msgid ""
@@ -84663,12 +85270,13 @@ msgid ""
"world/2d/cell_size]. If you need precise visibility checking, use another "
"method such as adding an [Area2D] node as a child of a [Camera2D] node."
msgstr ""
-"VisibilityNotifier2D检测它在屏幕上是否可见。当它的边界矩形进入或退出屏幕或视"
-"窗时,它也会发出通知。\n"
-"如果你想让节点在退出屏幕时自动禁用,请使用[VisibilityEnabler2D]代替。\n"
-"[b]注意:[/b]由于性能原因,VisibilityNotifier2D使用一个近似的启发式方法,其精"
-"度由 [member ProjectSettings.world/2d/cell_size] 决定。如果你需要精确的可见性"
-"检查,请使用另一种方法,如添加一个[Area2D]节点作为[Camera2D]节点的子节点。"
+"VisibilityNotifier2D 检测它在屏幕上是否可见。当它的边界矩形进入或退出屏幕或视"
+"口时,它也会发出通知。\n"
+"如果你想让节点在退出屏幕时自动禁用,请使用 [VisibilityEnabler2D] 代替。\n"
+"[b]注意:[/b]由于性能原因,VisibilityNotifier2D 使用一个近似的启发式方法,其"
+"精度由 [member ProjectSettings.world/2d/cell_size] 决定。如果你需要精确的可见"
+"性检查,请使用另一种方法,如添加一个 [Area2D] 节点作为 [Camera2D] 节点的子节"
+"点。"
#: doc/classes/VisibilityNotifier2D.xml
msgid ""
@@ -84684,27 +85292,27 @@ msgstr ""
#: doc/classes/VisibilityNotifier2D.xml
msgid "The VisibilityNotifier2D's bounding rectangle."
-msgstr "VisibilityNotifier2D的边界矩形。"
+msgstr "VisibilityNotifier2D 的边界矩形。"
#: doc/classes/VisibilityNotifier2D.xml
msgid "Emitted when the VisibilityNotifier2D enters the screen."
-msgstr "当VisibilityNotifier2D进入屏幕时触发。"
+msgstr "当 VisibilityNotifier2D 进入屏幕时触发。"
#: doc/classes/VisibilityNotifier2D.xml
msgid "Emitted when the VisibilityNotifier2D exits the screen."
-msgstr "当VisibilityNotifier2D退出屏幕时触发。"
+msgstr "当 VisibilityNotifier2D 退出屏幕时触发。"
#: doc/classes/VisibilityNotifier2D.xml
msgid "Emitted when the VisibilityNotifier2D enters a [Viewport]'s view."
-msgstr "当VisibilityNotifier2D进入[Viewport]的视图时触发。"
+msgstr "当 VisibilityNotifier2D 进入 [Viewport] 的视图时触发。"
#: doc/classes/VisibilityNotifier2D.xml
msgid "Emitted when the VisibilityNotifier2D exits a [Viewport]'s view."
-msgstr "当VisibilityNotifier2D退出[Viewport]的视图时触发。"
+msgstr "当 VisibilityNotifier2D 退出 [Viewport] 的视图时触发。"
#: doc/classes/VisualInstance.xml
msgid "Parent of all visual 3D nodes."
-msgstr "所有可视3D节点的父节点。"
+msgstr "所有可视 3D 节点的父节点。"
#: doc/classes/VisualInstance.xml
msgid ""
@@ -84725,7 +85333,7 @@ msgid ""
"Returns the [AABB] (also known as the bounding box) for this "
"[VisualInstance]. See also [method get_transformed_aabb]."
msgstr ""
-"返回此[VisualInstance]的[AABB],也称为边界框。参阅[method "
+"返回此 [VisualInstance] 的 [AABB],也称为边界框。另请参阅 [method "
"get_transformed_aabb]。"
#: doc/classes/VisualInstance.xml
@@ -84734,8 +85342,8 @@ msgid ""
"example, if the Node is a [MeshInstance], this will return the RID of the "
"associated [Mesh]."
msgstr ""
-"返回与此[VisualInstance]相关的资源的RID。例如,如果该节点是一个"
-"[MeshInstance],这将返回相关的[Mesh]的RID。"
+"返回与此 [VisualInstance] 相关的资源的 RID。例如,如果该节点是一个 "
+"[MeshInstance],这将返回相关的 [Mesh] 的 RID。"
#: doc/classes/VisualInstance.xml
msgid ""
@@ -84743,9 +85351,9 @@ msgid ""
"by [method VisualServer.instance_create]. This RID is needed if you want to "
"call [VisualServer] functions directly on this [VisualInstance]."
msgstr ""
-"返回这个实例的RID。这个RID与[method VisualServer.instance_create]所返回的RID"
-"相同。如果你想在这个[VisualInstance]上直接调用[VisualServer]函数,就需要这个"
-"RID。"
+"返回这个实例的 RID。这个 RID 与 [method VisualServer.instance_create] 所返回"
+"的 RID 相同。如果你想在这个 [VisualInstance] 上直接调用 [VisualServer] 函数,"
+"就需要这个 RID。"
#: doc/classes/VisualInstance.xml
msgid ""
@@ -84762,9 +85370,9 @@ msgid ""
"Transformed in this case means the [AABB] plus the position, rotation, and "
"scale of the [Spatial]'s [Transform]. See also [method get_aabb]."
msgstr ""
-"返回此[VisualInstance]的变换后的[AABB],也称为边界框。\n"
-"这里的变换是指[AABB]加上[Spatial]的[Transform]的位置、旋转和缩放。参阅"
-"[method get_aabb]。"
+"返回此 [VisualInstance] 的变换后的 [AABB],也称为边界框。\n"
+"这里的变换是指 [AABB] 加上 [Spatial] 的 [Transform] 的位置、旋转和缩放。另请"
+"参阅 [method get_aabb]。"
#: doc/classes/VisualInstance.xml
msgid ""
@@ -84786,7 +85394,23 @@ msgid ""
"render object this [VisualInstance] is set to."
msgstr ""
"绘制此 [VisualInstance] 的渲染层。\n"
-"此对象仅对[Camera]可见,其剔除遮罩包括此[VisualInstance]设置的渲染对象。"
+"此对象仅对 [Camera]可见,其剔除遮罩包括此 [VisualInstance] 设置的渲染对象。"
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"The sorting offset used by this [VisualInstance]. Adjusting it to a higher "
+"value will make the [VisualInstance] reliably draw on top of other "
+"[VisualInstance]s that are otherwise positioned at the same spot."
+msgstr ""
+
+#: doc/classes/VisualInstance.xml
+msgid ""
+"If [code]true[/code], the object is sorted based on the [AABB] center. "
+"Sorted based on the global position otherwise.\n"
+"The [AABB] center based sorting is generally more accurate for 3D models. "
+"The position based sorting instead allows to better control the drawing "
+"order when working with [Particles] and [CPUParticles]."
+msgstr ""
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "A script implemented in the Visual Script programming environment."
@@ -84864,13 +85488,13 @@ msgid ""
"[code]from_port[/code] would be fed into [code]to_node[/code]'s "
"[code]to_port[/code]."
msgstr ""
-"连接两个数据端口。[code]from_node[/code]的[code]from_port[/code]的值将被输入"
-"[code]to_node[/code]的[code]to_port[/code]。"
+"连接两个数据端口。[code]from_node[/code] 的 [code]from_port[/code] 的值将被输"
+"入 [code]to_node[/code] 的 [code]to_port[/code]。"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid ""
"Disconnect two data ports previously connected with [method data_connect]."
-msgstr "断开之前用[method data_connect]连接的两个数据端口。"
+msgstr "断开之前用 [method data_connect] 连接的两个数据端口。"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Returns the id of a function's entry point node."
@@ -84882,7 +85506,7 @@ msgstr "返回给定函数的屏幕中心的位置。"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Returns a node given its id and its function."
-msgstr "返回一个节点,指定它的id和它的函数。"
+msgstr "返回一个节点,指定它的 id 和它的函数。"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Returns a node's position in pixels."
@@ -84890,7 +85514,7 @@ msgstr "返回节点的坐标,单位是像素。"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Returns the default (initial) value of a variable."
-msgstr "返回变量的初始默认值。"
+msgstr "返回变量的默认(初始)值。"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid "Returns whether a variable is exported."
@@ -84962,10 +85586,10 @@ msgid ""
"Unlike [method data_connect], there isn't a [code]to_port[/code], since the "
"target node can have only one sequence port."
msgstr ""
-"连接两个序列端口。执行将从[code]from_node[/code]的[code]from_output[/code]输"
-"入[code]to_node[/code]。\n"
-"与[method data_connect]不同,没有[code]to_port[/code],因为目标节点只能有一个"
-"序列端口。"
+"连接两个序列端口。执行将从 [code]from_node[/code] 的 [code]from_output[/"
+"code] 输入 [code]to_node[/code]。\n"
+"与 [method data_connect] 不同,没有 [code]to_port[/code],因为目标节点只能有"
+"一个序列端口。"
#: modules/visual_script/doc_classes/VisualScript.xml
msgid ""
@@ -85175,7 +85799,7 @@ msgid ""
"Return a number linearly interpolated between the first two inputs, based on "
"the third input. Uses the formula [code]a + (a - b) * t[/code]."
msgstr ""
-"返回一个在前两个输入之间线性插值的数字,以第三个输入为基础。使用公式[code]a "
+"返回一个在前两个输入之间线性插值的数字,以第三个输入为基础。使用公式 [code]a "
"+ (a - b) * t[/code]。"
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
@@ -85203,16 +85827,16 @@ msgid ""
"N (where N is smaller than 2^32 - 1), you can use it with the remainder "
"function."
msgstr ""
-"返回一个随机的32位整数值。为了获得0到N之间的随机值(其中N小于2^32 - 1),你可"
-"以将其与余数函数一起使用。"
+"返回一个随机的 32 位整数值。为了获得 0 到 N 之间的随机值(其中 N 小于 2^32 - "
+"1),你可以将其与余数函数一起使用。"
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
msgid ""
"Return a random floating-point value between 0 and 1. To obtain a random "
"value between 0 to N, you can use it with multiplication."
msgstr ""
-"返回一个介于0 到 1之间的随机浮点值。要获得一个介于0到N之间的随机值,可以将其"
-"与乘法结合使用。"
+"返回一个介于 0 到 1 之间的随机浮点值。要获得一个介于 0 到 N 之间的随机值,可"
+"以将其与乘法结合使用。"
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
msgid "Return a random floating-point value between the two inputs."
@@ -85347,7 +85971,7 @@ msgid ""
"[/codeblock]"
msgstr ""
"返回一个在前两个输入之间平滑内插的数字,基于第三个输入。类似于 [constant "
-"MATH_LERP],但在开始时插值较快,结束时插值较慢。使用Hermite插值公式。\n"
+"MATH_LERP],但在开始时插值较快,结束时插值较慢。使用 Hermite 插值公式。\n"
"[codeblock]\n"
"var t = clamp((weight - from) / (to - from), 0.0, 1.0)\n"
"return t * t * (3.0 - 2.0 * t)\n"
@@ -85592,15 +86216,15 @@ msgid ""
"When returning, you can mask the returned value with one of the "
"[code]STEP_*[/code] constants."
msgstr ""
-"执行自定义节点的逻辑,返回要使用的输出序列端口的索引,或者在有错误时返回一个"
+"执行自定义节点的逻辑,返回要使用的输出序列端口的索引,或者在有错误时返回一个 "
"[String]。\n"
-"[code]inputs[/code]数组包含输入端口的值。\n"
-"[code]output[/code]是一个数组,其索引应被设置为相应的输出。\n"
-"[code]start_mode[/code]通常是[constant START_MODE_BEGIN_SEQUENCE],除非你使用"
-"了[code]STEP_*[/code]常量。\n"
-"[code]working_mem[/code]是一个数组,可以用来在自定义节点的运行之间持续保存信"
-"息。其大小需要用[method _get_working_memory_size]来预定义。\n"
-"当返回时,你可以用[code]STEP_*[/code]中的一个常量来屏蔽返回值。"
+"[code]inputs[/code] 数组包含输入端口的值。\n"
+"[code]output[/code] 是一个数组,其索引应被设置为相应的输出。\n"
+"[code]start_mode[/code] 通常是[constant START_MODE_BEGIN_SEQUENCE],除非你使"
+"用了 [code]STEP_*[/code] 常量。\n"
+"[code]working_mem[/code] 是一个数组,可以用来在自定义节点的运行之间持续保存信"
+"息。其大小需要用 [method _get_working_memory_size] 来预定义。\n"
+"当返回时,你可以用 [code]STEP_*[/code] 中的一个常量来屏蔽返回值。"
#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml
msgid "The start mode used the first time when [method _step] is called."
@@ -86103,7 +86727,7 @@ msgstr "数学常量。"
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
msgid "Unity: [code]1[/code]."
-msgstr "Unity:[code]1[/code]。"
+msgstr "单位一:[code]1[/code]。"
#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml
msgid "Pi: [code]3.141593[/code]."
@@ -86438,7 +87062,7 @@ msgid ""
"[b]Output Ports:[/b]\n"
"none"
msgstr ""
-"结束一个函数的执行并将控制权返回给调用函数。可选,它可以返回一个[Variant]"
+"结束一个函数的执行并将控制权返回给调用函数。可选,它可以返回一个 [Variant] "
"值。\n"
"[b]输入端口:[/b]\n"
"- 序列\n"
@@ -89274,9 +89898,8 @@ msgid ""
"viewport_set_use_32_bpc_depth].\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
-"如果为 "
-"[code]true[/code],该视区会渲染至高动态范围(HDR)而不是标准动态范围(SDR)。"
-"另请参阅 [method viewport_set_use_32_bpc_depth]。\n"
+"如果为 [code]true[/code],该视区会渲染至高动态范围(HDR)而不是标准动态范围"
+"(SDR)。另请参阅 [method viewport_set_use_32_bpc_depth]。\n"
"[b]注意:[/b]仅在 GLES3 后端可用。"
#: doc/classes/VisualServer.xml
@@ -89382,8 +90005,8 @@ msgid ""
"on the same [Viewport] to set HDR to [code]true[/code].\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""
-"如果为 [code]true[/code],分配该视区的帧缓冲时将使用完整浮点数精度(32 "
-"位)而不是半浮点数精度(16 位)。只有在同一个 [Viewport] 上通过 [method "
+"如果为 [code]true[/code],分配该视区的帧缓冲时将使用完整浮点数精度(32 位)而"
+"不是半浮点数精度(16 位)。只有在同一个 [Viewport] 上通过 [method "
"viewport_set_use_32_bpc_depth] 将 HDR 设为 [code]true[/code] 时有效。\n"
"[b]注意:[/b]仅在 GLES3 后端中可用。"
@@ -89630,6 +90253,10 @@ msgid "Flag used to mark an index array."
msgstr "用于标记索引数组的标志。"
#: doc/classes/VisualServer.xml
+msgid "Flag used to mark a compressed (half float) color array."
+msgstr "曾用于标记压缩(半精度浮点)颜色数组的标志。"
+
+#: doc/classes/VisualServer.xml
msgid ""
"Used to set flags [constant ARRAY_COMPRESS_NORMAL], [constant "
"ARRAY_COMPRESS_TANGENT], [constant ARRAY_COMPRESS_COLOR], [constant "
@@ -90873,8 +91500,8 @@ msgid ""
"function]. Returns a boolean scalar. Translates to [code]if[/code] "
"instruction in shader code."
msgstr ""
-"通过 [member function] 比较[code]a[/code]和[code]b[/code]的 [member type]。返"
-"回一个布尔标量。在着色器代码中转换成[code]if[/code]指令。"
+"通过 [member function] 比较 [code]a[/code] 和 [code]b[/code] 的 [member "
+"type]。返回一个布尔标量。在着色器代码中转换成 [code]if[/code] 指令。"
#: doc/classes/VisualShaderNodeCompare.xml
msgid ""
@@ -91397,12 +92024,12 @@ msgstr "移除所有先前指定的输出端口。"
#: doc/classes/VisualShaderNodeGroupBase.xml
msgid ""
"Returns a free input port ID which can be used in [method add_input_port]."
-msgstr "返回一个空闲的输入端口ID,可以在[method add_input_port]中使用。"
+msgstr "返回一个空闲的输入端口 ID,可以在 [method add_input_port] 中使用。"
#: doc/classes/VisualShaderNodeGroupBase.xml
msgid ""
"Returns a free output port ID which can be used in [method add_output_port]."
-msgstr "返回一个空闲的输出端口ID,可以在[method add_output_port]中使用。"
+msgstr "返回一个空闲的输出端口 ID,可以在 [method add_output_port] 中使用。"
#: doc/classes/VisualShaderNodeGroupBase.xml
msgid ""
@@ -92509,8 +93136,12 @@ msgstr ""
"依赖,并允许引用被释放。"
#: doc/classes/WeakRef.xml
-msgid "Returns the [Object] this weakref is referring to."
-msgstr "返回此弱引用所指的 [Object]。"
+msgid ""
+"Returns the [Object] this weakref is referring to. Returns [code]null[/code] "
+"if that object no longer exists."
+msgstr ""
+"返回这个弱引用所引用的 [Object]。如果该对象不复存在,则返回 [code]null[/"
+"code]。"
#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
msgid "Closes this data channel, notifying the other peer."
@@ -93353,7 +93984,7 @@ msgstr ""
#: modules/websocket/doc_classes/WebSocketServer.xml
msgid "Returns [code]true[/code] if a peer with the given ID is connected."
-msgstr "如果一个具有给定ID的对等体被连接,则返回 [code]true[/code]。"
+msgstr "如果一个具有给定 ID 的对等体被连接,则返回 [code]true[/code]。"
#: modules/websocket/doc_classes/WebSocketServer.xml
msgid ""
@@ -93473,8 +94104,8 @@ msgid ""
"[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level "
"multiplayer peer."
msgstr ""
-"当收到一个新消息时触发。\n"
-"[b]注意:[/b]这个信号在用作高级多人对等的时候,[i]不会[/i]触发。"
+"当收到新消息时触发。\n"
+"[b]注意:[/b]这个信号[i]不会[/i]在用作高级多人对等体时触发。"
#: modules/webxr/doc_classes/WebXRInterface.xml
msgid "AR/VR interface using WebXR."
@@ -93936,10 +94567,10 @@ msgid ""
msgstr ""
"发出该消息以表明引用空间已被重置或重新配置。\n"
"何时或是否发出取决于用户的浏览器或设备,但可能包括当用户改变了他们的游戏空间"
-"的尺寸,你可以通过[member bounds_geometry]访问,或按下/按住一个按钮来重新定位"
-"他们的位置。\n"
-"参阅[url=https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace/"
-"reset_event]WebXR的XRReferenceSpace重置事件[/url]。"
+"的尺寸,你可以通过 [member bounds_geometry] 访问,或按下/按住一个按钮来重新定"
+"位他们的位置。\n"
+"详情见 [url=https://developer.mozilla.org/en-US/docs/Web/API/"
+"XRReferenceSpace/reset_event]WebXR 的 XRReferenceSpace 重置事件[/url]。"
#: modules/webxr/doc_classes/WebXRInterface.xml
msgid ""
@@ -94141,8 +94772,8 @@ msgid ""
"scenario, a navigation map and a sound space. Spatial nodes register their "
"resources into the current world."
msgstr ""
-"拥有与世界相关的一切的类。物理空间、视觉场景、导航地图和声音空间。空间节点将"
-"其资源注册到当前世界中。"
+"拥有与世界相关的一切的类。物理空间、视觉场景、导航地图和声音空间。Spatial 节"
+"点将其资源注册到当前世界中。"
#: doc/classes/World.xml
msgid ""
@@ -94275,7 +94906,7 @@ msgstr "从 [code]path[/code] 路径加载证书(“*.crt”文件)。"
msgid ""
"Saves a certificate to the given [code]path[/code] (should be a \"*.crt\" "
"file)."
-msgstr "将一个证书保存到给定的 [code]path[/code],应是一个“*.crt”文件。"
+msgstr "将证书保存到给定的 [code]path[/code](应是“*.crt”文件)。"
#: doc/classes/XMLParser.xml
msgid ""
@@ -94291,8 +94922,8 @@ msgid ""
"flexible standard, this interface is low-level so it can be applied to any "
"possible schema."
msgstr ""
-"这个类可以作为制作自定义 XML 解析器的基础。由于 XML 是一个非常灵活的标准,这"
-"个接口也是底层的,可被应用于任何可能的模式。"
+"这个类可以作为制作自定义 XML 解析器的基础。由于 XML 是非常灵活的标准,这个接"
+"口也是底层的,可被应用于任何可能的模式。"
#: doc/classes/XMLParser.xml
msgid "Gets the amount of attributes in the current element."
@@ -94398,7 +95029,7 @@ msgstr "没有节点,未打开文件或缓冲区。"
#: doc/classes/XMLParser.xml
msgid "Element (tag)."
-msgstr "元素,即标签。"
+msgstr "元素(标签)。"
#: doc/classes/XMLParser.xml
msgid "End of element."
@@ -94437,7 +95068,7 @@ msgstr ""
"根据子节点的 Y 坐标对所有子节点进行排序。子节点必须继承自 [CanvasItem],才能"
"进行排序。Y 坐标较高的节点将后绘制,因此它们将出现在 Y 坐标较低的节点之上。\n"
"YSort 节点可以嵌套。子节点将与父节点在相同的空间内进行排序,这样可以更好地组"
-"织一个场景或将其分为多个场景,但又能保持唯一的排序。"
+"织场景或将其分为多个场景,但又能保持唯一的排序。"
#: doc/classes/YSort.xml
msgid ""