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.po863
1 files changed, 572 insertions, 291 deletions
diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po
index a69559f289..cf0267429a 100644
--- a/doc/translations/zh_CN.po
+++ b/doc/translations/zh_CN.po
@@ -63,7 +63,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
-"PO-Revision-Date: 2022-09-08 07:39+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"
@@ -72,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.1-dev\n"
+"X-Generator: Weblate 4.14.1\n"
#: doc/tools/make_rst.py
msgid "Description"
@@ -828,7 +828,6 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"Returns an interpolation or extrapolation factor considering the range "
"specified in [code]from[/code] and [code]to[/code], and the interpolated "
@@ -855,7 +854,8 @@ msgstr ""
"后的值用 [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"
@@ -926,7 +926,6 @@ msgstr ""
"[/codeblock]"
#: modules/gdscript/doc_classes/@GDScript.xml
-#, fuzzy
msgid ""
"Linearly interpolates between two values by the factor defined in "
"[code]weight[/code]. To perform interpolation, [code]weight[/code] should be "
@@ -950,7 +949,8 @@ msgid ""
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]),返回值将是相同的"
@@ -961,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 ""
@@ -1629,6 +1630,15 @@ msgid ""
"For complex use cases where you need multiple ranges, consider using [Curve] "
"or [Gradient] instead."
msgstr ""
+"将范围 [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]\n"
+"如果是更复杂的情况,要用到多个范围,请考虑使用 [Curve] 或 [Gradient] 代替。"
#: modules/gdscript/doc_classes/@GDScript.xml
msgid ""
@@ -3713,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."
@@ -3741,7 +3751,7 @@ msgstr "游戏手柄左扳机键。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad left stick click."
-msgstr "游戏手柄左键点击。"
+msgstr "游戏手柄左摇杆点击。"
#: doc/classes/@GlobalScope.xml
msgid "Gamepad right Shoulder button."
@@ -3753,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."
@@ -4182,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]。"
@@ -4239,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."
@@ -4335,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 ""
@@ -6013,18 +6023,23 @@ msgid ""
"When inheriting from [AnimationRootNode], implement this virtual method to "
"override the text caption for this node."
msgstr ""
+"继承 [AnimationRootNode] 时,实现这个虚方法可以覆盖这个节点的标题文本。"
#: doc/classes/AnimationNode.xml
msgid ""
"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 ""
"When inheriting from [AnimationRootNode], implement this virtual method to "
"return all children nodes in order as a [code]name: node[/code] dictionary."
msgstr ""
+"继承 [AnimationRootNode] 时,实现这个虚方法可以用 [code]名称:节点[/code] 字典"
+"的形式按顺序返回所有子节点。"
#: doc/classes/AnimationNode.xml
msgid ""
@@ -6045,41 +6060,40 @@ msgstr ""
"中重复使用。"
#: doc/classes/AnimationNode.xml
-#, fuzzy
msgid ""
"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
-#, fuzzy
msgid ""
"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
-#, fuzzy
msgid ""
"When inheriting from [AnimationRootNode], implement this virtual method to "
"return whether the blend tree editor should display filter editing on this "
"node."
-msgstr "返回 [code]true[/code],是否希望混合树编辑器在此节点上显示过滤器编辑。"
+msgstr ""
+"继承 [AnimationRootNode] 时,实现这个虚方法可以返回混合树编辑器是否应该在这个"
+"节点上显示过滤器编辑。"
#: doc/classes/AnimationNode.xml
msgid "Returns whether the given path is filtered."
msgstr "返回是否对给定的路径进行过滤。"
#: doc/classes/AnimationNode.xml
-#, fuzzy
msgid ""
"When inheriting from [AnimationRootNode], implement this virtual method to "
"run some code when this node is processed. The [code]time[/code] parameter "
@@ -6091,12 +6105,13 @@ msgid ""
"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
@@ -6822,7 +6837,6 @@ msgid ""
msgstr "按照最短路径从当前状态过渡到另一个状态。"
#: doc/classes/AnimationNodeStateMachineTransition.xml
-#, fuzzy
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 "
@@ -6837,9 +6851,9 @@ msgid ""
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"
+"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"
@@ -7047,13 +7061,12 @@ msgid ""
msgstr "返回 [code]animation[/code] 的名称,如果没有找到,则返回一个空字符串。"
#: doc/classes/AnimationPlayer.xml
-#, fuzzy
msgid ""
"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."
@@ -7890,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
@@ -8210,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"
@@ -8968,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
@@ -9142,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 "
@@ -9156,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."
@@ -11000,7 +11028,6 @@ msgid "Captures audio from an audio bus in real-time."
msgstr "从音频总线上实时捕捉音频。"
#: doc/classes/AudioEffectCapture.xml
-#, fuzzy
msgid ""
"AudioEffectCapture is an AudioEffect which copies all audio frames from the "
"attached audio effect bus into its internal ring buffer.\n"
@@ -11018,8 +11045,12 @@ 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
@@ -11963,6 +11994,10 @@ msgid ""
"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."
@@ -12138,7 +12173,6 @@ msgid "Number of available audio buses."
msgstr "可用音频总线的数量。"
#: doc/classes/AudioServer.xml
-#, fuzzy
msgid ""
"Name of the current device for audio input (see [method "
"capture_get_device_list]). On systems with multiple audio inputs (such as "
@@ -12151,10 +12185,13 @@ msgid ""
"description for caveats related to permissions and operating system privacy "
"settings."
msgstr ""
-"当前音频输出设备的名称(见 [method get_device_list])。在具有多个音频输出的系"
-"统中(例如模拟、USB、HDMI 音频),可用于选择音频输出设备。为 "
+"当前音频输出设备的名称(见 [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 ""
@@ -12340,7 +12377,7 @@ msgstr ""
#: doc/classes/AudioStreamMicrophone.xml
msgid "Plays real-time audio input data."
-msgstr ""
+msgstr "播放实时音频输入数据。"
#: doc/classes/AudioStreamMicrophone.xml
msgid ""
@@ -12352,6 +12389,11 @@ msgid ""
"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."
@@ -12504,7 +12546,6 @@ msgid "Plays positional sound in 2D space."
msgstr "在 2D 空间中播放与位置相关的声音。"
#: doc/classes/AudioStreamPlayer2D.xml
-#, fuzzy
msgid ""
"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 "
@@ -12516,7 +12557,9 @@ msgid ""
"[member volume_db] to a very low value like [code]-100[/code] (which isn't "
"audible to human hearing)."
msgstr ""
-"播放音频,随着与屏幕中心的距离而减弱。\n"
+"播放音频,随着与给定位置的距离而减弱。\n"
+"默认情况下,音频是从屏幕中心收听的。要修改这个位置,可以在场景中添加一个 "
+"[Listener2D] 节点,并通过调用 [method Listener2D.make_current] 将其启用。\n"
"另请参阅 [AudioStreamPlayer] 来播放非位置性的声音。\n"
"[b]注意:[/b]隐藏 [AudioStreamPlayer2D] 节点并不能禁用其音频输出。要暂时禁用 "
"[AudioStreamPlayer2D] 的音频输出,请将 [member volume_db] 设置为非常低的值,"
@@ -14564,7 +14607,6 @@ msgid ""
msgstr "启用或禁用 [member cull_mask] 中给定的 [code]layer[/code]。"
#: doc/classes/Camera.xml
-#, fuzzy
msgid ""
"Sets the camera projection to frustum mode (see [constant "
"PROJECTION_FRUSTUM]), by specifying a [code]size[/code], an [code]offset[/"
@@ -14573,7 +14615,8 @@ msgid ""
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 ""
@@ -14698,7 +14741,6 @@ msgstr ""
"- 在 21:9 视窗中约117.06 度"
#: doc/classes/Camera.xml
-#, fuzzy
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-"
@@ -14706,8 +14748,10 @@ msgid ""
"[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."
@@ -14742,6 +14786,8 @@ msgid ""
"depending on [member keep_aspect]. Only applicable in orthogonal and frustum "
"modes."
msgstr ""
+"该相机的大小,单位为米,描述的是完整的宽度或者高度,取决于 [member "
+"keep_aspect]。仅适用于正交和平截头体模式。"
#: doc/classes/Camera.xml
msgid "The vertical (Y) offset of the camera viewport."
@@ -15320,7 +15366,6 @@ msgid "Base class of anything 2D."
msgstr "任何 2D 对象的基类。"
#: doc/classes/CanvasItem.xml
-#, fuzzy
msgid ""
"Base class of anything 2D. Canvas items are laid out in a tree; children "
"inherit and extend their parent's transform. [CanvasItem] is extended by "
@@ -15350,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"
@@ -15375,18 +15420,15 @@ msgid "Custom drawing in 2D"
msgstr "2D 中的自定义绘图"
#: doc/classes/CanvasItem.xml
-#, fuzzy
msgid ""
"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 ""
-"当节点进入 [SceneTree] 时调用(例如实例化时,场景改变时,或者在脚本中调用 "
-"[method add_child] 后)。如果节点有子节点,则首先调用它的 [method "
-"_enter_tree] 回调函数,然后再调用子节点的回调函数。\n"
-"对应于 [method Object._notification] 中的 [constant NOTIFICATION_ENTER_TREE] "
-"通知。"
+"当 [CanvasItem] 被请求重绘时调用(手动调用或者引擎调用 [method update] "
+"时)。\n"
+"对应于 [method Object._notification] 中的 [constant NOTIFICATION_DRAW] 通知。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15690,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"
@@ -15701,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."
@@ -15817,7 +15860,6 @@ msgid ""
msgstr "如果将全局变换通知传达给子级,则返回 [code]true[/code]。"
#: doc/classes/CanvasItem.xml
-#, fuzzy
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 "
@@ -15826,7 +15868,7 @@ msgid ""
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."
@@ -15886,6 +15928,9 @@ msgid ""
"This only occurs [b]once[/b] per frame, even if this method has been called "
"multiple times."
msgstr ""
+"将该 [CanvasItem] 加入重绘队列。空闲时,如果 [CanvasItem] 可见,则会发送 "
+"[constant NOTIFICATION_DRAW] 并调用 [method _draw]。即便多次调用这个方法,每"
+"帧也都只会发生[b]一次[/b]绘制。"
#: doc/classes/CanvasItem.xml
msgid ""
@@ -15932,11 +15977,11 @@ 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 ""
@@ -15946,6 +15991,9 @@ msgid ""
"[b]Note:[/b] Deferred connections do not allow drawing through the "
"[code]draw_*[/code] methods."
msgstr ""
+"当该 [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."
@@ -16014,21 +16062,20 @@ msgstr ""
"set_notify_local_transform] 启用时,才会收到这个通知。"
#: doc/classes/CanvasItem.xml
-#, fuzzy
msgid "The [CanvasItem] is requested to draw (see [method _draw])."
-msgstr "要求绘制[CanvasItem]。"
+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."
@@ -16173,6 +16220,9 @@ msgid ""
"Together with [member follow_viewport_scale] it can be used for a pseudo 3D "
"effect."
msgstr ""
+"启用时,该 [CanvasLayer] 会使用视区的变换,所以它会随相机移动,而不是保持在屏"
+"幕上的某个固定位置。\n"
+"与 [member follow_viewport_scale] 配合可以实现伪 3D 效果。"
#: doc/classes/CanvasLayer.xml
msgid ""
@@ -16802,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."
@@ -16860,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."
@@ -16875,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."
@@ -16905,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."
@@ -16949,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
@@ -16969,7 +17019,7 @@ msgid ""
"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] 作为参数的方法中使用这些 ID。"
#: doc/classes/CollisionObject.xml doc/classes/CollisionObject2D.xml
msgid "If [code]true[/code], the shape owner and its shapes are disabled."
@@ -16980,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."
@@ -17375,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] 以使其具有检测形状,或将其添加到物理体 "
@@ -17421,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] 以"
@@ -18761,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)."
@@ -18782,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 "
@@ -18792,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]节点。建议使用凸分解模式(实体)或多"
@@ -19876,6 +19940,9 @@ msgid ""
"[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 ""
@@ -23316,7 +23383,6 @@ msgid "A mathematic curve."
msgstr "数学曲线。"
#: doc/classes/Curve.xml
-#, fuzzy
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 "
@@ -23325,7 +23391,8 @@ msgid ""
"[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 ""
@@ -23487,7 +23554,6 @@ msgstr ""
"它保留了沿曲线的预计算点的缓存,以加快进一步的计算。"
#: doc/classes/Curve2D.xml doc/classes/Curve3D.xml
-#, fuzzy
msgid ""
"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[/"
@@ -23499,13 +23565,12 @@ msgid ""
"exceed the number of existing points in the line. See [method "
"get_point_count]."
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]),该点将被追加在点列"
-"表的最后。"
+"在指定的位置 [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 ""
@@ -30211,6 +30276,10 @@ msgid ""
"line feed characters ([code]\\n[/code], LF) represent a new line (Unix "
"convention)."
msgstr ""
+"以 [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]."
@@ -30992,7 +31061,6 @@ msgstr ""
"另请参阅 [method CanvasItem.draw_string]。"
#: doc/classes/Font.xml
-#, fuzzy
msgid ""
"Draw character [code]char[/code] into a canvas item using the font at a "
"given position, with [code]modulate[/code] color, and optionally kerning if "
@@ -31007,7 +31075,9 @@ msgstr ""
"[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)."
@@ -31068,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 ""
@@ -32955,7 +33025,6 @@ msgid ""
msgstr "颜色插值器资源,可用于在用户定义的颜色点之间生成颜色。"
#: doc/classes/Gradient.xml
-#, fuzzy
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 gradient will "
@@ -32969,7 +33038,8 @@ msgstr ""
"给定一组颜色,这个资源将依次两两插值。这意味着,如果你有颜色 1、颜色 2和颜色 "
"3,渐变将从颜色 1 插值到颜色2、从颜色 2 插值到颜色 3。渐变最初有两种颜色(黑"
"色和白色),一种(黑色)位于渐变较低的偏移量 0 处,另一种(白色)位于渐变较高"
-"的偏移量 1 处。"
+"的偏移量 1 处。\n"
+"另请参阅 [Curve],支持更多复杂的缓动函数,但不支持颜色。"
#: doc/classes/Gradient.xml
msgid ""
@@ -34629,7 +34699,6 @@ msgid "Low-level hyper-text transfer protocol client."
msgstr "低级别的超文本传输协议客户端。"
#: doc/classes/HTTPClient.xml
-#, fuzzy
msgid ""
"Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used "
"to make HTTP requests to download web content, upload files and other data "
@@ -34664,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]以获得完整的例"
@@ -37710,7 +37779,6 @@ msgid "Stops the vibration of the joypad."
msgstr "停止游戏手柄的振动。"
#: doc/classes/Input.xml
-#, fuzzy
msgid ""
"Vibrate handheld devices.\n"
"[b]Note:[/b] This method is implemented on Android, iOS, and HTML5.\n"
@@ -37721,10 +37789,12 @@ msgid ""
"[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 ""
@@ -38166,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
@@ -38197,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 ""
@@ -38791,6 +38861,11 @@ msgid ""
"[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 ""
@@ -38810,6 +38885,10 @@ msgid ""
"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 ""
@@ -41756,33 +41835,35 @@ msgid ""
"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
-#, fuzzy
msgid "Returns the amount of points in the line."
-msgstr "返回骨架中的骨骼数量。"
+msgstr "返回线段中的点的数量。"
#: doc/classes/Line2D.xml
-#, fuzzy
msgid "Returns the position of the point at index [code]index[/code]."
-msgstr "返回索引 [code]point[/code] 处的点的位置。"
+msgstr "返回索引 [code]index[/code] 处的点的位置。"
#: doc/classes/Line2D.xml
-#, fuzzy
msgid "Removes the point at index [code]index[/code] from the line."
-msgstr "将索引 [code]i[/code] 处的点从直线中移除。"
+msgstr "将索引 [code]index[/code] 处的点从直线中移除。"
#: doc/classes/Line2D.xml
-#, fuzzy
msgid ""
"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 ""
@@ -43336,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."
@@ -43377,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 "
@@ -43678,7 +43767,6 @@ msgid "Node that instances meshes into a scenario."
msgstr "网格实例与场景相结合的节点。"
#: doc/classes/MeshInstance.xml
-#, fuzzy
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 "
@@ -43687,10 +43775,10 @@ msgid ""
"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 ""
@@ -44258,7 +44346,6 @@ msgstr ""
"set_as_bulk_array] 也可以进行插值。"
#: doc/classes/MultiMesh.xml
-#, fuzzy
msgid ""
"Sets the color of a specific instance by [i]multiplying[/i] the mesh's "
"existing vertex colors.\n"
@@ -44268,10 +44355,11 @@ msgid ""
"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 ""
@@ -45668,11 +45756,12 @@ msgid ""
msgstr "抵达由 [method set_target_location] 设置的玩家定义目标时发出通知。"
#: doc/classes/NavigationAgent.xml doc/classes/NavigationAgent2D.xml
-#, fuzzy
msgid ""
"Notifies when the collision avoidance velocity is calculated after a call to "
"[method set_velocity]. Only emitted when [member avoidance_enabled] is true."
-msgstr "调用 [method set_velocity] 后,计算出防撞速度时发出通知。"
+msgstr ""
+"调用 [method set_velocity] 后,计算出防撞速度时发出通知。仅在 [member "
+"avoidance_enabled] 为真时发出。"
#: doc/classes/NavigationAgent2D.xml
msgid "2D agent used in navigation for collision avoidance."
@@ -46708,6 +46797,10 @@ msgid ""
"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 ""
@@ -46723,6 +46816,15 @@ msgid ""
"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."
@@ -51713,7 +51815,6 @@ msgstr ""
"[b]注意:[/b]返回 HTML5 和 UWP 上的空字符串,因为此方法尚未在这些平台上实施。"
#: doc/classes/OS.xml
-#, fuzzy
msgid ""
"Returns the current UNIX epoch timestamp in seconds.\n"
"[b]Important:[/b] This is the system clock that the user can manually set. "
@@ -51729,7 +51830,9 @@ msgstr ""
"[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 ""
@@ -58379,11 +58482,12 @@ msgstr ""
"[b]注意:[/b]被移除项后的项的索引将被移位 1。"
#: doc/classes/PopupMenu.xml
-#, fuzzy
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]。"
+msgstr ""
+"将当前聚焦项目设置为给定的索引 [code]index[/code]。\n"
+"将 [code]-1[/code] 作为索引传入不会聚焦任何项目。"
#: doc/classes/PopupMenu.xml
msgid "Hides the [PopupMenu] when the window loses focus."
@@ -58641,7 +58745,6 @@ msgid "Class for displaying popups with a panel background."
msgstr "用于显示带有面板背景的弹出窗口的类。"
#: doc/classes/PopupPanel.xml
-#, fuzzy
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. "
@@ -58651,7 +58754,9 @@ msgid ""
msgstr ""
"用于显示具有面板背景的弹出窗口的类。在某些情况下,它可能比 [Popup] 更容易使"
"用,因为它提供了一个可配置的背景。如果你正在制作窗口,最好是查看 "
-"[WindowDialog]。"
+"[WindowDialog]。\n"
+"任何添加为这个 [PopupPanel] 子项的 [Control] 都会被拉伸到与面板一样的大小"
+"(与 [PanelContainer] 类似)。"
#: doc/classes/PopupPanel.xml
msgid "The background panel style of this [PopupPanel]."
@@ -59611,6 +59716,11 @@ msgid ""
"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 ""
@@ -62936,6 +63046,15 @@ msgid ""
"[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 ""
@@ -67680,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 剔除。某些编辑器"
@@ -68266,7 +68390,6 @@ msgstr ""
"[method change_scene] 调用之后,你无法立即访问到它。"
#: doc/classes/SceneTree.xml
-#, fuzzy
msgid ""
"Changes the running scene to a new instance of the given [PackedScene].\n"
"Returns [constant OK] on success or [constant ERR_CANT_CREATE] if the scene "
@@ -68280,8 +68403,9 @@ 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 ""
@@ -68467,6 +68591,9 @@ msgid ""
"Changing the value of [member debug_collisions_hint] while the project is "
"running will not have the desired effect."
msgstr ""
+"如果为 [code]true[/code],从编辑器中运行游戏时会显示碰撞形状,方便调试。\n"
+"[b]注意:[/b]这个属性不应在运行时更改。在运行项目时更改 [member "
+"debug_collisions_hint] 的值不会有想要的效果。"
#: doc/classes/SceneTree.xml
msgid ""
@@ -68476,6 +68603,9 @@ msgid ""
"Changing the value of [member debug_navigation_hint] while the project is "
"running will not have the desired effect."
msgstr ""
+"如果为 [code]true[/code],从编辑器中运行游戏时会显示导航多边形,方便调试。\n"
+"[b]注意:[/b]这个属性不应在运行时更改。在运行项目时更改 [member "
+"debug_navigation_hint] 的值不会有想要的效果。"
#: doc/classes/SceneTree.xml
msgid "The root of the edited scene."
@@ -68798,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"
@@ -68856,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 "
@@ -68868,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"
@@ -70068,6 +70214,9 @@ msgid ""
"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."
@@ -71240,7 +71389,6 @@ msgstr ""
"纹理,那么这个值会与其 Alpha 通道相乘。"
#: doc/classes/SpatialMaterial.xml
-#, fuzzy
msgid ""
"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
"the specular blob and aligns it to tangent space. This is useful for brushed "
@@ -71260,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 ""
@@ -72975,13 +73124,12 @@ msgstr ""
"region_rect]。"
#: doc/classes/Sprite3D.xml
-#, fuzzy
msgid ""
"[Texture] object to draw. If [member GeometryInstance.material_override] is "
"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."
@@ -74571,7 +74719,6 @@ msgid "Returns the right side of the string from a given position."
msgstr "返回该字符串指定位置右侧的内容。"
#: doc/classes/String.xml
-#, fuzzy
msgid ""
"Splits the string by a [code]delimiter[/code] string and returns an array of "
"the substrings, starting from right.\n"
@@ -74595,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"
@@ -74664,7 +74813,6 @@ msgid "Returns a simplified canonical path."
msgstr "返回简化的规范路径。"
#: doc/classes/String.xml
-#, fuzzy
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"
@@ -74689,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"
@@ -74703,7 +74853,6 @@ msgstr ""
"如果您需要使用更复杂的规则拆分字符串,请改用 [RegEx] 类。"
#: doc/classes/String.xml
-#, fuzzy
msgid ""
"Splits the string in floats by using a delimiter string and returns an array "
"of the substrings.\n"
@@ -74715,7 +74864,9 @@ msgid ""
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 ""
@@ -76132,9 +76283,8 @@ msgid "Returns [code]true[/code] if select with right mouse button is enabled."
msgstr "如果启用鼠标右键选择,则返回 [code]true[/code]。"
#: doc/classes/Tabs.xml
-#, fuzzy
msgid "Returns the button icon from the tab at index [code]tab_idx[/code]."
-msgstr "返回索引 [code]tab_idx[/code] 处的选项卡的标题。"
+msgstr "返回索引 [code]tab_idx[/code] 处的选项卡的按钮图标。"
#: doc/classes/Tabs.xml
msgid "Returns the number of hidden tabs offsetted to the left."
@@ -76166,9 +76316,8 @@ msgid ""
msgstr "如果为 [code]true[/code],启用鼠标右键选择选项卡。"
#: doc/classes/Tabs.xml
-#, fuzzy
msgid "Sets the button icon from the tab at index [code]tab_idx[/code]."
-msgstr "为索引 [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]."
@@ -76217,11 +76366,10 @@ msgstr ""
"通过鼠标拖动重新排列活动选项卡时发出。见 [member drag_to_rearrange_enabled]。"
#: doc/classes/Tabs.xml
-#, fuzzy
msgid ""
"Emitted when a tab's right button is pressed. See [method "
"set_tab_button_icon]."
-msgstr "按下自定义按钮时发出。见 [method add_button]。"
+msgstr "选项卡的右侧按钮被按下时发出。见 [method set_tab_button_icon]。"
#: doc/classes/Tabs.xml
msgid "Emitted when a tab is clicked, even if it is the current tab."
@@ -77813,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] 主题项。"
@@ -77874,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]使用。"
@@ -77896,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] 返回,并"
@@ -77920,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 ""
@@ -77930,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] 使用。"
@@ -77946,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]使用。"
@@ -77969,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"
@@ -78000,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] 返回 "
@@ -78014,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]的形式填入每个主"
@@ -78038,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]返回,其中填入了唯一的类型名称,以供"
@@ -78062,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"
@@ -78089,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"
@@ -78158,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] 处的 "
@@ -78213,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"
@@ -82166,7 +82361,7 @@ msgstr "使具有相同名称的后续动作合并为一个。"
msgid ""
"Universal Plug and Play (UPnP) functions for network device discovery, "
"querying and port forwarding."
-msgstr ""
+msgstr "通用即插即用(UPnP)功能,用于网络设备的发现、查询及端口映射。"
#: modules/upnp/doc_classes/UPNP.xml
msgid ""
@@ -82257,13 +82452,86 @@ msgid ""
"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"
+"var upnp = UPNP.new()\n"
+"upnp.discover()\n"
+"upnp.add_port_mapping(7777)\n"
+"[/codeblock]\n"
+"要关闭指定端口(例如结束使用后):\n"
+"[codeblock]\n"
+"upnp.delete_port_mapping(port)\n"
+"[/codeblock]\n"
+"[b]注意:[/b]UPnP 发现会阻塞当前线程。要在不阻塞主线程的前提下执行发现,请像"
+"这样使用 [Thread]:\n"
+"[codeblock]\n"
+"# UPnP 端口映射建立完成时发出(无论成败)。\n"
+"signal upnp_completed(error)\n"
+"\n"
+"# 请将其替换为你自己的服务器端口号,在 1024 和 65535 之间。\n"
+"const SERVER_PORT = 3928\n"
+"var thread = null\n"
+"\n"
+"func _upnp_setup(server_port):\n"
+" # UPNP 查询比较耗时。\n"
+" var upnp = UPNP.new()\n"
+" var err = upnp.discover()\n"
+"\n"
+" if err != OK:\n"
+" push_error(str(err))\n"
+" emit_signal(\"upnp_completed\", err)\n"
+" return\n"
+"\n"
+" if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway():\n"
+" upnp.add_port_mapping(server_port, server_port, ProjectSettings."
+"get_setting(\"application/config/name\"), \"UDP\")\n"
+" upnp.add_port_mapping(server_port, server_port, ProjectSettings."
+"get_setting(\"application/config/name\"), \"TCP\")\n"
+" emit_signal(\"upnp_completed\", OK)\n"
+"\n"
+"func _ready():\n"
+" thread = Thread.new()\n"
+" thread.start(self, \"_upnp_setup\", SERVER_PORT)\n"
+"\n"
+"func _exit_tree():\n"
+" # 游戏退出但线程还在运行时,在此处等待线程完成。\n"
+" thread.wait_to_finish()\n"
+"[/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."
msgstr "将给定的 [UPNPDevice] 添加到已发现设备的列表中。"
#: modules/upnp/doc_classes/UPNP.xml
-#, fuzzy
msgid ""
"Adds a mapping to forward the external [code]port[/code] (between 1 and "
"65535, although recommended to use port 1024 or above) on the default "
@@ -82297,25 +82565,33 @@ msgid ""
"[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."
msgstr "清除已发现设备的列表。"
#: modules/upnp/doc_classes/UPNP.xml
-#, fuzzy
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] "
@@ -82325,10 +82601,11 @@ msgid ""
"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 ""
@@ -82550,10 +82827,9 @@ msgstr "未知错误。"
#: modules/upnp/doc_classes/UPNPDevice.xml
msgid "Universal Plug and Play (UPnP) device."
-msgstr ""
+msgstr "通用即插即用(UPnP)设备。"
#: modules/upnp/doc_classes/UPNPDevice.xml
-#, fuzzy
msgid ""
"Universal Plug and Play (UPnP) device. See [UPNP] for UPnP discovery and "
"utility functions. Provides low-level access to UPNP control commands. "
@@ -82561,9 +82837,9 @@ msgid ""
"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 ""
@@ -89809,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 "
@@ -92688,11 +92968,12 @@ msgstr ""
"依赖,并允许引用被释放。"
#: doc/classes/WeakRef.xml
-#, fuzzy
msgid ""
"Returns the [Object] this weakref is referring to. Returns [code]null[/code] "
"if that object no longer exists."
-msgstr "返回指定属性的初始值。如果属性不存在,则返回 [code]null[/code]。"
+msgstr ""
+"返回这个弱引用所引用的 [Object]。如果该对象不复存在,则返回 [code]null[/"
+"code]。"
#: modules/webrtc/doc_classes/WebRTCDataChannel.xml
msgid "Closes this data channel, notifying the other peer."