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.po2669
1 files changed, 1566 insertions, 1103 deletions
diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po
index 7647bf0081..cf0267429a 100644
--- a/doc/translations/zh_CN.po
+++ b/doc/translations/zh_CN.po
@@ -58,11 +58,12 @@
# 苏轼 <youwanyuyu@gmail.com>, 2021.
# ErrorDreemurr <diandaokui@qq.com>, 2021.
# 烧风 <hk-shao@foxmail.com>, 2022.
+# Yan Chen <cyan97087@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-09-26 05:24+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 +72,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.14.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -369,7 +370,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]反序列化得到的对象可能包含可执行的代码。如果序列化的对象的来源不"
"可信,请不要激活此选项,以避免潜在的安全威胁(远程执行代码)。"
@@ -834,8 +835,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 +847,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 +931,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 +944,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 +961,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 ""
@@ -1612,16 +1620,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 +3723,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 +3751,7 @@ msgstr "游戏手柄左扳机键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick click."
-msgstr "游戏手柄左键点击。"
+msgstr "游戏手柄左摇杆点击。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right Shoulder button."
@@ -3746,7 +3763,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 +4192,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 +4249,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 +4345,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 ""
@@ -6002,22 +6019,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 +6061,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 +6095,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 +6841,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 +7062,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 +7665,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 +7747,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 +7759,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 +7795,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 +7810,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 +7824,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 +7839,7 @@ msgid ""
"[AnimationPlayer] would point its Root Node at."
msgstr ""
"相对访问其他节点的节点。\n"
-"它访问骨骼,应该指向[AnimationPlayer]将指向其根节点的同一个节点。"
+"它访问骨骼,应该指向 [AnimationPlayer] 将指向其根节点的同一个节点。"
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7817,7 +7849,7 @@ msgid ""
msgstr ""
"通过 [AnimationPlayer] 的路径,此 [AnimationTreePlayer] 将动画绑定到动画节"
"点。\n"
-"设置后,[Animation]节点可以添加到[AnimationPlayer]。"
+"设置后,[Animation] 节点可以添加到 [AnimationPlayer]。"
#: doc/classes/AnimationTreePlayer.xml
msgid "The thread in which to update animations."
@@ -7871,10 +7903,13 @@ 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."
+"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 ""
-"检测 [CollisionObject] 节点重叠、进入或退出的 3D 区域。还可以改变或覆盖局部物"
-"理参数(重力、阻尼),并将音频路由到自定义音频总线。"
#: doc/classes/Area.xml doc/classes/QuadMesh.xml doc/classes/Viewport.xml
#: doc/classes/ViewportTexture.xml
@@ -7946,7 +7981,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
@@ -8051,7 +8086,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 +8096,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 +8114,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 +8178,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 +8226,13 @@ 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."
+"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 ""
-"检测 [CollisionObject2D] 节点重叠、进入或退出的2D区域。还可以改变或覆盖局部物"
-"理参数(重力、阻尼),并将音频路由到一个自定义的音频总线。"
#: doc/classes/Area2D.xml
msgid "Using Area2D"
@@ -8465,7 +8503,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."
@@ -8949,8 +8987,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,8 +9029,8 @@ 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
@@ -9109,9 +9147,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]。"
@@ -9124,6 +9161,7 @@ msgstr ""
"加曲面之前调用。"
#: doc/classes/ArrayMesh.xml
+#, fuzzy
msgid ""
"Creates a new surface.\n"
"Surfaces are created to be rendered using a [code]primitive[/code], which "
@@ -9138,7 +9176,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."
@@ -9549,7 +9595,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 +9634,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,8 +9731,8 @@ 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,让你在主窗口中做你喜欢的事情,比如用一个单独的相"
@@ -10527,7 +10573,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 +10887,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 +10960,7 @@ msgid ""
"the connections between buses. See [AudioServer] for usage."
msgstr ""
"存储位置、静音、独奏、旁通、效果、效果位置、音量以及总线之间的连接。使用方法"
-"参阅 [AudioServer] 。"
+"见 [AudioServer] 。"
#: doc/classes/AudioEffect.xml
msgid "Audio effect for audio."
@@ -10926,8 +10972,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 +11033,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 +11078,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 +11106,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 +11331,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 +11987,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 +12156,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 +12174,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 ""
@@ -12304,6 +12375,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 +12414,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 +12547,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 +12626,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 +12705,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 +12737,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 ""
@@ -12785,7 +12882,7 @@ msgstr ""
#: doc/classes/AudioStreamSample.xml
msgid "Audio format. See [enum Format] constants for values."
-msgstr "音频格式。参阅 [enum Format] 常量的值。"
+msgstr "音频格式。取值见 [enum Format] 常量。"
#: doc/classes/AudioStreamSample.xml
msgid ""
@@ -13151,7 +13248,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 +13294,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."
@@ -13753,7 +13850,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 +13874,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 +13908,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 ""
@@ -14262,7 +14359,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 +14510,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 +14533,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 +14604,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 ""
@@ -14646,10 +14744,14 @@ msgstr ""
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 +14782,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 +14962,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 +15008,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 +15140,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."
@@ -15269,13 +15371,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 +15395,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 +15421,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 +15732,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 +15744,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 +15830,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 +15851,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 +15859,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 +15923,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 +15977,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 +16062,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 +16214,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 ""
@@ -16642,10 +16765,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 +16852,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 +16910,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 +16925,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 +16955,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 +16999,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 +17018,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."
@@ -16907,32 +17030,34 @@ msgid "Removes the given shape owner."
msgstr "移除给定形状的所有者。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
+#, fuzzy
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
+#, fuzzy
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."
@@ -17302,13 +17427,15 @@ msgid "Node that represents collision shape data in 3D space."
msgstr "表示 3D 空间中的碰撞形状数据的节点。"
#: doc/classes/CollisionShape.xml
+#, fuzzy
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] 以使其具有检测形状,或将其添加到物理体 "
@@ -17348,13 +17475,15 @@ msgid "Node that represents collision shape data in 2D space."
msgstr "表示2D空间中的碰撞形状数据的节点。"
#: doc/classes/CollisionShape2D.xml
+#, fuzzy
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] 以"
@@ -17546,10 +17675,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 +18817,16 @@ 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."
+"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] 旨在与静态 [PhysicsBody] 节点"
-"一起使用,如 [StaticBody],并且不适用于具有非静态模式的 [KinematicBody] 或 "
-"[RigidBody]。"
#: doc/classes/ConcavePolygonShape.xml
msgid "Returns the faces (an array of triangles)."
@@ -18709,6 +18841,7 @@ msgid "Concave polygon 2D shape resource for physics."
msgstr "凹面多边形2D形状资源用于物理。"
#: doc/classes/ConcavePolygonShape2D.xml
+#, fuzzy
msgid ""
"Concave polygon 2D shape resource for physics. It is made out of segments "
"and is optimal for complex polygonal concave collisions. However, it is not "
@@ -18719,7 +18852,11 @@ 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."
+"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]节点。建议使用凸分解模式(实体)或多"
@@ -19799,8 +19936,13 @@ msgstr ""
#: 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 ""
@@ -19955,9 +20097,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 ""
@@ -20300,10 +20442,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 +20455,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 +20468,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 +20481,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 +20494,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 +20506,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 +20551,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 +20575,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 ""
@@ -21324,7 +21467,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 +21488,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 +21606,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 ""
@@ -21611,7 +21754,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 +21764,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 +21820,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 +22141,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 +22289,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 +22299,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 +22360,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 +22734,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 +22814,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 +22949,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 +22967,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 +23073,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 +23386,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 +23553,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 +23622,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 +23767,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] 的形式返回缓存的点。"
@@ -24599,7 +24726,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 +25013,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 +25140,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 +25364,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 +25381,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 +25390,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 +25399,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 +25409,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 +25420,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 ""
@@ -29688,8 +29811,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 ""
@@ -30146,11 +30269,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]."
@@ -30938,13 +31067,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 +31138,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 +32038,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 +32101,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 +32179,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 +32203,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 +33027,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 +33340,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 +33367,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 +33387,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 +33638,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 +33676,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 +33700,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 +33760,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 +33775,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 +34702,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 +34733,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]以获得完整的例"
@@ -37088,7 +37226,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 +37301,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 +37459,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 +37560,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 +37780,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 +37967,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 +38236,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 +38267,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 +38855,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 +38878,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 +39058,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 +39105,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 +39626,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 +39648,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 +39704,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 +39713,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 +39730,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 +39749,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 +39763,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 +39964,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 +39974,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 +40178,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 +40323,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 +40495,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 +40538,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 +40553,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 +40624,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 +41197,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 +41218,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]仅适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排序"
"方式。这是因为不透明对象不被排序,而透明对象则从后往前排序(取决于优先级)。"
@@ -41657,44 +41826,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 +42492,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."
@@ -42992,7 +43161,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]."
@@ -43248,9 +43417,13 @@ msgstr "曾经用于标记压缩(半精度浮点)法向数组的标志。"
msgid "Flag used to mark a compressed (half float) tangent array."
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 ""
#: doc/classes/Mesh.xml doc/classes/VisualServer.xml
msgid "Flag used to mark a compressed (half float) UV coordinates array."
@@ -43289,12 +43462,16 @@ msgid ""
msgstr "标志用于标记数组使用法线和切线向量的八面表示法,而不是笛卡尔式。"
#: doc/classes/Mesh.xml
+#, fuzzy
msgid ""
"Used to set flags [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], 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 "
@@ -43594,14 +43771,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 ""
@@ -43798,8 +43975,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."
@@ -44174,12 +44351,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 ""
@@ -44435,7 +44615,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 +44801,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 +44843,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 +44900,7 @@ msgid ""
msgstr ""
"构建基础类型的新对象,并附加此类型的脚本。\n"
"[b]注意:[/b]传递给这个函数的任何参数将被忽略,不会传递给局部构造函数。这将在"
-"未来的API扩展中改变。"
+"未来的 API 扩展中改变。"
#: doc/classes/Navigation.xml
msgid "Mesh-based navigation and pathfinding node."
@@ -45475,7 +45655,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,8 +45758,10 @@ 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."
@@ -45680,14 +45862,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 +45893,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 +45903,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 +45921,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 +45963,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 +45984,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 +46038,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 +46047,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 +46066,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 +46275,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 +46612,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"
@@ -46610,15 +46792,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 +46838,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 ""
@@ -46772,8 +46978,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 +47139,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 +47167,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 +47275,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 +47287,8 @@ msgid ""
"example movement and positional data."
msgstr ""
"数据包不被确认,对丢失的数据包不进行重发尝试。数据包按其发送顺序接收。有可能"
-"比[constant TRANSFER_MODE_RELIABLE]快。用于非关键数据或由于重发尝试而迟迟不能"
-"收到的数据,例如运动和位置数据。"
+"比 [constant TRANSFER_MODE_RELIABLE] 快。用于非关键数据或由于重发尝试而迟迟不"
+"能收到的数据,例如运动和位置数据。"
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid ""
@@ -47094,8 +47301,8 @@ msgid ""
msgstr ""
"数据包必须被接收,并应进行重发尝试,直到数据包被确认。数据包必须按照其发送的"
"顺序接收。最可靠的传输模式,但由于开销很大,可能是最慢的。用于必须按顺序传输"
-"和到达的关键数据,例如,正在触发的能力或聊天信息。仔细考虑信息是否真的是关键"
-"的,并尽量少用。"
+"和到达的关键数据,例如触发的能力或聊天信息。仔细考虑信息是否真的是关键的,并"
+"尽量少用。"
#: doc/classes/NetworkedMultiplayerPeer.xml
msgid "The ongoing connection disconnected."
@@ -47444,8 +47651,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 +47715,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 +47832,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 +47892,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 +47953,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 +48000,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 +48197,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 +48432,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 +48802,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 +48824,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 +48858,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]的节点将首先执行其处理回调。"
@@ -50342,8 +50550,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 +50566,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 +50696,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 ""
@@ -51614,13 +51822,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 +52010,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 +53116,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."
@@ -54632,7 +54843,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 +54878,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 +56123,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 +57833,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 +58482,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 +58748,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]."
@@ -59490,10 +59710,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 +60105,7 @@ msgstr ""
#: doc/classes/ProjectSettings.xml
msgid "Maximum call stack allowed for debugging GDScript."
-msgstr "调试GDScript时允许的最大调用堆栈。"
+msgstr "调试 GDScript 时允许的最大调用堆栈。"
#: doc/classes/ProjectSettings.xml
msgid ""
@@ -62805,11 +63032,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 ""
@@ -63863,7 +64108,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 +64128,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 +64285,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 +64838,7 @@ msgstr ""
#: doc/classes/ReferenceRect.xml
msgid "Reference frame for GUI."
-msgstr "GUI的引用框架。"
+msgstr "GUI 的参考框。"
#: doc/classes/ReferenceRect.xml
msgid ""
@@ -64607,21 +64852,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 +64974,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 +64990,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 +64998,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 +65032,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
@@ -65059,9 +65304,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 +65317,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 +65409,7 @@ msgid ""
msgstr ""
"RemoteTransform2D 将自己的 [Transform2D] 推送到场景中另一个 [CanvasItem] 派生"
"的节点(称为远程节点)。\n"
-"它可以被设置为更新另一个Node的位置、旋转或比例。它可以使用全局坐标或局部坐"
+"它可以被设置为更新另一个 Node 的位置、旋转或比例。它可以使用全局坐标或局部坐"
"标。"
#: doc/classes/RemoteTransform2D.xml
@@ -65237,12 +65482,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 +65726,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 +65755,7 @@ msgid ""
"[EditorImportPlugin]."
msgstr ""
"这是在核心部分实现的资源导入器的基类。要使用编辑器插件实现你自己的资源导入"
-"器,请参阅[EditorImportPlugin]。"
+"器,见 [EditorImportPlugin]。"
#: doc/classes/ResourceImporter.xml
msgid "Import plugins"
@@ -65574,11 +65820,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 +65836,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 +65853,7 @@ msgid ""
"them to a format that can be used by the engine."
msgstr ""
"用于从文件系统加载资源文件的单例。\n"
-"它使用在引擎中注册的许多[ResourceFormatLoader]类(无论是内置的还是来自插件"
+"它使用在引擎中注册的许多 [ResourceFormatLoader] 类(无论是内置的还是来自插件"
"的)来将文件加载到内存中,并将它们转换为引擎可以使用的格式。"
#: doc/classes/ResourceLoader.xml
@@ -65646,10 +65892,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 +65917,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 +65940,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 +65977,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 +65994,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 +66020,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 +66039,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 +66116,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 +66149,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 +66181,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 +66202,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 +66212,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 +66247,7 @@ msgstr ""
#: doc/classes/RichTextLabel.xml
msgid "Adds a newline tag to the tag stack."
-msgstr "在标签堆中添加一个换行标签。"
+msgstr "在标签栈中添加一个换行标签。"
#: doc/classes/RichTextLabel.xml
msgid ""
@@ -66039,40 +66286,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 +66327,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 +66336,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 +66506,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 +66530,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 +67139,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 +67250,7 @@ msgid ""
"collision (should there be one)."
msgstr ""
"如果在给定的向量中移动会导致碰撞,则返回 [code]true[/code]。[code]margin[/"
-"code]增加参与碰撞检测的形状的大小,[code]result[/code] 是一个 "
+"code] 增加参与碰撞检测的形状的大小,[code]result[/code] 是一个 "
"[Physics2DTestMotionResult] 类型的对象,它包含关于碰撞的额外信息(如果有的"
"话)。"
@@ -67552,14 +67799,19 @@ msgstr ""
"以避免混淆。有关 portal 模式的完整说明,请参阅 [CullInstance]。"
#: doc/classes/RoomManager.xml
+#, fuzzy
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 剔除。某些编辑器"
@@ -67725,8 +67977,8 @@ msgid ""
msgstr ""
"在转换过程中,[Room] 内对象的几何形状,或自定义指定的手动绑定,用于生成 [b]凸"
"多边形绑定[/b]。\n"
-"这个凸多边形在可见性系统中是 [b]必需的[/b],并且用于许多目的。最重要的是,它"
-"用于决定[Camera](或物体)是否在[Room]内。凸多边形生成算法很好,但有时它会创"
+"这个凸多边形在可见性系统中是[b]必需的[/b],并且用于许多目的。最重要的是,它用"
+"于决定 [Camera](或物体)是否在 [Room] 内。凸多边形生成算法很好,但有时它会创"
"建太多(或太少)的平面,无法很好地表示空间体积。\n"
"[code]room_simplify[/code] 值可用于对该过程进行精细控制。它决定了如何相似平面"
"才能将它们视为相同(并删除重复项)。该值可以设置在 0(无简化)和 1(最大简"
@@ -68144,13 +68396,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 +68586,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."
@@ -68665,6 +68928,7 @@ msgid ""
msgstr "通过脚本进行通用动画的轻量级对象,使用 [Tweener]。"
#: doc/classes/SceneTreeTween.xml
+#, fuzzy
msgid ""
"[SceneTreeTween] is a tween managed by the scene tree. As opposed to "
"[Tween], it does not require the instantiation of a node.\n"
@@ -68723,6 +68987,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 +69011,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"
@@ -69930,8 +70209,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."
@@ -70688,24 +70973,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 +71029,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 +71052,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
@@ -70979,9 +71275,9 @@ msgid ""
msgstr ""
"当空间节点的全局变换发生变化时,空间节点会收到这个通知。这意味着当前节点或父"
"节点改变了它的变换。\n"
-"为了使[constant NOTIFICATION_TRANSFORM_CHANGED]生效,用户首先需要用[method "
-"set_notify_transform]发送请求。如果节点是在编辑器的上下文中,并且它有一个有效"
-"的gizmo,那么该通知也会被发送。"
+"为了使 [constant NOTIFICATION_TRANSFORM_CHANGED] 生效,用户首先需要用 "
+"[method set_notify_transform] 发送请求。如果节点是在编辑器的上下文中,并且它"
+"有一个有效的控制器(Gizmo),那么该通知也会被发送。"
#: doc/classes/Spatial.xml
msgid ""
@@ -71033,8 +71329,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 +71358,8 @@ msgid ""
msgstr ""
"如果为 [code]true[/code],则启用指定的标志。标志是可以打开和关闭的可选行为。"
"使用该函数一次只能启用一个标志,不能将标志枚举值像位掩码一样进行合并,一次启"
-"用或禁用多个标志。也可以通过将相应成员设置为 [code]true[/code] 来启用标志。有"
-"关选项,请参阅 [enum Flags] 枚举器。"
+"用或禁用多个标志。也可以通过将相应成员设置为 [code]true[/code] 来启用标志。选"
+"项见 [enum Flags] 枚举值。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -71103,7 +71398,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 +71408,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 +71689,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 +71726,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 +71762,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 +71863,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 +71932,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 +71944,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 +71971,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 +71983,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 +72003,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 +72012,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 +72020,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 +72058,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 +72068,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 +72092,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 +72116,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 +72135,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 +72152,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 +72160,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 +72168,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 +72210,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 +72277,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 +72285,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 +72395,7 @@ msgstr "不透明和透明的对象都要计算深度绘制。"
#: doc/classes/SpatialMaterial.xml
msgid "No depth draw."
-msgstr "没有深度的绘制。"
+msgstr "不进行深度绘制。"
#: doc/classes/SpatialMaterial.xml
msgid ""
@@ -72107,7 +72405,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 +72557,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 +72617,7 @@ msgid ""
"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
msgstr ""
"根据每个像素与相机的距离,使用抖动方法平滑地淡化对象。抖动会根据设定的模式丢"
-"弃像素,在不启用透明的情况下平滑淡化。在某些硬件上,这比 [constant "
+"弃像素,在不启用透明的情况下平滑淡化。在某些硬件上比 [constant "
"DISTANCE_FADE_PIXEL_ALPHA] 更快。"
#: doc/classes/SpatialMaterial.xml
@@ -72330,8 +72628,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 ""
@@ -72828,10 +73126,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 +73217,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 +74001,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 +74724,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 +74742,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 +74816,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 +74837,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 +74857,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 +76283,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 +76316,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 +76333,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 +76363,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 +76795,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 +76832,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 +77266,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 +77612,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 ""
@@ -77639,46 +77961,53 @@ msgid "Clears all values on the theme."
msgstr "清除主题上的所有值。"
#: doc/classes/Theme.xml
+#, fuzzy
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]"
"颜色。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 的常量。"
#: doc/classes/Theme.xml
+#, fuzzy
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]字"
"体。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 的图标。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 的 "
"[StyleBox]样式盒。"
#: doc/classes/Theme.xml
+#, fuzzy
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]data_type[/code] 主题项。"
@@ -77700,15 +78029,18 @@ msgid "Sets the theme's values to a copy of a given theme."
msgstr "将主题的取值设置为指定主题的副本。"
#: doc/classes/Theme.xml
+#, fuzzy
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]。"
#: doc/classes/Theme.xml
+#, fuzzy
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]使用。"
@@ -77722,15 +78054,17 @@ msgstr ""
"[method get_color] 和/或 [method get_color_list] 使用。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 处的常量。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 返回,并"
@@ -77746,8 +78080,9 @@ msgstr ""
"get_constant]和/或[method get_constant_list]使用。"
#: doc/classes/Theme.xml
+#, fuzzy
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 ""
@@ -77756,9 +78091,10 @@ msgstr ""
"体。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 返"
"回,并填入每个 [Font] 的名称,以供 [method get_font] 使用。"
@@ -77772,16 +78108,18 @@ msgstr ""
"get_font]和/或[method get_font_list]使用。"
#: doc/classes/Theme.xml
+#, fuzzy
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]。"
#: doc/classes/Theme.xml
+#, fuzzy
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]使用。"
@@ -77795,22 +78133,26 @@ msgstr ""
"get_icon]和/或[method get_icon_list]使用。"
#: doc/classes/Theme.xml
+#, fuzzy
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]。"
#: doc/classes/Theme.xml
+#, fuzzy
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"
@@ -77826,11 +78168,12 @@ msgstr ""
"[method get_stylebox]和/或[method get_stylebox_list]使用。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 返回 "
@@ -77840,11 +78183,12 @@ msgstr ""
"法,找到有效的 [code]node_type[/code]。"
#: doc/classes/Theme.xml
+#, fuzzy
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]的形式填入每个主"
@@ -77864,10 +78208,11 @@ msgstr ""
"或数据类型特定方法使用。"
#: doc/classes/Theme.xml
+#, fuzzy
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]返回,其中填入了唯一的类型名称,以供"
@@ -77888,20 +78233,24 @@ msgid ""
msgstr "返回给定的基础类型 [code]base_type[/code] 的所有类型变种。"
#: doc/classes/Theme.xml
+#, fuzzy
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]true[/code]。\n"
"如果主题没有[code]node_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
+#, fuzzy
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]true[/code]。\n"
@@ -77915,40 +78264,48 @@ msgstr ""
"如果这个主题有一个有效的[member default_font]值,返回 [code]true[/code]。"
#: doc/classes/Theme.xml
+#, fuzzy
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]true[/code]。\n"
"如果主题没有[code]node_type[/code],则返回 [code]false[/code]。"
#: doc/classes/Theme.xml
+#, fuzzy
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]。"
#: doc/classes/Theme.xml
+#, fuzzy
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]。"
#: doc/classes/Theme.xml
+#, fuzzy
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"
@@ -77984,54 +78341,60 @@ msgstr ""
"被消除。如果该类型为类型变种的基础类型,则那些变种会失去其基础类型。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 已经被占用,则此方法将失败。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
+#, fuzzy
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]name[/code]。如果 [code]name[/code] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
+#, fuzzy
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]name[/code]。如果 [code]name[/code] 已经被占用,此方法会失败。"
#: doc/classes/Theme.xml
+#, fuzzy
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] 处的 "
@@ -78039,62 +78402,68 @@ msgstr ""
"code] 已经被占用,则此方法失败。"
#: doc/classes/Theme.xml
+#, fuzzy
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],则创建该节点。"
#: doc/classes/Theme.xml
+#, fuzzy
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]constant[/code]。\n"
"如果主题没有,则创建[code]node_type[/code]。"
#: doc/classes/Theme.xml
+#, fuzzy
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],则创建该节点。"
#: doc/classes/Theme.xml
+#, fuzzy
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],则创建该节点。"
#: doc/classes/Theme.xml
+#, fuzzy
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],则创建该节点。"
#: doc/classes/Theme.xml
+#, fuzzy
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"
@@ -78335,14 +78704,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."
@@ -79678,7 +80047,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 +82358,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 +82389,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 +82418,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 +82498,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 +82534,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 +82596,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 +82826,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 +82923,7 @@ msgstr "未知设备。"
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Invalid control."
-msgstr "无效控件。"
+msgstr "无效控制。"
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Memory allocation error."
@@ -82891,8 +83346,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 +83413,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 ""
@@ -83320,8 +83775,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."
@@ -84069,10 +84525,10 @@ 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 ""
@@ -84133,17 +84589,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."
@@ -84201,7 +84657,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 +84692,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 +84704,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 +84713,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."
@@ -84882,7 +85338,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."
@@ -85175,7 +85631,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 +85659,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 +85803,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 +86048,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 +86559,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 +86894,7 @@ msgid ""
"[b]Output Ports:[/b]\n"
"none"
msgstr ""
-"结束一个函数的执行并将控制权返回给调用函数。可选,它可以返回一个[Variant]"
+"结束一个函数的执行并将控制权返回给调用函数。可选,它可以返回一个 [Variant] "
"值。\n"
"[b]输入端口:[/b]\n"
"- 序列\n"
@@ -89274,9 +89730,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 +89837,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 +90085,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 +91332,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 +91856,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 +92968,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 +93816,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 +93936,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 +94399,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 ""
@@ -94275,7 +94738,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 +94754,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 +94861,7 @@ msgstr "没有节点,未打开文件或缓冲区。"
#: doc/classes/XMLParser.xml
msgid "Element (tag)."
-msgstr "元素,即标签。"
+msgstr "元素(标签)。"
#: doc/classes/XMLParser.xml
msgid "End of element."
@@ -94437,7 +94900,7 @@ msgstr ""
"根据子节点的 Y 坐标对所有子节点进行排序。子节点必须继承自 [CanvasItem],才能"
"进行排序。Y 坐标较高的节点将后绘制,因此它们将出现在 Y 坐标较低的节点之上。\n"
"YSort 节点可以嵌套。子节点将与父节点在相同的空间内进行排序,这样可以更好地组"
-"织一个场景或将其分为多个场景,但又能保持唯一的排序。"
+"织场景或将其分为多个场景,但又能保持唯一的排序。"
#: doc/classes/YSort.xml
msgid ""