From 8c1817f755b63a69378774d8d0f74499f663afe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 8 Sep 2023 12:10:22 +0200 Subject: [PATCH] i18n: Sync translations with Weblate (cherry picked from commit f2c8eea60e41add6dac398d6a930d22e03f8b22d) --- doc/translations/es.po | 11 +- doc/translations/fr.po | 12 - doc/translations/zh_CN.po | 8719 ++++++++++++++++++++--- editor/translations/editor/ar.po | 8 +- editor/translations/editor/ca.po | 25 +- editor/translations/editor/de.po | 72 +- editor/translations/editor/es.po | 64 +- editor/translations/editor/fa.po | 58 +- editor/translations/editor/fr.po | 187 +- editor/translations/editor/id.po | 284 +- editor/translations/editor/it.po | 148 +- editor/translations/editor/ko.po | 395 +- editor/translations/editor/pl.po | 59 +- editor/translations/editor/pt_BR.po | 435 +- editor/translations/editor/ru.po | 249 +- editor/translations/editor/sv.po | 194 +- editor/translations/editor/tr.po | 97 +- editor/translations/editor/vi.po | 29 +- editor/translations/editor/zh_CN.po | 65 +- editor/translations/properties/de.po | 27 +- editor/translations/properties/fr.po | 9 +- editor/translations/properties/id.po | 1052 ++- editor/translations/properties/ko.po | 16 +- editor/translations/properties/pt_BR.po | 430 +- editor/translations/properties/ru.po | 187 +- editor/translations/properties/tr.po | 26 +- editor/translations/properties/zh_CN.po | 9 +- 27 files changed, 11738 insertions(+), 1129 deletions(-) diff --git a/doc/translations/es.po b/doc/translations/es.po index 77f120ac45f2..2ebf84d64d9d 100644 --- a/doc/translations/es.po +++ b/doc/translations/es.po @@ -14433,9 +14433,9 @@ msgstr "" msgid "" "The amount of restitution once the limits are surpassed. The lower, the more " -"velocityenergy gets lost." +"velocity-energy gets lost." msgstr "" -"La cantidad de la restitución una vez que se superen los límites. Cuanto más " +"El monto de la restitución una vez que se superen los límites. Cuanto más " "bajo, más energía de velocidad se pierde." msgid "The amount of damping once the slider limits are surpassed." @@ -17472,13 +17472,6 @@ msgstr "" "definido por [member linear_limit/lower_distance] y [member linear_limit/" "upper_distance]." -msgid "" -"The amount of restitution once the limits are surpassed. The lower, the more " -"velocity-energy gets lost." -msgstr "" -"El monto de la restitución una vez que se superen los límites. Cuanto más " -"bajo, más energía de velocidad se pierde." - msgid "" "Increasing this value will improve the resulting simulation, but can affect " "performance. Use with care." diff --git a/doc/translations/fr.po b/doc/translations/fr.po index cfcb9c896886..a07195f505e7 100644 --- a/doc/translations/fr.po +++ b/doc/translations/fr.po @@ -4201,9 +4201,6 @@ msgstr "" "Si [code]true[/code], la lecture commence dès que le AudioStreamPlayer3D est " "ajouté à la scène." -msgid "Sets the absolute maximum of the soundlevel, in decibels." -msgstr "Définit le maximum absolu du niveau sonore, en décibels." - msgid "The [AudioStream] resource to be played." msgstr "La ressource [AudioStream] à jouer." @@ -19638,15 +19635,6 @@ msgstr "" "Retourne un nouveau vecteur avec tous les composants en valeurs absolues " "(c'est-à-dire toujours positif)." -msgid "" -"Returns the angle to the given vector, in radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustration of the returned angle.[/url]" -msgstr "" -"Retourne l'angle au vecteur donné, en radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustration de l'angle retourné.[/url]" - msgid "" "Returns the aspect ratio of this vector, the ratio of [member x] to [member " "y]." diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po index 8aa591854ef6..e267d1ceb2e3 100644 --- a/doc/translations/zh_CN.po +++ b/doc/translations/zh_CN.po @@ -79,11 +79,12 @@ # Zae Chao , 2023. # SamBillon , 2023. # ZhuQiLi <552084128@qq.com>, 2023. +# HIM049 , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2023-08-17 11:10+0000\n" +"PO-Revision-Date: 2023-09-08 09:58+0000\n" "Last-Translator: Haoyu Qiu \n" "Language-Team: Chinese (Simplified) \n" @@ -92,7 +93,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 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Description" msgstr "描述" @@ -1285,10 +1286,10 @@ msgid "" "depth. Just like the next group ends the previous group, so do the subsequent " "subgroups." msgstr "" -"为接下来的导出属性定义一个新的子分组。这有助于组织检查器面板中的属性。子分组的" -"工作方式与分组类似,只是它们依赖于一个父级分组。请参阅 [annotation " +"为接下来的导出属性定义一个新的子分组。有助于组织检查器面板中的属性。子分组的工" +"作方式与分组类似,只是它们依赖于一个父级分组。见 [annotation " "@export_group]。\n" -"另请参见 [constant PROPERTY_USAGE_SUBGROUP]。\n" +"另见 [constant PROPERTY_USAGE_SUBGROUP]。\n" "[codeblock]\n" "@export_group(\"Racer Properties\")\n" "@export var nickname = \"Nick\"\n" @@ -1323,10 +1324,10 @@ msgstr "" "[codeblock]\n" "@icon(\"res://path/to/class/icon.svg\")\n" "[/codeblock]\n" -"[b]注意:[/b] 只有脚本可以有一个自定义的图标。不支持内部类。\n" -"[b]注意:[/b] 由于注解描述了它们的主题,[code]@icon[/code] 注解必须放在类定义" -"和继承之前。\n" -"[b]注意:[/b] 不同于其他注解,[code]@icon[/code] 注解的参数必须是一个字符串 " +"[b]注意:[/b]只有脚本可以有一个自定义的图标。不支持内部类。\n" +"[b]注意:[/b]由于注解描述了它们的主题,[code]@icon[/code] 注解必须放在类定义和" +"继承之前。\n" +"[b]注意:[/b]不同于其他注解,[code]@icon[/code] 注解的参数必须是一个字符串 " "(不支持常量表达式)。" msgid "" @@ -1426,7 +1427,7 @@ msgid "" "default values." msgstr "" "使具有静态变量的脚本在所有引用丢失之后不会持久化。当该脚本再次加载时,这些静态" -"变量将恢复为它们的默认值。" +"变量将恢复为默认值。" msgid "" "Mark the current script as a tool script, allowing it to be loaded and " @@ -1540,9 +1541,9 @@ msgstr "" "var f = abs(Vector3i(-7, -8, -9))\n" "# f=(7, 8, 9)\n" "[/codeblock]\n" -"[b]注意:[/b] 为了更好的类型安全,请使用 [method absf]、[method absi]、" -"[method Vector2.abs]、[method Vector2i.abs]、[method Vector3.abs]、[method " -"Vector3i.abs]、[method Vector4.abs] 或 [method Vector4i.abs]。" +"[b]注意:[/b]为了更好的类型安全,请使用 [method absf]、[method absi]、[method " +"Vector2.abs]、[method Vector2i.abs]、[method Vector3.abs]、[method Vector3i." +"abs]、[method Vector4.abs] 或 [method Vector4i.abs]。" msgid "" "Returns the absolute value of float parameter [param x] (i.e. positive " @@ -1892,41 +1893,6 @@ msgstr "" "var r = deg_to_rad(180) # r 是 3.141593\n" "[/codeblock]" -msgid "" -"Returns an \"eased\" value of [param x] based on an easing function defined " -"with [param curve]. This easing function is based on an exponent. The [param " -"curve] can be any floating-point number, with specific values leading to the " -"following behaviors:\n" -"[codeblock]\n" -"- Lower than -1.0 (exclusive): Ease in-out\n" -"- 1.0: Linear\n" -"- Between -1.0 and 0.0 (exclusive): Ease out-in\n" -"- 0.0: Constant\n" -"- Between 0.0 to 1.0 (exclusive): Ease out\n" -"- 1.0: Linear\n" -"- Greater than 1.0 (exclusive): Ease in\n" -"[/codeblock]\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n" -"See also [method smoothstep]. If you need to perform more advanced " -"transitions, use [method Tween.interpolate_value]." -msgstr "" -"基于用 [param curve] 定义的缓动函数返回 [param x] 的“缓动后”的值。该缓动函数是" -"基于指数的。[param curve] 可以是任意浮点数,具体数值会导致以下行为:\n" -"[codeblock]\n" -"- 低于 -1.0(开区间):缓入缓出\n" -"- -1.0:线性\n" -"- 在 -1.0 和 0.0 之间(开区间):缓出缓入\n" -"- 0.0:恒定\n" -"- 在 0.0 到 1.0 之间(开区间):缓出\n" -"- 1.0:线性\n" -"- 大于 1.0(开区间):缓入\n" -"[/codeblock]\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"ease_cheatsheet.png]ease() 曲线值速查表[/url]\n" -"另请参阅 [method smoothstep]。如果你需要执行更高级的过渡,请使用 [method " -"Tween.interpolate_value]。" - msgid "" "Returns a human-readable name for the given [enum Error] code.\n" "[codeblock]\n" @@ -2250,7 +2216,7 @@ msgstr "" "code]。当 [param a] 和 [param b] 为引用类型时,如果它们的引用对象相同,那么返" "回 [code]true[/code]。\n" "[codeblock]\n" -"# Vector2 is a value type\n" +"# Vector2 是值类型\n" "var vec2_a = Vector2(0, 0)\n" "var vec2_b = Vector2(0, 0)\n" "var vec2_c = Vector2(1, 1)\n" @@ -2258,7 +2224,7 @@ msgstr "" "is_same(vec2_a, vec2_b) # true\n" "is_same(vec2_a, vec2_c) # false\n" "\n" -"# Array is a reference type\n" +"# Array 是引用类型\n" "var arr_a = []\n" "var arr_b = []\n" "is_same(arr_a, arr_a) # true\n" @@ -3302,51 +3268,6 @@ msgstr "" "sinh(a) # 返回 0.75\n" "[/codeblock]" -msgid "" -"Returns the result of smoothly interpolating the value of [param x] between " -"[code]0[/code] and [code]1[/code], based on the where [param x] lies with " -"respect to the edges [param from] and [param to].\n" -"The return value is [code]0[/code] if [code]x <= from[/code], and [code]1[/" -"code] if [code]x >= to[/code]. If [param x] lies between [param from] and " -"[param to], the returned value follows an S-shaped curve that maps [param x] " -"between [code]0[/code] and [code]1[/code].\n" -"This S-shaped curve is the cubic Hermite interpolator, given by [code]f(y) = " -"3*y^2 - 2*y^3[/code] where [code]y = (x-from) / (to-from)[/code].\n" -"[codeblock]\n" -"smoothstep(0, 2, -5.0) # Returns 0.0\n" -"smoothstep(0, 2, 0.5) # Returns 0.15625\n" -"smoothstep(0, 2, 1.0) # Returns 0.5\n" -"smoothstep(0, 2, 2.0) # Returns 1.0\n" -"[/codeblock]\n" -"Compared to [method ease] with a curve value of [code]-1.6521[/code], [method " -"smoothstep] returns the smoothest possible curve with no sudden changes in " -"the derivative. If you need to perform more advanced transitions, use [Tween] " -"or [AnimationPlayer].\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, " -"-1.6521) return values[/url]" -msgstr "" -"返回 [param x] 在 [code]0[/code] 和 [code]1[/code] 之间平滑插值的结果,基于 " -"[param x] 相对于边 [param from] 和 [param to] 的位置。\n" -"如果 [code]x <= from[/code],则返回值为 [code]0[/code];如果 [code]x >= to[/" -"code],则返回值为 [code]1[/code]。如果 [param x] 位于 [param from] 和 [param " -"to] 之间,则返回值遵循一条将 [param x] 映射到 [code]0[/code] 和 [code]1[/" -"code] 之间的 S 形曲线。\n" -"这条 S 形曲线是三次 Hermite 插值器,由 [code]f(y) = 3*y^2 - 2*y^3[/code] 给" -"出,其中 [code]y = (x-from) / (to-from)[/code]。\n" -"[codeblock]\n" -"smoothstep(0, 2, -5.0) # 返回 0.0\n" -"smoothstep(0, 2, 0.5) # 返回 0.15625\n" -"smoothstep(0, 2, 1.0) # 返回 0.5\n" -"smoothstep(0, 2, 2.0) # 返回 1.0\n" -"[/codeblock]\n" -"与曲线值为 [code]-1.6521[/code] 的 [method ease] 相比,[method smoothstep] 返" -"回最平滑的曲线,导数没有突然变化。如果您需要执行更高级的过渡,请使用 [Tween] " -"或 [AnimationPlayer]。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"smoothstep_ease_comparison.png]smoothstep() 与 ease(x, -1.6521) 返回值的比较[/" -"url]" - msgid "" "Returns the multiple of [param step] that is the closest to [param x]. This " "can also be used to round a floating point number to an arbitrary number of " @@ -5830,7 +5751,7 @@ msgid "Represents the size of the [enum Variant.Operator] enum." msgstr "代表 [enum Variant.Operator] 枚举的大小。" msgid "A 3D axis-aligned bounding box." -msgstr "3D 轴对齐包围盒。" +msgstr "3D 轴对齐边界框。" msgid "" "[AABB] consists of a position, a size, and several utility functions. It is " @@ -6096,7 +6017,7 @@ msgstr "" "建的按钮。[param action] 将在按钮被按下时传递给 [signal custom_action] 信" "号。\n" "如果 [param right] 为 [code]true[/code],按钮会被放置在所有同级按钮的右侧。\n" -"您可以使用 [method remove_button] 方法从对话框中移除使用该方法创建的按钮。" +"可以使用 [method remove_button] 方法从对话框中移除使用该方法创建的按钮。" msgid "" "Adds a button with label [param name] and a cancel action to the dialog and " @@ -6758,7 +6679,7 @@ msgid "" msgstr "" "将 [Texture2D] 分配给给定的帧。帧 ID 从 0 开始,因此第一帧的 ID 为 0,动画的最" "后一帧的 ID 为 [member frames] - 1。\n" -"您可以定义最多 [constant MAX_FRAMES] 个纹理,但要记住,只有 0 到 [member " +"最多可以定义 [constant MAX_FRAMES] 个纹理,但要记住,只有 0 到 [member " "frames] - 1 的帧会成为动画的一部分。" msgid "" @@ -6775,8 +6696,8 @@ msgid "" "the animation to take new frames into account. The maximum number of frames " "is [constant MAX_FRAMES]." msgstr "" -"动画中要使用的帧数。虽然您可以使用 [method set_frame_texture] 独立创建帧,但是" -"您需要为动画设置此值以考虑新帧。最大帧数为 [constant MAX_FRAMES]。" +"动画中要使用的帧数。虽然你可以使用 [method set_frame_texture] 独立创建帧,但是" +"你需要为动画设置这个值,才能考虑到新帧。最大帧数为 [constant MAX_FRAMES]。" msgid "" "If [code]true[/code], the animation will only play once and will not loop " @@ -7711,6 +7632,26 @@ msgid "" "[AnimationNodeBlendTree]." msgstr "在 [AnimationNodeBlendTree] 中将三个动画中的两个动画相加。" +msgid "" +"A resource to add to an [AnimationNodeBlendTree]. Blends two animations out " +"of three additively out of three based on the amount value.\n" +"This animation node has three inputs:\n" +"- The base animation to add to\n" +"- A \"-add\" animation to blend with when the blend amount is negative\n" +"- A \"+add\" animation to blend with when the blend amount is positive\n" +"If the absolute value of the amount is greater than [code]1.0[/code], the " +"animation connected to \"in\" port is blended with the amplified animation " +"connected to \"-add\"/\"+add\" port." +msgstr "" +"可添加到 [AnimationNodeBlendTree] 的资源。根据取值将三个动画中的两个进行加法混" +"合。\n" +"这个动画节点有三个输入:\n" +"- 加法混合的基础动画\n" +"- 混合取值为负时进行混合的“-add”动画\n" +"- 混合取值为正时进行混合的“+add”动画\n" +"如果取值的绝对值大于 [code]1.0[/code],则与“in”端口相连的动画相混合的是放大后" +"的与“-add”/“+add”端口相连的动画。" + msgid "An input animation for an [AnimationNodeBlendTree]." msgstr "[AnimationNodeBlendTree] 的输入动画。" @@ -7758,6 +7699,28 @@ msgid "" "Blends two of three animations linearly inside of an [AnimationNodeBlendTree]." msgstr "在 [AnimationNodeBlendTree] 中将三个动画中的两个进行线性混合。" +msgid "" +"A resource to add to an [AnimationNodeBlendTree]. Blends two animations out " +"of three linearly out of three based on the amount value.\n" +"This animation node has three inputs:\n" +"- The base animation to blend with\n" +"- A \"-blend\" animation to blend with when the blend amount is negative " +"value\n" +"- A \"+blend\" animation to blend with when the blend amount is positive " +"value\n" +"In general, the blend value should be in the [code][-1.0, 1.0][/code] range. " +"Values outside of this range can blend amplified animations, however, " +"[AnimationNodeAdd3] works better for this purpose." +msgstr "" +"可添加到 [AnimationNodeBlendTree] 的资源。根据取值将三个动画中的两个进行线性混" +"合。\n" +"这个动画节点有三个输入:\n" +"- 加法混合的基础动画\n" +"- 混合取值为负时进行混合的“-blend”动画\n" +"- 混合取值为正时进行混合的“+blend”动画\n" +"一般而言,混合值应该在 [code][-1.0, 1.0][/code] 的范围内。在此范围外的取值能够" +"混合放大后的动画,然而这种场合使用 [AnimationNodeAdd3] 更合适。" + msgid "" "A set of [AnimationRootNode]s placed on a virtual axis, crossfading between " "the two adjacent ones. Used by [AnimationTree]." @@ -7785,9 +7748,9 @@ msgid "" "using the [param at_index] argument. If you use the default value for [param " "at_index], the point is inserted at the end of the blend points array." msgstr "" -"在虚拟轴上 [param pos] 设定的给定位置,添加一个新点代表 [param node]。您可以使" -"用 [param at_index] 参数在特定的索引处插入新点。如果您使用 [param at_index] 的" -"默认值,该点会被插入到混合点数组的末尾。" +"在虚拟轴上 [param pos] 设定的给定位置添加一个代表 [param node] 的新点。你可以" +"使用 [param at_index] 参数将其插入到特定的索引处。如果使用 [param at_index] 的" +"默认值,这个点会被插入到混合点数组的末尾。" msgid "Returns the number of points on the blend axis." msgstr "返回混合轴上的点的数量。" @@ -7842,6 +7805,11 @@ msgstr "混合空间虚拟轴的标签。" msgid "The interpolation between animations is linear." msgstr "动画之间的插值是线性的。" +msgid "" +"The blend space plays the animation of the animation node which blending " +"position is closest to. Useful for frame-by-frame 2D animations." +msgstr "混合空间播放混合位置最接近的动画节点的动画。可用于逐帧的 2D 动画。" + msgid "" "Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at " "the last animation's playback position." @@ -7856,15 +7824,35 @@ msgstr "" "一组放置在 2D 坐标上的 [AnimationRootNode],在三个相邻节点之间交叉淡化。被 " "[AnimationTree] 使用。" +msgid "" +"A resource used by [AnimationNodeBlendTree].\n" +"[AnimationNodeBlendSpace1D] represents a virtual 2D space on which " +"[AnimationRootNode]s are placed. Outputs the linear blend of the three " +"adjacent animations using a [Vector2] weight. Adjacent in this context means " +"the three [AnimationRootNode]s making up the triangle that contains the " +"current value.\n" +"You can add vertices to the blend space with [method add_blend_point] and " +"automatically triangulate it by setting [member auto_triangles] to " +"[code]true[/code]. Otherwise, use [method add_triangle] and [method " +"remove_triangle] to triangulate the blend space by hand." +msgstr "" +"[AnimationNodeBlendTree] 使用的资源。\n" +"[AnimationNodeBlendSpace1D] 代表放置 [AnimationRootNode] 的虚拟 2D 空间。输出" +"的是使用 [Vector2] 权重对相邻的三个动画进行线性混合的结果。此处的“相邻”指的是" +"构成包含当前值的三角形的三个 [AnimationRootNode]。\n" +"你可以使用 [method add_blend_point] 向混合空间中添加顶点,将 [member " +"auto_triangles] 设为 [code]true[/code] 可以将其自动三角形化。否则,请使用 " +"[method add_triangle] 和 [method remove_triangle] 手动对混合空间进行三角形化。" + msgid "" "Adds a new point that represents a [param node] at the position set by [param " "pos]. You can insert it at a specific index using the [param at_index] " "argument. If you use the default value for [param at_index], the point is " "inserted at the end of the blend points array." msgstr "" -"在 [param pos] 设定的位置添加一个代表 [param node] 的新点。您可以使用 [param " -"at_index] 参数将它插入到特定的索引中。如果您使用 [param at_index] 的默认值,这" -"个点会被插入到混合点数组的末尾。" +"在 [param pos] 设定的位置添加一个代表 [param node] 的新点。你可以使用 [param " +"at_index] 参数将其插入到特定的索引中。如果使用 [param at_index] 的默认值,这个" +"点会被插入到混合点数组的末尾。" msgid "" "Creates a new triangle using three points [param x], [param y], and [param " @@ -7938,6 +7926,25 @@ msgid "" msgstr "" "用于复杂动画的许多类型 [AnimationNode] 的子树。由 [AnimationTree] 使用。" +msgid "" +"This animation node may contain a sub-tree of any other type animation nodes, " +"such as [AnimationNodeTransition], [AnimationNodeBlend2], " +"[AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most " +"commonly used animation node roots.\n" +"An [AnimationNodeOutput] node named [code]output[/code] is created by default." +msgstr "" +"这个动画节点可以包含任何其他类型动画节点的子树,例如 " +"[AnimationNodeTransition]、[AnimationNodeBlend2]、[AnimationNodeBlend3]、" +"[AnimationNodeOneShot] 等。这是最常用的动画节点根之一。\n" +"默认会创建一个名为 [code]output[/code] 的 [AnimationNodeOutput] 节点。" + +msgid "" +"Adds an [AnimationNode] at the given [param position]. The [param name] is " +"used to identify the created sub animation node later." +msgstr "" +"在给定的位置 [param position] 添加一个 [AnimationNode]。[param name] 用于后续" +"识别该创建的子动画节点。" + msgid "" "Connects the output of an [AnimationNode] as input for another " "[AnimationNode], at the input port specified by [param input_index]." @@ -7945,6 +7952,22 @@ msgstr "" "连接一个 [AnimationNode] 的输出作为另一个 [AnimationNode] 的输入,连接在 " "[param input_index] 指定的输入端口。" +msgid "Disconnects the animation node connected to the specified input." +msgstr "断开连接到指定输入端的动画节点。" + +msgid "Returns the sub animation node with the specified [param name]." +msgstr "返回名称为 [param name] 的子动画节点。" + +msgid "" +"Returns the position of the sub animation node with the specified [param " +"name]." +msgstr "返回名称为 [param name] 的子动画节点的位置。" + +msgid "" +"Returns [code]true[/code] if a sub animation node with specified [param name] " +"exists." +msgstr "如果存在名称为 [param name] 的动画子节点,则返回 [code]true[/code]。" + msgid "Removes a sub animation node." msgstr "移除一个子动画节点。" @@ -7981,6 +8004,126 @@ msgstr "指定的连接已经存在。" msgid "Plays an animation once in an [AnimationNodeBlendTree]." msgstr "在 [AnimationNodeBlendTree] 中播放一次动画。" +msgid "" +"A resource to add to an [AnimationNodeBlendTree]. This animation node will " +"execute a sub-animation and return once it finishes. Blend times for fading " +"in and out can be customized, as well as filters.\n" +"After setting the request and changing the animation playback, the one-shot " +"node automatically clears the request on the next process frame by setting " +"its [code]request[/code] value to [constant ONE_SHOT_REQUEST_NONE].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Play child animation connected to \"shot\" port.\n" +"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FIRE)\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FIRE\n" +"\n" +"# Abort child animation connected to \"shot\" port.\n" +"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot." +"ONE_SHOT_REQUEST_ABORT)\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot." +"ONE_SHOT_REQUEST_ABORT\n" +"\n" +"# Abort child animation with fading out connected to \"shot\" port.\n" +"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FADE_OUT)\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FADE_OUT\n" +"\n" +"# Get current state (read-only).\n" +"animation_tree.get(\"parameters/OneShot/active\")\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/OneShot/active\"]\n" +"\n" +"# Get current internal state (read-only).\n" +"animation_tree.get(\"parameters/OneShot/internal_active\")\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/OneShot/internal_active\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// Play child animation connected to \"shot\" port.\n" +"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot." +"OneShotRequest.Fire);\n" +"\n" +"// Abort child animation connected to \"shot\" port.\n" +"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot." +"OneShotRequest.Abort);\n" +"\n" +"// Abort child animation with fading out connected to \"shot\" port.\n" +"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot." +"OneShotRequest.FadeOut);\n" +"\n" +"// Get current state (read-only).\n" +"animationTree.Get(\"parameters/OneShot/active\");\n" +"\n" +"// Get current internal state (read-only).\n" +"animationTree.Get(\"parameters/OneShot/internal_active\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"添加到 [AnimationNodeBlendTree] 的资源。这个动画节点将执行子动画并在完成后返" +"回。可以自定义淡入和淡出的混合时间以及过滤器。\n" +"在设置请求并更改动画播放后,一次性节点会在下一个处理帧中通过将其 " +"[code]request[/code] 值设置为 [constant ONE_SHOT_REQUEST_NONE] 来自动清除请" +"求。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 播放连接到 “shot” 端口的子动画。\n" +"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FIRE)\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FIRE\n" +"\n" +"# 中止连接到 “shot” 端口的子动画。\n" +"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot." +"ONE_SHOT_REQUEST_ABORT)\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FADE_OUT\n" +"\n" +"# 使用淡出的方法中止连接到 “shot”端口的子动画。\n" +"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FADE_OUT)\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot." +"ONE_SHOT_REQUEST_FADE_OUT\n" +"\n" +"# 获取当前状态(只读)。\n" +"animation_tree.get(\"parameters/OneShot/active\"))\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/OneShot/active\"]\n" +"\n" +"# 获取当前内部状态(只读)。\n" +"animation_tree.get(\"parameters/OneShot/internal_active\")\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/OneShot/internal_active\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// 播放连接到 “shot” 端口的子动画。\n" +"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot." +"OneShotRequest.Fire);\n" +"\n" +"// 中止连接到 “shot” 端口的子动画。\n" +"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot." +"OneShotRequest.Abort);\n" +"\n" +"// 使用淡出的方法中止连接到 “shot”端口的子动画。\n" +"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot." +"OneShotRequest.FadeOut);\n" +"\n" +"// 获取当前状态(只读)。\n" +"animationTree.Get(\"parameters/OneShot/active\");\n" +"\n" +"// 获取当前内部状态(只读)。\n" +"animationTree.Get(\"parameters/OneShot/internal_active\");\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "If [code]true[/code], the sub-animation will restart automatically after " "finishing.\n" @@ -8060,6 +8203,41 @@ msgid "" "A state machine with multiple [AnimationRootNode]s, used by [AnimationTree]." msgstr "带有多个 [AnimationRootNode] 的状态机,用于 [AnimationTree]。" +msgid "" +"Contains multiple [AnimationRootNode]s representing animation states, " +"connected in a graph. State transitions can be configured to happen " +"automatically or via code, using a shortest-path algorithm. Retrieve the " +"[AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to " +"control it programmatically.\n" +"[b]Example:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/" +"playback\") as AnimationNodeStateMachinePlayback;\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"包含表示动画状态的多个 [AnimationRootNode],以图的形式连接。可以使用最短路径算" +"法,将节点过渡配置为自动发生或通过代码发生。要以编程的方式控制过渡,请从 " +"[AnimationTree] 节点获取 [AnimationNodeStateMachinePlayback] 对象。\n" +"[b]示例:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var state_machine = $AnimationTree.get(\"parameters/playback\")\n" +"state_machine.travel(\"some_state\")\n" +"[/gdscript]\n" +"[csharp]\n" +"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/" +"playback\") as AnimationNodeStateMachinePlayback;\n" +"stateMachine.Travel(\"some_state\");\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Adds a new animation node to the graph. The [param position] is used for " "display in the editor." @@ -8400,6 +8578,34 @@ msgstr "" "如果 [member advance_condition] 和 [member advance_expression] 检查为真,则自" "动使用该过渡(如果已分配)。" +msgid "" +"Blends two animations subtractively inside of an [AnimationNodeBlendTree]." +msgstr "在 [AnimationNodeBlendTree] 中对两个动画进行减法混合。" + +msgid "" +"A resource to add to an [AnimationNodeBlendTree]. Blends two animations " +"subtractively based on the amount value.\n" +"This animation node is usually used for pre-calculation to cancel out any " +"extra poses from the animation for the \"add\" animation source in " +"[AnimationNodeAdd2] or [AnimationNodeAdd3].\n" +"In general, the blend value should be in the [code][0.0, 1.0][/code] range, " +"but values outside of this range can be used for amplified or inverted " +"animations.\n" +"[b]Note:[/b] This calculation is different from using a negative value in " +"[AnimationNodeAdd2], since the transformation matrices do not satisfy the " +"commutative law. [AnimationNodeSub2] multiplies the transformation matrix of " +"the inverted animation from the left side, while negative [AnimationNodeAdd2] " +"multiplies it from the right side." +msgstr "" +"要添加到 [AnimationNodeBlendTree] 的资源。根据数量值以减法方式混合两个动画。\n" +"该动画节点通常用于预先计算,从 [AnimationNodeAdd2] 或 [AnimationNodeAdd3] " +"的“添加”动画源的动画中抵消额外的姿势。\n" +"一般而言,混合值应在 [code][0.0, 1.0][/code] 范围内,但超出该范围的值可用于放" +"大或反转动画。\n" +"[b]注意:[/b]因为变换矩阵不满足交换律,这个计算不同于在 [AnimationNodeAdd2] 中" +"使用负值。[AnimationNodeSub2] 从左侧乘以反转动画的变换矩阵,而负的 " +"[AnimationNodeAdd2] 则是从右侧相乘。" + msgid "AnimationTree" msgstr "AnimationTree" @@ -8428,9 +8634,140 @@ msgstr "" msgid "A time-seeking animation node used in [AnimationTree]." msgstr "对时间进行检索的动画节点,在 [AnimationTree] 中使用。" +msgid "" +"This animation node can be used to cause a seek command to happen to any sub-" +"children of the animation graph. Use to play an [Animation] from the start or " +"a certain playback position inside the [AnimationNodeBlendTree].\n" +"After setting the time and changing the animation playback, the time seek " +"node automatically goes into sleep mode on the next process frame by setting " +"its [code]seek_request[/code] value to [code]-1.0[/code].\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Play child animation from the start.\n" +"animation_tree.set(\"parameters/TimeSeek/seek_request\", 0.0)\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/TimeSeek/seek_request\"] = 0.0\n" +"\n" +"# Play child animation from 12 second timestamp.\n" +"animation_tree.set(\"parameters/TimeSeek/seek_request\", 12.0)\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/TimeSeek/seek_request\"] = 12.0\n" +"[/gdscript]\n" +"[csharp]\n" +"// Play child animation from the start.\n" +"animationTree.Set(\"parameters/TimeSeek/seek_request\", 0.0);\n" +"\n" +"// Play child animation from 12 second timestamp.\n" +"animationTree.Set(\"parameters/TimeSeek/seek_request\", 12.0);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"这个动画节点可用于使检索命令发生在动画图的任何次级子节点上。用于从 " +"[AnimationNodeBlendTree] 的开头或某个特定播放位置开始播放 [Animation]。\n" +"设置时间并更改动画播放后,时间检索节点会在下一个处理帧中将其 " +"[code]seek_request[/code] 值设置为 [code]-1.0[/code],自动进入睡眠模式。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 从开始处播放子动画。\n" +"animation_tree.set(\"parameters/TimeSeek/seek_request\", 0.0)\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/TimeSeek/seek_request\"] = 0.0\n" +"\n" +"# 从 12 秒的时间戳开始播放子动画。\n" +"animation_tree.set(\"parameters/TimeSeek/seek_request\", 12.0)\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/TimeSeek/seek_request\"] = 12.0\n" +"[/gdscript]\n" +"[csharp]\n" +"// 从开始处播放子动画。\n" +"animationTree.Set(\"parameters/TimeSeek/seek_request\", 0.0);\n" +"\n" +"// 从 12 秒的时间戳开始播放子动画。\n" +"animationTree.Set(\"parameters/TimeSeek/seek_request\", 12.0);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "A transition within an [AnimationTree] connecting two [AnimationNode]s." msgstr "[AnimationTree] 中连接两个 [AnimationNode] 的过渡。" +msgid "" +"Simple state machine for cases which don't require a more advanced " +"[AnimationNodeStateMachine]. Animations can be connected to the inputs and " +"transition times can be specified.\n" +"After setting the request and changing the animation playback, the transition " +"node automatically clears the request on the next process frame by setting " +"its [code]transition_request[/code] value to empty.\n" +"[b]Note:[/b] When using a cross-fade, [code]current_state[/code] and " +"[code]current_index[/code] change to the next state immediately after the " +"cross-fade begins.\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Play child animation connected to \"state_2\" port.\n" +"animation_tree.set(\"parameters/Transition/transition_request\", " +"\"state_2\")\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/Transition/transition_request\"] = \"state_2\"\n" +"\n" +"# Get current state name (read-only).\n" +"animation_tree.get(\"parameters/Transition/current_state\")\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/Transition/current_state\"]\n" +"\n" +"# Get current state index (read-only).\n" +"animation_tree.get(\"parameters/Transition/current_index\")\n" +"# Alternative syntax (same result as above).\n" +"animation_tree[\"parameters/Transition/current_index\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// Play child animation connected to \"state_2\" port.\n" +"animationTree.Set(\"parameters/Transition/transition_request\", " +"\"state_2\");\n" +"\n" +"// Get current state name (read-only).\n" +"animationTree.Get(\"parameters/Transition/current_state\");\n" +"\n" +"// Get current state index (read-only).\n" +"animationTree.Get(\"parameters/Transition/current_index\");\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"适用于不需要更高级 [AnimationNodeStateMachine] 的情况的简单状态机。可以将动画" +"连接到输入,还可以指定过渡时间。\n" +"设置请求并更改动画播放后,过渡节点会在下一个处理帧中通过将其 " +"[code]transition_request[/code] 值设置为空,来自动清除请求。\n" +"[b]注意:[/b]使用交叉淡入淡出时,[code]current_state[/code] 和 " +"[code]current_index[/code] 在交叉淡入淡出开始后立即更改为下一个状态。\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 播放连接到 “state_2” 端口的子动画。\n" +"animation_tree.set(\"parameters/Transition/transition_request\", " +"\"state_2\")\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/Transition/transition_request\"] = \"state_2\"\n" +"\n" +"# 获取当前状态名称(只读)。\n" +"animation_tree.get(\"parameters/Transition/current_state\")\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/Transition/current_state\"]\n" +"\n" +"# 获取当前状态索引(只读)。\n" +"animation_tree.get(\"parameters/Transition/current_index\"))\n" +"# 替代语法(与上述结果相同)。\n" +"animation_tree[\"parameters/Transition/current_index\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// 播放连接到 “state_2” 端口的子动画。\n" +"animationTree.Set(\"parameters/Transition/transition_request\", " +"\"state_2\");\n" +"\n" +"// 获取当前状态名称(只读)。\n" +"animationTree.Get(\"parameters/Transition/current_state\");\n" +"\n" +"// 获取当前状态索引(只读)。\n" +"animationTree.Get(\"parameters/Transition/current_index\");\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns whether the animation restarts when the animation transitions from " "the other animation." @@ -8473,6 +8810,30 @@ msgstr "连接到输入的每个动画之间的交叉渐变时间(秒)。" msgid "A node used for animation playback." msgstr "用于播放动画的节点。" +msgid "" +"An animation player is used for general-purpose playback of animations. It " +"contains a dictionary of [AnimationLibrary] resources and custom blend times " +"between animation transitions.\n" +"Some methods and properties use a single key to reference an animation " +"directly. These keys are formatted as the key for the library, followed by a " +"forward slash, then the key for the animation within the library, for example " +"[code]\"movement/run\"[/code]. If the library's key is an empty string (known " +"as the default library), the forward slash is omitted, being the same key " +"used by the library.\n" +"[AnimationPlayer] is better-suited than [Tween] for more complex animations, " +"for example ones with non-trivial timings. It can also be used over [Tween] " +"if the animation track editor is more convenient than doing it in code.\n" +"Updating the target properties of animations occurs at the process frame." +msgstr "" +"动画播放器用于动画的通用播放。它包含 [AnimationLibrary] 资源的字典和动画过渡之" +"间的自定义混合时间。\n" +"某些方法和属性使用单个键直接引用动画。这些键的格式为动画库的键,后跟正斜杠,然" +"后是动画库内动画的键,例如 [code]\"movement/run\"[/code]。如果动画库的键为空字" +"符串(称为默认库),则省略正斜杠,与动画库使用相同的键。\n" +"[AnimationPlayer] 比 [Tween] 更适合用于复杂动画,例如不规则计时的动画。如果用" +"动画轨道编辑器比用代码实现更方便,也可以优先于 [Tween] 使用。\n" +"更新动画的目标属性是在处理帧中进行的。" + msgid "A virtual function for processing after key getting during playback." msgstr "一个用于播放期间键获取之后的处理的虚函数。" @@ -8519,6 +8880,17 @@ msgstr "" "返回包含 [param animation] 的 [AnimationLibrary] 的键;如果找不到,则返回一个" "空的 [StringName]。" +msgid "" +"Returns the first [AnimationLibrary] with key [param name] or [code]null[/" +"code] if not found.\n" +"To get the [AnimationPlayer]'s global animation library, use " +"[code]get_animation_library(\"\")[/code]." +msgstr "" +"返回第一个键为 [param name] 的 [AnimationLibrary],如果没有找到则返回 " +"[code]null[/code]。\n" +"要获得 [AnimationPlayer] 的全局动画库,请使用 " +"[code]get_animation_library(\"\")[/code]。" + msgid "Returns the list of stored library keys." msgstr "返回存储库的键名列表。" @@ -8559,6 +8931,36 @@ msgstr "" "assigned_animation] 相同的动画名称,将恢复动画。\n" "另见 [method stop]。" +msgid "" +"Plays the animation with key [param name]. Custom blend times and speed can " +"be set.\n" +"The [param from_end] option only affects when switching to a new animation " +"track, or if the same track but at the start or end. It does not affect " +"resuming playback that was paused in the middle of an animation. If [param " +"custom_speed] is negative and [param from_end] is [code]true[/code], the " +"animation will play backwards (which is equivalent to calling [method " +"play_backwards]).\n" +"The [AnimationPlayer] keeps track of its current or last played animation " +"with [member assigned_animation]. If this method is called with that same " +"animation [param name], or with no [param name] parameter, the assigned " +"animation will resume playing if it was paused.\n" +"[b]Note:[/b] The animation will be updated the next time the " +"[AnimationPlayer] is processed. If other variables are updated at the same " +"time this is called, they may be updated too early. To perform the update " +"immediately, call [code]advance(0)[/code]." +msgstr "" +"播放键名为 [param name] 的动画。可以设置自定义混合时间和速度。\n" +"[param from_end] 选项仅在切换到新的动画轨道,或在相同轨道的开始或结束时生效。" +"它不影响在动画被中途暂停时恢复播放。如果 [param custom_speed] 为负,且 [param " +"from_end] 为 [code]true[/code],则动画将向后播放(相当于调用 [method " +"play_backwards])。\n" +"[AnimationPlayer] 使用 [member assigned_animation] 跟踪其当前或上次播放的动" +"画。如果使用相同的动画 [param name] 或没有 [param name] 参数调用此方法,则分配" +"的动画将在暂停时恢复播放。\n" +"[b]注意:[/b]动画将在下次处理 [AnimationPlayer] 时更新。如果在调用该方法的同时" +"更新了其他变量,则它们可能更新得太早。要立即执行更新,请调用 [code]advance(0)" +"[/code]。" + msgid "" "Queues an animation for playback once the current one is done.\n" "[b]Note:[/b] If a looped animation is currently playing, the queued animation " @@ -8793,6 +9195,22 @@ msgstr "" "合)、[AnimationNodeBlendSpace1D](能够在[b]两个[/b] [AnimationNode] 之间进行线" "性混合)等。" +msgid "A node used for advanced animation transitions in an [AnimationPlayer]." +msgstr "用于 [AnimationPlayer] 中高级动画过渡的节点。" + +msgid "" +"A node used for advanced animation transitions in an [AnimationPlayer].\n" +"[b]Note:[/b] When linked with an [AnimationPlayer], several properties and " +"methods of the corresponding [AnimationPlayer] will not function as expected. " +"Playback and transitions should be handled using only the [AnimationTree] and " +"its constituent [AnimationNode](s). The [AnimationPlayer] node should be used " +"solely for adding, deleting, and editing animations." +msgstr "" +"用于 [AnimationPlayer] 中高级动画过渡的节点。\n" +"[b]注意:[/b]与 [AnimationPlayer] 连接时,该 [AnimationPlayer] 的部分属性和方" +"法将不会像预期的那样发挥作用。播放和过渡应该只使用 [AnimationTree] 和组成它的 " +"[AnimationNode] 来处理。[AnimationPlayer] 节点应仅用于添加、删除和编辑动画。" + msgid "Manually advance the animations by the specified time (in seconds)." msgstr "手动将动画前进指定的时间(单位为秒)。" @@ -8855,7 +9273,7 @@ msgstr "" " move_and_slide()\n" "[/gdscript]\n" "[/codeblocks]\n" -"通过将其与 [method get_root_motion_position_accumulator] 结合使用,您可以更正" +"通过将其与 [method get_root_motion_position_accumulator] 结合使用,你可以更正" "确地应用根运动位置来考虑节点的旋转。\n" "[codeblocks]\n" "[gdscript]\n" @@ -10721,35 +11139,6 @@ msgstr "" msgid "Returns the number of elements in the array." msgstr "返回数组中元素的个数。" -msgid "" -"Returns the slice of the [Array], from [param begin] (inclusive) to [param " -"end] (exclusive), as a new [Array].\n" -"The absolute value of [param begin] and [param end] will be clamped to the " -"array size, so the default value for [param end] makes it slice to the size " -"of the array by default (i.e. [code]arr.slice(1)[/code] is a shorthand for " -"[code]arr.slice(1, arr.size())[/code]).\n" -"If either [param begin] or [param end] are negative, they will be relative to " -"the end of the array (i.e. [code]arr.slice(0, -2)[/code] is a shorthand for " -"[code]arr.slice(0, arr.size() - 2)[/code]).\n" -"If specified, [param step] is the relative index between source elements. It " -"can be negative, then [param begin] must be higher than [param end]. For " -"example, [code][0, 1, 2, 3, 4, 5].slice(5, 1, -2)[/code] returns [code][5, 3]" -"[/code].\n" -"If [param deep] is true, each element will be copied by value rather than by " -"reference." -msgstr "" -"返回该 [Array] 的切片,是从 [param begin](含)到 [param end](不含)的全新 " -"[Array]。\n" -"[param begin] 和 [param end] 的绝对值会按数组大小进行限制,所以 [param end] 的" -"默认值会切到数组大小为止(即 [code]arr.slice(1)[/code] 是 [code]arr.slice(1, " -"arr.size())[/code] 的简写)。\n" -"如果 [param begin] 或 [param end] 为负,则表示相对于数组的末尾(即 [code]arr." -"slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的简写)。\n" -"如果指定了 [param step],则会用作原始元素的索引间距。这个参数可以为负,此时 " -"[param begin] 必须大于 [param end]。例如,[code][0, 1, 2, 3, 4, 5].slice(5, " -"1, -2)[/code] 会返回 [code][5, 3][/code]。\n" -"如果 [param deep] 为 true,则每个元素都会按值复制,而不是按引用复制。" - msgid "" "Sorts the array.\n" "[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/" @@ -10847,7 +11236,7 @@ msgstr "" "[b]注意:[/b]排序所使用的算法并不[url=https://zh.wikipedia.org/wiki/" "%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95#%E7%A9%A9%E5%AE%9A%E6%80%A7]稳定[/url]。" "也就是说,使用 [method sort_custom] 时相等的值之间的顺序可能会改变。\n" -"[b]注意:[/b]您不能随机化返回值,因为堆排序算法期望确定的结果。随机化返回值将" +"[b]注意:[/b]你不能随机化返回值,因为堆排序算法期望确定的结果。随机化返回值将" "导致意外行为。\n" "[codeblocks]\n" "[gdscript]\n" @@ -11667,7 +12056,7 @@ msgid "" msgstr "" "返回一个数组,其中包含 AStar2D 在给定点之间找到的路径中的点。数组从路径的起点" "到终点进行排序。\n" -"[b]注意:[/b] 该方法不是线程安全的。如果从 [Thread] 调用,它将返回一个空的 " +"[b]注意:[/b]该方法不是线程安全的。如果从 [Thread] 调用,它将返回一个空的 " "[PackedVector2Array] 并打印一条错误消息。" msgid "Returns the position of the point associated with the given [param id]." @@ -11714,6 +12103,115 @@ msgstr "" "为给定的 [param id] 的点设置 [param weight_scale]。在确定从邻接点到这个点的一" "段路程的总成本时,[param weight_scale] 要乘以 [method _compute_cost] 的结果。" +msgid "" +"An implementation of A* for finding the shortest path between two vertices on " +"a connected graph in 3D space." +msgstr "A* 的一种实现,用于寻找 3D 空间中连接图中的两个顶点之间的最短路径。" + +msgid "" +"A* (A star) is a computer algorithm used in pathfinding and graph traversal, " +"the process of plotting short paths among vertices (points), passing through " +"a given set of edges (segments). It enjoys widespread use due to its " +"performance and accuracy. Godot's A* implementation uses points in 3D space " +"and Euclidean distances by default.\n" +"You must add points manually with [method add_point] and create segments " +"manually with [method connect_points]. Once done, you can test if there is a " +"path between two points with the [method are_points_connected] function, get " +"a path containing indices by [method get_id_path], or one containing actual " +"coordinates with [method get_point_path].\n" +"It is also possible to use non-Euclidean distances. To do so, create a class " +"that extends [code]AStar3D[/code] and override methods [method _compute_cost] " +"and [method _estimate_cost]. Both take two indices and return a length, as is " +"shown in the following example.\n" +"[codeblocks]\n" +"[gdscript]\n" +"class MyAStar:\n" +" extends AStar3D\n" +"\n" +" func _compute_cost(u, v):\n" +" return abs(u - v)\n" +"\n" +" func _estimate_cost(u, v):\n" +" return min(0, abs(u - v) - 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"public partial class MyAStar : AStar3D\n" +"{\n" +" public override float _ComputeCost(long fromId, long toId)\n" +" {\n" +" return Mathf.Abs((int)(fromId - toId));\n" +" }\n" +"\n" +" public override float _EstimateCost(long fromId, long toId)\n" +" {\n" +" return Mathf.Min(0, Mathf.Abs((int)(fromId - toId)) - 1);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[method _estimate_cost] should return a lower bound of the distance, i.e. " +"[code]_estimate_cost(u, v) <= _compute_cost(u, v)[/code]. This serves as a " +"hint to the algorithm because the custom [code]_compute_cost[/code] might be " +"computation-heavy. If this is not the case, make [method _estimate_cost] " +"return the same value as [method _compute_cost] to provide the algorithm with " +"the most accurate information.\n" +"If the default [method _estimate_cost] and [method _compute_cost] methods are " +"used, or if the supplied [method _estimate_cost] method returns a lower bound " +"of the cost, then the paths returned by A* will be the lowest-cost paths. " +"Here, the cost of a path equals the sum of the [method _compute_cost] results " +"of all segments in the path multiplied by the [code]weight_scale[/code]s of " +"the endpoints of the respective segments. If the default methods are used and " +"the [code]weight_scale[/code]s of all points are set to [code]1.0[/code], " +"then this equals the sum of Euclidean distances of all segments in the path." +msgstr "" +"A*(A 星)是一种计算机算法,用于寻路和图遍历,是通过一组给定的边(线段),在顶" +"点(点)之间绘制短路径的过程。由于其性能和准确性,它被广泛使用。Godot 的 A* 实" +"现默认使用 3D 空间中的点和欧几里得距离。\n" +"你需要使用 [method add_point] 手动添加点,并使用 [method connect_points] 手动" +"创建线段。完成后,可以使用 [method are_points_connected] 函数,测试两点之间是" +"否存在路径,通过 [method get_id_path] 获取包含索引的路径,或使用 [method " +"get_point_path] 获取包含实际坐标的路径。\n" +"也可以使用非欧几里得距离。为此,创建一个扩展 [code]AStar3D[/code] 的类,并覆盖" +"方法 [method _compute_cost] 和 [method _estimate_cost]。两者都接受两个索引并返" +"回一个长度,如以下示例所示。\n" +"[codeblocks]\n" +"[gdscript]\n" +"class MyAStar:\n" +" extends AStar3D\n" +"\n" +" func _compute_cost(u, v):\n" +" return abs(u - v)\n" +"\n" +" func _estimate_cost(u, v):\n" +" return min(0, abs(u - v) - 1)\n" +"[/gdscript]\n" +"[csharp]\n" +"public partial class MyAStar : AStar3D\n" +"{\n" +" public override float _ComputeCost(long fromId, long toId)\n" +" {\n" +" return Mathf.Abs((int)(fromId - toId));\n" +" }\n" +"\n" +" public override float _EstimateCost(long fromId, long toId)\n" +" {\n" +" return Mathf.Min(0, Mathf.Abs((int)(fromId - toId)) - 1);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[method _estimate_cost] 应该返回距离的下限,即 [code]_estimate_cost(u, v) <= " +"_compute_cost(u, v)[/code]。这可以作为算法的提示,因为自定义 " +"[code]_compute_cost[/code] 可能计算量很大。如果不是这种情况,请使 [method " +"_estimate_cost] 返回与 [method _compute_cost] 相同的值,以便为算法提供最准确的" +"信息。\n" +"如果使用默认的 [method _estimate_cost] 和 [method _compute_cost] 方法,或者如" +"果提供的 [method _estimate_cost] 方法返回成本的下限,则 A* 返回的路径将是成本" +"最低的路径。这里,路径的代价等于路径中所有段的 [method _compute_cost] 结果乘以" +"各个段端点的权重 [code]weight_scale[/code] 之和。如果使用默认方法,并且所有点" +"的 [code]weight_scale[/code] 设置为 [code]1.0[/code],则这等于路径中所有段的欧" +"几里得距离之和。" + msgid "" "Called when computing the cost between two connected points.\n" "Note that this function is hidden in the default [code]AStar3D[/code] class." @@ -12009,8 +12507,8 @@ msgid "" "adding a known large number of points at once, such as points on a grid. New " "capacity must be greater or equals to old capacity." msgstr "" -"该函数为 [param num_nodes] 个点内部预留空间。如果您一次添加了大量已知数量的" -"点,例如网格上的点,则此函数很有用。新的容量必须大于或等于旧的容量。" +"该函数为 [param num_nodes] 个点内部预留空间。如果一次添加了大量已知数量的点," +"例如网格上的点,则此函数很有用。新的容量必须大于或等于旧的容量。" msgid "" "An implementation of A* for finding the shortest path between two points on a " @@ -12118,7 +12616,7 @@ msgid "" msgstr "" "返回一个数组,其中包含 AStarGrid2D 在给定点之间找到的路径上的点。数组从路径的" "起点到终点排序。\n" -"[b]注意:[/b]该方法不是线程安全的。如果从 [Thread] 中调用它,它将返回一个空的 " +"[b]注意:[/b]该方法不是线程安全的。如果从 [Thread] 中调用它,它将返回一个空的 " "[PackedVector3Array] 并打印一个错误消息。" msgid "" @@ -12210,7 +12708,7 @@ msgid "" "scaling in pathfinding." msgstr "" "启用或禁用跳跃,以跳过中间点并加快搜索算法的速度。\n" -"[b]注意:[/b] 目前,打开它会在寻路过程中忽略权重缩放。" +"[b]注意:[/b]目前,打开它会在寻路过程中忽略权重缩放。" msgid "" "The offset of the grid which will be applied to calculate the resulting point " @@ -12220,6 +12718,13 @@ msgstr "" "栅格的偏移量,将被应用以计算 [method get_point_path] 返回的结果点的位置。如果" "发生变化,需要在查找下一条路径之前调用 [method update]。" +msgid "" +"The region of grid cells available for pathfinding. If changed, [method " +"update] needs to be called before finding the next path." +msgstr "" +"栅格上用来寻路的区域。如果发生变化,需要在查找下一条路径之前调用 [method " +"update]。" + msgid "" "The size of the grid (number of cells of size [member cell_size] on each " "axis). If changed, [method update] needs to be called before finding the next " @@ -12751,9 +13256,9 @@ msgid "" "Use it to create a custom equalizer if [AudioEffectEQ6], [AudioEffectEQ10] or " "[AudioEffectEQ21] don't fit your needs." msgstr "" -"音频均衡器的基础类。让你可以控制频率。\n" -"如果 [AudioEffectEQ6]、[AudioEffectEQ10] 或 [AudioEffectEQ21] 不符合您的需求," -"请使用它来创建一个自定义均衡器。" +"音频均衡器的基类。让你可以控制频率。\n" +"如果 [AudioEffectEQ6]、[AudioEffectEQ10] 或 [AudioEffectEQ21] 不符合你的需求," +"请用它来创建自定义均衡器。" msgid "" "AudioEffectEQ gives you control over frequencies. Use it to compensate for " @@ -12816,8 +13321,8 @@ msgid "" "frequencies from 22 Hz to 22000 Hz.\n" "Each frequency can be modulated between -60/+24 dB." msgstr "" -"向音频总线添加一个 21 频段均衡器音频效果。使您可以控制从 22 Hz 到 22000 Hz 的" -"频率。\n" +"向音频总线添加一个 21 频段均衡器音频效果。可以控制从 22 Hz 到 22000 Hz 的频" +"率。\n" "每个频率都可以在 -60/+24 dB 之间进行调制。" msgid "" @@ -12874,7 +13379,7 @@ msgid "" "frequencies from 32 Hz to 10000 Hz.\n" "Each frequency can be modulated between -60/+24 dB." msgstr "" -"向音频总线添加一个 6 频段均衡器音频效果。使您可以控制从 32 Hz 到 10000 Hz 的频" +"向音频总线添加一个 6 频段均衡器音频效果。可以控制从 32 Hz 到 10000 Hz 的频" "率。\n" "每个频率都可以在 -60/+24 dB 之间进行调制。" @@ -13307,8 +13812,8 @@ msgid "" msgstr "" "如果使用 [method make_current] 将监听器设为当前,则返回 [code]true[/code],否" "则返回 [code]false[/code]。\n" -"[b]注意:[/b] 场景树中标记为“当前”的 AudioListener3D 可能不止一个,但只会使用" -"最后被设置为当前的那个。" +"[b]注意:[/b]场景树中标记为“当前”的 AudioListener3D 可能不止一个,但只会使用最" +"后被设置为当前的那个。" msgid "Enables the listener. This will override the current camera's listener." msgstr "启用该监听器。将覆盖当前相机的监听器。" @@ -13357,6 +13862,13 @@ msgid "" "indices (and optionally channel)." msgstr "返回分配给给定总线和效果索引(以及可选的通道)的[AudioEffectInstance]。" +msgid "" +"Returns the index of the bus with the name [param bus_name]. Returns " +"[code]-1[/code] if no bus with the specified name exist." +msgstr "" +"返回名称为 [param bus_name] 的总线的索引。如果不存在指定名称的总线,则返回 " +"[code]-1[/code]。" + msgid "Returns the name of the bus with the index [param bus_idx]." msgstr "返回索引为 [param bus_idx] 的总线的名称。" @@ -13760,7 +14272,7 @@ msgid "" "[/codeblocks]" msgstr "" "包含以字节为单位的音频数据。\n" -"您可以使用下面的代码片段,加载文件而无需事先导入它。请记住,此代码段将整个文件" +"你可以使用下面的代码片段,加载文件而无需事先导入它。请记住,此代码段将整个文件" "加载到内存中,对于大文件(数百兆字节或更多)可能并不理想。\n" "[codeblocks]\n" "[gdscript]\n" @@ -13948,7 +14460,7 @@ msgid "" "If [code]true[/code], the playback is paused. You can resume it by setting " "[code]stream_paused[/code] to [code]false[/code]." msgstr "" -"如果为 [code]true[/code],则暂停播放。您可以通过将 [code]stream_paused[/code] " +"如果为 [code]true[/code],则暂停播放。你可以通过将 [code]stream_paused[/code] " "设置为 [code]false[/code] 来恢复播放。" msgid "Volume of sound, in dB." @@ -14147,9 +14659,6 @@ msgstr "" "听者在 [member emission_angle_degrees] 之外且 [member emission_angle_enabled] " "被设置时使用的衰减系数,单位是分贝。" -msgid "Sets the absolute maximum of the soundlevel, in decibels." -msgstr "设置声级的绝对最大值,以分贝为单位。" - msgid "" "The distance past which the sound can no longer be heard at all. Only has an " "effect if set to a value greater than [code]0.0[/code]. [member max_distance] " @@ -14526,8 +15035,8 @@ msgid "" "\"draw\" signal. The visual state of the button is defined by the [enum " "DrawMode] enum." msgstr "" -"返回用于绘制按钮的视觉状态。当您通过覆盖 _draw() 或连接到“draw”信号来实现您自" -"己的绘制代码时,这很有用。按钮的视觉状态由 [enum DrawMode] 枚举定义。" +"返回用于绘制按钮的视觉状态。主要可以通过覆盖 _draw() 或连接到“draw”信号来实现" +"你自己的绘制代码。按钮的视觉状态由 [enum DrawMode] 枚举定义。" msgid "" "Returns [code]true[/code] if the mouse has entered the button and has not " @@ -14889,9 +15398,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 ao_texture] 的通道,其中存储环境遮挡信息。当您在一个纹理中存储多" -"个效果的信息时,这很有用。例如,如果您将金属效果存储在R通道中,将粗糙度存储在B" -"通道中,将环境遮挡存储在G通道中,就可以减少您使用的纹理数量。" +"指定 [member ao_texture] 的通道,其中存储环境遮挡信息。可以用来在一个纹理中存" +"储多个效果的信息。例如,如果你将金属效果存储在 R 通道中,将粗糙度存储在 B 通道" +"中,将环境遮挡存储在 G 通道中,就可以减少你使用的纹理数量。" msgid "" "The color used by the backlight effect. Represents the light passing through " @@ -16662,9 +17171,41 @@ msgstr "将位图中指定位置的元素设置为指定值。" msgid "Sets a rectangular portion of the bitmap to the specified value." msgstr "将位图的矩形部分设置为指定值。" +msgid "A joint used with [Skeleton2D] to control and animate other nodes." +msgstr "与 [Skeleton2D] 一起使用的关节,能够控制并动画其他节点。" + +msgid "" +"A hierarchy of [Bone2D]s can be bound to a [Skeleton2D] to control and " +"animate other [Node2D] nodes.\n" +"You can use [Bone2D] and [Skeleton2D] nodes to animate 2D meshes created with " +"the [Polygon2D] UV editor.\n" +"Each bone has a [member rest] transform that you can reset to with [method " +"apply_rest]. These rest poses are relative to the bone's parent.\n" +"If in the editor, you can set the rest pose of an entire skeleton using a " +"menu option, from the code, you need to iterate over the bones to set their " +"individual rest poses." +msgstr "" +"[Bone2D] 层级结构可以绑定到 [Skeleton2D] 上,控制并动画其他 [Node2D] 节点。\n" +"你可以使用 [Bone2D] 和 [Skeleton2D] 节点对使用 [Polygon2D] UV 编辑器创建的 2D " +"网格进行动画。\n" +"每个骨骼都有一个 [member rest] 变换,你可以用 [method apply_rest] 来重置到这个" +"变换。这些放松姿势是相对于骨骼的父节点而言的。\n" +"如果在编辑器中,你可以使用菜单选项设置整个骨架的放松姿势,从代码中,你需要遍历" +"骨骼来设置它们各自的放松姿势。" + msgid "Stores the node's current transforms in [member rest]." msgstr "将节点当前的变换存储在 [member rest] 中。" +msgid "" +"Returns whether this [Bone2D] is going to autocalculate its length and bone " +"angle using its first [Bone2D] child node, if one exists. If there are no " +"[Bone2D] children, then it cannot autocalculate these values and will print a " +"warning." +msgstr "" +"如果该 [Bone2D] 存在骨骼子节点,则返回是否要使用第一个 [Bone2D] 子节点自动计算" +"其长度和骨骼角度。如果没有 [Bone2D] 子节点,则无法自动计算这些值,会打印一条警" +"告。" + msgid "" "Returns the angle of the bone in the [Bone2D].\n" "[b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle " @@ -16718,7 +17259,7 @@ msgid "" "Rest transform of the bone. You can reset the node's transforms to this value " "using [method apply_rest]." msgstr "" -"骨骼的放松变换。您可以使用 [method apply_rest] 将节点的变换重置为这个值。" +"骨骼的放松变换。你可以使用 [method apply_rest] 将节点的变换重置为这个值。" msgid "" "А node that dynamically copies or overrides the 3D transform of a bone in its " @@ -16762,6 +17303,16 @@ msgstr "" "设置该 BoneAttachment3D 节点到其应使用的外部骨架的 [NodePath]。请参阅 [method " "set_use_external_skeleton] 以启用外部 [Skeleton3D] 节点。" +msgid "" +"Sets whether the BoneAttachment3D node will use an external [Skeleton3D] node " +"rather than attempting to use its parent node as the [Skeleton3D]. When set " +"to [code]true[/code], the BoneAttachment3D node will use the external " +"[Skeleton3D] node set in [method set_external_skeleton]." +msgstr "" +"设置该 BoneAttachment3D 节点是否将使用外部 [Skeleton3D] 节点,而不是尝试使用其" +"父节点作为 [Skeleton3D]。当设置为 [code]true[/code] 时,BoneAttachment3D 节点" +"将使用 [method set_external_skeleton] 中设置的外部 [Skeleton3D] 节点。" + msgid "The index of the attached bone." msgstr "所附着骨骼的索引。" @@ -17193,6 +17744,13 @@ msgstr "" "当此属性被启用时,过大而无法容纳按钮的文本会被剪掉,当被禁用时,按钮将始终有足" "够的宽度来容纳文本。" +msgid "" +"When enabled, the button's icon will expand/shrink to fit the button's size " +"while keeping its aspect. See also [theme_item icon_max_width]." +msgstr "" +"启用后,将在保持按钮图标长宽比的前提下对该图标进行扩展/收缩,从而适应按钮的大" +"小。另见 [theme_item icon_max_width]。" + msgid "Flat buttons don't display decoration." msgstr "平面按钮不显示装饰。" @@ -17206,6 +17764,16 @@ msgstr "" "要编辑图标的边距和间距,请使用 [theme_item h_separation] 主题属性,和所用 " "[StyleBox] 的 [code]content_margin_*[/code] 属性。" +msgid "" +"Specifies if the icon should be aligned horizontally to the left, right, or " +"center of a button. Uses the same [enum HorizontalAlignment] constants as the " +"text alignment. If centered horizontally and vertically, text will draw on " +"top of the icon." +msgstr "" +"指定图标在按钮上水平对齐的方式应该为左对齐、右对齐还是居中对齐。请使用与文本对" +"齐相同的 [enum HorizontalAlignment] 常量。如果水平居中并且垂直居中,则文本将被" +"绘制在图标之上。" + msgid "" "Language code used for line-breaking and text shaping algorithms, if left " "empty current locale is used instead." @@ -17225,6 +17793,16 @@ msgstr "" "设置文本超出节点的边界矩形时的裁剪行为。有关所有模式的描述,请参阅 [enum " "TextServer.OverrunBehavior]。" +msgid "" +"Specifies if the icon should be aligned vertically to the top, bottom, or " +"center of a button. Uses the same [enum VerticalAlignment] constants as the " +"text alignment. If centered horizontally and vertically, text will draw on " +"top of the icon." +msgstr "" +"指定图标在按钮上垂直对齐的方式应该为顶端对齐、底部对齐还是居中对齐。请使用与文" +"本对齐相同的 [enum VerticalAlignment] 常量。如果水平居中并且垂直居中,则文本将" +"被绘制在图标之上。" + msgid "Default text [Color] of the [Button]." msgstr "该 [Button] 的默认文本 [Color]。" @@ -18081,16 +18659,16 @@ msgid "" "[member SystemFont.multichannel_signed_distance_field] can be enabled in the " "inspector." msgstr "" -"相机的缩放。 设置为 [code]Vector(2, 2)[/code]的缩放值会使通过视口看到的尺寸翻" +"相机的缩放。 设置为 [code]Vector(2, 2)[/code] 的缩放值会使通过视口看到的尺寸翻" "倍。设置为 [code]Vector(0.5, 0.5)[/code]的缩放值会使会使通过视口看到的尺寸减" "半。\n" -"[b]注意:[/b] [member FontFile.oversampling] [i]不会[/i] 考虑 [Camera2D]的缩放" -"值。这意味着放大/缩小将导致位图字体和光栅化(非MSDF)动态字体看起来模糊或像素" +"[b]注意:[/b][member FontFile.oversampling] [i]不会[/i]考虑 [Camera2D] 的缩放" +"值。这意味着放大/缩小将导致位图字体和光栅化(非 MSDF)动态字体看起来模糊或像素" "化,除非字体是[CanvasLayer]的一部分从而使其忽略相机缩放。为了确保文本无论如何" -"缩放都保持清晰,您可以通过启用 [member ProjectSettings.gui/theme/" +"缩放都保持清晰,你可以通过启用 [member ProjectSettings.gui/theme/" "default_font_multichannel_signed_distance_field] (仅适用于默认项目字体)来启" -"用MSDF字体渲染,或在自定义字体的动态字体导入选项中启用[b]多通道带符号距离场[/" -"b]。对于系统字体,可以在检查器中启用[member SystemFont." +"用 MSDF 字体渲染,或在自定义字体的动态字体导入选项中启用[b]多通道带符号距离场" +"[/b]。对于系统字体,可以在检查器中启用 [member SystemFont." "multichannel_signed_distance_field] 。" msgid "" @@ -18107,14 +18685,14 @@ msgid "" "The camera updates during physics frames (see [constant Node." "NOTIFICATION_INTERNAL_PHYSICS_PROCESS])." msgstr "" -"相机在物理帧期间更新(请参阅 [constant Node.NOTIFICATION_INTERVAL " -"_PHYSICS_PROCESS])。" +"相机在物理帧期间更新(见 [constant Node." +"NOTIFICATION_INTERNAL_PHYSICS_PROCESS])。" msgid "" "The camera updates during process frames (see [constant Node." "NOTIFICATION_INTERNAL_PROCESS])." msgstr "" -"相机在进程帧期间更新(请参阅 [constant Node.NOTIFICATION_INTERNAL_PROCESS])。" +"相机在进程帧期间更新(见 [constant Node.NOTIFICATION_INTERNAL_PROCESS])。" msgid "Camera node, displays from a point of view." msgstr "相机节点,会从某个角度进行显示。" @@ -18142,6 +18720,12 @@ msgstr "" "如果这是当前相机,则将其从当前相机中移除。如果 [param enable_next] 为 " "[code]true[/code],则请求使下一个相机(如果有)成为当前相机。" +msgid "" +"Returns the projection matrix that this camera uses to render to its " +"associated viewport. The camera must be part of the scene tree to function." +msgstr "" +"返回该相机用于渲染至关联视口的投影矩阵。相机必须是场景树的一部分才能正常工作。" + msgid "Returns the camera's RID from the [RenderingServer]." msgstr "从 [RenderingServer] 返回该相机的 RID。" @@ -18178,30 +18762,6 @@ msgstr "" "返回包含该相机视锥的锥体形状的 RID,忽略相机的近处平面。锥体的尖端代表该相机的" "位置。" -msgid "" -"Returns [code]true[/code] if the given position is behind the camera (the " -"blue part of the linked diagram). [url=https://raw.githubusercontent.com/" -"godotengine/godot-docs/master/img/camera3d_position_frustum.png]See this " -"diagram[/url] for an overview of position query methods.\n" -"[b]Note:[/b] A position which returns [code]false[/code] may still be outside " -"the camera's field of view." -msgstr "" -"如果给定位置在相机后面(链接图的蓝色部分),则返回 [code]true[/code]。" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"camera3d_position_frustum.png]查看此图[/url]以了解位置查询方法的概述。\n" -"[b]注意:[/b]返回 [code]false[/code] 的位置可能仍然在相机的视野之外。" - -msgid "" -"Returns [code]true[/code] if the given position is inside the camera's " -"frustum (the green part of the linked diagram). [url=https://raw." -"githubusercontent.com/godotengine/godot-docs/master/img/" -"camera3d_position_frustum.png]See this diagram[/url] for an overview of " -"position query methods." -msgstr "" -"如果给定位置在相机的视锥(链接图的绿色部分)内,则返回 [code]true[/code]。" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"camera3d_position_frustum.png]查看此图[/url]以了解位置查询方法的概述。" - msgid "" "Makes this camera the current camera for the [Viewport] (see class " "description). If the camera node is outside the scene tree, it will attempt " @@ -18333,7 +18893,7 @@ msgstr "" "剔除掩码,描述该相机渲染了哪些 [member VisualInstance3D.layers]。默认情况下," "20 个用户可见层全都被渲染。\n" "[b]注意:[/b]由于 [member cull_mask] 允许总共存储 32 个层,因此另外 12 个层仅" -"供引擎内部使用,不会在编辑器中公开。使用脚本设置 [member cull_mask] 允许您切换" +"供引擎内部使用,不会在编辑器中公开。使用脚本设置 [member cull_mask] 允许你切换" "那些保留层,这对编辑器插件很有用。\n" "要使用脚本更轻松地调整 [member cull_mask],请使用 [method " "get_cull_mask_value] 和 [method set_cull_mask_value]。\n" @@ -18816,7 +19376,7 @@ msgstr "" msgid "" "A camera feed gives you access to a single physical camera attached to your " "device." -msgstr "通过相机源,您可以访问连接到设备的单个物理相机。" +msgstr "通过相机源,你可以访问连接到设备的单个物理相机。" msgid "" "A camera feed gives you access to a single physical camera attached to your " @@ -20005,7 +20565,7 @@ msgid "" msgstr "" "[GPUParticles2D] 或 [CPUParticles2D] 指定给 [Texture2D] 的精灵表中拥有的列" "数。\n" -"[b]注意:[/b] 该属性只有在 [member particles_animation] 为 [code]true[/code] " +"[b]注意:[/b]该属性只有在 [member particles_animation] 为 [code]true[/code] " "时,才会在编辑器中被使用和可见。" msgid "" @@ -20014,7 +20574,7 @@ msgid "" "particles_animation] is [code]true[/code]." msgstr "" "如果为 [code]true[/code],粒子动画将循环播放。\n" -"[b]注意:[/b] 该属性只有在 [member particles_animation]为 [code]true[/code] " +"[b]注意:[/b]该属性只有在 [member particles_animation]为 [code]true[/code] " "时,才会在编辑器中被使用和可见。" msgid "" @@ -20025,7 +20585,7 @@ msgid "" msgstr "" "[GPUParticles2D] 或 [CPUParticles2D] 指定给 [Texture2D] 的精灵表中拥有的行" "数。\n" -"[b]注意:[/b] 该属性只有在 [member particles_animation] 为 [code]true[/code] " +"[b]注意:[/b]该属性只有在 [member particles_animation] 为 [code]true[/code] " "时,才会在编辑器中被使用和可见。" msgid "" @@ -20104,7 +20664,7 @@ msgstr "" "z_index] 是多少,这一顺序都成立。\n" "[CanvasLayer] 可以隐藏,也可以跟随视口。因此常用于血条等 HUD(位于 [code]1[/" "code] 或更高的图层上)和背景(位于 [code]-1[/code] 或更低的图层上)。\n" -"[b]注意:[/b]嵌入式 [Windows] 位于 [code]1024[/code] 图层。位于 [code]1025[/" +"[b]注意:[/b]嵌入式 [Window] 位于 [code]1024[/code] 图层。位于 [code]1025[/" "code] 或更高图层的 [CanvasItem] 会显示在嵌入式窗口之上。\n" "[b]注意:[/b]每个 [CanvasLayer] 都是在一个特定的 [Viewport] 中绘制的,不能在多" "个 [Viewport] 之间共享,见 [member custom_viewport]。使用多个 [Viewport] 时," @@ -21460,7 +22020,7 @@ msgid "" "Override this method to define how the selected entry should be inserted. If " "[param replace] is true, any existing text should be replaced." msgstr "" -"重写此方法以定义所选条目应如何插入。如果 [param replace] 为真,任何现有的文本" +"覆盖此方法以定义所选条目应如何插入。如果 [param replace] 为真,任何现有的文本" "都应该被替换。" msgid "" @@ -21488,6 +22048,20 @@ msgstr "" "添加一对括号。\n" "开始和结束键都必须是符号。只有开始键必须是唯一的。" +msgid "" +"Submits an item to the queue of potential candidates for the autocomplete " +"menu. Call [method update_code_completion_options] to update the list.\n" +"[param location] indicates location of the option relative to the location of " +"the code completion query. See [enum CodeEdit.CodeCompletionLocation] for how " +"to set this value.\n" +"[b]Note:[/b] This list will replace all current candidates." +msgstr "" +"向自动补全菜单的潜在候选队列提交条目。请调用 [method " +"update_code_completion_options] 来更新列表。\n" +"[param location] 指示的是该选项相对于代码补全请求位置的位置。这个值如何设置见 " +"[enum CodeEdit.CodeCompletionLocation]。\n" +"[b]注意:[/b]这个列表将替换所有当前候选。" + msgid "" "Adds a comment delimiter.\n" "Both the start and end keys must be symbols. Only the start key has to be " @@ -21745,7 +22319,7 @@ msgid "" msgstr "" "提交所有用 [method add_code_completion_option] 添加的补全选项。如果 [param " "force] 是 [code]true[/code],将尝试强制弹出自动补全菜单 。\n" -"[b]注意:[/b] 这将取代所有当前的候补选项。" +"[b]注意:[/b]这将取代所有当前的候补选项。" msgid "Sets whether brace pairs should be autocompleted." msgstr "设置括号对是否应自动补全。" @@ -22194,6 +22768,21 @@ msgstr "设置符号的颜色。" msgid "Abstract base class for 2D physics objects." msgstr "2D 物理对象的抽象基类。" +msgid "" +"Abstract base class for 2D physics objects. [CollisionObject2D] can hold any " +"number of [Shape2D]s for collision. Each shape must be assigned to a [i]shape " +"owner[/i]. Shape owners are not nodes and do not appear in the editor, but " +"are accessible through code using the [code]shape_owner_*[/code] methods.\n" +"[b]Note:[/b] Only collisions between objects within the same canvas " +"([Viewport] canvas or [CanvasLayer]) are supported. The behavior of " +"collisions between objects in different canvases is undefined." +msgstr "" +"2D 物理对象的抽象基类。[CollisionObject2D] 能够容纳任意数量的 [Shape2D] 用作碰" +"撞形状。每个形状必须分配给一个[i]形状所有者[/i]。形状所有者不是节点,也不会出" +"现在编辑器中,但可以通过代码使用 [code]shape_owner_*[/code] 方法访问。\n" +"[b]注意:[/b]仅支持相同画布中不同对象的碰撞([Viewport] 画布或 " +"[CanvasLayer])。不同画布中的对象之间的碰撞行为是未定义的。" + msgid "" "Accepts unhandled [InputEvent]s. [param shape_idx] is the child index of the " "clicked [Shape2D]. Connect to the [code]input_event[/code] signal to easily " @@ -22516,6 +23105,21 @@ msgstr "" msgid "Abstract base class for 3D physics objects." msgstr "3D 物理对象的抽象基类。" +msgid "" +"Abstract base class for 3D physics objects. [CollisionObject3D] can hold any " +"number of [Shape3D]s for collision. Each shape must be assigned to a [i]shape " +"owner[/i]. Shape owners are not nodes and do not appear in the editor, but " +"are accessible through code using the [code]shape_owner_*[/code] methods.\n" +"[b]Warning:[/b] With a non-uniform scale, this node will likely not behave as " +"expected. It is advised to keep its scale the same on all axes and adjust its " +"collision shape(s) instead." +msgstr "" +"3D 物理对象的抽象基类。[CollisionObject3D] 能够容纳任意数量的 [Shape3D] 用作碰" +"撞形状。每个形状必须分配给一个[i]形状所有者[/i]。形状所有者不是节点,也不会出" +"现在编辑器中,但可以通过代码使用 [code]shape_owner_*[/code] 方法访问。\n" +"[b]警告:[/b]如果使用非均匀缩放,则该节点可能无法按预期工作。建议让所有轴上的" +"缩放保持一致,可以用对碰撞形状的调整来代替非均匀缩放。" + msgid "" "Receives unhandled [InputEvent]s. [param position] is the location in world " "space of the mouse pointer on the surface of the shape with index [param " @@ -22875,42 +23479,6 @@ msgstr "禁用的碰撞形状对世界没有任何影响。" msgid "A color represented in RGBA format." msgstr "以 RGBA 格式表示的颜色。" -msgid "" -"A color represented in RGBA format by a red ([member r]), green ([member g]), " -"blue ([member b]), and alpha ([member a]) component. Each component is a 16-" -"bit floating-point value, usually ranging from [code]0.0[/code] to [code]1.0[/" -"code]. Some properties (such as [member CanvasItem.modulate]) may support " -"values greater than [code]1.0[/code], for overbright or HDR (High Dynamic " -"Range) colors.\n" -"Colors can be created in various ways: By the various [Color] constructors, " -"by static methods such as [method from_hsv], and by using a name from the set " -"of standardized colors based on [url=https://en.wikipedia.org/wiki/" -"X11_color_names]X11 color names[/url] with the addition of [constant " -"TRANSPARENT]. GDScript also provides [method @GDScript.Color8], which uses " -"integers from [code]0[/code] to [code]255[/code] and doesn't support " -"overbright colors.\n" -"[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/" -"code] if it is equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). " -"Otherwise, a Color will always evaluate to [code]true[/code].\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"color_constants.png]Color constants cheatsheet[/url]" -msgstr "" -"由红([member r])、绿([member g])、蓝([member b])和 alpha([member a])分" -"量表示的 RGBA 格式的颜色。每个分量都是一个 16 位浮点值,通常介于 [code]0.0[/" -"code] 到 [code]1.0[/code] 之间。某些属性(例如 [member CanvasItem.modulate])" -"可能支持大于 [code]1.0[/code] 的值,用于表示过亮或 HDR(High Dynamic Range,高" -"动态范围)颜色。\n" -"创建颜色的方法有很多:可以使用 [Color] 的各种构造函数,[method from_hsv] 等静" -"态方法,以及使用基于 [url=https://en.wikipedia.org/wiki/X11_color_names]X11 颜" -"色名称[/url]的标准化颜色集外加 [constant TRANSPARENT]。GDScript 还提供了 " -"[method @GDScript.Color8],使用的是 [code]0[/code] 到 [code]255[/code] 之间的" -"整数,但不支持过亮的颜色。\n" -"[b]注意:[/b]在布尔上下文中,等于 [code]Color(0, 0, 0, 1)[/code](不透明的黑" -"色)的 Color 将被评估为 [code]false[/code]。否则,Color 将始终被评估为 " -"[code]true[/code]。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"color_constants.png]Color 常量速查表[/url]" - msgid "2D GD Paint Demo" msgstr "2D GD 画图演示" @@ -23034,7 +23602,7 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"返回将该颜色混合到给定颜色上所产生的新颜色。在绘画程序中,您可以将其想象为在该" +"返回将该颜色混合到给定颜色上所产生的新颜色。在绘画程序中,你可以将其想象为在该" "颜色(包括 alpha)上绘制的 [param over] 颜色。\n" "[codeblocks]\n" "[gdscript]\n" @@ -24183,6 +24751,19 @@ msgstr "" msgid "A widget that provides an interface for selecting or modifying a color." msgstr "提供用于选择或修改颜色的界面的小工具。" +msgid "" +"A widget that provides an interface for selecting or modifying a color. It " +"can optionally provide functionalities like a color sampler (eyedropper), " +"color modes, and presets.\n" +"[b]Note:[/b] This control is the color picker widget itself. You can use a " +"[ColorPickerButton] instead if you need a button that brings up a " +"[ColorPicker] in a popup." +msgstr "" +"提供用于选择或修改颜色的界面的小工具。还可以提供取色器(吸管)、颜色模式、预设" +"等功能。\n" +"[b]注意:[/b]这个控件就是取色器本身。如果你需要一个能够弹出 [ColorPicker] 窗口" +"的按钮,可以改用 [ColorPickerButton]。" + msgid "" "Adds the given color to a list of color presets. The presets are displayed in " "the color picker and the user will be able to select them.\n" @@ -24382,6 +24963,22 @@ msgstr "矩形轮拾取器形状的图标。" msgid "A button that brings up a [ColorPicker] when pressed." msgstr "点击后会显示 [ColorPicker] 的按钮。" +msgid "" +"Encapsulates a [ColorPicker], making it accessible by pressing a button. " +"Pressing the button will toggle the [ColorPicker]'s visibility.\n" +"See also [BaseButton] which contains common properties and methods associated " +"with this node.\n" +"[b]Note:[/b] By default, the button may not be wide enough for the color " +"preview swatch to be visible. Make sure to set [member Control." +"custom_minimum_size] to a big enough value to give the button enough space." +msgstr "" +"封装一个 [ColorPicker],按下按钮即可访问该控件。按下按钮会切换 [ColorPicker] " +"的可见性。\n" +"另见 [BaseButton],其中包含与该节点关联的通用属性和方法。\n" +"[b]注意:[/b]默认情况下,按钮的宽度可能不足以使颜色预览色板可见。确保将 " +"[member Control.custom_minimum_size] 设置为足够大的值,以便为按钮提供足够的空" +"间。" + msgid "" "Returns the [ColorPicker] that this node toggles.\n" "[b]Warning:[/b] This is a required internal node, removing and freeing it may " @@ -24739,22 +25336,22 @@ msgid "" "decomposes the polygon into convex ones; see [ConvexPolygonShape2D]'s " "documentation for instructions." msgstr "" -"一个2D折线形状,用于物理运算。当处于 [code]BUILD_SEGMENTS[/code] 模式下时在" +"一种 2D 折线形状,用于物理运算。当处于 [code]BUILD_SEGMENTS[/code] 模式下时在" "[CollisionPolygon2D]内部使用。\n" -"相互连接线段的集合,[ConcavePolygonShape2D]是最自由的可配置的单个2D形状。它能" -"用于形成任何性质的多边形,甚至是不包围区域的形状。然而,[ConvexPolygonShape2D]" -"是 [i]空心的(hollow)[/i]即使相互连接的线段确实形成了一个区域,这往往使得不适合" -"物理运算或检测。\n" -"[b]注意:[/b] 当用于碰撞时,[ConcavePolygonShape2D]预期是与静态(static)的 " -"[CollisionShape2D]节点一起工作(例如 [StaticBody2D])。对于[CharacterBody2D]或" -"[RigidBody2D],在静态模式以外的模式下可能表现不符预期。\n" -"[b]警告:[/b] 物理物体快速移动时,体积小的物体将有机会穿过这个形状。发生的原因" +"相互连接线段的集合,[ConcavePolygonShape2D] 是最自由的可配置的单个 2D 形状。它" +"能用于形成任何性质的多边形,甚至是不包围区域的形状。然而," +"[ConvexPolygonShape2D]是 [i]空心的[/i],即使相互连接的线段确实形成了一个区域," +"这往往使得不适合物理运算或检测。\n" +"[b]注意:[/b]当用于碰撞时,[ConcavePolygonShape2D] 预期是与静态的 " +"[CollisionShape2D]节点一起工作(例如 [StaticBody2D])。对于 [CharacterBody2D] " +"或 [RigidBody2D],在静态模式以外的模式下可能表现不符预期。\n" +"[b]警告:[/b]物理物体快速移动时,体积小的物体将有机会穿过这个形状。发生的原因" "为在某一帧物理物体可能在形状的“外部”,而下一帧它有可能直接在形状的“内部”。" -"[ConcavePolygonShape2D]是空心的,因此它不会检测到碰撞。\n" -"[b]性能:[/b]由于它的复杂性, [ConcavePolygonShape2D]是检测碰撞最慢的2D碰撞形" -"状。它的使用一般仅限于关卡几何体(level geometry)。如果折线是闭合的," -"[CollisionPolygon2D]的 [code]BUILD_SOLIDS[/code]模式可以被使用,它会将多边形分" -"解成凸多边形;相关说明请参阅 [ConvexPolygonShape2D] 文档。" +"[ConcavePolygonShape2D] 是空心的,因此它不会检测到碰撞。\n" +"[b]性能:[/b]由于它的复杂性, [ConcavePolygonShape2D] 是检测碰撞最慢的2D碰撞形" +"状。它的使用一般仅限于关卡几何体。如果折线是闭合的,可以使用 " +"[CollisionPolygon2D] 的 [code]BUILD_SOLIDS[/code] 模式,它会将多边形分解成凸多" +"边形;相关说明请参阅 [ConvexPolygonShape2D] 文档。" msgid "" "The array of points that make up the [ConcavePolygonShape2D]'s line segments. " @@ -24768,6 +25365,49 @@ msgstr "" msgid "A 3D trimesh shape used for physics collision." msgstr "用于物理碰撞的 3D 三角网格形状。" +msgid "" +"A 3D trimesh shape, intended for use in physics. Usually used to provide a " +"shape for a [CollisionShape3D].\n" +"Being just a collection of interconnected triangles, [ConcavePolygonShape3D] " +"is the most freely configurable single 3D shape. It can be used to form " +"polyhedra of any nature, or even shapes that don't enclose a volume. However, " +"[ConvexPolygonShape3D] is [i]hollow[/i] even if the interconnected triangles " +"do enclose a volume, which often makes it unsuitable for physics or " +"detection.\n" +"[b]Note:[/b] When used for collision, [ConcavePolygonShape3D] is intended to " +"work with static [CollisionShape3D] nodes like [StaticBody3D] and will likely " +"not behave well for [CharacterBody3D]s or [RigidBody3D]s in a mode other than " +"Static.\n" +"[b]Warning:[/b] Physics bodies that are small have a chance to clip through " +"this shape when moving fast. This happens because on one frame, the physics " +"body may be on the \"outside\" of the shape, and on the next frame it may be " +"\"inside\" it. [ConcavePolygonShape3D] is hollow, so it won't detect a " +"collision.\n" +"[b]Performance:[/b] Due to its complexity, [ConcavePolygonShape3D] is the " +"slowest 3D collision shape to check collisions against. Its use should " +"generally be limited to level geometry. For convex geometry, " +"[ConvexPolygonShape3D] should be used. For dynamic physics bodies that need " +"concave collision, several [ConvexPolygonShape3D]s can be used to represent " +"its collision by using convex decomposition; see [ConvexPolygonShape3D]'s " +"documentation for instructions." +msgstr "" +"一种用于物理模拟的三维三角网格形状。通常用于为 [CollisionShape3D] 提供形状。\n" +"作为一组相互连接的三角形, [ConcavePolygonShape3D] 是最自由配置的单一三维形状" +"之一。它可以用于形成任何性质的多面体,甚至是不封闭体积的形状。然而,即使相互连" +"接的三角形封闭了一个体积, [ConvexPolygonShape3D] 仍然是[i]中空[/i]的,这常常" +"使其不适用于物理模拟或碰撞检测。\n" +"[b]注意:[/b]当用于碰撞计算时, [ConcavePolygonShape3D] 旨在与静态的 " +"[CollisionShape3D] 节点一起使用,如 [StaticBody3D] 。并且可能不适用于处于除静" +"态外的其他模式下的 [CharacterBody3D] 或 [RigidBody3D] 。\n" +"[b]警告:[/b]当移动速度较快时,较小的物体有可能穿过该形状。这是因为在一帧中," +"物理体可能在形状的“外部”,而在下一帧中可能在其“内部”。 " +"[ConcavePolygonShape3D] 是中空的,因此不会检测到碰撞。\n" +"[b]性能:[/b]由于其复杂性, [ConcavePolygonShape3D] 是用于检测三维碰撞的形状中" +"最慢的。它的使用通常应限制在关卡几何体上。对于凸几何体,应使用 " +"[ConvexPolygonShape3D] 。对于需要凹碰撞的动态物体,可以使用多个 " +"[ConvexPolygonShape3D] 通过凸分解来表示其碰撞;请参阅 [ConvexPolygonShape3D] " +"的文档以获取指示。" + msgid "" "Returns the faces of the trimesh shape as an array of vertices. The array (of " "length divisible by three) is naturally divided into triples; each triple of " @@ -24796,6 +25436,19 @@ msgid "" "ball-and-socket joint." msgstr "以模拟球窝关节的方式连接两个 3D 物理物体的物理关节。" +msgid "" +"A physics joint that connects two 3D physics bodies in a way that simulates a " +"ball-and-socket joint. The twist axis is initiated as the X axis of the " +"[ConeTwistJoint3D]. Once the physics bodies swing, the twist axis is " +"calculated as the middle of the X axes of the joint in the local space of the " +"two physics bodies. Useful for limbs like shoulders and hips, lamps hanging " +"off a ceiling, etc." +msgstr "" +"以模拟球窝关节的方式连接两个 3D 物理物体的物理关节。扭转轴被初始化为 " +"[ConeTwistJoint3D] 的 X 轴。一旦物理体摆动,扭转轴将被计算为两个物理体局部空间" +"中关节的 X 轴的中间值。可用作肩膀、臀部等肢体,也可以用作从天花板荡下的灯之类" +"的对象。" + msgid "Returns the value of the specified parameter." msgstr "返回指定参数的值。" @@ -25165,6 +25818,36 @@ msgstr "" "递 [code]null[/code] 值就会移除指定的键,如果键被移除后,小节最终是空的,就会" "移除小节。" +msgid "A dialog used for confirmation of actions." +msgstr "用于确认动作的对话框。" + +msgid "" +"A dialog used for confirmation of actions. This window is similar to " +"[AcceptDialog], but pressing its Cancel button can have a different outcome " +"from pressing the OK button. The order of the two buttons varies depending on " +"the host OS.\n" +"To get cancel action, you can use:\n" +"[codeblocks]\n" +"[gdscript]\n" +"get_cancel_button().pressed.connect(self.canceled)\n" +"[/gdscript]\n" +"[csharp]\n" +"GetCancelButton().Pressed += Canceled;\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"用于确认动作的对话框。这个窗口类似于 [AcceptDialog],但按下“取消”按钮和按下“确" +"定”按钮的效果是不同的。这两个按钮的顺序取决于主机操作系统。\n" +"要获得取消操作,你可以使用:\n" +"[codeblocks]\n" +"[gdscript]\n" +"get_cancel_button().pressed.connect(self.canceled)\n" +"[/gdscript]\n" +"[csharp]\n" +"GetCancelButton().Pressed += Canceled;\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the cancel button.\n" "[b]Warning:[/b] This is a required internal node, removing and freeing it may " @@ -25465,7 +26148,7 @@ msgstr "" "func _get_drag_data(position):\n" " var mydata = make_data() # This is your custom method generating the drag " "data.\n" -" set_drag_preview(make_preview(mydata)) # 这是您生成拖动数据预览的自定义方" +" set_drag_preview(make_preview(mydata)) # 这是你生成拖动数据预览的自定义方" "法。\n" " return mydata\n" "[/gdscript]\n" @@ -25474,7 +26157,7 @@ msgstr "" "{\n" " var myData = MakeData(); // This is your custom method generating the " "drag data.\n" -" SetDragPreview(MakePreview(myData)); // 这是您生成拖动数据预览的自定义方" +" SetDragPreview(MakePreview(myData)); // 这是你生成拖动数据预览的自定义方" "法。\n" " return myData;\n" "}\n" @@ -25495,11 +26178,23 @@ msgstr "" "由用户实现的虚方法。返回此控件的最小大小。替代 [member custom_minimum_size]," "以用于通过代码控制最小尺寸。实际的最小尺寸将是这两者的最大值(分别在每个轴" "上)。\n" -"如果未重写,则默认为 [constant Vector2.ZERO]。\n" +"如果未覆盖,则默认为 [constant Vector2.ZERO]。\n" "[b]注意:[/b]当脚本被附加到已经覆盖其最小大小的 [Control] 节点(例如 [Label]、" "[Button]、[PanelContainer] 等)时,该方法将不会被调用。它只能用于最基本的 GUI " "节点,如 [Control]、[Container]、[Panel] 等。" +msgid "" +"Virtual method to be implemented by the user. Returns the tooltip text for " +"the position [param at_position] in control's local coordinates, which will " +"typically appear when the cursor is resting over this control. See [method " +"get_tooltip].\n" +"[b]Note:[/b] If this method returns an empty [String], no tooltip is " +"displayed." +msgstr "" +"用户实现的虚方法。返回位于控件局部坐标系中 [param at_position] 位置的工具提示" +"文本,工具提示一般会在鼠标停留在该控件上时显示。见 [method get_tooltip]。\n" +"[b]注意:[/b]如果返回的是空 [String],则不会显示工具提示。" + msgid "" "Virtual method to be implemented by the user. Use this method to process and " "accept inputs on UI elements. See [method accept_event].\n" @@ -25640,13 +26335,13 @@ msgstr "" "由用户实现的虚方法。返回一个 [Control] 节点,该节点取代默认节点以用作工具提" "示。[param for_text] 包含 [member tooltip_text] 属性的内容。\n" "返回的节点必须是 [Control] 类型或 Control 派生类型。它可以有任何类型的子节点。" -"当工具提示消失时它会被释放,因此请确保您始终提供一个新实例(如果您想使用场景树" -"中预先存在的节点,您可以复制它并传递复制的实例)。当返回 [code]null[/code] 或" +"当工具提示消失时它会被释放,因此请确保你始终提供一个新实例(如果你想使用场景树" +"中预先存在的节点,你可以复制它并传递复制的实例)。当返回 [code]null[/code] 或" "非控制节点时,将使用默认的工具提示。\n" -"返回的节点将作为子节点添加到 [PopupPanel],因此您应该只提供该面板的内容。该 " +"返回的节点将作为子节点添加到 [PopupPanel],因此你应该只提供该面板的内容。该 " "[PopupPanel] 可以使用 [method Theme.set_stylebox] 为类型 " "[code]\"TooltipPanel\"[/code] 设置主题(参见 [member tooltip_text] 示例)。\n" -"[b]注意:[/b]工具提示会被缩小到最小大小。如果您想确保它完全可见,您可能需要将" +"[b]注意:[/b]工具提示会被缩小到最小大小。如果你想确保它完全可见,你可能需要将" "其 [member custom_minimum_size] 设置为非零值。\n" "[b]注意:[/b]返回时节点(和任何相关的子节点)应该是 [member CanvasItem." "visible],否则,实例化它的视口将无法可靠地计算它的最小大小。\n" @@ -26435,7 +27130,7 @@ msgid "" "yourself (see [method set_offset])." msgstr "" "工作原理与 [method set_anchor] 相同,但取代 [code]keep_offset[/code] 参数和自" -"动更新的偏移,它允许您自己设置偏移量(参见 [method set_offset])。" +"动更新的偏移,它允许你自己设置偏移量(参见 [method set_offset])。" msgid "" "Sets both anchor preset and offset preset. See [method set_anchors_preset] " @@ -26510,7 +27205,7 @@ msgid "" "[/codeblocks]" msgstr "" "在鼠标指针处显示给定的控件。调用此方法的好时机是在 [method _get_drag_data] " -"中。控件不得位于场景树中。您不应释放控件,也不应在拖动持续时间之外保留对控件的" +"中。控件不得位于场景树中。你不应释放控件,也不应在拖动持续时间之外保留对控件的" "引用。拖拽结束后它会自动删除。\n" "[codeblocks]\n" "[gdscript]\n" @@ -26952,7 +27647,7 @@ msgstr "" "的合适的视口拉伸模式,而不是单独缩放控件。\n" "[b]注意:[/b][member FontFile.oversampling] [i]不[/i]考虑 [Control] [member " "scale]。这意味着放大/缩小会导致位图字体和光栅化(非 MSDF)动态字体显得模糊或像" -"素化。为确保无论缩放比例如何,文本都保持清晰,您可以通过启用 [member " +"素化。为确保无论缩放比例如何,文本都保持清晰,你可以通过启用 [member " "ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field](仅" "适用于默认项目字体);或在自定义字体的 DynamicFont 的导入选项中,启用[b]多通道" "有符号距离场[/b]来启用 MSDF 字体渲染。对于系统字体,可以在检查器中启用 " @@ -26978,6 +27673,14 @@ msgid "" msgstr "" "该节点的边界矩形的大小,使用该节点的坐标系。[Container] 节点会自动更新此属性。" +msgid "" +"Tells the parent [Container] nodes how they should resize and place the node " +"on the X axis. Use a combination of the [enum SizeFlags] constants to change " +"the flags. See the constants to learn what each does." +msgstr "" +"告诉父 [Container] 节点应如何调整尺寸并将其放置在 X 轴上。请使用 [enum " +"SizeFlags] 常量的组合来更改标志。查看常量以了解每个常量的作用。" + msgid "" "If the node and at least one of its neighbors uses the [constant SIZE_EXPAND] " "size flag, the parent [Container] will let it take more or less space " @@ -26988,6 +27691,14 @@ msgstr "" "[Container] 将根据该属性让它占用更多或更少的空间。如果该节点的拉伸比为 2,其邻" "居节点的拉伸比为 1,则该节点将占用三分之二的可用空间。" +msgid "" +"Tells the parent [Container] nodes how they should resize and place the node " +"on the Y axis. Use a combination of the [enum SizeFlags] constants to change " +"the flags. See the constants to learn what each does." +msgstr "" +"告诉父 [Container] 节点应如何调整尺寸并将其放置在 Y 轴上。请使用 [enum " +"SizeFlags] 常量的组合来更改标志。查看常量以了解每个常量的作用。" + msgid "" "The [Theme] resource this node and all its [Control] and [Window] children " "use. If a child node has its own [Theme] resource set, theme items are merged " @@ -27494,7 +28205,7 @@ msgid "" "size_flags_stretch_ratio]. Use with [member size_flags_horizontal] and " "[member size_flags_vertical]." msgstr "" -"告诉父级 [Container] 让该节点占用您标记的轴上的所有可用空间。如果将多个相邻节" +"告诉父级 [Container] 让该节点占用你标记的轴上的所有可用空间。如果将多个相邻节" "点设置为扩展,它们将根据其拉伸比共享空间。见 [member " "size_flags_stretch_ratio]。用于 [member size_flags_horizontal] 和 [member " "size_flags_vertical]。" @@ -27637,6 +28348,38 @@ msgstr "从右至左的文本书写方向。" msgid "A 2D convex polygon shape used for physics collision." msgstr "用于物理碰撞的 2D 凸多边形形状。" +msgid "" +"A 2D convex polygon shape, intended for use in physics. Used internally in " +"[CollisionPolygon2D] when it's in [code]BUILD_SOLIDS[/code] mode.\n" +"[ConvexPolygonShape2D] is [i]solid[/i], which means it detects collisions " +"from objects that are fully inside it, unlike [ConcavePolygonShape2D] which " +"is hollow. This makes it more suitable for both detection and physics.\n" +"[b]Convex decomposition:[/b] A concave polygon can be split up into several " +"convex polygons. This allows dynamic physics bodies to have complex concave " +"collisions (at a performance cost) and can be achieved by using several " +"[ConvexPolygonShape3D] nodes or by using the [CollisionPolygon2D] node in " +"[code]BUILD_SOLIDS[/code] mode. To generate a collision polygon from a " +"sprite, select the [Sprite2D] node, go to the [b]Sprite2D[/b] menu that " +"appears above the viewport, and choose [b]Create Polygon2D Sibling[/b].\n" +"[b]Performance:[/b] [ConvexPolygonShape2D] is faster to check collisions " +"against compared to [ConcavePolygonShape2D], but it is slower than primitive " +"collision shapes such as [CircleShape2D] and [RectangleShape2D]. Its use " +"should generally be limited to medium-sized objects that cannot have their " +"collision accurately represented by primitive shapes." +msgstr "" +"2D 凸多边形形状,旨在用于物理。[CollisionPolygon2D] 为 [code]BUILD_SOLIDS[/" +"code] 模式时内部会使用这个类。\n" +"[ConvexPolygonShape2D] 是[i]实心[/i]的,与空心的 [ConcavePolygonShape2D] 不" +"同,如果对象完全位于其内部,也能够检测到碰撞。因此更适于检测和物理。\n" +"[b]凸分解:[/b]凹多边形可以拆分为多个凸多边形。这样就能够让动态物理体拥有复杂" +"的凹碰撞(以消耗性能为代价),做法是使用多个 [ConvexPolygonShape3D] 节点,或者" +"使用 [code]BUILD_SOLIDS[/code] 模式的 [CollisionPolygon2D] 节点。要根据精灵生" +"成碰撞多边形,请选中 [Sprite2D] 节点,前往出现在视口上方的 [b]Sprite2D[/b] 菜" +"单,然后选择[b]创建 Polygon2D 同级[/b]。\n" +"[b]性能:[/b][ConvexPolygonShape2D] 检查碰撞的速度比 [ConcavePolygonShape2D] " +"要快,但比 [CircleShape2D]、[RectangleShape2D] 等基本碰撞形状要慢。通常应该仅" +"限于中等大小的对象,在无法使用基本形状精确表示碰撞时使用。" + msgid "" "Based on the set of points provided, this assigns the [member points] " "property using the convex hull algorithm, removing all unneeded points. See " @@ -27659,6 +28402,39 @@ msgstr "" msgid "A 3D convex polyhedron shape used for physics collision." msgstr "用于物理碰撞的 3D 凸多面体形状。" +msgid "" +"A 3D convex polyhedron shape, intended for use in physics. Usually used to " +"provide a shape for a [CollisionShape3D].\n" +"[ConvexPolygonShape3D] is [i]solid[/i], which means it detects collisions " +"from objects that are fully inside it, unlike [ConcavePolygonShape3D] which " +"is hollow. This makes it more suitable for both detection and physics.\n" +"[b]Convex decomposition:[/b] A concave polyhedron can be split up into " +"several convex polyhedra. This allows dynamic physics bodies to have complex " +"concave collisions (at a performance cost) and can be achieved by using " +"several [ConvexPolygonShape3D] nodes. To generate a convex decomposition from " +"a mesh, select the [MeshInstance3D] node, go to the [b]Mesh[/b] menu that " +"appears above the viewport, and choose [b]Create Multiple Convex Collision " +"Siblings[/b]. Alternatively, [method MeshInstance3D." +"create_multiple_convex_collisions] can be called in a script to perform this " +"decomposition at run-time.\n" +"[b]Performance:[/b] [ConvexPolygonShape3D] is faster to check collisions " +"against compared to [ConcavePolygonShape3D], but it is slower than primitive " +"collision shapes such as [SphereShape3D] and [BoxShape3D]. Its use should " +"generally be limited to medium-sized objects that cannot have their collision " +"accurately represented by primitive shapes." +msgstr "" +"3D 凸多面体形状,旨在用于物理。常用来为 [CollisionShape3D] 提供形状。\n" +"[ConvexPolygonShape3D] 是[i]实心[/i]的,与空心的 [ConcavePolygonShape3D] 不" +"同,如果对象完全位于其内部,也能够检测到碰撞。因此更适于检测和物理。\n" +"[b]凸分解:[/b]凹多面体可以拆分为多个凸多面体。这样就能够让动态物理体拥有复杂" +"的凹碰撞(以消耗性能为代价),做法是使用多个 [ConvexPolygonShape3D] 节点。要根" +"据网格生成凸分解,请选中 [MeshInstance3D] 节点,前往出现在视口上方的 [b]Mesh[/" +"b] 菜单,然后选择[b]创建多个凸碰撞同级[/b]。或者也可以在脚本中调用 [method " +"MeshInstance3D.create_multiple_convex_collisions],在运行时执行分解。\n" +"[b]性能:[/b][ConvexPolygonShape3D] 检查碰撞的速度比 [ConcavePolygonShape3D] " +"要快,但比 [SphereShape3D]、[BoxShape3D] 等基本碰撞形状要慢。通常应该仅限于中" +"等大小的对象,在无法使用基本形状精确表示碰撞时使用。" + msgid "The list of 3D points forming the convex polygon shape." msgstr "形成凸多边形的 3D 点列表。" @@ -28461,6 +29237,159 @@ msgstr "粒子将在盒子的体积中发射。" msgid "Particles will be emitted in a ring or cylinder." msgstr "粒子将以环形或圆柱的形式发射出来。" +msgid "Provides access to advanced cryptographic functionalities." +msgstr "提供对高阶加密功能的访问。" + +msgid "" +"The Crypto class provides access to advanced cryptographic functionalities.\n" +"Currently, this includes asymmetric key encryption/decryption, signing/" +"verification, and generating cryptographically secure random bytes, RSA keys, " +"HMAC digests, and self-signed [X509Certificate]s.\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends Node\n" +"\n" +"var crypto = Crypto.new()\n" +"var key = CryptoKey.new()\n" +"var cert = X509Certificate.new()\n" +"\n" +"func _ready():\n" +" # Generate new RSA key.\n" +" key = crypto.generate_rsa(4096)\n" +" # Generate new self-signed certificate with the given key.\n" +" cert = crypto.generate_self_signed_certificate(key, \"CN=mydomain.com," +"O=My Game Company,C=IT\")\n" +" # Save key and certificate in the user folder.\n" +" key.save(\"user://generated.key\")\n" +" cert.save(\"user://generated.crt\")\n" +" # Encryption\n" +" var data = \"Some data\"\n" +" var encrypted = crypto.encrypt(key, data.to_utf8_buffer())\n" +" # Decryption\n" +" var decrypted = crypto.decrypt(key, encrypted)\n" +" # Signing\n" +" var signature = crypto.sign(HashingContext.HASH_SHA256, data." +"sha256_buffer(), key)\n" +" # Verifying\n" +" var verified = crypto.verify(HashingContext.HASH_SHA256, data." +"sha256_buffer(), signature, key)\n" +" # Checks\n" +" assert(verified)\n" +" assert(data.to_utf8_buffer() == decrypted)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"using System.Diagnostics;\n" +"\n" +"public partial class MyNode : Node\n" +"{\n" +" private Crypto _crypto = new Crypto();\n" +" private CryptoKey _key = new CryptoKey();\n" +" private X509Certificate _cert = new X509Certificate();\n" +"\n" +" public override void _Ready()\n" +" {\n" +" // Generate new RSA key.\n" +" _key = _crypto.GenerateRsa(4096);\n" +" // Generate new self-signed certificate with the given key.\n" +" _cert = _crypto.GenerateSelfSignedCertificate(_key, \"CN=mydomain.com," +"O=My Game Company,C=IT\");\n" +" // Save key and certificate in the user folder.\n" +" _key.Save(\"user://generated.key\");\n" +" _cert.Save(\"user://generated.crt\");\n" +" // Encryption\n" +" string data = \"Some data\";\n" +" byte[] encrypted = _crypto.Encrypt(_key, data.ToUtf8Buffer());\n" +" // Decryption\n" +" byte[] decrypted = _crypto.Decrypt(_key, encrypted);\n" +" // Signing\n" +" byte[] signature = _crypto.Sign(HashingContext.HashType.Sha256, Data." +"Sha256Buffer(), _key);\n" +" // Verifying\n" +" bool verified = _crypto.Verify(HashingContext.HashType.Sha256, Data." +"Sha256Buffer(), signature, _key);\n" +" // Checks\n" +" Debug.Assert(verified);\n" +" Debug.Assert(data.ToUtf8Buffer() == decrypted);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Crypto 类提供对高阶加密功能的访问。\n" +"目前,包括非对称密钥的加密/解密和签名/验证、生成加密安全随机字节、RSA 密钥、" +"HMAC 摘要以及自签名的 [X509Certificate]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"extends Node\n" +"\n" +"var crypto = Crypto.new()\n" +"var key = CryptoKey.new()\n" +"var cert = X509Certificate.new()\n" +"\n" +"func _ready():\n" +" # 生成新的 RSA 密钥。\n" +" key = crypto.generate_rsa(4096)\n" +" # 使用给定的密钥生成新的自签名证书。\n" +" cert = crypto.generate_self_signed_certificate(key, \"CN=mydomain.com," +"O=My Game Company,C=IT\")\n" +" # 将密钥和证书保存在用户文件夹中。\n" +" key.save(\"user://generated.key\")\n" +" cert.save(\"user://generated.crt\")\n" +" # 加密\n" +" var data = \"Some data\"\n" +" var encrypted = crypto.encrypt(key, data.to_utf8_buffer())\n" +" # 解密\n" +" var decrypted = crypto.decrypt(key, encrypted)\n" +" # 签名\n" +" var signature = crypto.sign(HashingContext.HASH_SHA256, data." +"sha256_buffer(), key)\n" +" # 验证\n" +" var verified = crypto.verify(HashingContext.HASH_SHA256, data." +"sha256_buffer(), signature, key)\n" +" # 校验\n" +" assert(verified)\n" +" assert(data.to_utf8_buffer() == decrypted)\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"using System.Diagnostics;\n" +"\n" +"public partial class MyNode : Node\n" +"{\n" +" private Crypto _crypto = new Crypto();\n" +" private CryptoKey _key = new CryptoKey();\n" +" private X509Certificate _cert = new X509Certificate();\n" +"\n" +" public override void _Ready()\n" +" {\n" +" // 生成新的 RSA 密钥。\n" +" _key = _crypto.GenerateRsa(4096);\n" +" // 使用给定的密钥生成新的自签名证书。\n" +" _cert = _crypto.GenerateSelfSignedCertificate(_key, \"CN=mydomain.com," +"O=My Game Company,C=IT\");\n" +" // 将密钥和证书保存在用户文件夹中。\n" +" _key.Save(\"user://generated.key\");\n" +" _cert.Save(\"user://generated.crt\");\n" +" // 加密\n" +" string data = \"Some data\";\n" +" byte[] encrypted = _crypto.Encrypt(_key, data.ToUtf8Buffer());\n" +" // 解密\n" +" byte[] decrypted = _crypto.Decrypt(_key, encrypted);\n" +" // 签名\n" +" byte[] signature = _crypto.Sign(HashingContext.HashType.Sha256, Data." +"Sha256Buffer(), _key);\n" +" // 验证\n" +" bool verified = _crypto.Verify(HashingContext.HashType.Sha256, Data." +"Sha256Buffer(), signature, _key);\n" +" // 校验\n" +" Debug.Assert(verified);\n" +" Debug.Assert(data.ToUtf8Buffer() == decrypted);\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Compares two [PackedByteArray]s for equality without leaking timing " "information in order to prevent timing attacks.\n" @@ -28530,7 +29459,7 @@ msgstr "" "根据给定的 [CryptoKey] 和 [param issuer_name] 生成自签名的 [X509Certificate]。" "证书有效性将由 [param not_before] 和 [param not_after](第一个有效日期和最后一" "个有效日期)定义。[param issuer_name] 必须至少包含“CN=”(通用名称,即域" -"名)、“O=”(组织,即您的公司名称)、“C=”(国家,即 2 个字母的该组织所在的国家/" +"名)、“O=”(组织,即你的公司名称)、“C=”(国家,即 2 个字母的该组织所在的国家/" "地区的 ISO-3166 代码)。\n" "生成 RSA 密钥和 X509 自签名证书的小示例。\n" "[codeblocks]\n" @@ -28645,8 +29574,8 @@ msgid "" "[MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another CSG " "node also has a significant CPU cost, so it should be avoided during gameplay." msgstr "" -"此节点允许您创建与 CSG 系统一起使用的盒子。\n" -"[b]注意:[/b] CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"此节点允许你创建与 CSG 系统一起使用的盒子。\n" +"[b]注意:[/b]CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " "[MeshInstance3D] 相比,创建 CSG 节点具有显着的 CPU 成本。在另一个 CSG 节点中," "移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。" @@ -28657,7 +29586,7 @@ msgid "The material used to render the box." msgstr "用于渲染盒子的材质。" msgid "A CSG node that allows you to combine other CSG modifiers." -msgstr "允许您组合其他 CSG 修改器的 CSG 节点。" +msgstr "允许你组合其他 CSG 修改器的 CSG 节点。" msgid "" "For complex arrangements of shapes, it is sometimes needed to add structure " @@ -28678,7 +29607,7 @@ msgstr "" "CSGCombiner3D 节点的子节点的一组形状进行操作,并对作为第二个 CSGCombiner3D 节" "点的子节点的第二组形状进行一组单独的操作,然后执行以下操作: 将两个最终结果作" "为输入来创建最终形状。\n" -"[b]注意:[/b] CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"[b]注意:[/b]CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " "[MeshInstance3D] 相比,创建 CSG 节点具有显著的 CPU 成本。在另一个 CSG 节点中," "移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。" @@ -28693,8 +29622,8 @@ msgid "" "[MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another CSG " "node also has a significant CPU cost, so it should be avoided during gameplay." msgstr "" -"此节点允许您创建与 CSG 系统一起使用的圆柱体(或圆锥体)。\n" -"[b]注意:[/b] CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"此节点允许你创建与 CSG 系统一起使用的圆柱体(或圆锥体)。\n" +"[b]注意:[/b]CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " "[MeshInstance3D] 相比,创建 CSG 节点具有显着的 CPU 成本。在另一个 CSG 节点中," "移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。" @@ -28741,7 +29670,7 @@ msgstr "" "此 CSG 节点允许你将任何网格资源用作 CSG 形状,前提是它是闭合的、不自相交、不包" "含内部面并且没有连接到两个面以上的边。 另请参阅 [CSGPolygon3D],以绘制 2D 挤出" "多边形以用作 CSG 节点。\n" -"[b]注意:[/b] CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"[b]注意:[/b]CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " "[MeshInstance3D] 相比,创建 CSG 节点具有显着的 CPU 成本。在另一个 CSG 节点中," "移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。" @@ -29297,6 +30226,9 @@ msgid "" "Returns the right tangent angle (in degrees) for the point at [param index]." msgstr "返回索引为 [param index] 的点的右侧切线夹角(单位为度)。" +msgid "Removes the point at [param index] from the curve." +msgstr "移除曲线中索引为 [param index] 的点。" + msgid "" "Returns the Y value for the point that would exist at the X position [param " "offset] along the curve." @@ -29912,6 +30844,20 @@ msgstr "" msgid "A 3D cylinder shape used for physics collision." msgstr "用于物理碰撞的 3D 圆柱体形状。" +msgid "" +"A 2D capsule shape, intended for use in physics. Usually used to provide a " +"shape for a [CollisionShape3D].\n" +"[b]Note:[/b] There are several known bugs with cylinder collision shapes. " +"Using [CapsuleShape3D] or [BoxShape3D] instead is recommended.\n" +"[b]Performance:[/b] [CylinderShape3D] is fast to check collisions against, " +"but it is slower than [CapsuleShape3D], [BoxShape3D], and [CylinderShape3D]." +msgstr "" +"3D 胶囊形状,旨在用于物理学。通常用于为 [CollisionShape3D] 提供形状。\n" +"[b]注意:[/b]圆柱体碰撞形状有若干已知的问题。建议改用 [CapsuleShape3D] 或 " +"[BoxShape3D]。\n" +"[b]性能:[/b][CylinderShape3D] 可以快速检查碰撞,但比 [CapsuleShape3D]、" +"[BoxShape3D] 和 [CylinderShape3D] 慢。" + msgid "The cylinder's height." msgstr "圆柱体的高度。" @@ -30307,6 +31253,307 @@ msgstr "[enum DecalTexture] 枚举的最大大小。" msgid "A built-in data structure that holds key-value pairs." msgstr "包含键值对的内置数据结构。" +msgid "" +"Dictionaries are associative containers that contain values referenced by " +"unique keys. Dictionaries will preserve the insertion order when adding new " +"entries. In other programming languages, this data structure is often " +"referred to as a hash map or an associative array.\n" +"You can define a dictionary by placing a comma-separated list of [code]key: " +"value[/code] pairs inside curly braces [code]{}[/code].\n" +"Creating a dictionary:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {} # Creates an empty dictionary.\n" +"\n" +"var dict_variable_key = \"Another key name\"\n" +"var dict_variable_value = \"value2\"\n" +"var another_dict = {\n" +" \"Some key name\": \"value1\",\n" +" dict_variable_key: dict_variable_value,\n" +"}\n" +"\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" +"\n" +"# Alternative Lua-style syntax.\n" +"# Doesn't require quotes around keys, but only string constants can be used " +"as key names.\n" +"# Additionally, key names must start with a letter or an underscore.\n" +"# Here, `some_key` is a string literal, not a variable!\n" +"another_dict = {\n" +" some_key = 42,\n" +"}\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary(); // Creates an empty " +"dictionary.\n" +"var pointsDict = new Godot.Collections.Dictionary\n" +"{\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" +"};\n" +"[/csharp]\n" +"[/codeblocks]\n" +"You can access a dictionary's value by referencing its corresponding key. In " +"the above example, [code]points_dict[\"White\"][/code] will return [code]50[/" +"code]. You can also write [code]points_dict.White[/code], which is " +"equivalent. However, you'll have to use the bracket syntax if the key you're " +"accessing the dictionary with isn't a fixed string (such as a number or " +"variable).\n" +"[codeblocks]\n" +"[gdscript]\n" +"@export_enum(\"White\", \"Yellow\", \"Orange\") var my_color: String\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" +"func _ready():\n" +" # We can't use dot syntax here as `my_color` is a variable.\n" +" var points = points_dict[my_color]\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export(PropertyHint.Enum, \"White,Yellow,Orange\")]\n" +"public string MyColor { get; set; }\n" +"private Godot.Collections.Dictionary _pointsDict = new Godot.Collections." +"Dictionary\n" +"{\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" +"};\n" +"\n" +"public override void _Ready()\n" +"{\n" +" int points = (int)_pointsDict[MyColor];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the above code, [code]points[/code] will be assigned the value that is " +"paired with the appropriate color selected in [code]my_color[/code].\n" +"Dictionaries can contain more complex data:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {\n" +" \"First Array\": [1, 2, 3, 4] # Assigns an Array to a String key.\n" +"}\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" {\"First Array\", new Godot.Collections.Array{1, 2, 3, 4}}\n" +"};\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To add a key to an existing dictionary, access it like an existing key and " +"assign to it:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" +"points_dict[\"Blue\"] = 150 # Add \"Blue\" as a key and assign 150 as its " +"value.\n" +"[/gdscript]\n" +"[csharp]\n" +"var pointsDict = new Godot.Collections.Dictionary\n" +"{\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" +"};\n" +"pointsDict[\"Blue\"] = 150; // Add \"Blue\" as a key and assign 150 as its " +"value.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Finally, dictionaries can contain different types of keys and values in the " +"same dictionary:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# This is a valid dictionary.\n" +"# To access the string \"Nested value\" below, use `my_dict.sub_dict.sub_key` " +"or `my_dict[\"sub_dict\"][\"sub_key\"]`.\n" +"# Indexing styles can be mixed and matched depending on your needs.\n" +"var my_dict = {\n" +" \"String Key\": 5,\n" +" 4: [1, 2, 3],\n" +" 7: \"Hello\",\n" +" \"sub_dict\": {\"sub_key\": \"Nested value\"},\n" +"}\n" +"[/gdscript]\n" +"[csharp]\n" +"// This is a valid dictionary.\n" +"// To access the string \"Nested value\" below, use `((Godot.Collections." +"Dictionary)myDict[\"sub_dict\"])[\"sub_key\"]`.\n" +"var myDict = new Godot.Collections.Dictionary {\n" +" {\"String Key\", 5},\n" +" {4, new Godot.Collections.Array{1,2,3}},\n" +" {7, \"Hello\"},\n" +" {\"sub_dict\", new Godot.Collections.Dictionary{{\"sub_key\", \"Nested " +"value\"}}}\n" +"};\n" +"[/csharp]\n" +"[/codeblocks]\n" +"The keys of a dictionary can be iterated with the [code]for[/code] keyword:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var groceries = {\"Orange\": 20, \"Apple\": 2, \"Banana\": 4}\n" +"for fruit in groceries:\n" +" var amount = groceries[fruit]\n" +"[/gdscript]\n" +"[csharp]\n" +"var groceries = new Godot.Collections.Dictionary{{\"Orange\", 20}, " +"{\"Apple\", 2}, {\"Banana\", 4}};\n" +"foreach (var (fruit, amount) in groceries)\n" +"{\n" +" // `fruit` is the key, `amount` is the value.\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Dictionaries are always passed by reference. To get a copy of a " +"dictionary which can be modified independently of the original dictionary, " +"use [method duplicate].\n" +"[b]Note:[/b] Erasing elements while iterating over dictionaries is [b]not[/b] " +"supported and will result in unpredictable behavior." +msgstr "" +"字典是关系容器,包含的值(Value)由唯一的键(Key)引用。添加新条目时,字典会保" +"持插入顺序。在其他编程语言中,这种数据结构有时也称为哈希表或关联数组。\n" +"在大括号 [code]{}[/code] 中放置用逗号分隔的一对对 [code]键: 值[/code] 列表就可" +"以定义字典。\n" +"字典的创建:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {} # 创建空字典。\n" +"\n" +"var dict_variable_key = \"Another key name\"\n" +"var dict_variable_value = \"value2\"\n" +"var another_dict = {\n" +" \"Some key name\": \"value1\",\n" +" dict_variable_key: dict_variable_value,\n" +"}\n" +"\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" +"\n" +"# 备选 Lua 分隔语法。\n" +"# 不需要在键周围加引号,但键名只能为字符串常量。\n" +"# 另外,键名必须以字母或下划线开头。\n" +"# 此处的 `some_key` 是字符串字面量,不是变量!\n" +"another_dict = {\n" +" some_key = 42,\n" +"}\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary(); // 创建空字典。\n" +"var pointsDict = new Godot.Collections.Dictionary\n" +"{\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" +"};\n" +"[/csharp]\n" +"[/codeblocks]\n" +"你可以通过键来访问字典中对应的值。上面的例子中,[code]points_dict[\"White\"][/" +"code] 会返回 [code]50[/code]。你也可以写 [code]points_dict.White[/code],和前" +"面的写法是等价的。不过如果用来访问字典的键不是固定字符串的话(例如数字或者变" +"量),那么就只能使用方括号语法。\n" +"[codeblocks]\n" +"[gdscript]\n" +"@export_enum(\"White\", \"Yellow\", \"Orange\") var my_color: String\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" +"func _ready():\n" +" # 不能使用点语法,因为 `my_color` 是变量。\n" +" var points = points_dict[my_color]\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export(PropertyHint.Enum, \"White,Yellow,Orange\")]\n" +"public string MyColor { get; set; }\n" +"private Godot.Collections.Dictionary _pointsDict = new Godot.Collections." +"Dictionary\n" +"{\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" +"};\n" +"\n" +"public override void _Ready()\n" +"{\n" +" int points = (int)_pointsDict[MyColor];\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"在上面的代码中,[code]points[/code] 会被赋值为与 [code]my_color[/code] 中选中" +"的颜色相对应的值。\n" +"字典可以包含更复杂的数据:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {\n" +" \"First Array\": [1, 2, 3, 4] # 将 Array 赋给 String 键。\n" +"}\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" {\"First Array\", new Godot.Collections.Array{1, 2, 3, 4}}\n" +"};\n" +"[/csharp]\n" +"[/codeblocks]\n" +"要往已有字典中添加键,请像已有键一样进行访问并赋值:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" +"points_dict[\"Blue\"] = 150 # 将 \"Blue\" 添加为键,并将 150 赋为它的值。\n" +"[/gdscript]\n" +"[csharp]\n" +"var pointsDict = new Godot.Collections.Dictionary\n" +"{\n" +" {\"White\", 50},\n" +" {\"Yellow\", 75},\n" +" {\"Orange\", 100}\n" +"};\n" +"pointsDict[\"Blue\"] = 150; // 将 \"Blue\" 添加为键,并将 150 赋为它的值。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"最后,同一个字典里可以包含不同类型的键和值:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 这是有效的字典。\n" +"# 要访问下面的 \"Nested value\",请使用 `my_dict.sub_dict.sub_key` 或 " +"`my_dict[\"sub_dict\"][\"sub_key\"]`。\n" +"# 索引风格可以按需混合使用。\n" +"var my_dict = {\n" +" \"String Key\": 5,\n" +" 4: [1, 2, 3],\n" +" 7: \"Hello\",\n" +" \"sub_dict\": {\"sub_key\": \"Nested value\"},\n" +"}\n" +"[/gdscript]\n" +"[csharp]\n" +"// 这是有效的字典。\n" +"// 要访问下面的 \"Nested value\",请使用 `((Godot.Collections." +"Dictionary)myDict[\"sub_dict\"])[\"sub_key\"]`。\n" +"var myDict = new Godot.Collections.Dictionary {\n" +" {\"String Key\", 5},\n" +" {4, new Godot.Collections.Array{1,2,3}},\n" +" {7, \"Hello\"},\n" +" {\"sub_dict\", new Godot.Collections.Dictionary{{\"sub_key\", \"Nested " +"value\"}}}\n" +"};\n" +"[/csharp]\n" +"[/codeblocks]\n" +"字典中的键可以用 [code]for[/code] 关键字进行遍历:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var groceries = {\"Orange\": 20, \"Apple\": 2, \"Banana\": 4}\n" +"for fruit in groceries:\n" +" var amount = groceries[fruit]\n" +"[/gdscript]\n" +"[csharp]\n" +"var groceries = new Godot.Collections.Dictionary{{\"Orange\", 20}, " +"{\"Apple\", 2}, {\"Banana\", 4}};\n" +"foreach (var (fruit, amount) in groceries)\n" +"{\n" +" // `fruit` 为键,`amount` 为值。\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]字典始终按引用传递。要获取字典的副本,能独立于原字典进行修改,请" +"使用 [method duplicate]。\n" +"[b]注意:[/b][b]不支持[/b]在遍历字典时清除元素,可能造成无法预知的行为。" + msgid "GDScript basics: Dictionary" msgstr "GDScript 基础:字典" @@ -30361,6 +31608,72 @@ msgstr "" "返回该字典中与给定的键 [param key] 对应的值。如果 [param key] 不存在,则返回 " "[param default],如果省略了该参数则返回 [code]null[/code]。" +msgid "" +"Returns [code]true[/code] if the dictionary contains an entry with the given " +"[param key].\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {\n" +" \"Godot\" : 4,\n" +" 210 : null,\n" +"}\n" +"\n" +"print(my_dict.has(\"Godot\")) # Prints true\n" +"print(my_dict.has(210)) # Prints true\n" +"print(my_dict.has(4)) # Prints false\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" { \"Godot\", 4 },\n" +" { 210, default },\n" +"};\n" +"\n" +"GD.Print(myDict.ContainsKey(\"Godot\")); // Prints true\n" +"GD.Print(myDict.ContainsKey(210)); // Prints true\n" +"GD.Print(myDict.ContainsKey(4)); // Prints false\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In GDScript, this is equivalent to the [code]in[/code] operator:\n" +"[codeblock]\n" +"if \"Godot\" in {\"Godot\": 4}:\n" +" print(\"The key is here!\") # Will be printed.\n" +"[/codeblock]\n" +"[b]Note:[/b] This method returns [code]true[/code] as long as the [param key] " +"exists, even if its corresponding value is [code]null[/code]." +msgstr "" +"如果该字典包含给定的键 [param key],则返回 [code]true[/code]。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var my_dict = {\n" +" \"Godot\" : 4,\n" +" 210 : null,\n" +"}\n" +"\n" +"print(my_dict.has(\"Godot\")) # 输出 true\n" +"print(my_dict.has(210)) # 输出 true\n" +"print(my_dict.has(4)) # 输出 false\n" +"[/gdscript]\n" +"[csharp]\n" +"var myDict = new Godot.Collections.Dictionary\n" +"{\n" +" { \"Godot\", 4 },\n" +" { 210, default },\n" +"};\n" +"\n" +"GD.Print(myDict.ContainsKey(\"Godot\")); // 输出 true\n" +"GD.Print(myDict.ContainsKey(210)); // 输出 true\n" +"GD.Print(myDict.ContainsKey(4)); // 输出 false\n" +"[/csharp]\n" +"[/codeblocks]\n" +"在 GDScript 中等价于 [code]in[/code] 运算符:\n" +"[codeblock]\n" +"if \"Godot\" in {\"Godot\": 4}:\n" +" print(\"这个键存在!\") # 会进行输出。\n" +"[/codeblock]\n" +"[b]注意:[/b]只要键 [param key] 存在,该方法就会返回 [code]true[/code],即便这" +"个键对应的值为 [code]null[/code]。" + msgid "" "Returns [code]true[/code] if the dictionary contains all keys in the given " "[param keys] array.\n" @@ -30488,6 +31801,131 @@ msgstr "" msgid "Provides methods for managing directories and their content." msgstr "提供管理目录及其内容的方法。" +msgid "" +"This class is used to manage directories and their content, even outside of " +"the project folder.\n" +"[DirAccess] can't be instantiated directly. Instead it is created with a " +"static method that takes a path for which it will be opened.\n" +"Most of the methods have a static alternative that can be used without " +"creating a [DirAccess]. Static methods only support absolute paths (including " +"[code]res://[/code] and [code]user://[/code]).\n" +"[codeblock]\n" +"# Standard\n" +"var dir = DirAccess.open(\"user://levels\")\n" +"dir.make_dir(\"world1\")\n" +"# Static\n" +"DirAccess.make_dir_absolute(\"user://levels/world1\")\n" +"[/codeblock]\n" +"[b]Note:[/b] Many resources types are imported (e.g. textures or sound " +"files), and their source asset will not be included in the exported game, as " +"only the imported version is used. Use [ResourceLoader] to access imported " +"resources.\n" +"Here is an example on how to iterate through the files of a directory:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func dir_contents(path):\n" +" var dir = DirAccess.open(path)\n" +" if dir:\n" +" dir.list_dir_begin()\n" +" var file_name = dir.get_next()\n" +" while file_name != \"\":\n" +" if dir.current_is_dir():\n" +" print(\"Found directory: \" + file_name)\n" +" else:\n" +" print(\"Found file: \" + file_name)\n" +" file_name = dir.get_next()\n" +" else:\n" +" print(\"An error occurred when trying to access the path.\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public void DirContents(string path)\n" +"{\n" +" using var dir = DirAccess.Open(path);\n" +" if (dir != null)\n" +" {\n" +" dir.ListDirBegin();\n" +" string fileName = dir.GetNext();\n" +" while (fileName != \"\")\n" +" {\n" +" if (dir.CurrentIsDir())\n" +" {\n" +" GD.Print($\"Found directory: {fileName}\");\n" +" }\n" +" else\n" +" {\n" +" GD.Print($\"Found file: {fileName}\");\n" +" }\n" +" fileName = dir.GetNext();\n" +" }\n" +" }\n" +" else\n" +" {\n" +" GD.Print(\"An error occurred when trying to access the path.\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"这个类可以用来管理目录及其内容,不限于项目文件夹。\n" +"[DirAccess] 无法直接实例化。请使用接受要打开的路径的静态方法创建。\n" +"大多数方法都有静态备选项,无需创建 [DirAccess] 即可使用。静态方法仅支持绝对路" +"径(包含 [code]res://[/code] 和 [code]user://[/code])。\n" +"[codeblock]\n" +"# 标准\n" +"var dir = DirAccess.open(\"user://levels\")\n" +"dir.make_dir(\"world1\")\n" +"# 静态\n" +"DirAccess.make_dir_absolute(\"user://levels/world1\")\n" +"[/codeblock]\n" +"[b]注意:[/b]很多资源类型是经过导入的(例如纹理和声音文件),因为在游戏中只会" +"用到导入后的版本,所以导出后的游戏中不包含对应的源资产。请使用 " +"[ResourceLoader] 访问导入的资源。\n" +"以下是遍历目录中文件的示例:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func dir_contents(path):\n" +" var dir = DirAccess.open(path)\n" +" if dir:\n" +" dir.list_dir_begin()\n" +" var file_name = dir.get_next()\n" +" while file_name != \"\":\n" +" if dir.current_is_dir():\n" +" print(\"发现目录:\" + file_name)\n" +" else:\n" +" print(\"发现文件:\" + file_name)\n" +" file_name = dir.get_next()\n" +" else:\n" +" print(\"尝试访问路径时出错。\")\n" +"[/gdscript]\n" +"[csharp]\n" +"public void DirContents(string path)\n" +"{\n" +" using var dir = DirAccess.Open(path);\n" +" if (dir != null)\n" +" {\n" +" dir.ListDirBegin();\n" +" string fileName = dir.GetNext();\n" +" while (fileName != \"\")\n" +" {\n" +" if (dir.CurrentIsDir())\n" +" {\n" +" GD.Print($\"发现目录:{fileName}\");\n" +" }\n" +" else\n" +" {\n" +" GD.Print($\"发现文件:{fileName}\");\n" +" }\n" +" fileName = dir.GetNext();\n" +" }\n" +" }\n" +" else\n" +" {\n" +" GD.Print(\"尝试访问路径时出错。\");\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "File system" msgstr "文件系统" @@ -30967,9 +32405,27 @@ msgid "" "illuminating the scene (during a night cycle, for example)." msgstr "" "使灯光仅对天空着色器可见。使用此模式时,灯光不会将灯光投射到场景中(通过直接照" -"明或通过全局照明),但可以通过天空着色器访问。例如,当您想要控制天空效果而不照" +"明或通过全局照明),但可以通过天空着色器访问。例如,当你想要控制天空效果而不照" "亮场景时(例如,在夜间循环期间),这可能很有用。" +msgid "A server interface for low-level window management." +msgstr "用于低阶窗口管理的服务器接口。" + +msgid "" +"[DisplayServer] handles everything related to window management. It is " +"separated from [OS] as a single operating system may support multiple display " +"servers.\n" +"[b]Headless mode:[/b] Starting the engine with the [code]--headless[/code] " +"[url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line " +"argument[/url] disables all rendering and window management functions. Most " +"functions from [DisplayServer] will return dummy values in this case." +msgstr "" +"所有与窗口管理相关的内容都由 [DisplayServer](显示服务器)处理。因为一个操作系" +"统可能支持多个显示服务器,所以与 [OS] 是分开的。\n" +"[b]无头模式:[/b]如果使用 [code]--headless[/code] [url=$DOCS_URL/tutorials/" +"editor/command_line_tutorial.html]命令行参数[/url]启动引擎,就会禁用所有渲染和" +"窗口管理功能。此时 [DisplayServer] 的大多数函数都会返回虚拟值。" + msgid "Returns the user's clipboard as a string if possible." msgstr "如果可能,将用户的剪贴板作为字符串返回。" @@ -30987,7 +32443,7 @@ msgstr "" "贴板作为字符串返回。这是当用户在任何应用程序中选择文本时设置的剪贴板,而不是在" "按下 [kbd]Ctrl + C[/kbd] 时设置的。然后可以通过在支持主剪贴板机制的任何应用程" "序中,通过点击鼠标中键来粘贴该剪贴板数据。\n" -"[b]注意:[/b] 这个方法只在 Linux(X11)上实现。" +"[b]注意:[/b]这个方法只在 Linux(X11)上实现。" msgid "Returns [code]true[/code] if there is content on the user's clipboard." msgstr "如果用户的剪贴板中有内容,则返回 [code]true[/code]。" @@ -31009,7 +32465,7 @@ msgstr "" "置为给定的字符串。这是用户在应用程序中选中文本时设置的剪贴板,不是按 " "[kbd]Ctrl + C[/kbd] 时设置的。设置后可以在任何支持主剪贴板机制的应用程序中通过" "点击鼠标中键粘贴剪贴板数据。\n" -"[b]注意:[/b] 这个方法只在 Linux(X11)上实现。" +"[b]注意:[/b]这个方法只在 Linux(X11)上实现。" msgid "Returns the default mouse cursor shape set by [method cursor_set_shape]." msgstr "返回默认鼠标光标形状,由 [method cursor_set_shape] 设置。" @@ -31037,6 +32493,36 @@ msgstr "" "设置默认的鼠标光标形状。光标的外观将根据用户的操作系统和鼠标光标主题而变化。另" "见 [method cursor_get_shape] 和 [method cursor_set_custom_image]。" +msgid "" +"Shows a text input dialog which uses the operating system's native look-and-" +"feel. [param callback] will be called with a [String] argument equal to the " +"text field's contents when the dialog is closed for any reason.\n" +"[b]Note:[/b] This method is implemented only on macOS." +msgstr "" +"显示文本输入对话框,这个对话框的外观和行为与操作系统原生对话框一致。无论该对话" +"框因为什么原因而关闭,都会使用文本字段的内容作为 [String] 参数来调用 [param " +"callback]。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。" + +msgid "" +"Shows a text dialog which uses the operating system's native look-and-feel. " +"[param callback] will be called when the dialog is closed for any reason.\n" +"[b]Note:[/b] This method is implemented only on macOS." +msgstr "" +"显示文本对话框,这个对话框的外观和行为与操作系统原生对话框一致。无论该对话框因" +"为什么原因而关闭,都会使用调用 [param callback]。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。" + +msgid "" +"Allows the [param process_id] PID to steal focus from this window. In other " +"words, this disables the operating system's focus stealing protection for the " +"specified PID.\n" +"[b]Note:[/b] This method is implemented only on Windows." +msgstr "" +"让进程 PID [param process_id] 窃取该窗口的焦点。换句话说,会禁用操作系统对指" +"定 PID 的焦点窃取保护。\n" +"[b]注意:[/b]该方法仅在 Windows 上实现。" + msgid "" "Forces window manager processing while ignoring all [InputEvent]s. See also " "[method process_events].\n" @@ -31157,6 +32643,341 @@ msgstr "" "返回属于该进程的 Godot 窗口 ID 列表。\n" "[b]注意:[/b]这个列表中不含原生对话框。" +msgid "" +"Adds a new checkable item with text [param label] to the global menu with ID " +"[param menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using bitwise OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加新的可勾选菜单项,显示的文本为 " +"[param label]。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"还可以定义键盘快捷键 [param accelerator],按下后即便该菜单按钮尚未打开,也会进" +"行触发。[param accelerator] 通常是将 [enum KeyModifierMask] 和 [enum Key] 用按" +"位或操作进行的组合,例如 [code]KEY_MASK_CTRL | KEY_A[/code]([kbd]Ctrl + A[/" +"kbd])。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 均只接受一个 " +"Variant 参数,传入 Callable 的参数是传给 [param tag] 的参数。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new checkable item with text [param label] and icon [param icon] to " +"the global menu with ID [param menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using bitwise OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加新的可勾选菜单项,显示的文本为 " +"[param label],图标为 [param icon]。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"还可以定义键盘快捷键 [param accelerator],按下后即便该菜单按钮尚未打开,也会进" +"行触发。[param accelerator] 通常是将 [enum KeyModifierMask] 和 [enum Key] 用按" +"位或操作进行的组合,例如 [code]KEY_MASK_CTRL | KEY_A[/code]([kbd]Ctrl + A[/" +"kbd])。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 均只接受一个 " +"Variant 参数,传入 Callable 的参数是传给 [param tag] 的参数。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new item with text [param label] and icon [param icon] to the global " +"menu with ID [param menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using bitwise OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加新的菜单项,显示的文本为 [param " +"label],图标为 [param icon]。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"还可以定义键盘快捷键 [param accelerator],按下后即便该菜单按钮尚未打开,也会进" +"行触发。[param accelerator] 通常是将 [enum KeyModifierMask] 和 [enum Key] 用按" +"位或操作进行的组合,例如 [code]KEY_MASK_CTRL | KEY_A[/code]([kbd]Ctrl + A[/" +"kbd])。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 均只接受一个 " +"Variant 参数,传入 Callable 的参数是传给 [param tag] 的参数。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new radio-checkable item with text [param label] and icon [param icon] " +"to the global menu with ID [param menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using bitwise OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] Radio-checkable items just display a checkmark, but don't have " +"any built-in checking behavior and must be checked/unchecked manually. See " +"[method global_menu_set_item_checked] for more info on how to control it.\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加新的单选菜单项,显示的文本为 [param " +"label],图标为 [param icon]。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"还可以定义键盘快捷键 [param accelerator],按下后即便该菜单按钮尚未打开,也会进" +"行触发。[param accelerator] 通常是将 [enum KeyModifierMask] 和 [enum Key] 用按" +"位或操作进行的组合,例如 [code]KEY_MASK_CTRL | KEY_A[/code]([kbd]Ctrl + A[/" +"kbd])。\n" +"[b]注意:[/b]单选菜单项只负责显示选中标记,并没有任何内置检查行为,必须手动进" +"行选中、取消选中的操作。关于如何进行控制的更多信息见 [method " +"global_menu_set_item_checked]。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 均只接受一个 " +"Variant 参数,传入 Callable 的参数是传给 [param tag] 的参数。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new item with text [param label] to the global menu with ID [param " +"menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using bitwise OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加新的菜单项,显示的文本为 [param " +"label]。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"还可以定义键盘快捷键 [param accelerator],按下后即便该菜单按钮尚未打开,也会进" +"行触发。[param accelerator] 通常是将 [enum KeyModifierMask] 和 [enum Key] 用按" +"位或操作进行的组合,例如 [code]KEY_MASK_CTRL | KEY_A[/code]([kbd]Ctrl + A[/" +"kbd])。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 均只接受一个 " +"Variant 参数,传入 Callable 的参数是传给 [param tag] 的参数。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new item with text [param label] to the global menu with ID [param " +"menu_root].\n" +"Contrarily to normal binary items, multistate items can have more than two " +"states, as defined by [param max_states]. Each press or activate of the item " +"will increase the state by one. The default value is defined by [param " +"default_state].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using bitwise OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] By default, there's no indication of the current item state, it " +"should be changed manually.\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加新的菜单项,显示的文本为 [param " +"label]。\n" +"与常规的二态菜单项不同,多状态菜单项的状态可以多于两个,由 [param max_states] " +"定义。每点击或激活该菜单项一次,状态就会加一。默认值由 [param default_state] " +"定义。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"还可以定义键盘快捷键 [param accelerator],按下后即便该菜单按钮尚未打开,也会进" +"行触发。[param accelerator] 通常是将 [enum KeyModifierMask] 和 [enum Key] 用按" +"位或操作进行的组合,例如 [code]KEY_MASK_CTRL | KEY_A[/code]([kbd]Ctrl + A[/" +"kbd])。\n" +"[b]注意:[/b]默认情况下不会展示当前菜单项的状态,应该手动更改。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 均只接受一个 " +"Variant 参数,传入 Callable 的参数是传给 [param tag] 的参数。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new radio-checkable item with text [param label] to the global menu " +"with ID [param menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using bitwise OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] Radio-checkable items just display a checkmark, but don't have " +"any built-in checking behavior and must be checked/unchecked manually. See " +"[method global_menu_set_item_checked] for more info on how to control it.\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加新的单选菜单项,显示的文本为 [param " +"label]。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"还可以定义键盘快捷键 [param accelerator],按下后即便该菜单按钮尚未打开,也会进" +"行触发。[param accelerator] 通常是将 [enum KeyModifierMask] 和 [enum Key] 用按" +"位或操作进行的组合,例如 [code]KEY_MASK_CTRL | KEY_A[/code]([kbd]Ctrl + A[/" +"kbd])。\n" +"[b]注意:[/b]单选菜单项只负责显示选中标记,并没有任何内置检查行为,必须手动进" +"行选中、取消选中的操作。关于如何进行控制的更多信息见 [method " +"global_menu_set_item_checked]。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 均只接受一个 " +"Variant 参数,传入 Callable 的参数是传给 [param tag] 的参数。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a separator between items to the global menu with ID [param menu_root]. " +"Separators also occupy an index.\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加分隔符。分隔符也拥有索引。\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds an item that will act as a submenu of the global menu [param menu_root]. " +"The [param submenu] argument is the ID of the global menu root that will be " +"shown when the item is clicked.\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"向 ID 为 [param menu_root] 的全局菜单添加作为子菜单的菜单项。[param submenu] " +"参数为全局菜单根菜单项的 ID,会在点击该菜单项时显示\n" +"返回插入菜单项的索引,不保证与 [param index] 的值相同。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Removes all items from the global menu with ID [param menu_root].\n" +"[b]Note:[/b] This method is implemented only on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"移除 ID 为 [param menu_root] 的全局菜单中的所有菜单项。\n" +"[b]注意:[/b]该方法仅在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - 程序坞弹出菜单(macOS)。\n" +"[/codeblock]" + msgid "" "Returns the accelerator of the item at index [param idx]. Accelerators are " "special combinations of keys that activate the item, no matter which control " @@ -31502,15 +33323,6 @@ msgstr "" "如果操作系统支持暗黑模式,则返回 [code]true[/code]。\n" "[b]注意:[/b]这个方法在 macOS、Windows 和 Linux(X11)上实现。" -msgid "" -"Returns [code]true[/code] if touch events are available (Android or iOS), the " -"capability is detected on the Webplatform or if [member ProjectSettings." -"input_devices/pointing/emulate_touch_from_mouse] is [code]true[/code]." -msgstr "" -"如果触摸事件可用(Android 或 iOS)、在 Web 平台上检测到该功能或如果 [member " -"ProjectSettings.input_devices/pointing/emulate_touch_from_mouse] 为 " -"[code]true[/code] 时,则返回 [code]true[/code]。" - msgid "" "Returns active keyboard layout index.\n" "[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows." @@ -32027,7 +33839,7 @@ msgid "" "[b]Note:[/b] This method is implemented on Android, iOS and Web." msgstr "" "如果该平台有虚拟键盘,则显示虚拟键盘。\n" -"[param existing_text] 参数对于实现您自己的 [LineEdit] 或 [TextEdit] 很有用,因" +"[param existing_text] 参数对于实现你自己的 [LineEdit] 或 [TextEdit] 很有用,因" "为它告诉虚拟键盘已经输入了哪些文本(虚拟键盘使用它进行自动更正和预测)。\n" "[param position] 参数为编辑文本的屏幕空间 [Rect2]。\n" "[param type] 参数允许配置要显示的虚拟键盘类型。\n" @@ -32064,6 +33876,12 @@ msgid "" "there is none." msgstr "返回活动弹出窗口的 ID,如果没有则返回 [constant INVALID_WINDOW_ID]。" +msgid "" +"Returns the [method Object.get_instance_id] of the [Window] the [param " +"window_id] is attached to." +msgstr "" +"返回 [param window_id] 所附加的 [Window] 的 [method Object.get_instance_id]。" + msgid "" "Returns the screen the window specified by [param window_id] is currently " "positioned on. If the screen overlaps multiple displays, the screen where the " @@ -32095,7 +33913,7 @@ msgid "" "Windows." msgstr "" "该函数返回用于插件的内部结构指针。\n" -"[b]注意:[/b] 该方法在 Android、Linux(X11)、macOS 和 Windows 上实现。" +"[b]注意:[/b]该方法在 Android、Linux(X11)、macOS 和 Windows 上实现。" msgid "" "Returns the bounding box of control, or menu item that was used to open the " @@ -32147,12 +33965,33 @@ msgstr "" msgid "Returns the V-Sync mode of the given window." msgstr "返回给定窗口的垂直同步模式。" +msgid "" +"Returns [code]true[/code] if the window specified by [param window_id] is " +"focused." +msgstr "如果 [param window_id] 指定的窗口已获得焦点,则返回 [code]true[/code]。" + msgid "" "Returns [code]true[/code] if the given window can be maximized (the maximize " "button is enabled)." msgstr "" "如果给定的窗口能够最大化(最大化按钮已启用),则返回 [code]true[/code]。" +msgid "" +"Returns [code]true[/code], if double-click on a window title should maximize " +"it.\n" +"[b]Note:[/b] This method is implemented only on macOS." +msgstr "" +"如果双击窗口标题应将其最大化,则返回 [code]true[/code]。\n" +"[b]注意:[/b]这个方法仅在 macOS 上实现。" + +msgid "" +"Returns [code]true[/code], if double-click on a window title should minimize " +"it.\n" +"[b]Note:[/b] This method is implemented only on macOS." +msgstr "" +"如果双击窗口标题应将其最小化,则返回 [code]true[/code]。\n" +"[b]注意:[/b]这个方法仅在 macOS 上实现。" + msgid "" "Moves the window specified by [param window_id] to the foreground, so that it " "is visible over other windows." @@ -32879,8 +34718,8 @@ msgid "" msgstr "" "具有完整多窗口支持的全屏模式。\n" "全屏窗口覆盖屏幕的整个显示区域,没有边框或装饰。显示视频模式没有更改。\n" -"[b]注意:[/b] 无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此," -"请确保您的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/" +"[b]注意:[/b]无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此," +"请确保你的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/" "multiple_resolutions.html]多种分辨率[/url]。" msgid "" @@ -32907,7 +34746,7 @@ msgstr "" "Menu 出现。\n" "[b]在 Linux(X11)上:[/b]独占全屏模式会绕过合成器。\n" "[b]注意:[/b]无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此," -"确保您的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/" +"确保你的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/" "multiple_resolutions.html]多个分辨率[/url]。" msgid "" @@ -32960,6 +34799,24 @@ msgstr "" "击或切换应用程序时,弹出窗口将会自动关闭。 弹出窗口必须已经设置了临时父级(参" "见 [method window_set_transient])。" +msgid "" +"Window content is expanded to the full size of the window. Unlike borderless " +"window, the frame is left intact and can be used to resize the window, title " +"bar is transparent, but have minimize/maximize/close buttons.\n" +"Use [method window_set_window_buttons_offset] to adjust minimize/maximize/" +"close buttons offset.\n" +"Use [method window_get_safe_title_margins] to determine area under the title " +"bar that is not covered by decorations.\n" +"[b]Note:[/b] This flag is implemented only on macOS." +msgstr "" +"窗口内容扩展到窗口的全部大小。与无边框窗口不同,框架仍保持不变,可以调整窗口大" +"小,标题栏是透明的,但具有最小化/最大化/关闭按钮。\n" +"使用 [method window_set_window_buttons_offset] 调整最小化/最大化/关闭按钮的偏" +"移量。\n" +"使用 [method window_get_safe_title_margins] 确定标题栏下方未被装饰覆盖的区" +"域。\n" +"[b]注意:[/b]该标志仅在 macOS 上实现。" + msgid "" "All mouse events are passed to the underlying window of the same application." msgstr "所有鼠标事件都被传递到同一应用程序的底层窗口。" @@ -32996,6 +34853,33 @@ msgstr "" "当用户试图关闭该窗口时发送(例如按下关闭按钮),见 [method " "window_set_window_event_callback]。" +msgid "" +"Sent when the device \"Back\" button is pressed, see [method " +"window_set_window_event_callback].\n" +"[b]Note:[/b] This event is implemented only on Android." +msgstr "" +"当按下设备的“后退”按钮时发送,见 [method window_set_window_event_callback]。\n" +"[b]注意:[/b]该事件仅在 Android 上实现。" + +msgid "" +"Sent when the window is moved to the display with different DPI, or display " +"DPI is changed, see [method window_set_window_event_callback].\n" +"[b]Note:[/b] This flag is implemented only on macOS." +msgstr "" +"当窗口被移动到具有不同 DPI 的显示器上,或者显示器的 DPI 更改时发送,见 " +"[method window_set_window_event_callback]。\n" +"[b]注意:[/b]该标志仅在 macOS 上实现。" + +msgid "" +"Sent when the window title bar decoration is changed (e.g. [constant " +"WINDOW_FLAG_EXTEND_TO_TITLE] is set or window entered/exited full screen " +"mode), see [method window_set_window_event_callback].\n" +"[b]Note:[/b] This flag is implemented only on macOS." +msgstr "" +"当窗口标题栏的装饰改变时发送(例如 [constant WINDOW_FLAG_EXTEND_TO_TITLE] 被设" +"置或窗口进入/退出全屏模式),见 [method window_set_window_event_callback]。\n" +"[b]注意:[/b]该标志仅在 macOS 上实现。" + msgid "" "No vertical synchronization, which means the engine will display frames as " "fast as possible (tearing may be visible). Framerate is unlimited " @@ -33077,6 +34961,19 @@ msgstr "" "- macOS:窗口主视图的 [code]NSView*[/code]。\n" "- iOS:窗口主视图的 [code]UIView*[/code]。" +msgid "" +"OpenGL context (only with the GL Compatibility renderer):\n" +"- Windows: [code]HGLRC[/code] for the window.\n" +"- Linux: [code]GLXContext*[/code] for the window.\n" +"- macOS: [code]NSOpenGLContext*[/code] for the window.\n" +"- Android: [code]EGLContext[/code] for the window." +msgstr "" +"OpenGL 上下文(仅适用于 GL 兼容性渲染器):\n" +"- Windows:窗口的 [code]HGLRC[/code]。\n" +"- Linux:窗口的 [code]GLXContext*[/code]。\n" +"- macOS:窗口的 [code]NSOpenGLContext*[/code]。\n" +"- Android:窗口的 [code]EGLContext[/code]。" + msgid "Utterance has begun to be spoken." msgstr "发言开始。" @@ -33469,7 +35366,7 @@ msgstr "" "commandPalette.AddCommand(\"command\", \"test/command\", commandCallable)\n" "[/csharp]\n" "[/codeblocks]\n" -"[b]注意:[/b] 不应直接实例化此类。相反,使用 [method EditorInterface." +"[b]注意:[/b]不应直接实例化此类。相反,使用 [method EditorInterface." "get_command_palette] 访问单例。" msgid "" @@ -33597,7 +35494,7 @@ msgid "" "the ID of the [EditorDebuggerSession] that received the message (which you " "can retrieve via [method get_session])." msgstr "" -"重写此方法以处理传入的消息。[param session_id] 是接收到消息的 " +"覆盖此方法以处理传入的消息。[param session_id] 是接收到消息的 " "[EditorDebuggerSession] 的 ID(你可以通过 [method get_session] 检索到它)。" msgid "" @@ -33605,29 +35502,19 @@ msgid "" "[param capture] is \"my_message\" then messages starting with \"my_message:\" " "will be passes to the [method _capture] method." msgstr "" -"重写此方法以启用从调试器接收消息。如果[param capture]是\"my_message\",那么以" +"覆盖此方法以启用从调试器接收消息。如果[param capture]是\"my_message\",那么以" "\"my_message:\"开头的消息将会传递到[method _capture]方法。" msgid "" "Override this method to be notified whenever a new [EditorDebuggerSession] is " "created (the session may be inactive during this stage)." msgstr "" -"重写此方法,以在创建新的[EditorDebuggerSession]时被通知(此阶段期间可能处于非" +"覆盖此方法,以在创建新的[EditorDebuggerSession]时被通知(此阶段期间可能处于非" "活动状态)。" msgid "Returns the [EditorDebuggerSession] with the given [param id]." msgstr "返回具有给定 [param id] 的 [EditorDebuggerSession]。" -msgid "" -"Returns an array of [EditorDebuggerSession] currently available to this " -"debugger plugin.\n" -"Note: Not sessions in the array may be inactive, check their state via " -"[method EditorDebuggerSession.is_active]" -msgstr "" -"返回该调试器插件当前可用的 [EditorDebuggerSession] 数组。\n" -"注意:不是数组中的会话可能处于非活动状态,通过 [method EditorDebuggerSession." -"is_active] 检查它们的状态" - msgid "A class to interact with the editor debugger." msgstr "与编辑器调试器交互的类。" @@ -35667,6 +37554,20 @@ msgstr "" "com_apple_security_automation_apple-events]com.apple.security.automation." "apple-events[/url]。" +msgid "" +"Enable if you need to use the microphone or other audio input sources, if " +"it's enabled you should also provide usage message in the [code]privacy/" +"microphone_usage_description[/code] option. See [url=https://developer.apple." +"com/documentation/bundleresources/entitlements/" +"com_apple_security_device_audio-input]com.apple.security.device.audio-input[/" +"url]." +msgstr "" +"请在需要使用麦克风或其他音频输入源时启用,启用时还应在 [code]privacy/" +"microphone_usage_description[/code] 选项中提供用途信息。见 [url=https://" +"developer.apple.com/documentation/bundleresources/entitlements/" +"com_apple_security_device_audio-input]com.apple.security.device.audio-input[/" +"url]。" + msgid "" "Enable to allow access to the user's calendar, if it's enabled you should " "also provide usage message in the [code]privacy/calendar_usage_description[/" @@ -35698,6 +37599,18 @@ msgid "" msgstr "" "自定义权利 [code].plist[/code] 文件,如果指定,则会忽略导出配置中的其他权利。" +msgid "" +"You can temporarily enable this entitlement to use native debugger (GDB, " +"LLDB) with the exported app. This entitlement should be disabled for " +"production export. See [url=https://developer.apple.com/documentation/xcode/" +"embedding-a-helper-tool-in-a-sandboxed-app]Embedding a command-line tool in a " +"sandboxed app[/url]." +msgstr "" +"临时启用这个权利就可以对导出的应用使用原生调试器(GDB、LLDB)。生产导出应该禁" +"用这项权利。见 [url=https://developer.apple.com/documentation/xcode/embedding-" +"a-helper-tool-in-a-sandboxed-app]Embedding a command-line tool in a sandboxed " +"app[/url]。" + msgid "" "Allows app to load arbitrary libraries and frameworks (not signed with the " "same Team ID as the main executable or by Apple). Enable it if you are using " @@ -35712,6 +37625,33 @@ msgstr "" "documentation/bundleresources/entitlements/com_apple_security_cs_disable-" "library-validation]com.apple.security.cs.disable-library-validation[/url]。" +msgid "" +"Enable if you need to use location information from Location Services, if " +"it's enabled you should also provide usage message in the [code]privacy/" +"location_usage_description[/code] option. See [url=https://developer.apple." +"com/documentation/bundleresources/entitlements/com_apple_security_personal-" +"information_location]com.apple.security.personal-information.location[/url]." +msgstr "" +"如果你需要使用位置服务的位置信息,请启用此选项。如果已启用,则还应在" +"[code]privacy/location_usage_description[/code]选项中提供使用说明。请参阅" +"[url=https://developer.apple.com/documentation/bundleresources/entitlements/" +"com_apple_security_personal-information_location]com.apple.security.personal-" +"information.location[/url]。" + +msgid "" +"Enable to allow access to the user's Photos library, if it's enabled you " +"should also provide usage message in the [code]privacy/" +"photos_library_usage_description[/code] option. See [url=https://developer." +"apple.com/documentation/bundleresources/entitlements/" +"com_apple_security_personal-information_photos-library]com.apple.security." +"personal-information.photos-library[/url]." +msgstr "" +"启用后允许对用户的照片库进行访问,启用时还应在 [code]privacy/" +"photos_library_usage_description[/code] 选项中提供用途信息。见 [url=https://" +"developer.apple.com/documentation/bundleresources/entitlements/" +"com_apple_security_personal-information_photos-library]com.apple.security." +"personal-information.photos-library[/url]。" + msgid "" "The \"Full Name\", \"Common Name\" or SHA-1 hash of the signing identity used " "to sign [code].app[/code] bundle." @@ -35741,6 +37681,13 @@ msgstr "" "辑、下载或删除预置描述文件[/url]。\n" "可以使用环境变量 [code]GODOT_MACOS_CODESIGN_PROVISIONING_PROFILE[/code] 覆盖。" +msgid "" +"If enabled, a wrapper that can be used to run the application with console " +"output is created alongside the exported application." +msgstr "" +"启用后,会在导出后的应用程序旁创建一个封装程序,可以用来以带命令行输出的形式运" +"行该应用程序。" + msgid "" "If [code]true[/code], the application is rendered at native display " "resolution, otherwise it is always rendered at loHPI resolution and upscaled " @@ -36242,6 +38189,19 @@ msgstr "" "如果 [method _get_export_options] 的结果发生了改变,与 [param platform] 对应的" "导出预设的选项需要更新,则返回 [code]true[/code]。" +msgid "" +"Adds a custom file to be exported. [param path] is the virtual path that can " +"be used to load the file, [param file] is the binary data of the file.\n" +"When called inside [method _export_file] and [param remap] is [code]true[/" +"code], the current file will not be exported, but instead remapped to this " +"custom file. [param remap] is ignored when called in other places." +msgstr "" +"添加一个要导出的自定义文件。[param path] 是可以用来加载该文件的虚拟路径," +"[param file] 是该文件的二进制数据。\n" +"在 [method _export_file] 中调用时,如果 [param remap] 为 [code]true[/code],则" +"当前文件将不会被导出,而是被重新映射到这个自定义文件。在其他地方调用时会忽略 " +"[param remap]。" + msgid "" "Adds an iOS bundle file from the given [param path] to the exported project." msgstr "将给定的[param path]中的iOS bundle文件添加到导出的项目中。" @@ -36263,7 +38223,7 @@ msgid "" msgstr "" "将动态库(*.dylib、*.framework)添加到iOS的Xcode项目的链接阶段,并将其嵌入到生" "成的二进制文件中。\n" -"[b]注意:[/b] 对于静态库(*.a),该方法的工作方式与[code]add_ios_framework[/" +"[b]注意:[/b]对于静态库(*.a),该方法的工作方式与[code]add_ios_framework[/" "code]相同。\n" "此方法不该用于系统库,因为它们已经存在于设备上。" @@ -36509,7 +38469,7 @@ msgid "" "[member CanvasItem.visible] property." msgstr "" "返回所选文件的 LineEdit。\n" -"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果您希望隐" +"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果你希望隐" "藏它或其任何子项,请使用它们的 [member CanvasItem.visible] 属性。" msgid "" @@ -37220,9 +39180,9 @@ msgid "" "This method must be overridden to do the actual importing work. See this " "class' description for an example of overriding this method." msgstr "" -"使用指定的导入选项 [code]options[/code] 将 [code]source_file[/code] 导入到 " -"[code]save_path[/code] 中。此函数将修改[code]platform_variants[/code] 和 " -"[code]gen_files[/code] 数组。\n" +"使用指定的导入选项 [param options] 将 [param source_file] 导入到 [param " +"save_path] 中。此函数将修改 [param platform_variants] 和 [param gen_files] 数" +"组。\n" "必须重写这个方法才能完成实际的导入工作。参阅本类的描述以了解如何重写该方法。" msgid "" @@ -37744,7 +39704,7 @@ msgid "" "The [param secondary] argument is [code]true[/code] when the committed handle " "is secondary (see [method add_handles] for more information)." msgstr "" -"重写该方法,以提交一个正在编辑的控柄(控柄必须是之前通过 [method add_handles] " +"覆盖该方法,以提交一个正在编辑的控柄(控柄必须是之前通过 [method add_handles] " "添加的)。这通常意味着为该修改创建一个 [UndoRedo] 动作,将当前控柄值用作“做”," "并将 [param restore] 参数用作“撤销”。\n" "如果 [param cancel] 参数为 [code]true[/code],则应直接设置 [param restore] " @@ -37760,7 +39720,7 @@ msgid "" "If the [param cancel] argument is [code]true[/code], the [param restores] " "transforms should be directly set, without any [UndoRedo] action." msgstr "" -"重写该方法,以提交一组正在编辑的子小工具(参见 [method " +"覆盖该方法,以提交一组正在编辑的子小工具(参见 [method " "_subgizmos_intersect_ray] 和 [method _subgizmos_intersect_frustum])。这通常意" "味着为该更改创建一个 [UndoRedo] 动作,将当前变换用作“做”,并将 [param " "restores] 变换用作“撤消”。\n" @@ -37774,7 +39734,7 @@ msgid "" "The [param secondary] argument is [code]true[/code] when the requested handle " "is secondary (see [method add_handles] for more information)." msgstr "" -"重写该方法,以返回编辑的控柄的名称(控柄必须先前通过 [method add_handles] 添加" +"覆盖该方法,以返回编辑的控柄的名称(控柄必须先前通过 [method add_handles] 添加" "的)。可以命名控柄以供用户在编辑时引用。\n" "当请求的控柄是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多" "信息,请参阅 [method add_handles])。" @@ -37786,7 +39746,7 @@ msgid "" "The [param secondary] argument is [code]true[/code] when the requested handle " "is secondary (see [method add_handles] for more information)." msgstr "" -"重写该方法,以返回一个控柄的当前值。该值将在编辑开始时被请求,并用作 [method " +"覆盖该方法,以返回一个控柄的当前值。该值将在编辑开始时被请求,并用作 [method " "_commit_handle] 中的 [code]restore[/code] 参数。\n" "当请求的控柄是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多" "信息,请参阅 [method add_handles])。" @@ -37796,7 +39756,7 @@ msgid "" "transform will be requested at the start of an edit and used as the " "[code]restore[/code] argument in [method _commit_subgizmos]." msgstr "" -"重写该方法,以返回子小工具的当前变换。该变换将在编辑开始时被请求,并用作 " +"覆盖该方法,以返回子小工具的当前变换。该变换将在编辑开始时被请求,并用作 " "[method _commit_subgizmos] 中的 [code]restore[/code] 参数。" msgid "" @@ -37805,7 +39765,7 @@ msgid "" "The [param secondary] argument is [code]true[/code] when the requested handle " "is secondary (see [method add_handles] for more information)." msgstr "" -"重写该方法,只要给定的控柄应该在编辑器中被高亮显示时就返回 [code]true[/" +"覆盖该方法,只要给定的控柄应该在编辑器中被高亮显示时就返回 [code]true[/" "code]。\n" "当请求的控柄是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多" "信息,请参阅 [method add_handles])。" @@ -37815,7 +39775,7 @@ msgid "" "requested. It's common to call [method clear] at the beginning of this method " "and then add visual elements depending on the node's properties." msgstr "" -"重写该方法,每当请求小工具更新时将添加所有小工具元素。通常在该方法的开头调用 " +"覆盖该方法,每当请求小工具更新时将添加所有小工具元素。通常在该方法的开头调用 " "[method clear],然后根据节点的属性添加可视元素。" msgid "" @@ -37826,7 +39786,7 @@ msgid "" "The [param secondary] argument is [code]true[/code] when the edited handle is " "secondary (see [method add_handles] for more information)." msgstr "" -"重写该方法,当用户拖动小工具控柄(之前使用 [method add_handles] 添加的)时更新" +"覆盖该方法,当用户拖动小工具控柄(之前使用 [method add_handles] 添加的)时更新" "节点属性。提供的 [param point] 是屏幕坐标中的鼠标位置, [param camera] 可用于" "将其转换为射线投射。\n" "当编辑的控柄是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多" @@ -37838,7 +39798,7 @@ msgid "" "_subgizmos_intersect_frustum]). The [param transform] is given in the " "Node3D's local coordinate system." msgstr "" -"重写该方法,以在子小工具编辑期间更新节点属性(参见 [method " +"覆盖该方法,以在子小工具编辑期间更新节点属性(参见 [method " "_subgizmos_intersect_ray] 和 [method _subgizmos_intersect_frustum])。[param " "transform] 是在 Node3D 的局部坐标系中给出的。" @@ -37852,7 +39812,7 @@ msgid "" "will be used in other virtual methods like [method _get_subgizmo_transform] " "or [method _commit_subgizmos]." msgstr "" -"重写该方法,以允许使用鼠标拖动框选来选择子小工具。给定一个 [param camera] 和一" +"覆盖该方法,以允许使用鼠标拖动框选来选择子小工具。给定一个 [param camera] 和一" "个 [param frustum],这个方法应该返回哪些子小工具包含在锥体中。[param frustum] " "参数由一个构成选择锥体的所有 [code]Plane[/code] 的 [code]Array[/code] 组成。返" "回的值应该包含一个唯一的子小工具标识符列表,它可以有任何非负值,并将用于其他虚" @@ -37866,7 +39826,7 @@ msgid "" "used in other virtual methods like [method _get_subgizmo_transform] or " "[method _commit_subgizmos]." msgstr "" -"重写该方法,以允许使用鼠标点击选择子小工具。给定屏幕坐标中的 [param camera] " +"覆盖该方法,以允许使用鼠标点击选择子小工具。给定屏幕坐标中的 [param camera] " "和 [param point] 时,该方法应返回应选择哪个子小工具。返回值应该是一个唯一的子" "小工具标识符,它可以有任何非负值,并将用于其他虚方法,如 [method " "_get_subgizmo_transform] 或 [method _commit_subgizmos]。" @@ -37992,7 +39952,7 @@ msgid "" "Override this method to define whether the gizmos handled by this plugin can " "be hidden or not. Returns [code]true[/code] if not overridden." msgstr "" -"重写该方法,以定义是否可以隐藏该插件处理的小工具。如果未被重写,则返回 " +"覆盖该方法,以定义是否可以隐藏该插件处理的小工具。如果未被覆盖,则返回 " "[code]true[/code]。" msgid "" @@ -38008,7 +39968,7 @@ msgid "" "information).\n" "Called for this plugin's active gizmos." msgstr "" -"重写该方法,以提交正在编辑的控柄(控柄必须是先前在 [method _redraw] 期间通过 " +"覆盖该方法,以提交正在编辑的控柄(控柄必须是先前在 [method _redraw] 期间通过 " "[method EditorNode3DGizmo.add_handles] 添加的)。这通常意味着为该更改创建一个 " "[UndoRedo] 动作,将当前控柄值用作“做”,并将 [param restore] 参数用作“撤销”。\n" "如果 [param cancel] 参数为 [code]true[/code],则 [param restore] 值应被直接设" @@ -38027,7 +39987,7 @@ msgid "" "subgizmo methods, transforms are given in local space respect to the gizmo's " "Node3D. Called for this plugin's active gizmos." msgstr "" -"重写该方法,以提交一组正在编辑的子小工具(参见 [method " +"覆盖该方法,以提交一组正在编辑的子小工具(参见 [method " "_subgizmos_intersect_ray] 和 [method _subgizmos_intersect_frustum])。这通常意" "味着为该更改创建一个 [UndoRedo] 动作,将当前变换用作“做”,并将 [param " "restores] 变换用作“撤消”。\n" @@ -38040,13 +40000,13 @@ msgid "" "nodes of your choice, return [code]null[/code] for the rest of nodes. See " "also [method _has_gizmo]." msgstr "" -"重写此方法,为选择的空间节点返回一个自定义的 [EditorNode3DGizmo],为其余节点返" +"覆盖此方法,为选择的空间节点返回一个自定义的 [EditorNode3DGizmo],为其余节点返" "回 [code]null[/code]。另见 [method _has_gizmo]。" msgid "" "Override this method to provide the name that will appear in the gizmo " "visibility menu." -msgstr "重写该方法,以提供将出现在小工具可见性菜单中的名称。" +msgstr "覆盖该方法,以提供将出现在小工具可见性菜单中的名称。" msgid "" "Override this method to provide gizmo's handle names. The [param secondary] " @@ -38054,7 +40014,7 @@ msgid "" "[method EditorNode3DGizmo.add_handles] for more information). Called for this " "plugin's active gizmos." msgstr "" -"重写该方法,以提供小工具的控柄名称。当请求的控柄是次要控柄时,[param " +"覆盖该方法,以提供小工具的控柄名称。当请求的控柄是次要控柄时,[param " "secondary] 参数为 [code]true[/code](有关更多信息,请参阅 [method " "EditorNode3DGizmo.add_handles])。为该插件的活动小工具而调用。" @@ -38067,7 +40027,7 @@ msgid "" "information).\n" "Called for this plugin's active gizmos." msgstr "" -"重写该方法,以返回一个控柄的当前值。该值将在编辑开始时被请求,并用作 [method " +"覆盖该方法,以返回一个控柄的当前值。该值将在编辑开始时被请求,并用作 [method " "_commit_handle] 中的 [code]restore[/code] 参数。\n" "当请求的控柄是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多" "信息,请参阅 [method EditorNode3DGizmo.add_handles])。\n" @@ -38081,9 +40041,9 @@ msgid "" "overridden, this method will return [code]0[/code], which means custom gizmos " "will automatically get higher priority than built-in gizmos." msgstr "" -"重写该方法,以设置该小工具的优先级。具有更高优先级的小工具,将在处理控柄或子小" +"覆盖该方法,以设置该小工具的优先级。具有更高优先级的小工具,将在处理控柄或子小" "工具选择等输入时具有优先权。\n" -"所有内置编辑器小工具都会返回 [code]-1[/code] 的优先级。如果未被重写,该方法将" +"所有内置编辑器小工具都会返回 [code]-1[/code] 的优先级。如果未被覆盖,该方法将" "返回 [code]0[/code],这意味着自定义小工具将自动获得比内置小工具更高的优先级。" msgid "" @@ -38093,7 +40053,7 @@ msgid "" "used in the [code]restore[/code] argument in [method _commit_subgizmos]. " "Called for this plugin's active gizmos." msgstr "" -"重写该方法,以返回子小工具的当前变换。对于所有子小工具方法,变换应该在相对于小" +"覆盖该方法,以返回子小工具的当前变换。对于所有子小工具方法,变换应该在相对于小" "工具的 Node3D 的局部空间中。此变换将在编辑开始时被请求,并在 [method " "_commit_subgizmos] 中的 [code]restore[/code] 参数中使用。为该插件的活动小工具" "而调用。" @@ -38104,7 +40064,7 @@ msgid "" "if it returns [code]true[/code] the node gets a generic [EditorNode3DGizmo] " "assigned and is added to this plugin's list of active gizmos." msgstr "" -"重写该方法,以定义哪些 Node3D 节点具有来自该插件的小工具。每当将 [Node3D] 节点" +"覆盖该方法,以定义哪些 Node3D 节点具有来自该插件的小工具。每当将 [Node3D] 节点" "添加到场景时,该方法都会被调用,如果它返回 [code]true[/code],则该节点将被分配" "一个通用的 [EditorNode3DGizmo],并被添加到该插件的活动小工具列表中。" @@ -38115,7 +40075,7 @@ msgid "" "EditorNode3DGizmo.add_handles] for more information). Called for this " "plugin's active gizmos." msgstr "" -"重写该方法,以在编辑器中高亮显示给定控柄时返回 [code]true[/code]。当请求的控柄" +"覆盖该方法,以在编辑器中高亮显示给定控柄时返回 [code]true[/code]。当请求的控柄" "是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多信息,请参" "阅 [method EditorNode3DGizmo.add_handles])。为该插件的活动小工具而调用。" @@ -38123,7 +40083,7 @@ msgid "" "Override this method to define whether Node3D with this gizmo should be " "selectable even when the gizmo is hidden." msgstr "" -"重写该方法,以定义具有该小工具的 Node3D 是否应该是可选的,即使该小工具被隐藏。" +"覆盖该方法,以定义具有该小工具的 Node3D 是否应该是可选的,即使该小工具被隐藏。" msgid "" "Override this method to add all the gizmo elements whenever a gizmo update is " @@ -38131,7 +40091,7 @@ msgid "" "beginning of this method and then add visual elements depending on the node's " "properties." msgstr "" -"重写该方法,以在每当请求小工具更新时添加所有小工具元素。通常在该方法的开头调" +"覆盖该方法,以在每当请求小工具更新时添加所有小工具元素。通常在该方法的开头调" "用 [method EditorNode3DGizmo.clear],然后根据节点的属性添加可视元素。" msgid "" @@ -38143,7 +40103,7 @@ msgid "" "secondary (see [method EditorNode3DGizmo.add_handles] for more information).\n" "Called for this plugin's active gizmos." msgstr "" -"重写该方法,以在用户拖动小工具控柄(控柄是之前使用 [method EditorNode3DGizmo." +"覆盖该方法,以在用户拖动小工具控柄(控柄是之前使用 [method EditorNode3DGizmo." "add_handles] 添加的)时更新节点的属性。提供的 [param screen_pos] 是屏幕坐标中" "的鼠标位置, [param camera] 可用于将其转换为射线投射。\n" "当编辑的控柄是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多" @@ -38156,7 +40116,7 @@ msgid "" "_subgizmos_intersect_frustum]). The [param transform] is given in the " "Node3D's local coordinate system. Called for this plugin's active gizmos." msgstr "" -"重写该方法,以在子小工具编辑期间更新节点属性(参见 [method " +"覆盖该方法,以在子小工具编辑期间更新节点属性(参见 [method " "_subgizmos_intersect_ray] 和 [method _subgizmos_intersect_frustum])。[param " "transform] 在 Node3D 的局部坐标系中给出。为该插件的活动小工具而调用。" @@ -38171,7 +40131,7 @@ msgid "" "[method _get_subgizmo_transform] or [method _commit_subgizmos]. Called for " "this plugin's active gizmos." msgstr "" -"重写该方法,以允许使用鼠标拖动框选来选择子小工具。给定一个 [param camera] 和 " +"覆盖该方法,以允许使用鼠标拖动框选来选择子小工具。给定一个 [param camera] 和 " "[param frustum_planes],该方法应返回哪些子小工具包含在视锥体中。[param " "frustum_planes] 参数由一个构成选择视锥体的所有 [code]Plane[/code] 的" "[code]Array[/code] 组成。返回的值应该包含一个唯一的子小工具标识符列表,这些标" @@ -38186,7 +40146,7 @@ msgid "" "be used in other virtual methods like [method _get_subgizmo_transform] or " "[method _commit_subgizmos]. Called for this plugin's active gizmos." msgstr "" -"重写该方法,以允许使用鼠标点击选择子小工具。给定屏幕坐标中的 [param camera] " +"覆盖该方法,以允许使用鼠标点击选择子小工具。给定屏幕坐标中的 [param camera] " "和 [param screen_pos] 时,该方法应返回应选择哪个子小工具。返回值应该是一个唯一" "的子小工具标识符,它可以有任何非负值,并将用于其他虚方法,如 [method " "_get_subgizmo_transform] 或 [method _commit_subgizmos]。为该插件的活动小工具而" @@ -38827,7 +40787,7 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"在插件中重写该方法,以返回一个 [Texture2D] 以便为插件提供一个图标。\n" +"在插件中覆盖该方法,以返回一个 [Texture2D] 以便为插件提供一个图标。\n" "对于主界面插件,它出现在屏幕顶部,“2D”、“3D”、“脚本”和 “AssetLib” 按钮的右" "侧。\n" "理想情况下,插件图标应为透明背景的白色,大小为 16x16 像素。\n" @@ -38859,7 +40819,7 @@ msgid "" "For main screen plugins, this appears at the top of the screen, to the right " "of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons." msgstr "" -"在插件中重写该方法,以在 Godot 编辑器中显示时提供该插件的名称。\n" +"在插件中覆盖该方法,以在 Godot 编辑器中显示时提供该插件的名称。\n" "对于主屏幕插件,它显示在屏幕顶部,在“2D”“3D”“脚本”“AssetLib”按钮的右侧。" msgid "" @@ -38881,7 +40841,7 @@ msgid "" " return state\n" "[/codeblock]" msgstr "" -"重写该方法,以提供要保存的状态数据,如视图位置、网格设置、折叠等。这可用于保存" +"覆盖该方法,以提供要保存的状态数据,如视图位置、网格设置、折叠等。这可用于保存" "场景(再次打开时,保持状态)和切换选项卡( 选项卡返回时,可以恢复状态)。每个" "场景的数据会自动被保存在编辑器元数据文件夹中的 [code]editstate[/code] 文件中。" "如果想为插件存储全局的(独立于场景的)编辑器数据,可以改用 [method " @@ -38909,7 +40869,7 @@ msgid "" " configuration.set_value(\"MyPlugin\", \"icon_color\", $Icon.modulate)\n" "[/codeblock]" msgstr "" -"重写该方法,以提供该插件的 GUI 布局、或想要存储的任何其他数据。这用于在调用 " +"覆盖该方法,以提供该插件的 GUI 布局、或想要存储的任何其他数据。这用于在调用 " "[method queue_save_layout]、或更改编辑器布局(例如更改停靠面板的位置)时,保存" "项目的编辑器布局。数据被存储在编辑器元数据目录中的 [code]editor_layout.cfg[/" "code] 文件中。\n" @@ -39084,7 +41044,7 @@ msgid "" msgstr "" "将自定义控件添加到容器中(见 [enum CustomControlContainer])。在编辑器用户界面" "中,有许多位置可以添加自定义控件。\n" -"请记住,必须自己管理您的自定义控件的可见性(并且很可能在添加后隐藏它)。\n" +"请记住,必须自己管理你的自定义控件的可见性(并且很可能在添加后隐藏它)。\n" "当插件被停用时,请确保使用 [method remove_control_from_container] 移除自定义控" "件,并使用 [method Node.queue_free] 将其释放。" @@ -39123,7 +41083,7 @@ msgstr "" "[b]注意:[/b]基本类型是该类型的类层次继承的基本引擎类,而不是任何自定义类型的" "父类。\n" "可以使用虚方法 [method _handles] 通过检查脚本或使用 [code]is[/code] 关键字来检" -"查您的自定义对象是否正在被编辑。\n" +"查你的自定义对象是否正在被编辑。\n" "在运行时,这将是一个带有脚本的简单对象,因此不需要调用该函数。\n" "[b]注意:[/b]以这种方式添加的自定义类型不是真正的类。它们只是使用特定脚本创建" "节点的助手。" @@ -39559,7 +41519,7 @@ msgid "" "Vector3.x). The [param changing] argument avoids the editor requesting this " "property to be refreshed (leave as [code]false[/code] if unsure)." msgstr "" -"如果一个或几个属性发生了变化,必然会调用这个函数。[param field] 用于您的编辑器" +"如果一个或几个属性发生了变化,必然会调用这个函数。[param field] 用于你的编辑器" "可以单独修改字段的情况(例如,Vector3.x)。[param changing] 参数可以避免编辑器" "请求刷新该属性(如果不确定,请保留为 [code]false[/code])。" @@ -39648,7 +41608,7 @@ msgstr "删除某个属性时发出。内部使用。" msgid "" "Emit it if you want to add this value as an animation key (check for keying " "being enabled first)." -msgstr "如果您想将此值添加这个值为动画键,请触发它(首先检查是否启用了键控)。" +msgstr "如果你想将此值添加这个值为动画键,请触发它(首先检查是否启用了键控)。" msgid "Emit it if you want to key a property with a single value." msgstr "如果你想用一个单一的值来键入一个属性,请触发它。" @@ -39780,7 +41740,7 @@ msgid "" "[b]Note:[/b] Implement [method _handle_menu_selected] to handle these custom " "items." msgstr "" -"在更新 [EditorResourcePicker] 的上下文菜单时调用该虚方法。实现该方法以使用您自" +"在更新 [EditorResourcePicker] 的上下文菜单时调用该虚方法。实现该方法以使用你自" "己的选项覆盖“新建 ...”项目。[param menu_node] 是对 [PopupMenu] 节点的引用。\n" "[b]注意:[/b]实现 [method _handle_menu_selected] 来处理这些自定义项。" @@ -39962,7 +41922,27 @@ msgid "" "Returns [code]true[/code] if your generator supports the resource of type " "[param type]." msgstr "" -"如果您的生成器支持类型为 [param type] 的资源,则返回 [code]true[/code]。" +"如果你的生成器支持类型为 [param type] 的资源,则返回 [code]true[/code]。" + +msgid "A plugin that advanced tooltip for its handled resource type." +msgstr "为处理的资源类型制作高阶工具提示的插件。" + +msgid "" +"Resource tooltip plugins are used by [FileSystemDock] to generate customized " +"tooltips for specific resources. E.g. tooltip for a [Texture2D] displays a " +"bigger preview and the texture's dimensions.\n" +"A plugin must be first registered with [method FileSystemDock." +"add_resource_tooltip_plugin]. When the user hovers a resource in filesystem " +"dock which is handled by the plugin, [method _make_tooltip_for_path] is " +"called to create the tooltip. It works similarly to [method Control." +"_make_custom_tooltip]." +msgstr "" +"[FileSystemDock] 使用的资源工具提示插件,能够为指定资源生成自定义工具提示。例" +"如,[Texture2D] 的工具提示会显示较大的预览和该纹理的尺寸。\n" +"插件必须先使用 [method FileSystemDock.add_resource_tooltip_plugin] 注册。用户" +"悬停在文件系统面板中该插件能够处理的资源上时,就会调用 [method " +"_make_tooltip_for_path] 来创建工具提示。工作原理类似于 [method Control." +"_make_custom_tooltip]。" msgid "" "Return [code]true[/code] if the plugin is going to handle the given " @@ -39970,6 +41950,51 @@ msgid "" msgstr "" "如果插件要处理给定的 [Resource] 类型 [param type],则返回 [code]true[/code]。" +msgid "" +"Create and return a tooltip that will be displayed when the user hovers a " +"resource under the given [param path] in filesystem dock.\n" +"The [param metadata] dictionary is provided by preview generator (see method " +"EditorResourcePreviewGenerator._generate]).\n" +"[param base] is the base default tooltip, which is a [VBoxContainer] with a " +"file name, type and size labels. If another plugin handled the same file " +"type, [param base] will be output from the previous plugin. For best result, " +"make sure the base tooltip is part of the returned [Control].\n" +"[b]Note:[/b] It's unadvised to use [method ResourceLoader.load], especially " +"with heavy resources like models or textures, because it will make the editor " +"unresponsive when creating the tooltip. You can use [method " +"request_thumbnail] if you want to display a preview in your tooltip.\n" +"[b]Note:[/b] If you decide to discard the [param base], make sure to call " +"[method Node.queue_free], because it's not freed automatically.\n" +"[codeblock]\n" +"func _make_tooltip_for_path(path, metadata, base):\n" +" var t_rect = TextureRect.new()\n" +" request_thumbnail(path, t_rect)\n" +" base.add_child(t_rect) # The TextureRect will appear at the bottom of the " +"tooltip.\n" +" return base\n" +"[/codeblock]" +msgstr "" +"创建并返回工具提示,会在用户悬停在文件系统面板上路径为 [param path] 的资源上时" +"显示。\n" +"元数据字典 [param metadata] 由预览生成器提供(见 [method " +"EditorResourcePreviewGenerator._generate])。\n" +"[param base] 是基础的默认工具提示,是一个包含文件名、类型、大小标签的 " +"[VBoxContainer]。如果其他插件也能够处理相同的文件类型,那么 [param base] 就是" +"上一个插件的输出。为了达到最佳效果,请确保基础工具提示是返回的 [Control] 的一" +"部分。\n" +"[b]注意:[/b]不建议使用 [method ResourceLoader.load],尤其是模型、纹理等开销较" +"大的资源,否则会在创建工具提示时让编辑器失去响应。如果想要在工具提示中显示预" +"览,可以使用 [method request_thumbnail]。\n" +"[b]注意:[/b]如果你决定要丢弃 [param base],请确保调用了 [method Node." +"queue_free],否则不会自动释放。\n" +"[codeblock]\n" +"func _make_tooltip_for_path(path, metadata, base):\n" +" var t_rect = TextureRect.new()\n" +" request_thumbnail(path, t_rect)\n" +" base.add_child(t_rect) # TextureRect 会出现在工具提示的底部。\n" +" return base\n" +"[/codeblock]" + msgid "" "Requests a thumbnail for the given [TextureRect]. The thumbnail is created " "asynchronously by [EditorResourcePreview] and automatically set when " @@ -40174,7 +42199,7 @@ msgid "" "dock on the editor. Add options via [method add_import_option] and [method " "add_import_option_advanced]." msgstr "" -"重写以添加常规导入选项。这些将出现在编辑器的主导入停靠面板中。通过 [method " +"覆盖以添加常规导入选项。这些将出现在编辑器的主导入停靠面板中。通过 [method " "add_import_option] 和 [method add_import_option_advanced] 添加选项。" msgid "" @@ -40182,7 +42207,7 @@ msgid "" "import dialog. Add options via [method add_import_option] and [method " "add_import_option_advanced]." msgstr "" -"重写以添加内部导入选项。这些将出现在 3D 场景导入对话框中。通过 [method " +"覆盖以添加内部导入选项。这些将出现在 3D 场景导入对话框中。通过 [method " "add_import_option] 和 [method add_import_option_advanced] 添加选项。" msgid "" @@ -40384,7 +42409,7 @@ msgid "Emitted when the selection changes." msgstr "更改选择时发出。" msgid "Object that holds the project-independent editor settings." -msgstr "保存与项目无关的编辑器设置的对象。" +msgstr "保存编辑器设置的对象,这些设置与项目无关。" msgid "" "Object that holds the project-independent editor settings. These settings are " @@ -40419,33 +42444,37 @@ msgid "" "[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access " "the singleton using [method EditorInterface.get_editor_settings]." msgstr "" -"保存与项目无关的编辑器设置的对象。这些设置通常在[b]编辑器 > 编辑器设置[/b]菜单" +"保存编辑器设置的对象,这些设置与项目无关,通常在[b]编辑器 > 编辑器设置[/b]菜单" "中可见。\n" -"属性名称使用斜线分隔符来区分部分。设置的值可以是任何 [Variant] 类型。建议对编" -"辑器设置使用 [code]snake_case[/code],以与 Godot 编辑器本身保持一致。\n" +"属性名称中使用斜线分隔符来区分不同的部分。设置的值可以是任何 [Variant] 类型。" +"编辑器设置的名称建议使用 [code]snake_case[/code] 形式,与 Godot 编辑器本身保持" +"一致。\n" "可以使用以下方法访问设置,例如:\n" "[codeblocks]\n" "[gdscript]\n" "var settings = get_editor_interface().get_editor_settings()\n" -"# `settings.set(\"some/property\", 10)` 在内部像该类重写 `_set()` 一样工作。\n" +"# 也可以写 `settings.set(\"some/property\", 10)`,因为这个类内部覆盖了 " +"`_set()`。\n" "settings.set_setting(\"some/property\", 10)\n" -"# `settings.get(\"some/property\")` 在内部像该类重写 `_get()` 一样工作。\n" +"# 也可以写 `settings.get(\"some/property\")` ,因为这个类内部覆盖了 " +"`_get()`。\n" "settings.get_setting(\"some/property\")\n" "var list_of_settings = settings.get_property_list()\n" "[/gdscript]\n" "[csharp]\n" "EditorSettings settings = GetEditorInterface().GetEditorSettings();\n" -"// `settings.set(\"some/property\", 10)` 在内部像该类重写 `_set()` 一样工" -"作。\n" +"// 也可以写 `settings.set(\"some/property\", 10)`,因为这个类内部覆盖了 " +"`_set()`。\n" "settings.SetSetting(\"some/property\", Value);\n" -"// `settings.get(\"some/property\")` 在内部像该类重写 `_get()` 一样工作。\n" +"// 也可以写 `settings.get(\"some/property\")` ,因为这个类内部覆盖了 " +"`_get()`。\n" "settings.GetSetting(\"some/property\");\n" "Godot.Collections.Array listOfSettings = " "settings.GetPropertyList();\n" "[/csharp]\n" "[/codeblocks]\n" -"[b]注意:[/b]该类不应被直接实例化。而是使用 [method EditorInterface." -"get_editor_settings] 访问其单例。" +"[b]注意:[/b]不能直接实例化这个类。请改用 [method EditorInterface." +"get_editor_settings] 访问单例。" msgid "" "Adds a custom property info to a property. The dictionary must contain:\n" @@ -41076,6 +43105,14 @@ msgstr "" "[b]注意:[/b]在 Linux 的某些窗口管理器上,[kbd]Alt[/kbd] 键在同时点击鼠标按钮" "时会被窗口管理器拦截。这意味着 Godot 不会看到该修饰键被按下。" +msgid "" +"If [code]true[/code], warps the mouse around the 3D viewport while panning in " +"the 3D editor. This makes it possible to pan over a large area without having " +"to exit panning and adjust the mouse cursor." +msgstr "" +"如果为 [code]true[/code],则会在 3D 编辑器中平移时,鼠标超出 3D 视口范围后将其" +"传送到对侧。这样在大型区域中平移就不必先退出平移然后调整鼠标光标。" + msgid "" "The modifier key that must be held to zoom in the 3D editor.\n" "[b]Note:[/b] On certain window managers on Linux, the [kbd]Alt[/kbd] key will " @@ -41266,6 +43303,14 @@ msgstr "" "另请参阅 [member editors/panning/2d_editor_panning_scheme] 和 [member editors/" "panning/animation_editors_panning_scheme]。" +msgid "" +"If [code]true[/code], warps the mouse around the 2D viewport while panning in " +"the 2D editor. This makes it possible to pan over a large area without having " +"to exit panning and adjust the mouse cursor." +msgstr "" +"如果为 [code]true[/code],则会在 2D 编辑器中平移时,鼠标超出 2D 视口范围后将其" +"传送到对侧。这样在大型区域中平移就不必先退出平移然后调整鼠标光标。" + msgid "" "The radius in which points can be selected in the [Polygon2D] and " "[CollisionPolygon2D] editors (in pixels). Higher values make it easier to " @@ -41284,6 +43329,13 @@ msgstr "" "如果为 [code]true[/code],则在 2D 多边形编辑器中,以不透明的灰色轮廓,显示多边" "形先前的形状。拖动一个点直到释放鼠标左键前,会显示该轮廓。" +msgid "" +"If [code]true[/code], reopens shader files that were open in the shader " +"editor when the project was last closed." +msgstr "" +"如果为 [code]true[/code],则会重新打开项目上一次关闭时着色器编辑器中打开的着色" +"器文件。" + msgid "" "If [code]true[/code], displays a grid while the TileMap editor is active. See " "also [member editors/tiles_editor/grid_color]." @@ -41558,6 +43610,9 @@ msgstr "" "翻译由社区提供。如果发现错误,[url=$DOCS_URL/contributing/documentation/" "editor_and_docs_localization.html]请在 Weblate 上为编辑器翻译作出贡献![/url]" +msgid "The preferred monitor to display the editor." +msgstr "显示编辑器所优先使用的监视器。" + msgid "" "Expanding main editor window content to the title, if supported by " "[DisplayServer]. See [constant DisplayServer.WINDOW_FLAG_EXTEND_TO_TITLE].\n" @@ -42993,7 +45048,7 @@ msgstr "获取与该解析器关联的文件扩展名列表,例如 [code][\"cs msgid "" "Override this method to define a custom parsing logic to extract the " "translatable strings." -msgstr "重写该方法,定义自定义解析逻辑以提取可翻译的字符串。" +msgstr "覆盖该方法,定义自定义解析逻辑以提取可翻译的字符串。" msgid "Manages undo history of scenes opened in the editor." msgstr "管理编辑器中打开场景的撤销历史。" @@ -43198,8 +45253,8 @@ msgstr "" "定义编辑器使用的 API,负责从底层 VCS 提取信息。该 API 的实现包含在 VCS 插件" "中,这些插件是继承 [EditorVCSInterface] 并被附加(按需)到 " "[EditorVCSInterface] 的单例实例的 GDExtension 插件。以下列出的所有虚函数都不会" -"亲自执行操作,而是会去调用 VCS 插件中内部重写的函数,以提供即插即用的体验。自" -"定义 VCS 插件应当继承 [EditorVCSInterface] 并重写这些虚函数。" +"亲自执行操作,而是会去调用 VCS 插件中内部覆盖的函数,以提供即插即用的体验。自" +"定义 VCS 插件应当继承 [EditorVCSInterface] 并覆盖这些虚函数。" msgid "Checks out a [param branch_name] in the VCS." msgstr "检出 VCS 中的 [param branch_name] 分支。" @@ -43508,12 +45563,43 @@ msgstr "" "使用指定的端口 [param port] 并分配所需的通道 [param channels],向外部地址 " "[param address] 建立连接。可以在连接期间可以传递数据 [param data] ,形式为 32 " "位整数。\n" -"[b]注意:[/b]在调用此方法之前,必须先调用 [method create_host] 或 [method " +"[b]注意:[/b]在调用此方法之前,必须先调用 [method create_host] 或 [method " "create_host_bound]。" +msgid "" +"Create an ENetHost that will allow up to [param max_peers] connected peers, " +"each allocating up to [param max_channels] channels, optionally limiting " +"bandwidth to [param in_bandwidth] and [param out_bandwidth]." +msgstr "" +"创建一个 ENetHost,最多允许 [param max_peers] 个连接的对等体,每个连接最多分" +"配 [param max_channels] 个通道,可选择将带宽限制为 [param in_bandwidth] 和 " +"[param out_bandwidth]。" + +msgid "" +"Create an ENetHost like [method create_host] which is also bound to the given " +"[param bind_address] and [param bind_port]." +msgstr "" +"创建一个类似 [method create_host] 的 ENetHost,它还被绑定到给定的 [param " +"bind_address] 和 [param bind_port]。" + msgid "Destroys the host and all resources associated with it." msgstr "销毁主机和与其关联的所有资源。" +msgid "" +"Configure this ENetHost to use the custom Godot extension allowing DTLS " +"encryption for ENet clients. Call this before [method connect_to_host] to " +"have ENet connect using DTLS validating the server certificate against [param " +"hostname]. You can pass the optional [param client_options] parameter to " +"customize the trusted certification authorities, or disable the common name " +"verification. See [method TLSOptions.client] and [method TLSOptions." +"client_unsafe]." +msgstr "" +"配置此 ENetHost 以使用允许对 ENet 客户端进行 DTLS 加密的自定义 Godot 扩展。在 " +"[method connect_to_host] 之前调用它,让 ENet 连接使用 DTLS 根据 [param " +"hostname] 验证服务器证书。可以通过可选的 [param client_options] 参数来自定义受" +"信任的证书颁发机构,或禁用通用名称验证。见 [method TLSOptions.client] 和 " +"[method TLSOptions.client_unsafe]。" + msgid "" "Configure this ENetHost to use the custom Godot extension allowing DTLS " "encryption for ENet servers. Call this right after [method create_host_bound] " @@ -43569,6 +45655,32 @@ msgstr "" "接收到的数据包,将被队列到关联的 [ENetPacketPeer]。\n" "定期调用该函数来处理连接、断开连接、和接收新数据包。" +msgid "" +"Sends a [param packet] toward a destination from the address and port " +"currently bound by this ENetConnection instance. \n" +"This is useful as it serves to establish entries in NAT routing tables on all " +"devices between this bound instance and the public facing internet, allowing " +"a prospective client's connection packets to be routed backward through the " +"NAT device(s) between the public internet and this host.\n" +"This requires forward knowledge of a prospective client's address and " +"communication port as seen by the public internet - after any NAT devices " +"have handled their connection request. This information can be obtained by a " +"[url=https://en.wikipedia.org/wiki/STUN]STUN[/url] service, and must be " +"handed off to your host by an entity that is not the prospective client. This " +"will never work for a client behind a Symmetric NAT due to the nature of the " +"Symmetric NAT routing algorithm, as their IP and Port cannot be known " +"beforehand." +msgstr "" +"向目标发送数据包 [param packet],发送方是该 ENetConnection 实例当前绑定的地址" +"和端口。\n" +"这样能够在该绑定实例和公共互联网之间的所有设备的 NAT 路由表中建立相关条目,因" +"此非常有用,能够让潜在客户端的连接数据包能够通过公共互联网和该主机之间的 NAT " +"设备进行反向路由。\n" +"要求在 NAT 设备处理连接请求后,预先了解公共互联网所看到的潜在客户端的地址和通" +"信端口。这一信息可以通过 [url=https://zh.wikipedia.org/wiki/STUN]STUN[/url] 服" +"务获取,必须由非潜在客户端的实体交给你的主机。由于对称 NAT 路由算法的性质,这" +"种方法对于对称 NAT 之后的客户端无效,因为无法提前得知他们的 IP 和端口。" + msgid "" "No compression. This uses the most bandwidth, but has the upside of requiring " "the fewest CPU resources. This option may also be used to make network " @@ -44105,7 +46217,57 @@ msgid "" "The [Engine] singleton allows you to query and modify the project's run-time " "parameters, such as frames per second, time scale, and others." msgstr "" -"[Engine] 单例使您可以查询和修改项目的运行时参数,例如每秒帧数,时间范围等。" +"[Engine] 单例使你可以查询和修改项目的运行时参数,例如每秒帧数,时间范围等。" + +msgid "" +"Returns the name of the CPU architecture the Godot binary was built for. " +"Possible return values are [code]x86_64[/code], [code]x86_32[/code], " +"[code]arm64[/code], [code]arm32[/code], [code]rv64[/code], [code]riscv[/" +"code], [code]ppc64[/code], [code]ppc[/code], [code]wasm64[/code] and " +"[code]wasm32[/code].\n" +"To detect whether the current CPU architecture is 64-bit, you can use the " +"fact that all 64-bit architecture names have [code]64[/code] in their name:\n" +"[codeblocks]\n" +"[gdscript]\n" +"if \"64\" in Engine.get_architecture_name():\n" +" print(\"Running a 64-bit build of Godot.\")\n" +"else:\n" +" print(\"Running a 32-bit build of Godot.\")\n" +"[/gdscript]\n" +"[csharp]\n" +"if (Engine.GetArchitectureName().Contains(\"64\"))\n" +" GD.Print(\"Running a 64-bit build of Godot.\");\n" +"else\n" +" GD.Print(\"Running a 32-bit build of Godot.\");\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] [method get_architecture_name] does [i]not[/i] return the name " +"of the host CPU architecture. For example, if running an x86_32 Godot binary " +"on a x86_64 system, the returned value will be [code]x86_32[/code]." +msgstr "" +"返回构建 Godot 二进制文件所针对的 CPU 架构的名称。可能的返回值有 " +"[code]x86_64[/code]、[code]x86_32[/code]、[code]arm64[/code]、[code]arm32[/" +"code]、[code]rv64[/code]、[code]riscv[/code]、[code]ppc64[/code]、[code]ppc[/" +"code]、[code]wasm64[/code] 和 [code]wasm32[/code]。\n" +"要检测当前 CPU 架构是否为 64 位,可以利用所有 64 位架构名称中都包含 [code]64[/" +"code]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"if \"64\" in Engine.get_architecture_name():\n" +" print(\"正在运行 64 位 Godot。\")\n" +"else:\n" +" print(\"正在运行 32 位 Godot。\")\n" +"[/gdscript]\n" +"[csharp]\n" +"if (Engine.GetArchitectureName().Contains(\"64\"))\n" +" GD.Print(\"正在运行 64 位 Godot。\");\n" +"else\n" +" GD.Print(\"正在运行 32 位 Godot。\");\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b][method get_architecture_name] 返回的[i]不是[/i]主机 CPU 架构的名" +"称。例如,如果在 x86_64 系统上运行 x86_32 的 Godot 二进制文件,那么返回值将是 " +"[code]x86_32[/code]。" msgid "" "Returns engine author information in a Dictionary.\n" @@ -46300,7 +48462,7 @@ msgid "" "[/codeblocks]" msgstr "" "如果文件光标已经读到了文件末尾,则返回 [code]true[/code]。\n" -"[b]注意:[/b] [code]eof_reached() == false[/code] 不能用于检查是否有更多可用数" +"[b]注意:[/b][code]eof_reached() == false[/code] 不能用于检查是否有更多可用数" "据。要在有更多可用数据时循环,请使用:\n" "[codeblocks]\n" "[gdscript]\n" @@ -46341,8 +48503,8 @@ msgstr "" "将文件的缓冲区写入磁盘。当关闭文件时,会自动进行刷新。这意味着你不需要在关闭文" "件前手动调用 [method flush]。尽管如此,即使项目崩溃而不是正常关闭,调用 " "[method flush] 仍可用于确保数据安全。\n" -"[b]注意:[/b] 只有在你真正需要的时候才调用 [method flush]。否则,它会因不断的" -"磁盘写入而降低性能。" +"[b]注意:[/b]只有在你真正需要的时候才调用 [method flush]。否则,它会因不断的磁" +"盘写入而降低性能。" msgid "" "Returns the next 8 bits from the file as an integer. See [method store_8] for " @@ -46465,6 +48627,14 @@ msgid "" "[String] on failure." msgstr "返回一个给定路径文件的 MD5 字符串,如果失败则返回一个空的 [String]。" +msgid "" +"Returns the last time the [param file] was modified in Unix timestamp format " +"or returns a [String] \"ERROR IN [param file]\". This Unix timestamp can be " +"converted to another format using the [Time] singleton." +msgstr "" +"以 Unix 时间戳格式返回 [param file]的最后修改时间,或者返回一个 [String] “在 " +"[param file] 中出错”。这个Unix 时间戳可以用 [Time] 单例转换为其他格式。" + msgid "" "Returns a [String] saved in Pascal format from the file.\n" "Text is interpreted as being UTF-8 encoded." @@ -46829,6 +48999,28 @@ msgstr "使用 [url=https://facebook.github.io/zstd/]Zstandard[/url] 压缩方 msgid "Uses the [url=https://www.gzip.org/]gzip[/url] compression method." msgstr "使用 [url=https://www.gzip.org/]gzip[/url] 压缩方法。" +msgid "" +"Uses the [url=https://github.com/google/brotli]brotli[/url] compression " +"method (only decompression is supported)." +msgstr "" +"使用 [url=https://github.com/google/brotli]brotli[/url] 压缩方法(仅支持解压" +"缩)。" + +msgid "A dialog for selecting files or directories in the filesystem." +msgstr "用于选择文件系统中的文件或目录的对话框。" + +msgid "" +"[FileDialog] is a preset dialog used to choose files and directories in the " +"filesystem. It supports filter masks. [FileDialog] automatically sets its " +"window title according to the [member file_mode]. If you want to use a custom " +"title, disable this by setting [member mode_overrides_title] to [code]false[/" +"code]." +msgstr "" +"[FileDialog] 是用来选择文件系统中文件和目录的预设对话框。支持过滤器掩码。" +"[FileDialog] 会根据 [member file_mode] 自动设置窗口的标题。如果你想使用自定义" +"标题,请将 [member mode_overrides_title] 设置为 [code]false[/code],禁用此功" +"能。" + msgid "" "Adds a comma-delimited file name [param filter] option to the [FileDialog] " "with an optional [param description], which restricts what files can be " @@ -46862,7 +49054,7 @@ msgid "" "[member CanvasItem.visible] property." msgstr "" "返回对话框的垂直框容器,可以向其中添加自定义控件。\n" -"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果您希望隐" +"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果你希望隐" "藏它或其任何子项,请使用它们的 [member CanvasItem.visible] 属性。" msgid "Invalidate and update the current dialog content list." @@ -48418,7 +50610,7 @@ msgid "" "will prevent MSDF fonts and [TextMesh] from working correctly." msgstr "" "如果不等于零,则加粗字体轮廓。负值会减小轮廓厚度。\n" -"[b]注意:[/b] 加粗字体可能有自相交的轮廓,这将阻止 MSDF 字体和 [TextMesh] 正常" +"[b]注意:[/b]加粗字体可能有自相交的轮廓,这将阻止 MSDF 字体和 [TextMesh] 正常" "工作。" msgid "Active face index in the TrueType / OpenType collection file." @@ -49394,6 +51586,26 @@ msgid "" "possible values." msgstr "选择的阴影投射标志。可能的取值见 [enum ShadowCastingSetting]。" +msgid "" +"Overrides the bounding box of this node with a custom one. This can be used " +"to avoid the expensive [AABB] recalculation that happens when a skeleton is " +"used with a [MeshInstance3D] or to have fine control over the " +"[MeshInstance3D]'s bounding box. To use the default AABB, set value to an " +"[AABB] with all fields set to [code]0.0[/code]. To avoid frustum culling, set " +"[member custom_aabb] to a very large AABB that covers your entire game world " +"such as [code]AABB(-10000, -10000, -10000, 20000, 20000, 20000)[/code]. To " +"disable all forms of culling (including occlusion culling), call [method " +"RenderingServer.instance_set_ignore_culling] on the [GeometryInstance3D]'s " +"[RID]." +msgstr "" +"使用自定义边界框覆盖该节点的边界框。骨架使用 [MeshInstance3D] 时可以避免重新计" +"算 [AABB] 节省性能,也可以用来对 [MeshInstance3D] 的边界框进行精确控制。要使用" +"默认的 AABB,请将其设为所有字段均为 [code]0.0[/code] 的 [AABB]。要避免视锥剔" +"除,请将 [member custom_aabb] 设为大到能够覆盖整个游戏世界的 AABB,例如 " +"[code]AABB(-10000, -10000, -10000, 20000, 20000, 20000)[/code]。要禁用所有形式" +"的剔除(包括遮挡剔除),请使用该 [GeometryInstance3D] 的 [RID] 调用 [method " +"RenderingServer.instance_set_ignore_culling]。" + msgid "" "The extra distance added to the GeometryInstance3D's bounding box ([AABB]) to " "increase its cull box." @@ -49871,7 +52083,7 @@ msgid "" "_convert_scene_node] and before [method _export_post].\n" "This method can be used to modify the final JSON of each node." msgstr "" -"导出过程的一部分。该方法在 [method _convert_scene_node] 之后和 [method " +"导出过程的一部分。该方法在 [method _convert_scene_node] 之后 [method " "_export_post] 之前运行。\n" "该方法可用于修改每个节点的最终 JSON。" @@ -49903,7 +52115,7 @@ msgid "" "will be added to the scene tree. Multiple nodes can be generated in this step " "if they are added as a child of the returned node." msgstr "" -"导入过程的一部分。该方法在 [method _parse_node_extensions] 之后和 [method " +"导入过程的一部分。该方法在 [method _parse_node_extensions] 之后 [method " "_import_post_parse] 之前运行。\n" "当从 GLTFNode 生成一个 Godot 场景节点时运行。返回的节点将被添加到场景树中。如" "果将多个节点添加为返回节点的子节点,则可以在该步骤中生成这些节点。" @@ -49915,7 +52127,7 @@ msgid "" "GLTFDocumentExtension class. This is used to validate if a GLTF file with " "required extensions can be loaded." msgstr "" -"导入过程的一部分。该方法在 [method _import_preflight] 之后和 [method " +"导入过程的一部分。该方法在 [method _import_preflight] 之后 [method " "_parse_node_extensions] 之前运行。\n" "返回一组被该 GLTFDocumentExtension 类支持的 GLTF 扩展。这用于验证是否可以加载" "一个具有所需扩展名的 GLTF 文件。" @@ -49926,7 +52138,7 @@ msgid "" "This method can be used to make modifications to each of the generated Godot " "scene nodes." msgstr "" -"导入过程的一部分。该方法在 [method _import_post_parse] 之后和 [method " +"导入过程的一部分。该方法在 [method _import_post_parse] 之后 [method " "_import_post] 之前运行。\n" "该方法可用于对每个生成的 Godot 场景节点进行修改。" @@ -49945,7 +52157,7 @@ msgid "" "This method can be used to modify any of the data imported so far, including " "any scene nodes, before running the final per-node import step." msgstr "" -"导入过程的一部分。该方法在 [method _generate_scene_node] 之后和 [method " +"导入过程的一部分。该方法在 [method _generate_scene_node] 之后 [method " "_import_node] 之前运行。\n" "在运行最终的各节点导入步骤之前,该方法可用于修改到目前为止导入的任何数据,包括" "任何场景节点。" @@ -49963,6 +52175,17 @@ msgstr "" "文件。如果为 [constant OK],导入将使用该 [GLTFDocumentExtension] 实例。如果没" "有被重写,则返回 [constant OK]。" +msgid "" +"Part of the import process. This method is run after [method " +"_parse_node_extensions] and before [method _parse_texture_json].\n" +"Runs when parsing image data from a GLTF file. The data could be sourced from " +"a separate file, a URI, or a buffer, and then is passed as a byte array." +msgstr "" +"导入过程的一部分。该方法在 [method _parse_node_extensions] 之后 [method " +"_parse_texture_json] 之前运行。\n" +"从 GLTF 文件中解析图像数据时运行。数据可以从单独的文件、URI 或缓冲中获取,然后" +"作为字节数组传递。" + msgid "" "Part of the import process. This method is run after [method " "_get_supported_extensions] and before [method _generate_scene_node].\n" @@ -49977,6 +52200,16 @@ msgstr "" "[method _generate_scene_node] 使用的格式。该返回值应该是 [enum Error] 枚举中的" "一个成员。" +msgid "" +"Part of the import process. This method is run after [method " +"_parse_image_data] and before [method _generate_scene_node].\n" +"Runs when parsing the texture JSON from the GLTF textures array. This can be " +"used to set the source image index to use as the texture." +msgstr "" +"导入过程的一部分。该方法在 [method _parse_image_data] 之后 [method " +"_generate_scene_node] 之前运行。\n" +"从 GLTF 纹理数组中解析纹理 JSON 时运行。可用于设置用作纹理的源图像索引。" + msgid "Represents a GLTF light." msgstr "代表 GLTF 灯光。" @@ -50459,6 +52692,13 @@ msgstr "" "返回 GLTF 文件中所有 [GLTFCamera] 的数组。这些是 [member GLTFNode.camera] 索引" "引用的相机。" +msgid "" +"Gets the images of the GLTF file as an array of [Texture2D]s. These are the " +"images that the [member GLTFTexture.src_image] index refers to." +msgstr "" +"以 [Texture2D] 数组的形式获取 GLTF 文件中的图像。这些是 [member GLTFTexture." +"src_image] 索引引用的图像。" + msgid "" "Returns an array of all [GLTFLight]s in the GLTF file. These are the lights " "that the [member GLTFNode.light] index refers to." @@ -50473,6 +52713,20 @@ msgstr "" "返回 GLTF 文件中所有 [GLTFMesh] 的数组。这些是 [member GLTFNode.mesh] 索引引用" "的网格。" +msgid "" +"Returns the index of the [GLTFNode] corresponding to this Godot scene node. " +"This is the inverse of [method get_scene_node]. Useful during the export " +"process.\n" +"[b]Note:[/b] Not every Godot scene node will have a corresponding [GLTFNode], " +"and not every [GLTFNode] will have a scene node generated. If there is no " +"[GLTFNode] index for this scene node, [code]-1[/code] is returned." +msgstr "" +"返回与该 Godot 场景节点对应的 [GLTFNode] 的索引。这个方法与 [method " +"get_scene_node] 互逆。可以在导出过程中使用。\n" +"[b]注意:[/b]并不是所有 Godot 场景节点都有对应的 [GLTFNode],也并不是所有 " +"[GLTFNode] 都会生成场景节点。如果该场景节点没有 [GLTFNode] 索引,则会返回 " +"[code]-1[/code]。" + msgid "" "Returns an array of all [GLTFNode]s in the GLTF file. These are the nodes " "that [member GLTFNode.children] and [member root_nodes] refer to. This " @@ -50483,6 +52737,20 @@ msgstr "" "[member root_nodes] 引用的节点。这包括可能不会在 Godot 场景中生成的节点,或者" "可能生成多个 Godot 场景节点的节点。" +msgid "" +"Returns the Godot scene node that corresponds to the same index as the " +"[GLTFNode] it was generated from. This is the inverse of [method " +"get_node_index]. Useful during the import process.\n" +"[b]Note:[/b] Not every [GLTFNode] will have a scene node generated, and not " +"every generated scene node will have a corresponding [GLTFNode]. If there is " +"no scene node for this [GLTFNode] index, [code]null[/code] is returned." +msgstr "" +"返回指定索引的 [GLTFNode] 对应生成的 Godot 场景节点。这个方法与 [method " +"get_node_index] 互逆。可以在导入过程中使用。\n" +"[b]注意:[/b]并不是所有 [GLTFNode] 都会生成场景节点,也并不是所有 Godot 场景节" +"点都有对应的 [GLTFNode]。如果该 [GLTFNode] 索引没有场景节点,则会返回 " +"[code]null[/code]。" + msgid "" "Returns an array of all [GLTFSkeleton]s in the GLTF file. These are the " "skeletons that the [member GLTFNode.skeleton] index refers to." @@ -50540,6 +52808,14 @@ msgid "" msgstr "" "设置该状态中的 [GLTFCamera]。这些是 [member GLTFNode.camera] 索引引用的相机。" +msgid "" +"Sets the images in the state stored as an array of [Texture2D]s. This can be " +"used during export. These are the images that the [member GLTFTexture." +"src_image] index refers to." +msgstr "" +"设置状态中以 [Texture2D] 数组形式存储的图像。可以在导出时使用。这些是 [member " +"GLTFTexture.src_image] 索引所引用的图像。" + msgid "" "Sets the [GLTFLight]s in the state. These are the lights that the [member " "GLTFNode.light] index refers to." @@ -50633,6 +52909,13 @@ msgstr "" "纹理采样器的 ID,在对图像进行采样时使用。如果为 -1,则使用默认的纹理采样器(线" "性过滤,并在两个轴上重复环绕)。" +msgid "" +"The index of the image associated with this texture, see [method GLTFState." +"get_images]. If -1, then this texture does not have an image assigned." +msgstr "" +"与该纹理关联的图像索引,见 [method GLTFState.get_images]。如果为 -1,则该纹理" +"未与图像相关联。" + msgid "Represents a GLTF texture sampler" msgstr "代表 GLTF 纹理采样器" @@ -50761,7 +53044,7 @@ msgid "" "trail_section_subdivisions] properties." msgstr "" "如果[code]true[/code] ,可以使用网格换肤系统来启用粒子轨迹。\n" -"[b]注意:[/b] 与[GPUParticles3D]不同的是,trail sections和subdivisions的数量是" +"[b]注意:[/b]与[GPUParticles3D]不同的是,trail sections和subdivisions的数量是" "通过属性[member trail_sections]和[member trail_section_subdivisions]设置的。" msgid "" @@ -50843,7 +53126,7 @@ msgstr "用粒子控制数千条鱼" msgid "" "Returns the axis-aligned bounding box that contains all the particles that " "are active in the current frame." -msgstr "返回包含当前帧中所有活动粒子的轴对齐包围盒。" +msgstr "返回包含当前帧中所有活动粒子的轴对齐边界框。" msgid "Returns the [Mesh] that is drawn at index [param pass]." msgstr "返回在索引 [param pass] 处绘制的 [Mesh] 。" @@ -51165,10 +53448,10 @@ msgid "" "[CPUParticles3D]." msgstr "" "盒状3D粒子碰撞形状影响[GPUParticles3D]节点。\n" -"[b]注意:[/b] [member ParticleProcessMaterial.collision_mode]必须是[constant " +"[b]注意:[/b][member ParticleProcessMaterial.collision_mode]必须是[constant " "ParticleProcessMaterial.COLLISION_RIGID]或[constant ParticleProcessMaterial." "COLLISION_HIDE_ON_CONTACT]在经过[GPUParticles3D]的材质上,碰撞才能发挥作用。\n" -"[b]注意:[/b] 粒子碰撞只影响到[GPUParticles3D],而不是[CPUParticles3D]。" +"[b]注意:[/b]粒子碰撞只影响到[GPUParticles3D],而不是[CPUParticles3D]。" msgid "The collision box's size in 3D units." msgstr "碰撞框的范围,使用 3D 单位。" @@ -51504,6 +53787,18 @@ msgstr "设置渐变色在索引 [param point] 处的颜色。" msgid "Sets the offset for the gradient color at index [param point]." msgstr "设置渐变色在索引 [param point] 处的偏移。" +msgid "" +"Gradient's colors returned as a [PackedColorArray].\n" +"[b]Note:[/b] This property returns a copy, modifying the return value does " +"not update the gradient. To update the gradient use [method set_color] method " +"(for updating colors individually) or assign to this property directly (for " +"bulk-updating all colors at once)." +msgstr "" +"[PackedColorArray] 形式的渐变色颜色。\n" +"[b]注意:[/b]这个属性返回的是副本,修改返回值并不会对渐变色进行更新。要更新渐" +"变色,请使用 [method set_color] 方法(单独更新颜色)或直接为这个属性赋值(一次" +"性更新所有颜色)。" + msgid "" "The color space used to interpolate between points of the gradient. It does " "not affect the returned colors, which will always be in sRGB space. See [enum " @@ -51521,6 +53816,18 @@ msgid "" "InterpolationMode] for available modes." msgstr "用于在渐变点之间进行插值的算法。可用的模式见 [enum InterpolationMode]。" +msgid "" +"Gradient's offsets returned as a [PackedFloat32Array].\n" +"[b]Note:[/b] This property returns a copy, modifying the return value does " +"not update the gradient. To update the gradient use [method set_offset] " +"method (for updating offsets individually) or assign to this property " +"directly (for bulk-updating all offsets at once)." +msgstr "" +"[PackedFloat32Array] 形式的渐变色偏移。\n" +"[b]注意:[/b]这个属性返回的是副本,修改返回值并不会对渐变色进行更新。要更新渐" +"变色,请使用 [method set_offset] 方法(单独更新偏移)或直接为这个属性赋值(一" +"次性更新所有偏移)。" + msgid "" "Constant interpolation, color changes abruptly at each point and stays " "uniform between. This might cause visible aliasing when used for a gradient " @@ -51638,6 +53945,9 @@ msgstr "颜色按照直线进行线性插值。" msgid "The colors are linearly interpolated in a circular pattern." msgstr "颜色按照圆形模式进行线性插值。" +msgid "The colors are linearly interpolated in a square pattern." +msgstr "颜色按照方形模式进行线性插值。" + msgid "" "The gradient fill is restricted to the range defined by [member fill_from] to " "[member fill_to] offsets." @@ -52499,6 +54809,19 @@ msgstr "用于 [GraphNode] 的每个插槽的 [StyleBox]。" msgid "A container that arranges its child controls in a grid layout." msgstr "将子控件按照网格布局排列的容器。" +msgid "" +"[GridContainer] arranges its child controls in a grid layout. The number of " +"columns is specified by the [member columns] property, whereas the number of " +"rows depends on how many are needed for the child controls. The number of " +"rows and columns is preserved for every size of the container.\n" +"[b]Note:[/b] [GridContainer] only works with child nodes inheriting from " +"[Control]. It won't rearrange child nodes inheriting from [Node2D]." +msgstr "" +"[GridContainer] 会将其子控件按照网格布局排列。网格的列数由 [member columns] 属" +"性指定,行数取决于容器中子控件的数量。将保留每个大小的容器的列和行。\n" +"[b]注意:[/b][GridContainer] 只对继承自 [Control] 的子节点生效。它不会重新排列" +"继承自 [Node2D] 的子节点。" + msgid "" "The number of columns in the [GridContainer]. If modified, [GridContainer] " "reorders its Control-derived children to accommodate the new layout." @@ -52614,6 +54937,11 @@ msgid "" "map." msgstr "返回一个包含网格中非空单元格坐标的 [Vector3] 数组。" +msgid "" +"Returns an array of all cells with the given item index specified in [param " +"item]." +msgstr "返回所有具有 [param item] 中指定的项目索引的单元格的数组。" + msgid "" "Returns the map coordinates of the cell containing the given [param " "local_position]. If [param local_position] is in global coordinates, consider " @@ -52732,6 +55060,19 @@ msgstr "" "可以在 [method set_cell_item] 中清除单元格(或在 [method get_cell_item] 中重新" "代表一个空的单元格)的无效单元格。" +msgid "" +"A physics joint that restricts the movement of two 2D physics bodies to a " +"fixed axis." +msgstr "将两个物理体的运动限制在某个固定轴上的物理关节。" + +msgid "" +"A physics joint that restricts the movement of two 2D physics bodies to a " +"fixed axis. For example, a [StaticBody2D] representing a piston base can be " +"attached to a [RigidBody2D] representing the piston head, moving up and down." +msgstr "" +"将两个物理体的运动限制在某个固定轴上的物理关节。例如代表活塞基底的 " +"[StaticBody2D] 可以附加至代表能够上下移动的活塞头的 [RigidBody2D] 之上。" + msgid "" "The body B's initial anchor position defined by the joint's origin and a " "local offset [member initial_offset] along the joint's Y axis (along the " @@ -52749,6 +55090,113 @@ msgid "" "Provides functionality for computing cryptographic hashes chunk by chunk." msgstr "提供分段计算加密哈希的功能。" +msgid "" +"The HashingContext class provides an interface for computing cryptographic " +"hashes over multiple iterations. Useful for computing hashes of big files (so " +"you don't have to load them all in memory), network streams, and data streams " +"in general (so you don't have to hold buffers).\n" +"The [enum HashType] enum shows the supported hashing algorithms.\n" +"[codeblocks]\n" +"[gdscript]\n" +"const CHUNK_SIZE = 1024\n" +"\n" +"func hash_file(path):\n" +" # Check that file exists.\n" +" if not FileAccess.file_exists(path):\n" +" return\n" +" # Start a SHA-256 context.\n" +" var ctx = HashingContext.new()\n" +" ctx.start(HashingContext.HASH_SHA256)\n" +" # Open the file to hash.\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" +" # Update the context after reading each chunk.\n" +" while not file.eof_reached():\n" +" ctx.update(file.get_buffer(CHUNK_SIZE))\n" +" # Get the computed hash.\n" +" var res = ctx.finish()\n" +" # Print the result as hex string and array.\n" +" printt(res.hex_encode(), Array(res))\n" +"[/gdscript]\n" +"[csharp]\n" +"public const int ChunkSize = 1024;\n" +"\n" +"public void HashFile(string path)\n" +"{\n" +" // Check that file exists.\n" +" if (!FileAccess.FileExists(path))\n" +" {\n" +" return;\n" +" }\n" +" // Start a SHA-256 context.\n" +" var ctx = new HashingContext();\n" +" ctx.Start(HashingContext.HashType.Sha256);\n" +" // Open the file to hash.\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" +" // Update the context after reading each chunk.\n" +" while (!file.EofReached())\n" +" {\n" +" ctx.Update(file.GetBuffer(ChunkSize));\n" +" }\n" +" // Get the computed hash.\n" +" byte[] res = ctx.Finish();\n" +" // Print the result as hex string and array.\n" +" GD.PrintT(res.HexEncode(), (Variant)res);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"HashingContext 类提供了一个接口,用于在多次迭代中计算加密哈希值。常用于计算大" +"文件(不必全部加载到内存中)、网络流和一般数据流(不必持有缓冲区)的哈希值。\n" +"[enum HashType] 枚举显示了支持的哈希算法。\n" +"[codeblocks]\n" +"[gdscript]\n" +"const CHUNK_SIZE = 1024\n" +"\n" +"func hash_file(path):\n" +" # 检查文件是否存在。\n" +" if not FileAccess.file_exists(path):\n" +" return\n" +" # 启动一个 SHA-256 上下文。\n" +" var ctx = HashingContext.new()\n" +" ctx.start(HashingContext.HASH_SHA256)\n" +" # 打开文件进行哈希处理。\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" +" # 读取每个块后更新上下文。\n" +" while not file.eof_reached():\n" +" ctx.update(file.get_buffer(CHUNK_SIZE))\n" +" # 获取计算的哈希值。\n" +" var res = ctx.finish()\n" +" # 将结果打印为十六进制字符串和数组。\n" +" printt(res.hex_encode(), Array(res))\n" +"[/gdscript]\n" +"[csharp]\n" +"public const int ChunkSize = 1024;\n" +"\n" +"public void HashFile(string path)\n" +"{\n" +" // 检查文件是否存在。\n" +" if (!FileAccess.FileExists(path))\n" +" {\n" +" return;\n" +" }\n" +" // 启动一个 SHA-256 上下文。\n" +" var ctx = new HashingContext();\n" +" ctx.Start(HashingContext.HashType.Sha256);\n" +" // 打开文件进行哈希处理。\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" +" // 读取每个块后更新上下文。\n" +" while (!file.EofReached())\n" +" {\n" +" ctx.Update(file.GetBuffer(ChunkSize));\n" +" }\n" +" // 获取计算的哈希值。\n" +" byte[] res = ctx.Finish();\n" +" // 将结果打印为十六进制字符串和数组。\n" +" GD.PrintT(res.HexEncode(), (Variant)res);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Closes the current context, and return the computed hash." msgstr "关闭当前上下文,并返回计算出的哈希值。" @@ -53238,7 +55686,7 @@ msgstr "" "[b]注意:[/b]TLS 支持目前仅限于 TLS 1.0、TLS 1.1 和 TLS 1.2。尝试连接到仅支持 " "TLS 1.3 的服务器时将返回一个错误。\n" "[b]警告:[/b]目前不支持 TLS 证书撤销和证书绑定。只要吊销的证书在其他方面有效," -"就会被接受。如果这是一个问题,您可能希望使用有效期较短的自动管理的证书。" +"就会被接受。如果这是一个问题,你可能希望使用有效期较短的自动管理的证书。" msgid "HTTP client class" msgstr "HTTP 客户端类" @@ -54446,9 +56894,9 @@ msgstr "" "[/csharp]\n" "[/codeblocks]\n" "[b]Gzipped 响应体[/b]:HTTPRequest 将自动处理响应体的解压缩。除非已经指定了一" -"个,否则 [code]Accept-Encoding[/code] 报头将自动添加到您的每个请求中。任何带" +"个,否则 [code]Accept-Encoding[/code] 报头将自动添加到你的每个请求中。任何带" "有 [code]Content-Encoding: gzip[/code] 报头的响应都将自动解压,并作为未压缩的" -"字节传送给您。" +"字节传送给你。" msgid "Making HTTP requests" msgstr "发出 HTTP 请求" @@ -54504,7 +56952,7 @@ msgstr "" "返回 [constant ERR_CANT_CONNECT]。\n" "[b]注意:[/b]当 [param method] 为 [constant HTTPClient.METHOD_GET] 时,通过 " "[param request_data] 发送的有效载荷可能会被服务器忽略,甚至导致服务器拒绝请求" -"(参阅 [url= https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.1]RFC " +"(参阅 [url=https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.1]RFC " "7231 第 4.3.1 节[/url]了解更多详情)。作为一种变通方法,可以在 URL 中将数据作" "为查询字符串发送(有关示例,请参见 [method String.uri_encode])。\n" "[b]注意:[/b]建议使用传输加密(TLS)并避免在 HTTP GET URL 参数中发送敏感信息" @@ -56639,8 +59087,8 @@ msgstr "" "[b]注意:[/b]对于 Android,[method vibrate_handheld] 需要在导出预设中启用 " "[code]VIBRATE[/code] 权限。否则,[method vibrate_handheld] 将无效。\n" "[b]注意:[/b]对于 iOS,仅 iOS 13 及更高版本支持指定持续时间。\n" -"[b]注意:[/b] 某些网络浏览器,如 Safari 和 Android 版的 Firefox 不支持 " -"[method vibrate_handheld]。" +"[b]注意:[/b]某些网络浏览器,如 Safari 和 Android 版的 Firefox 不支持 [method " +"vibrate_handheld]。" msgid "" "Sets the mouse position to the specified vector, provided in pixels and " @@ -56957,6 +59405,26 @@ msgstr "" msgid "An input event type for actions." msgstr "动作的输入事件类型。" +msgid "" +"Contains a generic action which can be targeted from several types of inputs. " +"Actions and their events can be set in the [b]Input Map[/b] tab in [b]Project " +"> Project Settings[/b], or with the [InputMap] class.\n" +"[b]Note:[/b] Unlike the other [InputEvent] subclasses which map to unique " +"physical events, this virtual one is not emitted by the engine. This class is " +"useful to emit actions manually with [method Input.parse_input_event], which " +"are then received in [method Node._input]. To check if a physical event " +"matches an action from the Input Map, use [method InputEvent.is_action] and " +"[method InputEvent.is_action_pressed]." +msgstr "" +"包含一个通用动作,该动作可以被多种类型的输入作为目标。动作及其事件可以在[b]项" +"目 > 项目设置[/b]的[b]输入映射[/b]选项卡中设置,也可以使用 [InputMap] 类设" +"置。\n" +"[b]注意:[/b]与映射到唯一物理事件的其他 [InputEvent] 子类不同,这个虚拟事件不" +"是由引擎发出的。这个类可以用来使用 [method Input.parse_input_event] 手动发出动" +"作,这样就能够在 [method Node._input] 中接收到这些动作。要检查物理事件是否" +"与“输入映射”中的动作相匹配,请使用 [method InputEvent.is_action] 和 [method " +"InputEvent.is_action_pressed]。" + msgid "Using InputEvent: Actions" msgstr "使用 InputEvent:动作" @@ -56997,6 +59465,14 @@ msgstr "接收这个事件的 [Window] 的 ID。" msgid "Abstract base class for touch gestures." msgstr "触摸手势的抽象基类。" +msgid "" +"InputEventGestures are sent when a user performs a supported gesture on a " +"touch screen. Gestures can't be emulated using mouse, because they typically " +"require multi-touch." +msgstr "" +"用户在触摸屏上执行支持的手势时会发送 InputEventGesture。无法用鼠标模拟手势,因" +"为手势一般都要求多点触控。" + msgid "" "The local gesture position relative to the [Viewport]. If used in [method " "Control._gui_input], the position is relative to the current [Control] that " @@ -58563,7 +61039,7 @@ msgid "" "[member CanvasItem.visible] property." msgstr "" "返回垂直滚动条。\n" -"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果您希望隐" +"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果你希望隐" "藏它或其任何子项,请使用它们的 [member CanvasItem.visible] 属性。" msgid "Returns [code]true[/code] if one or more items are selected." @@ -58813,7 +61289,7 @@ msgstr "选择项目时使用的文本颜色 [Color]。" msgid "" "[Color] of the guideline. The guideline is a line drawn between each row of " "items." -msgstr "指导线的颜色[Color]。指导线是在每行项目之间画的一条线。" +msgstr "参考线的颜色 [Color]。参考线是在每行项目之间画的一条线。" msgid "The horizontal spacing between items." msgstr "项目之间的水平间距。" @@ -58857,7 +61333,7 @@ msgstr "当该 [ItemList] 未获得焦点时,用作光标的样式盒 [StyleBo msgid "" "The focused style for the [ItemList], drawn on top of the background, but " "below everything else." -msgstr "该 [ItemList]的焦点样式,绘制在背景之上,但低于其他东西。" +msgstr "该 [ItemList] 的焦点样式,绘制在背景之上,但低于其他东西。" msgid "[StyleBox] for the hovered, but not selected items." msgstr "悬停但未被选中的项目的 [StyleBox]。" @@ -59208,7 +61684,7 @@ msgstr "" "[method stringify] 用于将任何数据类型转换为 JSON 字符串。\n" "[method parse] 用于将任何现有的 JSON 数据转换为可以在 Godot 中使用的 " "[Variant]。如果解析成功,使用 [member data] 检索 [Variant],并使用 " -"[code]typeof[/code] 检查 Variant 的类型是否符合您的预期。JSON 对象被转换为 " +"[code]typeof[/code] 检查 Variant 的类型是否符合你的预期。JSON 对象被转换为 " "[Dictionary],但 JSON 数据可用于存储 [Array]、数字、[String],甚至只是一个布尔" "值。\n" "[b]示例[/b]\n" @@ -59230,7 +61706,7 @@ msgstr "" " print(\"JSON Parse Error: \", json.get_error_message(), \" in \", " "json_string, \" at line \", json.get_error_line())\n" "[/codeblock]\n" -"或者,您可以使用静态 [method parse_string] 方法解析字符串,但它不允许处理错" +"或者,你可以使用静态 [method parse_string] 方法解析字符串,但它不允许处理错" "误。\n" "[codeblock]\n" "var data = JSON.parse_string(json_string) # 如果解析失败则返回 null。\n" @@ -60713,8 +63189,8 @@ msgid "" "(shadows not connecting to their casters). Real-time [Light3D] shadows are " "not affected by this [member bias] property." msgstr "" -"计算阴影时使用的偏差。增加 [member bias] 可以修复生成的烘焙光照贴图上的阴影粉" -"刺,但会引入阴影悬浮(阴影未连接到其障碍物)。实时 [Light3D] 阴影不受该 " +"计算阴影时使用的偏置。增加 [member bias] 可以修复生成的烘焙光照贴图上的阴影失" +"真,但会引入阴影悬浮(阴影未连接到其障碍物)。实时 [Light3D] 阴影不受该 " "[member bias] 属性的影响。" msgid "" @@ -61030,7 +63506,7 @@ msgid "" msgstr "" "如果 [param uses_spherical_harmonics] 为 [code]true[/code],则告诉引擎将光照贴" "图数据视为使用了定向信息烘焙的。\n" -"[b]注意:[/b] 在已烘焙的光照贴图上更改此值不会导致再次烘焙它们。这意味着在再次" +"[b]注意:[/b]在已烘焙的光照贴图上更改此值不会导致再次烘焙它们。这意味着在再次" "烘焙光照贴图之前,材质外观将看起来不正确,在这种情况下,此处设置的值将被丢弃," "因为整个 [LightmapGIData] 资源被光照贴图器替换。" @@ -61068,7 +63544,7 @@ msgstr "" "[LightmapGI] 一起使用。在大多数专用 GPU 上,它可以比大多数基于 CPU 的光照贴图" "更快地烘焙光照贴图。LightmapperRD 使用计算着色器来烘焙光照贴图,因此它不需要安" "装 CUDA 或 OpenCL 库即可使用。\n" -"[b]注意:[/b] 仅在使用 Vulkan 后端(Forward+ 或移动),而不是 OpenGL 时可用。" +"[b]注意:[/b]仅在使用 Vulkan 后端(Forward+ 或移动),而不是 OpenGL 时可用。" msgid "" "Represents a single manually placed probe for dynamic object lighting with " @@ -61088,7 +63564,7 @@ msgstr "" "照明。\n" "通常,通过将 [member LightmapGI.generate_probes_subdiv] 设置为 [constant " "LightmapGI.GENERATE_PROBES_DISABLED] 以外的值,来自动放置 [LightmapGI] 探针。" -"通过在烘焙光照贴图之前创建 [LightmapProbe] 节点,您可以在特定区域,添加更多探" +"通过在烘焙光照贴图之前创建 [LightmapProbe] 节点,你可以在特定区域,添加更多探" "针以获得更多细节,或者禁用自动生成、并仅依赖手动放置的探针。" msgid "Occludes light cast by a Light2D, casting shadows." @@ -61398,7 +63874,7 @@ msgid "" msgstr "" "返回该 [LineEdit] 的 [PopupMenu]。默认情况下,右键点击 [LineEdit] 会显示该菜" "单。\n" -"可以添加自定义菜单项或移除标准菜单项。确保您的 ID 不与标准 ID 冲突(请参阅 " +"可以添加自定义菜单项或移除标准菜单项。确保你的 ID 不与标准 ID 冲突(请参阅 " "[enum MenuItems])。例如:\n" "[codeblocks]\n" "[gdscript]\n" @@ -63142,6 +65618,13 @@ msgstr "用于 [Mesh] 凸分解操作的参数。" msgid "If enabled uses approximation for computing convex hulls." msgstr "如果启用,则在计算凸包时使用近似计算。" +msgid "" +"Controls the precision of the convex-hull generation process during the " +"clipping plane selection stage. Ranges from [code]1[/code] to [code]16[/code]." +msgstr "" +"控制凸包生成过程的精度,这个过程发生在选择裁剪平面的阶段。范围从 [code]1[/" +"code] 到 [code]16[/code]。" + msgid "Maximum concavity. Ranges from [code]0.0[/code] to [code]1.0[/code]." msgstr "最大凹度。范围从 [code]0.0[/code] 到 [code]1.0[/code]。" @@ -63160,6 +65643,44 @@ msgid "" msgstr "" "控制生成凸包的自适应采样。范围从 [code]0.0[/code] 到 [code]0.01[/code] 。" +msgid "Mode for the approximate convex decomposition." +msgstr "近似凸分解的模式。" + +msgid "If enabled normalizes the mesh before applying the convex decomposition." +msgstr "如果启用,则会在应用凸分解前将网格归一化。" + +msgid "" +"Controls the granularity of the search for the \"best\" clipping plane. " +"Ranges from [code]1[/code] to [code]16[/code]." +msgstr "" +"控制搜索“最佳”裁剪平面的颗粒度。范围从 [code]1[/code] 到 [code]16[/code]。" + +msgid "" +"If enabled projects output convex hull vertices onto original source mesh to " +"increase floating point accuracy of the results." +msgstr "如果启用,则项目会将凸包顶点输出到来源网格之上,提高结果的浮点数精度。" + +msgid "Maximum number of voxels generated during the voxelization stage." +msgstr "体素化阶段生成的最大体素数量。" + +msgid "" +"Controls the bias toward clipping along revolution axes. Ranges from " +"[code]0.0[/code] to [code]1.0[/code]." +msgstr "" +"控制对沿回转轴裁剪的偏置。范围从 [code]0.0[/code] 到 [code]1.0[/code] 。" + +msgid "" +"Controls the bias toward clipping along symmetry planes. Ranges from " +"[code]0.0[/code] to [code]1.0[/code]." +msgstr "" +"控制对沿对称平面裁剪的偏置。范围从 [code]0.0[/code] 到 [code]1.0[/code] 。" + +msgid "Constant for voxel-based approximate convex decomposition." +msgstr "常量,表示基于体素的近似凸分解。" + +msgid "Constant for tetrahedron-based approximate convex decomposition." +msgstr "常量,表示基于四面体的近似凸分解。" + msgid "Helper tool to access and edit [Mesh] data." msgstr "用于访问和编辑 [Mesh] 数据的辅助工具。" @@ -63480,8 +66001,18 @@ msgid "" "This helper creates a [MeshInstance3D] child node with gizmos at every vertex " "calculated from the mesh geometry. It's mainly used for testing." msgstr "" -"该助手创建一个 [MeshInstance3D] 子节点,该子节点在每个顶点处都有小工具,这些顶" -"点是根据该网格几何体计算出的。它主要用于测试。" +"创建 [MeshInstance3D] 子节点的辅助函数,会根据网格几何体计算出各个顶点的小工" +"具。主要用于测试。" + +msgid "" +"This helper creates a [StaticBody3D] child node with multiple " +"[ConvexPolygonShape3D] collision shapes calculated from the mesh geometry via " +"convex decomposition. The convex decomposition operation can be controlled " +"with parameters from the optional [param settings]." +msgstr "" +"创建 [StaticBody3D] 子节点的辅助函数,会根据网格几何体使用凸分解计算出多个 " +"[ConvexPolygonShape3D] 碰撞形状。凸分解操作可以通过可选的 [param settings] 参" +"数控制。" msgid "" "This helper creates a [StaticBody3D] child node with a " @@ -64912,8 +67443,8 @@ msgid "" "Called to check if the server can act as a relay in the current " "configuration. See [method MultiplayerPeer.is_server_relay_supported]." msgstr "" -"检查 [MultiplayerPeer] 在当前配置中是否能够作为中继时调用。见 [method " -"MultiplayerAPI.is_server_relay_supported]。" +"检查服务器在当前配置中是否能够作为中继时调用。见 [method MultiplayerPeer." +"is_server_relay_supported]。" msgid "" "Called when the [MultiplayerAPI] is polled. See [method MultiplayerAPI.poll]." @@ -65058,6 +67589,37 @@ msgid "" "Synchronizes properties from the multiplayer authority to the remote peers." msgstr "将属性从多人游戏权威同步到远程对等体。" +msgid "" +"By default, [MultiplayerSynchronizer] synchronizes configured properties to " +"all peers.\n" +"Visibility can be handled directly with [method set_visibility_for] or as-" +"needed with [method add_visibility_filter] and [method update_visibility].\n" +"[MultiplayerSpawner]s will handle nodes according to visibility of " +"synchronizers as long as the node at [member root_path] was spawned by one.\n" +"Internally, [MultiplayerSynchronizer] uses [method MultiplayerAPI." +"object_configuration_add] to notify synchronization start passing the [Node] " +"at [member root_path] as the [code]object[/code] and itself as the " +"[code]configuration[/code], and uses [method MultiplayerAPI." +"object_configuration_remove] to notify synchronization end in a similar way.\n" +"[b]Note:[/b] Synchronization is not supported for [Object] type properties, " +"like [Resource]. Properties that are unique to each peer, like the instance " +"IDs of [Object]s (see [method Object.get_instance_id]) or [RID]s, will also " +"not work in synchronization." +msgstr "" +"默认情况下,[MultiplayerSynchronizer] 会将配置的属性同步到所有对等体。\n" +"可以使用 [method set_visibility_for] 直接处理可见性,也可以通过 [method " +"add_visibility_filter] 和 [method update_visibility] 在需要时进行处理。\n" +"[MultiplayerSpawner] 会根据同步器的可见性来处理节点,只要 [member root_path] " +"的节点是出生出来的。\n" +"内部而言,[MultiplayerSynchronizer] 使用 [method MultiplayerAPI." +"object_configuration_add] 来通知同步开始,将位于 [member root_path] 的 [Node] " +"作为 [code]object[/code] 传入、将自己作为 [code]configuration[/code] 传入。使" +"用 [method MultiplayerAPI.object_configuration_remove] 通知同步结束的方法相" +"同。\n" +"[b]注意:[/b]不支持对 [Resource] 等 [Object] 类型属性进行同步。对等体的唯一属" +"性也无法进行同步,例如 [Object] 的实例 ID(见 [method Object." +"get_instance_id])或 [RID]。" + msgid "" "Adds a peer visibility filter for this synchronizer.\n" "[param filter] should take a peer ID [int] and return a [bool]." @@ -65084,8 +67646,15 @@ msgid "" "If [param for_peer] is [code]0[/code] (the default), all peers' visibilties " "are updated." msgstr "" -"根据可见性过滤器更新 [param peer] 的可见性。如果 [param peer] 为 [code]0[/" -"code](默认值),则更新所有对等体的可见性。" +"根据可见性过滤器更新 [param for_peer] 的可见性。如果 [param for_peer] 为 " +"[code]0[/code](默认值),则更新所有对等体的可见性。" + +msgid "" +"Time interval between delta synchronizations. When set to [code]0.0[/code] " +"(the default), delta synchronizations happen every network process frame." +msgstr "" +"两次增量同步之间的时间间隔。当设置为 [code]0.0[/code](默认值)时,每个网络处" +"理帧都会发生增量同步。" msgid "" "Whether synchronization should be visible to all peers by default. See " @@ -65098,6 +67667,13 @@ msgstr "" msgid "Resource containing which properties to synchronize." msgstr "包含要同步的属性的资源。" +msgid "" +"Time interval between synchronizations. When set to [code]0.0[/code] (the " +"default), synchronizations happen every network process frame." +msgstr "" +"两次同步之间的时间间隔。当设置为 [code]0.0[/code](默认值)时,每个网络处理帧" +"都会发生同步。" + msgid "" "Node path that replicated properties are relative to.\n" "If [member root_path] was spawned by a [MultiplayerSpawner], the node will be " @@ -65290,6 +67866,14 @@ msgid "" "Returns the path query result for the path the agent is currently following." msgstr "返回该代理目前正在使用的路径所对应的路径查询结果。" +msgid "" +"Returns the reachable final position of the current navigation path in global " +"coordinates. This can change if the navigation path is altered in any way. " +"Because of this, it would be best to check this each frame." +msgstr "" +"返回当前导航路径中可到达的最终位置的全局坐标。如果导航路径由于任何原因发生改" +"变,这个位置也可能发生变化。因此,最好每一帧都检查一下。" + msgid "" "Returns whether or not the specified layer of the [member navigation_layers] " "bitmask is enabled, given a [param layer_number] between 1 and 32." @@ -65383,6 +67967,46 @@ msgstr "" "将防撞仿真的内部速度替换为 [param velocity]。代理传送到新的位置之后,应该在同" "一帧里使用这个函数。如果频繁调用这个函数,可能会让代理卡住。" +msgid "" +"If [code]true[/code] the agent is registered for an RVO avoidance callback on " +"the [NavigationServer2D]. When [member velocity] is used and the processing " +"is completed a [code]safe_velocity[/code] Vector2 is received with a signal " +"connection to [signal velocity_computed]. Avoidance processing with many " +"registered agents has a significant performance cost and should only be " +"enabled on agents that currently require it." +msgstr "" +"如果为 [code]true[/code],该代理会在 [NavigationServer2D] 上注册 RVO 避障回" +"调。当使用 [member velocity] 并且处理完成时,会通过与 [signal " +"velocity_computed] 的信号连接接收到安全速度 [code]safe_velocity[/code] " +"Vector2。注册的代理过多会为避障处理带来显著的性能开销,应该仅在需要它的代理上" +"启用。" + +msgid "" +"A bitfield determining the avoidance layers for this NavigationAgent. Other " +"agents with a matching bit on the [member avoidance_mask] will avoid this " +"agent." +msgstr "" +"决定该 NavigationAgent 避障层的位域。[member avoidance_mask] 中该位域存在交集" +"的其他代理会躲避这个代理。" + +msgid "" +"A bitfield determining what other avoidance agents and obstacles this " +"NavigationAgent will avoid when a bit matches at least one of their [member " +"avoidance_layers]." +msgstr "" +"决定该 NavigationAgent 会躲避那些代理和障碍物的位域,需要该位域与对方的 " +"[member avoidance_layers] 存在至少一个共同的比特位。" + +msgid "" +"The agent does not adjust the velocity for other agents that would match the " +"[member avoidance_mask] but have a lower [member avoidance_priority]. This in " +"turn makes the other agents with lower priority adjust their velocities even " +"more to avoid collision with this agent." +msgstr "" +"该代理不会针对 [member avoidance_mask] 存在匹配但 [member avoidance_priority] " +"更低的代理调整速度。相应地,优先级更低的代理则会对其速度进行更大的调整,从而避" +"免与这个代理发生碰撞。" + msgid "If [code]true[/code] shows debug visuals for this agent." msgstr "如果为 [code]true[/code],则为该代理显示调试内容。" @@ -65420,9 +68044,33 @@ msgstr "该代理所需考虑的最大邻居数。" msgid "The maximum speed that an agent can move." msgstr "代理所能达到的最大移动速度。" +msgid "" +"A bitfield determining which navigation layers of navigation regions this " +"agent will use to calculate a path. Changing it during runtime will clear the " +"current navigation path and generate a new one, according to the new " +"navigation layers." +msgstr "" +"决定该代理计算路径所使用的导航地区导航层的位域。运行时进行修改会清空当前的导航" +"路径,并根据新的导航层生成一条新的路径。" + msgid "The distance to search for other agents." msgstr "搜索其他代理的距离。" +msgid "" +"The distance threshold before a path point is considered to be reached. This " +"allows agents to not have to hit a path point on the path exactly, but only " +"to reach its general area. If this value is set too high, the NavigationAgent " +"will skip points on the path, which can lead too leaving the navigation mesh. " +"If this value is set too low, the NavigationAgent will be stuck in a repath " +"loop because it will constantly overshoot or undershoot the distance to the " +"next point on each physics frame update." +msgstr "" +"距离阈值,用于确定是否已到达某个路径点。使用这个值,代理就不必精确地到达某个路" +"径点,到达该路径点的大致区域内即可。如果这个值设得太大,该 NavigationAgent 会" +"跳过路径上的点,可能导致其离开该导航网格。如果这个值设得太小,该 " +"NavigationAgent 会陷入重新寻路的死循环,因为它在每次物理帧更新后都会超过或者到" +"达不了下一个点。" + msgid "" "The maximum distance the agent is allowed away from the ideal path to the " "final position. This can happen due to trying to avoid collisions. When the " @@ -65457,6 +68105,59 @@ msgstr "" "不同的 [member NavigationMesh.agent_radius] 属性,针对不同的角色大小使用不同的" "导航地图。" +msgid "" +"The distance threshold before the final target point is considered to be " +"reached. This allows agents to not have to hit the point of the final target " +"exactly, but only to reach its general area. If this value is set too low, " +"the NavigationAgent will be stuck in a repath loop because it will constantly " +"overshoot or undershoot the distance to the final target point on each " +"physics frame update." +msgstr "" +"距离阈值,用于确定是否已到达最终目标点。使用这个值,代理就不必精确地到达最终目" +"标点,到达目标点的大致区域内即可。如果这个值设得太小,该 NavigationAgent 会陷" +"入重新寻路的死循环,因为它在每次物理帧更新后都会超过或者到达不了最终目标点。" + +msgid "" +"If set a new navigation path from the current agent position to the [member " +"target_position] is requested from the NavigationServer." +msgstr "" +"设置后,会向 NavigationServer 请求一条新的从当前代理位置到 [member " +"target_position] 的导航路径。" + +msgid "" +"The minimal amount of time for which this agent's velocities, that are " +"computed with the collision avoidance algorithm, are safe with respect to " +"other agents. The larger the number, the sooner the agent will respond to " +"other agents, but less freedom in choosing its velocities. A too high value " +"will slow down agents movement considerably. Must be positive." +msgstr "" +"考虑其他代理的前提下,该代理的速度的最短安全时间,这个速度是通过碰撞躲避算法计" +"算的。数值越大,代理响应其他代理的速度就越快,但选择速度的自由度也就越小。太高" +"的取值会大大降低代理的移动速度。必须为正数。" + +msgid "" +"The minimal amount of time for which this agent's velocities, that are " +"computed with the collision avoidance algorithm, are safe with respect to " +"static avoidance obstacles. The larger the number, the sooner the agent will " +"respond to static avoidance obstacles, but less freedom in choosing its " +"velocities. A too high value will slow down agents movement considerably. " +"Must be positive." +msgstr "" +"考虑静态避障障碍物的前提下,该代理的速度的最短安全时间,这个速度是通过碰撞躲避" +"算法计算的。数值越大,代理响应静态避障障碍物的速度就越快,但选择速度的自由度也" +"就越小。太高的取值会大大降低代理的移动速度。必须为正数。" + +msgid "" +"Sets the new wanted velocity for the agent. The avoidance simulation will try " +"to fulfill this velocity if possible but will modify it to avoid collision " +"with other agents and obstacles. When an agent is teleported to a new " +"position, use [method set_velocity_forced] as well to reset the internal " +"simulation velocity." +msgstr "" +"为代理设置新的需求速度。避障仿真会尽可能尝试满足这个速度,但为了躲避与其他代理" +"和障碍物的碰撞也会对它进行修改。将代理传送至新的位置时,请使用 [method " +"set_velocity_forced] 重置内部仿真速度。" + msgid "" "Notifies when a navigation link has been reached.\n" "The details dictionary may contain the following keys depending on the value " @@ -65495,6 +68196,14 @@ msgstr "导航路径改变时发出通知。" msgid "Notifies when the player-defined [member target_position] is reached." msgstr "抵达玩家定义的目标位置 [member target_position] 时发出通知。" +msgid "" +"Notifies when the collision avoidance velocity is calculated. Emitted when " +"[member velocity] is set. Only emitted when [member avoidance_enabled] is " +"true." +msgstr "" +"计算出避障速度时发出通知。设置了 [member velocity] 才会发出。仅在 [member " +"avoidance_enabled] 为 true 时发出。" + msgid "" "Notifies when a waypoint along the path has been reached.\n" "The details dictionary may contain the following keys depending on the value " @@ -65543,9 +68252,108 @@ msgid "" "[PackedVector3Array]." msgstr "返回该代理当前位于导航路径 [PackedVector3Array] 中的哪一个索引。" +msgid "" +"Returns the reachable final position of the current navigation path in global " +"coordinates. This position can change if the navigation path is altered in " +"any way. Because of this, it would be best to check this each frame." +msgstr "" +"返回当前导航路径上可到达的最终位置的全局坐标。如果导航路径由于任何原因发生改" +"变,这个位置也可能发生变化。因此,最好每一帧都检查一下。" + msgid "Returns the [RID] of this agent on the [NavigationServer3D]." msgstr "返回这个代理在 [NavigationServer3D] 上的 [RID]。" +msgid "" +"If [code]true[/code] the agent is registered for an RVO avoidance callback on " +"the [NavigationServer3D]. When [member velocity] is set and the processing is " +"completed a [code]safe_velocity[/code] Vector3 is received with a signal " +"connection to [signal velocity_computed]. Avoidance processing with many " +"registered agents has a significant performance cost and should only be " +"enabled on agents that currently require it." +msgstr "" +"如果为 [code]true[/code],该代理会在 [NavigationServer3D] 上注册 RVO 避障回" +"调。当设置 [member velocity] 并且处理完成时,会通过与 [signal " +"velocity_computed] 的信号连接接收到安全速度 [code]safe_velocity[/code] " +"Vector3。注册的代理过多会为避障处理带来显著的性能开销,应该仅在需要它的代理上" +"启用。" + +msgid "" +"A bitfield determining the avoidance layers for this NavigationAgent. Other " +"agent's with a matching bit on the [member avoidance_mask] will avoid this " +"agent." +msgstr "" +"决定该 NavigationAgent 避障层的位域。[member avoidance_mask] 中该位域存在交集" +"的其他代理会躲避这个代理。" + +msgid "" +"The height of the avoidance agent. Agents will ignore other agents or " +"obstacles that are above or below their current position + height in 2D " +"avoidance. Does nothing in 3D avoidance which uses radius spheres alone." +msgstr "" +"避障代理的高度。2D 避障时,代理会忽略位于其上方或低于当前位置 + 高度的其他代理" +"或障碍物。3D 避障时只使用半径球体,该设置无效。" + +msgid "" +"The distance threshold before a path point is considered to be reached. This " +"allows agents to not have to hit a path point on the path exactly, but only " +"to reach its general area. If this value is set too high, the NavigationAgent " +"will skip points on the path, which can lead to leaving the navigation mesh. " +"If this value is set too low, the NavigationAgent will be stuck in a repath " +"loop because it will constantly overshoot or undershoot the distance to the " +"next point on each physics frame update." +msgstr "" +"距离阈值,用于确定是否已到达某个路径点。使用这个值,代理就不必精确地到达某个路" +"径点,到达该路径点的大致区域内即可。如果这个值设得太大,该 NavigationAgent 会" +"跳过路径上的点,可能导致其离开该导航网格。如果这个值设得太小,该 " +"NavigationAgent 会陷入重新寻路的死循环,因为它在每次物理帧更新后都会超过或者到" +"达不了下一个点。" + +msgid "" +"The height offset is subtracted from the y-axis value of any vector path " +"position for this NavigationAgent. The NavigationAgent height offset does not " +"change or influence the navigation mesh or pathfinding query result. " +"Additional navigation maps that use regions with navigation meshes that the " +"developer baked with appropriate agent radius or height values are required " +"to support different-sized agents." +msgstr "" +"这个 NavigationAgent 的任何向量路径位置的 Y 坐标值都会减去这个高度偏移量。" +"NavigationAgent 的高度偏移量既不会改变也不会影响导航网格和寻路结果。要支持不同" +"大小的代理,需要提供其他使用了带有导航网格区块的导航地图,并且开发者使用合适的" +"代理半径或高度对其进行了烘焙。" + +msgid "" +"The distance threshold before the final target point is considered to be " +"reached. This allows agents to not have to hit the point of the final target " +"exactly, but only to reach its general. If this value is set too low, the " +"NavigationAgent will be stuck in a repath loop because it will constantly " +"overshoot or undershoot the distance to the final target point on each " +"physics frame update." +msgstr "" +"距离阈值,用于确定是否已到达最终目标点。使用这个值,代理就不必精确地到达最终目" +"标点,到达目标点的大致区域内即可。如果这个值设得太小,该 NavigationAgent 会陷" +"入重新寻路的死循环,因为它在每次物理帧更新后都会超过或者到达不了最终目标点。" + +msgid "" +"If [code]true[/code], the agent calculates avoidance velocities in 3D " +"omnidirectionally, e.g. for games that take place in air, underwater or " +"space. Agents using 3D avoidance only avoid other agents using 3D avoidance, " +"and react to radius-based avoidance obstacles. They ignore any vertex-based " +"obstacles.\n" +"If [code]false[/code], the agent calculates avoidance velocities in 2D along " +"the x and z-axes, ignoring the y-axis. Agents using 2D avoidance only avoid " +"other agents using 2D avoidance, and react to radius-based avoidance " +"obstacles or vertex-based avoidance obstacles. Other agents using 2D " +"avoidance that are below or above their current position including [member " +"height] are ignored." +msgstr "" +"如果为 [code]true[/code],则代理会在 3D 空间中计算全向的避障速度,例如发生在空" +"中、水下、太空中的游戏。使用 3D 避障的代理只会躲避其他使用 3D 避障的代理、对基" +"于半径的障碍物作出反应。会忽略基于顶点的障碍物。\n" +"如果为 [code]false[/code],则代理会在 2D 空间中沿 X 和 Z 轴计算避障速度,忽略 " +"Y 轴。使用 2D 避障的代理只会躲避其他使用 2D 避障的代理、对基于半径和基于顶点的" +"障碍物作出反应。其他使用 2D 避障的代理如果在该代理之下,或者高于该代理当前位置" +"与 [member height] 之和则会被忽略。" + msgid "" "Notifies when a navigation link has been reached.\n" "The details dictionary may contain the following keys depending on the value " @@ -65579,7 +68387,19 @@ msgid "" "A link between two positions on [NavigationRegion2D]s that agents can be " "routed through." msgstr "" -"连接两个位于 [NavigationRegion2D] 上的位置的链接,导航时代理能够通过这个链接。" +"连接两个位于 [NavigationRegion2D] 上的位置的链接,导航时能够让代理走这个链接。" + +msgid "" +"A link between two positions on [NavigationRegion2D]s that agents can be " +"routed through. These positions can be on the same [NavigationRegion2D] or on " +"two different ones. Links are useful to express navigation methods other than " +"traveling along the surface of the navigation polygon, such as ziplines, " +"teleporters, or gaps that can be jumped across." +msgstr "" +"连接两个位于 [NavigationRegion2D] 上的位置的链接,导航时能够让代理走这个链接。" +"这两个位置可以在同一个 [NavigationRegion2D] 上,也可以是在两个不同的区块上。链" +"接可以用来表达沿着导航多边形表面行进以外的导航方法,例如滑锁、传送、跳过沟壑等" +"等。" msgid "Using NavigationLinks" msgstr "使用 NavigationLink" @@ -65669,7 +68489,19 @@ msgid "" "A link between two positions on [NavigationRegion3D]s that agents can be " "routed through." msgstr "" -"连接两个位于 [NavigationRegion3D] 上的位置的链接,导航时代理能够通过这个链接。" +"连接两个位于 [NavigationRegion3D] 上的位置的链接,导航时能够让代理走这个链接。" + +msgid "" +"A link between two positions on [NavigationRegion3D]s that agents can be " +"routed through. These positions can be on the same [NavigationRegion3D] or on " +"two different ones. Links are useful to express navigation methods other than " +"traveling along the surface of the navigation mesh, such as ziplines, " +"teleporters, or gaps that can be jumped across." +msgstr "" +"连接两个位于 [NavigationRegion3D] 上的位置的链接,导航时能够让代理走这个链接。" +"这两个位置可以在同一个 [NavigationRegion3D] 上,也可以是在两个不同的区块上。链" +"接可以用来表达沿着导航网格表面行进以外的导航方法,例如滑锁、传送、跳过沟壑等" +"等。" msgid "" "Whether this link is currently active. If [code]false[/code], [method " @@ -65832,6 +68664,11 @@ msgid "" "in cell unit." msgstr "细节网格表面应偏离高度场的最大距离,以单元格为单位。" +msgid "" +"The maximum distance a simplified contour's border edges should deviate the " +"original raw contour." +msgstr "简化轮廓的边界边缘偏离原始轮廓的最大距离。" + msgid "" "The maximum allowed length for contour edges along the border of the mesh.\n" "[b]Note:[/b] While baking, this value will be rounded up to the nearest " @@ -65932,12 +68769,12 @@ msgid "" "Watershed partitioning. Generally the best choice if you precompute the " "navigation mesh, use this if you have large open areas." msgstr "" -"分水岭分区。如果您预先计算导航网格,通常是最佳选择,如果您有大的开放区域,请使" +"分水岭分区。如果你预先计算导航网格,通常是最佳选择,如果你有大的开放区域,请使" "用它。" msgid "" "Monotone partitioning. Use this if you want fast navigation mesh generation." -msgstr "单调分区。如果您想要快速生成导航网格,请使用此选项。" +msgstr "单调分区。如果你想要快速生成导航网格,请使用此选项。" msgid "" "Layer partitioning. Good choice to use for tiled navigation mesh with medium " @@ -66085,10 +68922,69 @@ msgid "" "resource." msgstr "从提供的 [param navigation_mesh] 资源中移除所有多边形和顶点。" +msgid "" +"Parses the [SceneTree] for source geometry according to the properties of " +"[param navigation_mesh]. Updates the provided [param source_geometry_data] " +"resource with the resulting data. The resource can then be used to bake a " +"navigation mesh with [method bake_from_source_geometry_data]. After the " +"process is finished the optional [param callback] will be called.\n" +"[b]Note:[/b] This function needs to run on the main thread or with a deferred " +"call as the SceneTree is not thread-safe.\n" +"[b]Performance:[/b] While convenient, reading data arrays from [Mesh] " +"resources can affect the frame rate negatively. The data needs to be received " +"from the GPU, stalling the [RenderingServer] in the process. For performance " +"prefer the use of e.g. collision shapes or creating the data arrays entirely " +"in code." +msgstr "" +"根据 [param navigation_mesh] 的属性解析 [SceneTree] 中的源几何体。会使用解析的" +"结果对提供的 [param source_geometry_data] 资源进行更新。后续可以在使用 " +"[method bake_from_source_geometry_data] 烘焙导航网格时使用该资源。解析过程完成" +"后,会调用可选的 [param callback]。\n" +"[b]注意:[/b]因为 SceneTree 并不是线程安全的,所以这个函数需要在主线程执行或使" +"用延迟调用。\n" +"[b]注意:[/b]从 [Mesh] 资源读取数据数组虽然很方便,但会对帧率造成负面影响。这" +"些数据需要从 GPU 获取,卡住正在处理的 [RenderingServer]。出于性能考量,请优先" +"使用碰撞形状或在代码中创建完整的数据数组等方法。" + msgid "" "Container for parsed source geometry data used in navigation mesh baking." msgstr "存放解析所得的源几何体数据的容器,用于导航网格的烘焙。" +msgid "" +"Adds an array of vertex positions to the geometry data for navigation mesh " +"baking to form triangulated faces. For each face the array must have three " +"vertex positions in clockwise winding order. Since [NavigationMesh] resource " +"have no transform all vertex positions need to be offset by the node's " +"transform using the [code]xform[/code] parameter." +msgstr "" +"向用于导航网格烘焙的几何体数据中添加顶点位置数组,形成三角形面。每个面必须在数" +"组中有三个顶点位置,使用顺时针缠绕顺序。因为 [NavigationMesh] 资源本身没有变" +"换,所有顶点位置都需要使用 [code]xform[/code] 参数使用节点的变换进行偏移。" + +msgid "" +"Adds the geometry data of a [Mesh] resource to the navigation mesh baking " +"data. The mesh must have valid triangulated mesh data to be considered. Since " +"[NavigationMesh] resource have no transform all vertex positions need to be " +"offset by the node's transform using the [code]xform[/code] parameter." +msgstr "" +"向导航网格烘焙数据中添加 [Mesh] 资源的几何体数据。网格中必须存在有效的三角形网" +"格数据才会被使用。因为 [NavigationMesh] 资源本身没有变换,所有顶点位置都需要使" +"用 [code]xform[/code] 参数使用节点的变换进行偏移。" + +msgid "" +"Adds an [Array] the size of [constant Mesh.ARRAY_MAX] and with vertices at " +"index [constant Mesh.ARRAY_VERTEX] and indices at index [constant Mesh." +"ARRAY_INDEX] to the navigation mesh baking data. The array must have valid " +"triangulated mesh data to be considered. Since [NavigationMesh] resource have " +"no transform all vertex positions need to be offset by the node's transform " +"using the [code]xform[/code] parameter." +msgstr "" +"向导航网格烘焙数据中添加一个 [Array],大小为 [constant Mesh.ARRAY_MAX],顶点数" +"据位于索引 [constant Mesh.ARRAY_VERTEX],索引数据位于索引 [constant Mesh." +"ARRAY_INDEX]。数组中必须存在有效的三角形网格数据才会被使用。因为 " +"[NavigationMesh] 资源本身没有变换,所有顶点位置都需要使用 [code]xform[/code] " +"参数使用节点的变换进行偏移。" + msgid "Clears the internal data." msgstr "清除内部数据。" @@ -66125,9 +69021,51 @@ msgid "" msgstr "" "用于导航的 2D 障碍物,能够将启用了避障处理的代理约束在某个区域之外或之内。" +msgid "" +"2D Obstacle used in navigation to constrain avoidance controlled agents " +"outside or inside an area. The obstacle needs a navigation map and outline " +"vertices defined to work correctly.\n" +"If the obstacle's vertices are winded in clockwise order, avoidance agents " +"will be pushed in by the obstacle, otherwise, avoidance agents will be pushed " +"out. Outlines must not cross or overlap.\n" +"Obstacles are [b]not[/b] a replacement for a (re)baked navigation mesh. " +"Obstacles [b]don't[/b] change the resulting path from the pathfinding, " +"obstacles only affect the navigation avoidance agent movement by altering the " +"suggested velocity of the avoidance agent.\n" +"Obstacles using vertices can warp to a new position but should not moved " +"every frame as each move requires a rebuild of the avoidance map." +msgstr "" +"导航中使用的 2D 障碍物,能够将由避障控制的代理约束在某个区域之外或之内。障碍物" +"定义导航地图和轮廓顶点后才能正常工作。\n" +"如果障碍物的顶点使用顺时针顺序缠绕,则避障代理会被推入障碍物,否则避障代理就会" +"被推出障碍物。轮廓必须不存在交叉和重叠。\n" +"障碍物[b]不是[/b](重新)烘焙导航网格的替代品。障碍物[b]不会[/b]改变寻路的结" +"果,障碍物只会修改避障代理的推荐速度,从而影响导航避障代理的移动。\n" +"使用顶点的障碍物可以传送至新位置,但不应该每一帧都移动,因为每次移动都需要重新" +"构建避障地图。" + msgid "Using NavigationObstacles" msgstr "使用 NavigationObstacle" +msgid "" +"Returns the [RID] of the navigation map for this NavigationObstacle node. " +"This function returns always the map set on the NavigationObstacle node and " +"not the map of the abstract obstacle on the NavigationServer. If the obstacle " +"map is changed directly with the NavigationServer API the NavigationObstacle " +"node will not be aware of the map change. Use [method set_navigation_map] to " +"change the navigation map for the NavigationObstacle and also update the " +"obstacle on the NavigationServer." +msgstr "" +"返回该 NavigationObstacle 节点的导航地图的 [RID]。该函数始终返回在 " +"NavigationObstacle 节点上设置的地图,而不是 NavigationServer 上抽象障碍物所使" +"用的地图。如果该障碍物地图使用 NavigationServer API 直接更改,则该 " +"NavigationObstacle 节点将不会察觉该地图的更改。请使用 [method " +"set_navigation_map] 更改 NavigationObstacle 的导航地图,也会更新 " +"NavigationServer 上的障碍物。" + +msgid "Returns the [RID] of this obstacle on the [NavigationServer2D]." +msgstr "返回这个障碍物在 [NavigationServer2D] 上的 [RID]。" + msgid "" "Sets the [RID] of the navigation map this NavigationObstacle node should use " "and also updates the [code]obstacle[/code] on the NavigationServer." @@ -66173,9 +69111,59 @@ msgid "" msgstr "" "用于导航的 3D 障碍物,能够将启用了避障处理的代理约束在某个区域之外或之内。" +msgid "" +"3D Obstacle used in navigation to constrain avoidance controlled agents " +"outside or inside an area. The obstacle needs a navigation map and outline " +"vertices defined to work correctly.\n" +"If the obstacle's vertices are winded in clockwise order, avoidance agents " +"will be pushed in by the obstacle, otherwise, avoidance agents will be pushed " +"out. Outlines must not cross or overlap.\n" +"Obstacles are [b]not[/b] a replacement for a (re)baked navigation mesh. " +"Obstacles [b]don't[/b] change the resulting path from the pathfinding, " +"obstacles only affect the navigation avoidance agent movement by altering the " +"suggested velocity of the avoidance agent.\n" +"Obstacles using vertices can warp to a new position but should not moved " +"every frame as each move requires a rebuild of the avoidance map." +msgstr "" +"导航中使用的 3D 障碍物,能够将由避障控制的代理约束在某个区域之外或之内。障碍物" +"定义导航地图和轮廓顶点后才能正常工作。\n" +"如果障碍物的顶点使用顺时针顺序缠绕,则避障代理会被推入障碍物,否则避障代理就会" +"被推出障碍物。轮廓必须不存在交叉和重叠。\n" +"障碍物[b]不是[/b](重新)烘焙导航网格的替代品。障碍物[b]不会[/b]改变寻路的结" +"果,障碍物只会修改避障代理的推荐速度,从而影响导航避障代理的移动。\n" +"使用顶点的障碍物可以传送至新位置,但不应该每一帧都移动,因为每次移动都需要重新" +"构建避障地图。" + +msgid "Returns the [RID] of this obstacle on the [NavigationServer3D]." +msgstr "返回这个障碍物在 [NavigationServer3D] 上的 [RID]。" + +msgid "" +"Sets the obstacle height used in 2D avoidance. 2D avoidance using agent's " +"ignore obstacles that are below or above them." +msgstr "" +"设置 2D 避障所使用的障碍物高度。使用 2D 避障的代理会忽略在其之上或之下的障碍" +"物。" + +msgid "" +"If [code]true[/code] the obstacle affects 3D avoidance using agent's with " +"obstacle [member radius].\n" +"If [code]false[/code] the obstacle affects 2D avoidance using agent's with " +"both obstacle [member vertices] as well as obstacle [member radius]." +msgstr "" +"如果为 [code]true[/code],则该障碍物会影响 3D 避障,使用的是代理的障碍物半径 " +"[member radius]。\n" +"如果为 [code]false[/code],则该障碍物会影响 2D 避障,使用的是代理的障碍物顶点 " +"[member vertices] 和障碍物半径 [member radius]。" + msgid "Provides parameters for 2D navigation path queries." msgstr "为 2D 导航路径查询提供参数。" +msgid "" +"By changing various properties of this object, such as the start and target " +"position, you can configure path queries to the [NavigationServer2D]." +msgstr "" +"更改该对象的起始和结束位置等属性可以配置对 [NavigationServer2D] 的路径查询。" + msgid "Using NavigationPathQueryObjects" msgstr "使用 NavigationPathQueryObject" @@ -66243,6 +69231,12 @@ msgstr "包含关于返回路径的所有可用元数据。" msgid "Provides parameters for 3D navigation path queries." msgstr "为 3D 导航路径查询提供参数。" +msgid "" +"By changing various properties of this object, such as the start and target " +"position, you can configure path queries to the [NavigationServer3D]." +msgstr "" +"更改该对象的起始和结束位置等属性可以配置对 [NavigationServer3D] 的路径查询。" + msgid "Represents the result of a 2D pathfinding query." msgstr "代表 2D 寻路查询的结果。" @@ -66302,6 +69296,9 @@ msgstr "" "导航查询的路径数组结果。所有的路径数组位置都使用全局坐标。未自定义查询参数时," "与 [method NavigationServer3D.map_get_path] 返回的路径相同。" +msgid "A navigation polygon that defines traversable areas and obstacles." +msgstr "定义可达区域和障碍物的导航多边形。" + msgid "" "There are two ways to create polygons. Either by using the [method " "add_outline] method, or using the [method add_polygon] method.\n" @@ -66525,6 +69522,23 @@ msgstr "" msgid "A bitfield determining all avoidance layers for the avoidance constrain." msgstr "位域,确定避障约束的所有避障层。" +msgid "" +"If [code]true[/code] constraints avoidance agent's with an avoidance mask bit " +"that matches with a bit of the [member avoidance_layers] to the navigation " +"polygon. Due to each navigation polygon outline creating an obstacle and each " +"polygon edge creating an avoidance line constrain keep the navigation polygon " +"shape as simple as possible for performance.\n" +"[b]Experimental:[/b] This is an experimental feature and should not be used " +"in production as agent's can get stuck on the navigation polygon corners and " +"edges especially at high frame rate." +msgstr "" +"如果为 [code]true[/code],则会将避障代理的避障掩码位与导航多边形的 [member " +"avoidance_layers] 位相匹配。由于每个导航多边形轮廓都会创建一个障碍物,而每个多" +"边形边缘都会创建一条避障线约束,因此为了提高性能,要尽量保持导航多边形的形状尽" +"可能简单。\n" +"[b]实验性:[/b]这是一个实验性功能,不应在生产中使用,因为代理在导航多边形的角" +"和边缘,特别是在高帧率下,可能会被卡住。" + msgid "Determines if the [NavigationRegion2D] is enabled or disabled." msgstr "决定该 [NavigationRegion2D] 是启用还是禁用。" @@ -66555,6 +69569,14 @@ msgstr "" "当寻路在该区块的导航网格内移动时,将行进距离乘以 [code]travel_cost[/code] 以确" "定最短路径。" +msgid "" +"If enabled the navigation region will use edge connections to connect with " +"other navigation regions within proximity of the navigation map edge " +"connection margin." +msgstr "" +"如果启用,导航区块将使用边缘连接来与位于导航地图连接边距范围内的其他导航区块相" +"连接。" + msgid "" "A traversable 3D region that [NavigationAgent3D]s can use for pathfinding." msgstr "可达的 3D 地区,[NavigationAgent3D] 能够将其用于寻路。" @@ -66635,6 +69657,56 @@ msgstr "导航网格烘焙操作完成时发出通知。" msgid "Notifies when the [NavigationMesh] has changed." msgstr "[NavigationMesh] 发生变化时发出通知。" +msgid "A server interface for low-level 2D navigation access." +msgstr "用于访问低阶 2D 导航的服务器接口。" + +msgid "" +"NavigationServer2D is the server that handles navigation maps, regions and " +"agents. It does not handle A* navigation from [AStar2D] or [AStarGrid2D].\n" +"Maps are made up of regions, which are made of navigation polygons. Together, " +"they define the traversable areas in the 2D world.\n" +"[b]Note:[/b] Most [NavigationServer2D] changes take effect after the next " +"physics frame and not immediately. This includes all changes made to maps, " +"regions or agents by navigation-related nodes in the scene tree or made " +"through scripts.\n" +"For two regions to be connected to each other, they must share a similar " +"edge. An edge is considered connected to another if both of its two vertices " +"are at a distance less than [code]edge_connection_margin[/code] to the " +"respective other edge's vertex.\n" +"You may assign navigation layers to regions with [method NavigationServer2D." +"region_set_navigation_layers], which then can be checked upon when requesting " +"a path with [method NavigationServer2D.map_get_path]. This can be used to " +"allow or deny certain areas for some objects.\n" +"To use the collision avoidance system, you may use agents. You can set an " +"agent's target velocity, then the servers will emit a callback with a " +"modified velocity.\n" +"[b]Note:[/b] The collision avoidance system ignores regions. Using the " +"modified velocity directly may move an agent outside of the traversable area. " +"This is a limitation of the collision avoidance system, any more complex " +"situation may require the use of the physics engine.\n" +"This server keeps tracks of any call and executes them during the sync phase. " +"This means that you can request any change to the map, using any thread, " +"without worrying." +msgstr "" +"NavigationServer2D 是负责处理导航地图、区块、代理的服务器。不负责处理 " +"[AStar2D] 和 [AStarGrid2D] 的 A* 导航。\n" +"地图由区块组成,区块由导航多边形组成。它们共同定义了 2D 空间中的可达区域。\n" +"[b]注意:[/b]大多数 [NavigationServer2D] 的更改都是在下一个物理帧进行的,不会" +"立即生效。包括所有对地图、区块、代理的更改,无论是通过场景树中导航相关的节点作" +"出的更改,还是通过脚本作出的更改。\n" +"两个区块必须共享一条相似的边才能相连。如果一条边的两个顶点与另一条边上相应顶点" +"的距离都小于 [code]edge_connection_margin[/code],那么就会认为这两条边是相连" +"的。\n" +"可以使用 [method NavigationServer2D.region_set_navigation_layers] 为区块分配导" +"航层,使用 [method NavigationServer2D.map_get_path] 请求路径时会对导航层进行检" +"查。可用于允许或禁止某些对象进入特定的区域。\n" +"使用碰撞躲避系统就需要使用代理。你可以为代理设置目标速度,然后服务器就会发出回" +"调,提供修改后的速度。\n" +"[b]注意:[/b]碰撞躲避系统并不考虑区块。直接使用修改后的速度可能会将代理移动到" +"可达区域之外。这是碰撞躲避系统的缺陷,更复杂的场合可能需要使用物理引擎。\n" +"服务器会对所有调用进行跟踪,并在同步阶段执行。这意味着你可以放心地从任何线程请" +"求对地图作出任何修改。" + msgid "Using NavigationServer" msgstr "使用 NavigationServer" @@ -66655,6 +69727,21 @@ msgstr "如果指定的 [param agent] 处于暂停状态,则返回 [code]true[ msgid "Returns true if the map got changed the previous frame." msgstr "如果该地图在上一帧发生了改变,则返回 true。" +msgid "" +"Sets the callback [Callable] that gets called after each avoidance processing " +"step for the [param agent]. The calculated [code]safe_velocity[/code] will be " +"dispatched with a signal to the object just before the physics calculations.\n" +"[b]Note:[/b] Created callbacks are always processed independently of the " +"SceneTree state as long as the agent is on a navigation map and not freed. To " +"disable the dispatch of a callback from an agent use [method " +"agent_set_avoidance_callback] again with an empty [Callable]." +msgstr "" +"设置在 [param agent] 的每个避障处理步骤之后调用的回调 [Callable]。计算出的 " +"[code]safe_velocity[/code] 将在物理计算之前通过信号发送。\n" +"[b]注意:[/b]只要代理还在导航地图上且未被释放,创建的回调就会始终独立于 " +"SceneTree 状态进行处理。要为某个代理禁用回调的发送,请再次使用一个空的 " +"[Callable] 来调用 [method agent_set_avoidance_callback]。" + msgid "" "If [param enabled] is [code]true[/code] the specified [param agent] uses " "avoidance." @@ -66667,6 +69754,20 @@ msgstr "设置该代理的 [code]avoidance_layers[/code] 位掩码。" msgid "Set the agent's [code]avoidance_mask[/code] bitmask." msgstr "设置该代理的 [code]avoidance_mask[/code] 位掩码。" +msgid "" +"Set the agent's [code]avoidance_priority[/code] with a [param priority] " +"between 0.0 (lowest priority) to 1.0 (highest priority).\n" +"The specified [param agent] does not adjust the velocity for other agents " +"that would match the [code]avoidance_mask[/code] but have a lower [code] " +"avoidance_priority[/code]. This in turn makes the other agents with lower " +"priority adjust their velocities even more to avoid collision with this agent." +msgstr "" +"设置该代理的 [code]avoidance_priority[/code],优先级 [param priority] 在 0.0" +"(最低优先级)到 1.0(最高优先级)之间。\n" +"[param agent] 指定的代理不会针对 [code]avoidance_mask[/code] 存在匹配但 " +"[code] avoidance_priority[/code] 更低的代理调整速度。相应地,优先级更低的代理" +"则会对其速度进行更大的调整,从而避免与这个代理发生碰撞。" + msgid "Puts the agent in the map." msgstr "将代理放入地图中。" @@ -66702,6 +69803,51 @@ msgstr "设置该代理在世界空间中的位置。" msgid "Sets the radius of the agent." msgstr "设置该代理的半径。" +msgid "" +"The minimal amount of time for which the agent's velocities that are computed " +"by the simulation are safe with respect to other agents. The larger this " +"number, the sooner this agent will respond to the presence of other agents, " +"but the less freedom this agent has in choosing its velocities. A too high " +"value will slow down agents movement considerably. Must be positive." +msgstr "" +"考虑其他代理的前提下,该代理的速度的最短安全时间,这个速度是通过仿真得到的。数" +"值越大,代理响应其他代理的速度就越快,但该代理选择速度的自由度也就越小。太高的" +"取值会大大降低代理的移动速度。必须为正数。" + +msgid "" +"The minimal amount of time for which the agent's velocities that are computed " +"by the simulation are safe with respect to static avoidance obstacles. The " +"larger this number, the sooner this agent will respond to the presence of " +"static avoidance obstacles, but the less freedom this agent has in choosing " +"its velocities. A too high value will slow down agents movement considerably. " +"Must be positive." +msgstr "" +"考虑其他静态避障障碍物的前提下,该代理的速度的最短安全时间,这个速度是通过仿真" +"得到的。数值越大,代理响应存在的静态避障障碍物的速度就越快,但该代理选择速度的" +"自由度也就越小。太高的取值会大大降低代理的移动速度。必须为正数。" + +msgid "" +"Sets [param velocity] as the new wanted velocity for the specified [param " +"agent]. The avoidance simulation will try to fulfill this velocity if " +"possible but will modify it to avoid collision with other agent's and " +"obstacles. When an agent is teleported to a new position far away use [method " +"agent_set_velocity_forced] instead to reset the internal velocity state." +msgstr "" +"将 [param velocity] 设置为指定代理 [param agent] 的新的需求速度。避障仿真会尽" +"可能尝试满足这个速度,但为了躲避与其他代理和障碍物的碰撞也会对它进行修改。将代" +"理传送至新的较远的位置时,请改用 [method agent_set_velocity_forced] 重置内部速" +"度状态。" + +msgid "" +"Replaces the internal velocity in the collision avoidance simulation with " +"[param velocity] for the specified [param agent]. When an agent is teleported " +"to a new position far away this function should be used in the same frame. If " +"called frequently this function can get agents stuck." +msgstr "" +"将指定代理 [param agent] 的避障仿真内部速度替换为 [param velocity]。将代理传送" +"至新的较远的位置时,应该在同一帧里使用这个函数。频繁调用这个函数可能让代理卡" +"住。" + msgid "Destroys the given RID." msgstr "销毁给定的 RID。" @@ -66719,9 +69865,17 @@ msgstr "" msgid "Create a new link between two positions on a map." msgstr "在地图上新建两个地点之间的链接。" +msgid "Returns the ending position of this [param link]." +msgstr "返回链接 [param link] 的结束位置。" + msgid "Returns the enter cost of this [param link]." msgstr "返回 [param link] 链接的进入消耗。" +msgid "" +"Returns the navigation map [RID] the requested [param link] is currently " +"assigned to." +msgstr "返回请求的导航链接 [param link] 当前分配的导航地图的 [RID]。" + msgid "Returns the navigation layers for this [param link]." msgstr "返回 [param link] 的导航层。" @@ -66841,6 +69995,16 @@ msgstr "" "返回该地图的链接连接半径。该距离是任何链接将搜索要连接的导航网格多边形的最大范" "围。" +msgid "" +"Returns all navigation link [RID]s that are currently assigned to the " +"requested navigation [param map]." +msgstr "返回当前分配给请求的导航地图 [param map] 的所有导航链接的 [RID]。" + +msgid "" +"Returns all navigation obstacle [RID]s that are currently assigned to the " +"requested navigation [param map]." +msgstr "返回当前分配给请求的导航地图 [param map] 的所有导航障碍物的 [RID]。" + msgid "" "Returns the navigation path to reach the destination from the origin. [param " "navigation_layers] is a bitmask of all region navigation layers that are " @@ -66854,12 +70018,27 @@ msgid "" "requested navigation [param map]." msgstr "返回当前分配给所请求的导航 [param map] 的所有导航区块的 [RID]。" +msgid "" +"Returns whether the navigation [param map] allows navigation regions to use " +"edge connections to connect with other navigation regions within proximity of " +"the navigation map edge connection margin." +msgstr "" +"返回是否允许导航地图 [param map] 使用边缘连接与位于导航地图边缘连接边距范围内" +"的其他导航区块相连接。" + msgid "Returns true if the map is active." msgstr "如果地图处于活动状态,则返回 true。" msgid "Sets the map active." msgstr "设置地图的激活态。" +msgid "" +"Sets the map cell size used to rasterize the navigation mesh vertices. Must " +"match with the cell size of the used navigation meshes." +msgstr "" +"设置用于栅格化导航网格顶点的地图单元格大小。必须与所使用的导航网格单元格大小相" +"匹配。" + msgid "" "Set the map edge connection margin used to weld the compatible region edges." msgstr "设置用于焊接兼容地区边界的地图边界连接边距。" @@ -66869,6 +70048,15 @@ msgid "" "polygons." msgstr "设置该地图用于连接链接和导航多边形的链接连接半径。" +msgid "" +"Set the navigation [param map] edge connection use. If [param enabled] the " +"navigation map allows navigation regions to use edge connections to connect " +"with other navigation regions within proximity of the navigation map edge " +"connection margin." +msgstr "" +"设置导航地图 [param map] 的边缘连接使用情况。如果 [param enabled],则导航地图" +"允许导航区块使用边缘连接与位于导航地图边缘连接边距范围内的其他导航区块相连接。" + msgid "Creates a new navigation obstacle." msgstr "新建导航障碍物。" @@ -66877,8 +70065,19 @@ msgid "" "enabled." msgstr "如果给定的 [param obstacle] 启用了避障,则返回 [code]true[/code]。" +msgid "" +"Returns the navigation map [RID] the requested [param obstacle] is currently " +"assigned to." +msgstr "返回请求的障碍物 [param obstacle] 当前分配的导航地图 [RID]。" + msgid "Returns [code]true[/code] if the specified [param obstacle] is paused." -msgstr "如果指定的 [enum obstacle] 被暂停,则返回 [code]true[/code]。" +msgstr "如果指定的 [param obstacle] 被暂停,则返回 [code]true[/code]。" + +msgid "" +"If [param enabled] the provided [param obstacle] affects avoidance using " +"agents." +msgstr "" +"如果 [param enabled],则提供的障碍物 [param obstacle] 会影响代理的避障。" msgid "Set the obstacles's [code]avoidance_layers[/code] bitmask." msgstr "设置障碍物的避障层 [code]avoidance_layers[/code] 位掩码。" @@ -66886,12 +70085,35 @@ msgstr "设置障碍物的避障层 [code]avoidance_layers[/code] 位掩码。" msgid "Sets the navigation map [RID] for the obstacle." msgstr "为障碍物设置导航地图 [RID]。" +msgid "" +"If [param paused] is true the specified [param obstacle] will not be " +"processed, e.g. affect avoidance velocities." +msgstr "" +"如果 [param paused] 为 true,则不会处理指定的障碍物 [param obstacle],例如不会" +"影响避障速度。" + msgid "Sets the position of the obstacle in world space." msgstr "设置障碍物在世界空间中的位置。" msgid "Sets the radius of the dynamic obstacle." msgstr "设置动态障碍物的半径。" +msgid "" +"Sets [param velocity] of the dynamic [param obstacle]. Allows other agents to " +"better predict the movement of the dynamic obstacle. Only works in " +"combination with the radius of the obstacle." +msgstr "" +"将动态障碍物 [param obstacle] 的速度设置为 [param velocity]。能够让其他代理更" +"好地预测该动态障碍物的移动。仅在与障碍物半径一同使用时有效。" + +msgid "" +"Sets the outline vertices for the obstacle. If the vertices are winded in " +"clockwise order agents will be pushed in by the obstacle, else they will be " +"pushed out." +msgstr "" +"设置障碍物的轮廓顶点。如果顶点顺时针缠绕,则障碍物会将代理向内部推挤,否则向外" +"推挤。" + msgid "" "Queries a path in a given navigation map. Start and target position and other " "parameters are defined through [NavigationPathQueryParameters2D]. Updates the " @@ -66942,6 +70164,14 @@ msgstr "返回管理该地区对象的 [code]ObjectID[/code]。" msgid "Returns the travel cost of this [param region]." msgstr "返回 [param region] 地区的移动消耗。" +msgid "" +"Returns whether the navigation [param region] is set to use edge connections " +"to connect with other navigation regions within proximity of the navigation " +"map edge connection margin." +msgstr "" +"返回导航区块 [param region] 是否被设置为使用边缘连接与位于导航地图边缘连接边距" +"范围内的其他导航区块相连接。" + msgid "" "Returns [code]true[/code] if the provided [param point] in world space is " "currently owned by the provided navigation [param region]. Owned in this " @@ -66991,6 +70221,14 @@ msgstr "设置该地区的全局变换。" msgid "Sets the [param travel_cost] for this [param region]." msgstr "设置 [param region] 地区的移动消耗 [param travel_cost]。" +msgid "" +"If [param enabled] the navigation [param region] will use edge connections to " +"connect with other navigation regions within proximity of the navigation map " +"edge connection margin." +msgstr "" +"如果 [param enabled],导航区块 [param region] 将使用边缘连接来与位于导航地图边" +"缘连接边距范围内的其他导航区块相连接。" + msgid "If [code]true[/code] enables debug mode on the NavigationServer." msgstr "如果为 [code]true[/code],则该 NavigationServer 启用了调试模式。" @@ -67003,6 +70241,123 @@ msgid "" "builds." msgstr "当导航调试设置更改时发出。仅在调试版本中可用。" +msgid "A server interface for low-level 3D navigation access." +msgstr "用于访问低阶 3D 导航的服务器接口。" + +msgid "" +"NavigationServer2D is the server that handles navigation maps, regions and " +"agents. It does not handle A* navigation from [AStar3D].\n" +"Maps are made up of regions, which are made of navigation meshes. Together, " +"they define the navigable areas in the 3D world.\n" +"[b]Note:[/b] Most [NavigationServer3D] changes take effect after the next " +"physics frame and not immediately. This includes all changes made to maps, " +"regions or agents by navigation-related nodes in the scene tree or made " +"through scripts.\n" +"For two regions to be connected to each other, they must share a similar " +"edge. An edge is considered connected to another if both of its two vertices " +"are at a distance less than [code]edge_connection_margin[/code] to the " +"respective other edge's vertex.\n" +"You may assign navigation layers to regions with [method NavigationServer3D." +"region_set_navigation_layers], which then can be checked upon when requesting " +"a path with [method NavigationServer3D.map_get_path]. This can be used to " +"allow or deny certain areas for some objects.\n" +"To use the collision avoidance system, you may use agents. You can set an " +"agent's target velocity, then the servers will emit a callback with a " +"modified velocity.\n" +"[b]Note:[/b] The collision avoidance system ignores regions. Using the " +"modified velocity directly may move an agent outside of the traversable area. " +"This is a limitation of the collision avoidance system, any more complex " +"situation may require the use of the physics engine.\n" +"This server keeps tracks of any call and executes them during the sync phase. " +"This means that you can request any change to the map, using any thread, " +"without worrying." +msgstr "" +"NavigationServer3D 是负责处理导航地图、区块、代理的服务器。不负责处理 " +"[AStar3D] 的 A* 导航。\n" +"地图由区块组成,区块由导航网格组成。它们共同定义了 3D 空间中的可达区域。\n" +"[b]注意:[/b]大多数 [NavigationServer3D] 的更改都是在下一个物理帧进行的,不会" +"立即生效。包括所有对地图、区块、代理的更改,无论是通过场景树中导航相关的节点作" +"出的更改,还是通过脚本作出的更改。\n" +"两个区块必须共享一条相似的边才能相连。如果一条边的两个顶点与另一条边上相应顶点" +"的距离都小于 [code]edge_connection_margin[/code],那么就会认为这两条边是相连" +"的。\n" +"可以使用 [method NavigationServer3D.region_set_navigation_layers] 为区块分配导" +"航层,使用 [method NavigationServer3D.map_get_path] 请求路径时会对导航层进行检" +"查。可用于允许或禁止某些对象进入特定的区域。\n" +"使用碰撞躲避系统就需要使用代理。你可以为代理设置目标速度,然后服务器就会发出回" +"调,提供修改后的速度。\n" +"[b]注意:[/b]碰撞躲避系统并不考虑区块。直接使用修改后的速度可能会将代理移动到" +"可达区域之外。这是碰撞躲避系统的缺陷,更复杂的场合可能需要使用物理引擎。\n" +"服务器会对所有调用进行跟踪,并在同步阶段执行。这意味着你可以放心地从任何线程请" +"求对地图作出任何修改。" + +msgid "" +"Returns [code]true[/code] if the provided [param agent] has avoidance enabled." +msgstr "如果指定代理 [param agent] 启用了避障,则返回 [code]true[/code]。" + +msgid "" +"Returns [code]true[/code] if the provided [param agent] uses avoidance in 3D " +"space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z)." +msgstr "" +"如果指定代理 [param agent] 使用 3D 空间 Vector3(x,y,z) 的避障而不是水平 2D " +"Vector2(x,y) / Vector3(x,0.0,z) 避障,则返回 [code]true[/code]。" + +msgid "If [param enabled] the provided [param agent] calculates avoidance." +msgstr "如果 [param enabled],指定代理 [param agent] 会计算避障。" + +msgid "Updates the provided [param agent] [param height]." +msgstr "更新指定代理 [param agent] 的高度 [param height]。" + +msgid "" +"Sets if the agent uses the 2D avoidance or the 3D avoidance while avoidance " +"is enabled.\n" +"If [code]true[/code] the agent calculates avoidance velocities in 3D for the " +"xyz-axis, e.g. for games that take place in air, unterwater or space. The 3D " +"using agent only avoids other 3D avoidance using agent's. The 3D using agent " +"only reacts to radius based avoidance obstacles. The 3D using agent ignores " +"any vertices based obstacles. The 3D using agent only avoids other 3D using " +"agent's.\n" +"If [code]false[/code] the agent calculates avoidance velocities in 2D along " +"the xz-axis ignoring the y-axis. The 2D using agent only avoids other 2D " +"avoidance using agent's. The 2D using agent reacts to radius avoidance " +"obstacles. The 2D using agent reacts to vertices based avoidance obstacles. " +"The 2D using agent only avoids other 2D using agent's. 2D using agents will " +"ignore other 2D using agents or obstacles that are below their current " +"position or above their current position including the agents height in 2D " +"avoidance." +msgstr "" +"设置该代理在启用避障时使用 2D 避障还是 3D 避障。\n" +"如果为 [code]true[/code],则代理会为 XYZ 轴计算 3D 避障速度,例如在空中、水" +"中、太空中进行的游戏。使用 3D 的代理只会躲避其他使用 3D 避障的代理。使用 3D 的" +"代理只会响应基于半径的避障障碍物。使用 3D 的代理会忽略基于顶点的障碍物。使用 " +"3D 的代理只会躲避其他使用 3D 的代理。\n" +"如果为 [code]false[/code],则代理会沿 XZ 轴计算 2D 避障速度,忽略 Y 轴。使用 " +"2D 的代理只会躲避其他使用 2D 避障的代理。使用 2D 的代理会响应基于半径的避障障" +"碍物。使用 2D 的代理会响应基于顶点的避障障碍物。使用 2D 的代理只会躲避其他使" +"用 2D 的代理。在 2D 避障时,使用 2D 的代理会忽略它们位于当前位置之下或者位于当" +"前位置与代理高度之和之上的其他使用 2D 的代理和障碍物。" + +msgid "" +"Sets [param velocity] as the new wanted velocity for the specified [param " +"agent]. The avoidance simulation will try to fulfill this velocity if " +"possible but will modify it to avoid collision with other agent's and " +"obstacles. When an agent is teleported to a new position use [method " +"agent_set_velocity_forced] as well to reset the internal simulation velocity." +msgstr "" +"将 [param velocity] 设置为指定代理 [param agent] 的新的需求速度。避障仿真会尽" +"可能尝试满足这个速度,但为了躲避与其他代理和障碍物的碰撞也会对它进行修改。将代" +"理传送至新的位置时,请使用 [method agent_set_velocity_forced] 重置内部仿真速" +"度。" + +msgid "" +"Replaces the internal velocity in the collision avoidance simulation with " +"[param velocity] for the specified [param agent]. When an agent is teleported " +"to a new position this function should be used in the same frame. If called " +"frequently this function can get agents stuck." +msgstr "" +"将指定代理 [param agent] 的避障仿真内部速度替换为 [param velocity]。将代理传送" +"至新的位置时,应该在同一帧里使用这个函数。频繁调用这个函数可能让代理卡住。" + msgid "" "Returns information about the current state of the NavigationServer. See " "[enum ProcessInfo] for a list of available states." @@ -67017,6 +70372,16 @@ msgstr "" "设置该链接的导航层。这允许从路径请求中选择链接(当使用 [method " "NavigationServer3D.map_get_path] 时)。" +msgid "" +"Returns the map cell height used to rasterize the navigation mesh vertices on " +"the Y axis." +msgstr "返回在 Y 轴上栅格化导航网格顶点所使用的地图单元格高度。" + +msgid "" +"Returns the map cell size used to rasterize the navigation mesh vertices on " +"the XZ plane." +msgstr "返回在 XZ 平面上栅格化导航网格顶点所使用的地图单元格大小。" + msgid "" "Returns the normal for the point returned by [method map_get_closest_point]." msgstr "返回 [method map_get_closest_point] 所返回的点的法线。" @@ -67034,9 +70399,60 @@ msgstr "" msgid "Returns the map's up direction." msgstr "返回地图的上方向。" +msgid "" +"Returns true if the navigation [param map] allows navigation regions to use " +"edge connections to connect with other navigation regions within proximity of " +"the navigation map edge connection margin." +msgstr "" +"如果导航地图 [param map] 允许导航区块使用边缘连接与位于导航地图边缘连接边距范" +"围内的其他导航区块相连接,则返回 true。" + +msgid "" +"Sets the map cell height used to rasterize the navigation mesh vertices on " +"the Y axis. Must match with the cell height of the used navigation meshes." +msgstr "" +"设置在 Y 轴上栅格化导航网格顶点所使用的地图单元格高度。必须与所使用的导航网格" +"的单元格高度相匹配。" + +msgid "" +"Sets the map cell size used to rasterize the navigation mesh vertices on the " +"XZ plane. Must match with the cell size of the used navigation meshes." +msgstr "" +"设置在 XZ 平面上栅格化导航网格顶点所使用的地图单元格大小。必须与所使用的导航网" +"格的单元格大小相匹配。" + msgid "Sets the map up direction." msgstr "设置地图的上方向。" +msgid "Creates a new obstacle." +msgstr "新建障碍物。" + +msgid "" +"Returns [code]true[/code] if the provided [param obstacle] uses avoidance in " +"3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0," +"z)." +msgstr "" +"如果提供的 [param obstacle] 使用 3D 空间的 Vector3(x,y,z),不使用水平 2D " +"Vector2(x,y) / Vector3(x,0.0,z),则返回 [code]true[/code]。" + +msgid "" +"Sets the [param height] for the [param obstacle]. In 3D agents will ignore " +"obstacles that are above or below them while using 2D avoidance." +msgstr "" +"设置 [param obstacle] 的高度 [param height]。3D 代理会忽略位于其上方和下方的障" +"碍物,使用 2D 避障。" + +msgid "Assigns the [param obstacle] to a navigation map." +msgstr "将 [param obstacle] 分配给导航地图。" + +msgid "Updates the [param position] in world space for the [param obstacle]." +msgstr "为 [param obstacle] 更新世界空间中的位置 [param position]。" + +msgid "" +"Sets if the [param obstacle] uses the 2D avoidance or the 3D avoidance while " +"avoidance is enabled." +msgstr "设置 [param obstacle] 在启用避障时使用 2D 避障还是 3D 避障。" + msgid "" "Queries a path in a given navigation map. Start and target position and other " "parameters are defined through [NavigationPathQueryParameters3D]. Updates the " @@ -67054,6 +70470,14 @@ msgstr "" "使用从 [param root_node] 开始收集的烘焙源几何体,来烘焙 [param " "navigation_mesh]。" +msgid "" +"Returns true if the navigation [param region] is set to use edge connections " +"to connect with other navigation regions within proximity of the navigation " +"map edge connection margin." +msgstr "" +"如果导航区块 [param region] 被设置为使用边缘连接与位于导航地图边缘连接边距范围" +"内的其他导航区块相连接,则返回 true。" + msgid "" "Set the region's navigation layers. This allows selecting regions from a path " "request (when using [method NavigationServer3D.map_get_path])." @@ -67067,6 +70491,11 @@ msgstr "设置该地图的导航网格。" msgid "Control activation of this server." msgstr "控制这个服务器是否激活。" +msgid "" +"Emitted when avoidance debug settings are changed. Only available in debug " +"builds." +msgstr "当避障调试设置更改时发出。仅在调试版本中可用。" + msgid "Constant to get the number of active navigation maps." msgstr "常量,用于获取活动导航地图的数量。" @@ -67102,6 +70531,21 @@ msgid "" msgstr "" "常量,用于获取无法合并但仍可通过边接近或链接连接的导航网格多边形的边的数量。" +msgid "" +"A control that displays a texture by keeping its corners intact, but tiling " +"its edges and center." +msgstr "显示纹理的控件,会保持角落不变,但平铺边缘和中心。" + +msgid "" +"Also known as 9-slice panels, [NinePatchRect] produces clean panels of any " +"size based on a small texture. To do so, it splits the texture in a 3×3 grid. " +"When you scale the node, it tiles the texture's edges horizontally or " +"vertically, tiles the center on both axes, and leaves the corners unchanged." +msgstr "" +"也叫 9 片式面板,[NinePatchRect] 能够根据较小的纹理,生成任何大小的干净面板。" +"为了做到这一点,它将纹理分割成 3×3 的网格。当你缩放节点时,它会在水平或垂直方" +"向上平铺纹理的侧边,在两个轴上平铺中心,但不会缩放或平铺角落。" + msgid "Returns the size of the margin on the specified [enum Side]." msgstr "返回指定 [enum Side] 的边距大小。" @@ -67445,7 +70889,7 @@ msgstr "" "[method set_process] 来开关。\n" "对应于 [method Object._notification] 中的 [constant NOTIFICATION_PROCESS] 通" "知。\n" -"[b]注意:[/b] 这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它不" +"[b]注意:[/b]这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它不" "是“孤儿”)。" msgid "" @@ -67470,7 +70914,7 @@ msgstr "" "请参阅用于变量的 [code]@onready[/code] 注解。\n" "通常用于初始化。对于更早的初始化,可以使用 [method Object._init]。另见 " "[method _enter_tree]。\n" -"[b]注意:[/b] 对于每个节点可能仅调用一次 [method _ready]。从场景树中移除一个节" +"[b]注意:[/b]对于每个节点可能仅调用一次 [method _ready]。从场景树中移除一个节" "点后,并再次添加该节点时,将不会第二次调用 [code]_ready[/code]。这时可以通过使" "用 [method request_ready],它可以在再次添加节点之前的任何地方被调用。" @@ -67494,7 +70938,7 @@ msgstr "" "要消耗输入事件,并阻止它进一步传播到其他节点,可以调用 [method Viewport." "set_input_as_handled]。\n" "此方法可用于处理快捷键。\n" -"[b]注意:[/b] 仅当该节点存在于场景树中(即它不是一个孤儿节点)时,此方法才会被" +"[b]注意:[/b]仅当该节点存在于场景树中(即它不是一个孤儿节点)时,此方法才会被" "调用。" msgid "" @@ -67691,6 +71135,28 @@ msgstr "" "[b]注意:[/b]出于性能原因,[i]不[/i]保证节点组的顺序。不应依赖节点组的顺序,因" "为它可能因项目运行而异。" +msgid "" +"This function is similar to [method Object.call_deferred] except that the " +"call will take place when the node thread group is processed. If the node " +"thread group processes in sub-threads, then the call will be done on that " +"thread, right before [constant NOTIFICATION_PROCESS] or [constant " +"NOTIFICATION_PHYSICS_PROCESS], the [method _process] or [method " +"_physics_process] or their internal versions are called." +msgstr "" +"这个函数类似于 [method Object.call_deferred],但是会在处理节点线程组时进行调" +"用。如果节点线程组在子线程中处理,那么调用就会在该线程中进行,时机为 " +"[constant NOTIFICATION_PROCESS] 和 [constant NOTIFICATION_PHYSICS_PROCESS]、" +"[method _process] 和 [method _physics_process],或者对应的内部版本之前。" + +msgid "" +"This function ensures that the calling of this function will succeed, no " +"matter whether it's being done from a thread or not. If called from a thread " +"that is not allowed to call the function, the call will become deferred. " +"Otherwise, the call will go through directly." +msgstr "" +"这个函数能够确保调用成功,无论是否从线程中调用。如果是从不允许调用该函数的线程" +"中调用的,那么调用就会变成延迟调用。否则就会直接调用。" + msgid "" "Returns [code]true[/code] if the node can process while the scene tree is " "paused (see [member process_mode]). Always returns [code]true[/code] if the " @@ -68096,8 +71562,8 @@ msgid "" "Similar to [method get_node], but does not log an error if [param path] does " "not point to a valid [Node]." msgstr "" -"类似于 [method get_node],但在 [code]path[/code] 没有指向有效的 [Node] 时不会" -"记录错误。" +"类似于 [method get_node],但在 [param path] 没有指向有效的 [Node] 时不会记录错" +"误。" msgid "" "Returns the parent node of the current node, or [code]null[/code] if the node " @@ -68546,6 +72012,28 @@ msgstr "" "设置 [param node] 相对于这个节点的可编辑子节点状态。这个方法仅适用于编辑器工" "具。" +msgid "" +"Sets the node's multiplayer authority to the peer with the given peer ID. The " +"multiplayer authority is the peer that has authority over the node on the " +"network. Useful in conjunction with [method rpc_config] and the " +"[MultiplayerAPI]. Inherited from the parent node by default, which ultimately " +"defaults to peer ID 1 (the server). If [param recursive], the given peer is " +"recursively set as the authority for all children of this node.\n" +"[b]Warning:[/b] This does [b]not[/b] automatically replicate the new " +"authority to other peers. It is developer's responsibility to do so. You can " +"propagate the information about the new authority using [member " +"MultiplayerSpawner.spawn_function], an RPC, or using a " +"[MultiplayerSynchronizer]." +msgstr "" +"将该节点的多人游戏控制方设置为具有给定对等体 ID 的对等体。多人游戏控制方是对网" +"络上的节点具有控制权限的对等体。可以与 [method rpc_config] 和 " +"[MultiplayerAPI] 结合使用。默认从父节点继承,最终默认为对等体 ID 1(服务器)。" +"如果 [param recursive],则给定的对等体会被递归设置为该节点所有子节点的控制" +"方。\n" +"[b]警告:[/b]这样做[b]不会[/b]自动将新的控制方复制给其他对等体。开发者需要自己" +"负责。你可以使用 [member MultiplayerSpawner.spawn_function]、RPC、" +"[MultiplayerSynchronizer] 等方法将这个信息传播出去。" + msgid "" "Enables or disables physics (i.e. fixed framerate) processing. When a node is " "being processed, it will receive a [constant NOTIFICATION_PHYSICS_PROCESS] at " @@ -68647,6 +72135,9 @@ msgid "" "Sets whether this is an instance load placeholder. See [InstancePlaceholder]." msgstr "设置这是否是实例加载占位符。见 [InstancePlaceholder]。" +msgid "Similar to [method call_thread_safe], but for setting properties." +msgstr "类似于 [method call_thread_safe],但用于设置属性。" + msgid "" "Updates the warning displayed for this node in the Scene Dock.\n" "Use [method _get_configuration_warnings] to setup the warning message to " @@ -68683,6 +72174,33 @@ msgstr "" "add_child] 时保留该字符用于唯一名称。手动设置名称时,将删除任何 [code]@[/" "code]。" +msgid "" +"The node owner. A node can have any ancestor node as owner (i.e. a parent, " +"grandparent, etc. node ascending in the tree). This implies that [method " +"add_child] should be called before setting the owner, so that this " +"relationship of parenting exists. When saving a node (using [PackedScene]), " +"all the nodes it owns will be saved with it. This allows for the creation of " +"complex scene trees, with instancing and subinstancing.\n" +"[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you must " +"set [member owner] in addition to calling [method add_child]. This is " +"typically relevant for [url=$DOCS_URL/tutorials/plugins/" +"running_code_in_the_editor.html]tool scripts[/url] and [url=$DOCS_URL/" +"tutorials/plugins/editor/index.html]editor plugins[/url]. If a new node is " +"added to the tree without setting its owner as an ancestor in that tree, it " +"will be visible in the 2D/3D view, but not in the scene tree (and not " +"persisted when packing or saving)." +msgstr "" +"该节点的所有者。节点的所有者可以是任何祖先节点(即父节点、祖父节点等沿场景树向" +"上的节点)。也就是说,应该在设置所有者之前调用 [method add_child],这样才能存" +"在父子关系。(通过 [PackedScene])保存节点时,它拥有的所有节点也会随之保存。这" +"样就可以创建复杂的场景树,能够进行实例化和子实例化。\n" +"[b]注意:[/b]如果想要将子节点持久化进 [PackedScene],除了调用 [method " +"add_child] 之外还必须设置 [member owner]。通常在[url=$DOCS_URL/tutorials/" +"plugins/running_code_in_the_editor.html]工具脚本[/url]和[url=$DOCS_URL/" +"tutorials/plugins/editor/index.html]编辑器插件[/url]中会用到。如果将新节点添加" +"到了场景树中但没有将场景树中的祖先设置为所有者,那么这个节点在 2D/3D 视图中可" +"见,但在场景树中不可见(也不会在打包或保存时进行持久化)。" + msgid "" "Can be used to pause or unpause the node, or make the node paused based on " "the [SceneTree], or make it inherit the process mode from its parent " @@ -68710,6 +72228,50 @@ msgstr "" "NOTIFICATION_PHYSICS_PROCESS] 及其内部对应物)的执行顺序中的优先级。进程优先级" "值[i]较低[/i]的节点将首先执行其处理回调。" +msgid "" +"Set the process thread group for this node (basically, whether it receives " +"[constant NOTIFICATION_PROCESS], [constant NOTIFICATION_PHYSICS_PROCESS], " +"[method _process] or [method _physics_process] (and the internal versions) on " +"the main thread or in a sub-thread.\n" +"By default, the thread group is [constant PROCESS_THREAD_GROUP_INHERIT], " +"which means that this node belongs to the same thread group as the parent " +"node. The thread groups means that nodes in a specific thread group will " +"process together, separate to other thread groups (depending on [member " +"process_thread_group_order]). If the value is set is [constant " +"PROCESS_THREAD_GROUP_SUB_THREAD], this thread group will occur on a sub " +"thread (not the main thread), otherwise if set to [constant " +"PROCESS_THREAD_GROUP_MAIN_THREAD] it will process on the main thread. If " +"there is not a parent or grandparent node set to something other than " +"inherit, the node will belong to the [i]default thread group[/i]. This " +"default group will process on the main thread and its group order is 0.\n" +"During processing in a sub-thread, accessing most functions in nodes outside " +"the thread group is forbidden (and it will result in an error in debug mode). " +"Use [method Object.call_deferred], [method call_thread_safe], [method " +"call_deferred_thread_group] and the likes in order to communicate from the " +"thread groups to the main thread (or to other thread groups).\n" +"To better understand process thread groups, the idea is that any node set to " +"any other value than [constant PROCESS_THREAD_GROUP_INHERIT] will include any " +"children (and grandchildren) nodes set to inherit into its process thread " +"group. this means that the processing of all the nodes in the group will " +"happen together, at the same time as the node including them." +msgstr "" +"设置这个节点的处理线程组(基本上就是在主线程还是子线程中接收 [constant " +"NOTIFICATION_PROCESS]、[constant NOTIFICATION_PHYSICS_PROCESS]、[method " +"_process]、[method _physics_process] 以及这些回调的内部版本)。\n" +"默认情况下线程组为 [constant PROCESS_THREAD_GROUP_INHERIT],表示这个节点属于和" +"父节点一样的线程组。同一线程组中的节点会一起处理,独立于其他线程组(由 " +"[member process_thread_group_order] 决定)。如果设为 [constant " +"PROCESS_THREAD_GROUP_SUB_THREAD],则该线程组会在子线程(非主线程)中执行,否则" +"设为 [constant PROCESS_THREAD_GROUP_MAIN_THREAD] 就会在主线程中处理。如果父节" +"点和先祖节点都没有设置为非继承,则该节点属于[i]默认线程组[/i]。默认分组在主线" +"程中处理,分组顺序为 0。\n" +"在子线程中处理时,线程组之外的大多数函数都禁止访问(调试模式下会报错)。请使" +"用 [method Object.call_deferred]、[method call_thread_safe]、[method " +"call_deferred_thread_group] 等方法与主线程(或其他线程组)通信。\n" +"线程组更好的理解方式是,非 [constant PROCESS_THREAD_GROUP_INHERIT] 的节点都会" +"将设为继承的子节点(以及后续子孙节点)纳入它的处理线程组。这样该分组中的节点就" +"会一起处理,包括包含它们的节点。" + msgid "" "Change the process thread group order. Groups with a lesser order will " "process before groups with a greater order. This is useful when a large " @@ -68787,6 +72349,17 @@ msgstr "当该节点就绪时发出。在 [method _ready] 回调之后发出, msgid "Emitted when the node is renamed." msgstr "当该节点被重命名时触发。" +msgid "" +"Emitted when this node is being replaced by the [param node], see [method " +"replace_by].\n" +"This signal is emitted [i]after[/i] [param node] has been added as a child of " +"the original parent node, but [i]before[/i] all original child nodes have " +"been reparented to [param node]." +msgstr "" +"当该节点被 [param node] 替换时触发,见 [method replace_by]。\n" +"这个信号的触发时机在 [param node] 被添加为原父节点的子节点[i]之后[/i],但是在" +"所有原子节点重设父节点为 [param node] [i]之前[/i]。" + msgid "" "Emitted when the node enters the tree.\n" "This signal is emitted [i]after[/i] the related [constant " @@ -68893,6 +72466,12 @@ msgstr "" "当该节点或其祖级的名称被更改时收到的通知。当节点从场景树中移除,稍后被添加到另" "一个父节点时,[i]不会[/i]收到此通知。" +msgid "" +"Notification received when the list of children is changed. This happens when " +"child nodes are added, moved or removed." +msgstr "" +"子节点列表发生更改时收到的通知。子节点发生添加、移动、删除时列表会发生更改。" + msgid "" "Notification received every frame when the internal process flag is set (see " "[method set_process_internal])." @@ -69128,15 +72707,6 @@ msgstr "所有 2D 演示" msgid "Multiplies the current scale by the [param ratio] vector." msgstr "将当前缩放乘以比例向量 [param ratio]。" -msgid "" -"Returns the angle between the node and the [param point] in radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"node2d_get_angle_to.png]Illustration of the returned angle.[/url]" -msgstr "" -"返回该节点和 [param point] 之间的夹角,单位为弧度。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"node2d_get_angle_to.png]返回夹角的示意图。[/url]" - msgid "Returns the [Transform2D] relative to this node's parent." msgstr "返回相对于此节点的父节点的 [Transform2D]。" @@ -69222,7 +72792,7 @@ msgid "" "to use degrees in a script, use [member rotation_degrees]." msgstr "" "以弧度为单位的旋转,相对于该节点的父节点。\n" -"[b]注意:[/b] 这个属性在检查器中是以度数编辑的。如果你想在脚本中使用度数,请使" +"[b]注意:[/b]这个属性在检查器中是以度数编辑的。如果你想在脚本中使用度数,请使" "用 [member rotation_degrees]。" msgid "" @@ -69719,7 +73289,7 @@ msgstr "" "径中其他命名节点的一个子节点。\n" "通常只需将一个字符串传递给 [method Node.get_node],它将会被自动转换,但可能偶" "尔想要使用 [NodePath] 或文字语法 [code]^\"path\"[/code] 提前解析路径。导出 " -"[NodePath] 变量会在编辑器的属性面板中,为您提供一个节点选择小部件,这通常很有" +"[NodePath] 变量会在编辑器的属性面板中,为你提供一个节点选择小部件,这通常很有" "用。\n" "[NodePath] 由斜线分隔的节点名称列表(如文件系统路径)和可选的冒号分隔的“子名" "称”列表组成,这些“子名称”可以是资源或属性。\n" @@ -69734,8 +73304,8 @@ msgstr "" "^\"../..\" # 祖父节点。\n" "# 前导斜杠意味着它是来自 SceneTree 的绝对路径。\n" "^\"/root\" # 等同于 get_tree().get_root()。\n" -"^\"/root/Main\" # 如果您的主场景的根节点被命名为“Main”。\n" -"^\"/root/MyAutoload\" # 如果您有一个自动加载的节点或场景。\n" +"^\"/root/Main\" # 如果你的主场景的根节点被命名为“Main”。\n" +"^\"/root/MyAutoload\" # 如果你有一个自动加载的节点或场景。\n" "[/codeblock]\n" "另见 [StringName],它是通用字符串的类似概念。\n" "[b]注意:[/b]在编辑器中,[NodePath] 属性在场景树中移动、重命名或删除节点时会自" @@ -70016,7 +73586,7 @@ msgstr "" "为不提供无缝噪声的库提供一个默认的 get_seamless_noise() 实现。该函数从 " "get_image() 请求更大的图像,反转该图像的象限,然后使用额外宽度的条带在接缝处混" "合。\n" -"继承的噪声类可以选择性地重写该函数,以提供更优化的算法。" +"继承的噪声类可以选择性地覆盖该函数,以提供更优化的算法。" msgid "" "Returns an [Image] containing 2D noise values.\n" @@ -70121,6 +73691,19 @@ msgid "" "value." msgstr "[Gradient],用于将每个像素的亮度映射到一个颜色值。" +msgid "" +"Determines whether mipmaps are generated for this texture. Enabling this " +"results in less texture aliasing in the distance, at the cost of increasing " +"memory usage by roughly 33% and making the noise texture generation take " +"longer.\n" +"[b]Note:[/b] [member generate_mipmaps] requires mipmap filtering to be " +"enabled on the material using the [NoiseTexture2D] to have an effect." +msgstr "" +"决定是否为该纹理生成 mipmap。启用该属性可减少纹理锯齿,但会增加约 33% 的内存占" +"用,生成噪声纹理也可能需要更长的时间。\n" +"[b]注意:[/b]使用该 [NoiseTexture2D] 的材质需要启用 mipmap 过滤才能让 [member " +"generate_mipmaps] 生效。" + msgid "Height of the generated texture (in pixels)." msgstr "生成的纹理的高度(单位为像素)。" @@ -70401,7 +73984,7 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"重写该方法以自定义 [method get] 的行为。应该返回给定的 [param property] 的值," +"覆盖该方法以自定义 [method get] 的行为。应该返回给定的 [param property] 的值," "或者 [param property] 应该被正常处理时返回 [code]null[/code]。\n" "结合 [method _set] 和 [method _get_property_list],该方法允许定义自定义属性," "这对编辑器插件特别有用。请注意,属性必须存在于 [method get_property_list] 中," @@ -70535,7 +74118,7 @@ msgid "" "[b]Note:[/b] If the object's script is not [annotation @GDScript.@tool], this " "method will not be called in the editor." msgstr "" -"重写该方法以自定义引擎处理脚本属性的方式。\n" +"覆盖该方法以自定义引擎处理脚本属性的方式。\n" "应该返回一个属性列表,作为字典的 [Array]。该结果被添加到 [method " "get_property_list] 的数组中,并且应该以相同的方式进行格式化。每个 " "[Dictionary] 必须至少包含 [code]name[/code] 和 [code]type[/code] 条目。\n" @@ -70694,7 +74277,7 @@ msgid "" "[b]Note:[/b] This method must return consistently, regardless of the current " "value of the [param property]." msgstr "" -"重写该方法以自定义给定 [param property] 的还原行为。如果 [param property] 可以" +"覆盖该方法以自定义给定 [param property] 的还原行为。如果 [param property] 可以" "在检查器停靠面板中恢复,则应该返回 [code]true[/code]。使用 [method " "_property_get_revert] 来指定 [param property] 的默认值。\n" "[b]注意:[/b]无论 [param property] 的当前值如何,该方法都必须始终如一地返回。" @@ -70707,10 +74290,10 @@ msgid "" "[b]Note:[/b] [method _property_can_revert] must also be overridden for this " "method to be called." msgstr "" -"重写该方法以自定义给定 [param property] 的还原行为。应返回 [param property] 的" +"覆盖该方法以自定义给定 [param property] 的还原行为。应返回 [param property] 的" "默认值。如果默认值与 [param property] 的当前值不同,则检查器停靠面板中会显示一" "个还原图标。\n" -"[b]注意:[/b][method _property_can_revert] 也必须被重写,该方法才能被调用。" +"[b]注意:[/b][method _property_can_revert] 也必须被覆盖,该方法才能被调用。" msgid "" "Override this method to customize the behavior of [method set]. Should set " @@ -70760,7 +74343,7 @@ msgid "" "[/csharp]\n" "[/codeblocks]" msgstr "" -"重写该方法以自定义 [method set] 的行为。应将 [param property] 设置为 [param " +"覆盖该方法以自定义 [method set] 的行为。应将 [param property] 设置为 [param " "value] 并返回 [code]true[/code],如果 [param property] 正常处理则返回 " "[code]false[/code]。设置 [param property] 的[i]确切[/i]方式取决于该方法的实" "现。\n" @@ -70817,7 +74400,7 @@ msgid "" " var a = str(self) # a is \"Welcome to Godot 4!\"\n" "[/codeblock]" msgstr "" -"重写该方法以自定义 [method to_string] 的返回值,从而将对象表示为一个 " +"覆盖该方法以自定义 [method to_string] 的返回值,从而将对象表示为一个 " "[String]。\n" "[codeblock]\n" "func _to_string():\n" @@ -72269,6 +75852,37 @@ msgstr "" "为了提高性能并避免伪影,建议将动态对象、小对象和固定装置从烘焙过程中排除,方法" "是将它们移动到一个单独的可视层,并在 [member bake_mask] 中排除该层。" +msgid "" +"The simplification distance to use for simplifying the generated occluder " +"polygon (in 3D units). Higher values result in a less detailed occluder mesh, " +"which improves performance but reduces culling accuracy.\n" +"The occluder geometry is rendered on the CPU, so it is important to keep its " +"geometry as simple as possible. Since the buffer is rendered at a low " +"resolution, less detailed occluder meshes generally still work well. The " +"default value is fairly aggressive, so you may have to decrease it if you run " +"into false negatives (objects being occluded even though they are visible by " +"the camera). A value of [code]0.01[/code] will act conservatively, and will " +"keep geometry [i]perceptually[/i] unaffected in the occlusion culling buffer. " +"Depending on the scene, a value of [code]0.01[/code] may still simplify the " +"mesh noticeably compared to disabling simplification entirely.\n" +"Setting this to [code]0.0[/code] disables simplification entirely, but " +"vertices in the exact same position will still be merged. The mesh will also " +"be re-indexed to reduce both the number of vertices and indices.\n" +"[b]Note:[/b] This uses the [url=https://meshoptimizer.org/]meshoptimizer[/" +"url] library under the hood, similar to LOD generation." +msgstr "" +"用于简化生成的遮挡物多边形的简化距离(单位为 3D 单位)。更高的值会导致遮挡物网" +"格的细节更少,这会提高性能但会降低剔除精度。\n" +"遮挡物几何体是在 CPU 上渲染的,因此保持其几何体尽可能简单很重要。由于缓冲区以" +"低分辨率渲染,因此细节较少的遮挡网格通常仍能正常工作。默认值相当激进,因此如果" +"遇到误报(即使相机可见的对象也被遮挡),可能必须降低该属性。[code]0.01[/code] " +"的值将保守地起作用,并将保持几何体[i]感知[/i]在遮挡剔除缓冲区中不受影响。根据" +"场景的不同,与完全禁用简化相比,[code]0.01[/code] 的值仍能显著简化网格。\n" +"将该属性设置为 [code]0.0[/code] 将会完全禁用简化,但仍会合并位置完全相同的顶" +"点。网格也将被重新索引以减少顶点和索引的数量。\n" +"[b]注意:[/b]这在底层使用了 [url=https://meshoptimizer.org/]meshoptimizer[/" +"url] 库,类似于 LOD 生成。" + msgid "" "The occluder resource for this [OccluderInstance3D]. You can generate an " "occluder resource by selecting an [OccluderInstance3D] node then using the " @@ -73669,7 +77283,7 @@ msgstr "" "List_of_ISO_639-1_codes]语言代码[/url]作为字符串返回,该字符串应在所有平台上保" "持一致。这相当于提取 [method get_locale] 字符串的 [code]language[/code] 部" "分。\n" -"当您不需要有关国家/地区代码或变体的附加信息时,这可用于将完全指定的区域设置字" +"当你不需要有关国家/地区代码或变体的附加信息时,这可用于将完全指定的区域设置字" "符串缩小为“通用”语言代码。例如,对于使用 [code]fr_CA[/code] 语言环境的加拿大法" "语用户,这将返回 [code]fr[/code]。" @@ -73952,7 +77566,7 @@ msgid "" "application restarts." msgstr "" "返回当前线程的 ID。这可用于日志,以简化多线程应用程序的调试。\n" -"[b]注意:[/b] 线程 ID 不是确定的,也许会在应用程序重新启动时被重复使用。" +"[b]注意:[/b]线程 ID 不是确定的,也许会在应用程序重新启动时被重复使用。" msgid "" "Returns a string that is unique to the device.\n" @@ -74076,6 +77690,28 @@ msgstr "" "[b]注意:[/b]请仔细检查 [param variable] 的大小写。环境变量名称在除 Windows 之" "外的所有平台上都区分大小写。" +msgid "" +"Returns [code]true[/code] if the feature for the given feature tag is " +"supported in the currently running instance, depending on the platform, " +"build, etc. Can be used to check whether you're currently running a debug " +"build, on a certain platform or arch, etc. Refer to the [url=$DOCS_URL/" +"tutorials/export/feature_tags.html]Feature Tags[/url] documentation for more " +"details.\n" +"[b]Note:[/b] Tag names are case-sensitive.\n" +"[b]Note:[/b] On the web platform, one of the following additional tags is " +"defined to indicate host platform: [code]web_android[/code], [code]web_ios[/" +"code], [code]web_linuxbsd[/code], [code]web_macos[/code], or " +"[code]web_windows[/code]." +msgstr "" +"如果当前运行的实例支持给定功能标签的功能,则返回 [code]true[/code],具体取决于" +"平台、构建等。可用于检查当前是否正在运行调试构建,是否在某个平台或架构上,等" +"等。请参阅[url=$DOCS_URL/tutorials/export/feature_tags.html]《功能标签》[/url]" +"文档以了解更多详细信息。\n" +"[b]注意:[/b]标签名称区分大小写。\n" +"[b]注意:[/b]在 Web 平台上,会定义 [code]web_android[/code]、[code]web_ios[/" +"code]、[code]web_linuxbsd[/code]、[code]web_macos[/code]、[code]web_windows[/" +"code] 的其中之一,表示宿主平台。" + msgid "" "Returns [code]true[/code] if the Godot binary used to run the project is a " "[i]debug[/i] export template, or when running in the editor.\n" @@ -74216,6 +77852,16 @@ msgstr "" "目前,这个函数只被 [code]AudioDriverOpenSL[/code] 用来请求 Android 上 " "[code]RECORD_AUDIO[/code] 的权限。" +msgid "" +"With this function, you can request dangerous permissions since normal " +"permissions are automatically granted at install time in Android " +"applications.\n" +"[b]Note:[/b] This method is implemented only on Android." +msgstr "" +"你可以通过这个函数申请危险的权限,因为在 Android 应用程序中,正常的权限会在安" +"装时自动授予。\n" +"[b]注意:[/b]该方法仅在 Android 上实现。" + msgid "" "Sets the value of the environment variable [param variable] to [param value]. " "The environment variable will be set for the Godot process and any process " @@ -74308,6 +77954,29 @@ msgstr "" "[b]注意:[/b]这个方法在 Android、iOS、HTML5、Linux、macOS、以及 Windows 上实" "现。" +msgid "" +"Requests the OS to open the file manager, then navigate to the given [param " +"file_or_dir_path] and select the target file or folder.\n" +"If [param file_or_dir_path] is a valid directory path, and [param " +"open_folder] is [code]true[/code], the method will open the file manager and " +"enter the target folder without selecting anything.\n" +"Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] " +"or [code]user://[/code] path into a system path for use with this method.\n" +"[b]Note:[/b] Currently this method is only implemented on Windows and macOS. " +"On other platforms, it will fallback to [method shell_open] with a directory " +"path of [param file_or_dir_path] with prefix [code]file://[/code]." +msgstr "" +"请求操作系统打开文件管理器,然后导航至给定的文件或目录路径 [param " +"file_or_dir_path] 并选中目标文件或文件夹。\n" +"如果 [param file_or_dir_path] 为有效的目录路径,并且 [param open_folder] 为 " +"[code]true[/code],则该方法会打开文件管理器并进入目标文件夹,不会选中任何东" +"西。\n" +"请使用 [method ProjectSettings.globalize_path] 将 [code]res://[/code] 和 " +"[code]user://[/code] 路径转换为能够用于这个方法的文件系统路径。\n" +"[b]注意:[/b]目前该方法仅在 Windows 和 macOS 上实现。在其他平台上会回退至使用" +"前缀 [code]file://[/code] 的 [param file_or_dir_path] 目录路径调用 [method " +"shell_open]。" + msgid "" "Removes the environment [param variable] from the current environment, if it " "exists. The environment variable will be removed for the Godot process and " @@ -74531,6 +78200,30 @@ msgstr "" "返回新的 [PackedByteArray],其中的数据已解压。请将 [param buffer_size] 设置为" "数据解压后的大小。请将压缩模式设置为 [enum FileAccess.CompressionMode] 常量。" +msgid "" +"Returns a new [PackedByteArray] with the data decompressed. Set the " +"compression mode using one of [enum FileAccess.CompressionMode]'s constants. " +"[b]This method only accepts brotli, gzip, and deflate compression modes.[/b]\n" +"This method is potentially slower than [code]decompress[/code], as it may " +"have to re-allocate its output buffer multiple times while decompressing, " +"whereas [code]decompress[/code] knows it's output buffer size from the " +"beginning.\n" +"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible " +"for a small compressed payload to decompress to a potentially very large " +"output. To guard against this, you may provide a maximum size this function " +"is allowed to allocate in bytes via [param max_output_size]. Passing -1 will " +"allow for unbounded output. If any positive value is passed, and the " +"decompression exceeds that amount in bytes, then an error will be returned." +msgstr "" +"返回新的 [PackedByteArray],其中的数据已解压。请将压缩模式设置为 [enum " +"FileAccess.CompressionMode] 常量。[b]这个方法只接受 brotli、gzip 和 deflate 压" +"缩模式。[/b]\n" +"这个方法可能比 [code]decompress[/code] 慢,因为在解压时可能需要多次重新分配输" +"出缓冲区,而 [code]decompress[/code] 则在一开始就知道输出缓冲区的大小。\n" +"GZIP 的最大压缩率为 1032:1,这意味着较小的压缩后负载很有可能解压出非常巨大的输" +"出。为了防止这种情况,你可以通过 [param max_output_size] 提供允许这个函数分配" +"的最大字节数。传入 -1 则不限制输出。传入正数且解压超过该字节数时,会返回错误。" + msgid "Creates a copy of the array, and returns it." msgstr "创建该数组的副本,并将该副本返回。" @@ -75321,7 +79014,7 @@ msgstr "" "[b]注意:[/b]该类型存储的是 32 位有符号整数,也就是说它可以取区间 [code]" "[-2^31, 2^31 - 1][/code] 内的值,即 [code][-2147483648, 2147483647][/code]。超" "过这些界限将环绕往复。相比之下,[int] 使用带符号的 64 位整数,可以容纳更大的" -"值。如果您需要紧密存放 64 位整数,请参阅 [PackedInt64Array]。" +"值。如果你需要紧密存放 64 位整数,请参阅 [PackedInt64Array]。" msgid "Constructs an empty [PackedInt32Array]." msgstr "构造空的 [PackedInt32Array]。" @@ -75564,7 +79257,7 @@ msgstr "" "场景文件的简化接口。提供可以对场景资源本身进行的操作和检查。\n" "可以用来将某个节点保存到文件中。保存时,会将该节点和它所拥有的所有节点一起保存" "(见 [member Node.owner] 属性)。\n" -"[b]注意:[/b] 该节点不必自我拥有。\n" +"[b]注意:[/b]该节点不必自我拥有。\n" "[b]加载保存场景的示例:[/b]\n" "[codeblocks]\n" "[gdscript]\n" @@ -76270,7 +79963,7 @@ msgstr "" "包始终发送到连接的地址(不允许将来调用 [method set_dest_address])。该方法不会" "向远程对等体发送任何数据,要发送数据,请像往常一样使用 [method PacketPeer." "put_var] 或 [method PacketPeer.put_packet]。另请参阅 [UDPServer]。\n" -"[b]注意:[/b]连接到远程对等体并不能防止 IP 欺骗等恶意攻击。如果您觉得您的应用" +"[b]注意:[/b]连接到远程对等体并不能防止 IP 欺骗等恶意攻击。如果你觉得你的应用" "程序正在传输敏感信息,可以考虑使用 TLS 或 DTLS 等加密技术。" msgid "" @@ -76344,6 +80037,76 @@ msgstr "" "[b]注意:[/b]在向广播地址(例如:[code]255.255.255.255[/code])发送数据包之" "前,必须启用 [method set_broadcast_enabled]。" +msgid "" +"Waits for a packet to arrive on the bound address. See [method bind].\n" +"[b]Note:[/b] [method wait] can't be interrupted once it has been called. This " +"can be worked around by allowing the other party to send a specific \"death " +"pill\" packet like this:\n" +"[codeblocks]\n" +"[gdscript]\n" +"socket = PacketPeerUDP.new()\n" +"# Server\n" +"socket.set_dest_address(\"127.0.0.1\", 789)\n" +"socket.put_packet(\"Time to stop\".to_ascii_buffer())\n" +"\n" +"# Client\n" +"while socket.wait() == OK:\n" +" var data = socket.get_packet().get_string_from_ascii()\n" +" if data == \"Time to stop\":\n" +" return\n" +"[/gdscript]\n" +"[csharp]\n" +"var socket = new PacketPeerUDP();\n" +"// Server\n" +"socket.SetDestAddress(\"127.0.0.1\", 789);\n" +"socket.PutPacket(\"Time to stop\".ToAsciiBuffer());\n" +"\n" +"// Client\n" +"while (socket.Wait() == OK)\n" +"{\n" +" string data = socket.GetPacket().GetStringFromASCII();\n" +" if (data == \"Time to stop\")\n" +" {\n" +" return;\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"等待数据包到达绑定的地址。见 [method bind]。\n" +"[b]注意:[/b][method wait] 一旦被调用就无法中断。解决方法是让对方发送一个特定" +"的“毒药”数据包,如下所示:\n" +"[codeblocks]\n" +"[gdscript]\n" +"socket = PacketPeerUDP.new()\n" +"# 服务端\n" +"socket.set_dest_address(\"127.0.0.1\", 789)\n" +"socket.put_packet(\"Time to stop\".to_ascii_buffer())\n" +"\n" +"# 客户端\n" +"while socket.wait() == OK:\n" +" var data = socket.get_packet().get_string_from_ascii()\n" +" if data == \"Time to stop\":\n" +" return\n" +"[/gdscript]\n" +"[csharp]\n" +"var socket = new PacketPeerUDP();\n" +"// 服务端\n" +"socket.SetDestAddress(\"127.0.0.1\", 789);\n" +"socket.PutPacket(\"Time to stop\".ToAsciiBuffer());\n" +"\n" +"// 客户端\n" +"while (socket.Wait() == OK)\n" +"{\n" +" string data = socket.GetPacket().GetStringFromASCII();\n" +" if (data == \"Time to stop\")\n" +" {\n" +" return;\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "A GUI control that displays a [StyleBox]." msgstr "显示 [StyleBox] 的 GUI 控件。" @@ -76779,6 +80542,23 @@ msgid "" "Each particle's tangential acceleration will vary along this [CurveTexture]." msgstr "每个粒子的切向加速度将沿着这个 [CurveTexture] 变化。" +msgid "" +"If [code]true[/code], enables turbulence for the particle system. Turbulence " +"can be used to vary particle movement according to its position (based on a " +"3D noise pattern). In 3D, [GPUParticlesAttractorVectorField3D] with " +"[NoiseTexture3D] can be used as an alternative to turbulence that works in " +"world space and with multiple particle systems reacting in the same way.\n" +"[b]Note:[/b] Enabling turbulence has a high performance cost on the GPU. Only " +"enable turbulence on a few particle systems at once at most, and consider " +"disabling it when targeting mobile/web platforms." +msgstr "" +"如果为 [code]true[/code],则为粒子系统启用湍流。湍流可以(基于 3D 噪声图案)根" +"据粒子的位置来改变粒子的移动。在 3D 中,可以用 " +"[GPUParticlesAttractorVectorField3D] 和 [NoiseTexture3D] 作为世界空间湍流的平" +"替,能够让不同粒子系统作出相同的反应。\n" +"[b]注意:[/b]启用湍流对于 GPU 有较高的性能消耗。请最多只对少量粒子系统启用湍" +"流,以移动/Web 平台作为目标时请考虑禁用湍流。" + msgid "" "Maximum turbulence influence on each particle.\n" "The actual amount of turbulence influence on each particle is calculated as a " @@ -76808,6 +80588,30 @@ msgid "" "[CurveTexture] over its life time." msgstr "每个粒子的湍流量,将在其生命周期内沿这条 [CurveTexture] 受到影响。" +msgid "" +"Maximum displacement of each particle's spawn position by the turbulence.\n" +"The actual amount of displacement will be a factor of the underlying " +"turbulence multiplied by a random value between [member " +"turbulence_initial_displacement_min] and [member " +"turbulence_initial_displacement_max]." +msgstr "" +"湍流对每个粒子出生位置的最大位移。\n" +"实际位移量将是基础湍流乘以一个介于 [member " +"turbulence_initial_displacement_min] 和 [member " +"turbulence_initial_displacement_max] 之间的随机值的系数。" + +msgid "" +"Minimum displacement of each particle's spawn position by the turbulence.\n" +"The actual amount of displacement will be a factor of the underlying " +"turbulence multiplied by a random value between [member " +"turbulence_initial_displacement_min] and [member " +"turbulence_initial_displacement_max]." +msgstr "" +"湍流对每个粒子出生位置的最小位移。\n" +"实际位移量将是基础湍流乘以一个介于 [member " +"turbulence_initial_displacement_min] 和 [member " +"turbulence_initial_displacement_max] 之间的随机值的系数。" + msgid "" "This value controls the overall scale/frequency of the turbulence noise " "pattern.\n" @@ -76818,6 +80622,27 @@ msgstr "" "小的比例会产生更小的特征具有更多细节,而高的比例会产生具有更大特征的更平滑的噪" "声。" +msgid "" +"A scrolling velocity for the turbulence field. This sets a directional trend " +"for the pattern to move in over time.\n" +"The default value of [code]Vector3(0, 0, 0)[/code] turns off the scrolling." +msgstr "" +"湍流场的滚动速度。设置的是图案随时间移动的方向趋势。\n" +"默认值 [code]Vector3(0, 0, 0)[/code] 会将滚动关闭。" + +msgid "" +"The in-place rate of change of the turbulence field. This defines how quickly " +"the noise pattern varies over time.\n" +"A value of 0.0 will result in a fixed pattern." +msgstr "" +"湍流场的原地变化率。会决定噪声图案随时间变化的快慢。\n" +"值为 0.0 时得到的是固定的图案。" + +msgid "" +"The turbulence noise strength. Increasing this will result in a stronger, " +"more contrasting, flow pattern." +msgstr "湍流噪声强度。增加此值将导致更强烈、对比度更高的噪声图案。" + msgid "" "Use with [method set_param_min], [method set_param_max], and [method " "set_param_texture] to set initial velocity properties." @@ -77689,6 +81514,10 @@ msgstr "" msgid "The index of the [Bone2D] that this [PhysicalBone2D] should simulate." msgstr "该 [PhysicalBone2D] 节点所模拟的 [Bone2D] 节点的索引。" +msgid "" +"The [NodePath] to the [Bone2D] that this [PhysicalBone2D] should simulate." +msgstr "该 [PhysicalBone2D] 所模拟的 [Bone2D] 的 [NodePath]。" + msgid "" "If [code]true[/code], the [PhysicalBone2D] will keep the transform of the " "bone it is bound to when simulating physics." @@ -78849,6 +82678,29 @@ msgid "" msgstr "" "提供能够覆盖的虚方法,用于创建自定义的 [PhysicsDirectSpaceState3D] 实现。" +msgid "" +"This class extends [PhysicsDirectSpaceState3D] by providing additional " +"virtual methods that can be overridden. When these methods are overridden, " +"they will be called instead of the internal methods of the physics server.\n" +"Intended for use with GDExtension to create custom implementations of " +"[PhysicsDirectSpaceState3D]." +msgstr "" +"这个类扩展自 [PhysicsDirectSpaceState3D],额外提供了可覆盖的虚方法。调用时会使" +"用这些覆盖后的方法代替物理服务器中的内部方法。\n" +"旨在用于 GDExtension,用于创建 [PhysicsDirectSpaceState3D] 的自定义实现。" + +msgid "" +"Holds physics-related properties of a surface, namely its roughness and " +"bounciness." +msgstr "存放与表面的物理相关的属性,也就是粗糙度和反弹度。" + +msgid "" +"Holds physics-related properties of a surface, namely its roughness and " +"bounciness. This class is used to apply these properties to a physics body." +msgstr "" +"存放与表面的物理相关的属性,也就是粗糙度和反弹度。这个类用于将这些属性应用至物" +"理体。" + msgid "" "If [code]true[/code], subtracts the bounciness from the colliding object's " "bounciness instead of adding it." @@ -78876,6 +82728,14 @@ msgid "" "Provides parameters for [method PhysicsDirectSpaceState2D.intersect_point]." msgstr "为 [method PhysicsDirectSpaceState2D.intersect_point] 提供参数。" +msgid "" +"By changing various properties of this object, such as the point position, " +"you can configure the parameters for [method PhysicsDirectSpaceState2D." +"intersect_point]." +msgstr "" +"通过修改这个对象的点位置等属性,你可以为 [method PhysicsDirectSpaceState2D." +"intersect_point] 配置参数。" + msgid "" "If different from [code]0[/code], restricts the query to a specific canvas " "layer specified by its instance ID. See [method Object.get_instance_id].\n" @@ -78916,6 +82776,14 @@ msgid "" "Provides parameters for [method PhysicsDirectSpaceState3D.intersect_point]." msgstr "为 [method PhysicsDirectSpaceState3D.intersect_point] 提供参数。" +msgid "" +"By changing various properties of this object, such as the point position, " +"you can configure the parameters for [method PhysicsDirectSpaceState3D." +"intersect_point]." +msgstr "" +"通过修改这个对象的点位置等属性,你可以为 [method PhysicsDirectSpaceState3D." +"intersect_point] 配置参数。" + msgid "If [code]true[/code], the query will take [Area3D]s into account." msgstr "如果为 [code]true[/code],则查询将考虑 [Area3D]。" @@ -78934,6 +82802,14 @@ msgid "" "Provides parameters for [method PhysicsDirectSpaceState2D.intersect_ray]." msgstr "为 [method PhysicsDirectSpaceState2D.intersect_ray] 提供参数。" +msgid "" +"By changing various properties of this object, such as the ray position, you " +"can configure the parameters for [method PhysicsDirectSpaceState2D." +"intersect_ray]." +msgstr "" +"通过修改这个对象的射线位置等属性,你可以为 [method PhysicsDirectSpaceState2D." +"intersect_ray] 配置参数。" + msgid "" "Returns a new, pre-configured [PhysicsRayQueryParameters2D] object. Use it to " "quickly create query parameters using the most common options.\n" @@ -78969,6 +82845,14 @@ msgid "" "Provides parameters for [method PhysicsDirectSpaceState3D.intersect_ray]." msgstr "为 [method PhysicsDirectSpaceState3D.intersect_ray] 提供参数。" +msgid "" +"By changing various properties of this object, such as the ray position, you " +"can configure the parameters for [method PhysicsDirectSpaceState3D." +"intersect_ray]." +msgstr "" +"通过修改这个对象的射线位置等属性,你可以为 [method PhysicsDirectSpaceState3D." +"intersect_ray] 配置参数。" + msgid "" "Returns a new, pre-configured [PhysicsRayQueryParameters3D] object. Use it to " "quickly create query parameters using the most common options.\n" @@ -79001,6 +82885,69 @@ msgstr "" "如果为 [code]true[/code],查询会在从形状内部开始时检测到命中。在此情况下,碰撞" "法线将为 [code]Vector3(0, 0, 0)[/code]。不会影响凹多边形形状和高度图形状。" +msgid "A server interface for low-level 2D physics access." +msgstr "用于访问低阶 2D 物理的服务器接口。" + +msgid "" +"PhysicsServer2D is the server responsible for all 2D physics. It can directly " +"create and manipulate all physics objects:\n" +"- A [i]space[/i] is a self-contained world for a physics simulation. It " +"contains bodies, areas, and joints. Its state can be queried for collision " +"and intersection information, and several parameters of the simulation can be " +"modified.\n" +"- A [i]shape[/i] is a geometric shape such as a circle, a rectangle, a " +"capsule, or a polygon. It can be used for collision detection by adding it to " +"a body/area, possibly with an extra transformation relative to the body/" +"area's origin. Bodies/areas can have multiple (transformed) shapes added to " +"them, and a single shape can be added to bodies/areas multiple times with " +"different local transformations.\n" +"- A [i]body[/i] is a physical object which can be in static, kinematic, or " +"rigid mode. Its state (such as position and velocity) can be queried and " +"updated. A force integration callback can be set to customize the body's " +"physics.\n" +"- An [i]area[/i] is a region in space which can be used to detect bodies and " +"areas entering and exiting it. A body monitoring callback can be set to " +"report entering/exiting body shapes, and similarly an area monitoring " +"callback can be set. Gravity and damping can be overridden within the area by " +"setting area parameters.\n" +"- A [i]joint[/i] is a constraint, either between two bodies or on one body " +"relative to a point. Parameters such as the joint bias and the rest length of " +"a spring joint can be adjusted.\n" +"Physics objects in [PhysicsServer2D] may be created and manipulated " +"independently; they do not have to be tied to nodes in the scene tree.\n" +"[b]Note:[/b] All the 2D physics nodes use the physics server internally. " +"Adding a physics node to the scene tree will cause a corresponding physics " +"object to be created in the physics server. A rigid body node registers a " +"callback that updates the node's transform with the transform of the " +"respective body object in the physics server (every physics update). An area " +"node registers a callback to inform the area node about overlaps with the " +"respective area object in the physics server. The raycast node queries the " +"direct state of the relevant space in the physics server." +msgstr "" +"PhysicsServer2D 是负责所有 2D 物理的服务器。它可以直接创建和操作所有物理对" +"象:\n" +"- [i]Space(空间)[/i]是用于物理仿真的自包含世界。它包含实体、区域和关节。可以" +"对其状态进行查询,获取碰撞和相交信息,并且可以修改部分仿真参数。\n" +"- [i]Shape(形状)[/i]是圆形、矩形、胶囊形、多边形等几何形状。加入到实体/区域" +"中就可以用来进行碰撞检测,还可以带有相对于实体/区域原点的额外变换。实体/区域中" +"可以添加多个(变换后的)形状,同一个形状可以使用不同的局部变换添加到实体/区域" +"中。\n" +"- [i]Body(实体)[/i]是物理对象,可以处于静态、运动学或刚性模式。可以对其状态" +"进行查询和更新(例如位置、速度等)。可以设置力的集成回调,自定义实体的物理特" +"性。\n" +"- [i]Area(区域)[/i]是空间中的区块,可用于检测进入和离开它的实体和区域。可以" +"设置实体的监视回调,报告进入/离开的实体形状,同样可以设置区域的监视回调。通过" +"设置区域参数,可以在区域内覆盖重力和阻尼。\n" +"- [i]Joint(关节)[/i]是两个实体之间或一个实体相对于某个点的约束。可以调整关节" +"偏置和弹簧关节的放松长度等参数。\n" +"[PhysicsServer2D] 中的物理对象可以独立创建和操作;不必将它们绑定到场景树中的节" +"点。\n" +"[b]注意:[/b]所有 2D 物理节点都在内部使用这个物理服务器。将物理节点添加到场景" +"树,就会导致在物理服务器中创建相应的物理对象。刚体节点会注册回调,该回调会(在" +"每次物理更新时)使用物理服务器中相应实体对象的变换更新该节点的变换。区域节点会" +"注册回调,用来通知区域节点与物理服务器中相应区域对象的重叠。射线投射节点会查询" +"物理服务器中相关空间的直接状态。" + msgid "" "Adds a shape to the area, with the given local transform. The shape (together " "with its [param transform] and [param disabled] properties) is added to an " @@ -79845,6 +83792,62 @@ msgstr "" msgid "Returns the shape's type (see [enum ShapeType])." msgstr "返回该形状的类型(见 [enum ShapeType])。" +msgid "" +"Sets the shape data that defines the configuration of the shape. The [param " +"data] to be passed depends on the shape's type (see [method " +"shape_get_type]):\n" +"- [constant SHAPE_WORLD_BOUNDARY]: an array of length two containing a " +"[Vector2] [code]normal[/code] direction and a [code]float[/code] distance " +"[code]d[/code],\n" +"- [constant SHAPE_SEPARATION_RAY]: a dictionary containing the key " +"[code]length[/code] with a [code]float[/code] value and the key " +"[code]slide_on_slope[/code] with a [code]bool[/code] value,\n" +"- [constant SHAPE_SEGMENT]: a [Rect2] [code]rect[/code] containing the first " +"point of the segment in [code]rect.position[/code] and the second point of " +"the segment in [code]rect.size[/code],\n" +"- [constant SHAPE_CIRCLE]: a [code]float[/code] [code]radius[/code],\n" +"- [constant SHAPE_RECTANGLE]: a [Vector2] [code]half_extents[/code],\n" +"- [constant SHAPE_CAPSULE]: an array of length two (or a [Vector2]) " +"containing a [code]float[/code] [code]height[/code] and a [code]float[/code] " +"[code]radius[/code],\n" +"- [constant SHAPE_CONVEX_POLYGON]: either a [PackedVector2Array] of points " +"defining a convex polygon in counterclockwise order (the clockwise outward " +"normal of each segment formed by consecutive points is calculated " +"internally), or a [PackedFloat32Array] of length divisible by four so that " +"every 4-tuple of [code]float[/code]s contains the coordinates of a point " +"followed by the coordinates of the clockwise outward normal vector to the " +"segment between the current point and the next point,\n" +"- [constant SHAPE_CONCAVE_POLYGON]: a [PackedVector2Array] of length " +"divisible by two (each pair of points forms one segment).\n" +"[b]Warning:[/b] In the case of [constant SHAPE_CONVEX_POLYGON], this method " +"does not check if the points supplied actually form a convex polygon (unlike " +"the [member CollisionPolygon2D.polygon] property)." +msgstr "" +"设置定义形状配置的形状数据。要传递的 [param data] 取决于形状的类型(参见 " +"[method shape_get_type]):\n" +"- [constant SHAPE_WORLD_BOUNDARY]:长度为 2 的数组,包含 [Vector2] 类型的 " +"[code]normal[/code] 方向和 [code]float[/code] 类型的距离 [code]d[/code],\n" +"- [constant SHAPE_SEPARATION_RAY]:字典,包含键 [code]length[/code] 和 " +"[code]float[/code] 值、以及键 [code]slide_on_slope[/code] 和 [code]bool[/" +"code] 值,\n" +"- [constant SHAPE_SEGMENT]:[Rect2] 类型的 [code]rect[/code],以 [code]rect." +"position[/code] 表示线段中的第一个点,并以 [code]rect.size[/code] 表示线段中的" +"第二个点,\n" +"- [constant SHAPE_CIRCLE]:[code]float[/code] 类型的 [code]radius[/code],\n" +"- [constant SHAPE_RECTANGLE]:[Vector2] 类型的 [code]half_extents[/code],\n" +"- [constant SHAPE_CAPSULE]:长度为 2 的数组(或一个 [Vector2]),包含一个 " +"[code]float[/code] 类型的 [code]height[/code] 和一个 [code]float[/code] 类型" +"的 [code]radius[/code],\n" +"- [constant SHAPE_CONVEX_POLYGON]:按逆时针顺序定义凸多边形的点的 " +"[PackedVector2Array](在内部使用由连续点形成的每个线段的顺时针向外法线计算);" +"或一个长度可被 4 整除的 [PackedFloat32Array],以便每个 4 元组的 [code]float[/" +"code] 包含一个点的坐标,后跟一个向量的坐标表示,该向量是当前点和下一个点之间的" +"线段的顺时针向外法向量,\n" +"- [constant SHAPE_CONCAVE_POLYGON]:长度可被 2 整除的 [PackedVector2Array](每" +"对点形成一个线段)。\n" +"[b]警告:[/b]在 [constant SHAPE_CONVEX_POLYGON] 的情况下,该方法不检查提供的点" +"是否能够形成凸多边形(与 [member CollisionPolygon2D.polygon] 属性不同)。" + msgid "" "Creates a 2D space in the physics server, and returns the [RID] that " "identifies it. A space contains bodies and areas, and controls the stepping " @@ -80412,9 +84415,37 @@ msgid "" "Constant to get the number of space regions where a collision could occur." msgstr "常量,用以获取可能发生碰撞的空间区域数。" +msgid "" +"Provides virtual methods that can be overridden to create custom " +"[PhysicsServer2D] implementations." +msgstr "提供覆盖后可以用来创建自定义 [PhysicsServer2D] 实现的虚方法。" + +msgid "" +"This class extends [PhysicsServer2D] by providing additional virtual methods " +"that can be overridden. When these methods are overridden, they will be " +"called instead of the internal methods of the physics server.\n" +"Intended for use with GDExtension to create custom implementations of " +"[PhysicsServer2D]." +msgstr "" +"这个类扩展自 [PhysicsServer2D],提供可额外的可覆盖虚方法。覆盖这些方法后,就不" +"会调用物理服务器内部方法,而是调用这些覆盖后的方法。\n" +"旨在用于 GDExtension,用于创建自定义 [PhysicsServer2D] 实现。" + msgid "A singleton for managing [PhysicsServer2D] implementations." msgstr "用于管理 [PhysicsServer2D] 实现的单例。" +msgid "" +"[PhysicsServer2DManager] is the API for registering [PhysicsServer2D] " +"implementations and for setting the default implementation.\n" +"[b]Note:[/b] It is not possible to switch physics servers at runtime. This " +"class is only used on startup at the server initialization level, by Godot " +"itself and possibly by GDExtensions." +msgstr "" +"[PhysicsServer2DManager] 是用于注册 [PhysicsServer2D] 实现、设置默认实现的 " +"API。\n" +"[b]注意:[/b]无法在运行时切换物理服务器。这个类只在启动时在服务器初始化级别使" +"用,可能由 Godot 本身使用,也可能由 GDExtension 使用。" + msgid "" "Register a [PhysicsServer2D] implementation by passing a [param name] and a " "[Callable] that returns a [PhysicsServer2D] object." @@ -80430,11 +84461,74 @@ msgstr "" "如果优先级 [param priority] 比当前默认实现的优先级高,则将由名称 [param name] " "标识的 [PhysicsServer2D] 实现设置为默认实现。" +msgid "A server interface for low-level 3D physics access." +msgstr "用于访问低阶 3D 物理的服务器接口。" + +msgid "" +"PhysicsServer2D is the server responsible for all 2D physics. It can directly " +"create and manipulate all physics objects:\n" +"- A [i]space[/i] is a self-contained world for a physics simulation. It " +"contains bodies, areas, and joints. Its state can be queried for collision " +"and intersection information, and several parameters of the simulation can be " +"modified.\n" +"- A [i]shape[/i] is a geometric shape such as a sphere, a box, a cylinder, or " +"a polygon. It can be used for collision detection by adding it to a body/" +"area, possibly with an extra transformation relative to the body/area's " +"origin. Bodies/areas can have multiple (transformed) shapes added to them, " +"and a single shape can be added to bodies/areas multiple times with different " +"local transformations.\n" +"- A [i]body[/i] is a physical object which can be in static, kinematic, or " +"rigid mode. Its state (such as position and velocity) can be queried and " +"updated. A force integration callback can be set to customize the body's " +"physics.\n" +"- An [i]area[/i] is a region in space which can be used to detect bodies and " +"areas entering and exiting it. A body monitoring callback can be set to " +"report entering/exiting body shapes, and similarly an area monitoring " +"callback can be set. Gravity and damping can be overridden within the area by " +"setting area parameters.\n" +"- A [i]joint[/i] is a constraint, either between two bodies or on one body " +"relative to a point. Parameters such as the joint bias and the rest length of " +"a spring joint can be adjusted.\n" +"Physics objects in [PhysicsServer3D] may be created and manipulated " +"independently; they do not have to be tied to nodes in the scene tree.\n" +"[b]Note:[/b] All the 3D physics nodes use the physics server internally. " +"Adding a physics node to the scene tree will cause a corresponding physics " +"object to be created in the physics server. A rigid body node registers a " +"callback that updates the node's transform with the transform of the " +"respective body object in the physics server (every physics update). An area " +"node registers a callback to inform the area node about overlaps with the " +"respective area object in the physics server. The raycast node queries the " +"direct state of the relevant space in the physics server." +msgstr "" +"PhysicsServer3D 是负责所有 3D 物理的服务器。它可以直接创建和操作所有物理对" +"象:\n" +"- [i]Space(空间)[/i]是用于物理仿真的自包含世界。它包含实体、区域和关节。可以" +"对其状态进行查询,获取碰撞和相交信息,并且可以修改部分仿真参数。\n" +"- [i]Shape(形状)[/i]是球形、盒形、圆柱形、多边形等几何形状。加入到实体/区域" +"中就可以用来进行碰撞检测,还可以带有相对于实体/区域原点的额外变换。实体/区域中" +"可以添加多个(变换后的)形状,同一个形状可以使用不同的局部变换添加到实体/区域" +"中。\n" +"- [i]Body(实体)[/i]是物理对象,可以处于静态、运动学或刚性模式。可以对其状态" +"进行查询和更新(例如位置、速度等)。可以设置力的集成回调,自定义实体的物理特" +"性。\n" +"- [i]Area(区域)[/i]是空间中的区块,可用于检测进入和离开它的实体和区域。可以" +"设置实体的监视回调,报告进入/离开的实体形状,同样可以设置区域的监视回调。通过" +"设置区域参数,可以在区域内覆盖重力和阻尼。\n" +"- [i]Joint(关节)[/i]是两个实体之间或一个实体相对于某个点的约束。可以调整关节" +"偏置和弹簧关节的放松长度等参数。\n" +"[PhysicsServer3D] 中的物理对象可以独立创建和操作;不必将它们绑定到场景树中的节" +"点。\n" +"[b]注意:[/b]所有 3D 物理节点都在内部使用这个物理服务器。将物理节点添加到场景" +"树,就会导致在物理服务器中创建相应的物理对象。刚体节点会注册回调,该回调会(在" +"每次物理更新时)使用物理服务器中相应实体对象的变换更新该节点的变换。区域节点会" +"注册回调,用来通知区域节点与物理服务器中相应区域对象的重叠。射线投射节点会查询" +"物理服务器中相关空间的直接状态。" + msgid "" "Adds a shape to the area, along with a transform matrix. Shapes are usually " "referenced by their index, so you should track which shape has a given index." msgstr "" -"向区域添加一个形状,以及一个变换矩阵。形状通常通过它们的索引来引用,因此您应该" +"向区域添加一个形状,以及一个变换矩阵。形状通常通过它们的索引来引用,因此你应该" "跟踪哪个形状具有给定的索引。" msgid "" @@ -80549,7 +84643,7 @@ msgid "" "Adds a shape to the body, along with a transform matrix. Shapes are usually " "referenced by their index, so you should track which shape has a given index." msgstr "" -"添加一个形状到物体,以及一个变换矩阵。形状通常通过它们的索引来引用,因此您应该" +"添加一个形状到物体,以及一个变换矩阵。形状通常通过它们的索引来引用,因此你应该" "跟踪哪个形状具有给定的索引。" msgid "" @@ -81004,8 +85098,8 @@ msgstr "一旦超过极限,应用于滑块轴上移动的系数。越低,运 msgid "" "The amount of restitution once the limits are surpassed. The lower, the more " -"velocityenergy gets lost." -msgstr "超过极限后的补偿。越低,动能损失越多。" +"velocity-energy gets lost." +msgstr "超出限制后的补偿。数值越低,损失的速度能量越多。" msgid "The amount of damping once the slider limits are surpassed." msgstr "一旦超过滑块的极限,阻尼的数量。" @@ -81326,9 +85420,37 @@ msgstr "" "常量,用于设置/获取接触和约束的求解器迭代次数。迭代次数越多,碰撞和约束就越准" "确。然而,更多的迭代需要更多的 CPU 能力,这会降低性能。" +msgid "" +"Provides virtual methods that can be overridden to create custom " +"[PhysicsServer3D] implementations." +msgstr "提供覆盖后可以用来创建自定义 [PhysicsServer3D] 实现的虚方法。" + +msgid "" +"This class extends [PhysicsServer3D] by providing additional virtual methods " +"that can be overridden. When these methods are overridden, they will be " +"called instead of the internal methods of the physics server.\n" +"Intended for use with GDExtension to create custom implementations of " +"[PhysicsServer3D]." +msgstr "" +"这个类扩展自 [PhysicsServer3D],提供可额外的可覆盖虚方法。覆盖这些方法后,就不" +"会调用物理服务器内部方法,而是调用这些覆盖后的方法。\n" +"旨在用于 GDExtension,用于创建自定义 [PhysicsServer3D] 实现。" + msgid "A singleton for managing [PhysicsServer3D] implementations." msgstr "用于管理 [PhysicsServer3D] 实现的单例。" +msgid "" +"[PhysicsServer3DManager] is the API for registering [PhysicsServer3D] " +"implementations and for setting the default implementation.\n" +"[b]Note:[/b] It is not possible to switch physics servers at runtime. This " +"class is only used on startup at the server initialization level, by Godot " +"itself and possibly by GDExtensions." +msgstr "" +"[PhysicsServer3DManager] 是用于注册 [PhysicsServer3D] 实现、设置默认实现的 " +"API。\n" +"[b]注意:[/b]无法在运行时切换物理服务器。这个类只在启动时在服务器初始化级别使" +"用,可能由 Godot 本身使用,也可能由 GDExtension 使用。" + msgid "" "Register a [PhysicsServer3D] implementation by passing a [param name] and a " "[Callable] that returns a [PhysicsServer3D] object." @@ -81344,6 +85466,13 @@ msgstr "" "如果优先级 [param priority] 比当前默认实现的优先级高,则将由名称 [param name] " "标识的 [PhysicsServer3D] 实现设置为默认实现。" +msgid "" +"A class used to provide [method PhysicsServer3DExtension." +"_soft_body_update_rendering_server] with a rendering handler for soft bodies." +msgstr "" +"用于为 [method PhysicsServer3DExtension._soft_body_update_rendering_server] 提" +"供柔体渲染处理器的类。" + msgid "" "Provides parameters for [method PhysicsDirectSpaceState2D.intersect_shape]." msgstr "为 [method PhysicsDirectSpaceState2D.intersect_shape] 提供参数。" @@ -81526,6 +85655,13 @@ msgstr "" msgid "Provides parameters for [method PhysicsServer2D.body_test_motion]." msgstr "为 [method PhysicsServer2D.body_test_motion] 提供参数。" +msgid "" +"By changing various properties of this object, such as the motion, you can " +"configure the parameters for [method PhysicsServer2D.body_test_motion]." +msgstr "" +"更改该对象的运动等属性可以配置 [method PhysicsServer2D.body_test_motion] 的参" +"数。" + msgid "" "If set to [code]true[/code], shapes of type [constant PhysicsServer2D." "SHAPE_SEPARATION_RAY] are used to detect collisions and can stop the motion. " @@ -81584,6 +85720,13 @@ msgstr "" msgid "Provides parameters for [method PhysicsServer3D.body_test_motion]." msgstr "为 [method PhysicsServer3D.body_test_motion] 提供参数。" +msgid "" +"By changing various properties of this object, such as the motion, you can " +"configure the parameters for [method PhysicsServer3D.body_test_motion]." +msgstr "" +"更改该对象的运动等属性可以配置 [method PhysicsServer3D.body_test_motion] 的参" +"数。" + msgid "" "If set to [code]true[/code], shapes of type [constant PhysicsServer3D." "SHAPE_SEPARATION_RAY] are used to detect collisions and can stop the motion. " @@ -81633,6 +85776,11 @@ msgstr "" "[CharacterBody3D] 提升地面吸附阶段的地面检测。\n" "如果设置为 [code]false[/code],则只会汇报移动造成的碰撞,一般符合预期行为。" +msgid "" +"Describes the motion and collision result from [method PhysicsServer2D." +"body_test_motion]." +msgstr "描述 [method PhysicsServer2D.body_test_motion] 的运动和碰撞结果。" + msgid "Returns the colliding body's attached [Object], if a collision occurred." msgstr "如果发生了碰撞,则返回相撞物体所附加的 [Object]。" @@ -81686,6 +85834,11 @@ msgstr "" "如果发生了碰撞,则返回碰撞运动所需的最小摩擦力,在 [code]0[/code] 和 [code]1[/" "code] 之间。" +msgid "" +"Describes the motion and collision result from [method PhysicsServer3D." +"body_test_motion]." +msgstr "描述 [method PhysicsServer3D.body_test_motion] 的运动和碰撞结果。" + msgid "" "Returns the colliding body's attached [Object] given a collision index (the " "deepest collision by default), if a collision occurred." @@ -82659,7 +86812,7 @@ msgstr "" "[param id],将从索引中创建一个。如果未提供 [param accel],则默认值 0(对应于 " "[constant @GlobalScope.KEY_NONE])将被分配给该项(这意味着它不会有任何加速" "器)。有关加速器的更多信息,请参阅 [method get_item_accelerator]。\n" -"[b]注意:[/b] 可勾选项只显示一个勾选标记,但没有任何内置的勾选行为,必须手动勾" +"[b]注意:[/b]可勾选项只显示一个勾选标记,但没有任何内置的勾选行为,必须手动勾" "选/取消勾选。有关如何控制它的更多信息,请参阅 [method set_item_checked]。" msgid "" @@ -82926,7 +87079,7 @@ msgid "" "with [method get_item_metadata], which provides a simple way of assigning " "context data to items." msgstr "" -"设置项的元数据,该项可以是任何类型。稍后您可以使用[method get_item_metadata]获" +"设置项的元数据,该项可以是任何类型。稍后你可以使用[method get_item_metadata]获" "取它,它提供了一种将上下文数据分配给项的简单方法。" msgid "" @@ -84251,8 +88404,8 @@ msgstr "" "项目名称。会在项目管理器和导出器中使用。可以通过翻译本地化文件中的值来翻译项目" "名称。窗口标题将设置为在启动时自动匹配项目名称。\n" "[b]注意:[/b]如果 [member application/config/use_custom_user_dir] 为 " -"[code]false[/code],更改此值也会更改用户数据文件夹的路径。重命名项目后,您将无" -"法再访问 [code]user://[/code] 中的现有数据,除非您重命名旧文件夹以匹配新项目名" +"[code]false[/code],更改此值也会更改用户数据文件夹的路径。重命名项目后,你将无" +"法再访问 [code]user://[/code] 中的现有数据,除非你重命名旧文件夹以匹配新项目名" "称。有关更多信息,请参阅文档中的 [url=$DOCS_URL/tutorials/io/data_paths.html]" "《数据路径》[/url]。" @@ -84411,7 +88564,7 @@ msgid "" "Forces a delay between frames in the main loop (in milliseconds). This may be " "useful if you plan to disable vertical synchronization." msgstr "" -"强制主循环中帧之间的延迟(以毫秒为单位)。如果您计划禁用垂直同步,这可能很有" +"强制主循环中帧之间的延迟(以毫秒为单位)。如果你计划禁用垂直同步,这可能很有" "用。" msgid "" @@ -85164,7 +89317,7 @@ msgstr "" msgid "" "Color of the avoidance obstacles radius, visible when \"Visible Avoidance\" " "is enabled in the Debug menu." -msgstr "静态障碍物半径的颜色,在调试菜单中启用“显示避障”时可见。" +msgstr "避障障碍物半径的颜色,在调试菜单中启用“显示避障”时可见。" msgid "" "Color of the static avoidance obstacles edges when their vertices are winded " @@ -88795,7 +92948,7 @@ msgid "" msgstr "" "如果为 [code]true[/code],则启用空间过滤器以限制具有高频细节的区域的粗糙度。这" "可以在一定程度上帮助减少镜面反射锯齿,尽管不如启用 [member rendering/" -"anti_aliasing/quality/use_taa]。 该过滤器的性能成本很小,因此如果它对您的场景" +"anti_aliasing/quality/use_taa]。 该过滤器的性能成本很小,因此如果它对你的场景" "没有明显好处,请考虑禁用它。\n" "[b]注意:[/b]屏幕空间粗糙度限制器只支持 Forward+ 和 Mobile 渲染方式,不支持 " "Compatibility。\n" @@ -89018,6 +93171,36 @@ msgstr "" "代价是消耗性能。设为 [code]Ultra[/code] 会使用 [member rendering/environment/" "ssil/adaptive_target] 设置。" +msgid "" +"Scales the depth over which the subsurface scattering effect is applied. A " +"high value may allow light to scatter into a part of the mesh or another mesh " +"that is close in screen space but far in depth. See also [member rendering/" +"environment/subsurface_scattering/subsurface_scattering_scale].\n" +"[b]Note:[/b] This property is only read when the project starts. To set the " +"subsurface scattering depth scale at runtime, call [method RenderingServer." +"sub_surface_scattering_set_scale] instead." +msgstr "" +"对次表面散射效果应用深度进行缩放。较高的取值能够让灯光散射进网格的某些部分或者" +"在屏幕空间中距离较近但深度更远的其他网格。另见 [member rendering/environment/" +"subsurface_scattering/subsurface_scattering_scale]。\n" +"[b]注意:[/b]这个属性仅在项目启动时读取。要在运行时设置次表面散射深度缩放,请" +"改为调用 [method RenderingServer.sub_surface_scattering_set_scale]。" + +msgid "" +"Sets the quality of the subsurface scattering effect. Higher values are " +"slower but look nicer. This affects the rendering of materials that have " +"[member BaseMaterial3D.subsurf_scatter_enabled] set to [code]true[/code], " +"along with [ShaderMaterial]s that set [code]SSS_STRENGTH[/code].\n" +"[b]Note:[/b] This property is only read when the project starts. To set the " +"subsurface scattering quality at runtime, call [method RenderingServer." +"sub_surface_scattering_set_quality] instead." +msgstr "" +"设置次表面散射效果的质量。值越高越慢,但视觉效果更佳。影响 [member " +"BaseMaterial3D.subsurf_scatter_enabled] 为 [code]true[/code] 以及设置了 " +"[code]SSS_STRENGTH[/code] 的 [ShaderMaterial] 的材质的渲染。\n" +"[b]注意:[/b]这个属性仅在项目启动时读取。要在运行时设置次表面散射质量,请改为" +"调用 [method RenderingServer.sub_surface_scattering_set_quality]。" + msgid "" "Scales the distance over which samples are taken for subsurface scattering " "effect. Changing this does not impact performance, but higher values will " @@ -89132,6 +93315,84 @@ msgstr "" "[b]注意:[/b]只有在项目启动时该属性才会被读取。要在运行时设置半分辨率 GI,请改" "为调用 [method RenderingServer.gi_set_use_half_resolution]。" +msgid "" +"The number of frames to use for converging signed distance field global " +"illumination. Higher values lead to a less noisy result, at the cost of " +"taking a longer time to fully converge. This means the scene's global " +"illumination will be too dark for a longer period of time, especially when " +"the camera moves fast. The actual convergence speed depends on rendered " +"framerate. For example, with the default setting of 30 frames, rendering at " +"60 FPS will make SDFGI fully converge after 0.5 seconds. See also [member " +"rendering/global_illumination/sdfgi/frames_to_update_lights] and [member " +"rendering/global_illumination/sdfgi/probe_ray_count].\n" +"[b]Note:[/b] This property is only read when the project starts. To control " +"SDFGI convergence speed at runtime, call [method RenderingServer." +"environment_set_sdfgi_frames_to_converge] instead." +msgstr "" +"用于收敛带符号距离场全局光照的帧数。值越高,得到的噪点越少,但完全收敛所需的时" +"间也就越长。这意味着场景的全局光照处于过暗状态的时间可能更长,在相机快速移动时" +"尤为明显。实际的收敛速度取决于渲染帧率。例如,默认设置为 30 帧,则 60 FPS 的渲" +"染会让 SDFGI 在 0.5 秒后完全收敛。另见 [member rendering/global_illumination/" +"sdfgi/frames_to_update_lights] 和 [member rendering/global_illumination/sdfgi/" +"probe_ray_count]。\n" +"[b]注意:[/b]这个属性仅在项目启动时读取。要在运行时控制 SDFGI 的收敛速度,请改" +"为调用 [method RenderingServer.environment_set_sdfgi_frames_to_converge]。" + +msgid "" +"The number of frames over which dynamic lights should be updated in signed " +"distance field global illumination. Higher values take more time to update " +"indirect lighting coming from dynamic lights, but result in better " +"performance when many dynamic lights are present. See also [member rendering/" +"global_illumination/sdfgi/frames_to_converge] and [member rendering/" +"global_illumination/sdfgi/probe_ray_count].\n" +"[b]Note:[/b] This only affects [Light3D] nodes whose [member Light3D." +"light_bake_mode] is [constant Light3D.BAKE_DYNAMIC] (which is the default). " +"Consider making non-moving lights use the [constant Light3D.BAKE_STATIC] bake " +"mode to improve performance.\n" +"[b]Note:[/b] This property is only read when the project starts. To control " +"SDFGI light update speed at runtime, call [method RenderingServer." +"environment_set_sdfgi_frames_to_update_light] instead." +msgstr "" +"带符号距离场全局光照中动态光照更新所需的帧数。值越高,动态灯光造成的间接光照就" +"会花费更多的时间来更新,但动态灯光数量较多时性能会更好。另见 [member " +"rendering/global_illumination/sdfgi/frames_to_converge] 和 [member rendering/" +"global_illumination/sdfgi/probe_ray_count]。\n" +"[b]注意:[/b]仅影响 [member Light3D.light_bake_mode] 为 [constant Light3D." +"BAKE_DYNAMIC](默认值)的 [Light3D] 节点。让不会移动的灯光使用 [constant " +"Light3D.BAKE_STATIC] 烘焙模式能够提升性能。\n" +"[b]注意:[/b]这个属性仅在项目启动时读取。要在运行时控制 SDFGI 的灯光更新速度," +"请改为调用 [method RenderingServer." +"environment_set_sdfgi_frames_to_update_light]。" + +msgid "" +"The number of rays to throw per frame when computing signed distance field " +"global illumination. Higher values lead to a less noisy result, at the cost " +"of performance. See also [member rendering/global_illumination/sdfgi/" +"frames_to_converge] and [member rendering/global_illumination/sdfgi/" +"frames_to_update_lights].\n" +"[b]Note:[/b] This property is only read when the project starts. To control " +"SDFGI quality at runtime, call [method RenderingServer." +"environment_set_sdfgi_ray_count] instead." +msgstr "" +"计算带符号距离场全局光照时每帧发出的射线。值越高,得到的噪点越少,但性能消耗也" +"越大。另见 [member rendering/global_illumination/sdfgi/frames_to_converge] 和 " +"[member rendering/global_illumination/sdfgi/frames_to_update_lights]。\n" +"[b]注意:[/b]这个属性仅在项目启动时读取。要在运行时控制 SDFGI 的质量,请改为调" +"用 [method RenderingServer.environment_set_sdfgi_ray_count]。" + +msgid "" +"The VoxelGI quality to use. High quality leads to more precise lighting and " +"better reflections, but is slower to render. This setting does not affect the " +"baked data and doesn't require baking the [VoxelGI] again to apply.\n" +"[b]Note:[/b] This property is only read when the project starts. To control " +"VoxelGI quality at runtime, call [method RenderingServer." +"voxel_gi_set_quality] instead." +msgstr "" +"要使用的 VoxelGI 质量。高质量下的光照更精确、反射质量更好,但渲染速度较慢。这" +"个设置不影响烘焙数据,应用时不需要重新烘焙 [VoxelGI]。\n" +"[b]注意:[/b]这个属性仅在项目启动时读取。要在运行时控制 VoxelGI 的质量,请改为" +"调用 [method RenderingServer.voxel_gi_set_quality]。" + msgid "" "The maximum number of rays that can be thrown per pass when baking lightmaps " "with [LightmapGI]. Depending on the scene, adjusting this value may result in " @@ -89231,6 +93492,22 @@ msgstr "" "使动态对象光照更新更快。较高的值可以防止快速移动的对象在其上显示“过时的”间接光" "照,但代价是当对象从明亮区域移动到阴影区域时可能会出现闪烁。" +msgid "" +"Use 16 bits for the directional shadow depth map. Enabling this results in " +"shadows having less precision and may result in shadow acne, but can lead to " +"performance improvements on some devices." +msgstr "" +"使用 16 位的平行光阴影深度贴图。启用后,阴影的精度会降低,可能造成阴影失真,但" +"能够在部分设备上提升性能。" + +msgid "" +"The directional shadow's size in pixels. Higher values will result in sharper " +"shadows, at the cost of performance. The value is rounded up to the nearest " +"power of 2." +msgstr "" +"方向阴影的大小,单位为像素。值越高,得到的阴影越清晰,但会以性能为代价。取值将" +"舍入到最接近的 2 次幂。" + msgid "" "Lower-end override for [member rendering/lights_and_shadows/" "directional_shadow/size] on mobile devices, due to performance concerns or " @@ -89271,6 +93548,14 @@ msgstr "" "由于性能和驱动支持,在移动设备上会对 [member rendering/lights_and_shadows/" "directional_shadow/soft_shadow_filter_quality] 以低配数值覆盖。" +msgid "" +"Use 16 bits for the omni/spot shadow depth map. Enabling this results in " +"shadows having less precision and may result in shadow acne, but can lead to " +"performance improvements on some devices." +msgstr "" +"使用 16 位的全向灯/聚光灯阴影深度贴图。启用后,阴影的精度会降低,可能造成阴影" +"失真,但能够在部分设备上提升性能。" + msgid "" "Subdivision quadrant size for shadow mapping. See shadow mapping " "documentation." @@ -89617,6 +93902,11 @@ msgstr "[member rendering/rendering_device/driver] 在 macOS 的覆盖项。" msgid "Windows override for [member rendering/rendering_device/driver]." msgstr "[member rendering/rendering_device/driver] 在 Windows 的覆盖项。" +msgid "" +"Determines at which interval pipeline cache is saved to disk. The lower the " +"value, the more often it is saved." +msgstr "决定管线缓存保存到磁盘的间隔。值越低,保存地越频繁。" + msgid "" "Determines how sharp the upscaled image will be when using the FSR upscaling " "mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) " @@ -89831,6 +94121,55 @@ msgstr "" "如果为 [code]true[/code],纹理导入器将使用 PNG 格式导入无损纹理。否则默认使用 " "WebP。" +msgid "" +"If [code]true[/code], the texture importer will import VRAM-compressed " +"textures using the Ericsson Texture Compression 2 algorithm for lower quality " +"textures and normal maps and Adaptable Scalable Texture Compression algorithm " +"for high quality textures (in 4x4 block size).\n" +"[b]Note:[/b] This setting is an override. The texture importer will always " +"import the format the host platform needs, even if this is set to " +"[code]false[/code].\n" +"[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were " +"already imported before. To make this setting apply to textures that were " +"already imported, exit the editor, remove the [code].godot/imported/[/code] " +"folder located inside the project folder then restart the editor (see [member " +"application/config/use_hidden_project_data_directory])." +msgstr "" +"如果为 [code]true[/code],则纹理导入器,将使用 Ericsson 纹理压缩 2 算法导入 " +"VRAM 压缩纹理以获取较低质量的纹理和法线贴图,并使用自适应可缩放纹理压缩算法导" +"入高质量纹理(4x4 块大小)。\n" +"[b]注意:[/b]这是设置覆盖项。即便设为 [code]false[/code],纹理导入器也始终会导" +"入宿主平台所需的格式。\n" +"[b]注意:[/b]更改该设置[i]不会[/i]影响之前已经导入的纹理。要使该设置应用于已导" +"入的纹理,请退出编辑器,移除位于项目文件夹内的 [code].godot/imported/[/code] " +"文件夹,然后重新启动编辑器(请参阅 [member application/config/" +"use_hidden_project_data_directory])。" + +msgid "" +"If [code]true[/code], the texture importer will import VRAM-compressed " +"textures using the S3 Texture Compression algorithm (DXT1-5) for lower " +"quality textures and the BPTC algorithm (BC6H and BC7) for high quality " +"textures. This algorithm is only supported on PC desktop platforms and " +"consoles.\n" +"[b]Note:[/b] This setting is an override. The texture importer will always " +"import the format the host platform needs, even if this is set to " +"[code]false[/code].\n" +"[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were " +"already imported before. To make this setting apply to textures that were " +"already imported, exit the editor, remove the [code].godot/imported/[/code] " +"folder located inside the project folder then restart the editor (see [member " +"application/config/use_hidden_project_data_directory])." +msgstr "" +"如果为 [code]true[/code],纹理导入器将使用 S3 纹理压缩算法(DXT1-5)导入 VRAM " +"压缩纹理以获得较低质量的纹理;并使用 BPTC 算法(BC6H 和 BC7)导入高质量纹理。" +"该算法仅在 PC 桌面平台和主机平台上受支持。\n" +"[b]注意:[/b]这是设置覆盖项。即便设为 [code]false[/code],纹理导入器也始终会导" +"入宿主平台所需的格式。\n" +"[b]注意:[/b]更改该设置[i]不会[/i]影响之前已经导入的纹理。要使该设置应用于已导" +"入的纹理,请退出编辑器,移除位于项目文件夹内的 [code].godot/imported/[/code] " +"文件夹,然后重新启动编辑器(请参阅 [member application/config/" +"use_hidden_project_data_directory])。" + msgid "" "The default compression method for WebP. Affects both lossy and lossless " "WebP. A higher value results in smaller files at the cost of compression " @@ -90316,6 +94655,9 @@ msgstr "" "返回该 [Quaternion] 的负值。和写 [code]Quaternion(-q.x, -q.y, -q.z, -q.w)[/" "code] 相同。这个操作得到的是代表相同旋转的四元数。" +msgid "Provides methods for generating pseudo-random numbers." +msgstr "提供生成伪随机数的方法。" + msgid "" "RandomNumberGenerator is a class for generating pseudo-random numbers. It " "currently uses [url=https://www.pcg-random.org/]PCG32[/url].\n" @@ -90567,6 +94909,32 @@ msgid "" "A ray in 2D space, used to find the first [CollisionObject2D] it intersects." msgstr "2D 空间中的射线,用于查找第一个相交的 [CollisionObject2D]。" +msgid "" +"A raycast represents a ray from its origin to its [member target_position] " +"that finds the closest [CollisionObject2D] along its path, if it intersects " +"any. This is useful for a lot of things, such as\n" +"[RayCast2D] can ignore some objects by adding them to an exception list, by " +"making its detection reporting ignore [Area2D]s ([member collide_with_areas]) " +"or [PhysicsBody2D]s ([member collide_with_bodies]), or by configuring physics " +"layers.\n" +"[RayCast2D] calculates intersection every physics frame, and it holds the " +"result until the next physics frame. For an immediate raycast, or if you want " +"to configure a [RayCast2D] multiple times within the same physics frame, use " +"[method force_raycast_update].\n" +"To sweep over a region of 2D space, you can approximate the region with " +"multiple [RayCast2D]s or use [ShapeCast2D]." +msgstr "" +"Raycast 代表的是从它的原点到 [member target_position] 的射线,如果与碰撞对象相" +"交,就能找到路径上距离最近的 [CollisionObject2D]。可以用来做很多事情,例如\n" +"要让 [RayCast2D] 忽略某些对象,可以将它们加入例外列表,也可以让检测汇报忽略 " +"[Area2D]([member collide_with_areas])或 [PhysicsBody2D]([member " +"collide_with_bodies]),还可以配置物理层。\n" +"[RayCast2D] 每一个物理帧都会计算是否相交,计算结果会保留到下一个物理帧。如果要" +"立即执行射线投射,或者你想要在同一个物理帧内多次配置 [RayCast2D],请使用 " +"[method force_raycast_update]。\n" +"要扫描 2D 空间中的某个区域,可以使用多个 [RayCast2D] 去近似,也可以使用 " +"[ShapeCast2D]。" + msgid "" "Adds a collision exception so the ray does not report collisions with the " "specified [CollisionObject2D] node." @@ -90686,6 +95054,32 @@ msgid "" "A ray in 3D space, used to find the first [CollisionObject3D] it intersects." msgstr "3D 空间中的射线,用于查找第一个相交的 [CollisionObject3D]。" +msgid "" +"A raycast represents a ray from its origin to its [member target_position] " +"that finds the closest [CollisionObject3D] along its path, if it intersects " +"any. This is useful for a lot of things, such as\n" +"[RayCast3D] can ignore some objects by adding them to an exception list, by " +"making its detection reporting ignore [Area3D]s ([member collide_with_areas]) " +"or [PhysicsBody3D]s ([member collide_with_bodies]), or by configuring physics " +"layers.\n" +"[RayCast3D] calculates intersection every physics frame, and it holds the " +"result until the next physics frame. For an immediate raycast, or if you want " +"to configure a [RayCast3D] multiple times within the same physics frame, use " +"[method force_raycast_update].\n" +"To sweep over a region of 3D space, you can approximate the region with " +"multiple [RayCast3D]s or use [ShapeCast3D]." +msgstr "" +"Raycast 代表的是从它的原点到 [member target_position] 的射线,如果与碰撞对象相" +"交,就能找到路径上距离最近的 [CollisionObject3D]。可以用来做很多事情,例如\n" +"要让 [RayCast3D] 忽略某些对象,可以将它们加入例外列表,也可以让检测汇报忽略 " +"[Area3D]([member collide_with_areas])或 [PhysicsBody3D]([member " +"collide_with_bodies]),还可以配置物理层。\n" +"[RayCast3D] 每一个物理帧都会计算是否相交,计算结果会保留到下一个物理帧。如果要" +"立即执行射线投射,或者你想要在同一个物理帧内多次配置 [RayCast3D],请使用 " +"[method force_raycast_update]。\n" +"要扫描 3D 空间中的某个区域,可以使用多个 [RayCast3D] 去近似,也可以使用 " +"[ShapeCast3D]。" + msgid "" "Adds a collision exception so the ray does not report collisions with the " "specified [CollisionObject3D] node." @@ -90986,6 +95380,12 @@ msgstr "" "BLEND_FACTOR_SRC_ALPHA],将 [member dst_alpha_blend_factor] 设为 [constant " "RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA]。" +msgid "The blend mode to use for the alpha channel." +msgstr "Alpha 通道使用的混合模式。" + +msgid "The blend mode to use for the red/green/blue color channels." +msgstr "红、绿、蓝通道使用的混合模式。" + msgid "" "Controls how the blend factor for the alpha channel is determined based on " "the destination's fragments." @@ -90996,6 +95396,21 @@ msgid "" "the destination's fragments." msgstr "控制如何根据目标片段确定颜色通道的混合系数。" +msgid "" +"If [code]true[/code], performs blending between the source and destination " +"according to the factors defined in [member src_color_blend_factor], [member " +"dst_color_blend_factor], [member src_alpha_blend_factor] and [member " +"dst_alpha_blend_factor]. The blend modes [member color_blend_op] and [member " +"alpha_blend_op] are also taken into account, with [member write_r], [member " +"write_g], [member write_b] and [member write_a] controlling the output." +msgstr "" +"如果为 [code]true[/code],则会根据 [member src_color_blend_factor]、[member " +"dst_color_blend_factor]、[member src_alpha_blend_factor] 和 [member " +"dst_alpha_blend_factor] 中定义的系数对来源和目标进行混合。同时也会考虑 " +"[member color_blend_op] 和 [member alpha_blend_op] 混合模式,[member " +"write_r]、[member write_g]、[member write_b] 和 [member write_a] 则控制的是输" +"出。" + msgid "" "Controls how the blend factor for the alpha channel is determined based on " "the source's fragments." @@ -91031,6 +95446,17 @@ msgstr "" "[RDPipelineDepthStencilState] 控制的是在使用 [RenderingDevice] 对深度和模板进" "行采样时,如何进行深度和模板的比较。" +msgid "" +"If [code]true[/code], enables depth testing which allows objects to be " +"automatically occluded by other objects based on their depth. This also " +"allows objects to be partially occluded by other objects. If [code]false[/" +"code], objects will appear in the order they were drawn (like in Godot's 2D " +"renderer)." +msgstr "" +"如果为 [code]true[/code],则会启用深度测试,能够让对象根据深度自动被其他对象遮" +"挡。这样对象就能够被其他对象部分遮挡。如果为 [code]false[/code],则会按照绘制" +"顺序显示(类似 Godot 的 2D 渲染器)。" + msgid "Pipeline multisample state (used by [RenderingDevice])." msgstr "管线的多重采样状态(由 [RenderingDevice] 使用)。" @@ -91042,6 +95468,55 @@ msgstr "" "[RDPipelineMultisampleState] 控制的是在使用 [RenderingDevice] 进行渲染时,如何" "进行多重采样和超采样抗锯齿。" +msgid "" +"If [code]true[/code], alpha to coverage is enabled. This generates a " +"temporary coverage value based on the alpha component of the fragment's first " +"color output. This allows alpha transparency to make use of multisample " +"antialiasing." +msgstr "" +"如果为 [code]true[/code],则启用 Alpha 为覆盖面。此时会根据片段的第一个颜色输" +"出的 Alpha 分量生成临时的覆盖值。这样就能够让 Alpha 透明使用多重采样抗锯齿。" + +msgid "" +"If [code]true[/code], alpha is forced to either [code]0.0[/code] or " +"[code]1.0[/code]. This allows hardening the edges of antialiased alpha " +"transparencies. Only relevant if [member enable_alpha_to_coverage] is " +"[code]true[/code]." +msgstr "" +"如果为 [code]true[/code],则会将 Alpha 强制为 [code]0.0[/code] 或 [code]1.0[/" +"code]。这样就能够让 Alpha 透明抗锯齿后的边缘更锐利。仅在 [member " +"enable_alpha_to_coverage] 为 [code]true[/code] 时有效。" + +msgid "" +"If [code]true[/code], enables per-sample shading which replaces MSAA by SSAA. " +"This provides higher quality antialiasing that works with transparent (alpha " +"scissor) edges. This has a very high performance cost. See also [member " +"min_sample_shading]. See the [url=https://registry.khronos.org/vulkan/" +"specs/1.3-extensions/html/vkspec.html#primsrast-sampleshading]per-sample " +"shading Vulkan documentation[/url] for more details." +msgstr "" +"如果为 [code]true[/code],则会启用逐样本着色,使用 SSAA 代替 MSAA。这样能够提" +"供更高质量的抗锯齿,支持透明边缘(Alpha 裁剪)。性能消耗很高。另见 [member " +"min_sample_shading]。详见[url=https://registry.khronos.org/vulkan/specs/1.3-" +"extensions/html/vkspec.html#primsrast-sampleshading]逐样本着色 Vulkan 文档[/" +"url]。" + +msgid "" +"The multiplier of [member sample_count] that determines how many samples are " +"performed for each fragment. Must be between [code]0.0[/code] and [code]1.0[/" +"code] (inclusive). Only effective if [member enable_sample_shading] is " +"[code]true[/code]. If [member min_sample_shading] is [code]1.0[/code], " +"fragment invocation must only read from the coverage index sample. Tile image " +"access must not be used if [member enable_sample_shading] is [i]not[/i] " +"[code]1.0[/code]." +msgstr "" +"[member sample_count] 的乘数,决定每个片段执行多少次采样。必须在 [code]0.0[/" +"code] 和 [code]1.0[/code] 之间(含端点)。仅在 [member enable_sample_shading] " +"为 [code]true[/code] 时有效。如果 [member min_sample_shading] 为 [code]1.0[/" +"code],则片段调用必须仅从覆盖索引样本中读取。如果 [member " +"enable_sample_shading] [i]不是[/i] [code]1.0[/code],则不能对平铺图像进行访" +"问。" + msgid "" "The number of MSAA samples (or SSAA samples if [member enable_sample_shading] " "is [code]true[/code]) to perform. Higher values result in better " @@ -91081,6 +95556,19 @@ msgid "" "supported on all hardware." msgstr "绘制线段时使用的线宽(单位为像素)。可能不是所有硬件都支持粗线段。" +msgid "" +"The number of control points to use when drawing a patch with tessellation " +"enabled. Higher values result in higher quality at the cost of performance." +msgstr "" +"启用曲面细分绘制面片时,使用的控制点的数量。值越高,质量越高,但是性能开销也越" +"高。" + +msgid "" +"If [code]true[/code], performs wireframe rendering for triangles instead of " +"flat or textured rendering." +msgstr "" +"如果为 [code]true[/code],则会为三角形进行线框渲染,不进行平面或纹理渲染。" + msgid "Pipeline specialization constant (used by [RenderingDevice])." msgstr "管线特化常量(由 [RenderingDevice] 使用)。" @@ -91097,15 +95585,89 @@ msgstr "" "与此同时保持着色器能够在不同场合灵活运用。\n" "这个对象由 [RenderingDevice] 使用。" +msgid "" +"The identifier of the specialization constant. This is a value starting from " +"[code]0[/code] and that increments for every different specialization " +"constant for a given shader." +msgstr "" +"特化常量的标识符。这个值从 [code]0[/code] 开始,给定着色器中每一个不同的特化常" +"量都会将其递增。" + +msgid "" +"The specialization constant's value. Only [bool], [int] and [float] types are " +"valid for specialization constants." +msgstr "特化常量的值。只有 [bool]、[int]、[float] 类型是有效的特化常量。" + msgid "Sampler state (used by [RenderingDevice])." msgstr "采样器状态(由 [RenderingDevice] 使用)。" +msgid "" +"Maximum anisotropy that can be used when sampling. Only effective if [member " +"use_anisotropy] is [code]true[/code]. Higher values result in a sharper " +"sampler at oblique angles, at the cost of performance (due to memory " +"bandwidth). This value may be limited by the graphics hardware in use. Most " +"graphics hardware only supports values up to [code]16.0[/code].\n" +"If [member anisotropy_max] is [code]1.0[/code], forcibly disables anisotropy " +"even if [member use_anisotropy] is [code]true[/code]." +msgstr "" +"采样时能够使用的最大各向异性。仅在 [member use_anisotropy] 为 [code]true[/" +"code] 时有效。值越高,倾斜角度下得到的采样越锐利,但性能开销也越大(由于显存带" +"宽的原因)。这个值可能受到使用的图形硬件的限制。大多数图形硬件最多仅支持 " +"[code]16.0[/code]。\n" +"如果 [member anisotropy_max] 为 [code]1.0[/code],则会强制禁用各向异性,即便 " +"[member use_anisotropy] 为 [code]true[/code]。" + +msgid "" +"The border color that will be returned when sampling outside the sampler's " +"bounds and the [member repeat_u], [member repeat_v] or [member repeat_w] " +"modes have repeating disabled." +msgstr "" +"对采样器范围外进行采样,并且 [member repeat_u]、[member repeat_v] 或 [member " +"repeat_w] 的模式禁用了重复时,返回的边框颜色。" + msgid "" "The compare operation to use. Only effective if [member enable_compare] is " "[code]true[/code]." msgstr "" "要使用的比较运算。仅在 [member enable_compare] 为 [code]true[/code] 时有效。" +msgid "" +"If [code]true[/code], returned values will be based on the comparison " +"operation defined in [member compare_op]. This is a hardware-based approach " +"and is therefore faster than performing this manually in a shader. For " +"example, compare operations are used for shadow map rendering by comparing " +"depth values from a shadow sampler." +msgstr "" +"如果为 [code]true[/code],则返回值基于 [member compare_op] 定义的比较运算。这" +"种做法基于硬件,因此比手动在着色器中执行要快。例如,渲染阴影贴图时就会对阴影采" +"样器的深度值进行比较运算。" + +msgid "" +"The mipmap LOD bias to use. Positive values will make the sampler blurrier at " +"a given distance, while negative values will make the sampler sharper at a " +"given distance (at the risk of looking grainy). Recommended values are " +"between [code]-0.5[/code] and [code]0.0[/code]. Only effective if the sampler " +"has mipmaps available." +msgstr "" +"要使用的 mipmap LOD 偏置。正值会让采样器在给定距离处更模糊,而负值会让采样器在" +"给定距离处更锐利(有可能看上去会很颗粒化)。推荐值在 [code]-0.5[/code] 到 " +"[code]0.0[/code] 之间。仅在采样器的 mipmap 可用时有效。" + +msgid "The sampler's magnification filter." +msgstr "采样器的放大过滤器。" + +msgid "" +"The maximum mipmap LOD bias to display (lowest resolution). Only effective if " +"the sampler has mipmaps available." +msgstr "" +"用于显示的最大 mipmap LOD 偏置(最低分辨率)。仅在采样器有 mipmap 可用时有效。" + +msgid "" +"The minimum mipmap LOD bias to display (highest resolution). Only effective " +"if the sampler has mipmaps available." +msgstr "" +"用于显示的最小 mipmap LOD 偏置(最高分辨率)。仅在采样器有 mipmap 可用时有效。" + msgid "The filtering method to use for mipmaps." msgstr "Mipmap 使用的过滤方法。" @@ -91165,6 +95727,14 @@ msgid "" msgstr "" "设置指定着色器版本 [param version] 要编译的 SPIR-V 字节码 [param bytecode]。" +msgid "" +"The base compilation error message, which indicates errors not related to a " +"specific shader stage if non-empty. If empty, shader compilation is not " +"necessarily successful (check [RDShaderSPIRV]'s error message members)." +msgstr "" +"基础编译错误消息,如果非空,表示与特定着色器阶段无关的错误。如果为空,着色器编" +"译也不一定成功(请检查 [RDShaderSPIRV] 的各种错误消息成员)。" + msgid "Shader source code (used by [RenderingDevice])." msgstr "着色器源代码(由 [RenderingDevice] 使用)。" @@ -91226,6 +95796,22 @@ msgid "" msgstr "" "SPIR-V 中间表示,是 [RDShaderFile] 的一部分(由 [RenderingDevice] 使用)。" +msgid "" +"[RDShaderSPIRV] represents a [RDShaderFile]'s [url=https://www.khronos.org/" +"spir/]SPIR-V[/url] code for various shader stages, as well as possible " +"compilation error messages. SPIR-V a low-level intermediate shader " +"representation. This intermediate representation is not used directly by GPUs " +"for rendering, but it can be compiled into binary shaders that GPUs can " +"understand. Unlike compiled shaders, SPIR-V is portable across GPU models and " +"driver versions.\n" +"This object is used by [RenderingDevice]." +msgstr "" +"[RDShaderSPIRV] 代表 [RDShaderFile] 不同着色器阶段的 [url=https://www.khronos." +"org/spir/]SPIR-V[/url] 代码,以及可能的编译错误消息。SPIR-V 是一种低阶着色器中" +"间表示。这种中间表示无法用于 GPU 渲染,但可以编译为 GPU 能够理解的二进制着色" +"器。与编译后的着色器不同,SPIR-V 可以在不同 GPU 型号以及驱动版本之间移植。\n" +"这个对象由 [RenderingDevice] 使用。" + msgid "" "Equivalent to getting one of [member bytecode_compute], [member " "bytecode_fragment], [member bytecode_tesselation_control], [member " @@ -91360,6 +95946,14 @@ msgstr "纹理的宽度(单位为像素)。" msgid "Texture view (used by [RenderingDevice])." msgstr "纹理视图(由 [RenderingDevice] 使用)。" +msgid "" +"Optional override for the data format to return sampled values in. The " +"default value of [constant RenderingDevice.DATA_FORMAT_MAX] does not override " +"the format." +msgstr "" +"对返回采样值数据格式的可选覆盖。默认值 [constant RenderingDevice." +"DATA_FORMAT_MAX] 不会对格式进行覆盖。" + msgid "The channel to sample when sampling the alpha channel." msgstr "对 Alpha 通道进行采样时采样的通道。" @@ -91801,6 +96395,17 @@ msgstr "" "内部引用减量计数器。只有在你真的知道你在做什么的时候才使用这个。\n" "如果减量成功,返回 [code]true[/code],否则返回 [code]false[/code]。" +msgid "A rectangle hint for designing UIs." +msgstr "设计 UI 使用的矩形提示。" + +msgid "" +"A rectangle box that displays only a colored border around its rectangle. It " +"is used to visualize the extents of a [Control]." +msgstr "仅在对应矩形周围上显示彩色边框的矩形框。用于将 [Control] 的范围可视化。" + +msgid "Sets the border color of the [ReferenceRect]." +msgstr "设置该 [ReferenceRect] 的边框颜色。" + msgid "" "Sets the border width of the [ReferenceRect]. The border grows both inwards " "and outwards with respect to the rectangle box." @@ -91857,7 +96462,7 @@ msgstr "" "cull_mask] 内的所有对象,因此更新它们可能会非常昂贵。最好仅用重要的静态对象更" "新一次,然后保持原样。\n" "[b]注意:[/b]与 [VoxelGI] 和 SDFGI 不同,[ReflectionProbe] 仅从一个 " -"[WorldEnvironment] 节点获取环境。如果您在一个 [Camera3D] 节点中指定了一个 " +"[WorldEnvironment] 节点获取环境。如果你在一个 [Camera3D] 节点中指定了一个 " "[Environment] 资源,它将被该 [ReflectionProbe] 忽略。这可能会导致 " "[ReflectionProbe] 内的照明不正确。\n" "[b]注意:[/b]反射探针仅支持 Forward+ 和 Mobile 渲染方法,不支持 " @@ -91872,6 +96477,32 @@ msgstr "" msgid "Reflection probes" msgstr "反射探针" +msgid "" +"The custom ambient color to use within the [ReflectionProbe]'s box defined by " +"its [member size]. Only effective if [member ambient_mode] is [constant " +"AMBIENT_COLOR]." +msgstr "" +"[ReflectionProbe] 的大小为 [member size] 的框中使用的自定义环境光颜色。仅在 " +"[member ambient_mode] 为 [constant AMBIENT_COLOR] 时有效。" + +msgid "" +"The custom ambient color energy to use within the [ReflectionProbe]'s box " +"defined by its [member size]. Only effective if [member ambient_mode] is " +"[constant AMBIENT_COLOR]." +msgstr "" +"[ReflectionProbe] 的大小为 [member size] 的框中使用的自定义环境光颜色能量。仅" +"在 [member ambient_mode] 为 [constant AMBIENT_COLOR] 时有效。" + +msgid "" +"The ambient color to use within the [ReflectionProbe]'s box defined by its " +"[member size]. The ambient color will smoothly blend with other " +"[ReflectionProbe]s and the rest of the scene (outside the [ReflectionProbe]'s " +"box defined by its [member size])." +msgstr "" +"[ReflectionProbe] 的大小为 [member size] 的框中使用的环境光颜色。环境光颜色会" +"和其他 [ReflectionProbe] 和场景([ReflectionProbe] 的大小为 [member size] 的框" +"之外)的其他部分进行平滑混合。" + msgid "" "If [code]true[/code], enables box projection. This makes reflections look " "more correct in rectangle-shaped rooms by offsetting the reflection center " @@ -91910,6 +96541,21 @@ msgstr "定义反射强度。" msgid "If [code]true[/code], reflections will ignore sky contribution." msgstr "如果为 [code]true[/code],则反射将忽略天空的贡献。" +msgid "" +"The maximum distance away from the [ReflectionProbe] an object can be before " +"it is culled. Decrease this to improve performance, especially when using the " +"[constant UPDATE_ALWAYS] [member update_mode].\n" +"[b]Note:[/b] The maximum reflection distance is always at least equal to the " +"probe's extents. This means that decreasing [member max_distance] will not " +"always cull objects from reflections, especially if the reflection probe's " +"box defined by its [member size] is already large." +msgstr "" +"对象在被剔除之前可以距该 [ReflectionProbe] 的最大距离。减少它可以提高性能,尤" +"其是在使用 [constant UPDATE_ALWAYS] 作为 [member update_mode] 时。\n" +"[b]注意:[/b]最大反射距离始终至少等于探针的范围。这意味着减少 [member " +"max_distance] 并不总是会从反射中剔除对象,尤其是在反射探针由 [member size] 定" +"义的框已经很大的情况下。" + msgid "" "The automatic LOD bias to use for meshes rendered within the " "[ReflectionProbe] (this is analog to [member Viewport.mesh_lod_threshold]). " @@ -91984,6 +96630,25 @@ msgstr "" "性能消耗也是显著的。因此,建议同一个场景中最多只使用一个 [constant " "UPDATE_ALWAYS] 的 ReflectionProbe。其他用途请使用 [constant UPDATE_ONCE]。" +msgid "" +"Do not apply any ambient lighting inside the [ReflectionProbe]'s box defined " +"by its [member size]." +msgstr "不在 [ReflectionProbe] 的大小为 [member size] 的框内部应用环境光照。" + +msgid "" +"Apply automatically-sourced environment lighting inside the " +"[ReflectionProbe]'s box defined by its [member size]." +msgstr "" +"在 [ReflectionProbe] 的大小为 [member size] 的框内部应用自动来源的环境光照。" + +msgid "" +"Apply custom ambient lighting inside the [ReflectionProbe]'s box defined by " +"its [member size]. See [member ambient_color] and [member " +"ambient_color_energy]." +msgstr "" +"在 [ReflectionProbe] 的大小为 [member size] 的框内部应用自定义环境光照。见 " +"[member ambient_color] 和 [member ambient_color_energy]。" + msgid "Class for searching text for patterns using regular expressions." msgstr "使用正则表达式搜索文本的类。" @@ -92347,6 +97012,55 @@ msgstr "到远程节点的 [NodePath],相对于 RemoteTransform3D 在场景中 msgid "Abstraction for working with modern low-level graphics APIs." msgstr "用于处理现代低阶图形 API 的抽象。" +msgid "" +"[RenderingDevice] is an abstraction for working with modern low-level " +"graphics APIs such as Vulkan. Compared to [RenderingServer] (which works with " +"Godot's own rendering subsystems), [RenderingDevice] is much lower-level and " +"allows working more directly with the underlying graphics APIs. " +"[RenderingDevice] is used in Godot to provide support for several modern low-" +"level graphics APIs while reducing the amount of code duplication required. " +"[RenderingDevice] can also be used in your own projects to perform things " +"that are not exposed by [RenderingServer] or high-level nodes, such as using " +"compute shaders.\n" +"On startup, Godot creates a global [RenderingDevice] which can be retrieved " +"using [method RenderingServer.get_rendering_device]. This global " +"[RenderingDevice] performs drawing to the screen.\n" +"[b]Local RenderingDevices:[/b] Using [method RenderingServer." +"create_local_rendering_device], you can create \"secondary\" rendering " +"devices to perform drawing and GPU compute operations on separate threads.\n" +"[b]Note:[/b] [RenderingDevice] assumes intermediate knowledge of modern " +"graphics APIs such as Vulkan, Direct3D 12, Metal or WebGPU. These graphics " +"APIs are lower-level than OpenGL or Direct3D 11, requiring you to perform " +"what was previously done by the graphics driver itself. If you have " +"difficulty understanding the concepts used in this class, follow the " +"[url=https://vulkan-tutorial.com/]Vulkan Tutorial[/url] or [url=https://" +"vkguide.dev/]Vulkan Guide[/url]. It's recommended to have existing modern " +"OpenGL or Direct3D 11 knowledge before attempting to learn a low-level " +"graphics API.\n" +"[b]Note:[/b] [RenderingDevice] is not available when running in headless mode " +"or when using the Compatibility rendering method." +msgstr "" +"[RenderingDevice] 是用来使用 Vulkan 等现代低阶图形 API 的抽象。与(适用于 " +"Godot 自有渲染子系统的)[RenderingServer] 相比,[RenderingDevice] 所处的层级更" +"低,能够更加直接地使用底层图形 API。Godot 使用 [RenderingDevice] 来支持部分现" +"代低阶图形 API,能够减少所需的重复代码。你也可以在自己的项目中使用 " +"[RenderingDevice],从而执行 [RenderingServer] 和高阶节点未暴露的功能,例如使用" +"计算着色器。\n" +"启动时,Godot 会创建一个全局的 [RenderingDevice],可以使用 [method " +"RenderingServer.get_rendering_device] 获取。这个全局的 [RenderingDevice] 进行" +"的是屏幕绘图。\n" +"[b]局部 RenderingDevice:[/b]你可以使用 [method RenderingServer." +"create_local_rendering_device] 创建“次级”渲染设备,在单独的线程中进行渲染和 " +"GPU 计算操作。\n" +"[b]注意:[/b]使用 [RenderingDevice] 需要对 Vulkan、Direct3D 12、Metal 或 " +"WebGPU 有中等水平的知识。这些图形 API 比 OpenGL 和 Direct3D 所处的层级更低,能" +"够执行原本由图形驱动自己实现的功能。如果这个类中所使用的概念你理解起来有困难," +"请学习 [url=https://vulkan-tutorial.com/]Vulkan 教程[/url]或 [url=https://" +"vkguide.dev/]Vulkan 指南[/url]。在尝试学习低阶图形 API 之前,建议先学习现代 " +"OpenGL 或 Direct3D 11 相关的知识。\n" +"[b]注意:[/b]使用无头模式运行或使用 Compatibility 渲染方法时," +"[RenderingDevice] 不可用。" + msgid "Using compute shaders" msgstr "使用计算着色器" @@ -92365,6 +97079,231 @@ msgstr "" "返回指定 [param buffer] 中数据的副本,还可以设置 [param offset_bytes] 和 " "[param size_bytes],仅复制缓冲区的某一部分。" +msgid "" +"Creates a timestamp marker with the specified [param name]. This is used for " +"performance reporting with the [method get_captured_timestamp_cpu_time], " +"[method get_captured_timestamp_gpu_time] and [method " +"get_captured_timestamp_name] methods." +msgstr "" +"使用指定的名称 [param name] 创建时间戳标记。用于 [method " +"get_captured_timestamp_cpu_time]、[method get_captured_timestamp_gpu_time]、" +"[method get_captured_timestamp_name] 等方法的性能汇报。" + +msgid "" +"Starts a list of compute commands created with the [code]compute_*[/code] " +"methods. The returned value should be passed to other [code]compute_list_*[/" +"code] functions.\n" +"If [param allow_draw_overlap] is [code]true[/code], you may have one draw " +"list running at the same time as one compute list. Multiple compute lists " +"cannot be created at the same time; you must finish the previous compute list " +"first using [method compute_list_end].\n" +"A simple compute operation might look like this (code is not a complete " +"example):\n" +"[codeblock]\n" +"var rd = RenderingDevice.new()\n" +"var compute_list = rd.compute_list_begin()\n" +"\n" +"rd.compute_list_bind_compute_pipeline(compute_list, " +"compute_shader_dilate_pipeline)\n" +"rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0)\n" +"rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1)\n" +"\n" +"for i in atlas_slices:\n" +" rd.compute_list_set_push_constant(compute_list, push_constant, " +"push_constant.size())\n" +" rd.compute_list_dispatch(compute_list, group_size.x, group_size.y, " +"group_size.z)\n" +" # No barrier, let them run all together.\n" +"\n" +"rd.compute_list_end()\n" +"[/codeblock]" +msgstr "" +"开始由 [code]compute_*[/code] 方法创建的计算命令列表。应该将返回值传递给其他 " +"[code]compute_list_*[/code] 函数。\n" +"如果 [param allow_draw_overlap] 为 [code]true[/code],就可以在执行绘图列表的同" +"时执行计算列表。无法同时创建多个计算列表;你必须先使用 [method " +"compute_list_end] 把之前的计算列表完成。\n" +"简易的计算操作类似于下面这样(代码不是完整的示例):\n" +"[codeblock]\n" +"var rd = RenderingDevice.new()\n" +"var compute_list = rd.compute_list_begin()\n" +"\n" +"rd.compute_list_bind_compute_pipeline(compute_list, " +"compute_shader_dilate_pipeline)\n" +"rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0)\n" +"rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1)\n" +"\n" +"for i in atlas_slices:\n" +" rd.compute_list_set_push_constant(compute_list, push_constant, " +"push_constant.size())\n" +" rd.compute_list_dispatch(compute_list, group_size.x, group_size.y, " +"group_size.z)\n" +" # 没有屏障,一起执行。\n" +"\n" +"rd.compute_list_end()\n" +"[/codeblock]" + +msgid "" +"Submits the compute list for processing on the GPU. This is the compute " +"equivalent to [method draw_list_draw]." +msgstr "将计算列表提交给 GPU 处理。相当于是计算版本的 [method draw_list_draw]。" + +msgid "" +"Finishes a list of compute commands created with the [code]compute_*[/code] " +"methods." +msgstr "结束由 [code]compute_*[/code] 方法创建的计算命令列表。" + +msgid "" +"Sets the push constant data to [param buffer] for the specified [param " +"compute_list]. The shader determines how this binary data is used. The " +"buffer's size in bytes must also be specified in [param size_bytes] (this can " +"be obtained by calling the [method PackedByteArray.size] method on the passed " +"[param buffer])." +msgstr "" +"为指定的 [param compute_list] 设置 [param buffer] 的推送常量数据。如何使用这个" +"二进制数据由着色器决定。另外还必须在 [param size_bytes] 中指定缓冲的字节大小" +"(可以通过对 [param buffer] 调用 [method PackedByteArray.size] 获取)。" + +msgid "" +"Creates a new compute pipeline. It can be accessed with the RID that is " +"returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"新建计算管线。可以通过返回的 RID 进行访问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Returns [code]true[/code] if the compute pipeline specified by the [param " +"compute_pipeline] RID is valid, [code]false[/code] otherwise." +msgstr "" +"如果由 [param compute_pipeline] RID 指定的计算管线有效,则返回 [code]true[/" +"code],否则返回 [code]false[/code]。" + +msgid "" +"Create a new local [RenderingDevice]. This is most useful for performing " +"compute operations on the GPU independently from the rest of the engine." +msgstr "" +"新建局部 [RenderingDevice]。主要用于在 GPU 上执行计算操作,独立于引擎的其他部" +"分。" + +msgid "" +"Create a command buffer debug label region that can be displayed in third-" +"party tools such as [url=https://renderdoc.org/]RenderDoc[/url]. All regions " +"must be ended with a [method draw_command_end_label] call. When viewed from " +"the linear series of submissions to a single queue, calls to [method " +"draw_command_begin_label] and [method draw_command_end_label] must be matched " +"and balanced.\n" +"The [code]VK_EXT_DEBUG_UTILS_EXTENSION_NAME[/code] Vulkan extension must be " +"available and enabled for command buffer debug label region to work. See also " +"[method draw_command_insert_label] and [method draw_command_end_label]." +msgstr "" +"创建命令缓冲调试标签区域,能够在 [url=https://renderdoc.org/]RenderDoc[/url] " +"等第三方工具中显示。所有的区域都应该调用 [method draw_command_end_label] 结" +"束。观察单个队列的线性提交序列时,[method draw_command_begin_label] 必须有与之" +"对应的 [method draw_command_end_label]。\n" +"Vulkan 扩展 [code]VK_EXT_DEBUG_UTILS_EXTENSION_NAME[/code] 必须可用并启用,这" +"样命令缓冲调试标签区域才能正常工作。另见 [method draw_command_insert_label] " +"和 [method draw_command_end_label]。" + +msgid "" +"Ends the command buffer debug label region started by a [method " +"draw_command_begin_label] call." +msgstr "" +"结束命令缓冲调试标签区域,该区域由 [method draw_command_begin_label] 调用开" +"启。" + +msgid "" +"Inserts a command buffer debug label region in the current command buffer. " +"Unlike [method draw_command_begin_label], this region should not be ended " +"with a [method draw_command_end_label] call." +msgstr "" +"在当前的命令缓冲中插入命令缓冲调试标签区域。与 [method " +"draw_command_begin_label] 不同,不应该调用 [method draw_command_end_label] 来" +"结束这个区域。" + +msgid "" +"Starts a list of raster drawing commands created with the [code]draw_*[/code] " +"methods. The returned value should be passed to other [code]draw_list_*[/" +"code] functions.\n" +"Multiple draw lists cannot be created at the same time; you must finish the " +"previous draw list first using [method draw_list_end].\n" +"A simple drawing operation might look like this (code is not a complete " +"example):\n" +"[codeblock]\n" +"var rd = RenderingDevice.new()\n" +"var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), " +"Color(0, 0, 0, 0)]\n" +"var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice." +"INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_READ, RenderingDevice." +"INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_DISCARD, clear_colors)\n" +"\n" +"# Draw opaque.\n" +"rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline)\n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0)\n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size())\n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3)\n" +"# Draw wire.\n" +"rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire)\n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0)\n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size())\n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3)\n" +"\n" +"rd.draw_list_end()\n" +"[/codeblock]" +msgstr "" +"开始由 [code]draw_*[/code] 方法创建的栅格绘图命令列表。应该将返回值传递给其他 " +"[code]draw_list_*[/code] 函数。\n" +"无法同时创建多个绘图列表;你必须先使用 [method draw_list_end] 把之前的绘图列表" +"完成。\n" +"简易的绘图操作类似于下面这样(代码不是完整的示例):\n" +"[codeblock]\n" +"var rd = RenderingDevice.new()\n" +"var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), " +"Color(0, 0, 0, 0)]\n" +"var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice." +"INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_READ, RenderingDevice." +"INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_DISCARD, clear_colors)\n" +"\n" +"# 实心绘制。\n" +"rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline)\n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0)\n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size())\n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3)\n" +"# 线框绘制。\n" +"rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire)\n" +"rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0)\n" +"rd.draw_list_set_push_constant(draw_list, raster_push_constant, " +"raster_push_constant.size())\n" +"rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3)\n" +"\n" +"rd.draw_list_end()\n" +"[/codeblock]" + +msgid "" +"High-level variant of [method draw_list_begin], with the parameters " +"automtaically being adjusted for drawing onto the window specified by the " +"[param screen] ID.\n" +"[b]Note:[/b] Cannot be used with local RenderingDevices, as these don't have " +"a screen. If called on a local RenderingDevice, [method " +"draw_list_begin_for_screen] returns [constant INVALID_ID]." +msgstr "" +"[method draw_list_begin] 的高阶变体,会针对绘制到 [param screen] ID 指定的窗口" +"上自动调整参数。\n" +"[b]注意:[/b]局部 RenderingDevice 没有屏幕,所以无法使用。如果对局部 " +"RenderingDevice 调用,[method draw_list_begin_for_screen] 会返回 [constant " +"INVALID_ID]。" + +msgid "" +"Variant of [method draw_list_begin] with support for multiple splits. The " +"[param splits] parameter determines how many splits are created." +msgstr "" +"[method draw_list_begin] 的变体,支持多个拆分。[param splits] 参数决定创建多少" +"拆分。" + msgid "Binds [param index_array] to the specified [param draw_list]." msgstr "将 [param index_array] 绑定到指定的 [param draw_list]。" @@ -92383,6 +97322,131 @@ msgstr "" msgid "Binds [param vertex_array] to the specified [param draw_list]." msgstr "将 [param vertex_array] 绑定到指定的 [param draw_list]。" +msgid "" +"Removes and disables the scissor rectangle for the specified [param " +"draw_list]. See also [method draw_list_enable_scissor]." +msgstr "" +"为指定的 [param draw_list] 移除并禁用裁剪矩形。另见 [method " +"draw_list_enable_scissor]。" + +msgid "" +"Submits [param draw_list] for rendering on the GPU. This is the raster " +"equivalent to [method compute_list_dispatch]." +msgstr "" +"将 [param draw_list] 提交给 GPU 渲染。相当于是栅格版本的 [method " +"compute_list_dispatch]。" + +msgid "" +"Creates a scissor rectangle and enables it for the specified [param " +"draw_list]. Scissor rectangles are used for clipping by discarding fragments " +"that fall outside a specified rectangular portion of the screen. See also " +"[method draw_list_disable_scissor].\n" +"[b]Note:[/b] The specified [param rect] is automatically intersected with the " +"screen's dimensions, which means it cannot exceed the screen's dimensions." +msgstr "" +"创建裁剪矩形并为指定的 [param draw_list] 启用。裁剪矩形可以用来实现裁剪,会丢" +"弃落在屏幕上指定矩形范围之外的片段。另见 [method " +"draw_list_disable_scissor]。\n" +"[b]注意:[/b]指定的 [param rect] 会自动与屏幕尺寸求交集,也就是说裁剪矩形无法" +"超出屏幕的范围。" + +msgid "" +"Finishes a list of raster drawing commands created with the [code]draw_*[/" +"code] methods." +msgstr "结束由 [code]draw_*[/code] 方法创建的栅格绘图命令列表。" + +msgid "" +"Sets blend constants for the specified [param draw_list] to [param color]. " +"Blend constants are used only if the graphics pipeline is created with " +"[constant DYNAMIC_STATE_BLEND_CONSTANTS] flag set." +msgstr "" +"将指定 [param draw_list] 的混合常量设置为 [param color]。创建图形管线时设置了 " +"[constant DYNAMIC_STATE_BLEND_CONSTANTS] 标志时才会使用混合常量。" + +msgid "" +"Sets the push constant data to [param buffer] for the specified [param " +"draw_list]. The shader determines how this binary data is used. The buffer's " +"size in bytes must also be specified in [param size_bytes] (this can be " +"obtained by calling the [method PackedByteArray.size] method on the passed " +"[param buffer])." +msgstr "" +"为指定的 [param draw_list] 设置 [param buffer] 的推送常量数据。如何使用这个二" +"进制数据由着色器决定。另外还必须在 [param size_bytes] 中指定缓冲的字节大小(可" +"以通过对 [param buffer] 调用 [method PackedByteArray.size] 获取)。" + +msgid "" +"Switches to the next draw pass and returns the split's ID. Equivalent to " +"[method draw_list_switch_to_next_pass_split] with [code]splits[/code] set to " +"[code]1[/code]." +msgstr "" +"切换到下一个绘制阶段并返回拆分 ID。等价于调用 [method " +"draw_list_switch_to_next_pass_split] 时将 [code]splits[/code] 设为 [code]1[/" +"code]。" + +msgid "" +"Switches to the next draw pass, with the number of splits allocated specified " +"in [param splits]. The return value is an array containing the ID of each " +"split. For single-split usage, see [method draw_list_switch_to_next_pass]." +msgstr "" +"切换到下一个绘制阶段,分配的拆分数在 [param splits] 中指定。返回值是一个数组," +"包含各个拆分的 ID。如果使用的是单个拆分,请参阅 [method " +"draw_list_switch_to_next_pass]。" + +msgid "" +"Creates a new framebuffer. It can be accessed with the RID that is returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"新建帧缓冲。可以通过返回的 RID 进行访问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Creates a new empty framebuffer. It can be accessed with the RID that is " +"returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"新建空的帧缓冲。可以通过返回的 RID 进行访问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Creates a new multipass framebuffer. It can be accessed with the RID that is " +"returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"新建多阶段帧缓冲。可以通过返回的 RID 进行访问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Creates a new framebuffer format with the specified [param attachments] and " +"[param view_count]. Returns the new framebuffer's unique framebuffer format " +"ID.\n" +"If [param view_count] is greater than or equal to [code]2[/code], enables " +"multiview which is used for VR rendering. This requires support for the " +"Vulkan multiview extension." +msgstr "" +"新建帧缓冲格式,附件为 [param attachments]、视图数为 [param view_count]。返回" +"的是新帧缓冲的唯一帧缓冲格式 ID。\n" +"如果 [param view_count] 大于等于 [code]2[/code],则会针对 VR 渲染启用多视图。" +"要求支持 Vulkan 的多视图扩展。" + +msgid "" +"Creates a new empty framebuffer format with the specified number of [param " +"samples] and returns its ID." +msgstr "新建空的帧缓冲格式并返回其 ID,采样数为 [param samples]。" + +msgid "" +"Creates a multipass framebuffer format with the specified [param " +"attachments], [param passes] and [param view_count] and returns its ID. If " +"[param view_count] is greater than or equal to [code]2[/code], enables " +"multiview which is used for VR rendering. This requires support for the " +"Vulkan multiview extension." +msgstr "" +"创建多阶段帧缓冲格式并返回其 ID,附件为 [param attachments]、阶段数为 [param " +"passes]、视图数为 [param view_count]。如果 [param view_count] 大于等于 " +"[code]2[/code],则会针对 VR 渲染启用多视图。要求支持 Vulkan 的多视图扩展。" + msgid "" "Returns the number of texture samples used for the given framebuffer [param " "format] ID (returned by [method framebuffer_get_format])." @@ -92421,6 +97485,41 @@ msgstr "" "原地放置一个[i]完整[/i]的内存屏障。这是启用了所有标志的 [method barrier]。" "[method full_barrier] 应该仅用于调试,因为对性能的影响极大。" +msgid "" +"Returns the timestamp in CPU time for the rendering step specified by [param " +"index] (in microseconds since the engine started). See also [method " +"get_captured_timestamp_gpu_time] and [method capture_timestamp]." +msgstr "" +"返回渲染步骤的 CPU 时间戳(引擎启动后经过的毫秒数),渲染步骤由 [param index] " +"指定。另见 [method get_captured_timestamp_gpu_time] 和 [method " +"capture_timestamp]。" + +msgid "" +"Returns the timestamp in GPU time for the rendering step specified by [param " +"index] (in microseconds since the engine started). See also [method " +"get_captured_timestamp_cpu_time] and [method capture_timestamp]." +msgstr "" +"返回渲染步骤的 GPU 时间戳(引擎启动后经过的毫秒数),渲染步骤由 [param index] " +"指定。另见 [method get_captured_timestamp_cpu_time] 和 [method " +"capture_timestamp]。" + +msgid "" +"Returns the timestamp's name for the rendering step specified by [param " +"index]. See also [method capture_timestamp]." +msgstr "" +"返回渲染步骤的时间戳的名称,渲染步骤由 [param index] 指定。另见 [method " +"capture_timestamp]。" + +msgid "" +"Returns the total number of timestamps (rendering steps) available for " +"profiling." +msgstr "返回能够进行性能分析的时间戳(渲染步骤)总数。" + +msgid "" +"Returns the index of the last frame rendered that has rendering timestamps " +"available for querying." +msgstr "返回能够进行渲染时间戳查询的最后一个渲染帧的索引。" + msgid "" "Returns the name of the video adapter (e.g. \"GeForce GTX 1080/PCIe/SSE2\"). " "Equivalent to [method RenderingServer.get_video_adapter_name]. See also " @@ -92430,6 +97529,17 @@ msgstr "" "RenderingServer.get_video_adapter_name]。另见 [method " "get_device_vendor_name]。" +msgid "" +"Returns the universally unique identifier for the pipeline cache. This is " +"used to cache shader files on disk, which avoids shader recompilations on " +"subsequent engine runs. This UUID varies depending on the graphics card " +"model, but also the driver version. Therefore, updating graphics drivers will " +"invalidate the shader cache." +msgstr "" +"返回管线缓存的通用唯一标识符。用于将着色器文件缓存到磁盘,避免后续运行引擎时进" +"行着色器的重新编译。这个 UUID 会根据显卡型号以及驱动版本的不同而不同。因此,更" +"新图形驱动会使着色器缓存失效。" + msgid "" "Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\"). " "Equivalent to [method RenderingServer.get_video_adapter_vendor]. See also " @@ -92438,6 +97548,16 @@ msgstr "" "返回视频适配器的供应商(例如 \"NVIDIA Corporation\")。等价于 [method " "RenderingServer.get_video_adapter_vendor]。另见 [method get_device_name]。" +msgid "" +"Returns the unique identifier of the driver [param resource] for the " +"specified [param rid]. Some driver resource types ignore the specified [param " +"rid] (see [enum DriverResource] descriptions). [param index] is always " +"ignored but must be specified anyway." +msgstr "" +"返回指定 [param rid] 的驱动资源 [param resource] 的唯一标识符。部分驱动资源类" +"型会忽略指定的 [param rid](说明见 [enum DriverResource])。[param index] 始终" +"会被忽略,但仍然必须指定。" + msgid "" "Returns the frame count kept by the graphics API. Higher values result in " "higher input lag, but with more consistent throughput. For the main " @@ -92448,14 +97568,22 @@ msgstr "" "[RenderingDevice] 而言,帧会进行循环(启用三缓冲垂直同步时通常为 3)。但是局" "部 [RenderingDevice] 只有 1 帧。" +msgid "" +"Returns the memory usage in bytes corresponding to the given [param type]. " +"When using Vulkan, these statistics are calculated by [url=https://github.com/" +"GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator]Vulkan Memory Allocator[/url]." +msgstr "" +"返回与类型 [param type] 对应的内存用量,单位为字节。使用 Vulkan 时,会通过 " +"[url=https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator]Vulkan " +"Memory Allocator[/url] 计算这些统计信息。" + msgid "" "Creates a new index array. It can be accessed with the RID that is returned.\n" "Once finished with your RID, you will want to free the RID using the " "RenderingDevice's [method free_rid] method." msgstr "" "新建索引数组。可以通过返回的 RID 进行访问。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" msgid "" "Creates a new index buffer. It can be accessed with the RID that is " @@ -92464,8 +97592,19 @@ msgid "" "RenderingDevice's [method free_rid] method." msgstr "" "新建索引缓冲。可以通过返回的 RID 进行访问。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Returns the value of the specified [param limit]. This limit varies depending " +"on the current graphics hardware (and sometimes the driver version). If the " +"given limit is exceeded, rendering errors will occur.\n" +"Limits for various graphics hardware can be found in the [url=https://vulkan." +"gpuinfo.org/]Vulkan Hardware Database[/url]." +msgstr "" +"返回指定 [param limit] 的值。这个极限值取决于当前的图形硬件(有时也和驱动版本" +"有关)。如果超出了给定的极限,则会发生渲染错误。\n" +"各种图形硬件的极限可以在 [url=https://vulkan.gpuinfo.org/]Vulkan 硬件数据库[/" +"url]中找到。" msgid "" "Creates a new render pipeline. It can be accessed with the RID that is " @@ -92474,8 +97613,14 @@ msgid "" "RenderingDevice's [method free_rid] method." msgstr "" "新建渲染管线。可以通过返回的 RID 进行访问。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Returns [code]true[/code] if the render pipeline specified by the [param " +"render_pipeline] RID is valid, [code]false[/code] otherwise." +msgstr "" +"如果由 [param render_pipeline] RID 指定的渲染管线有效则返回 [code]true[/" +"code],否则返回 [code]false[/code]。" msgid "" "Creates a new sampler. It can be accessed with the RID that is returned.\n" @@ -92483,8 +97628,7 @@ msgid "" "RenderingDevice's [method free_rid] method." msgstr "" "新建采样器。可以通过返回的 RID 进行访问。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" msgid "" "Returns [code]true[/code] if implementation supports using a texture of " @@ -92505,6 +97649,99 @@ msgstr "" "[RenderingDevice] 有格式。对局部 [RenderingDevice] 调用时,这个方法会输出错误" "并返回 [constant INVALID_ID]。" +msgid "" +"Returns the window height matching the graphics API context for the given " +"window ID (in pixels). Despite the parameter being named [param screen], this " +"returns the [i]window[/i] size. See also [method screen_get_width].\n" +"[b]Note:[/b] Only the main [RenderingDevice] returned by [method " +"RenderingServer.get_rendering_device] has a height. If called on a local " +"[RenderingDevice], this method prints an error and returns [constant " +"INVALID_ID]." +msgstr "" +"返回与给定窗口 ID 图形 API 上下文相匹配的窗口高度(单位为像素)。虽然参数的名" +"字叫 [param screen],但返回的是[i]窗口[/i]的大小。另见 [method " +"screen_get_width]。\n" +"[b]注意:[/b]只有 [method RenderingServer.get_rendering_device] 返回的主 " +"[RenderingDevice] 有高度。如果对局部 [RenderingDevice] 调用,则会输出错误并返" +"回 [constant INVALID_ID]。" + +msgid "" +"Returns the window width matching the graphics API context for the given " +"window ID (in pixels). Despite the parameter being named [param screen], this " +"returns the [i]window[/i] size. See also [method screen_get_height].\n" +"[b]Note:[/b] Only the main [RenderingDevice] returned by [method " +"RenderingServer.get_rendering_device] has a width. If called on a local " +"[RenderingDevice], this method prints an error and returns [constant " +"INVALID_ID]." +msgstr "" +"返回与给定窗口 ID 图形 API 上下文相匹配的窗口宽度(单位为像素)。虽然参数的名" +"字叫 [param screen],但返回的是[i]窗口[/i]的大小。另见 [method " +"screen_get_height]。\n" +"[b]注意:[/b]只有 [method RenderingServer.get_rendering_device] 返回的主 " +"[RenderingDevice] 有宽度。如果对局部 [RenderingDevice] 调用,则会输出错误并返" +"回 [constant INVALID_ID]。" + +msgid "" +"Sets the resource name for [param id] to [param name]. This is used for " +"debugging with third-party tools such as [url=https://renderdoc." +"org/]RenderDoc[/url].\n" +"The following types of resources can be named: texture, sampler, vertex " +"buffer, index buffer, uniform buffer, texture buffer, storage buffer, uniform " +"set buffer, shader, render pipeline and compute pipeline. Framebuffers cannot " +"be named. Attempting to name an incompatible resource type will print an " +"error.\n" +"[b]Note:[/b] Resource names are only set when the engine runs in verbose mode " +"([method OS.is_stdout_verbose] = [code]true[/code]), or when using an engine " +"build compiled with the [code]dev_mode=yes[/code] SCons option. The graphics " +"driver must also support the [code]VK_EXT_DEBUG_UTILS_EXTENSION_NAME[/code] " +"Vulkan extension for named resources to work." +msgstr "" +"将 ID 为 [param id] 的资源名称设置为 [param name]。用于使用 [url=https://" +"renderdoc.org/]RenderDoc[/url] 等第三方工具进行调试。\n" +"可以为以下类型的资源命名:纹理、采样器、顶点缓冲、索引缓冲、uniform 缓冲、纹理" +"缓冲、存储缓冲、uniform 集缓冲、着色器、渲染管线、计算管线。无法为帧缓冲命名。" +"尝试为不兼容的资源类型命名会输出错误。\n" +"[b]注意:[/b]引擎以详细模式运行时([method OS.is_stdout_verbose] = " +"[code]true[/code]),或者使用 [code]dev_mode=yes[/code] SCons 选项编译引擎构建" +"时,才会设置资源的名称。图形驱动也必须支持 Vulkan 扩展 " +"[code]VK_EXT_DEBUG_UTILS_EXTENSION_NAME[/code] 具名资源才能正常工作。" + +msgid "" +"Compiles a binary shader from [param spirv_data] and returns the compiled " +"binary data as a [PackedByteArray]. This compiled shader is specific to the " +"GPU model and driver version used; it will not work on different GPU models " +"or even different driver versions. See also [method " +"shader_compile_spirv_from_source].\n" +"[param name] is an optional human-readable name that can be given to the " +"compiled shader for organizational purposes." +msgstr "" +"从 [param spirv_data] 编译二进制着色器,并将编译得到的二进制数据以 " +"[PackedByteArray] 的形式返回。编译后的着色器与所使用的 GPU 型号和驱动版本对" +"应;无法在不同的 GPU 型号甚至不同的驱动版本上正常工作。另见 [method " +"shader_compile_spirv_from_source]。\n" +"[param name] 是可选的人类可读名称,会给予编译后的着色器,方便组织。" + +msgid "" +"Compiles a SPIR-V from the shader source code in [param shader_source] and " +"returns the SPIR-V as a [RDShaderSPIRV]. This intermediate language shader is " +"portable across different GPU models and driver versions, but cannot be run " +"directly by GPUs until compiled into a binary shader using [method " +"shader_compile_binary_from_spirv].\n" +"If [param allow_cache] is [code]true[/code], make use of the shader cache " +"generated by Godot. This avoids a potentially lengthy shader compilation step " +"if the shader is already in cache. If [param allow_cache] is [code]false[/" +"code], Godot's shader cache is ignored and the shader will always be " +"recompiled." +msgstr "" +"将 [param shader_source] 中的着色器源代码编译为 [RDShaderSPIRV] 形式的 SPIR-" +"V。这种中间语言的着色器可以在不同 GPU 型号和驱动版本之间移植,但无法直接在 " +"GPU 上运行,需要先使用 [method shader_compile_binary_from_spirv] 编译为二进制" +"着色器。\n" +"如果 [param allow_cache] 为 [code]true[/code],则会使用 Godot 生成的着色器缓" +"存。如果着色器已经在缓存中,这样就可能避免冗长的着色器编译步骤。[param " +"allow_cache] 为 [code]false[/code],则会忽略 Godot 的着色器缓存,始终重新编译" +"着色器。" + msgid "" "Creates a new shader instance from a binary compiled shader. It can be " "accessed with the RID that is returned.\n" @@ -92513,8 +97750,8 @@ msgid "" "shader_compile_binary_from_spirv] and [method shader_create_from_spirv]." msgstr "" "根据二进制的已编译着色器创建新的着色器实例。可以通过返回的 RID 进行访问。\n" -"RID 使用结束后,应该使用 RenderingDevice 的 [method free_rid] 静态方法进行释" -"放。另见 [method shader_compile_binary_from_spirv] 和 [method " +"RID 使用结束后,应该使用 RenderingDevice 的 [method free_rid] 方法进行释放。另" +"见 [method shader_compile_binary_from_spirv] 和 [method " "shader_create_from_spirv]。" msgid "" @@ -92525,10 +97762,117 @@ msgid "" "shader_compile_spirv_from_source] and [method shader_create_from_bytecode]." msgstr "" "根据 SPIR-V 中间代码创建新的着色器实例。可以通过返回的 RID 进行访问。\n" -"RID 使用结束后,应该使用 RenderingDevice 的 [method free_rid] 静态方法进行释" -"放。另见 [method shader_compile_spirv_from_source] 和 [method " +"RID 使用结束后,应该使用 RenderingDevice 的 [method free_rid] 方法进行释放。另" +"见 [method shader_compile_spirv_from_source] 和 [method " "shader_create_from_bytecode]。" +msgid "" +"Creates a [url=https://vkguide.dev/docs/chapter-4/storage_buffers/]storage " +"buffer[/url] with the specified [param data] and [param usage]. It can be " +"accessed with the RID that is returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"创建带有指定数据 [param data] 用法为 [param usage] 的[url=https://vkguide.dev/" +"docs/chapter-4/storage_buffers/]存储缓冲[/url]。可以通过返回的 RID 进行访" +"问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Pushes the frame setup and draw command buffers then marks the local device " +"as currently processing (which allows calling [method sync]).\n" +"[b]Note:[/b] Only available in local RenderingDevices." +msgstr "" +"推送帧设置与绘图命令缓冲,然后将局部设备标记为当前正在处理(这样就能够调用 " +"[method sync])。\n" +"[b]注意:[/b]仅在局部 RenderingDevice 上可用。" + +msgid "" +"Forces a synchronization between the CPU and GPU, which may be required in " +"certain cases. Only call this when needed, as CPU-GPU synchronization has a " +"performance cost.\n" +"[b]Note:[/b] Only available in local RenderingDevices.\n" +"[b]Note:[/b] [method sync] can only be called after a [method submit]." +msgstr "" +"让 CPU 与 GPU 进行强制同步,部分场合可能需要进行这样的操作。请只在需要时调用," +"因为 CPU 与 GPU 的同步存在性能开销。\n" +"[b]注意:[/b]仅在局部 RenderingDevice 上可用。\n" +"[b]注意:[/b]只能在 [method submit] 后调用 [method sync]。" + +msgid "" +"Creates a new texture buffer. It can be accessed with the RID that is " +"returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"新建纹理缓冲。可以通过返回的 RID 进行访问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + +msgid "" +"Clears the specified [param texture] by replacing all of its pixels with the " +"specified [param color]. [param base_mipmap] and [param mipmap_count] " +"determine which mipmaps of the texture are affected by this clear operation, " +"while [param base_layer] and [param layer_count] determine which layers of a " +"3D texture (or texture array) are affected by this clear operation. For 2D " +"textures (which only have one layer by design), [param base_layer] and [param " +"layer_count] must both be [code]0[/code].\n" +"[b]Note:[/b] [param texture] can't be cleared while a draw list that uses it " +"as part of a framebuffer is being created. Ensure the draw list is finalized " +"(and that the color/depth texture using it is not set to [constant " +"FINAL_ACTION_CONTINUE]) to clear this texture." +msgstr "" +"将指定的 [param texture] 清屏,将所有像素替换为指定的颜色 [param color]。" +"[param base_mipmap] 和 [param mipmap_count] 决定该清屏操作影响纹理的哪个 " +"mipmap,而 [param base_layer] 和 [param layer_count] 决定该清屏操作影响 3D 纹" +"理(或纹理数组)的哪一层。如果是 2D 纹理(本来就只有一层),则 [param " +"base_layer] 和 [param layer_count] 必须都为 [code]0[/code]。\n" +"[b]注意:[/b]如果使用 [param texture] 的绘图列表是创建的帧缓冲的一部分,则该纹" +"理不能被清屏。绘图列表释放后(并且使用它的颜色和深度纹理没有被设为 [constant " +"FINAL_ACTION_CONTINUE])才能对该纹理做清屏操作。" + +msgid "" +"Copies the [param from_texture] to [param to_texture] with the specified " +"[param from_pos], [param to_pos] and [param size] coordinates. The Z axis of " +"the [param from_pos], [param to_pos] and [param size] must be [code]0[/code] " +"for 2-dimensional textures. Source and destination mipmaps/layers must also " +"be specified, with these parameters being [code]0[/code] for textures without " +"mipmaps or single-layer textures. Returns [constant @GlobalScope.OK] if the " +"texture copy was successful or [constant @GlobalScope.ERR_INVALID_PARAMETER] " +"otherwise.\n" +"[b]Note:[/b] [param from_texture] texture can't be copied while a draw list " +"that uses it as part of a framebuffer is being created. Ensure the draw list " +"is finalized (and that the color/depth texture using it is not set to " +"[constant FINAL_ACTION_CONTINUE]) to copy this texture.\n" +"[b]Note:[/b] [param from_texture] texture requires the [constant " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT] to be retrieved.\n" +"[b]Note:[/b] [param to_texture] can't be copied while a draw list that uses " +"it as part of a framebuffer is being created. Ensure the draw list is " +"finalized (and that the color/depth texture using it is not set to [constant " +"FINAL_ACTION_CONTINUE]) to copy this texture.\n" +"[b]Note:[/b] [param to_texture] requires the [constant " +"TEXTURE_USAGE_CAN_COPY_TO_BIT] to be retrieved.\n" +"[b]Note:[/b] [param from_texture] and [param to_texture] must be of the same " +"type (color or depth)." +msgstr "" +"将 [param from_texture] 复制到 [param to_texture],使用指定的 [param " +"from_pos]、[param to_pos] 和 [param size] 坐标。对于二维纹理,[param " +"from_pos]、[param to_pos] 和 [param size] 的 Z 轴必须为 [code]0[/code]。来源和" +"目标的 mipmap/图层也必须指定,对于没有 mipmap 或单层纹理的情况,这些参数应为 " +"[code]0[/code]。如果纹理复制成功,则返回 [constant @GlobalScope.OK],否则返回 " +"[constant @GlobalScope.ERR_INVALID_PARAMETER]。\n" +"[b]注意:[/b]如果使用 [param from_texture] 纹理的绘图列表是创建的帧缓冲的一部" +"分,则无法复制。请确保绘图列表已经完成(并且使用它的颜色/深度纹理没有设置为 " +"[constant FINAL_ACTION_CONTINUE]),然后再复制纹理。\n" +"[b]注意:[/b][param from_texture] 纹理需要获取 [constant " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT]。\n" +"[b]注意:[/b]如果使用 [param to_texture] 纹理的绘图列表是创建的帧缓冲的一部" +"分,则无法复制。请确保绘图列表已经完成(并且使用它的颜色/深度纹理没有设置为 " +"[constant FINAL_ACTION_CONTINUE]),然后再复制纹理。\n" +"[b]注意:[/b][param to_texture] 纹理需要获取 [constant " +"TEXTURE_USAGE_CAN_COPY_TO_BIT]。\n" +"[b]注意:[/b][param from_texture] 和 [param to_texture] 的类型必须相同(颜色或" +"深度)。" + msgid "" "Creates a new texture. It can be accessed with the RID that is returned.\n" "Once finished with your RID, you will want to free the RID using the " @@ -92537,12 +97881,58 @@ msgid "" "texture_2d_create], which creates the Godot-specific [Texture2D] resource as " "opposed to the graphics API's own texture type." msgstr "" -"创建新的纹理。可以通过返回的 RID 进行访问。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"新建纹理。可以通过返回的 RID 进行访问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]请勿与 [method RenderingServer.texture_2d_create] 混淆,后者创建" "的是 Godot 专属的 [Texture2D] 资源,不是图形 API 自己的纹理类型。" +msgid "" +"Creates a shared texture using the specified [param view] and the texture " +"information from [param with_texture]." +msgstr "" +"使用指定的 [param view] 和 [param with_texture] 中的纹理信息创建共享纹理。" + +msgid "" +"Creates a shared texture using the specified [param view] and the texture " +"information from [param with_texture]'s [param layer] and [param mipmap]. The " +"number of included mipmaps from the original texture can be controlled using " +"the [param mipmaps] parameter. Only relevant for textures with multiple " +"layers, such as 3D textures, texture arrays and cubemaps. For single-layer " +"textures, use [method texture_create_shared]\n" +"For 2D textures (which only have one layer), [param layer] must be [code]0[/" +"code].\n" +"[b]Note:[/b] Layer slicing is only supported for 2D texture arrays, not 3D " +"textures or cubemaps." +msgstr "" +"使用指定的 [param view] 和 [param with_texture] 的 [param layer] 和 [param " +"mipmap] 中的纹理信息创建共享纹理。可以使用 [param mipmaps] 参数控制从原始纹理" +"中包含的 mipmap 数量。仅适用于 3D 纹理、纹理数组、立方体贴图等多层纹理。单层纹" +"理请使用 [method texture_create_shared]。\n" +"对于 2D 纹理(仅有一个图层),[param layer] 必须为 [code]0[/code]。\n" +"[b]注意:[/b]图层切片仅支持 2D 纹理数组,不支持 3D 纹理或立方体贴图。" + +msgid "" +"Returns the [param texture] data for the specified [param layer] as raw " +"binary data. For 2D textures (which only have one layer), [param layer] must " +"be [code]0[/code].\n" +"[b]Note:[/b] [param texture] can't be retrieved while a draw list that uses " +"it as part of a framebuffer is being created. Ensure the draw list is " +"finalized (and that the color/depth texture using it is not set to [constant " +"FINAL_ACTION_CONTINUE]) to retrieve this texture. Otherwise, an error is " +"printed and a empty [PackedByteArray] is returned.\n" +"[b]Note:[/b] [param texture] requires the [constant " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT] to be retrieved. Otherwise, an error is " +"printed and a empty [PackedByteArray] is returned." +msgstr "" +"将纹理 [param texture] 中指定层 [param layer] 的纹理数据以原始二进制数据的形式" +"返回。2D 纹理(只有一层)的 [param layer] 必须为 [code]0[/code]。\n" +"[b]注意:[/b]如果使用 [param texture] 纹理的绘图列表是创建的帧缓冲的一部分,则" +"无法获取。请确保绘图列表已经完成(并且使用它的颜色/深度纹理没有设置为 " +"[constant FINAL_ACTION_CONTINUE]),然后获取纹理。否则会输出错误并返回空的 " +"[PackedByteArray]。\n" +"[b]注意:[/b][param texture] 纹理需要获取 [constant " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT]。否则会输出错误并返回空的 [PackedByteArray]。" + msgid "" "Returns the internal graphics handle for this texture object. For use when " "communicating with third-party APIs mostly with GDExtension.\n" @@ -92574,6 +97964,84 @@ msgstr "" "如果 [param texture] 有效,则返回 [code]true[/code],否则返回 [code]false[/" "code]。" +msgid "" +"Resolves the [param from_texture] texture onto [param to_texture] with " +"multisample antialiasing enabled. This must be used when rendering a " +"framebuffer for MSAA to work. Returns [constant @GlobalScope.OK] if " +"successful, [constant @GlobalScope.ERR_INVALID_PARAMETER] otherwise.\n" +"[b]Note:[/b] [param from_texture] and [param to_texture] textures must have " +"the same dimension, format and type (color or depth).\n" +"[b]Note:[/b] [param from_texture] can't be copied while a draw list that uses " +"it as part of a framebuffer is being created. Ensure the draw list is " +"finalized (and that the color/depth texture using it is not set to [constant " +"FINAL_ACTION_CONTINUE]) to resolve this texture.\n" +"[b]Note:[/b] [param from_texture] requires the [constant " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT] to be retrieved.\n" +"[b]Note:[/b] [param from_texture] must be multisampled and must also be 2D " +"(or a slice of a 3D/cubemap texture).\n" +"[b]Note:[/b] [param to_texture] can't be copied while a draw list that uses " +"it as part of a framebuffer is being created. Ensure the draw list is " +"finalized (and that the color/depth texture using it is not set to [constant " +"FINAL_ACTION_CONTINUE]) to resolve this texture.\n" +"[b]Note:[/b] [param to_texture] texture requires the [constant " +"TEXTURE_USAGE_CAN_COPY_TO_BIT] to be retrieved.\n" +"[b]Note:[/b] [param to_texture] texture must [b]not[/b] be multisampled and " +"must also be 2D (or a slice of a 3D/cubemap texture)." +msgstr "" +"启用多重采样抗锯齿,将 [param from_texture] 纹理溶解至 [param to_texture]。启" +"用后才能够正常渲染 MSAA 帧缓冲。成功时返回 [constant @GlobalScope.OK],否则返" +"回 [constant @GlobalScope.ERR_INVALID_PARAMETER]。\n" +"[b]注意:[/b][param from_texture] 和 [param to_texture] 的尺寸、格式、类型(颜" +"色或深度)都必须相同。\n" +"[b]注意:[/b]如果使用 [param from_texture] 纹理的绘图列表是创建的帧缓冲的一部" +"分,则无法复制。请确保绘图列表已经完成(并且使用它的颜色/深度纹理没有设置为 " +"[constant FINAL_ACTION_CONTINUE]),然后再复制纹理。\n" +"[b]注意:[/b][param from_texture] 纹理需要获取 [constant " +"TEXTURE_USAGE_CAN_COPY_FROM_BIT]。\n" +"[b]注意:[/b][param from_texture] 纹理必须为多重采样,并且必须为 2D 纹理(或者" +"是 3D/立方体贴图纹理的切片)。\n" +"[b]注意:[/b]如果使用 [param to_texture] 纹理的绘图列表是创建的帧缓冲的一部" +"分,则无法复制。请确保绘图列表已经完成(并且使用它的颜色/深度纹理没有设置为 " +"[constant FINAL_ACTION_CONTINUE]),然后再溶解纹理。\n" +"[b]注意:[/b][param to_texture] 纹理需要获取 [constant " +"TEXTURE_USAGE_CAN_COPY_TO_BIT]。\n" +"[b]注意:[/b][param from_texture] 纹理必须[b]不能[/b]是多重采样,并且必须为 " +"2D 纹理(或者是 3D/立方体贴图纹理的切片)。" + +msgid "" +"Updates texture data with new data, replacing the previous data in place. The " +"updated texture data must have the same dimensions and format. For 2D " +"textures (which only have one layer), [param layer] must be [code]0[/code]. " +"Returns [constant @GlobalScope.OK] if the update was successful, [constant " +"@GlobalScope.ERR_INVALID_PARAMETER] otherwise.\n" +"[b]Note:[/b] Updating textures is forbidden during creation of a draw or " +"compute list.\n" +"[b]Note:[/b] The existing [param texture] can't be updated while a draw list " +"that uses it as part of a framebuffer is being created. Ensure the draw list " +"is finalized (and that the color/depth texture using it is not set to " +"[constant FINAL_ACTION_CONTINUE]) to update this texture.\n" +"[b]Note:[/b] The existing [param texture] requires the [constant " +"TEXTURE_USAGE_CAN_UPDATE_BIT] to be updatable." +msgstr "" +"使用新的数据更新纹理数据,会原地替换之前的数据。更新后的纹理数据必须和原有尺" +"寸、格式一致。2D 纹理(只有一层)的 [param layer] 必须为 [code]0[/code]。如果" +"更新成功则返回 [constant @GlobalScope.OK],否则返回 [constant @GlobalScope." +"ERR_INVALID_PARAMETER]。\n" +"[b]注意:[/b]精致在创建绘图列表或计算列表时更新纹理。\n" +"[b]注意:[/b]如果使用 [param texture] 纹理的绘图列表是创建的帧缓冲的一部分,则" +"无法更新。请确保绘图列表已经完成(并且使用它的颜色/深度纹理没有设置为 " +"[constant FINAL_ACTION_CONTINUE]),然后再更新纹理。\n" +"[b]注意:[/b][param texture] 纹理需要获取 [constant " +"TEXTURE_USAGE_CAN_UPDATE_BIT]。" + +msgid "" +"It can be accessed with the RID that is returned.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingDevice's [method free_rid] method." +msgstr "" +"可以通过返回的 RID 进行访问。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" + msgid "" "Creates a vertex array based on the specified buffers. Optionally, [param " "offsets] (in bytes) may be defined for each buffer." @@ -92581,6 +98049,14 @@ msgstr "" "根据给定的缓冲区创建顶点数组。还可以为各个缓冲区定义偏移量 [param offsets](单" "位为字节)。" +msgid "" +"Creates a new vertex format with the specified [param vertex_descriptions]. " +"Returns a unique vertex format ID corresponding to the newly created vertex " +"format." +msgstr "" +"新建顶点描述为 [param vertex_descriptions] 的顶点格式。返回与新建顶点格式对应" +"的唯一格式 ID。" + msgid "" "Rendering device type does not match any of the other enum values or is " "unknown." @@ -94697,12 +100173,107 @@ msgid "" "will result in a blurry look." msgstr "双线性采样器过滤。按照比源更高分辨率采样时,会产生模糊的效果。" +msgid "Sample with repeating enabled." +msgstr "启用重复采样。" + +msgid "" +"Sample with mirrored repeating enabled. When sampling outside the [code][0.0, " +"1.0][/code] range, return a mirrored version of the sampler. This mirrored " +"version is mirrored again if sampling further away, with the pattern " +"repeating indefinitely." +msgstr "" +"启用镜像重复采样。对 [code][0.0, 1.0][/code] 范围外进行采样时,返回采样器的镜" +"像版本。如果采样的是更远的位置,则会对镜像版本再次镜像,并按照这样的规律无限重" +"复下去。" + +msgid "" +"Sample with repeating disabled. When sampling outside the [code][0.0, 1.0][/" +"code] range, return the color of the last pixel on the edge." +msgstr "" +"禁用重复采样。对 [code][0.0, 1.0][/code] 范围外进行采样时,返回边缘上最后一个" +"像素的颜色。" + +msgid "" +"Sample with repeating disabled. When sampling outside the [code][0.0, 1.0][/" +"code] range, return the specified [member RDSamplerState.border_color]." +msgstr "" +"禁用重复采样。对 [code][0.0, 1.0][/code] 范围外进行采样时,返回指定的边框颜色 " +"[member RDSamplerState.border_color]。" + +msgid "" +"Sample with mirrored repeating enabled, but only once. When sampling in the " +"[code][-1.0, 0.0][/code] range, return a mirrored version of the sampler. " +"When sampling outside the [code][-1.0, 1.0][/code] range, return the color of " +"the last pixel on the edge." +msgstr "" +"启用单次镜像重复采样。对 [code][-1.0, 0.0][/code] 范围进行采样时,返回采样器的" +"镜像版本。对 [code][-1.0, 1.0][/code] 范围外进行采样时,返回边缘上最后一个像素" +"的颜色。" + msgid "Represents the size of the [enum SamplerRepeatMode] enum." msgstr "代表 [enum SamplerRepeatMode] 枚举的大小。" +msgid "" +"Return a floating-point transparent black color when sampling outside the " +"[code][0.0, 1.0][/code] range. Only effective if the sampler repeat mode is " +"[constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER]." +msgstr "" +"对 [code][0.0, 1.0][/code] 范围外进行采样时,返回浮点型的透明黑色。仅在采样器" +"的重复模式为 [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER] 时有效。" + +msgid "" +"Return a integer transparent black color when sampling outside the [code]" +"[0.0, 1.0][/code] range. Only effective if the sampler repeat mode is " +"[constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER]." +msgstr "" +"对 [code][0.0, 1.0][/code] 范围外进行采样时,返回整型的透明黑色。仅在采样器的" +"重复模式为 [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER] 时有效。" + +msgid "" +"Return a floating-point opaque black color when sampling outside the [code]" +"[0.0, 1.0][/code] range. Only effective if the sampler repeat mode is " +"[constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER]." +msgstr "" +"对 [code][0.0, 1.0][/code] 范围外进行采样时,返回浮点型的不透明黑色。仅在采样" +"器的重复模式为 [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER] 时有效。" + +msgid "" +"Return a integer opaque black color when sampling outside the [code][0.0, 1.0]" +"[/code] range. Only effective if the sampler repeat mode is [constant " +"SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER]." +msgstr "" +"对 [code][0.0, 1.0][/code] 范围外进行采样时,返回整型的不透明黑色。仅在采样器" +"的重复模式为 [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER] 时有效。" + +msgid "" +"Return a floating-point opaque white color when sampling outside the [code]" +"[0.0, 1.0][/code] range. Only effective if the sampler repeat mode is " +"[constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER]." +msgstr "" +"对 [code][0.0, 1.0][/code] 范围外进行采样时,返回浮点型的不透明白色。仅在采样" +"器的重复模式为 [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER] 时有效。" + +msgid "" +"Return a integer opaque white color when sampling outside the [code][0.0, 1.0]" +"[/code] range. Only effective if the sampler repeat mode is [constant " +"SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER]." +msgstr "" +"对 [code][0.0, 1.0][/code] 范围外进行采样时,返回整型的不透明白色。仅在采样器" +"的重复模式为 [constant SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER] 时有效。" + msgid "Represents the size of the [enum SamplerBorderColor] enum." msgstr "代表 [enum SamplerBorderColor] 枚举的大小。" +msgid "" +"Vertex attribute addressing is a function of the vertex. This is used to " +"specify the rate at which vertex attributes are pulled from buffers." +msgstr "顶点属性寻址是顶点的功能。用于指定从缓冲中拉取顶点属性的频率。" + +msgid "" +"Vertex attribute addressing is a function of the instance index. This is used " +"to specify the rate at which vertex attributes are pulled from buffers." +msgstr "顶点属性寻址是实例索引的功能。用于指定从缓冲中拉取顶点属性的频率。" + msgid "" "Index buffer in 16-bit unsigned integer format. This limits the maximum index " "that can be specified to [code]65535[/code]." @@ -94830,6 +100401,23 @@ msgstr "" "据。[/url]\n" "[b]注意:[/b]邻接数据仅在几何着色器中有用,但 Godot 并没有暴露。" +msgid "" +"Triangle strip rendering primitive with [i]primitive restart[/i] enabled. " +"Triangles drawn are connected to the previous triangle, but a primitive " +"restart index can be specified before drawing to create a second triangle " +"strip after the specified index.\n" +"[b]Note:[/b] Only compatible with indexed draws." +msgstr "" +"渲染三角形条带的图元,启用[i]图元重启[/i]。绘制的三角形与它的前一个三角形是相" +"连的,但是在绘制前可以指定图元重启索引,这样在指定索引之后就会再创建一条三角形" +"条带。\n" +"[b]注意:[/b]仅兼容索引绘图。" + +msgid "" +"Tessellation patch rendering primitive. Only useful with tessellation " +"shaders, which can be used to deform these patches." +msgstr "曲面细分面片渲染图元。仅对曲面细分着色器有用,可以将面片变形。" + msgid "Represents the size of the [enum RenderPrimitive] enum." msgstr "代表 [enum RenderPrimitive] 枚举的大小。" @@ -95179,12 +100767,98 @@ msgstr "" msgid "Represents the size of the [enum InitialAction] enum." msgstr "代表 [enum InitialAction] 枚举的大小。" +msgid "" +"Store the texture for reading and make it read-only if it has the [constant " +"TEXTURE_USAGE_SAMPLING_BIT] bit (only applies to color, depth and stencil " +"attachments)." +msgstr "" +"以读取为目的存储纹理,如果设置了 [constant TEXTURE_USAGE_SAMPLING_BIT] 位则将" +"其设为只读(仅适用于颜色、深度、模板附件)。" + +msgid "" +"Discard the texture data and make it read-only if it has the [constant " +"TEXTURE_USAGE_SAMPLING_BIT] bit (only applies to color, depth and stencil " +"attachments)." +msgstr "" +"丢弃纹理数据,如果设置了 [constant TEXTURE_USAGE_SAMPLING_BIT] 位则将其设为只" +"读(仅适用于颜色、深度、模板附件)。" + +msgid "" +"Store the texture and continue for further processing. Similar to [constant " +"FINAL_ACTION_READ], but does not make the texture read-only if it has the " +"[constant TEXTURE_USAGE_SAMPLING_BIT] bit." +msgstr "" +"存储纹理并继续后续处理。与 [constant FINAL_ACTION_READ] 类似,但不会在设置了 " +"[constant TEXTURE_USAGE_SAMPLING_BIT] 位时将其设为只读。" + msgid "Represents the size of the [enum FinalAction] enum." msgstr "代表 [enum FinalAction] 枚举的大小。" +msgid "" +"Vertex shader stage. This can be used to manipulate vertices from a shader " +"(but not create new vertices)." +msgstr "顶点着色器阶段。可用于在着色器中操作顶点(但无法新建顶点)。" + +msgid "" +"Fragment shader stage (called \"pixel shader\" in Direct3D). This can be used " +"to manipulate pixels from a shader." +msgstr "" +"片段着色器阶段(Direct3D 中成为“像素着色器”)。可用于在着色器中操作像素。" + +msgid "" +"Tessellation control shader stage. This can be used to create additional " +"geometry from a shader." +msgstr "曲面细分控制着色器阶段。可用于在着色器中创建额外的几何体。" + +msgid "" +"Tessellation evaluation shader stage. This can be used to create additional " +"geometry from a shader." +msgstr "曲面细分求值着色器阶段。可用于在着色器中创建额外的几何体。" + +msgid "" +"Compute shader stage. This can be used to run arbitrary computing tasks in a " +"shader, performing them on the GPU instead of the CPU." +msgstr "" +"计算着色器阶段。可用于在着色器中执行任意计算任务,在 GPU 而不是 CPU 上进行计" +"算。" + msgid "Represents the size of the [enum ShaderStage] enum." msgstr "代表 [enum ShaderStage] 枚举的大小。" +msgid "Vertex shader stage bit (see also [constant SHADER_STAGE_VERTEX])." +msgstr "顶点着色器阶段位(另见 [constant SHADER_STAGE_VERTEX])。" + +msgid "Fragment shader stage bit (see also [constant SHADER_STAGE_FRAGMENT])." +msgstr "片段着色器阶段位(另见 [constant SHADER_STAGE_FRAGMENT])。" + +msgid "" +"Tessellation control shader stage bit (see also [constant " +"SHADER_STAGE_TESSELATION_CONTROL])." +msgstr "" +"曲面细分控制着色器阶段位(另见 [constant SHADER_STAGE_TESSELATION_CONTROL])。" + +msgid "" +"Tessellation evaluation shader stage bit (see also [constant " +"SHADER_STAGE_TESSELATION_EVALUATION])." +msgstr "" +"曲面细分求值着色器阶段位(另见 [constant " +"SHADER_STAGE_TESSELATION_EVALUATION])。" + +msgid "Compute shader stage bit (see also [constant SHADER_STAGE_COMPUTE])." +msgstr "计算着色器阶段位(另见 [constant SHADER_STAGE_COMPUTE])。" + +msgid "" +"Khronos' GLSL shading language (used natively by OpenGL and Vulkan). This is " +"the language used for core Godot shaders." +msgstr "" +"Khronos 的 GLSL 着色语言(OpenGL 和 Vulkan 原生使用)。这是核心 Godot 着色器所" +"使用的语言。" + +msgid "" +"Microsoft's High-Level Shading Language (used natively by Direct3D, but can " +"also be used in Vulkan)." +msgstr "Microsoft 的高级着色器语言(Direct3D 原生使用,Vulkan 中也能使用)。" + msgid "Boolean specialization constant." msgstr "布尔型特化常量。" @@ -95194,12 +100868,45 @@ msgstr "整型特化常量。" msgid "Floating-point specialization constant." msgstr "浮点型特化常量。" +msgid "Maximum number of uniform sets that can be bound at a given time." +msgstr "能够同时绑定的最大 uniform 集的数量。" + +msgid "" +"Maximum number of color framebuffer attachments that can be used at a given " +"time." +msgstr "能够同时使用的最大颜色帧缓冲附件的数量。" + +msgid "Maximum number of textures that can be used per uniform set." +msgstr "单个 uniform 集能够使用的最大纹理数量。" + +msgid "Maximum number of samplers that can be used per uniform set." +msgstr "单个 uniform 集能够使用的最大采样器数量。" + +msgid "" +"Maximum number of [url=https://vkguide.dev/docs/chapter-4/" +"storage_buffers/]storage buffers[/url] per uniform set." +msgstr "" +"单个 uniform 集的最大[url=https://vkguide.dev/docs/chapter-4/storage_buffers/]" +"存储缓冲[/url]数量。" + +msgid "Maximum number of storage images per uniform set." +msgstr "单个 uniform 集的最大存储图像数量。" + +msgid "Maximum number of uniform buffers per uniform set." +msgstr "单个 uniform 集的最大 uniform 缓冲数量。" + +msgid "Maximum index for an indexed draw command." +msgstr "索引绘图指令的最大索引。" + msgid "Maximum height of a framebuffer (in pixels)." msgstr "帧缓冲的最大高度(单位为像素)。" msgid "Maximum width of a framebuffer (in pixels)." msgstr "帧缓冲的最大宽度(单位为像素)。" +msgid "Maximum number of texture array layers." +msgstr "纹理数组的最大层数。" + msgid "" "Maximum supported 1-dimensional texture size (in pixels on a single axis)." msgstr "支持的一维纹理的最大尺寸(单轴像素数)。" @@ -95233,6 +100940,14 @@ msgstr "" msgid "Maximum number of storage images per shader stage." msgstr "每个着色器阶段的最大存储图像数。" +msgid "" +"Maximum size of a push constant. A lot of devices are limited to 128 bytes, " +"so try to avoid exceeding 128 bytes in push constants to ensure compatibility " +"even if your GPU is reporting a higher value." +msgstr "" +"推送常量的最大大小。许多设备都有 128 字节的限制,所以即便你的 GPU 汇报的值更" +"大,也请尝试避免让推送常量超过 127 字节,从而确保兼容性。" + msgid "Maximum size of a uniform buffer." msgstr "Uniform 缓冲的最大大小。" @@ -95395,8 +101110,7 @@ msgid "" msgstr "" "创建相机属性对象并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这" "个 RID 会在所有 [code]camera_attributes_[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价资源为 [CameraAttributes]。" msgid "" @@ -95473,8 +101187,7 @@ msgid "" msgstr "" "创建 3D 相机并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]camera_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [Camera3D]。" msgid "" @@ -95540,8 +101253,7 @@ msgid "" msgstr "" "创建画布并返回分配的 [RID]。可以通过返回的 RID 进行访问。这个 RID 会在所有 " "[code]canvas_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "没有与画布等价的 [Resource] 或 [Node]。" msgid "" @@ -95670,7 +101382,7 @@ msgstr "" "[b]注意:[/b][param count] 未使用,可以不指定。" msgid "Clears the [CanvasItem] and removes all commands in it." -msgstr "清除[CanvasItem]并删除其中的所有命令。" +msgstr "清空 [CanvasItem] 并删除其中的所有命令。" msgid "" "Creates a new CanvasItem instance and returns its [RID]. It can be accessed " @@ -95682,10 +101394,37 @@ msgid "" msgstr "" "新建 CanvasItem 实例并返回其 [RID]。可以通过返回的 RID 进行访问。这个 RID 会在" "所有 [code]canvas_item_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [CanvasItem]。" +msgid "" +"Sets the canvas group mode used during 2D rendering for the canvas item " +"specified by the [param item] RID. For faster but more limited clipping, use " +"[method canvas_item_set_clip] instead.\n" +"[b]Note:[/b] The equivalent node functionality is found in [CanvasGroup] and " +"[member CanvasItem.clip_children]." +msgstr "" +"设置对画布项进行 2D 渲染时使用的画布分组模式,画布项由 [param item] RID 指定。" +"要使用更快速但局限性更大的裁剪,请改用 [method canvas_item_set_clip]。\n" +"[b]注意:[/b]等价的节点功能可以在 [CanvasGroup] 和 [member CanvasItem." +"clip_children] 中找到。" + +msgid "" +"If [param clip] is [code]true[/code], makes the canvas item specified by the " +"[param item] RID not draw anything outside of its rect's coordinates. This " +"clipping is fast, but works only with axis-aligned rectangles. This means " +"that rotation is ignored by the clipping rectangle. For more advanced " +"clipping shapes, use [method canvas_item_set_canvas_group_mode] instead.\n" +"[b]Note:[/b] The equivalent node functionality is found in [member Label." +"clip_text], [RichTextLabel] (always enabled) and more." +msgstr "" +"如果 [param clip] 为 [code]true[/code],则画布项不会在其矩形坐标之外绘制内容," +"画布项由 [param item] RID 指定。这种裁剪很快,但只能用于轴对齐的矩形。也就是说" +"裁剪矩形会忽略旋转。更高阶的裁剪形状请改用 [method " +"canvas_item_set_canvas_group_mode]。\n" +"[b]注意:[/b]等价的节点功能可以在 [member Label.clip_text]、[RichTextLabel]" +"(始终启用)等处找到。" + msgid "Sets the [CanvasItem] to copy a rect to the backbuffer." msgstr "设置 [CanvasItem] 以将矩形复制到后台缓冲区。" @@ -95835,7 +101574,7 @@ msgstr "设置 [CanvasItem] 的 Z 索引,即它的绘制顺序(首先绘制 msgid "" "Attaches the canvas light to the canvas. Removes it from its previous canvas." -msgstr "将画布灯连接到画布上,并将其从以前的画布中取出。" +msgstr "将画布灯连接到画布上,并将其从以前的画布中取出。" msgid "" "Creates a canvas light and adds it to the RenderingServer. It can be accessed " @@ -95847,8 +101586,7 @@ msgid "" msgstr "" "创建画布灯光并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]canvas_light_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [Light2D]。" msgid "" @@ -95866,8 +101604,7 @@ msgstr "" "创建光线遮挡器并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]canvas_light_occluder_*[/code] RenderingServer 函数中使" "用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [LightOccluder2D]。" msgid "Enables or disables light occluder." @@ -95965,11 +101702,10 @@ msgid "" "RenderingServer's [method free_rid] method.\n" "[b]Note:[/b] The equivalent resource is [OccluderPolygon2D]." msgstr "" -"创建一个新的光线遮挡多边形并将其添加到 RenderingServer。可以通过返回的 RID 进" -"行访问。这个 RID 会在所有 [code]canvas_occluder_polygon_*[/code] " -"RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"新建光线遮挡多边形并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。" +"这个 RID 会在所有 [code]canvas_occluder_polygon_*[/code] RenderingServer 函数" +"中使用。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [OccluderPolygon2D]。" msgid "" @@ -96008,8 +101744,8 @@ msgid "" msgstr "" "创建画布纹理并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]canvas_texture_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。另" +"见 [method texture_2d_create]。\n" "[b]注意:[/b]等价资源为 [CanvasTexture],应该仅用于 2D 渲染,不用于 3D。" msgid "" @@ -96070,8 +101806,7 @@ msgid "" msgstr "" "创建贴花并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会" "在所有 [code]decal_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个贴花放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。\n" "[b]注意:[/b]等价节点为 [Decal]。" @@ -96141,7 +101876,7 @@ msgid "" "specified decal. Equivalent to [method Decal.set_texture]." msgstr "" "设置指定贴花中给定纹理类型插槽 [param type] 的纹理 [param texture]。等价于 " -"[member Decal.set_texture]。" +"[method Decal.set_texture]。" msgid "" "Sets the texture [param filter] mode to use when rendering decals. This " @@ -96162,8 +101897,7 @@ msgid "" msgstr "" "创建平行光并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID " "会在大多数 [code]light_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个平行光放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。\n" "[b]注意:[/b]等价节点为 [DirectionalLight3D]。" @@ -96187,6 +101921,32 @@ msgstr "" "rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality]。" "这个参数是全局的,无法针对某个视口单独设置。" +msgid "" +"Generates and returns an [Image] containing the radiance map for the " +"specified [param environment] RID's sky. This supports built-in sky material " +"and custom sky shaders. If [param bake_irradiance] is [code]true[/code], the " +"irradiance map is saved instead of the radiance map. The radiance map is used " +"to render reflected light, while the irradiance map is used to render ambient " +"light. See also [method sky_bake_panorama].\n" +"[b]Note:[/b] The image is saved in linear color space without any tonemapping " +"performed, which means it will look too dark if viewed directly in an image " +"editor.\n" +"[b]Note:[/b] [param size] should be a 2:1 aspect ratio for the generated " +"panorama to have square pixels. For radiance maps, there is no point in using " +"a height greater than [member Sky.radiance_size], as it won't increase " +"detail. Irradiance maps only contain low-frequency data, so there is usually " +"no point in going past a size of 128×64 pixels when saving an irradiance map." +msgstr "" +"生成并返回包含 [param environment] RID 中的天空的辐射度贴图的 [Image]。支持内" +"置天空材质和自定义天空着色器。如果 [param bake_irradiance] 为 [code]true[/" +"code],则保存的是辐照度贴图,而不是辐射度贴图。辐射度贴图用于渲染反射光,而辐" +"照度贴图用于渲染环境光。另见 [method sky_bake_panorama]。\n" +"[b]注意:[/b]图像使用线性色彩空间保存,未执行任何色调映射,也就是说如果在图像" +"编辑器中查看会显得太暗。\n" +"[b]注意:[/b]要让生成的全景图拥有正方形的像素,[param size] 的长宽比应该为 " +"2:1。辐射度贴图的高度超过 [member Sky.radiance_size] 没有意义,不会增加细节。" +"辐照度仅包含低频数据,保存时超过 128×64 像素通常没有意义。" + msgid "" "Creates an environment and adds it to the RenderingServer. It can be accessed " "with the RID that is returned. This RID will be used in all " @@ -96197,10 +101957,18 @@ msgid "" msgstr "" "创建环境并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会" "在所有 [code]environment_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价资源为 [Environment]。" +msgid "" +"If [param enable] is [code]true[/code], enables bicubic upscaling for glow " +"which improves quality at the cost of performance. Equivalent to [member " +"ProjectSettings.rendering/environment/glow/upscale_mode]." +msgstr "" +"如果 [param enable] 为 [code]true[/code],则会为辉光启用双三次插值,能够牺牲性" +"能、提升质量。等价于 [member ProjectSettings.rendering/environment/glow/" +"upscale_mode]。" + msgid "" "Sets the values to be used with the \"adjustments\" post-process effect. See " "[Environment] for more details." @@ -96350,8 +102118,7 @@ msgid "" msgstr "" "新建雾体积并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID " "会在所有 [code]fog_volume_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [FogVolume]。" msgid "" @@ -96410,6 +102177,16 @@ msgstr "" "返回默认清屏颜色,会在没有选择特定的清屏颜色时使用。另见 [method " "set_default_clear_color]。" +msgid "" +"Returns the time taken to setup rendering on the CPU in milliseconds. This " +"value is shared across all viewports and does [i]not[/i] require [method " +"viewport_set_measure_render_time] to be enabled on a viewport to be queried. " +"See also [method viewport_get_measured_render_time_cpu]." +msgstr "" +"返回在 CPU 上设置渲染所消耗的时间,单位为毫秒。这个值是所有视口共享的,[i]不需" +"要[/i]在查询的视口上启用 [method viewport_set_measure_render_time]。另见 " +"[method viewport_get_measured_render_time_cpu]。" + msgid "" "Returns the global RenderingDevice.\n" "[b]Note:[/b] When using the OpenGL backend or when running in headless mode, " @@ -96419,6 +102196,42 @@ msgstr "" "[b]注意:[/b]当使用 OpenGL 后端或在无头模式下运行时,这个函数始终返回 " "[code]null[/code]。" +msgid "" +"Returns a statistic about the rendering engine which can be used for " +"performance profiling. See [enum RenderingServer.RenderingInfo] for a list of " +"values that can be queried. See also [method viewport_get_render_info], which " +"returns information specific to a viewport.\n" +"[b]Note:[/b] Only 3D rendering is currently taken into account by some of " +"these values, such as the number of draw calls.\n" +"[b]Note:[/b] Rendering information is not available until at least 2 frames " +"have been rendered by the engine. If rendering information is not available, " +"[method get_rendering_info] returns [code]0[/code]. To print rendering " +"information in [code]_ready()[/code] successfully, use the following:\n" +"[codeblock]\n" +"func _ready():\n" +" for _i in 2:\n" +" await get_tree().process_frame\n" +"\n" +" print(RenderingServer." +"get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME))\n" +"[/codeblock]" +msgstr "" +"返回关于渲染引擎的统计信息,能够用于性能分析。能够查询的值的列表见 [enum " +"RenderingServer.RenderingInfo]。另见 [method viewport_get_render_info],返回的" +"是某个视口的相关信息。\n" +"[b]注意:[/b]部分值目前仅考虑 3D 渲染,例如绘制调用的数量。\n" +"[b]注意:[/b]引擎渲染至少 2 帧后渲染信息才可用。渲染信息不可用时 [method " +"get_rendering_info] 返回 [code]0[/code]。要在 [code]_ready()[/code] 中成功输出" +"渲染信息,请使用如下代码:\n" +"[codeblock]\n" +"func _ready():\n" +" for _i in 2:\n" +" await get_tree().process_frame\n" +"\n" +" print(RenderingServer." +"get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME))\n" +"[/codeblock]" + msgid "Returns the parameters of a shader." msgstr "返回着色器的参数。" @@ -96454,6 +102267,21 @@ msgstr "" "$Sprite2D.texture = texture\n" "[/codeblock]" +msgid "" +"Returns the version of the graphics video adapter [i]currently in use[/i] (e." +"g. \"1.2.189\" for Vulkan, \"3.3.0 NVIDIA 510.60.02\" for OpenGL). This " +"version may be different from the actual latest version supported by the " +"hardware, as Godot may not always request the latest version. See also " +"[method OS.get_video_adapter_driver_info].\n" +"[b]Note:[/b] When running a headless or server binary, this function returns " +"an empty string." +msgstr "" +"返回[i]当前使用的[/i]图形视频适配器的版本(例如,Vulkan 为“1.2.189”,OpenGL " +"为“3.3.0 NVIDIA 510.60.02”)。该版本可能与硬件支持的实际最新版本不同,因为 " +"Godot 可能并不总是要求最新版本。另见 [method OS." +"get_video_adapter_driver_info]。\n" +"[b]注意:[/b]当运行无头或服务器可执行文件时,该函数返回一个空字符串。" + msgid "" "Returns the name of the video adapter (e.g. \"GeForce GTX 1080/PCIe/SSE2\").\n" "[b]Note:[/b] When running a headless or server binary, this function returns " @@ -96510,6 +102338,23 @@ msgstr "" "$Sprite2D.texture = texture\n" "[/codeblock]" +msgid "" +"If [param half_resolution] is [code]true[/code], renders [VoxelGI] and SDFGI " +"([member Environment.sdfgi_enabled]) buffers at halved resolution on each " +"axis (e.g. 960×540 when the viewport size is 1920×1080). This improves " +"performance significantly when VoxelGI or SDFGI is enabled, at the cost of " +"artifacts that may be visible on polygon edges. The loss in quality becomes " +"less noticeable as the viewport resolution increases. [LightmapGI] rendering " +"is not affected by this setting. Equivalent to [member ProjectSettings." +"rendering/global_illumination/gi/use_half_resolution]." +msgstr "" +"如果 [param half_resolution] 为 [code]true[/code],则每个轴上都会使用一半的分" +"辨率渲染 [VoxelGI] 和 SDFGI([member Environment.sdfgi_enabled])缓冲区(例如" +"视口大小为 1920×1080 时使用 960×540)。启用 VoxelGI 或 SDFGI 时,这样做能够显" +"著提升性能,但代价是多边形边缘可能产生显示问题。视口分辨率越高,越不容易注意到" +"质量的损失。[LightmapGI] 的渲染不受这个设置的影响。等价于 [member " +"ProjectSettings.rendering/global_illumination/gi/use_half_resolution]。" + msgid "" "Creates a new global shader uniform.\n" "[b]Note:[/b] Global shader parameter names are case-sensitive." @@ -96620,12 +102465,56 @@ msgid "" msgstr "" "创建可视实例并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]instance_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "实例可以将 3D 对象放置到场景中。粒子、网格、反射探针、贴花等对象都需要使用 " "[method instance_set_base] 与实例关联,才能显示在场景中。\n" "[b]注意:[/b]等价节点为 [VisualInstance3D]。" +msgid "" +"Creates a visual instance, adds it to the RenderingServer, and sets both base " +"and scenario. It can be accessed with the RID that is returned. This RID will " +"be used in all [code]instance_*[/code] RenderingServer functions.\n" +"Once finished with your RID, you will want to free the RID using the " +"RenderingServer's [method free_rid] method. This is a shorthand for using " +"[method instance_create] and setting the base and scenario manually." +msgstr "" +"创建可视实例并将其添加到 RenderingServer、设置基础和场景。可以通过返回的 RID " +"进行访问。这个 RID 会在大多数 [code]instance_*[/code] RenderingServer 函数中使" +"用。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。这" +"是使用 [method instance_create] 并手动设置基础和场景的快捷方式。" + +msgid "" +"Returns the value of the per-instance shader uniform from the specified 3D " +"geometry instance. Equivalent to [method GeometryInstance3D." +"get_instance_shader_parameter].\n" +"[b]Note:[/b] Per-instance shader parameter names are case-sensitive." +msgstr "" +"返回指定 3D 几何体实例的单实例着色器 uniform 的值。等价于 [method " +"GeometryInstance3D.get_instance_shader_parameter]。\n" +"[b]注意:[/b]单实例着色器参数的名称是大小写敏感的。" + +msgid "" +"Returns the default value of the per-instance shader uniform from the " +"specified 3D geometry instance. Equivalent to [method GeometryInstance3D." +"get_instance_shader_parameter]." +msgstr "" +"返回指定 3D 几何体实例的单实例着色器 uniform 的默认值。等价于 [method " +"GeometryInstance3D.get_instance_shader_parameter]。" + +msgid "" +"Returns a dictionary of per-instance shader uniform names of the per-instance " +"shader uniform from the specified 3D geometry instance. The returned " +"dictionary is in PropertyInfo format, with the keys [code]name[/code], " +"[code]class_name[/code], [code]type[/code], [code]hint[/code], " +"[code]hint_string[/code] and [code]usage[/code]. Equivalent to [method " +"GeometryInstance3D.get_instance_shader_parameter]." +msgstr "" +"返回指定 3D 几何体实例的单实例着色器名称字典。返回的字典使用 PropertyInfo 格" +"式,包含 [code]name[/code]、[code]class_name[/code]、[code]type[/code]、" +"[code]hint[/code]、[code]hint_string[/code] 以及 [code]usage[/code] 等键。等价" +"于 [method GeometryInstance3D.get_instance_shader_parameter]。" + msgid "" "Sets the shadow casting setting to one of [enum ShadowCastingSetting]. " "Equivalent to [member GeometryInstance3D.cast_shadow]." @@ -96639,6 +102528,24 @@ msgid "" msgstr "" "设置给定的 [enum InstanceFlags] 标志。更多细节请参阅 [enum InstanceFlags]。" +msgid "" +"Sets the lightmap GI instance to use for the specified 3D geometry instance. " +"The lightmap UV scale for the specified instance (equivalent to [member " +"GeometryInstance3D.gi_lightmap_scale]) and lightmap atlas slice must also be " +"specified." +msgstr "" +"为指定的 3D 几何体实例设置要使用的光照贴图 GI 实例。必须同时指定该实例的光照贴" +"图 UV 缩放(等价于 [member GeometryInstance3D.gi_lightmap_scale])和光照贴图图" +"集切片。" + +msgid "" +"Sets the level of detail bias to use when rendering the specified 3D geometry " +"instance. Higher values result in higher detail from further away. Equivalent " +"to [member GeometryInstance3D.lod_bias]." +msgstr "" +"为指定的 3D 几何体实例设置要使用的细节级别偏置。值越高,距离较远时的细节也会越" +"高。等价于 [member GeometryInstance3D.lod_bias]。" + msgid "" "Sets a material that will be rendered for all surfaces on top of active " "materials for the mesh associated with this instance. Equivalent to [member " @@ -96655,6 +102562,13 @@ msgstr "" "设置一种材质,该材质将覆盖与此实例关联的网格上的所有表面的材质。相当于 " "[member GeometryInstance3D.material_override]。" +msgid "" +"Sets the per-instance shader uniform on the specified 3D geometry instance. " +"Equivalent to [method GeometryInstance3D.set_instance_shader_parameter]." +msgstr "" +"设置指定的 3D 几何体实例的单实例着色器 uniform。等价于 [method " +"GeometryInstance3D.set_instance_shader_parameter]。" + msgid "" "Sets the transparency for the given geometry instance. Equivalent to [member " "GeometryInstance3D.transparency].\n" @@ -96689,6 +102603,17 @@ msgstr "" "设置给定几何实例的可见性范围值。相当于 [member GeometryInstance3D." "visibility_range_begin] 和相关属性。" +msgid "" +"Sets the base of the instance. A base can be any of the 3D objects that are " +"created in the RenderingServer that can be displayed. For example, any of the " +"light types, mesh, multimesh, particle system, reflection probe, decal, " +"lightmap, voxel GI and visibility notifiers are all types that can be set as " +"the base of an instance in order to be displayed in the scenario." +msgstr "" +"设置实例的基础。基础可以是在 RenderingServer 中创建的任何可以显示的 3D 对象。" +"例如,任何光源类型、网格、多重网格、粒子系统、反射探针、贴花、光照贴图、体素 " +"GI 和可见性通知器都可以设置为实例的基础,以便在场景中显示。" + msgid "Sets the weight for a given blend shape associated with this instance." msgstr "设置与该实例相关的特定混合形状的权重。" @@ -96707,6 +102632,16 @@ msgstr "" "设置将对象从视锥中剔除时为 AABB 增加的边距大小。这样就可以避免剔除落在视锥外的" "对象。相当于 [member GeometryInstance3D.extra_cull_margin]。" +msgid "" +"If [code]true[/code], ignores both frustum and occlusion culling on the " +"specified 3D geometry instance. This is not the same as [member " +"GeometryInstance3D.ignore_occlusion_culling], which only ignores occlusion " +"culling and leaves frustum culling intact." +msgstr "" +"如果为 [code]true[/code],则会忽略指定 3D 几何体实例的视锥剔除和遮挡剔除。和 " +"[member GeometryInstance3D.ignore_occlusion_culling] 不同,后者只会忽略遮挡剔" +"除,仍会保留视锥剔除。" + msgid "" "Sets the render layers that this instance will be drawn to. Equivalent to " "[member VisualInstance3D.layers]." @@ -96744,6 +102679,54 @@ msgid "" "visible]." msgstr "设置是否绘制实例。相当于 [member Node3D.visible]。" +msgid "" +"Returns an array of object IDs intersecting with the provided AABB. Only 3D " +"nodes that inherit from [VisualInstance3D] are considered, such as " +"[MeshInstance3D] or [DirectionalLight3D]. Use [method @GlobalScope." +"instance_from_id] to obtain the actual nodes. A scenario RID must be " +"provided, which is available in the [World3D] you want to query. This forces " +"an update for all resources queued to update.\n" +"[b]Warning:[/b] This function is primarily intended for editor usage. For in-" +"game use cases, prefer physics collision." +msgstr "" +"返回与提供的 AABB 相交的对象 ID 的数组。仅考虑继承自 [VisualInstance3D] 的 3D " +"节点,例如 [MeshInstance3D] 或 [DirectionalLight3D]。可使用 [method " +"@GlobalScope.instance_from_id] 来获取实际节点。必须提供一个场景 RID,且它在要" +"查询的 [World3D] 中可用。这会强制更新所有已被队列以等待更新的资源。\n" +"[b]警告:[/b]该函数主要供编辑器使用。对于游戏中的用例,最好是物理碰撞。" + +msgid "" +"Returns an array of object IDs intersecting with the provided convex shape. " +"Only 3D nodes that inherit from [VisualInstance3D] are considered, such as " +"[MeshInstance3D] or [DirectionalLight3D]. Use [method @GlobalScope." +"instance_from_id] to obtain the actual nodes. A scenario RID must be " +"provided, which is available in the [World3D] you want to query. This forces " +"an update for all resources queued to update.\n" +"[b]Warning:[/b] This function is primarily intended for editor usage. For in-" +"game use cases, prefer physics collision." +msgstr "" +"返回与提供的凸形相交的对象 ID 的数组。仅考虑继承自 [VisualInstance3D] 的 3D 节" +"点,例如 [MeshInstance3D] 或 [DirectionalLight3D]。可使用 [method " +"@GlobalScope.instance_from_id] 以获取实际节点。必须提供场景 RID,且它在要查询" +"的 [World3D] 中可用。这会强制更新所有已被队列以等待更新的资源。\n" +"[b]警告:[/b]该函数主要供编辑器使用。对于游戏中的用例,最好是物理碰撞。" + +msgid "" +"Returns an array of object IDs intersecting with the provided 3D ray. Only 3D " +"nodes that inherit from [VisualInstance3D] are considered, such as " +"[MeshInstance3D] or [DirectionalLight3D]. Use [method @GlobalScope." +"instance_from_id] to obtain the actual nodes. A scenario RID must be " +"provided, which is available in the [World3D] you want to query. This forces " +"an update for all resources queued to update.\n" +"[b]Warning:[/b] This function is primarily intended for editor usage. For in-" +"game use cases, prefer physics collision." +msgstr "" +"返回与提供的 3D 射线相交的对象 ID 的数组。仅考虑继承自 [VisualInstance3D] 的 " +"3D 节点,例如 [MeshInstance3D] 或 [DirectionalLight3D]。可使用 [method " +"@GlobalScope.instance_from_id] 以获取实际节点。必须提供场景 RID,且它在你要查" +"询的 [World3D] 中可用。这会强制更新所有已被队列以等待更新的资源。\n" +"[b]警告:[/b]该函数主要供编辑器使用。对于游戏中的用例,最好是物理碰撞。" + msgid "" "If [code]true[/code], this directional light will blend between shadow map " "splits resulting in a smoother transition between them. Equivalent to [member " @@ -96779,6 +102762,13 @@ msgstr "" "设置是使用双抛物面还是立方体贴图作为阴影贴图。双抛物面速度更快,但可能会出现伪" "影。相当于 [member OmniLight3D.omni_shadow_mode]。" +msgid "" +"Sets the texture filter mode to use when rendering light projectors. This " +"parameter is global and cannot be set on a per-light basis." +msgstr "" +"设置渲染光线投射器时使用的纹理过滤模式。这个参数是全局的,不能单独针对某个灯光" +"进行设置。" + msgid "" "Sets the bake mode to use for the specified 3D light. Equivalent to [member " "Light3D.light_bake_mode]." @@ -96788,6 +102778,52 @@ msgstr "" msgid "Sets the color of the light. Equivalent to [member Light3D.light_color]." msgstr "设置灯光的颜色。相当于 [member Light3D.light_color]。" +msgid "" +"Sets the cull mask for this 3D light. Lights only affect objects in the " +"selected layers. Equivalent to [member Light3D.light_cull_mask]." +msgstr "" +"设置该 3D 灯光的剔除掩码。灯光仅影响选定层中的对象。相当于 [member Light3D." +"light_cull_mask]。" + +msgid "" +"Sets the distance fade for this 3D light. This acts as a form of level of " +"detail (LOD) and can be used to improve performance. Equivalent to [member " +"Light3D.distance_fade_enabled], [member Light3D.distance_fade_begin], [member " +"Light3D.distance_fade_shadow], and [member Light3D.distance_fade_length]." +msgstr "" +"设置该 3D 灯光的淡入淡出距离。这充当了一种多细节层次(LOD)的形式,可用于提高" +"性能。相当于 [member Light3D.distance_fade_enabled]、[member Light3D." +"distance_fade_begin]、[member Light3D.distance_fade_shadow] 和 [member " +"Light3D.distance_fade_length]。" + +msgid "" +"Sets the maximum SDFGI cascade in which the 3D light's indirect lighting is " +"rendered. Higher values allow the light to be rendered in SDFGI further away " +"from the camera." +msgstr "" +"设置渲染 3D 灯光间接光照时的 SDFGI 最大级联数。较高的值能够让远离相机的灯光在 " +"SDFGI 中渲染。" + +msgid "" +"If [code]true[/code], the 3D light will subtract light instead of adding " +"light. Equivalent to [member Light3D.light_negative]." +msgstr "" +"如果为 [code]true[/code],则该 3D 灯光会扣除光照而不是增加。等价于 [member " +"Light3D.light_negative]。" + +msgid "" +"Sets the specified 3D light parameter. See [enum LightParam] for options. " +"Equivalent to [method Light3D.set_param]." +msgstr "" +"设置指定的 3D 灯光参数。选项见 [enum LightParam]。等价于 [method Light3D." +"set_param]。" + +msgid "" +"Sets the projector texture to use for the specified 3D light. Equivalent to " +"[member Light3D.light_projector]." +msgstr "" +"设置指定 3D 灯光使用的投射器纹理。等价于 [member Light3D.light_projector]。" + msgid "" "If [code]true[/code], reverses the backface culling of the mesh. This can be " "useful when you have a flat mesh that has a light behind it. If you need to " @@ -96815,10 +102851,9 @@ msgid "" "RenderingServer's [method free_rid] method.\n" "[b]Note:[/b] The equivalent node is [LightmapGI]." msgstr "" -"创建全局光照的光照贴图并将其添加到 RenderingServer。可以通过返回的 RID 进行访" +"新建全局光照的光照贴图并将其添加到 RenderingServer。可以通过返回的 RID 进行访" "问。这个 RID 会在所有 [code]lightmap_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]与其等价的资源为 [LightmapGI]。" msgid "" @@ -96832,6 +102867,23 @@ msgstr "" "制,以确保即使场景范围的曝光归一化值在运行时发生变化,光照贴图也能保持一致的曝" "光水平。有关详细信息,请参阅 [method camera_attributes_set_exposure]。" +msgid "" +"Set the textures on the given [param lightmap] GI instance to the texture " +"array pointed to by the [param light] RID. If the lightmap texture was baked " +"with [member LightmapGI.directional] set to [code]true[/code], then [param " +"uses_sh] must also be [code]true[/code]." +msgstr "" +"将给定光照贴图 [param lightmap] GI 实例的纹理设置为 [param light] RID 所指向的" +"纹理数组。如果烘焙光照贴图纹理时的 [member LightmapGI.directional] 为 " +"[code]true[/code],则 [param uses_sh] 也必须为 [code]true[/code]。" + +msgid "" +"Returns a mesh of a sphere with the given number of horizontal subdivisions, " +"vertical subdivisions and radius. See also [method get_test_cube]." +msgstr "" +"返回球体网格,具有给定数量的水平细分、垂直细分、半径。另见 [method " +"get_test_cube]。" + msgid "" "Creates an empty material and adds it to the RenderingServer. It can be " "accessed with the RID that is returned. This RID will be used in all " @@ -96842,8 +102894,7 @@ msgid "" msgstr "" "创建空材质并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID " "会在所有 [code]material_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]与其等价的资源为 [Material]。" msgid "Returns the value of a certain material's parameter." @@ -96876,8 +102927,7 @@ msgid "" msgstr "" "新建网格并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会" "在所有 [code]mesh_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个网格放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。\n" "[b]注意:[/b]与其等价的资源为 [Mesh]。" @@ -96924,8 +102974,7 @@ msgid "" msgstr "" "新建多网格并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID " "会在所有 [code]multimesh_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个多网格放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。\n" "[b]注意:[/b]与其等价的资源为 [MultiMesh]。" @@ -96933,7 +102982,20 @@ msgstr "" msgid "" "Calculates and returns the axis-aligned bounding box that encloses all " "instances within the multimesh." -msgstr "计算并返回轴对齐的包围盒,该包围盒将所有的实例都包含在 multimesh 中。" +msgstr "计算并返回轴对齐的边界框,该边界框将所有的实例都包含在 multimesh 中。" + +msgid "" +"Returns the MultiMesh data (such as instance transforms, colors, etc). See " +"[method multimesh_set_buffer] for a description of the returned data.\n" +"[b]Note:[/b] If the buffer is in the engine's internal cache, it will have to " +"be fetched from GPU memory and possibly decompressed. This means [method " +"multimesh_get_buffer] is potentially a slow operation and should be avoided " +"whenever possible." +msgstr "" +"返回 MultiMesh 数据(实例的变换、颜色等)。返回数据的描述见 [method " +"multimesh_set_buffer]。\n" +"[b]注意:[/b]如果缓冲位于引擎的内部缓存中,则需要从 GPU 显存获取,并且有可能需" +"要解压。也就是说 [method multimesh_get_buffer] 可能会比较慢,应该尽可能避免。" msgid "Returns the number of instances allocated for this multimesh." msgstr "返回分配给这个 multimesh 的实例的数量。" @@ -97059,8 +103121,7 @@ msgid "" msgstr "" "创建遮挡器实例并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]occluder_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]与其等价的资源为 [Occluder3D](请勿与 [OccluderInstance3D] 节点混" "淆)。" @@ -97081,8 +103142,8 @@ msgid "" msgstr "" "创建一个新的全向灯并将其添加到 RenderingServer。可以使用返回的 RID 访问它。该 " "RID 可用于大多数 [code]light_*[/code] RenderingServer 函数。\n" -"一旦使用 RID 完成操作后,需要使用 RenderingServer 的静态方法 [method " -"free_rid] 来释放该 RID。\n" +"一旦使用 RID 完成操作后,需要使用 RenderingServer 的方法 [method free_rid] 来" +"释放该 RID。\n" "要放置在场景中,请使用 [method instance_set_base] 使用该返回的 RID 将该全向灯" "附加到一个实例。\n" "[b]注意:[/b]等价节点为 [OmniLight3D]。" @@ -97219,8 +103280,7 @@ msgid "" msgstr "" "创建基于 GPU 的粒子系统并将其添加到 RenderingServer。可以通过返回的 RID 进行访" "问。这个 RID 会在所有 [code]particles_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个粒子系统放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。\n" "[b]注意:[/b]等价节点为 [GPUParticles2D] 和 [GPUParticles3D]。\n" @@ -97417,8 +103477,7 @@ msgid "" msgstr "" "创建反射探针并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]reflection_probe_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个反射探针放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。\n" "[b]注意:[/b]等价节点为 [ReflectionProbe]。" @@ -97612,8 +103671,7 @@ msgid "" msgstr "" "创建空的着色器并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]shader_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价资源为 [Shader]。" msgid "Returns a shader's source code as a string." @@ -97673,8 +103731,7 @@ msgid "" msgstr "" "创建骨架并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID 会" "在所有 [code]skeleton_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" msgid "Returns the number of bones allocated for this skeleton." msgstr "返回分配给这个骨架的骨骼数量。" @@ -97717,8 +103774,7 @@ msgid "" msgstr "" "创建空的天空并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]sky_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。" msgid "" "Sets the material that the sky uses to render the background, ambient and " @@ -97750,8 +103806,7 @@ msgid "" msgstr "" "创建聚光灯并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 RID " "会在大多数 [code]light_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个聚光灯放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。" @@ -97787,8 +103842,7 @@ msgid "" msgstr "" "创建二维纹理并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]texture_2d_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价资源为 [Texture2D]。\n" "[b]注意:[/b]请勿与 [method RenderingDevice.texture_create] 混淆,后者创建的是" "图形 API 自己的纹理类型,并非 Godot 专属的 [Texture2D] 资源。" @@ -97830,8 +103884,7 @@ msgstr "" "创建二维多层纹理并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这" "个 RID 会在所有 [code]texture_2d_layered_*[/code] RenderingServer 函数中使" "用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价资源为 [TextureLayered]。" msgid "" @@ -97862,8 +103915,7 @@ msgstr "" "访问。这个 RID 会在所有 [code]texture_2d_layered_*[/code] RenderingServer 函数" "中使用,但使用时什么都不会发生。另见 [method " "texture_2d_layered_placeholder_create]。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价资源为 [PlaceholderTexture2D]。" msgid "" @@ -97884,6 +103936,11 @@ msgstr "" msgid "[b]Note:[/b] The equivalent resource is [Texture3D]." msgstr "[b]注意:[/b]等价的资源是 [Texture3D]。" +msgid "" +"Returns 3D texture data as an array of [Image]s for the specified texture " +"[RID]." +msgstr "以 [Image] 数组的形式返回指定纹理 [RID] 的 3D 纹理数据。" + msgid "" "Creates a placeholder for a 3-dimensional texture and adds it to the " "RenderingServer. It can be accessed with the RID that is returned. This RID " @@ -97895,8 +103952,7 @@ msgid "" msgstr "" "创建三维纹理的占位符并将其添加到 RenderingServer。可以通过返回的 RID 进行访" "问。这个 RID 会在所有 [code]texture_3d_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价资源为 [PlaceholderTexture3D]。" msgid "" @@ -97991,8 +104047,7 @@ msgid "" msgstr "" "创建空的视口并将其添加到 RenderingServer。可以通过返回的 RID 进行访问。这个 " "RID 会在所有 [code]viewport_*[/code] RenderingServer 函数中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [Viewport]。" msgid "" @@ -98049,6 +104104,54 @@ msgstr "" "viewport_get_measured_render_time_gpu] 进行性能测试时牢记这一点。可以在显卡驱" "动的设置中改变这种行为,但代价是耗电量增大。" +msgid "" +"Returns a statistic about the rendering engine which can be used for " +"performance profiling. This is separated into render pass [param type]s, each " +"of them having the same [param info]s you can query (different passes will " +"return different values). See [enum RenderingServer.ViewportRenderInfoType] " +"for a list of render pass types and [enum RenderingServer.ViewportRenderInfo] " +"for a list of information that can be queried.\n" +"See also [method get_rendering_info], which returns global information across " +"all viewports.\n" +"[b]Note:[/b] Viewport rendering information is not available until at least 2 " +"frames have been rendered by the engine. If rendering information is not " +"available, [method viewport_get_render_info] returns [code]0[/code]. To print " +"rendering information in [code]_ready()[/code] successfully, use the " +"following:\n" +"[codeblock]\n" +"func _ready():\n" +" for _i in 2:\n" +" await get_tree().process_frame\n" +"\n" +" print(\n" +" RenderingServer.viewport_get_render_info(get_viewport()." +"get_viewport_rid(),\n" +" RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE,\n" +" RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME)\n" +" )\n" +"[/codeblock]" +msgstr "" +"返回关于渲染引擎的统计信息,能够用于性能分析。会区分不同的渲染阶段类型 [param " +"type],每种类型都有相同的可查询信息 [param info](不同的阶段会返回不同的值)。" +"渲染阶段类型列表见 [enum RenderingServer.ViewportRenderInfoType],能够查询的信" +"息列表见 [enum RenderingServer.ViewportRenderInfo]。\n" +"另见 [method get_rendering_info],返回的是所有视口的全局信息。\n" +"[b]注意:[/b]引擎渲染至少 2 帧后渲染信息才可用。渲染信息不可用时 [method " +"viewport_get_render_info] 返回 [code]0[/code]。要在 [code]_ready()[/code] 中成" +"功输出渲染信息,请使用如下代码:\n" +"[codeblock]\n" +"func _ready():\n" +" for _i in 2:\n" +" await get_tree().process_frame\n" +"\n" +" print(\n" +" RenderingServer.viewport_get_render_info(get_viewport()." +"get_viewport_rid(),\n" +" RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE,\n" +" RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME)\n" +" )\n" +"[/codeblock]" + msgid "Returns the render target for the viewport." msgstr "返回该视口的渲染目标。" @@ -98091,6 +104194,28 @@ msgid "" "options." msgstr "设置视口的调试绘图模式。可选项见 [enum ViewportDebugDraw]。" +msgid "" +"Sets the default texture filtering mode for the specified [param viewport] " +"RID. See [enum CanvasItemTextureFilter] for options." +msgstr "" +"设置视口的默认纹理过滤模式,视口由 [param viewport] RID 指定。选项见 [enum " +"CanvasItemTextureFilter]。" + +msgid "" +"Sets the default texture repeat mode for the specified [param viewport] RID. " +"See [enum CanvasItemTextureRepeat] for options." +msgstr "" +"设置视口的默认纹理重复模式,视口由 [param viewport] RID 指定。选项见 [enum " +"CanvasItemTextureRepeat]。" + +msgid "" +"If [code]true[/code], the viewport's canvas (i.e. 2D and GUI elements) is not " +"rendered." +msgstr "如果为 [code]true[/code],则不渲染视口的画布(即 2D 和 GUI 元素)。" + +msgid "If [code]true[/code], the viewport's 3D elements are not rendered." +msgstr "如果为 [code]true[/code],则不渲染视口的 3D 元素。" + msgid "" "Sets the viewport's environment mode which allows enabling or disabling " "rendering of 3D environment over 2D canvas. When disabled, 2D will not be " @@ -98110,6 +104235,19 @@ msgstr "" msgid "Sets the viewport's global transformation matrix." msgstr "设置视口的全局变换矩阵。" +msgid "" +"Sets the measurement for the given [param viewport] RID (obtained using " +"[method Viewport.get_viewport_rid]). Once enabled, [method " +"viewport_get_measured_render_time_cpu] and [method " +"viewport_get_measured_render_time_gpu] will return values greater than " +"[code]0.0[/code] when queried with the given [param viewport]." +msgstr "" +"为给定的 [param viewport] RID(使用 [method Viewport.get_viewport_rid] 获取)" +"设置是否测量。启用后,使用给定的 [param viewport] 对 [method " +"viewport_get_measured_render_time_cpu] 和 [method " +"viewport_get_measured_render_time_gpu] 进行查询返回的就是大于 [code]0.0[/" +"code] 的值。" + msgid "" "Sets the multisample anti-aliasing mode for 2D/Canvas on the specified [param " "viewport] RID. See [enum ViewportMSAA] for options." @@ -98140,6 +104278,40 @@ msgstr "" "设置遮挡剔除的 [member ProjectSettings.rendering/occlusion_culling/" "occlusion_rays_per_thread]。这个参数是全局的,无法针对特定视口设置。" +msgid "" +"Sets the viewport's parent to the viewport specified by the [param " +"parent_viewport] RID." +msgstr "将该视口的父项设置为 [param parent_viewport] RID 指定的视口。" + +msgid "" +"Sets the number of subdivisions to use in the specified shadow atlas [param " +"quadrant] for omni and spot shadows. See also [method Viewport." +"set_positional_shadow_atlas_quadrant_subdiv]." +msgstr "" +"设置全向灯和聚光灯阴影的指定阴影图集象限 [param quadrant] 的细分次数。另见 " +"[method Viewport.set_positional_shadow_atlas_quadrant_subdiv]。" + +msgid "" +"Sets the [param size] of the shadow atlas's images (used for omni and spot " +"lights) on the viewport specified by the [param viewport] RID. The value is " +"rounded up to the nearest power of 2. If [param use_16_bits] is [code]true[/" +"code], use 16 bits for the omni/spot shadow depth map. Enabling this results " +"in shadows having less precision and may result in shadow acne, but can lead " +"to performance improvements on some devices.\n" +"[b]Note:[/b] If this is set to [code]0[/code], no positional shadows will be " +"visible at all. This can improve performance significantly on low-end systems " +"by reducing both the CPU and GPU load (as fewer draw calls are needed to draw " +"the scene without shadows)." +msgstr "" +"设置阴影图集图像的大小(用于全向灯和聚光灯),大小由 [param size] 指定,生效的" +"视口由 [param viewport] RID 指定。该值将向上舍入到最接近的 2 次幂。如果 " +"[param use_16_bits] 为 [code]true[/code],则会使用 16 位的全向灯/聚光灯阴影深" +"度贴图。启用后,阴影的精度会降低,可能造成阴影失真,但能够在部分设备上提升性" +"能。\n" +"[b]注意:[/b]如果设置为 [code]0[/code],将根本看不到任何阴影。可以通过降低 " +"CPU 和 GPU 负载来显著提升在低端系统上的性能(因为绘制不带阴影的场景需要的绘制" +"调用更少)。" + msgid "" "If [code]true[/code], render the contents of the viewport directly to screen. " "This allows a low-level optimization where you can skip drawing a viewport to " @@ -98161,6 +104333,20 @@ msgstr "" "渲染是以窗口坐标进行的,所以如果有一个两倍于窗口大小的视口,并且设置了这个属" "性,那么只会绘制适合窗口的部分, 无法自动缩放,即使游戏场景明显大于窗口大小。" +msgid "" +"Sets the 3D resolution scaling mode. Bilinear scaling renders at different " +"resolution to either undersample or supersample the viewport. FidelityFX " +"Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that " +"produces high quality images at fast framerates by using a spatially aware " +"upscaling algorithm. FSR is slightly more expensive than bilinear, but it " +"produces significantly higher image quality. FSR should be used where " +"possible." +msgstr "" +"设置 3D 分辨率缩放模式。双线性缩放使用不同的分辨率渲染,能够对视口进行欠采样或" +"超采样。FidelityFX 超分辨率 1.0,缩写为 FSR,是一种放大技术,通过使用空间感知" +"放大算法以快速帧速率生成高质量图像。FSR 比双线性的开销略大,但产生的图像质量明" +"显更高。应尽可能使用 FSR。" + msgid "" "Scales the 3D render buffer based on the viewport size uses an image filter " "specified in [enum ViewportScaling3DMode] to scale the output image to the " @@ -98321,8 +104507,7 @@ msgstr "" "新建 3D 可见性通知对象并将其添加到 RenderingServer。可以通过返回的 RID 进行访" "问。这个 RID 会在所有 [code]visibility_notifier_*[/code] RenderingServer 函数" "中使用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "如果要将这个网格放置到场景中,请使用返回的 RID 调用 [method " "instance_set_base],将其附加至某个实例上。\n" "[b]注意:[/b]等价节点为 [VisibleOnScreenNotifier3D]。" @@ -98338,8 +104523,7 @@ msgstr "" "新建基于体素的全局光照对象并将其添加到 RenderingServer。可以通过返回的 RID 进" "行访问。这个 RID 会在所有 [code]voxel_gi_*[/code] RenderingServer 函数中使" "用。\n" -"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 静态方法进行释" -"放。\n" +"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。\n" "[b]注意:[/b]等价节点为 [VoxelGI]。" msgid "" @@ -98410,7 +104594,7 @@ msgid "" "with rendering disabled." msgstr "" "如果为 [code]false[/code],则完全禁用渲染,但引擎逻辑仍在处理中。即使禁用渲" -"染,您也可以调用 [method force_draw] 来绘制帧。" +"染,你也可以调用 [method force_draw] 来绘制帧。" msgid "" "Emitted at the end of the frame, after the RenderingServer has finished " @@ -98824,6 +105008,16 @@ msgstr "" "模糊阴影的边缘。可用于隐藏低分辨率阴影贴图中的像素伪影。较高的值会使阴影显得粗" "糙,并可能导致其他不需要的伪影。尽量保持接近默认值。" +msgid "" +"Constant representing the intensity of the light, measured in Lumens when " +"dealing with a [SpotLight3D] or [OmniLight3D], or measured in Lux with a " +"[DirectionalLight3D]. Only used when [member ProjectSettings.rendering/" +"lights_and_shadows/use_physical_light_units] is [code]true[/code]." +msgstr "" +"代表灯光强度的常量,[SpotLight3D] 和 [OmniLight3D] 的单位为流明," +"[DirectionalLight3D] 的单位为勒克斯。仅在 [member ProjectSettings.rendering/" +"lights_and_shadows/use_physical_light_units] 为 [code]true[/code] 时使用。" + msgid "Represents the size of the [enum LightParam] enum." msgstr "代表 [enum LightParam] 枚举的大小。" @@ -98836,6 +105030,23 @@ msgstr "" "烘焙时灯光将被忽略。这是最快的模式,但是在烘焙全局照明时仍会考虑该灯光。该模式" "通常应用于快速变化的动态灯光,因为全局照明的效果在这些灯光上不太明显。" +msgid "" +"Light is taken into account in dynamic baking ([VoxelGI] and SDFGI ([member " +"Environment.sdfgi_enabled]) only). The light can be moved around or modified " +"with global illumination updating in real-time. The light's global " +"illumination appearance will be slightly different compared to [constant " +"LIGHT_BAKE_STATIC]. This has a greater performance cost compared to [constant " +"LIGHT_BAKE_STATIC]. When using SDFGI, the update speed of dynamic lights is " +"affected by [member ProjectSettings.rendering/global_illumination/sdfgi/" +"frames_to_update_lights]." +msgstr "" +"动态烘焙时考虑灯光(仅 [VoxelGI] 和 SDFGI([member Environment." +"sdfgi_enabled]))。灯光可以四处移动或修改,全局照明会实时更新。灯光的全局照明" +"效果与 [constant LIGHT_BAKE_STATIC] 略有不同。性能开销比 [constant " +"LIGHT_BAKE_STATIC] 更大。使用 SDFGI 时,动态灯光的更新速度受 [member " +"ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights] " +"的影响。" + msgid "Use a dual paraboloid shadow map for omni lights." msgstr "对全向光使用双抛物面阴影贴图。" @@ -98936,6 +105147,25 @@ msgid "" "moving objects." msgstr "反射探针将每帧更新。这种模式对于捕捉移动物体是必要的。" +msgid "" +"Do not apply any ambient lighting inside the reflection probe's box defined " +"by its size." +msgstr "不要在反射探针的区域内应用任何环境光,区域由探针的大小决定。" + +msgid "" +"Apply automatically-sourced environment lighting inside the reflection " +"probe's box defined by its size." +msgstr "在反射探针的区域内应用自动来源的环境光照,区域由探针的大小决定。" + +msgid "" +"Apply custom ambient lighting inside the reflection probe's box defined by " +"its size. See [method reflection_probe_set_ambient_color] and [method " +"reflection_probe_set_ambient_energy]." +msgstr "" +"在反射探针的区域内应用自定义环境光,区域由探针的大小决定。见 [method " +"reflection_probe_set_ambient_color] 和 [method " +"reflection_probe_set_ambient_energy]。" + msgid "Albedo texture slot in a decal ([member Decal.texture_albedo])." msgstr "贴花中的反照率纹理([member Decal.texture_albedo])。" @@ -99105,7 +105335,8 @@ msgstr "不要更新视口的渲染目标。" msgid "" "Update the viewport's render target once, then switch to [constant " "VIEWPORT_UPDATE_DISABLED]." -msgstr "更新一次视口的渲染目标,然后切换到 [constant UPDATE_DISABLED]。" +msgstr "" +"更新一次视口的渲染目标,然后切换到 [constant VIEWPORT_UPDATE_DISABLED]。" msgid "" "Update the viewport's render target only when it is visible. This is the " @@ -99127,7 +105358,8 @@ msgstr "永不清除视口的渲染目标。" msgid "" "Clear the viewport's render target on the next frame, then switch to " "[constant VIEWPORT_CLEAR_NEVER]." -msgstr "在下一帧清除视口的渲染目标,然后切换到 [constant CLEAR_MODE_NEVER]。" +msgstr "" +"在下一帧清除视口的渲染目标,然后切换到 [constant VIEWPORT_CLEAR_NEVER]。" msgid "Disable rendering of 3D environment over 2D canvas." msgstr "禁用在 2D 画布上渲染 3D 环境。" @@ -99135,9 +105367,46 @@ msgstr "禁用在 2D 画布上渲染 3D 环境。" msgid "Enable rendering of 3D environment over 2D canvas." msgstr "启用在 2D 画布上渲染 3D 环境。" +msgid "" +"Inherit enable/disable value from parent. If the topmost parent is also set " +"to [constant VIEWPORT_ENVIRONMENT_INHERIT], then this has the same behavior " +"as [constant VIEWPORT_ENVIRONMENT_ENABLED]." +msgstr "" +"从父级继承启用/禁用值。如果最顶层的父级也被设置为 [constant " +"VIEWPORT_ENVIRONMENT_INHERIT],那么与 [constant VIEWPORT_ENVIRONMENT_ENABLED] " +"的行为相同。" + msgid "Represents the size of the [enum ViewportEnvironmentMode] enum." msgstr "代表 [enum ViewportEnvironmentMode] 枚举的大小。" +msgid "" +"Do not oversize the 2D signed distance field. Occluders may disappear when " +"touching the viewport's edges, and [GPUParticles3D] collision may stop " +"working earlier than intended. This has the lowest GPU requirements." +msgstr "" +"不使用过大的 2D 带符号距离场。遮挡器可能在接触视口边缘时消失," +"[GPUParticles3D] 碰撞也可能比预期更早地停止工作。对 GPU 的要求最低。" + +msgid "" +"2D signed distance field covers 20% of the viewport's size outside the " +"viewport on each side (top, right, bottom, left)." +msgstr "" +"2D 带符号距离场在每个方向(上、右、下、左)都覆盖超出视口大小 20% 的范围。" + +msgid "" +"2D signed distance field covers 50% of the viewport's size outside the " +"viewport on each side (top, right, bottom, left)." +msgstr "" +"2D 带符号距离场在每个方向(上、右、下、左)都覆盖超出视口大小 50% 的范围。" + +msgid "" +"2D signed distance field covers 100% of the viewport's size outside the " +"viewport on each side (top, right, bottom, left). This has the highest GPU " +"requirements." +msgstr "" +"2D 带符号距离场在每个方向(上、右、下、左)都覆盖超出视口大小 100% 的范围。对 " +"GPU 的要求最高。" + msgid "Represents the size of the [enum ViewportSDFOversize] enum." msgstr "代表 [enum ViewportSDFOversize] 枚举的大小。" @@ -99202,9 +105471,27 @@ msgstr "" msgid "Represents the size of the [enum ViewportScreenSpaceAA] enum." msgstr "代表 [enum ViewportScreenSpaceAA] 枚举的大小。" +msgid "" +"Low occlusion culling BVH build quality (as defined by Embree). Results in " +"the lowest CPU usage, but least effective culling." +msgstr "" +"较低的遮挡剔除 BVH 构建质量(由 Embree 定义)。CPU 占用最低,但剔除效率最低。" + +msgid "Medium occlusion culling BVH build quality (as defined by Embree)." +msgstr "中等的遮挡剔除 BVH 构建质量(由 Embree 定义)。" + +msgid "" +"High occlusion culling BVH build quality (as defined by Embree). Results in " +"the highest CPU usage, but most effective culling." +msgstr "" +"较高的遮挡剔除 BVH 构建质量(由 Embree 定义)。CPU 占用最高,但剔除效率最高。" + msgid "Number of objects drawn in a single frame." msgstr "在单帧中绘制的对象的数量。" +msgid "Number of points, lines, or triangles drawn in a single frame." +msgstr "在单帧中绘制的点、线、三角形的数量。" + msgid "Number of draw calls during this frame." msgstr "此帧期间的绘制调用数。" @@ -99278,6 +105565,13 @@ msgid "" msgstr "" "在 [Viewport] 的左上象限中绘制存储来自 [DirectionalLight3D] 的阴影的阴影图集。" +msgid "" +"Draws the estimated scene luminance. This is a 1×1 texture that is generated " +"when autoexposure is enabled to control the scene's exposure." +msgstr "" +"绘制估计的场景亮度。这是一个 1×1 的纹理,启用自动曝光时生成,用于控制场景的曝" +"光。" + msgid "" "Draws the screen space ambient occlusion texture instead of the scene so that " "you can clearly see how it is affecting objects. In order for this display " @@ -99360,9 +105654,75 @@ msgstr "" "绘制 [ReflectionProbe] 集群。集群决定屏幕空间中反射探针的放置位置,能够让引擎" "在处理反射探针时仅对屏幕的部分区域进行处理。" +msgid "" +"Draws the occlusion culling buffer. This low-resolution occlusion culling " +"buffer is rasterized on the CPU and is used to check whether instances are " +"occluded by other objects." +msgstr "" +"绘制遮挡剔除缓冲。这个低分辨率遮挡剔除缓冲在 CPU 栅格化,可用于检查实例是否被" +"其他对象遮挡。" + +msgid "" +"Draws the motion vectors buffer. This is used by temporal antialiasing to " +"correct for motion that occurs during gameplay." +msgstr "绘制运动向量缓冲。由时间抗锯齿使用,能够修正在游戏过程中发生的运动。" + +msgid "Variable rate shading is disabled." +msgstr "可变速率着色已禁用。" + +msgid "" +"Variable rate shading uses a texture. Note, for stereoscopic use a texture " +"atlas with a texture for each view." +msgstr "" +"可变速率着色使用纹理。请注意,对于立体视觉,请使用为每个视图提供纹理的纹理图" +"集。" + +msgid "Variable rate shading texture is supplied by the primary [XRInterface]." +msgstr "可变速率着色纹理由主 [XRInterface] 提供。" + msgid "Represents the size of the [enum ViewportVRSMode] enum." msgstr "代表 [enum ViewportVRSMode] 枚举的大小。" +msgid "" +"Automatically selects the appropriate process mode based on your sky shader. " +"If your shader uses [code]TIME[/code] or [code]POSITION[/code], this will use " +"[constant SKY_MODE_REALTIME]. If your shader uses any of the [code]LIGHT_*[/" +"code] variables or any custom uniforms, this uses [constant " +"SKY_MODE_INCREMENTAL]. Otherwise, this defaults to [constant " +"SKY_MODE_QUALITY]." +msgstr "" +"根据天空着色器自动选择合适的处理模式。如果着色器使用 [code]TIME[/code] 或 " +"[code]POSITION[/code],则会使用 [constant SKY_MODE_REALTIME]。如果着色器使用任" +"何 [code]LIGHT_*[/code] 变量或任何自定义 uniform,则会使用 [constant " +"SKY_MODE_INCREMENTAL]。否则默认为 [constant SKY_MODE_QUALITY]。" + +msgid "" +"Uses high quality importance sampling to process the radiance map. In " +"general, this results in much higher quality than [constant " +"SKY_MODE_REALTIME] but takes much longer to generate. This should not be used " +"if you plan on changing the sky at runtime. If you are finding that the " +"reflection is not blurry enough and is showing sparkles or fireflies, try " +"increasing [member ProjectSettings.rendering/reflections/sky_reflections/" +"ggx_samples]." +msgstr "" +"使用高质量重要性采样处理辐射度贴图。得到的结果通常比 [constant " +"SKY_MODE_REALTIME] 的质量更高,但需要花费更多的时间来生成。如果你计划在运行时" +"修改天空,则不应使用。如果你发现反射不够模糊,出现了火花或者萤火虫,请尝试增" +"大 [member ProjectSettings.rendering/reflections/sky_reflections/" +"ggx_samples]。" + +msgid "" +"Uses the same high quality importance sampling to process the radiance map as " +"[constant SKY_MODE_QUALITY], but updates over several frames. The number of " +"frames is determined by [member ProjectSettings.rendering/reflections/" +"sky_reflections/roughness_layers]. Use this when you need highest quality " +"radiance maps, but have a sky that updates slowly." +msgstr "" +"使用与 [constant SKY_MODE_QUALITY] 相同的高质量重要性采样来处理辐射度贴图,但" +"更新会占用若干帧。帧数由 [member ProjectSettings.rendering/reflections/" +"sky_reflections/roughness_layers] 决定。当需要最高质量的辐射度贴图,但天空更新" +"缓慢时,请使用该选项。" + msgid "" "Uses the fast filtering algorithm to process the radiance map. In general " "this results in lower quality, but substantially faster run times. If you " @@ -99377,9 +105737,9 @@ msgstr "" "快。如果需要更好的质量,但仍需要每帧更新天空,请考虑开启 [member " "ProjectSettings.rendering/reflections/sky_reflections/" "fast_filter_high_quality]。\n" -"[b]注意:[/b]快速过滤算法被限制为 256x256 立方体贴图,因此 [member " -"radiance_size] 必须被设置为 [code]256[/code]。否则会打印警告并忽略对辐照度大小" -"的覆盖。" +"[b]注意:[/b]快速过滤算法被限制为 256x256 立方体贴图,因此 [method " +"sky_set_radiance_size] 必须被设置为 [code]256[/code]。否则会打印警告并忽略对辐" +"照度大小的覆盖。" msgid "Use the clear color as background." msgstr "用透明的颜色作为背景。" @@ -100073,6 +106433,28 @@ msgstr "" msgid "Texture memory used (in bytes)." msgstr "纹理内存的使用量(单位为字节)。" +msgid "" +"Buffer memory used (in bytes). This includes vertex data, uniform buffers, " +"and many miscellaneous buffer types used internally." +msgstr "" +"缓冲内存的使用量(单位为字节)。包括顶点数据、uniform 缓冲以及内部使用的各种不" +"同缓冲类型。" + +msgid "" +"Video memory used (in bytes). When using the Forward+ or mobile rendering " +"backends, this is always greater than the sum of [constant " +"RENDERING_INFO_TEXTURE_MEM_USED] and [constant " +"RENDERING_INFO_BUFFER_MEM_USED], since there is miscellaneous data not " +"accounted for by those two metrics. When using the GL Compatibility backend, " +"this is equal to the sum of [constant RENDERING_INFO_TEXTURE_MEM_USED] and " +"[constant RENDERING_INFO_BUFFER_MEM_USED]." +msgstr "" +"显存的使用量(单位为字节)。使用 Forward+ 或移动渲染后端时,始终比 [constant " +"RENDERING_INFO_TEXTURE_MEM_USED] 与 [constant RENDERING_INFO_BUFFER_MEM_USED] " +"的总和要大,因为这两项之外还有一些杂项数据。使用 GL Compatibility 后端时,等" +"于 [constant RENDERING_INFO_TEXTURE_MEM_USED] 与 [constant " +"RENDERING_INFO_BUFFER_MEM_USED] 之和。" + msgid "Hardware supports shaders. This enum is currently unused in Godot 3.x." msgstr "硬件支持着色器。这个枚举目前在 Godot 3.x 中没有使用。" @@ -100260,6 +106642,20 @@ msgstr "" "这个资源的可选名称。定义后会在“检查器”面板中显示这个值来代表该资源。对于内置脚" "本,该名称会在脚本编辑器中作为选项卡名称的一部分显示。" +msgid "" +"The unique path to this resource. If it has been saved to disk, the value " +"will be its filepath. If the resource is exclusively contained within a " +"scene, the value will be the [PackedScene]'s filepath, followed by a unique " +"identifier.\n" +"[b]Note:[/b] Setting this property manually may fail if a resource with the " +"same path has already been previously loaded. If necessary, use [method " +"take_over_path]." +msgstr "" +"该资源的唯一路径。如果已被保存到磁盘,该值将是其文件路径。如果该资源仅包含在某" +"一个场景中,该值将是 [PackedScene] 的文件路径后加上一个唯一标识符。\n" +"[b]注意:[/b]如果之前已经加载了具有相同路径的资源,手动设置该属性可能会失败。" +"如果有必要,请使用 [method take_over_path]。" + msgid "" "Emitted when the resource changes, usually when one of its properties is " "modified. See also [method emit_changed].\n" @@ -100267,9 +106663,9 @@ msgid "" "custom resources. If necessary, a setter needs to be created to emit the " "signal." msgstr "" -"当资源发生更改时发出信号,通常是当其属性之一被修改时。另请参见 [method " +"当资源发生更改时发出信号,通常是当其属性之一被修改时。另见 [method " "emit_changed] 。\n" -"[b]注意:[/b] 自定义资源的属性不会自动发出此信号。如有必要,需要创建一个 " +"[b]注意:[/b]自定义资源的属性不会自动发出此信号。如有必要,需要创建一个 " "setter 来触发。" msgid "" @@ -100306,14 +106702,14 @@ msgstr "" "[ResourceLoader] 单例自动查询,或在加载具有内部依赖项的资源时自动查询。每种文" "件类型可以作为不同的资源类型加载,因此在引擎中注册多个 " "ResourceFormatLoaders。\n" -"扩展此类可让您定义自己的加载器。请确保遵守文档中记录的返回类型和值。您应该使" +"扩展此类可让你定义自己的加载器。请确保遵守文档中记录的返回类型和值。你应该使" "用 [code]class_name[/code] 给它一个全局类名以进行注册。像内置的 " -"ResourceFormatLoaders 一样,当加载其处理的类型的资源时,它将自动被调用。您还可" +"ResourceFormatLoaders 一样,当加载其处理的类型的资源时,它将自动被调用。你还可" "以实现 [ResourceFormatSaver]。\n" -"[b]注意:[/b] 如果您需要的资源类型存在,但 Godot 无法加载其格式,则也可以扩展 " +"[b]注意:[/b]如果你需要的资源类型存在,但 Godot 无法加载其格式,则也可以扩展 " "[EditorImportPlugin]。选择哪种方法取决于该格式是否适用于最终导出的游戏。例如," -"最好首先将 [code].png[/code] 纹理作为 [code].ctex[/code] " -"([CompressedTexture2D]) 导入,以便在图形卡上能更高效的加载它们。" +"最好首先将 [code].png[/code] 纹理作为 [code].ctex[/code]" +"([CompressedTexture2D])导入,以便在图形卡上能更高效的加载它们。" msgid "" "If implemented, gets the dependencies of a given resource. If [param " @@ -100347,7 +106743,7 @@ msgid "" msgstr "" "获取与给定路径相关的资源的类名。如果加载器不能处理它,它应该返回 [code]\"\"[/" "code]。\n" -"[b]注意:[/b][ClassDB] 不知道脚本定义的自定义资源类型,因此您可能只为它们返回 " +"[b]注意:[/b][ClassDB] 不知道脚本定义的自定义资源类型,因此你可能只为它们返回 " "[code]\"Resource\"[/code]。" msgid "" @@ -100356,7 +106752,7 @@ msgid "" "[ClassDB], so you might just handle [code]\"Resource\"[/code] for them." msgstr "" "说明这个加载器可以加载哪个资源类。\n" -"[b]注意:[/b][ClassDB] 不知道脚本定义的自定义资源类型,因此您可以只为它们处理 " +"[b]注意:[/b][ClassDB] 不知道脚本定义的自定义资源类型,因此你可以只为它们处理 " "[code]\"Resource\"[/code]。" msgid "" @@ -100412,10 +106808,10 @@ msgid "" "ResourceFormatSavers, it will be called automatically when saving resources " "of its recognized type(s). You may also implement a [ResourceFormatLoader]." msgstr "" -"当您从编辑器执行此操作或使用 [ResourceSaver] 单例时,引擎可以节省资源。这要归" +"当你从编辑器执行此操作或使用 [ResourceSaver] 单例时,引擎可以节省资源。这要归" "功于多个 [ResourceFormatSaver],每个都处理自己的格式并由引擎自动调用。\n" "默认情况下,Godot 将资源保存为 [code].tres[/code](基于文本)、[code].res[/" -"code](二进制)或其他内置格式,但您可以选择通过扩展这个类来创建自己的格式。请" +"code](二进制)或其他内置格式,但你可以选择通过扩展这个类来创建自己的格式。请" "务必遵守记录的返回类型和值。你应该给它一个全局类名 [code]class_name[/code] 以" "便它被注册。与内置的 ResourceFormatSaver 一样,它会在保存其识别类型的资源时自" "动调用。你也可以实现一个 [ResourceFormatLoader]。" @@ -100485,6 +106881,23 @@ msgstr "" msgid "A singleton for loading resource files." msgstr "用于加载资源文件的单例。" +msgid "" +"A singleton used to load resource files from the filesystem.\n" +"It uses the many [ResourceFormatLoader] classes registered in the engine " +"(either built-in or from a plugin) to load files into memory and convert them " +"to a format that can be used by the engine.\n" +"[b]Note:[/b] You have to import the files into the engine first to load them " +"using [method load]. If you want to load [Image]s at run-time, you may use " +"[method Image.load]. If you want to import audio files, you can use the " +"snippet described in [member AudioStreamMP3.data]." +msgstr "" +"用于从文件系统加载资源文件的单例。\n" +"会使用引擎中(内置或插件)注册的许多 [ResourceFormatLoader] 类将文件加载到内存" +"中并将其转换为引擎可以使用的格式。\n" +"[b]注意:[/b]你需要先将文件导入引擎,才能使用 [method load] 进行加载。如果你想" +"在运行时加载 [Image],可以使用 [method Image.load]。如果你想导入音频文件,可以" +"使用 [member AudioStreamMP3.data] 中描述的代码段。" + msgid "" "Registers a new [ResourceFormatLoader]. The ResourceLoader will use the " "ResourceFormatLoader as described in [method load].\n" @@ -100507,6 +106920,25 @@ msgstr "" "[Resource] 类型。任何继承自 [Resource] 的内容都可以用作类型提示,例如 " "[Image]。" +msgid "" +"Returns the dependencies for the resource at the given [param path].\n" +"[b]Note:[/b] The dependencies are returned with slices separated by [code]::[/" +"code]. You can use [method String.get_slice] to get their components.\n" +"[codeblock]\n" +"for dep in ResourceLoader.get_dependencies(path):\n" +" print(dep.get_slice(\"::\", 0)) # Prints UID.\n" +" print(dep.get_slice(\"::\", 2)) # Prints path.\n" +"[/codeblock]" +msgstr "" +"返回位于给定路径 [param path] 的资源的依赖项。\n" +"[b]注意:[/b]返回的单个依赖项是由 [code]::[/code] 分隔的切片。你可以使用 " +"[method String.get_slice] 来获取每段的内容。\n" +"[codeblock]\n" +"for dep in ResourceLoader.get_dependencies(path):\n" +" print(dep.get_slice(\"::\", 0)) # 输出 UID。\n" +" print(dep.get_slice(\"::\", 2)) # 输出路径。\n" +"[/codeblock]" + msgid "Returns the list of recognized extensions for a resource type." msgstr "返回资源类型的已识别扩展名列表。" @@ -100629,6 +107061,9 @@ msgid "" "load_threaded_get]." msgstr "资源成功加载,可以通过 [method load_threaded_get] 访问。" +msgid "A node used to preload sub-resources inside a scene." +msgstr "用于预加载场景子资源的节点。" + msgid "" "This node is used to preload sub-resources inside a scene, so when the scene " "is loaded, all the resources are ready to use and can be retrieved from the " @@ -100831,12 +107266,71 @@ msgstr "" "用于无效 UID 的值,例如无法加载的资源。\n" "对应的文本表示为 [code]uid://[/code]。" +msgid "Represents a straight ribbon-shaped [PrimitiveMesh] with variable width." +msgstr "代表竖直丝带形状的 [PrimitiveMesh],丝带的宽度可变。" + +msgid "" +"[RibbonTrailMesh] represents a straight ribbon-shaped mesh with variable " +"width. The ribbon is composed of a number of flat or cross-shaped sections, " +"each with the same [member section_length] and number of [member " +"section_segments]. A [member curve] is sampled along the total length of the " +"ribbon, meaning that the curve determines the size of the ribbon along its " +"length.\n" +"This primitive mesh is usually used for particle trails." +msgstr "" +"[RibbonTrailMesh] 代表竖直条带形状的网格,条带的宽度可变。条带由若干扁平或十字" +"形的分节构成,每一节的长度 [member section_length] 和分段数 [member " +"section_segments] 都相同。条带会沿着总长度对 [member curve] 进行采样,这样这条" +"曲线就决定了条带沿长度的大小。\n" +"该基本网格常用于粒子拖尾。" + msgid "3D Particle trails" msgstr "3D 粒子拖尾" msgid "Particle systems (3D)" msgstr "粒子系统(3D)" +msgid "" +"Determines the size of the ribbon along its length. The size of a particular " +"section segment is obtained by multiplying the baseline [member size] by the " +"value of this curve at the given distance. For values smaller than [code]0[/" +"code], the faces will be inverted." +msgstr "" +"决定条带沿长度的大小。通过将基础大小 [member size] 乘以这条曲线上给定位置对应" +"的值,就可以得到分节上某一段的大小。如果得到的值小于 [code]0[/code],则对应的" +"面会被翻转。" + +msgid "The length of a section of the ribbon." +msgstr "条带中一节的长度。" + +msgid "" +"The number of segments in a section. The [member curve] is sampled on each " +"segment to determine its size. Higher values result in a more detailed ribbon " +"at the cost of performance." +msgstr "" +"条带中一节的段数。每一段的大小是根据对 [member curve] 的采样确定的。更高的值会" +"生成更细致的条带,但以性能为代价。" + +msgid "The total number of sections on the ribbon." +msgstr "条带中分节的数量。" + +msgid "Determines the shape of the ribbon." +msgstr "决定条带的形状。" + +msgid "" +"The baseline size of the ribbon. The size of a particular section segment is " +"obtained by multiplying this size by the value of the [member curve] at the " +"given distance." +msgstr "" +"条带的基础大小。通过将这个大小乘以 [member curve] 上给定位置对应的值,就可以得" +"到分节上某一段的大小。" + +msgid "Gives the mesh a single flat face." +msgstr "将网格指定为单个扁平的面。" + +msgid "Gives the mesh two perpendicular flat faces, making a cross shape." +msgstr "将网格指定为两个互相垂直的面,形成十字形。" + msgid "A custom effect for a [RichTextLabel]." msgstr "[RichTextLabel] 的自定义效果。" @@ -100886,6 +107380,44 @@ msgstr "" "须返回 [code]true[/code]。如果该方法返回 [code]false[/code],则它将跳过转换以" "避免显示损坏的文本。" +msgid "" +"A control for displaying text that can contain different font styles, images, " +"and basic formatting." +msgstr "用于显示文本的控件,文本中能够包含不同的字体样式、图片以及基础格式。" + +msgid "" +"A control for displaying text that can contain custom fonts, images, and " +"basic formatting. [RichTextLabel] manages these as an internal tag stack. It " +"also adapts itself to given width/heights.\n" +"[b]Note:[/b] Assignments to [member text] clear the tag stack and reconstruct " +"it from the property's contents. Any edits made to [member text] will erase " +"previous edits made from other manual sources such as [method append_text] " +"and the [code]push_*[/code] / [method pop] methods.\n" +"[b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For " +"example, instead of using [code][b]bold[i]bold italic[/b]italic[/i][/code], " +"use [code][b]bold[i]bold italic[/i][/b][i]italic[/i][/code].\n" +"[b]Note:[/b] [code]push_*/pop_*[/code] functions won't affect BBCode.\n" +"[b]Note:[/b] Unlike [Label], [RichTextLabel] doesn't have a [i]property[/i] " +"to horizontally align text to the center. Instead, enable [member " +"bbcode_enabled] and surround the text in a [code][center][/code] tag as " +"follows: [code][center]Example[/center][/code]. There is currently no built-" +"in way to vertically align text either, but this can be emulated by relying " +"on anchors/containers and the [member fit_content] property." +msgstr "" +"用于显示文本的控件,文本中能够包含自定义字体、图片以及基础格式。" +"[RichTextLabel] 使用内部标签栈管理这些内容。它还可以适应给定的宽度和高度。\n" +"[b]注意:[/b]对 [member text] 赋值会将标签栈清空并根据该属性的内容重建。对 " +"[member text] 所做的任何编辑都将擦除之前从 [method append_text] 和 " +"[code]push_*[/code] / [method pop] 方法等其他手动来源所做的编辑。\n" +"[b]注意:[/b]RichTextLabel 不支持纠缠的 BBCode 标签。例如,请不要使用 [code]" +"[b]加粗[i]加粗斜体[/b]斜体[/i][/code],请改为 [code][b]加粗[i]加粗斜体[/i][/b]" +"[i]斜体[/i][/code]。\n" +"[b]注意:[/b][code]push_*/pop[/code] 函数不会影响 BBCode。\n" +"[b]注意:[/b]与 [Label] 不同,[RichTextLabel] 没有使文本水平居中的[i]属性[/" +"i]。请启用 [member bbcode_enabled] 并将文本包围在 [code][center][/code] 标签" +"中,类似:[code][center]示例[/center][/code]。目前也没有垂直对齐文本的内置方" +"法,但这可以通过使用锚点/容器和 [member fit_content] 属性来模拟。" + msgid "GUI Rich Text/BBcode Demo" msgstr "GUI 富文本/BBcode 演示" @@ -100922,9 +107454,18 @@ msgstr "" "解析 [param bbcode] 并根据需要将标签添加到标签栈中。\n" "[b]注意:[/b]使用该方法,无法关闭在之前的 [method append_text] 调用中打开的标" "签。这样做是为了提高性能,尤其是在更新大型 RichTextLabel 时,因为每次都重建整" -"个 BBCode 会比较慢。如果您绝对需要在接下来的方法调用中关闭标签,请追加 " +"个 BBCode 会比较慢。如果你绝对需要在接下来的方法调用中关闭标签,请追加 " "[member text] 而不是使用 [method append_text]。" +msgid "" +"Clears the tag stack.\n" +"[b]Note:[/b] This method will not modify [member text], but setting [member " +"text] to an empty string also clears the stack." +msgstr "" +"清空标签栈。\n" +"[b]注意:[/b]这个方法不会修改 [member text],但将 [member text] 设置为空字符串" +"也能清空标签栈。" + msgid "" "Returns the line number of the character position provided.\n" "[b]Note:[/b] If [member threaded] is enabled, this method returns a value for " @@ -101138,7 +107679,7 @@ msgid "" "to determine whether document is fully loaded." msgstr "" "返回可见段落的数量。如果段落中至少有一行是可见的,则该段落被认为是可见的。\n" -"[b]注意:[/b] 如果启用了 [member threaded],则此方法返回文档已加载部分的值。使" +"[b]注意:[/b]如果启用了 [member threaded],则此方法返回文档已加载部分的值。使" "用 [method is_ready] 或 [signal finished] 来确定文档是否已完全加载。" msgid "" @@ -101239,6 +107780,14 @@ msgstr "" "添加一个 [code][indent][/code] 标签到标签栈。将 [param level] 乘以当前 " "[member tab_size] 以确定新的边距长度。" +msgid "" +"Adds a [code][font][/code] tag with an italics font to the tag stack. This is " +"the same as adding an [code][i][/code] tag if not currently in a [code][b][/" +"code] tag." +msgstr "" +"在标签栈中添加 [code][font][/code] 标签,字体为斜体。如果当前不在 [code][b][/" +"code] 标签中,则与添加 [code][i][/code] 标签相同。" + msgid "" "Adds [code][ol][/code] or [code][ul][/code] tag to the tag stack. Multiplies " "[param level] by current [member tab_size] to determine new margin length." @@ -101390,7 +107939,7 @@ msgid "" msgstr "" "加载进度条显示的延迟时间,单位为毫秒。将其设置为 [code]-1[/code] 将完全禁用进" "度条。\n" -"[b]注意:[/b]仅当 [member threaded] 已启用时才会显示进度条。" +"[b]注意:[/b]仅当 [member threaded] 已启用时才会显示进度条。" msgid "" "If [code]true[/code], the scrollbar is visible. Setting this to [code]false[/" @@ -101435,10 +107984,10 @@ msgid "" msgstr "" "以 BBCode 格式表示的标签的文本。当编辑时,不代表对内部标签栈所做的手动修改。在" "编辑时将擦除使用其他方法添加的更改。\n" -"[b]注意:[/b] 如果 [member bbcode_enabled] 是 [code]true[/code],则不建议使用 " +"[b]注意:[/b]如果 [member bbcode_enabled] 是 [code]true[/code],则不建议使用 " "[code]text += \"some string\"[/code] 这样的 [code]+=[/code] 操作符,因为它会替" "换整个文本,并可能导致减速。它还将擦除使用 [code]push_*[/code] 方法添加到堆栈" -"中的所有 BBCode。可使用 [method append_text] 来添加文本,除非您绝对需要关闭在" +"中的所有 BBCode。可使用 [method append_text] 来添加文本,除非你绝对需要关闭在" "之前的方法调用中打开的标记。" msgid "If [code]true[/code], text processing is done in a background thread." @@ -101578,6 +108127,9 @@ msgstr "" msgid "The normal background for the [RichTextLabel]." msgstr "[RichTextLabel] 的正常背景。" +msgid "A handle for a [Resource]'s unique identifier." +msgstr "[Resource] 的唯一标识符的句柄。" + msgid "" "The RID [Variant] type is used to access a low-level resource by its unique " "ID. RIDs are opaque, which means they do not grant access to the resource by " @@ -101732,8 +108284,8 @@ msgstr "" "返回与此物体发生碰撞的物体的列表。需要将 [member contact_monitor] 设置为 " "[code]true[/code],并将 [member max_contacts_reported] 设置足够高以侦测所有碰" "撞。\n" -"[b]注意:[/b]此测试的结果不会立即在移动物体后得出。为了提高性能,碰撞列表每帧更" -"新一次,且在物理步骤之前进行。可考虑改用信号来代替。" +"[b]注意:[/b]此测试的结果不会立即在移动物体后得出。为了提高性能,碰撞列表每帧" +"更新一次,且在物理步骤之前进行。可考虑改用信号来代替。" msgid "" "Returns the number of contacts this body has with other bodies. By default, " @@ -101743,8 +108295,8 @@ msgid "" "get_colliding_bodies]." msgstr "" "返回此物体与其他物体的接触数。默认情况下,除非配置监视接触的物体(请参见 " -"[member contact_monitor]),否则返回0。\n" -"[b]注意:[/b] 要获取正在碰撞的物体,请使用 [method get_colliding_bodies]。" +"[member contact_monitor]),否则返回 0。\n" +"[b]注意:[/b]要获取正在碰撞的物体,请使用 [method get_colliding_bodies]。" msgid "" "Sets the body's velocity on the given axis. The velocity in the given vector " @@ -101765,7 +108317,7 @@ msgid "" msgstr "" "减缓物体的旋转。默认情况下,物体将使用 [b]项目> 项目设置> 物理> 2D[/b] 中的[b]" "默认角阻尼[/b],或由 [Area2D] 设置的任何值覆盖。根据 [member " -"angular_damp_mode],您可以设置 [member angular_damp_mode] 以添加到或替换物体的" +"angular_damp_mode],你可以设置 [member angular_damp_mode] 以添加到或替换物体的" "阻尼值。\n" "有关阻尼的更多详细信息,请参见 [member ProjectSettings.physics/2d/" "default_angular_damp] 。" @@ -101814,6 +108366,16 @@ msgstr "" "在每个物理更新期间施加的物体的总恒定旋转力。\n" "请参见 [method add_constant_torque] 。" +msgid "" +"If [code]true[/code], the RigidBody2D will emit signals when it collides with " +"another body.\n" +"[b]Note:[/b] By default the maximum contacts reported is set to 0, meaning " +"nothing will be recorded, see [member max_contacts_reported]." +msgstr "" +"如果为 [code]true[/code],则该 RigidBody2D 将在与其他物体碰撞时发出信号。\n" +"[b]注意:[/b]默认情况下,报告的最大接触数被设置为 0,表示不会记录任何内容,见 " +"[member max_contacts_reported]。" + msgid "" "Continuous collision detection mode.\n" "Continuous collision detection tries to predict where a moving body will " @@ -101937,7 +108499,7 @@ msgid "" msgstr "" "阻碍物体的运动。默认情况下,物体将使用 [b]项目 > 项目设置 > Physics > 2d[/b] " "中的 [b]默认线性阻尼(Default Linear Damp)[/b]、或物体所在的 [Area2D] 设置的" -"任何值覆盖。取决于 [member linear_damp_mode],您可以将 [member linear_damp] 设" +"任何值覆盖。取决于 [member linear_damp_mode],你可以将 [member linear_damp] 设" "置为添加或替换物体的阻尼值。\n" "有关阻尼的更多详细信息,请参见 [member ProjectSettings.physics/2d/" "default_linear_damp]。" @@ -101971,7 +108533,7 @@ msgstr "" "将记录的最大接触点数。需要一个大于 0 的值,并将 [member contact_monitor] 设置" "为 [code]true[/code] 以开始注册接触。使用 [method get_contact_count] 检索计数" "或使用 [method get_colliding_bodies] 检索已发生碰撞的物体。\n" -"[b]注意:[/b] 接触点的数量不同于碰撞的数量。平行边之间的碰撞将导致两个接触点" +"[b]注意:[/b]接触点的数量不同于碰撞的数量。平行边之间的碰撞将导致两个接触点" "(每个端点一个),平行面之间的碰撞将导致四个接触点(每个角落一个)。" msgid "" @@ -102220,6 +108782,16 @@ msgstr "" msgid "The RigidBody3D's rotational velocity in [i]radians[/i] per second." msgstr "该 RigidBody3D 的旋转速度,单位为[i]弧度[/i]每秒。" +msgid "" +"If [code]true[/code], the RigidBody3D will emit signals when it collides with " +"another body.\n" +"[b]Note:[/b] By default the maximum contacts reported is set to 0, meaning " +"nothing will be recorded, see [member max_contacts_reported]." +msgstr "" +"如果为 [code]true[/code],则该 RigidBody3D 将在与其他物体碰撞时发出信号。\n" +"[b]注意:[/b]默认情况下,报告的最大接触数被设置为 0,表示不会记录任何内容,见 " +"[member max_contacts_reported]。" + msgid "" "If [code]true[/code], continuous collision detection is used.\n" "Continuous collision detection tries to predict where a moving body will " @@ -102588,6 +109160,23 @@ msgstr "" "时间,之后身份验证将自动失败。请参阅 [signal peer_authenticating] 和 [signal " "peer_authentication_failed] 信号。" +msgid "" +"Maximum size of each delta packet. Higher values increase the chance of " +"receiving full updates in a single frame, but also the chance of causing " +"networking congestion (higher latency, disconnections). See " +"[MultiplayerSynchronizer]." +msgstr "" +"增量数据包的最大大小。值越大,单帧能够收到完整更新的几率就越大,但造成网络拥堵" +"的几率也越大(网络延迟、断线等)。见 [MultiplayerSynchronizer]。" + +msgid "" +"Maximum size of each synchronization packet. Higher values increase the " +"chance of receiving full updates in a single frame, but also the chance of " +"packet loss. See [MultiplayerSynchronizer]." +msgstr "" +"同步数据包的最大大小。值越大,单帧能够收到完整更新的几率就越大,但丢包的几率也" +"越大。见 [MultiplayerSynchronizer]。" + msgid "" "If [code]true[/code], the MultiplayerAPI's [member MultiplayerAPI." "multiplayer_peer] refuses new incoming connections." @@ -102727,6 +109316,20 @@ msgstr "从配置中移除属性,该属性由 [param path] 指定。" msgid "Provides access to a scene file's information." msgstr "提供对场景文件信息的访问。" +msgid "" +"Maintains a list of resources, nodes, exported and overridden properties, and " +"built-in scripts associated with a scene. They cannot be modified from a " +"[SceneState], only accessed. Useful for peeking into what a [PackedScene] " +"contains without instantiating it.\n" +"This class cannot be instantiated directly, it is retrieved for a given scene " +"as the result of [method PackedScene.get_state]." +msgstr "" +"维护一个与场景相关的资源、节点、导出的和重写的属性以及内置脚本的列表。无法从 " +"[SceneState] 修改,只能读取。可用于在不实例化 [PackedScene] 的前提下观察其中的" +"内容。\n" +"这个类不能直接实例化,它是作为 [method PackedScene.get_state] 的结果为一个给定" +"的场景检索的。" + msgid "Returns the list of bound parameters for the signal at [param idx]." msgstr "返回 [param idx] 处信号的绑定参数列表。" @@ -102929,6 +109532,60 @@ msgstr "" "[b]注意:[/b][method call_group] 将立即对所有成员调用一次方法,如果对大量成员" "调用昂贵的方法,这可能会导致卡顿。" +msgid "" +"Calls [param method] on each member of the given group, respecting the given " +"[enum GroupCallFlags]. You can pass arguments to [param method] by specifying " +"them at the end of the method call. If a node doesn't have the given method " +"or the argument list does not match (either in count or in types), it will be " +"skipped.\n" +"[codeblock]\n" +"# Call the method in a deferred manner and in reverse order.\n" +"get_tree().call_group_flags(SceneTree.GROUP_CALL_DEFERRED | SceneTree." +"GROUP_CALL_REVERSE)\n" +"[/codeblock]\n" +"[b]Note:[/b] Group call flags are used to control the method calling " +"behavior. By default, methods will be called immediately in a way similar to " +"[method call_group]. However, if the [constant GROUP_CALL_DEFERRED] flag is " +"present in the [param flags] argument, methods will be called at the end of " +"the frame in a way similar to [method Object.set_deferred]." +msgstr "" +"调用给定分组中每个成员的 [param method] 方法,遵循给定的 [enum " +"GroupCallFlags]。你可以在方法调用末尾指定要传递给 [param method] 的参数。如果" +"某个节点没有给定的方法,或者方法的参数列表不匹配(无论是数量还是类型不匹配)," +"则会跳过这个节点。\n" +"[codeblock]\n" +"# 使用延迟方式逆序调用该方法。\n" +"get_tree().call_group_flags(SceneTree.GROUP_CALL_DEFERRED | SceneTree." +"GROUP_CALL_REVERSE)\n" +"[/codeblock]\n" +"[b]注意:[/b]分组调用标志可用于控制方法调用的行为。默认情况下方法是立即调用" +"的,与 [method call_group] 类似。但是如果在 [param flags] 中存在 [constant " +"GROUP_CALL_DEFERRED] 标志,则方法会在该帧末尾调用,与 [method Object." +"set_deferred] 类似。" + +msgid "" +"Changes the running scene to the one at the given [param path], after loading " +"it into a [PackedScene] and creating a new instance.\n" +"Returns [constant OK] on success, [constant ERR_CANT_OPEN] if the [param " +"path] cannot be loaded into a [PackedScene], or [constant ERR_CANT_CREATE] if " +"that scene cannot be instantiated.\n" +"[b]Note:[/b] The scene change is deferred, which means that the new scene " +"node is added to the tree at the end of the frame. This ensures that both " +"scenes aren't running at the same time, while still freeing the previous " +"scene in a safe way similar to [method Node.queue_free]. As such, you won't " +"be able to access the loaded scene immediately after the [method " +"change_scene_to_file] call." +msgstr "" +"将位于给定路径 [param path] 的场景加载进一个 [PackedScene] 并新建其实例,然后" +"将正在运行的场景修改为这个场景。\n" +"成功时返回 [constant OK],如果 [param path] 不能被加载到一个 [PackedScene] " +"中,则返回 [constant ERR_CANT_OPEN];如果该场景无法被实例化,则返回 [constant " +"ERR_CANT_CREATE]。\n" +"[b]注意:[/b]场景改变是延迟的,即新的场景节点是在该帧的末尾添加的。这确保了两" +"个场景永远不会同时加载,如果场景太大或在内存受限的环境中运行,这会耗尽系统资" +"源。因此,无法在 [method change_scene_to_file] 调用后,立即访问到被加载的场" +"景。" + msgid "" "Changes the running scene to a new instance of the given [PackedScene] (which " "must be valid).\n" @@ -103125,6 +109782,33 @@ msgstr "" "[PackedScene] 中,则返回 [constant ERR_CANT_OPEN],如果场景无法加载,则返回 " "[constant ERR_CANT_CREATE]。" +msgid "" +"Sets the given [param property] to [param value] on all members of the given " +"group.\n" +"[b]Note:[/b] [method set_group] will set the property immediately on all " +"members at once, which can cause stuttering if a property with an expensive " +"setter is set on lots of members." +msgstr "" +"将给定分组中所有成员的 [param property] 设置为 [param value]。\n" +"[b]注意:[/b][method set_group] 会立即在所有成员上设置属性,如果对许多成员设置" +"具有大量耗费的 setter 的属性,则可能会导致卡顿。" + +msgid "" +"Sets the given [param property] to [param value] on all members of the given " +"group, respecting the given [enum GroupCallFlags].\n" +"[b]Note:[/b] Group call flags are used to control the property setting " +"behavior. By default, properties will be set immediately in a way similar to " +"[method set_group]. However, if the [constant GROUP_CALL_DEFERRED] flag is " +"present in the [param call_flags] argument, properties will be set at the end " +"of the frame in a way similar to [method Object.call_deferred]." +msgstr "" +"将给定分组中所有成员的 [param property] 设置为 [param value],设置时会考虑给定" +"的 [enum GroupCallFlags]。\n" +"[b]注意:[/b]分组调用标志可用于控制属性设置的行为。默认情况下会立即设置属性," +"类似于 [method set_group]。但是,如果在 [param call_flags] 参数中存在 " +"[constant GROUP_CALL_DEFERRED] 标志,则属性将在该帧的末尾再设置,类似于 " +"[method Object.call_deferred]。" + msgid "" "Sets a custom [MultiplayerAPI] with the given [param root_path] (controlling " "also the relative subpaths), or override the default one if [param root_path] " @@ -103276,6 +109960,9 @@ msgstr "对分组进行调用时,不使用标志(默认)。" msgid "Call a group in reverse scene order." msgstr "对分组进行调用时,使用逆场景序。" +msgid "Call a group at the end of the current frame (process or physics)." +msgstr "在当前帧的末尾对分组进行调用(处理帧或物理帧)。" + msgid "" "Call a group only once even if the call is executed many times.\n" "[b]Note:[/b] Arguments are not taken into account when deciding whether the " @@ -103425,6 +110112,9 @@ msgstr "" "脚本的源代码,如果源代码不可用,则为空字符串。当设置时,不会自动重新加载类的实" "现。" +msgid "Godot editor's popup dialog for creating new [Script] files." +msgstr "Godot 编辑器用于创建新 [Script] 文件的弹出对话框。" + msgid "" "The [ScriptCreateDialog] creates script files according to a given template " "for a given scripting language. The standard use is to configure its fields " @@ -103482,6 +110172,15 @@ msgstr "当用户点击确定按钮时发出。" msgid "Godot editor's script editor." msgstr "Godot 编辑器的脚本编辑器。" +msgid "" +"Godot editor's script editor.\n" +"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access " +"the singleton using [method EditorInterface.get_script_editor]." +msgstr "" +"Godot 编辑器的脚本编辑器。\n" +"[b]注意:[/b]这个类不应该被直接实例化。请使用 [method EditorInterface." +"get_script_editor] 来访问这个单例。" + msgid "" "Returns the [ScriptEditorBase] object that the user is currently editing." msgstr "返回用户当前正在编辑的 [ScriptEditorBase] 对象。" @@ -103540,6 +110239,11 @@ msgstr "当编辑器即将关闭活动脚本时发出。参数是将要关闭的 msgid "Base editor for editing scripts in the [ScriptEditor]." msgstr "用于在 [ScriptEditor] 中编辑脚本的基础编辑器。" +msgid "" +"Base editor for editing scripts in the [ScriptEditor]. This does not include " +"documentation items." +msgstr "用于在 [ScriptEditor] 中编辑脚本的基础编辑器。不包含文档项目。" + msgid "Adds a [EditorSyntaxHighlighter] to the open script." msgstr "将 [EditorSyntaxHighlighter] 添加到打开的脚本中。" @@ -103817,6 +110521,16 @@ msgid "" "any collider." msgstr "用于物理碰撞的 2D 射线形状,会尝试将自己与其他碰撞体分开。" +msgid "" +"A 2D ray shape, intended for use in physics. Usually used to provide a shape " +"for a [CollisionShape2D]. When a [SeparationRayShape2D] collides with an " +"object, it tries to separate itself from it by moving its endpoint to the " +"collision point. It can for example be used for spears falling from the sky." +msgstr "" +"2D 射线形状,旨在用于物理。通常用来为 [CollisionShape2D] 提供形状。" +"[SeparationRayShape2D] 与某个对象发生碰撞时,会尝试将其端点移动至碰撞点,将自" +"己与该对象分离。示例用法是充当从天上落下的长矛。" + msgid "The ray's length." msgstr "射线的长度。" @@ -103836,6 +110550,16 @@ msgid "" "any collider." msgstr "用于物理碰撞的 3D 射线形状,会尝试将自己与其他碰撞体分开。" +msgid "" +"A 3D ray shape, intended for use in physics. Usually used to provide a shape " +"for a [CollisionShape2D]. When a [SeparationRayShape3D] collides with an " +"object, it tries to separate itself from it by moving its endpoint to the " +"collision point. It can for example be used for spears falling from the sky." +msgstr "" +"3D 射线形状,旨在用于物理。通常用来为 [CollisionShape2D] 提供形状。" +"[SeparationRayShape3D] 与某个对象发生碰撞时,会尝试将其端点移动至碰撞点,将自" +"己与该对象分离。示例用法是充当从天上落下的长矛。" + msgid "Abstract base class for separators." msgstr "分隔线的抽象基类。" @@ -103930,6 +110654,64 @@ msgstr "用于绘制天空的模式。仅适用于附加到 [Sky] 对象的着 msgid "Mode used for setting the color and density of volumetric fog effect." msgstr "用于设置体积雾效果的颜色和密度的模式。" +msgid "Overrides global shader parameters' values in a specific scene." +msgstr "针对指定场景覆盖全局着色器参数的取值。" + +msgid "" +"Similar to how a [WorldEnvironment] node can be used to override the " +"environment while a specific scene is loaded, [ShaderGlobalsOverride] can be " +"used to override global shader parameters temporarily. Once the node is " +"removed, the project-wide values for the global shader parameters are " +"restored. See the [RenderingServer] [code]global_shader_parameter_*[/code] " +"methods for more information.\n" +"[b]Note:[/b] Only one [ShaderGlobalsOverride] can be used per scene. If there " +"is more than one [ShaderGlobalsOverride] node in the scene tree, only the " +"first node (in tree order) will be taken into account.\n" +"[b]Note:[/b] All [ShaderGlobalsOverride] nodes are made part of a " +"[code]\"shader_overrides_group\"[/code] group when they are added to the " +"scene tree. The currently active [ShaderGlobalsOverride] node also has a " +"[code]\"shader_overrides_group_active\"[/code] group added to it. You can use " +"this to check which [ShaderGlobalsOverride] node is currently active." +msgstr "" +"就像 [WorldEnvironment] 能够在加载指定场景时覆盖环境一样," +"[ShaderGlobalsOverride] 能够临时覆盖全局着色器参数。移除该节点后,就会恢复项目" +"范围的全局着色器参数。详情见 [RenderingServer] 的 " +"[code]global_shader_parameter_*[/code] 方法。\n" +"[b]注意:[/b]一个场景只能用一个 [ShaderGlobalsOverride]。如果场景树中存在多个 " +"[ShaderGlobalsOverride],则只会考虑第一个节点(按照树顺序)。\n" +"[b]注意:[/b]所有 [ShaderGlobalsOverride] 节点在添加至场景树时都会加入 " +"[code]\"shader_overrides_group\"[/code] 分组。当前活动的 " +"[ShaderGlobalsOverride] 还会加入 [code]\"shader_overrides_group_active\"[/" +"code] 分组。你可以据此来检查当前活动的 [ShaderGlobalsOverride] 节点是哪一个。" + +msgid "" +"A snippet of shader code to be included in a [Shader] with [code]#include[/" +"code]." +msgstr "着色器代码片段,能够在 [Shader] 中使用 [code]#include[/code] 引入。" + +msgid "" +"A shader include file, saved with the [code].gdshaderinc[/code] extension. " +"This class allows you to define a custom shader snippet that can be included " +"in a [Shader] by using the preprocessor directive [code]#include[/code], " +"followed by the file path (e.g. [code]#include \"res://shader_lib." +"gdshaderinc\"[/code]). The snippet doesn't have to be a valid shader on its " +"own." +msgstr "" +"着色器头文件,保存时使用 [code].gdshaderinc[/code] 扩展名。这个类能够用于定义" +"自定义着色器代码片段,在 [Shader] 中可以使用预处理器指令 [code]#include[/" +"code] 加上文件路径引入(例如 [code]#include \"res://shader_lib.gdshaderinc\"[/" +"code])。代码片段本身不必是有效的着色器。" + +msgid "Shader preprocessor" +msgstr "着色器预处理器" + +msgid "" +"Returns the code of the shader include file. The returned text is what the " +"user has written, not the full generated code used internally." +msgstr "" +"返回着色器头文件的代码。返回的文本是用户所编写的内容,不是内部使用的完整生成的" +"代码。" + msgid "A material that uses a custom [Shader] program." msgstr "使用自定义 [Shader] 程序的材质。" @@ -104123,6 +110905,32 @@ msgstr "" "过其边距时,碰撞算法的成本会更高,所以边距的数值越高对性能越好,但代价是边缘的" "精度会降低,因为会让边缘的锐度降低。" +msgid "A 2D shape that sweeps a region of space to detect [CollisionObject2D]s." +msgstr "2D 形状,会扫描空间中某个区域,用于检测 [CollisionObject2D]。" + +msgid "" +"Shape casting allows to detect collision objects by sweeping its [member " +"shape] along the cast direction determined by [member target_position]. This " +"is similar to [RayCast2D], but it allows for sweeping a region of space, " +"rather than just a straight line. [ShapeCast2D] can detect multiple collision " +"objects. It is useful for things like wide laser beams or snapping a simple " +"shape to a floor.\n" +"Immediate collision overlaps can be done with the [member target_position] " +"set to [code]Vector2(0, 0)[/code] and by calling [method " +"force_shapecast_update] within the same physics frame. This helps to overcome " +"some limitations of [Area2D] when used as an instantaneous detection area, as " +"collision information isn't immediately available to it.\n" +"[b]Note:[/b] Shape casting is more computationally expensive than ray casting." +msgstr "" +"形状投射会将其 [member shape] 沿着 [member target_position] 确定的投射方向进行" +"扫描,能够检测到碰撞对象。类似于 [RayCast2D],但是能够扫描空间中的一个区域,而" +"不仅仅是一条直线。[ShapeCast2D] 能够检测到多个碰撞对象。可用于实现较宽的激光射" +"线,或者将简单的形状吸附到地面。\n" +"要立即检测碰撞重叠,可以将 [member target_position] 设置为 [code]Vector2(0, 0)" +"[/code],并在同一个物理帧中调用 [method force_shapecast_update]。这样就能够克" +"服 [Area2D] 在进行连续区域检测时的局限性,因为它无法立即获取碰撞信息。\n" +"[b]注意:[/b]形状投射比射线投射的计算量更大。" + msgid "" "Adds a collision exception so the shape does not report collisions with the " "specified [CollisionObject2D] node." @@ -104252,6 +111060,32 @@ msgid "" "The shape's destination point, relative to this node's [code]position[/code]." msgstr "该形状的目标点,相对于该节点的 [code]position[/code]。" +msgid "A 3D shape that sweeps a region of space to detect [CollisionObject3D]s." +msgstr "3D 形状,会扫描空间中某个区域,用于检测 [CollisionObject3D]。" + +msgid "" +"Shape casting allows to detect collision objects by sweeping its [member " +"shape] along the cast direction determined by [member target_position]. This " +"is similar to [RayCast3D], but it allows for sweeping a region of space, " +"rather than just a straight line. [ShapeCast3D] can detect multiple collision " +"objects. It is useful for things like wide laser beams or snapping a simple " +"shape to a floor.\n" +"Immediate collision overlaps can be done with the [member target_position] " +"set to [code]Vector3(0, 0, 0)[/code] and by calling [method " +"force_shapecast_update] within the same physics frame. This helps to overcome " +"some limitations of [Area3D] when used as an instantaneous detection area, as " +"collision information isn't immediately available to it.\n" +"[b]Note:[/b] Shape casting is more computationally expensive than ray casting." +msgstr "" +"形状投射会将其 [member shape] 沿着 [member target_position] 确定的投射方向进行" +"扫描,能够检测到碰撞对象。类似于 [RayCast3D],但是能够扫描空间中的一个区域,而" +"不仅仅是一条直线。[ShapeCast3D] 能够检测到多个碰撞对象。可用于实现较宽的激光射" +"线,或者将简单的形状吸附到地面。\n" +"要立即检测碰撞重叠,可以将 [member target_position] 设置为 [code]Vector3(0, " +"0, 0)[/code],并在同一个物理帧中调用 [method force_shapecast_update]。这样就能" +"够克服 [Area3D] 在进行连续区域检测时的局限性,因为它无法立即获取碰撞信息。\n" +"[b]注意:[/b]形状投射比射线投射的计算量更大。" + msgid "" "Adds a collision exception so the shape does not report collisions with the " "specified [CollisionObject3D] node." @@ -104354,6 +111188,9 @@ msgstr "" "通常使用的 [InputEvent] 是 [InputEventKey],尽管也可以是任何 [InputEvent],包" "括 [InputEventAction]。" +msgid "A built-in type representing a signal of an [Object]." +msgstr "代表 [Object] 中某个信号的内置类型。" + msgid "" "[Signal] is a built-in [Variant] type that represents a signal of an [Object] " "instance. Like all [Variant] types, it can be stored in variables and passed " @@ -104514,6 +111351,25 @@ msgid "" "Returns [code]true[/code] if both signals share the same object and name." msgstr "如果信号的对象和名称相同,则返回 [code]true[/code]。" +msgid "" +"The parent of a hierarchy of [Bone2D]s, used to create a 2D skeletal " +"animation." +msgstr "[Bone2D] 层级结构的父节点,用于创建 2D 骨骼动画。" + +msgid "" +"[Skeleton2D] parents a hierarchy of [Bone2D] nodes. It holds a reference to " +"each [Bone2D]'s rest pose and acts as a single point of access to its bones.\n" +"To set up different types of inverse kinematics for the given Skeleton2D, a " +"[SkeletonModificationStack2D] should be created. The inverse kinematics be " +"applied by increasing [member SkeletonModificationStack2D.modification_count] " +"and creating the desired number of modifications." +msgstr "" +"[Skeleton2D] 是 [Bone2D] 节点层级结构的父节点,持有对每个 [Bone2D] 的放松姿势" +"的引用,充当其骨骼的单一访问点。\n" +"要为给定的 Skeleton2D 设置不同类型的反向运动学机制,应当创建一个 " +"[SkeletonModificationStack2D]。增加 [member SkeletonModificationStack2D." +"modification_count] 并创建所需数量的修改器即可应用反向运动学机制。" + msgid "2D skeletons" msgstr "2D 骨架" @@ -104576,6 +111432,28 @@ msgid "" "A node containing a bone hierarchy, used to create a 3D skeletal animation." msgstr "包含骨骼层级结构的节点,用于创建 3D 骨骼动画。" +msgid "" +"[Skeleton3D] provides an interface for managing a hierarchy of bones, " +"including pose, rest and animation (see [Animation]). It can also use ragdoll " +"physics.\n" +"The overall transform of a bone with respect to the skeleton is determined by " +"bone pose. Bone rest defines the initial transform of the bone pose.\n" +"Note that \"global pose\" below refers to the overall transform of the bone " +"with respect to skeleton, so it is not the actual global/world transform of " +"the bone.\n" +"To setup different types of inverse kinematics, consider using " +"[SkeletonIK3D], or add a custom IK implementation in [method Node._process] " +"as a child node." +msgstr "" +"[Skeleton3D] 提供了管理骨骼层级结构的接口,包括姿势、放松姿势和动画(见 " +"[Animation])。它还可以使用布娃娃物理。\n" +"骨骼相对于骨架的整体变换由骨骼的姿势决定。骨骼的放松姿势定义的是骨骼姿势的初始" +"变换。\n" +"请注意,下文的“全局姿势”是指骨骼相对于骨架的整体变换,因此并不是骨骼的实际全" +"局/世界变换。\n" +"要设置不同类型的反向运动学,请考虑使用 [SkeletonIK3D],或者添加一个子节点并在 " +"[method Node._process] 中实现自定义 IK。" + msgid "" "Adds a bone, with name [param name]. [method get_bone_count] will become the " "bone index." @@ -104646,6 +111524,9 @@ msgstr "" "返回 [param bone_idx] 处的骨骼的父级骨骼索引。如果为 -1,则该骨骼没有父级。\n" "[b]注意:[/b]返回的父骨骼索引总是小于 [param bone_idx]。" +msgid "Returns the pose transform of the specified bone." +msgstr "返回指定骨骼的姿势变换。" + msgid "Returns the rest transform for a bone [param bone_idx]." msgstr "返回骨骼 [param bone_idx] 的放松变换。" @@ -104753,6 +111634,15 @@ msgstr "" "让位于 [param bone_idx] 的骨骼不再有父级,并将其放松位置设置为之前父级放松时的" "位置。" +msgid "" +"Multiplies the 3D position track animation.\n" +"[b]Note:[/b] Unless this value is [code]1.0[/code], the key value in " +"animation will not match the actual position value." +msgstr "" +"与 3D 位置轨道动画相乘。\n" +"[b]注意:[/b]除非这个值是 [code]1.0[/code],否则动画中的键值将与实际位置值不匹" +"配。" + msgid "" "This signal is emitted when one of the bones in the Skeleton3D node have " "changed their pose. This is used to inform nodes that rely on bone positions " @@ -104980,6 +111870,14 @@ msgid "" "performs initialization." msgstr "安装修改器时调用。修改器在此时执行初始化。" +msgid "" +"Takes an angle and clamps it so it is within the passed-in [param min] and " +"[param max] range. [param invert] will inversely clamp the angle, clamping it " +"to the range outside of the given bounds." +msgstr "" +"接受角度并将其钳制在传入的 [param min] 和 [param max] 范围内。[param invert] " +"会逆向钳制该角度,将其钳制在给定范围之外。" + msgid "" "Returns whether this modification will call [method _draw_editor_gizmo] in " "the Godot editor to draw modification-specific gizmos." @@ -105586,6 +112484,31 @@ msgstr "" "设置该修改器中存放的 [SkeletonModificationStack2D]。这个修改器栈会在该修改器执" "行时执行。" +msgid "" +"A modification that rotates two bones using the law of cosines to reach the " +"target." +msgstr "这种修改器会让两个骨骼按照余弦定理进行旋转,最终抵达目标。" + +msgid "" +"This [SkeletonModification2D] uses an algorithm typically called TwoBoneIK. " +"This algorithm works by leveraging the law of cosines and the lengths of the " +"bones to figure out what rotation the bones currently have, and what rotation " +"they need to make a complete triangle, where the first bone, the second bone, " +"and the target form the three vertices of the triangle. Because the algorithm " +"works by making a triangle, it can only operate on two bones.\n" +"TwoBoneIK is great for arms, legs, and really any joints that can be " +"represented by just two bones that bend to reach a target. This solver is " +"more lightweight than [SkeletonModification2DFABRIK], but gives similar, " +"natural looking results." +msgstr "" +"这种 [SkeletonModification2D] 所使用的算法一般称之为 TwoBoneIK。这种算法的原理" +"是利用余弦定理和骨骼的长度来推算骨骼当前的旋转量和构成三角形所需的旋转量,三角" +"形由第一根骨骼、第二根骨骼以及目标构成。因为这种算法的原理是构成三角形,所以仅" +"能对两根骨骼进行操作。\n" +"TwoBoneIK 适用于手臂、腿部,其实任何能够用两根骨头弯向某个目标来代表的关节均能" +"使用。求解器比 [SkeletonModification2DFABRIK] 更轻量,但也能得到类似的比较自然" +"的结果。" + msgid "" "Returns the [Bone2D] node that is being used as the first bone in the " "TwoBoneIK modification." @@ -105753,6 +112676,11 @@ msgstr "" "强度将应用一半,[code]1[/code] 的强度将允许修改被完全应用并覆盖 [Skeleton2D] " "[Bone2D] 姿势。" +msgid "" +"Base class for a profile of a virtual skeleton used as a target for " +"retargeting." +msgstr "用作重定向目标的虚拟骨架的配置文件的基类。" + msgid "" "This resource is used in [EditorScenePostImport]. Some parameters are " "referring to bones in [Skeleton3D], [Skin], [Animation], and some other nodes " @@ -106050,6 +112978,24 @@ msgstr "" "sky_reflections/roughness_layers] 决定。当需要最高质量的辐照度贴图,但天空更新" "缓慢时,请使用该选项。" +msgid "" +"Uses the fast filtering algorithm to process the radiance map. In general " +"this results in lower quality, but substantially faster run times. If you " +"need better quality, but still need to update the sky every frame, consider " +"turning on [member ProjectSettings.rendering/reflections/sky_reflections/" +"fast_filter_high_quality].\n" +"[b]Note:[/b] The fast filtering algorithm is limited to 256×256 cubemaps, so " +"[member radiance_size] must be set to [constant RADIANCE_SIZE_256]. " +"Otherwise, a warning is printed and the overridden radiance size is ignored." +msgstr "" +"使用快速过滤算法处理辐射度贴图。一般来说,这会导致质量较低,但运行时间会大大加" +"快。如果需要更好的质量,但仍需要每帧更新天空,请考虑开启 [member " +"ProjectSettings.rendering/reflections/sky_reflections/" +"fast_filter_high_quality]。\n" +"[b]注意:[/b]快速过滤算法被限制为 256x256 立方体贴图,因此必须将 [member " +"radiance_size] 设置为 [constant RADIANCE_SIZE_256]。否则会输出警告并忽略覆盖的" +"辐射度大小。" + msgid "Abstract base class for sliders." msgstr "滑块的抽象基类。" @@ -106090,6 +113036,22 @@ msgstr "" msgid "Emitted when dragging is started." msgstr "拖拽开始时触发。" +msgid "" +"A physics joint that restricts the movement of a 3D physics body along an " +"axis relative to another physics body." +msgstr "" +"一种物理关节,能够将 3D 物理体的移动限制在相对于另一个物理体的某个轴上。" + +msgid "" +"A physics joint that restricts the movement of a 3D physics body along an " +"axis relative to another physics body. For example, Body A could be a " +"[StaticBody3D] representing a piston base, while Body B could be a " +"[RigidBody3D] representing the piston head, moving up and down." +msgstr "" +"一种物理关节,能够将 3D 物理体的移动限制在相对于另一个物理体的某个轴上。例如物" +"体 A 是代表活塞基底的 [StaticBody3D],而物体 B 是代表活塞头的 [RigidBody3D]," +"能够上下移动。" + msgid "" "The amount of damping of the rotation when the limit is surpassed.\n" "A lower damping value allows a rotation initiated by body A to travel to body " @@ -106127,10 +113089,20 @@ msgstr "" "一旦超过 [member linear_limit/lower_distance] 和 [member linear_limit/" "upper_distance] 所定义的极限,就会产生的阻尼量。" +msgid "A deformable 3D physics mesh." +msgstr "可形变的 3D 物理网格。" + msgid "" -"The amount of restitution once the limits are surpassed. The lower, the more " -"velocity-energy gets lost." -msgstr "超出限制后的补偿。数值越低,损失的速度能量越多。" +"A deformable 3D physics mesh. Used to create elastic or deformable objects " +"such as cloth, rubber, or other flexible materials.\n" +"[b]Note:[/b] There are many known bugs in [SoftBody3D]. Therefore, it's not " +"recommended to use them for things that can affect gameplay (such as " +"trampolines)." +msgstr "" +"可形变的 3D 物理网格。用于创建弹性或可形变的对象,例如布料、橡胶或其他柔性材" +"质。\n" +"[b]注意:[/b][SoftBody3D] 中有许多已知的问题。因此,不建议用于可能影响游戏玩法" +"的东西上(例如蹦床)。" msgid "SoftBody" msgstr "SoftBody" @@ -106377,6 +113349,19 @@ msgstr "" msgid "Sets a custom [Texture2D] for up and down arrows of the [SpinBox]." msgstr "为该 [SpinBox] 的上下箭头设置自定义的 [Texture2D]。" +msgid "" +"A container that splits two child controls horizontally or vertically and " +"provides a grabber for adjusting the split ratio." +msgstr "将两个子控件垂直或水平分隔的容器,提供了用于调整分隔比例的抓取器。" + +msgid "" +"A container that accepts only two child controls, then arranges them " +"horizontally or vertically and creates a divisor between them. The divisor " +"can be dragged around to change the size relation between the child controls." +msgstr "" +"仅接受两个子控件的容器,会将它们垂直或水平排列,在中间创建一个分隔条。分隔条可" +"以拖拽,从而改变两个控件的大小关系。" + msgid "" "Clamps the [member split_offset] value to not go outside the currently " "possible minimal and maximum values." @@ -106523,6 +113508,21 @@ msgstr "" "[b]注意:[/b][member spot_angle] 不受 [member Node3D.scale] 的影响(无论是该灯" "光的缩放还是其父节点的缩放)。" +msgid "" +"A 3D raycast that dynamically moves its children near the collision point." +msgstr "能够动态地将子节点朝碰撞点移动的 3D 射线投射。" + +msgid "" +"[SpringArm3D] casts a ray or a shape along its Z axis and moves all its " +"direct children to the collision point, with an optional margin. This is " +"useful for 3rd person cameras that move closer to the player when inside a " +"tight space (you may need to exclude the player's collider from the " +"[SpringArm3D]'s collision check." +msgstr "" +"[SpringArm3D] 会朝它的 Z 轴投射射线或形状,并将所有直接子节点朝碰撞点移动,可" +"以保留一定的边距。可用于第三人称相机,让其在狭窄空间中朝玩家移动(你可能需要" +"在 [SpringArm3D] 的碰撞检查中排除玩家的碰撞体)。" + msgid "" "Adds the [PhysicsBody3D] object with the given [RID] to the list of " "[PhysicsBody3D] objects excluded from the collision check." @@ -107032,15 +114032,15 @@ msgid "" "The body's constant angular velocity. This does not rotate the body, but " "affects touching bodies, as if it were rotating." msgstr "" -"该物体的恒定角速度。不会旋转该物体,但会影响接触的物体,就好像这个静态物体正在" -"旋转一样。" +"该物体的恒定角速度。不会旋转该物体,但会影响接触的物体,就好像这个物体正在旋转" +"一样。" msgid "" "The body's constant linear velocity. This does not move the body, but affects " "touching bodies, as if it were moving." msgstr "" -"该物体的恒定线速度。不会移动该物体,但会影响接触的物体,就好像这个静态物体正在" -"移动一样。" +"该物体的恒定线速度。不会移动该物体,但会影响接触的物体,就好像这个物体正在移动" +"一样。" msgid "" "A 3D physics body that can't be moved by external forces. When moved " @@ -107073,6 +114073,21 @@ msgstr "" msgid "Abstract base class for interacting with streams." msgstr "与流交互的抽象基类。" +msgid "" +"StreamPeer is an abstract base class mostly used for stream-based protocols " +"(such as TCP). It provides an API for sending and receiving data through " +"streams as raw data or strings.\n" +"[b]Note:[/b] When exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android." +msgstr "" +"StreamPeer 是一种抽象基类,常用于流式协议(例如 TCP)。它提供了通过流发送数据" +"的 API,将数据作为原始数据或字符串处理。\n" +"[b]注意:[/b]导出到安卓时,在导出项目或使用一键部署之前,请务必在安卓导出预设" +"中,开启 [code]INTERNET[/code] 权限。否则,任何类型的网络通信都将被 Android 阻" +"止。" + msgid "Gets a signed byte from the stream." msgstr "从流中获取有符号字节。" @@ -107134,6 +114149,16 @@ msgstr "从流中获取一个无符号 32 位值。" msgid "Gets an unsigned 64-bit value from the stream." msgstr "从流中获取一个无符号 64 位值。" +msgid "" +"Gets a UTF-8 string with byte-length [param bytes] from the stream (this " +"decodes the string sent as UTF-8). If [param bytes] is negative (default) the " +"length will be read from the stream using the reverse process of [method " +"put_utf8_string]." +msgstr "" +"从流中获取一个字节长度为 [param bytes] 的 UTF-8 字符串(将发送的字符串解码为 " +"UTF-8)。如果 [param bytes] 为负(默认),会按照 [method put_utf8_string] 的逆" +"向操作从流中读取长度。" + msgid "" "Gets a Variant from the stream. If [param allow_objects] is [code]true[/" "code], decoding objects is allowed.\n" @@ -107181,6 +114206,33 @@ msgstr "" "通过连接发送数据。如果数据无法一次性发完,则仅会发送部分数据。该函数返回两个" "值,一个 [enum Error] 错误码以及一个整数,表示实际发送的数据量。" +msgid "" +"Puts a zero-terminated ASCII string into the stream prepended by a 32-bit " +"unsigned integer representing its size.\n" +"[b]Note:[/b] To put an ASCII string without prepending its size, you can use " +"[method put_data]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"put_data(\"Hello world\".to_ascii_buffer())\n" +"[/gdscript]\n" +"[csharp]\n" +"PutData(\"Hello World\".ToAsciiBuffer());\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"向流中放入一个以零结尾的 ASCII 字符串,会前置一个表示其大小的 32 位无符号整" +"数。\n" +"[b]注意:[/b]如果要放置 ASCII 字符串,而不前置大小,可以使用 [method " +"put_data]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"put_data(\"Hello world\".to_ascii_buffer())\n" +"[/gdscript]\n" +"[csharp]\n" +"PutData(\"Hello World\".ToAsciiBuffer());\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Puts an unsigned byte into the stream." msgstr "向流中放入一个无符号字节。" @@ -108923,6 +115975,30 @@ msgstr "" msgid "Returns the string converted to [code]camelCase[/code]." msgstr "返回将该字符串转换为小驼峰命名 [code]camelCase[/code] 的结果。" +msgid "" +"Converts the string representing a decimal number into a [float]. This method " +"stops on the first non-number character, except the first decimal point " +"([code].[/code]) and the exponent letter ([code]e[/code]). See also [method " +"is_valid_float].\n" +"[codeblock]\n" +"var a = \"12.35\".to_float() # a is 12.35\n" +"var b = \"1.2.3\".to_float() # b is 1.2\n" +"var c = \"12xy3\".to_float() # c is 12.0\n" +"var d = \"1e3\".to_float() # d is 1000.0\n" +"var e = \"Hello!\".to_float() # e is 0.0\n" +"[/codeblock]" +msgstr "" +"将代表十进制数的字符串转换为 [float]。该方法会在首个非数字字符处停止,除非是首" +"次遇到 [code].[/code](小数点)以及表示指数的 [code]e[/code]。另见 [method " +"is_valid_float]。\n" +"[codeblock]\n" +"var a = \"12.35\".to_float() # a 为 12.35\n" +"var b = \"1.2.3\".to_float() # b 为 1.2\n" +"var c = \"12xy3\".to_float() # c 为 12.0\n" +"var d = \"1e3\".to_float() # d 为 1000.0\n" +"var e = \"Hello!\".to_float() # e 为 0.0\n" +"[/codeblock]" + msgid "" "Converts the string representing an integer number into an [int]. This method " "removes any non-number character and stops at the first decimal point ([code]." @@ -109073,6 +116149,15 @@ msgstr "" "返回该字符串的副本,所有 [method is_valid_filename] 中不允许的字符都会被替换为" "下划线。" +msgid "" +"Returns a copy of the string with all characters that are not allowed in " +"[member Node.name] ([code].[/code] [code]:[/code] [code]@[/code] [code]/[/" +"code] [code]\"[/code] [code]%[/code]) replaced with underscores." +msgstr "" +"返回该字符串的副本,所有 [member Node.name] 中不允许的字符都会被替换为下划线" +"([code].[/code] [code]:[/code] [code]@[/code] [code]/[/code] [code]\"[/code] " +"[code]%[/code]))。" + msgid "" "Returns a copy of the string with special characters escaped using the XML " "standard. If [param escape_quotes] is [code]true[/code], the single quote " @@ -110426,7 +117511,7 @@ msgstr "" "commit_to_arrays] 之前设置。" msgid "Sets [Material] to be used by the [Mesh] you are constructing." -msgstr "设置要由您正在构建的 [Mesh] 使用的 [Material]。" +msgstr "设置要由你正在构建的 [Mesh] 使用的 [Material]。" msgid "" "Specifies a normal to use for the [i]next[/i] vertex. If every vertex needs " @@ -110475,7 +117560,7 @@ msgid "" "vertex needs to have this information set and you fail to submit it for the " "first vertex, this information may not be used at all." msgstr "" -"指定[i]下一个[/i]顶点所使用的 UV 坐标。如果每个顶点都需要设置此信息,而您未能" +"指定[i]下一个[/i]顶点所使用的 UV 坐标。如果每个顶点都需要设置此信息,而你未能" "为第一个顶点提交此信息,此信息可能根本就不会被使用。" msgid "" @@ -110645,7 +117730,7 @@ msgid "" "[b]Note:[/b] This is called automatically when the associated [TextEdit] " "node, updates its own cache." msgstr "" -"清除然后更新 [SyntaxHighlighter] 缓存。为一个回调重写 [method " +"清除然后更新 [SyntaxHighlighter] 缓存。为一个回调覆盖 [method " "_update_cache]。\n" "[b]注意:[/b]当关联的 [TextEdit] 节点更新它自己的缓存时,该函数会被自动调用。" @@ -112270,15 +119355,6 @@ msgstr "点击边栏时发出。" msgid "Emitted when a gutter is removed." msgstr "移除边栏时发出。" -msgid "" -"Emitted immediately when the text changes.\n" -"When text is added [param from_line] will be less then [param to_line]. On a " -"remove [param to_line] will be less then [param from_line]." -msgstr "" -"文本改变时立即发出。\n" -"添加文本时 [param from_line] 小于 [param to_line]。移除文本时 [param to_line] " -"小于 [param from_line]。" - msgid "Emitted when [method clear] is called or [member text] is set." msgstr "[method clear] 被调用,或 [member text] 被设置时发出。" @@ -112469,8 +119545,8 @@ msgid "" "Override ranges should cover full source text without overlaps. BiDi " "algorithm will be used on each range separately." msgstr "" -"重写用于结构化文本的 BiDi。\n" -"重写范围应覆盖完整的源文本而没有重叠。BiDi 算法将分别被用于每个范围。" +"覆盖用于结构化文本的 BiDi。\n" +"覆盖范围应覆盖完整的源文本而没有重叠。BiDi 算法将分别被用于每个范围。" msgid "Sets text alignment within the line as if the line was horizontal." msgstr "设置行内的文本对齐方式,始终按照该行为横向的情况设置。" @@ -113414,7 +120490,7 @@ msgid "" msgstr "" "设置所需的文本方向。如果设置为 [constant DIRECTION_AUTO],方向将根据缓冲区的内" "容和当前的区域设置来检测。\n" -"[b]注意:[/b] 如果服务器不支持 [constant FEATURE_BIDI_LAYOUT] 特性,则方向会被" +"[b]注意:[/b]如果服务器不支持 [constant FEATURE_BIDI_LAYOUT] 特性,则方向会被" "忽略([TextServerAdvanced] 支持)。" msgid "" @@ -115587,6 +122663,47 @@ msgstr "" "[code]true[/code] ,直到它使用 [method wait_to_finish] 加入。要检查 [Thread] " "是否仍在执行其任务,请使用 [method is_alive]。" +msgid "" +"Sets whether the thread safety checks the engine normally performs in methods " +"of certain classes (e.g., [Node]) should happen [b]on the current thread[/" +"b].\n" +"The default, for every thread, is that they are enabled (as if called with " +"[param enabled] being [code]true[/code]).\n" +"Those checks are conservative. That means that they will only succeed in " +"considering a call thread-safe (and therefore allow it to happen) if the " +"engine can guarantee such safety.\n" +"Because of that, there may be cases where the user may want to disable them " +"([param enabled] being [code]false[/code]) to make certain operations allowed " +"again. By doing so, it becomes the user's responsibility to ensure thread " +"safety (e.g., by using [Mutex]) for those objects that are otherwise " +"protected by the engine.\n" +"[b]Note:[/b] This is an advanced usage of the engine. You are advised to use " +"it only if you know what you are doing and there is no safer way.\n" +"[b]Note:[/b] This is useful for scripts running on either arbitrary [Thread] " +"objects or tasks submitted to the [WorkerThreadPool]. It doesn't apply to " +"code running during [Node] group processing, where the checks will be always " +"performed.\n" +"[b]Note:[/b] Even in the case of having disabled the checks in a " +"[WorkerThreadPool] task, there's no need to re-enable them at the end. The " +"engine will do so." +msgstr "" +"设置是否应该[b]在当前线程[/b]执行线程安全检查,这些检查在一般是在某些类(例如 " +"[Node])的方法中进行的。\n" +"每个线程的默认值是启用(就像将 [code]true[/code] 传给 [param enabled] 调用一" +"样)。\n" +"这些检查是保守的。也就是说,只有在引擎能够确保安全时才会认为该调用是线程安全" +"的,检查通过(因此允许进行调用)。\n" +"因此,某些情况下用于可能会想要将其禁用(让 [param enabled] 为 [code]false[/" +"code]),允许某些操作。此时引擎不再保护这些对象的线程安全,(通过使用 [Mutex] " +"等方法来)确保线程安全就是用户自己的责任了。\n" +"[b]注意:[/b]这是引擎的高阶用法。建议只有在你知道自己在做什么,并且没有其他更" +"安全的方法时才使用这个方法。\n" +"[b]注意:[/b]可用于任意 [Thread] 对象中执行的脚本,或者提交至 " +"[WorkerThreadPool] 的任务。[Node] 分组处理时执行的代码不适用,这种情况下会始终" +"执行检查。\n" +"[b]注意:[/b]即使是在 [WorkerThreadPool] 任务中禁用了检查,也不需要在结束后将" +"其重新启用。引擎会帮你去启用。" + msgid "" "Starts a new [Thread] that calls [param callable].\n" "If the method takes some arguments, you can pass them using [method Callable." @@ -117393,10 +124510,10 @@ msgid "" "The returned values are in the system's local time when [param utc] is " "[code]false[/code], otherwise they are in UTC." msgstr "" -"以字典的形式返回当前时间,包含的键为:[code]hour[/code]、[code]minute[/code]、" -"[code]second[/code]。\n" -"当 [code]utc[/code] 为 [code]false[/code] 时,返回的是系统的本地时间,否则为 " -"UTC 时间。" +"以字典的形式返回当前时间,包含的键为:[code]year[/code]、[code]month[/code]、" +"[code]day[/code] 和 [code]weekday[/code]。\n" +"当 [param utc] 为 [code]false[/code] 时,返回的是系统的本地时间,否则为 UTC 时" +"间。" msgid "" "Converts the given Unix timestamp to a dictionary of keys: [code]year[/code], " @@ -117819,6 +124936,49 @@ msgstr "" "[/gdscript]\n" "[/codeblocks]" +msgid "" +"Creates a TLS client configuration which validates certificates and their " +"common names (fully qualified domain names).\n" +"You can specify a custom [param trusted_chain] of certification authorities " +"(the default CA list will be used if [code]null[/code]), and optionally " +"provide a [param common_name_override] if you expect the certificate to have " +"a common name other then the server FQDN.\n" +"[b]Note:[/b] On the Web platform, TLS verification is always enforced against " +"the CA list of the web browser. This is considered a security feature." +msgstr "" +"创建 TLS 客户端配置,验证证书及其通用名称(完整域名)。\n" +"你可以指定自定义的证书颁发机构信任链 [param trusted_chain](如果为 " +"[code]null[/code] 则使用默认 CA 列表)。如果你希望证书拥有服务器 FQDN 之外的通" +"用名称,还可以提供通用名称覆盖 [param common_name_override]。\n" +"[b]注意:[/b]在 Web 平台上,TLS 验证始终强制使用 Web 浏览器的 CA 列表。这是一" +"种安全特性。" + +msgid "" +"Creates an [b]unsafe[/b] TLS client configuration where certificate " +"validation is optional. You can optionally provide a valid [param " +"trusted_chain], but the common name of the certificates will never be " +"checked. Using this configuration for purposes other than testing [b]is not " +"recommended[/b].\n" +"[b]Note:[/b] On the Web platform, TLS verification is always enforced against " +"the CA list of the web browser. This is considered a security feature." +msgstr "" +"创建[b]不安全[/b]的 TLS 客户端配置,证书验证为可选项。你可以选择提供有效的信任" +"链 [param trusted_chain],但永远不会对证书的通用名称进行检查。这种配置[b]不推" +"荐[/b]用于测试之外的用途。\n" +"[b]注意:[/b]在 Web 平台上,TLS 验证始终强制使用 Web 浏览器的 CA 列表。这是一" +"种安全特性。" + +msgid "" +"Creates a TLS server configuration using the provided [param key] and [param " +"certificate].\n" +"[b]Note:[/b] The [param certificate] should include the full certificate " +"chain up to the signing CA (certificates file can be concatenated using a " +"general purpose text editor)." +msgstr "" +"使用提供的密钥 [param key] 和证书 [param certificate] 创建 TLS 服务器配置。\n" +"[b]注意:[/b][param certificate] 中应当包含签名 CA 的完整证书链(可以使用通用" +"文本编辑器连接证书文件)。" + msgid "Class representing a torus [PrimitiveMesh]." msgstr "表示圆环 [PrimitiveMesh] 的类。" @@ -119730,8 +126890,7 @@ msgid "" "If [param enable] is [code]true[/code], the given [param column] is expanded " "to the right." msgstr "" -"如果 [param enabled] 为 [code]true[/code],则给定的列 [param column] 向右扩" -"展。" +"如果 [param enable] 为 [code]true[/code],则给定的列 [param column] 向右扩展。" msgid "Sets the given column's icon [Texture2D]." msgstr "设置给定列的图标 [Texture2D]。" @@ -119918,264 +127077,6 @@ msgid "" "[Tweener]s." msgstr "通过脚本进行通用动画的轻量级对象,使用 [Tweener]。" -msgid "" -"Tweens are mostly useful for animations requiring a numerical property to be " -"interpolated over a range of values. The name [i]tween[/i] comes from [i]in-" -"betweening[/i], an animation technique where you specify [i]keyframes[/i] and " -"the computer interpolates the frames that appear between them. Animating " -"something with a [Tween] is called tweening.\n" -"[Tween] is more suited than [AnimationPlayer] for animations where you don't " -"know the final values in advance. For example, interpolating a dynamically-" -"chosen camera zoom value is best done with a [Tween]; it would be difficult " -"to do the same thing with an [AnimationPlayer] node. Tweens are also more " -"light-weight than [AnimationPlayer], so they are very much suited for simple " -"animations or general tasks that don't require visual tweaking provided by " -"the editor. They can be used in a fire-and-forget manner for some logic that " -"normally would be done by code. You can e.g. make something shoot " -"periodically by using a looped [CallbackTweener] with a delay.\n" -"A [Tween] can be created by using either [method SceneTree.create_tween] or " -"[method Node.create_tween]. [Tween]s created manually (i.e. by using " -"[code]Tween.new()[/code]) are invalid and can't be used for tweening values.\n" -"A tween animation is created by adding [Tweener]s to the [Tween] object, " -"using [method tween_property], [method tween_interval], [method " -"tween_callback] or [method tween_method]:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = get_tree().create_tween()\n" -"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" -"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" -"tween.tween_callback($Sprite.queue_free)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = GetTree().CreateTween();\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" -"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"This sequence will make the [code]$Sprite[/code] node turn red, then shrink, " -"before finally calling [method Node.queue_free] to free the sprite. " -"[Tweener]s are executed one after another by default. This behavior can be " -"changed using [method parallel] and [method set_parallel].\n" -"When a [Tweener] is created with one of the [code]tween_*[/code] methods, a " -"chained method call can be used to tweak the properties of this [Tweener]. " -"For example, if you want to set a different transition type in the above " -"example, you can use [method set_trans]:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = get_tree().create_tween()\n" -"tween.tween_property($Sprite, \"modulate\", Color.RED, 1).set_trans(Tween." -"TRANS_SINE)\n" -"tween.tween_property($Sprite, \"scale\", Vector2(), 1).set_trans(Tween." -"TRANS_BOUNCE)\n" -"tween.tween_callback($Sprite.queue_free)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = GetTree().CreateTween();\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f)." -"SetTrans(Tween.TransitionType.Sine);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f)." -"SetTrans(Tween.TransitionType.Bounce);\n" -"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Most of the [Tween] methods can be chained this way too. In the following " -"example the [Tween] is bound to the running script's node and a default " -"transition is set for its [Tweener]s:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = get_tree().create_tween().bind_node(self).set_trans(Tween." -"TRANS_ELASTIC)\n" -"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" -"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" -"tween.tween_callback($Sprite.queue_free)\n" -"[/gdscript]\n" -"[csharp]\n" -"var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween." -"TransitionType.Elastic);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" -"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Another interesting use for [Tween]s is animating arbitrary sets of objects:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = create_tween()\n" -"for sprite in get_children():\n" -" tween.tween_property(sprite, \"position\", Vector2(0, 0), 1)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = CreateTween();\n" -"foreach (Node sprite in GetChildren())\n" -" tween.TweenProperty(sprite, \"position\", Vector2.Zero, 1.0f);\n" -"[/csharp]\n" -"[/codeblocks]\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 [Tween] 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 [Tween] to a variable:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween\n" -"func animate():\n" -" if tween:\n" -" tween.kill() # Abort the previous animation.\n" -" tween = create_tween()\n" -"[/gdscript]\n" -"[csharp]\n" -"private Tween _tween;\n" -"\n" -"public void Animate()\n" -"{\n" -" if (_tween != null)\n" -" _tween.Kill(); // Abort the previous animation\n" -" _tween = CreateTween();\n" -"}\n" -"[/csharp]\n" -"[/codeblocks]\n" -"Some [Tweener]s use transitions and eases. The first accepts a [enum " -"TransitionType] constant, and refers to the way the timing of the animation " -"is handled (see [url=https://easings.net/]easings.net[/url] for some " -"examples). The second accepts an [enum EaseType] constant, and controls where " -"the [code]trans_type[/code] is applied to the interpolation (in the " -"beginning, the end, or both). If you don't know which transition and easing " -"to pick, you can try different [enum TransitionType] constants with [constant " -"EASE_IN_OUT], and use the one that looks best.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"tween_cheatsheet.webp]Tween easing and transition types cheatsheet[/url]\n" -"[b]Note:[/b] Tweens are not designed to be re-used and trying to do so " -"results in an undefined behavior. Create a new Tween for each animation and " -"every time you replay an animation from start. Keep in mind that Tweens start " -"immediately, so only create a Tween when you want to start animating.\n" -"[b]Note:[/b] The tween is processed after all of the nodes in the current " -"frame, i.e. node's [method Node._process] method would be called before the " -"timer (or [method Node._physics_process] depending on the value passed to " -"[method set_process_mode])." -msgstr "" -"Tween 主要用于需要将一个数值属性插值到一系列值的动画。[i]tween[/i] 这个名字来" -"自 [i]in-betweening[/i],这是一种动画技术,可以在其中指定 [i]关键帧[/i],然后" -"计算机会插入出现在它们之间的帧。使用 [Tween] 制作动画被称为补间动画。\n" -"[Tween] 比 [AnimationPlayer] 更适合事先不知道最终值的动画。例如,插入动态选择" -"的相机缩放值最好使用 [Tween] 完成;很难使用 [AnimationPlayer] 节点做同样的事" -"情。Tween 也比 [AnimationPlayer] 更轻量级,因此它们非常适合简单的动画,或不需" -"要编辑器提供的视觉调整的通用任务。对于通常由代码完成的某些逻辑,它们可以以即用" -"即弃的方式使用。例如,可以使用带延迟的循环 [CallbackTweener] 定期射击。\n" -"可以使用 [method SceneTree.create_tween] 或 [method Node.create_tween] 创建 " -"[Tween]。手动创建的 [Tween](即使用 [code]Tween.new()[/code])无效,不能用于对" -"值进行补间。\n" -"通过使用 [method tween_property]、[method tween_interval]、[method " -"tween_callback]、或 [method tween_method],可将 [Tweener] 添加到 [Tween] 对象" -"来创建一个补间动画:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = get_tree().create_tween()\n" -"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" -"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" -"tween.tween_callback($Sprite.queue_free)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = GetTree().CreateTween();\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" -"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"该序列将使 [code]$Sprite[/code] 节点变红,然后缩小,最后调用 [method Node." -"queue_free] 来释放该精灵。默认情况下,[Tweener] 一个接一个地执行。这种行为可以" -"使用 [method parallel] 和 [method set_parallel] 来更改。\n" -"当使用 [code]tween_*[/code] 方法之一创建 [Tweener] 时,可以使用链式方法调用来" -"调整该 [Tweener] 的属性。例如,如果想在上面的例子中设置一个不同的过渡类型,可" -"以使用 [method set_trans]:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = get_tree().create_tween()\n" -"tween.tween_property($Sprite, \"modulate\", Color.RED, 1).set_trans(Tween." -"TRANS_SINE)\n" -"tween.tween_property($Sprite, \"scale\", Vector2(), 1).set_trans(Tween." -"TRANS_BOUNCE)\n" -"tween.tween_callback($Sprite.queue_free)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = GetTree().CreateTween();\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f)." -"SetTrans(Tween.TransitionType.Sine);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f)." -"SetTrans(Tween.TransitionType.Bounce);\n" -"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"大多数 [Tween] 方法也可以这样链式调用。在下面的示例中,[Tween] 被绑定到运行脚" -"本的节点,并为其 [Tweener] 设置了默认过渡:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = get_tree().create_tween().bind_node(self).set_trans(Tween." -"TRANS_ELASTIC)\n" -"tween.tween_property($Sprite, \"modulate\", Color.RED, 1)\n" -"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n" -"tween.tween_callback($Sprite.queue_free)\n" -"[/gdscript]\n" -"[csharp]\n" -"var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween." -"TransitionType.Elastic);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"modulate\", Colors.Red, 1.0f);\n" -"tween.TweenProperty(GetNode(\"Sprite\"), \"scale\", Vector2.Zero, 1.0f);\n" -"tween.TweenCallback(Callable.From(GetNode(\"Sprite\").QueueFree));\n" -"[/csharp]\n" -"[/codeblocks]\n" -"[Tween] 的另一个有趣用途是动画化任意对象集:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween = create_tween()\n" -"for sprite in get_children():\n" -" tween.tween_property(sprite, \"position\", Vector2(0, 0), 1)\n" -"[/gdscript]\n" -"[csharp]\n" -"Tween tween = CreateTween();\n" -"foreach (Node sprite in GetChildren())\n" -" tween.TweenProperty(sprite, \"position\", Vector2.Zero, 1.0f);\n" -"[/csharp]\n" -"[/codeblocks]\n" -"在上面的示例中,一个节点的所有子节点都被依次移动到位置 (0, 0)。\n" -"应该避免为对象的同一属性使用多个 [Tween]。如果两个或多个补间同时为同一个属性设" -"置动画,则最后创建的补间将优先使用,并分配最终值。如果要中断并重新启动动画,请" -"考虑将 [Tween] 赋给变量:\n" -"[codeblocks]\n" -"[gdscript]\n" -"var tween\n" -"func animate():\n" -" if tween:\n" -" tween.kill() # 终止之前的补间动画。\n" -" tween = create_tween()\n" -"[/gdscript]\n" -"[csharp]\n" -"private Tween _tween;\n" -"\n" -"public void Animate()\n" -"{\n" -" if (_tween != null)\n" -" _tween.Kill(); // 终止之前的补间动画。\n" -" _tween = CreateTween();\n" -"}\n" -"[/csharp]\n" -"[/codeblocks]\n" -"一些 [Tweener] 会使用过渡和缓动。第一个接受一个 [enum TransitionType] 常量,指" -"的是处理动画时间的方式(有关示例,请参见 [url=https://easings.net/]easings." -"net[/url])。第二个接受一个 [enum EaseType] 常量,并控制 [code]trans_type[/" -"code] 应用于插值的位置(在开头、结尾、或两者)。如果不知道该选择哪种过渡和缓" -"动,可以尝试使用 [constant EASE_IN_OUT] 并配合不同 [enum TransitionType] 常" -"量,并使用看起来最好的那个。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"tween_cheatsheet.webp]补间缓动与过渡类型速查表[/url]\n" -"[b]注意:[/b]Tween 并不是针对重用设计的,尝试重用会造成未定义行为。每次从头开" -"始重新播放每个动画都请新建一个 Tween。请记住,Tween 是会立即开始的,所以请只在" -"需要开始动画时创建 Tween。\n" -"[b]注意:[/b]Tween 在当前帧中的所有节点之后处理,即节点的 [method Node." -"_process] 方法会在计时器之前调用(根据传给 [method set_process_mode] 的值,也" -"可能是 [method Node._physics_process])。" - msgid "" "Binds this [Tween] with the given [param node]. [Tween]s are processed " "directly by the [SceneTree], so they run independently of the animated nodes. " @@ -120186,10 +127087,10 @@ msgid "" "For a shorter way to create and bind a [Tween], you can use [method Node." "create_tween]." msgstr "" -"将这个 [Tween] 绑定到给定的 [code]node[/code] 上。[Tween] 是由 [SceneTree] 直" -"接处理的,所以不依赖被动画的节点运行。将该 [Tween] 绑定到某个 [Node] 后,该对" -"象不在树中时该 [Tween] 就会暂停动画,绑定对象被释放时该 [Tween] 会被自动销毁。" -"另外,[constant TWEEN_PAUSE_BOUND] 会让暂停行为依赖于绑定的节点。\n" +"将这个 [Tween] 绑定到给定的 [param node] 上。[Tween] 是由 [SceneTree] 直接处理" +"的,所以不依赖被动画的节点运行。将该 [Tween] 绑定到某个 [Node] 后,该对象不在" +"树中时该 [Tween] 就会暂停动画,绑定对象被释放时该 [Tween] 会被自动销毁。另外," +"[constant TWEEN_PAUSE_BOUND] 会让暂停行为依赖于绑定的节点。\n" "使用 [method Node.create_tween] 来创建并绑定 [Tween] 更简单。" msgid "" @@ -120884,7 +127785,7 @@ msgid "" "can't be created manually, you need to use a dedicated method from [Tween]." msgstr "" "Tweener 是执行特定动画化的任务的对象,例如,在给定的时间,插值一个属性或调用一" -"个方法。[Tweener] 不能被手动创建,您需要使用 [Tween] 中的专用方法。" +"个方法。[Tweener] 不能被手动创建,你需要使用 [Tween] 中的专用方法。" msgid "Emitted when the [Tweener] has just finished its job." msgstr "当该 [Tweener] 刚刚完成其任务时触发。" @@ -122347,50 +129248,6 @@ msgid "" "Returns a new vector with all components in absolute values (i.e. positive)." msgstr "返回一个新向量,其所有分量都是绝对值,即正值。" -msgid "" -"Returns this vector's angle with respect to the positive X axis, or [code](1, " -"0)[/code] vector, in radians.\n" -"For example, [code]Vector2.RIGHT.angle()[/code] will return zero, " -"[code]Vector2.DOWN.angle()[/code] will return [code]PI / 2[/code] (a quarter " -"turn, or 90 degrees), and [code]Vector2(1, -1).angle()[/code] will return " -"[code]-PI / 4[/code] (a negative eighth turn, or -45 degrees).\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle.png]Illustration of the returned angle.[/url]\n" -"Equivalent to the result of [method @GlobalScope.atan2] when called with the " -"vector's [member y] and [member x] as parameters: [code]atan2(y, x)[/code]." -msgstr "" -"返回该向量与 X 轴正方向的夹角,单位为弧度。X 轴正方向为 [code](1, 0)[/code] 向" -"量。\n" -"例如,[code]Vector2.RIGHT.angle()[/code] 将返回 0,[code]Vector2.DOWN.angle()" -"[/code] 将返回 [code]PI / 2[/code](四分之一圈,即 90 度),[code]Vector2(1, " -"-1).angle()[/code] 将返回 [code]-PI / 4[/code](负八分之一圈,即 -45 度)。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle.png]返回夹角图示。[/url]\n" -"相当于使用该向量的 [member y] 和 [member x] 作为参数对 [method @GlobalScope." -"atan2] 进行调用的结果:[code]atan2(y, x)[/code]。" - -msgid "" -"Returns the angle to the given vector, in radians.\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]Illustration of the returned angle.[/url]" -msgstr "" -"返回与给定向量的夹角,单位为弧度。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to.png]返回夹角图示。[/url]" - -msgid "" -"Returns the angle between the line connecting the two points and the X axis, " -"in radians.\n" -"[code]a.angle_to_point(b)[/code] is equivalent of doing [code](b - a).angle()" -"[/code].\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to_point.png]Illustration of the returned angle.[/url]" -msgstr "" -"返回连接两点的直线与 X 轴之间的夹角,单位为弧度。\n" -"[code]a.angle_to_point(b)[/code] 等价于 [code](b - a).angle()[/code]。\n" -"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" -"vector2_angle_to_point.png]返回夹角图示。[/url]" - msgid "" "Returns the aspect ratio of this vector, the ratio of [member x] to [member " "y]." @@ -126694,8 +133551,8 @@ msgid "" "Defining this method is [b]required[/b]. If not overridden, the node has no " "input ports." msgstr "" -"重写该方法以定义关联的自定义节点的输入端口数。\n" -"定义该方法是[b]必需的[/b]。如果没有被重写,则该节点没有输入端口。" +"覆盖该方法以定义关联的自定义节点的输入端口数。\n" +"定义该方法是[b]必需的[/b]。如果没有被覆盖,则该节点没有输入端口。" msgid "" "Override this method to define the names of input ports of the associated " @@ -126705,10 +133562,10 @@ msgid "" "Defining this method is [b]optional[/b], but recommended. If not overridden, " "input ports are named as [code]\"in\" + str(port)[/code]." msgstr "" -"重写此方法来定义相关自定义节点的输入端口的名称。这些名称既用于编辑器中的输入" +"覆盖此方法来定义相关自定义节点的输入端口的名称。这些名称既用于编辑器中的输入" "槽,也作为着色器代码中的标识符,并在[method _get_code]中的[code]input_vars[/" "code]数组中传递。\n" -"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被重写,输入端口被命名为" +"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被覆盖,输入端口被命名为" "[code]\"in\"+str(port)[/code]。" msgid "" @@ -126718,9 +133575,9 @@ msgid "" "Defining this method is [b]optional[/b], but recommended. If not overridden, " "input ports will return the [constant VisualShaderNode.PORT_TYPE_SCALAR] type." msgstr "" -"重写此方法以定义相关自定义节点的每个输入端口的返回类型,参阅[enum " +"覆盖此方法以定义相关自定义节点的每个输入端口的返回类型,参阅[enum " "VisualShaderNode.PortType]的可能类型。\n" -"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被重写,输入端口将返回 " +"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被覆盖,输入端口将返回 " "[constant VisualShaderNode.PORT_TYPE_SCALAR] 类型。" msgid "" @@ -126729,8 +133586,8 @@ msgid "" "Defining this method is [b]optional[/b], but recommended. If not overridden, " "the node will be named as \"Unnamed\"." msgstr "" -"重写此方法来定义可视化着色器编辑器的成员对话框和图中的相关自定义节点的名称。\n" -"定义这个方法是[b]可选的[/b],但推荐使用。如果不重写,节点将被命名为 " +"覆盖此方法来定义可视化着色器编辑器的成员对话框和图中的相关自定义节点的名称。\n" +"定义这个方法是[b]可选的[/b],但推荐使用。如果不覆盖,节点将被命名为 " "\"Unnamed\"。" msgid "" @@ -126739,8 +133596,8 @@ msgid "" "Defining this method is [b]required[/b]. If not overridden, the node has no " "output ports." msgstr "" -"重写该方法以定义关联的自定义节点的输出端口数。\n" -"定义该方法是[b]必需的[/b]。如果没有被重写,则该节点没有输出端口。" +"覆盖该方法以定义关联的自定义节点的输出端口数。\n" +"定义该方法是[b]必需的[/b]。如果没有被覆盖,则该节点没有输出端口。" msgid "" "Override this method to define the names of output ports of the associated " @@ -126750,10 +133607,10 @@ msgid "" "Defining this method is [b]optional[/b], but recommended. If not overridden, " "output ports are named as [code]\"out\" + str(port)[/code]." msgstr "" -"重写此方法来定义相关自定义节点的输出端口的名称。这些名字既用于编辑器中的输出" +"覆盖此方法来定义相关自定义节点的输出端口的名称。这些名字既用于编辑器中的输出" "槽,也作为着色器代码中的标识符,并在[method _get_code]中的[code]output_vars[/" "code]数组中传递。\n" -"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被重写,输出端口被命名为" +"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被覆盖,输出端口被命名为" "[code]\"out\" + str(port)[/code]。" msgid "" @@ -126764,9 +133621,9 @@ msgid "" "output ports will return the [constant VisualShaderNode.PORT_TYPE_SCALAR] " "type." msgstr "" -"重写此方法以定义相关自定义节点的每个输出端口的返回类型,参阅[enum " +"覆盖此方法以定义相关自定义节点的每个输出端口的返回类型,参阅[enum " "VisualShaderNode.PortType]的可能类型。\n" -"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被重写,输出端口将返回" +"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被覆盖,输出端口将返回" "[constant VisualShaderNode.PORT_TYPE_SCALAR]类型。" msgid "" @@ -126775,8 +133632,8 @@ msgid "" "Defining this method is [b]optional[/b]. If not overridden, no return icon is " "shown." msgstr "" -"重写此方法来定义可视化着色器编辑器的成员对话框中相关自定义节点的返回图标。\n" -"定义这个方法是[b]可选的[/b]。如果不重写,就不会显示返回图标。" +"覆盖此方法来定义可视化着色器编辑器的成员对话框中相关自定义节点的返回图标。\n" +"定义这个方法是[b]可选的[/b]。如果不覆盖,就不会显示返回图标。" msgid "" "Override this method to prevent the node to be visible in the member dialog " @@ -130358,8 +137215,8 @@ msgstr "" " $Button.visible = false\n" " # 这告诉 Godot 开始渲染到头戴设备。\n" " get_viewport().use_xr = true\n" -" # 这将是您最终获得的参考空间类型,与您在上面请求的类型不同。\n" -" # 如果您希望游戏在 “bounded-floor” 和 “local-floor”\n" +" # 这将是你最终获得的参考空间类型,与你在上面请求的类型不同。\n" +" # 如果你希望游戏在 “bounded-floor” 和 “local-floor”\n" " # 中的运行方式有所不同,这将很有用。\n" " print (\"Reference space type: \" + webxr_interface." "reference_space_type)\n" @@ -130380,7 +137237,7 @@ msgstr "" "制器。\n" "- 使用 [signal select]、[signal squeeze] 和其他相关信号。这种方法适用于高级 " "VR 控制器和非传统输入源,例如屏幕上的轻敲、语音命令或设备本身的按钮按下。\n" -"您可以使用这两种方法来让您的游戏或应用程序支持更多或更窄的设备和输入法集,或者" +"你可以使用这两种方法来让你的游戏或应用程序支持更多或更窄的设备和输入法集,或者" "允许与更高级的设备进行更高级的交互。" msgid "How to make a VR game for WebXR with Godot 4" @@ -131200,7 +138057,7 @@ msgstr "" msgid "" "Specifies the initial type of position for the [Window]. See [enum " "WindowInitialPosition] constants." -msgstr "指定该 [Windows] 的初始位置类型。见 [enum WindowInitialPosition] 常量。" +msgstr "指定该 [Window] 的初始位置类型。见 [enum WindowInitialPosition] 常量。" msgid "" "If non-zero, the [Window] can't be resized to be bigger than this size.\n" @@ -131217,7 +138074,7 @@ msgid "" "size is bigger." msgstr "" "如果非零,则调整该 [Window] 的大小时无法小于该尺寸。\n" -"[b]注意:[/b] 如果启用了 [member wrap_controls] 并且 [method " +"[b]注意:[/b]如果启用了 [member wrap_controls] 并且 [method " "get_contents_minimum_size] 更大,则此属性将被忽略。" msgid "" @@ -131541,7 +138398,7 @@ msgstr "" "全屏窗口模式。请注意,这不是[i]独占的[/i]全屏显示。在 Windows 和 Linux 上,无" "边框窗口用于模拟全屏。在 macOS 上,会创建一个新的桌面用于显示正在运行的项" "目。\n" -"无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此,请确保您的项目" +"无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此,请确保你的项目" "在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/multiple_resolutions." "html]多种分辨率[/url]。" @@ -132523,7 +139380,7 @@ msgstr "" "XR 模式。\n" "如果为处理自己输出的平台(例如 OpenVR)执行该操作,则 Godot 将只显示一只眼睛而" "不会在屏幕上失真。或者,可以将单独的视口节点添加到场景并在该视口上启用 AR/VR。" -"它将被用于输出到 HMD,让您可以在主窗口中自由地做任何您喜欢的事情,例如使用单独" +"它将被用于输出到 HMD,让你可以在主窗口中自由地做任何你喜欢的事情,例如使用单独" "的相机作为旁观者相机或渲染完全不同的东西。\n" "虽然当前未使用,但可以激活其他接口。如果想跟踪来自其他平台的控制器,可能会希望" "这样做。但是,此时只有一个接口可以渲染到 HMD。" @@ -132563,7 +139420,7 @@ msgid "" msgstr "" "设置活动的环境混合模式。\n" "[param mode] 是从下一帧开始的 [enum XRInterface.EnvironmentBlendMode]。\n" -"[b]注意:[/b] 并非所有运行时都支持全部的环境混合模式,因此在启动时检查这一点很" +"[b]注意:[/b]并非所有运行时都支持全部的环境混合模式,因此在启动时检查这一点很" "重要。例如:\n" "[codeblock]\n" " func _ready():\n" @@ -133081,7 +139938,7 @@ msgstr "" "示,因为它们是在内部处理的。\n" "当控制器被打开,并且 [XRInterface] 检测到它们时,此对象的实例会自动被添加到可" "通过 [XRServer] 访问的活动追踪对象列表中。\n" -"[XRController3D] 和 [XRAnchor3D] 都使用这种类型的对象,并且应该在您的项目中使" +"[XRController3D] 和 [XRAnchor3D] 都使用这种类型的对象,并且应该在你的项目中使" "用。位置追踪器只是使这一切正常工作的底层对象。这些大部分都是公开的,以便基于 " "GDExtension 的接口,可以与它们交互。" @@ -133223,14 +140080,14 @@ msgid "" "teleport mechanism." msgstr "" "正确地理解这个函数非常重要。AR 和 VR 平台处理定位的方式略有不同。\n" -"对于不提供空间跟踪的平台,我们的原点 (0,0,0) 是 HMD 的位置,但您几乎无法控制玩" +"对于不提供空间跟踪的平台,我们的原点 (0,0,0) 是 HMD 的位置,但你几乎无法控制玩" "家在现实世界中面对的方向。\n" "对于提供空间跟踪的平台,我们的原点在很大程度上取决于系统。对于 OpenVR,原点通" "常是地面上跟踪空间的中心。对于其他平台,它通常是跟踪相机的位置。\n" -"此方法允许您将跟踪器置于 HMD 的位置。它将获取 HMD 的当前位置并使用它来调整您的" +"此方法允许你将跟踪器置于 HMD 的位置。它将获取 HMD 的当前位置并使用它来调整你的" "所有跟踪数据;从本质上讲,将现实世界重新调整到玩家在游戏世界中的当前位置。\n" "为了使这种方法产生可用的结果,跟踪信息必须可用。这通常在开始游戏后需要几帧。\n" -"您应该在几秒钟后调用此方法。例如,当用户请求重新调整显示时,按住控制器上的指定" +"你应该在几秒钟后调用此方法。例如,当用户请求重新调整显示时,按住控制器上的指定" "按钮一小段时间,或者当实现传送机制时。" msgid "" @@ -133308,7 +140165,7 @@ msgid "" "important to react to this signal to add the appropriate [XRController3D] or " "[XRAnchor3D] nodes related to this new tracker." msgstr "" -"当一个新的追踪器被添加时发出。如果您不使用一个固定数量的控制器,或者如果您将 " +"当一个新的追踪器被添加时发出。如果你不使用一个固定数量的控制器,或者如果你将 " "[XRAnchor3D] 用于一个 AR 解决方案,请务必对此信号做出反应,以添加与该新追踪器" "相适的 [XRController3D] 或 [XRAnchor3D] 节点 。" @@ -133319,7 +140176,7 @@ msgid "" "available (i.e. a new controller is switched on that takes the place of the " "previous one)." msgstr "" -"当一个追踪器被移除时发出。如此,您应该移除任何 [XRController3D] 或 " +"当一个追踪器被移除时发出。如此,你应该移除任何 [XRController3D] 或 " "[XRAnchor3D] 点。这不是强制性的,这些节点只是变得不活动,并且当一个新的追踪器" "可用时,将再次激活(即打开一个新的控制器,来代替前一个控制器)。" diff --git a/editor/translations/editor/ar.po b/editor/translations/editor/ar.po index 6c1ac285d49a..493a30dc67eb 100644 --- a/editor/translations/editor/ar.po +++ b/editor/translations/editor/ar.po @@ -83,13 +83,14 @@ # Omran Alsaedi , 2023. # Android Prime , 2023. # Ibraheem Asad , 2023. +# Aya Ichrak , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-17 11:10+0000\n" -"Last-Translator: Ibraheem Asad \n" +"PO-Revision-Date: 2023-08-24 14:55+0000\n" +"Last-Translator: Aya Ichrak \n" "Language-Team: Arabic \n" "Language: ar\n" @@ -199,6 +200,9 @@ msgstr "" msgid "Guide, Sony PS, Xbox Home" msgstr "الدليل, Sony PS, زر الرئيسية على Xbox" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "البداية, زر الرئيسية على Xbox , زر + على Nintendo" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "الإتجاه الأيسر على عصا التحكم, زر L3 على Sony, زر L/LS على Xbox" diff --git a/editor/translations/editor/ca.po b/editor/translations/editor/ca.po index 11940fa1eef4..e5654e9765c9 100644 --- a/editor/translations/editor/ca.po +++ b/editor/translations/editor/ca.po @@ -18,13 +18,14 @@ # DFC , 2021. # Roger VC , 2022. # Jordi Borràs , 2023. +# Marc GB , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-03-19 23:59+0000\n" -"Last-Translator: Jordi Borràs \n" +"PO-Revision-Date: 2023-08-22 15:34+0000\n" +"Last-Translator: Marc GB \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -32,7 +33,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.16.2-dev\n" +"X-Generator: Weblate 5.0-dev\n" msgid "Unset" msgstr "Desactiva" @@ -178,6 +179,9 @@ msgstr "Botó del Joypad %d" msgid "Pressure:" msgstr "Pressió:" +msgid "canceled" +msgstr "cancel·lat" + msgid "touched" msgstr "tocat" @@ -1018,6 +1022,15 @@ msgstr "Crea pistes RESET" msgid "Animation Optimizer" msgstr "Optimitzador d'Animació" +msgid "Max Velocity Error:" +msgstr "Error Màx. Velocitat:" + +msgid "Max Angular Error:" +msgstr "Error Màx. Angular:" + +msgid "Max Precision Error:" +msgstr "Error Màx Precisió.:" + msgid "Optimize" msgstr "Optimitza" @@ -1039,6 +1052,9 @@ msgstr "Poleix" msgid "Scale Ratio:" msgstr "Relació d'Escala:" +msgid "Select Transition and Easing" +msgstr "Selecciona la transició i el suavitzat" + msgid "Select Tracks to Copy" msgstr "Seleccioneu les Pistes a Copiar" @@ -1972,6 +1988,9 @@ msgstr "Propietats" msgid "default:" msgstr "predeterminat:" +msgid "Operators" +msgstr "Operadors" + msgid "Theme Properties" msgstr "Propietats del tema" diff --git a/editor/translations/editor/de.po b/editor/translations/editor/de.po index f539d9a85e27..6492a90aba87 100644 --- a/editor/translations/editor/de.po +++ b/editor/translations/editor/de.po @@ -106,8 +106,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-07 09:44+0000\n" -"Last-Translator: Ettore Atalan \n" +"PO-Revision-Date: 2023-09-08 02:18+0000\n" +"Last-Translator: ‎ \n" "Language-Team: German \n" "Language: de\n" @@ -115,7 +115,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Nicht gesetzt" @@ -213,6 +213,9 @@ msgstr "Zurück, Sony Select, Xbox Back, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Orientierung, Sony PS, Xbox Home" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Start, Xbox-Menü, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Linker Steuerknüppel, Sony L3, Xbox L/LS" @@ -1257,6 +1260,9 @@ msgstr "Zeilennummer:" msgid "%d replaced." msgstr "%d ersetzt." +msgid "No match" +msgstr "Keine Übereinstimmung" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d Übereinstimmung" @@ -3120,6 +3126,9 @@ msgstr "Fehler beim Parsen der Datei ‚%s‘." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "Szenendatei ‚%s‘ scheint ungültig/fehlerhaft zu sein." +msgid "Missing file '%s' or one of its dependencies." +msgstr "Datei ‚%s‘ oder zugehörige Abhängigkeiten fehlen." + msgid "Error while loading file '%s'." msgstr "Fehler beim Laden von Datei ‚%s‘." @@ -12546,6 +12555,15 @@ msgstr "Metadaten der Versionsverwaltung:" msgid "Git" msgstr "Git" +msgid "This project was last edited in a different Godot version: " +msgstr "" +"Dieses Projekt wurde zuletzt mit einer anderen Godot-Version bearbeitet: " + +msgid "This project uses features unsupported by the current build:" +msgstr "" +"Dieses Projekt verwendet Funktionen, die von dieser Godot-Version nicht " +"unterstützt werden:" + msgid "Error: Project is missing on the filesystem." msgstr "Fehler: Projekt ist nicht im Dateisystem vorhanden." @@ -12692,6 +12710,15 @@ msgstr "" "Mono-Modul. Beim Fortfahren können keine C#-Skripte ausgeführt werden.\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"Achtung: Dieses Projekt wurde zuletzt mit Godot %s bearbeitet. Öffnen des " +"Projekts wird es zu Godot %s ändern.\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -12837,6 +12864,29 @@ msgstr "Ebenfalls Projektinhalte löschen (nicht rückgängig machbar!)" msgid "Convert Full Project" msgstr "Gesamtes Projekt konvertieren" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3 to work in Godot 4.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"Mit dieser Option wird eine vollständige Projektkonvertierung durchgeführt, " +"bei der Szenen, Ressourcen und Skripte aus Godot 3 aktualisiert werden, um " +"mit Godot 4 funktionieren.\n" +"\n" +"Es handelt sich hierbei lediglich um eine automatische Konvertierung, welche " +"die Aktualisierung des Projekts erleichtert. Es kann weiterhin vorkommen, " +"dass sich das Projekt danach nicht öffnen lässt und weitere manuelle " +"Anpassungen erforderlich sind.\n" +"\n" +"WICHTIG: Bitte Projekt vor der Konvertierung unbedingt sichern, da dieser " +"Vorgang eine Rückkehr in frühere Godot-Versionen unmöglich macht." + msgid "Can't run project" msgstr "Projekt kann nicht ausgeführt werden" @@ -13151,7 +13201,7 @@ msgid "Delete %d nodes?" msgstr "%d Nodes löschen?" msgid "Delete the root node \"%s\"?" -msgstr "Das Wurzelnode „%s“ löschen?" +msgstr "Den Wurzelnode „%s“ löschen?" msgid "Delete node \"%s\" and its children?" msgstr "Node „%s“ und seine Unterelemente löschen?" @@ -13891,7 +13941,7 @@ msgid "" msgstr "" ".NET-Laufzeitumgebung konnte nicht geladen werden. Es wurde keine kompatible " "Version gefunden.\n" -"Der Versuch ein Projekt zu erstellen oder zu bearbeiten wird fehlschlagen.\n" +"Der Versuch, ein Projekt zu erstellen oder zu bearbeiten, wird fehlschlagen.\n" "\n" "Bitte .NET SDK 6.0 oder neuer aus https://dotnet.microsoft.com/en-us/download " "installieren und Godot neustarten." @@ -13907,7 +13957,7 @@ msgid "" "us/download and restart Godot." msgstr "" ".NET-Laufzeitumgebung konnte nicht geladen werden, insbesondere ›hostfxr‹.\n" -"Der Versuch ein Projekt zu erstellen oder zu bearbeiten wird fehlschlagen.\n" +"Der Versuch, ein Projekt zu erstellen oder zu bearbeiten, wird fehlschlagen.\n" "\n" "Bitte .NET SDK 6.0 oder neuer aus https://dotnet.microsoft.com/en-us/download " "installieren und Godot neustarten." @@ -14514,6 +14564,9 @@ msgid "Code signing failed, see editor log for details." msgstr "" "Code-Signierung fehlgeschlagen, bitte weitere Details im Editor-Log nachlesen." +msgid "Xcode Build" +msgstr "Xcode-Build" + msgid "Xcode project build failed, see editor log for details." msgstr "" "Xcode-Build fehlgeschlagen, bitte weitere Details im Editor-Log nachlesen." @@ -16833,6 +16886,13 @@ msgstr "Der Instanzindex kann nicht negativ sein." msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "Erlaubte Instanz-Uniform-Indices müssen im Intervall [0..%d] liegen." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"backend." +msgstr "" +"‚hint_normal_roughness_texture‘ ist nur verfügbar wenn das Forward+-Backend " +"verwendet wird." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "‚hint_normal_roughness_texture‘ wird nicht unterstützt in ‚%s‘-Shadern." diff --git a/editor/translations/editor/es.po b/editor/translations/editor/es.po index d74540c49544..b98f8e305f58 100644 --- a/editor/translations/editor/es.po +++ b/editor/translations/editor/es.po @@ -114,9 +114,8 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-06 10:12+0000\n" -"Last-Translator: Braulio León Madrid Escobar \n" +"PO-Revision-Date: 2023-08-24 14:55+0000\n" +"Last-Translator: Javier Ocampos \n" "Language-Team: Spanish \n" "Language: es\n" @@ -205,7 +204,7 @@ msgid "Joypad Motion on Axis %d (%s) with Value %.2f" msgstr "Movimiento de joystick en el eje %d (%s) con valor %.2f" msgid "Bottom Action, Sony Cross, Xbox A, Nintendo B" -msgstr "Acción Inferior, Sony Equis, Xbox A, Nintendo B" +msgstr "Acción Inferior, Sony Cruz, Xbox A, Nintendo B" msgid "Right Action, Sony Circle, Xbox B, Nintendo A" msgstr "Acción Derecha, Sony Círculo, Xbox B, Nintendo A" @@ -222,6 +221,9 @@ msgstr "Atrás, Sony Select, Xbox Atrás, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Guía, Sony PS, Xbox Inicio" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Start, Menú Xbox, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Stick Izquierdo, Sony L3, Xbox L/LS" @@ -1261,6 +1263,9 @@ msgstr "Número de Línea:" msgid "%d replaced." msgstr "%d reemplazado." +msgid "No match" +msgstr "Sin coincidencias" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d coincidencia" @@ -3123,6 +3128,9 @@ msgstr "Error al analizar el archivo '%s'." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "El archivo de escena '%s' parece ser inválido/corrupto." +msgid "Missing file '%s' or one of its dependencies." +msgstr "Falta el archivo '%s' o una de sus dependencias." + msgid "Error while loading file '%s'." msgstr "Error al cargar el archivo '%s'." @@ -12557,6 +12565,14 @@ msgstr "Metadatos de Control de Versión:" msgid "Git" msgstr "Git" +msgid "This project was last edited in a different Godot version: " +msgstr "" +"Este proyecto fue editado por última vez en una versión diferente de Godot: " + +msgid "This project uses features unsupported by the current build:" +msgstr "" +"Este proyecto utiliza características no compatibles con la versión actual:" + msgid "Error: Project is missing on the filesystem." msgstr "Error: Proyecto faltante en el sistema de archivos." @@ -12701,6 +12717,15 @@ msgstr "" "el módulo Mono. Si continúas, no podrás utilizar ningún script de C#.\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"Advertencia: Este proyecto fue editado por última vez en Godot %s. Al abrirlo " +"se actualizará a Godot %s.\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -12844,6 +12869,28 @@ msgstr "También eliminar el contenido del proyecto (¡no se puede deshacer!)" msgid "Convert Full Project" msgstr "Convertir Proyecto Completo" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3 to work in Godot 4.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"Esta opción realizará la conversión completa del proyecto, actualizando " +"escenas, recursos y scripts de Godot 3.x para trabajar en Godot 4.0.\n" +"\n" +"Ten en cuenta que esta es la conversión mejor posible, es decir, facilita la " +"actualización del proyecto, pero no se abrirá listo y aún requerirá ajustes " +"manuales.\n" +"\n" +"IMPORTANTE: asegúrate de hacer una copia de seguridad de tu proyecto antes de " +"la conversión ya que esta operación hace que sea imposible abrirlo en " +"versiones anteriores de Godot." + msgid "Can't run project" msgstr "No se puede ejecutar el proyecto" @@ -16793,7 +16840,7 @@ msgid "Varyings cannot be used in '%s' shaders." msgstr "Las variaciones no se pueden utilizar en los shaders '%s'." msgid "Interpolation qualifiers are not supported for uniforms." -msgstr "No se admiten calificadores de interpolación para uniforms." +msgstr "Los parámetros de interpolación no son compatibles con los uniforms." msgid "The '%s' data type is not supported for uniforms." msgstr "El tipo de datos '%s' no es compatible con los uniforms." @@ -16856,6 +16903,13 @@ msgstr "" "Los índices permitidos para las instancias de uniforms deben estar dentro del " "rango [0..%d]." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"backend." +msgstr "" +"'hint_normal_roughness_texture' solo está disponible cuando se usa el backend " +"de Forward+." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture' no está soportado en '%s' shaders." diff --git a/editor/translations/editor/fa.po b/editor/translations/editor/fa.po index f535233ce9d5..616bf279d776 100644 --- a/editor/translations/editor/fa.po +++ b/editor/translations/editor/fa.po @@ -40,13 +40,14 @@ # "Shahab Baradaran Dilmaghani (bdshahab)" , 2023. # محمد ایرانی , 2023. # "P. A." , 2023. +# MohammadSaleh Kamyab , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-10 05:12+0000\n" -"Last-Translator: \"LordProfo (Nima)\" \n" +"PO-Revision-Date: 2023-08-27 17:53+0000\n" +"Last-Translator: MohammadSaleh Kamyab \n" "Language-Team: Persian \n" "Language: fa\n" @@ -54,7 +55,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "تنظیم نشده" @@ -965,7 +966,7 @@ msgid "Instance:" msgstr "نمونه:" msgid "Updating assets on target device:" -msgstr "به‌روزرسانی دارایی‌ها در دستگاه هدف:" +msgstr "به‌روزرسانی دارایی‌ها در افزارهٔ هدف:" msgid "ms" msgstr "میلی ثانیه" @@ -1233,28 +1234,28 @@ msgid "Licenses" msgstr "گواهینامه" msgid "Error opening asset file for \"%s\" (not in ZIP format)." -msgstr "خطا در بازکردن فایل دارایی برای \"%s\" (فرمت ZIP نمی‌باشد)." +msgstr "خطا در گشودن پروندهٔ دارایی برای «%s» (در قالب ZIP نمی‌باشد)." msgid "%s (already exists)" msgstr "\"%s\" (در حال حاضر موجود است)" msgid "Contents of asset \"%s\" - %d file(s) conflict with your project:" -msgstr "محتوای دارایی \"%s\" - %d فایل(ها) با پروژه شما تضاد دارد:" +msgstr "محتویات دارایی «%s»‏ - %d پرونده با پروژهٔ شما ناسازگار است:" msgid "Contents of asset \"%s\" - No files conflict with your project:" -msgstr "محتویات دارایی \"%s\" - هیچ فایلی با پروژه شما مغایرت ندارد:" +msgstr "محتویات دارایی «%s» - هیچ پرونده‌ای با پروژهٔ شما ناسازگار نیست:" msgid "Uncompressing Assets" -msgstr "خارج کردن دارایی‌ها از حالت فشرده" +msgstr "استخراج دارایی‌ها" msgid "The following files failed extraction from asset \"%s\":" -msgstr "فایل‌های زیر از دارایی \"%s\" استخراج نشدند:" +msgstr "استخراج پرونده‌های زیر از دارایی «%s» شکست خورد:" msgid "(and %s more files)" msgstr "(و %s دیگر فایل ها)" msgid "Asset \"%s\" installed successfully!" -msgstr "دارایی \"%s\" با موفقیت نصب شد!" +msgstr "دارایی «%s» با موفقیت نصب شد!" msgid "Success!" msgstr "موفقیت!" @@ -1263,7 +1264,7 @@ msgid "Install" msgstr "نصب کردن" msgid "Asset Installer" -msgstr "نصب کننده دارایی" +msgstr "نصب‌کنندهٔ دارایی" msgid "Speakers" msgstr "بلندگوها" @@ -1500,7 +1501,7 @@ msgid "Script Editor" msgstr "ویرایشگر اسکریپت" msgid "Asset Library" -msgstr "کتابخانه دارایی" +msgstr "کتابخانهٔ دارایی" msgid "Scene Tree Editing" msgstr "ویرایش درخت صحنه" @@ -1521,7 +1522,7 @@ msgid "Allows to edit scripts using the integrated script editor." msgstr "اجازهٔ ویرایش اسکریپت‌ها با استفاده از ویرایشگر اسکریپت داخلی را می‌دهد." msgid "Provides built-in access to the Asset Library." -msgstr "دسترسی داخلی به کتابخانهٔ دارایی را فراهم می‌کند." +msgstr "دسترسی توکار به کتابخانهٔ دارایی را فراهم می‌کند." msgid "" "Allows to work with signals and groups of the node selected in the Scene dock." @@ -1535,8 +1536,8 @@ msgid "" "Allows to configure import settings for individual assets. Requires the " "FileSystem dock to function." msgstr "" -"به پیکربندی تنظیمات Import برای دارایی های فردی اجازه می دهد. برای عملکرد به " -"داک FileSystem نیاز دارد." +"اجازهٔ پیکربندی درون‌ریزی تنظیمات دارایی‌های مستقل را می‌دهد. برای عملکرد به داک " +"پرونده‌سامانه نیاز دارد." msgid "(current)" msgstr "(کنونی)" @@ -1599,10 +1600,10 @@ msgid "Make Current" msgstr "ساختن جریان" msgid "Import" -msgstr "وارد کردن" +msgstr "درون‌ریزی" msgid "Export" -msgstr "خروجی" +msgstr "برون‌ریزی" msgid "Configure Selected Profile:" msgstr "پیکربندی پروفایل انتخاب شده:" @@ -1642,7 +1643,7 @@ msgstr "" "کردن لغو شد" msgid "(Re)Importing Assets" -msgstr "(در حال) وارد کردن دوباره دارایی‌ها" +msgstr "(باز)درون‌ریزی دارایی‌ها" msgid "Import resources of type: %s" msgstr "وارد کردن منابع از نوع: %s" @@ -2216,7 +2217,7 @@ msgid "Open Script Editor" msgstr "باز کردن ویرایشگر اسکریپت" msgid "Open Asset Library" -msgstr "گشودن کتابخانه دارایی" +msgstr "گشودن کتابخانهٔ دارایی" msgid "Open the next Editor" msgstr "گشودن ویرایشگر متن" @@ -2398,6 +2399,9 @@ msgstr "خطای اتصال" msgid "Importing:" msgstr "وارد کردن:" +msgid "Uncompressing Android Build Sources" +msgstr "استخراج منابع ساخت اندروید" + msgid "Current Version:" msgstr "نسخه اخیر:" @@ -2813,7 +2817,7 @@ msgstr "پیشرفته..." msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" -"هشدار: دارایی‌هایی وجود دارند که از این منبع استفاده می‌کنند، ممکن است بارگیری " +"هشدار: دارایی‌هایی وجود دارند که از این منبع استفاده می‌کنند. ممکن است بار کردن " "درست را متوقف کنند." msgid "Mouse Buttons" @@ -3146,7 +3150,7 @@ msgid "Search Templates, Projects, and Demos" msgstr "جستجوی قالب‌ها، پروژه‌ها و دموها" msgid "Search Assets (Excluding Templates, Projects, and Demos)" -msgstr "جستجوی دارایی‌ها (به استثنای قالب‌ها، پروژه‌ها و دموها)" +msgstr "جست‌وجوی دارایی‌ها (به استثنای قالب‌ها، پروژه‌ها و دموها)" msgid "Import..." msgstr "وارد کردن..." @@ -3167,7 +3171,7 @@ msgid "Support" msgstr "پشتیبانی" msgid "Assets ZIP File" -msgstr "فایل ZIP‌ دارایی‌های بازی" +msgstr "پروندهٔ ZIP‌ دارایی‌ها" msgid "Preview" msgstr "پیش نمایش" @@ -3404,7 +3408,7 @@ msgid "Sort" msgstr "مرتب‌سازی" msgid "File" -msgstr "فایل" +msgstr "پرونده" msgid "Open..." msgstr "بار کردن..." @@ -3996,8 +4000,8 @@ msgid "" "Can't run project: Assets need to be imported.\n" "Please edit the project to trigger the initial import." msgstr "" -"پروژه اجرا نمی‌شود: دارایی ها باید وارد شوند.\n" -"لطفاً پروژه را ویرایش کنید تا وارد کردن اولیه آغاز شود." +"نمی‌توان پروژه را اجرا کرد: دارایی‌ها باید درون‌ریزی شوند.\n" +"لطفاً پروژه را ویرایش کنید تا درون‌ریزی اولیه آغاز شود." msgid "Are you sure to run %d projects at once?" msgstr "آیا مطمئن هستید که %d پروژه را همزمان اجرا می‌کنید؟" @@ -4066,8 +4070,8 @@ msgid "" "You currently don't have any projects.\n" "Would you like to explore official example projects in the Asset Library?" msgstr "" -"شما درحال حاضر هیچ پروژه‌ای ندارید.\n" -"آیا می خواهید پروژه‌های نمونه رسمی را در کتابخانه دارایی کاوش کنید؟" +"شما هم‌اکنون هیچ پروژه‌ای ندارید.\n" +"آیا می خواهید پروژه‌های نمونهٔ رسمی را در کتابخانهٔ دارایی کاوش کنید؟" msgid "Manage Project Tags" msgstr "مدیریت برچسب‌های پروژه" diff --git a/editor/translations/editor/fr.po b/editor/translations/editor/fr.po index 2069855c3eea..200dc7241c81 100644 --- a/editor/translations/editor/fr.po +++ b/editor/translations/editor/fr.po @@ -135,12 +135,14 @@ # John Donne , 2023. # Chloe Lee-Hone , 2023. # Freyja , 2023. +# Florian Charpentier , 2023. +# Aya Ichrak , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-17 11:10+0000\n" +"PO-Revision-Date: 2023-09-06 09:23+0000\n" "Last-Translator: Chloe Lee-Hone \n" "Language-Team: French \n" @@ -149,7 +151,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Non défini" @@ -247,6 +249,9 @@ msgstr "Retour, Select Sony, Back Xbox, - Nintendo" msgid "Guide, Sony PS, Xbox Home" msgstr "Guide, PS Sony, Home Xbox" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Start, Menu Xbox, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Stick gauche, L3 Sony, L/LS Xbox" @@ -1292,6 +1297,9 @@ msgstr "Numéro de ligne :" msgid "%d replaced." msgstr "%d remplacé." +msgid "No match" +msgstr "Aucune concordance" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d correspondance trouvée" @@ -1552,6 +1560,9 @@ msgstr "" msgid "Toggle Visibility" msgstr "Basculer la visibilité" +msgid "Syncing headers" +msgstr "Préparation de l'environnement" + msgid "Getting remote file system" msgstr "Obtenir le système de fichier distant" @@ -1901,6 +1912,9 @@ msgstr "Possède" msgid "Resources Without Explicit Ownership:" msgstr "Ressources sans propriété explicite :" +msgid "Folder name cannot be empty." +msgstr "Un nom de métadonnée ne peut être vide." + msgid "Using slashes in folder names will create subfolders recursively." msgstr "" "Utiliser des barres obliques (slash) dans les noms de dossiers créera des " @@ -1909,6 +1923,9 @@ msgstr "" msgid "Could not create folder." msgstr "Impossible de créer le dossier." +msgid "Create new folder in %s:" +msgstr "Créer un nouveau fichier dans %s :" + msgid "Create Folder" msgstr "Créer un dossier" @@ -4484,6 +4501,9 @@ msgstr "Ressources à exporter :" msgid "Delete preset '%s'?" msgstr "Supprimer le préréglage « %s » ?" +msgid "(Inherited)" +msgstr "(Hérité)" + msgid "%s Export" msgstr "Export %s" @@ -5237,6 +5257,9 @@ msgstr "Cliquez pour afficher le dock des signaux." msgid "Open in Editor" msgstr "Ouvrir dans l'éditeur" +msgid "This script is a custom type." +msgstr "Ce script est un type personnalisé." + msgid "Open Script:" msgstr "Ouvrir le script :" @@ -10463,6 +10486,9 @@ msgstr "Redimensionner une tuile" msgid "Remove tile" msgstr "Retirer la tuile" +msgid "Create tile alternatives" +msgstr "Créer des tuiles alternatives" + msgid "Create tiles in non-transparent texture regions" msgstr "Créer des tuiles dans les régions de textures non transparentes" @@ -10485,9 +10511,23 @@ msgstr "Sélectionner tuiles." msgid "No tiles selected." msgstr "Aucune tuiles sélectionnées." +msgid "Create Tiles in Non-Transparent Texture Regions" +msgstr "Créer des Tuiles dans les Régions de Textures Non Transparentes" + +msgid "Remove Tiles in Fully Transparent Texture Regions" +msgstr "Retirer des Tuiles dans les Régions de Textures Non Transparentes" + +msgid "Create an Alternative Tile" +msgstr "Créer une Tuile Alternative" + msgid "Create a Tile" msgstr "Créer une Tuile" +msgid "Auto Create Tiles in Non-Transparent Texture Regions?" +msgstr "" +"Création Automatique de tuiles dans les Régions de Textures Non " +"Transparentes ?" + msgid "" "The atlas's texture was modified.\n" "Would you like to automatically create tiles in the atlas?" @@ -10504,6 +10544,24 @@ msgstr "Non" msgid "Add a new atlas source" msgstr "Ajouter une nouvelle source d'atlas" +msgid "Open Atlas Merging Tool" +msgstr "Ouvrir l'outil de fusion d'Atlas" + +msgid "" +"No TileSet source selected. Select or create a TileSet source.\n" +"You can create a new source by using the Add button on the left or by " +"dropping a tileset texture onto the source list." +msgstr "" +"Aucune source d'Ensemble de Tuiles sélectionnée. Sélectionnez ou créez une " +"source d'Ensemble de Tuiles.\n" +"Vous pouvez créer une nouvelle source en utilisant le bouton Créer sur la " +"gauche ou en glissant une texture d'Ensemble de Tuiles sur la liste des " +"sources." + +msgid "Add new patterns in the TileMap editing mode." +msgstr "" +"Ajouter des nouveaux motifs dans le mode édition de l'Ensemble de Tuiles." + msgid "Add a Scene Tile" msgstr "Ajouter une tuile de scène" @@ -10516,6 +10574,13 @@ msgstr "Filtrer les propriétés :" msgid "TileSet" msgstr "TileSet" +msgid "" +"No VCS plugins are available in the project. Install a VCS plugin to use VCS " +"integration features." +msgstr "" +"Aucune extension VCS disponible pour le projet. Installez une extension VCS " +"pour utiliser les fonctionnalités d'intégration VCS." + msgid "Error" msgstr "Erreur" @@ -10549,6 +10614,9 @@ msgstr "Voulez-vous retirer la branche %s ?" msgid "Do you want to remove the %s remote?" msgstr "Voulez-vous vraiment retirer le dépôt distant %s ?" +msgid "Existing VCS metadata files will be overwritten." +msgstr "Les fichiers de métadonnées VCS existants seront écrasés." + msgid "Apply" msgstr "Appliquer" @@ -10712,12 +10780,18 @@ msgstr "Supprimer le port d'entrée" msgid "Remove Output Port" msgstr "Supprimer le port de sortie" +msgid "Set Comment Node Title" +msgstr "Définir le Titre du Noeud Commentaire" + msgid "Set Input Default Port" msgstr "Définir le port d'entrée par défaut" msgid "Add Node to Visual Shader" msgstr "Ajouter un nœud au Visual Shader" +msgid "Remove Varying from Visual Shader: %s" +msgstr "Retirer Varying du Visual Shader : %s" + msgid "Node(s) Moved" msgstr "Nœud(s) déplacé(s)" @@ -10748,6 +10822,9 @@ msgstr "Ajouter un nœud" msgid "Create Shader Node" msgstr "Créer un nœud Shader" +msgid "Delete Shader Varying" +msgstr "Supprimer Shader Varying" + msgid "Color function." msgstr "Fonction de coloration." @@ -10872,6 +10949,14 @@ msgstr "'%s' paramètre d'entrée pour le mode de shader light." msgid "'%s' input parameter for vertex shader mode." msgstr "'%s' paramètre d'entrée pour le mode de shader vertex." +msgid "" +"A node for help to multiply a position input vector by rotation using " +"specific axis. Intended to work with emitters." +msgstr "" +"Un noeud pour aider à multiplier un vecteur d'entrée de position par une " +"rotation utilisant un axe spécifique. Destiné à fonctionner avec des " +"émetteurs." + msgid "Returns the absolute value of the parameter." msgstr "Renvoie la valeur absolue du paramètre." @@ -11032,6 +11117,12 @@ msgstr "Renvoie la tangente hyperbolique du paramètre." msgid "Finds the truncated value of the parameter." msgstr "Recherche la valeur tronquée du paramètre." +msgid "Sums two floating-point scalars." +msgstr "Somme de deux scalaires à virgule flottante." + +msgid "Sums two unsigned integer scalars." +msgstr "Somme de deux scalaires entiers non signés." + msgid "Converts screen UV to a SDF." msgstr "Convertir l'écran UV en SDF." @@ -12239,6 +12330,13 @@ msgstr "Exporter la scène vers un fichier glTF 2.0" msgid "Path to Blender installation is valid." msgstr "Le chemin d'accès vers l'installation de Blender est valide." +msgid "" +"Disables Blender '.blend' files import for this project. Can be re-enabled in " +"Project Settings." +msgstr "" +"Désactive l'importation de fichiers Blender '.blend' pour ce projet. Peut-" +"être réactivé dans les préférences du projet." + msgid "Next Plane" msgstr "Plan suivant" @@ -12327,6 +12425,12 @@ msgid "Give a MeshLibrary resource to this GridMap to use its meshes." msgstr "" "Donnez une ressource MeshLibrary à cette GridMap pour utiliser ses maillages." +msgid "Determining optimal atlas size" +msgstr "Détermine la taille optimale de l'atlas" + +msgid "Optimizing acceleration structure" +msgstr "Optimise la structure d'accélération" + msgid "Begin Bake" msgstr "Commencer le précalcul" @@ -12390,13 +12494,51 @@ msgstr "Compte" msgid "Network Profiler" msgstr "Profileur réseau" +msgid "Select a replicator node in order to pick a property to add to it." +msgstr "" +"Choisir un noeud réplicateur afin de sélectionner une propriété à lui ajouter." + msgid "Not possible to add a new property to synchronize without a root." msgstr "" "Impossible d'ajouter une nouvelle propriété pour synchroniser sans racine." +msgid "Property is already being synchronized." +msgstr "Cette propriété est déjà en voie de synchronisation." + +msgid "Add property to synchronizer" +msgstr "Ajouter propriété au synchroniseur" + +msgid "Pick a node to synchronize:" +msgstr "Choisir un noeud à synchroniser :" + +msgid "Add property to sync..." +msgstr "Ajouter une propriété pour synchroniser..." + +msgid "Spawn" +msgstr "Point d'apparition" + +msgid "" +"Add properties using the buttons above or\n" +"drag them them from the inspector and drop them here." +msgstr "" +"Ajouter des propriétés utilisant les boutons ci-haut ou\n" +"traînez-les de l'inspecteur et laissez-les tomber ici." + +msgid "The MultiplayerSynchronizer needs a root path." +msgstr "Le MultiplayerSynchronizer nécessite un chemin racine." + +msgid "" +"Each MultiplayerSynchronizer can have no more than 64 watched properties." +msgstr "" +"Chaque MultiplayerSynchronizer ne peut pas avoir plus de 64 propriétés " +"surveillées." + msgid "Delete Property?" msgstr "Supprimer la propriété ?" +msgid "Property of this type not supported." +msgstr "Ce type de propriété n'est pas supporté." + msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" "Une ressource de type NavigationMesh doit être définie ou créée pour que ce " @@ -13457,6 +13599,14 @@ msgstr "" "Ce noeud a été sauvegardé en tant que classe de type '%s', qui n'était plus " "disponible lorsque cette scène fut chargée." +msgid "" +"Data from the original node is kept as a placeholder until this type of node " +"is available again. It can hence be safely re-saved without risk of data loss." +msgstr "" +"Les données du noeud original sont gardées en tant que remplacement jusqu'à " +"ce que ce type de noeud soit à nouveau disponible. Elles peuvent alors être " +"réenregistrées sans risque de pertes de données." + msgid "" "Setting node name '%s' to be unique within scene for '%s', but it's already " "claimed by '%s'.\n" @@ -13482,6 +13632,13 @@ msgstr "" "Ce nœud est marqué comme expérimental et pourrait faire l'objet d'une " "suppression ou de changements majeurs dans les versions futures." +msgid "" +"ShaderGlobalsOverride is not active because another node of the same type is " +"in the scene." +msgstr "" +"ShaderGlobalOverride n'est pas actif, car autre noeud du même type est " +"présent dans la scène." + msgid "" "Very low timer wait times (< 0.05 seconds) may behave in significantly " "different ways depending on the rendered or physics frame rate.\n" @@ -13500,6 +13657,12 @@ msgstr "" "La taille de la fenêtre d'affichage doit être supérieure ou égale à 2 pixels " "dans les deux sens pour que le rendu soit possible." +msgid "Version %d of BMFont is not supported (should be 3)." +msgstr "Version %d de BMFont n'est pas supportée (devrait être 3)." + +msgid "Can't load font texture: %s." +msgstr "Ne peut charger la texture de la police de caractère : %s." + msgid "Unsupported BMFont texture format." msgstr "Format de texture BMFont non pris en charge." @@ -13511,6 +13674,23 @@ msgstr "" "paramètres.\n" "Choisissez un autre nom." +msgid "This parameter type does not support the '%s' qualifier." +msgstr "Ce type de paramètre ne supporte pas le qualificatif '%s'." + +msgid "" +"Global parameter '%s' does not exist.\n" +"Create it in the Project Settings." +msgstr "" +"Paramètre global '%s' n'existe pas.\n" +"Créez-le dans les réglages du projet." + +msgid "" +"Global parameter '%s' has an incompatible type for this kind of node.\n" +"Change it in the Project Settings." +msgstr "" +"Le paramètre global '%s' a un type incompatible pour cette sorte de noeud.\n" +"Changez-le dans les réglages du projet." + msgid "" "The sampler port is connected but not used. Consider changing the source to " "'SamplerPort'." @@ -13625,6 +13805,9 @@ msgstr "Méthode '%s' doit être du type de retour '%s'." msgid "Expected a '{' to begin function." msgstr "Attendait un '{' pour commencer une méthode." +msgid "Expected at least one '%s' statement in a non-void function." +msgstr "Attendait au moins une déclaration '%s' dans une méthode non void." + msgid "Expected a '%s'." msgstr "Un '%s' est attendu." diff --git a/editor/translations/editor/id.po b/editor/translations/editor/id.po index 632913504d95..6be4e32dc53e 100644 --- a/editor/translations/editor/id.po +++ b/editor/translations/editor/id.po @@ -51,13 +51,14 @@ # Septian Ganendra Savero Kurniawan , 2023. # Septian Ganendra Savero Kurniawan , 2023. # GID , 2023. +# Luqman Firmansyah , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-07-08 13:52+0000\n" -"Last-Translator: GID \n" +"PO-Revision-Date: 2023-09-05 08:33+0000\n" +"Last-Translator: EngageIndo \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -65,7 +66,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Batal disetel" @@ -163,6 +164,9 @@ msgstr "Kembali, Sony Select, Xbox Kembali, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Panduan, Sony PS, Xbox Home" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Mulai, Xbox Menu, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Stik Kiri, Sony L3, Xbox L/LS" @@ -1196,6 +1200,9 @@ msgstr "Nomor Baris:" msgid "%d replaced." msgstr "%d telah diganti." +msgid "No match" +msgstr "Tidak ada kecocokan" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d cocok" @@ -3032,6 +3039,9 @@ msgstr "Kesalahan saat mem-parsing file '%s'." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "File adegan '%s' tampaknya tidak valid/rusak." +msgid "Missing file '%s' or one of its dependencies." +msgstr "File '%s' hilang atau salah satu dependensinya." + msgid "Error while loading file '%s'." msgstr "Kesalahan saat memuat file '%s'." @@ -3589,7 +3599,7 @@ msgid "Mobile" msgstr "Mobile" msgid "Compatibility" -msgstr "Kompatibilitas" +msgstr "Kecocokan" msgid "Changing the renderer requires restarting the editor." msgstr "Mengubah perender memerlukan restart ulang editor." @@ -4110,7 +4120,7 @@ msgid "Cannot create file \"%s\"." msgstr "Tidak dapat membuat file \"%s\"." msgid "Failed to export project files." -msgstr "Tidak dapat ekspor berkas proyek" +msgstr "Tidak dapat ekspor berkas proyek." msgid "Can't open file for writing at path \"%s\"." msgstr "Tidak dapat membuka file untuk menulis di path \"%s\"." @@ -9907,6 +9917,27 @@ msgstr "" "Anda dapat menambahkan tipe kustom atau mengimpor tipe dengan itemnya dari " "tema lain." +msgid "Remove All Color Items" +msgstr "Hapus Semua Warna Item" + +msgid "Rename Item" +msgstr "Ganti Nama Item" + +msgid "Remove All Constant Items" +msgstr "Hapus Semua Item Konstanta" + +msgid "Remove All Font Items" +msgstr "Hapus Semua Item Font" + +msgid "Remove All Font Size Items" +msgstr "Hapus Semua Item Ukuran Font" + +msgid "Remove All Icon Items" +msgstr "Hapus Semua Item Ikon" + +msgid "Remove All StyleBox Items" +msgstr "Hapus Semua Item StyleBox" + msgid "" "This theme type is empty.\n" "Add more items to it manually or by importing from another theme." @@ -9915,6 +9946,30 @@ msgstr "" "Tambahkan lebih banyak item ke dalamnya secara manual atau dengan mengimpor " "dari tema lain." +msgid "Remove Theme Item" +msgstr "Hapus Item Tema" + +msgid "Add Theme Type" +msgstr "Tambah Tipe Tema" + +msgid "Create Theme Item" +msgstr "Buat Item Tema" + +msgid "Remove Theme Type" +msgstr "Hapus Tipe Tema" + +msgid "Remove Data Type Items From Theme" +msgstr "Hapus Item Tipe Data dari Tema" + +msgid "Remove Class Items From Theme" +msgstr "Hapus Item Kelas dari Tema" + +msgid "Remove Custom Items From Theme" +msgstr "Hapus Item Kustom dari Tema" + +msgid "Remove All Items From Theme" +msgstr "Hapus Semua Item dari Tema" + msgid "Add Color Item" msgstr "Tambah Item Warna" @@ -9924,6 +9979,9 @@ msgstr "Tambah Item Konstan" msgid "Add Font Item" msgstr "Tambah Item Fonta" +msgid "Add Font Size Item" +msgstr "Tambah Item Ukuran Font" + msgid "Add Icon Item" msgstr "Tambah Item Ikon" @@ -9964,6 +10022,18 @@ msgstr "" "Sematkan StyleBox ini sebagai gaya utama. Mengedit propertinya akan " "memperbarui properti yang sama di semua StyleBox lain dari jenis ini." +msgid "Override All Default Theme Items" +msgstr "Timpa Semua Item Tema Bawaan" + +msgid "Set Font Size Item in Theme" +msgstr "Set Ukuran Font di Tema" + +msgid "Set Icon Item in Theme" +msgstr "Set Icon Item di Tema" + +msgid "Add a type from a list of available types or create a new one." +msgstr "Tambahkan sebuah tipe dari daftar tipe yang ada atau buat yang baru." + msgid "Base Type" msgstr "Tipe Dasar" @@ -10011,7 +10081,7 @@ msgid "Named Separator" msgstr "Pemisah yang diberi nama" msgid "Submenu" -msgstr "Submenu" +msgstr "Menu Tambahan" msgid "Subitem 1" msgstr "Sub menu 1" @@ -10053,6 +10123,42 @@ msgstr "" msgid "Reload the scene to reflect its most actual state." msgstr "Muat ulang skena untuk mencerminkan keadaannya yang paling aktual." +msgid "Merge TileSetAtlasSource" +msgstr "Menggabungkan TileSetAtlasSource" + +msgid "%s (ID: %d)" +msgstr "%s (ID: %d)" + +msgid "Merge (Keep original Atlases)" +msgstr "Menggabungkan (Simpan Atlas asli)" + +msgid "Next Line After Column" +msgstr "Baris Berikutnya Setelah Kolom" + +msgid "" +"Source: %d\n" +"Atlas coordinates: %s\n" +"Alternative: 0" +msgstr "" +"Sumber: %d\n" +" Koordinat Atlas: %s\n" +" Alternatif: 0" + +msgid "" +"Source: %d\n" +"Atlas coordinates: %s\n" +"Alternative: %d" +msgstr "" +"Sumber: %d\n" +" Koordinat Atlas: %s\n" +" Alternatif: 0" + +msgid "No atlas source with a valid texture selected." +msgstr "Tidak ada sumber atlas dengan tekstur valid yang dipilih." + +msgid "Edit points tool" +msgstr "Edit point tool" + msgid "Rotate Right" msgstr "Putar ke kanan" @@ -10065,24 +10171,159 @@ msgstr "Balik secara Horizontal" msgid "Flip Vertically" msgstr "Balik secara Vertikal" +msgid "No terrains" +msgstr "Tidak ada lahan" + +msgid "No terrain" +msgstr "Tidak ada lahan" + +msgid "No Texture Atlas Source (ID: %d)" +msgstr "Sumber Atlas Tanpa Tekstur (ID: %d)" + +msgid "Scene Collection Source (ID: %d)" +msgstr "Scene Sumber Koleksi (ID: %d)" + +msgid "Unknown Type Source (ID: %d)" +msgstr "Sumber Jenis Tidak Diketahui (ID: %d)" + +msgid "Index: %d" +msgstr "Indeks:%d" + +msgid "Tile with Invalid Scene" +msgstr "Petak dengan Adegan tidak valid" + +msgid "Delete tiles" +msgstr "Hapus Petak" + +msgid "Drawing Rect:" +msgstr "Menggambar Persegi:" + +msgid "Change selection" +msgstr "Ubah seleksi" + +msgid "Move tiles" +msgstr "Geser Petak" + +msgid "Shift: Draw line." +msgstr "Shift: Menggambar garis." + +msgid "Shift+Ctrl: Draw rectangle." +msgstr "Shift+Ctrl: Menggambar Persegi." + +msgid "Bucket" +msgstr "Keranjang" + +msgid "Eraser" +msgstr "Penghapus" + msgid "Tiles" -msgstr "Ubin" +msgstr "Petak" + +msgid "Patterns" +msgstr "Pola" + +msgid "Drag and drop or paste a TileMap selection here to store a pattern." +msgstr "" +"Seret dan lepas atau tempel pilihan TileMap ke sini untuk menyimpan pola." + +msgid "Matches Corners and Sides" +msgstr "Cocokkan Sudut dan Sisi" + +msgid "Terrain Set %d (%s)" +msgstr "Set Terrain %d (%s)" + +msgid "Terrains" +msgstr "Lahan" + +msgid "Select Previous Tile Map Layer" +msgstr "Pilih Layer Tile Map Sebelumnya" + +msgid "Highlight Selected TileMap Layer" +msgstr "Sorot Layer TileMap Terpilih" + +msgid "Toggle grid visibility." +msgstr "Tampilkan kisi." + +msgid "Delete All Invalid Tile Proxies" +msgstr "Hapus Semua Proksi Petak yang Tidak Valid" + +msgid "Delete All Tile Proxies" +msgstr "Hapus Semua Proksi Petak" + +msgid "Tile Proxies Management" +msgstr "Manajemen Proksi Petak" + +msgid "" +"Selected tile:\n" +"Source: %d\n" +"Atlas coordinates: %s\n" +"Alternative: %d" +msgstr "" +"Petak terpilih:\n" +"Sumber: %d\n" +"Koordinat Atlas: %s\n" +"Alternatif: %d" msgid "Rendering" -msgstr "Rendering" +msgstr "Proses membuat gambar" msgid "Modulate" msgstr "Memodulasi" +msgid "Create tiles in non-transparent texture regions" +msgstr "Buat petak di region tekstur non-transparan" + +msgid "Remove tiles in fully transparent texture regions" +msgstr "Hapus petak di region tekstur dengan transparansi penuh" + +msgid "Select tiles." +msgstr "Pilih Petak." + +msgid "No tiles selected." +msgstr "Tidak ada petak yang dipilih." + +msgid "Create Tiles in Non-Transparent Texture Regions" +msgstr "Buat petak di region tekstur non-transparan" + +msgid "Remove Tiles in Fully Transparent Texture Regions" +msgstr "Hapus petak di region tekstur dengan transparansi penuh" + +msgid "Auto Create Tiles in Non-Transparent Texture Regions?" +msgstr "Buat Petak Otomatis di Region Tekstur Non-Transparan?" + msgid "Yes" msgstr "Ya" +msgid "Add a new atlas source" +msgstr "Tambah sumber atlas baru" + +msgid "Open Atlas Merging Tool" +msgstr "Buka Alat Penggabung Atlas" + +msgid "" +"No TileSet source selected. Select or create a TileSet source.\n" +"You can create a new source by using the Add button on the left or by " +"dropping a tileset texture onto the source list." +msgstr "" +"Tidak ada sumber TileSet terpilih. Pilih atau buat sumber TileSet.\n" +"Anda dapat membuat sebuah sumber baru menggunakan tombol Tambah pada sebelah " +"kiri atau dengan melepas tekstur TileSet pada daftar sumber." + +msgid "Add new patterns in the TileMap editing mode." +msgstr "Tambah pola baru di Mode Sunting TileMap." + msgid "TileSet" msgstr "TileSet" msgid "Error" msgstr "Error" +msgid "" +"Remote settings are empty. VCS features that use the network may not work." +msgstr "" +"Pengaturan remote kosong. Fitur VCS yang menggunakan jaringan mungkin akan " +"tidak berfungsi." + msgid "Commit" msgstr "Komit" @@ -10092,6 +10333,9 @@ msgstr "Tanggal:" msgid "Subtitle:" msgstr "Subjudul:" +msgid "Existing VCS metadata files will be overwritten." +msgstr "Berkas metadata VCS yang sudah ada akan ditimpa." + msgid "Apply" msgstr "Terapkan" @@ -10116,6 +10360,10 @@ msgstr "Deteksi perubahan baru" msgid "Discard all changes" msgstr "Buang semua perubahan" +msgid "This operation is IRREVERSIBLE. Your changes will be deleted FOREVER." +msgstr "" +"Operasi ini TIDAK DAPAT DIKEMBALIKAN. Perubahan anda akan hilang SELAMANYA." + msgid "Unstage all changes" msgstr "Buang semua perubahan" @@ -10158,6 +10406,12 @@ msgstr "Nama Remot" msgid "Remote URL" msgstr "URL Remot" +msgid "Pull" +msgstr "Pull" + +msgid "Push" +msgstr "Push" + msgid "Modified" msgstr "Dimodifikasi" @@ -10170,6 +10424,9 @@ msgstr "Dihapus" msgid "Typechange" msgstr "Jenis perubahan" +msgid "View file diffs before committing them to the latest version" +msgstr "Tampilkan perbedaan file sebelum melakukan commit ke versi terbaru" + msgid "Split" msgstr "Pisahkan" @@ -10219,7 +10476,7 @@ msgid "Boolean" msgstr "Boolean" msgid "Sampler" -msgstr "Sampler" +msgstr "Contoh Acak" msgid "[default]" msgstr "[bawaan]" @@ -10260,6 +10517,12 @@ msgstr "Cahaya" msgid "Process" msgstr "Proses" +msgid "Sky" +msgstr "Langit" + +msgid "Fog" +msgstr "Kabut" + msgid "Add Node" msgstr "Tambahkan Node" @@ -11748,6 +12011,9 @@ msgstr "Tidak dapat menemukan contoh APK untuk ekspor: \"%s\"" msgid "Invalid Identifier:" msgstr "Identifier tidak valid:" +msgid "Xcode Build" +msgstr "Membangun Xcode" + msgid "Identifier is missing." msgstr "Kurang identifier." diff --git a/editor/translations/editor/it.po b/editor/translations/editor/it.po index ba3644e0c112..1f22b09fa3a9 100644 --- a/editor/translations/editor/it.po +++ b/editor/translations/editor/it.po @@ -87,13 +87,14 @@ # GumaD3v , 2023. # Adelina G , 2023. # Francesco , 2023. +# Edoardo Barolo , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-07-20 08:03+0000\n" -"Last-Translator: Francesco \n" +"PO-Revision-Date: 2023-08-30 14:58+0000\n" +"Last-Translator: Edoardo Barolo \n" "Language-Team: Italian \n" "Language: it\n" @@ -101,7 +102,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Non impostato" @@ -199,6 +200,9 @@ msgstr "Indietro, Select Sony, Back Xbox, - Nintendo" msgid "Guide, Sony PS, Xbox Home" msgstr "Guida, PS Sony, Home Xbox" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Start, MenuXbox , Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Levetta sinistra, L3 Sony, L/LS Xbox" @@ -1053,6 +1057,9 @@ msgstr "Scala la selezione" msgid "Scale From Cursor" msgstr "Scala a partire dal cursore" +msgid "Make Easing Selection" +msgstr "Effettua selezione di facilitazione" + msgid "Duplicate Selection" msgstr "Duplica la selezione" @@ -1117,6 +1124,18 @@ msgctxt "Transition Type" msgid "Sine" msgstr "Seno" +msgctxt "Transition Type" +msgid "Quint" +msgstr "Quintupletta" + +msgctxt "Transition Type" +msgid "Quart" +msgstr "Quartetto" + +msgctxt "Transition Type" +msgid "Quad" +msgstr "Quadrupla" + msgctxt "Transition Type" msgid "Elastic" msgstr "Elastico" @@ -2193,6 +2212,14 @@ msgstr "" "Supporto alla tecnologia di font intelligente SIL Graphite (supportata solo " "dal server di testo avanzato)." +msgid "" +"Multi-channel signed distance field font rendering support using msdfgen " +"library (pre-rendered MSDF fonts can be used even if this option disabled)." +msgstr "" +"Supporto per il rendering di font multicanale con campo di distanza " +"sottoscritto utilizzando la libreria msdfgen (i font MSDF pre-renderizzati " +"possono essere utilizzati anche se questa opzione è disabilitata)." + msgid "General Features:" msgstr "Funzionalità generali:" @@ -2449,6 +2476,10 @@ msgstr "Importa risorse di tipo: %s" msgid "No return value." msgstr "Nessun valore di ritorno." +msgid "This value is an integer composed as a bitmask of the following flags." +msgstr "" +"Questo valore è un intero composto da una maschera di bit dei seguenti flag." + msgid "Deprecated" msgstr "Deprecato" @@ -2718,6 +2749,20 @@ msgstr "Aggiungi elemento all'array di proprietà col prefisso %s." msgid "Remove element %d from property array with prefix %s." msgstr "Rimuovi elemento %d dall'array di proprietà col prefisso %s." +msgid "Move element %d to position %d in property array with prefix %s." +msgstr "" +"Sposta l'elemento %d nella posizione %d dell'array di proprietà con prefisso " +"%s." + +msgid "Clear property array with prefix %s." +msgstr "Cancella l'array di proprietà con il prefisso %s." + +msgid "Resize property array with prefix %s." +msgstr "Ridimensiona la proprietà array con il prefisso %s." + +msgid "Element %d: %s%d*" +msgstr "Element0 %d: %s%d*" + msgid "Move Up" msgstr "Sposta su" @@ -3724,6 +3769,9 @@ msgstr "Modifica i nomi dei livelli" msgid "" msgstr "" +msgid "Temporary Euler may be changed implicitly!" +msgstr "L'Eulero temporaneo può essere modificato implicitamente!" + msgid "" "Temporary Euler will not be stored in the object with the original value. " "Instead, it will be stored as Quaternion with irreversible conversion.\n" @@ -3959,6 +4007,9 @@ msgstr "Joystick 4 verso su" msgid "Joystick 4 Down" msgstr "Joystick 4 verso giù" +msgid "Unicode" +msgstr "Unicode" + msgid "Joypad Axis %d %s (%s)" msgstr "Asse %d del joypad %s (%s)" @@ -4449,6 +4500,20 @@ msgstr "Gestisci i modelli di esportazione" msgid "Export With Debug" msgstr "Esporta Con Debug" +msgid "" +"Canceling this dialog will disable the FBX importer.\n" +"You can re-enable it in the Project Settings under Filesystem > Import > FBX " +"> Enabled.\n" +"\n" +"The editor will restart as importers are registered when the editor starts." +msgstr "" +"Chiudendo questa finestra di dialogo si disattiva l'importatore FBX.\n" +"È possibile riabilitarlo nelle Impostazioni progetto in Filesystem > " +"Importazione > FBX > Abilitato.\n" +"\n" +"L'editor si riavvia perché gli importatori sono registrati all'avvio " +"dell'editor." + msgid "Path to FBX2glTF executable is empty." msgstr "Il percorso per FBX2glTF è vuoto." @@ -4551,6 +4616,12 @@ msgstr "" "I seguenti file o/e cartelle vanno in conflitto con i file o/e cartelle nel " "percorso di destinazione '%s':" +msgid "Do you wish to overwrite them or rename the copied files?" +msgstr "Si desidera sovrascrivere o rinominare i file copiati?" + +msgid "Do you wish to overwrite them or rename the moved files?" +msgstr "Si desidera sovrascrivere o rinominare i file spostati?" + msgid "Duplicating file:" msgstr "Duplica file:" @@ -4784,6 +4855,13 @@ msgstr "Impossibile salvare file con il nome vuoto." msgid "Cannot save file with a name starting with a dot." msgstr "Impossibile salvare file il cui nome inizia con un punto." +msgid "" +"File \"%s\" already exists.\n" +"Do you want to overwrite it?" +msgstr "" +"Il file \"%s\" esiste già.\n" +"Si desidera sovrascriverlo?" + msgid "Select This Folder" msgstr "Seleziona questa cartella" @@ -5116,6 +5194,16 @@ msgstr "" "di battiti dall'anteprima) per assicurarsi che la ripetizione funzioni " "correttamente." +msgid "Bar Beats:" +msgstr "Barra Battiti:" + +msgid "" +"Configure the Beats Per Bar. This used for music-aware transitions between " +"AudioStreams." +msgstr "" +"Configura i battiti per battuta. Si usa per le transizioni sensibili alla " +"musica tra gli AudioStream." + msgid "Music Playback:" msgstr "Riproduzione musicale:" @@ -5227,6 +5315,9 @@ msgstr "" msgid "Dynamically rendered TrueType/OpenType font" msgstr "Font TrueType/OpenType renderizzato dinamicamente" +msgid "Prerendered multichannel(+true) signed distance field" +msgstr "Campo distanza sottoscritta(+true) multicanale prerenderizzata" + msgid "Can't load font texture:" msgstr "Impossibile caricare texture del font:" @@ -5346,6 +5437,9 @@ msgstr "Il file esistente con lo stesso nome verrà rimpiazzato." msgid "Will create new file" msgstr "Creerà un nuovo file" +msgid "Already External" +msgstr "Già esterno" + msgid "" "This material already references an external file, no action will be taken.\n" "Disable the external property for it to be extracted again." @@ -6537,6 +6631,9 @@ msgstr "File ZIP dei contenuti" msgid "Audio Preview Play/Pause" msgstr "Riproduci/Pausa Anteprima Audio" +msgid "Clear mappings in current group." +msgstr "Pulisci le mappature nel gruppo corrente." + msgid "Preview" msgstr "Anteprima" @@ -6763,6 +6860,12 @@ msgstr "Clicca per cambiare il perno di rotazione dell'oggetto." msgid "Pan Mode" msgstr "Modalità di Pan" +msgid "" +"You can also use Pan View shortcut (Space by default) to pan in any mode." +msgstr "" +"È inoltre possibile utilizzare la Vista Pan (Spazio per impostazione " +"predefinita) per eseguire una panoramica in qualsiasi modalità." + msgid "Ruler Mode" msgstr "Modalità Righello" @@ -7000,6 +7103,12 @@ msgstr "Questo nodo è il figlio di un Control normale." msgid "Use anchors and the rectangle for positioning." msgstr "Utilizza le ancore e il rettangolo per il posizionamento." +msgid "Collapse positioning hint." +msgstr "Suggerimento per il posizionamento dello strumento di compressione." + +msgid "Expand positioning hint." +msgstr "Suggerimento per il posizionamento dello strumento di espansione." + msgid "Container Default" msgstr "Container predefinito" @@ -7057,6 +7166,33 @@ msgstr "Lato Destro" msgid "Full Rect" msgstr "Rettangolo Completo" +msgid "" +"Enable to also set the Expand flag.\n" +"Disable to only set Shrink/Fill flags." +msgstr "" +"Attivare per impostare anche il flag Espandi.\n" +"Disattivare per impostare solo i flag Restringimento/riempimento." + +msgid "Some parents of the selected nodes do not support the Expand flag." +msgstr "Alcuni parenti dei nodi selezionati non supportano il flag Espandi." + +msgid "Align with Expand" +msgstr "Allinea con l'espansione" + +msgid "Change Anchors, Offsets, Grow Direction" +msgstr "Modificare le ancore, gli offset e la direzione di espansione" + +msgid "Change Anchors, Offsets (Keep Ratio)" +msgstr "Cambiare le ancore, gli offset (Mantieni il Rapporto)" + +msgid "Adjust anchors and offsets to match the current rect size." +msgstr "" +"Regola le ancore e gli offset per adattarli alla dimensione corrente del " +"rettangolo." + +msgid "Sizing settings for children of a Container node." +msgstr "Impostazioni di dimensionamento per i figli di un nodo Contenitore." + msgid "Horizontal alignment" msgstr "Allineamento orizzontale" @@ -7240,6 +7376,9 @@ msgstr "Dimensione: %s" msgid "Type: %s" msgstr "Tipo: %s" +msgid "Dimensions: %d × %d" +msgstr "Dimensioni: %d × %d" + msgid "Overrides (%d)" msgstr "Sovrascrive (%d)" @@ -7476,6 +7615,9 @@ msgstr "" msgid "No editor scene root found." msgstr "Nessuna radice della scena dell'editor trovata." +msgid "Lightmap data is not local to the scene." +msgstr "I dati della Lightmap non sono locali alla scena." + msgid "Bake Lightmaps" msgstr "Preprocessa Lightmaps" diff --git a/editor/translations/editor/ko.po b/editor/translations/editor/ko.po index c7e744d9999c..900c043d81b1 100644 --- a/editor/translations/editor/ko.po +++ b/editor/translations/editor/ko.po @@ -52,13 +52,14 @@ # asdfer-1234 , 2023. # Overdue - , 2023. # 최시현 , 2023. +# Zinccccc , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-07-31 18:39+0000\n" -"Last-Translator: 이정희 \n" +"PO-Revision-Date: 2023-09-05 08:33+0000\n" +"Last-Translator: Zinccccc \n" "Language-Team: Korean \n" "Language: ko\n" @@ -66,7 +67,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "설정 해제" @@ -164,6 +165,9 @@ msgstr "뒤로, 소니 셀렉트, 엑스박스 뒤로, 닌텐도 -" msgid "Guide, Sony PS, Xbox Home" msgstr "가이드, 소니 PS, Xbox 홈" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "시작, Xbox 메뉴, 닌텐도 +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "왼쪽 스틱, 소니 L3, Xbox L/LS" @@ -1193,6 +1197,9 @@ msgstr "행 번호:" msgid "%d replaced." msgstr "%d개를 찾아 바꿨습니다." +msgid "No match" +msgstr "일치하는 것 없음" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d개 일치" @@ -3015,6 +3022,9 @@ msgstr "'%s' 구문 분석 중 오류가 발생했습니다." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "씬 파일 '%s'이(가) 잘못되었거나 손상된 것 같습니다." +msgid "Missing file '%s' or one of its dependencies." +msgstr "파일 '%s' 또는 이것의 종속 항목이 누락되어 있습니다." + msgid "Error while loading file '%s'." msgstr "파일 '%s'을(를) 불러오는 중 오류가 발생했습니다." @@ -11550,15 +11560,117 @@ msgid "" "Returns the result of bitwise XOR (a ^ b) operation on the unsigned integer." msgstr "부호 없는 정수에 대한 비트 단위 XOR (a ^ b) 연산의 결과값을 반환합니다." +msgid "Divides two floating-point scalars." +msgstr "두 부동소수점 스칼라를 나눕니다." + +msgid "Divides two integer scalars." +msgstr "두 정수 스칼라를 나눕니다." + +msgid "Divides two unsigned integer scalars." +msgstr "두 부호 없는 정수 스칼라를 나눕니다." + +msgid "Multiplies two floating-point scalars." +msgstr "두 부동소수점 스칼라를 곱합니다." + +msgid "Multiplies two integer scalars." +msgstr "두 정수 스칼라를 곱합니다." + +msgid "Multiplies two unsigned integer scalars." +msgstr "부호 없는 두 스칼라를 곱합니다." + +msgid "Returns the remainder of the two floating-point scalars." +msgstr "두 부동소수점 스칼라의 나머지를 반환합니다." + +msgid "Returns the remainder of the two integer scalars." +msgstr "두 정수 스칼라의 나머지를 반환합니다." + +msgid "Returns the remainder of the two unsigned integer scalars." +msgstr "두 부호 없는 정수 스칼라의 나머지를 반환합니다." + +msgid "Subtracts two floating-point scalars." +msgstr "두 부동소수점 스칼라를 뺍니다." + +msgid "Subtracts two integer scalars." +msgstr "두 정수 스칼라를 뺍니다." + +msgid "Subtracts two unsigned integer scalars." +msgstr "두 부호 없는 정수 스칼라를 뺍니다." + +msgid "Scalar floating-point constant." +msgstr "부동소수점 스칼라 상수." + +msgid "Scalar integer constant." +msgstr "정수 스칼라 상수." + +msgid "Scalar unsigned integer constant." +msgstr "부호 없는 정수 스칼라 상수." + +msgid "Scalar floating-point parameter." +msgstr "부동소수점 스칼라 매개변수." + +msgid "Scalar integer parameter." +msgstr "정수 스칼라 매개변수." + +msgid "Scalar unsigned integer parameter." +msgstr "부호 없는 정수 스칼라 매개변수." + msgid "Converts screen UV to a SDF." msgstr "스크린 UV를 SDF로 변환합니다." +msgid "Casts a ray against the screen SDF and returns the distance travelled." +msgstr "스크린 SDF에 광선을 발사하고 이동 거리를 반환합니다." + +msgid "Converts a SDF to screen UV." +msgstr "SDF를 스크린 UV로 변환합니다." + +msgid "Performs a SDF texture lookup." +msgstr "SDF 텍스처 룩업을 수행합니다." + +msgid "Performs a SDF normal texture lookup." +msgstr "SDF 노멀 텍스처 룩업을 수행합니다." + +msgid "Function to be applied on texture coordinates." +msgstr "텍스처 좌표에 적용할 함수입니다." + msgid "Perform the cubic texture lookup." msgstr "세제곱 텍스처 룩업을 수행합니다." +msgid "Perform the curve texture lookup." +msgstr "커브 텍스처 룩업을 수행합니다." + +msgid "Perform the three components curve texture lookup." +msgstr "세제곱 커브 텍스처 룩업을 수행합니다." + +msgid "Perform the 2D texture lookup." +msgstr "2D 텍스처 룩업을 수행합니다." + +msgid "Perform the 2D-array texture lookup." +msgstr "2D 배열 텍스처 룩업을 수행합니다." + +msgid "Perform the 3D texture lookup." +msgstr "3D 텍스처 룩업을 수행합니다." + +msgid "Cubic texture parameter lookup." +msgstr "세제곱 텍스처 매개변수 룩업." + +msgid "2D texture parameter lookup." +msgstr "2D 텍스처 매개변수 룩업." + +msgid "2D texture parameter lookup with triplanar." +msgstr "Triplanar가 적용된 2D 텍스처 매개변수 룩업 ." + +msgid "2D array of textures parameter lookup." +msgstr "2D 텍스처 배열 매개변수 룩업." + +msgid "3D texture parameter lookup." +msgstr "3D 텍스처 매개변수 룩업." + msgid "Transform function." msgstr "변형 함수." +msgid "Transform operator." +msgstr "변형 연산자." + msgid "" "Calculate the outer product of a pair of vectors.\n" "\n" @@ -11593,6 +11705,12 @@ msgstr "변형의 전치를 계산합니다." msgid "Sums two transforms." msgstr "두 개의 Transform을 더합니다." +msgid "Divides two transforms." +msgstr "두 변형을 나눕니다." + +msgid "Multiplies two transforms." +msgstr "두 변형을 곱합니다." + msgid "Subtracts two transforms." msgstr "두 Transform을 뺍니다." @@ -11602,12 +11720,39 @@ msgstr "변형에 벡터를 곱합니다." msgid "Transform constant." msgstr "변형 상수." +msgid "Transform parameter." +msgstr "변형 매개변수." + msgid "Vector function." msgstr "벡터 함수." msgid "Vector operator." msgstr "벡터 연산자." +msgid "Composes vector from scalars." +msgstr "스칼라로 벡터를 합성합니다." + +msgid "Decomposes vector to scalars." +msgstr "벡터를 스칼라로 분해합니다." + +msgid "Composes 2D vector from two scalars." +msgstr "두 개의 스칼라로 2D 벡터를 합성합니다." + +msgid "Decomposes 2D vector to two scalars." +msgstr "2D 벡터를 두 개의 스칼라로 분해합니다." + +msgid "Composes 3D vector from three scalars." +msgstr "세 개의 스칼라로 3D 벡터를 합성합니다." + +msgid "Decomposes 3D vector to three scalars." +msgstr "3D 벡터를 세 개의 스칼라로 분해합니다." + +msgid "Composes 4D vector from four scalars." +msgstr "네 개의 스칼라로 4D 벡터를 합성합니다." + +msgid "Decomposes 4D vector to four scalars." +msgstr "4D 벡터를 네 개의 스칼라로 분해합니다." + msgid "Calculates the cross product of two vectors." msgstr "두 벡터의 벡터곱 값을 계산합니다." @@ -11718,6 +11863,69 @@ msgid "" "(Fragment/Light mode only) (Vector) Sum of absolute derivative in 'x' and 'y'." msgstr "(프래그먼트/라이트 모드만 가능) (벡터) 'x'와 'y'의 절대 미분 값의 합." +msgid "Adds 2D vector to 2D vector." +msgstr "2D 벡터에 2D 벡터를 더합니다." + +msgid "Adds 3D vector to 3D vector." +msgstr "3D 벡터에 3D 벡터를 더합니다." + +msgid "Adds 4D vector to 4D vector." +msgstr "4D 벡터에 4D 벡터를 더합니다." + +msgid "Divides 2D vector by 2D vector." +msgstr "2D 벡터를 2D 벡터로 나눕니다." + +msgid "Divides 3D vector by 3D vector." +msgstr "3D 벡터를 3D 벡터로 나눕니다." + +msgid "Divides 4D vector by 4D vector." +msgstr "4D 벡터를 4D 벡터로 나눕니다." + +msgid "Multiplies 2D vector by 2D vector." +msgstr "2D 벡터를 2D 벡터로 곱합니다." + +msgid "Multiplies 3D vector by 3D vector." +msgstr "3D 벡터를 3D 벡터로 곱합니다." + +msgid "Multiplies 4D vector by 4D vector." +msgstr "4D 벡터를 4D 벡터로 곱합니다." + +msgid "Returns the remainder of the two 2D vectors." +msgstr "두 2D 벡터의 나머지를 반환합니다." + +msgid "Returns the remainder of the two 3D vectors." +msgstr "두 3D 벡터의 나머지를 반환합니다." + +msgid "Returns the remainder of the two 4D vectors." +msgstr "두 4D 벡터의 나머지를 반환합니다." + +msgid "Subtracts 2D vector from 2D vector." +msgstr "2D 벡터에서 2D 벡터를 뺍니다." + +msgid "Subtracts 3D vector from 3D vector." +msgstr "3D 벡터에서 3D 벡터를 뺍니다." + +msgid "Subtracts 4D vector from 4D vector." +msgstr "4D 벡터에서 4D 벡터를 뺍니다." + +msgid "2D vector constant." +msgstr "2D 벡터 상수." + +msgid "2D vector parameter." +msgstr "2D 벡터 매개변수." + +msgid "3D vector constant." +msgstr "3D 벡터 상수." + +msgid "3D vector parameter." +msgstr "3D 벡터 매개변수." + +msgid "4D vector constant." +msgstr "4D 벡터 상수." + +msgid "4D vector parameter." +msgstr "4D 벡터 매개변수." + msgid "" "A rectangular area with a description string for better graph organization." msgstr "" @@ -11950,6 +12158,9 @@ msgstr "버전 컨트롤 메타데이터:" msgid "Git" msgstr "Git" +msgid "This project uses features unsupported by the current build:" +msgstr "이 프로젝트는 현재 빌드에서는 지원하지 않는 기능을 사용합니다:" + msgid "Error: Project is missing on the filesystem." msgstr "오류: 프로젝트가 파일시스템에서 누락되었습니다." @@ -12089,6 +12300,15 @@ msgstr "" "지원하지 않습니다. 계속 진행할 경우 C# 스크립트를 사용할 수 없습니다.\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"경고: 이 프로젝트는 Godot %s에서 최종 편집되었습니다.\n" +"프로젝트를 열면 Godot %s로 변경됩니다.\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -12230,6 +12450,27 @@ msgstr "프로젝트 콘텐츠도 삭제 (되돌릴 수 없습니다!)" msgid "Convert Full Project" msgstr "프로젝트 전체 변환" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3 to work in Godot 4.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"이것은 씬이나 리소스, 스크립트를 포함한 프로젝트 전체를 Godot 3에서 Godot 4에 " +"맞게 변환합니다.\n" +"\n" +"이것은 가장 힘이 덜 드는 선택지이지만, 그렇다고 해도 프로젝트가 아무 문제 없" +"이 작동하지는 않을 것이며 여전히 여러 것들을 수동으로 조정해주어야 할 것입니" +"다.\n" +"\n" +"중요: 반드시 변환하기 전에 프로젝트를 어딘가에 백업해 두세요. 변환을 수행하면 " +"이전 버전의 Godot에서 프로젝트를 열지 못하게 됩니다." + msgid "Can't run project" msgstr "프로젝트를 실행할 수 없습니다" @@ -13571,6 +13812,11 @@ msgstr "" "\"최소 SDK\"는 \"Gradle 빌드 사용\"가 활성화된 경우에만 오버라이드할 수 있습니" "다." +msgid "" +"\"Target SDK\" can only be overridden when \"Use Gradle Build\" is enabled." +msgstr "" +"\"대상 SDK\"는 \"Use Gradle Build\"가 활성화된 경우에만 재정의할 수 있습니다." + msgid "Select device from the list" msgstr "목록에서 기기 선택" @@ -13872,33 +14118,111 @@ msgstr "프로젝트 시작 중..." msgid "Can't get filesystem access." msgstr "파일시스템 접근 권한을 얻지 못했습니다." +msgid "Invalid Info.plist, no exe name." +msgstr "잘못된 Info.plist. exe 이름이 없습니다." + +msgid "Invalid Info.plist, can't load." +msgstr "잘못된 Info.plist. 로드할 수 없습니다." + msgid "Failed to create \"%s\" subfolder." msgstr "서브폴더 \"%s\"을(를) 만들 수 없습니다." +msgid "Invalid binary format." +msgstr "잘못된 바이너리 포맷." + +msgid "Failed to process nested resources." +msgstr "중첩된 리소스를 처리하지 못했습니다." + +msgid "Failed to get CodeResources hash." +msgstr "CodeResources 해시를 가져오지 못했습니다." + +msgid "Invalid entitlements file." +msgstr "잘못된 자격 파일." + +msgid "Invalid executable file." +msgstr "잘못된 실행 파일." + msgid "Invalid bundle identifier:" msgstr "잘못된 bundle 식별자:" +msgid "Apple Team ID is required for notarization." +msgstr "공증을 위해서 Apple Team ID가 필요합니다." + +msgid "Installer signing identity is required for App Store distribution." +msgstr "App Store 배포를 위해 설치 프로그램 서명 ID가 필요합니다." + +msgid "Code signing is required for App Store distribution." +msgstr "App Store 배포를 위해 코드 서명이 필요합니다." + +msgid "Code signing is required for notarization." +msgstr "공증을 위해서 코드 서명이 필요합니다." + +msgid "Apple ID password not specified." +msgstr "Apple ID 비밀번호가 지정되지 않았습니다." + +msgid "App Store Connect issuer ID name not specified." +msgstr "App Store Connect 발급자 ID 이름이 지정되지 않았습니다." + +msgid "Icon Creation" +msgstr "아이콘 생성" + msgid "Could not open icon file \"%s\"." msgstr "아이콘 파일 \"%s\"를 열 수 없습니다." +msgid "Notarization" +msgstr "공증" + +msgid "Could not start rcodesign executable." +msgstr "rcodesign 실행 파일을 시작할 수 없습니다." + msgid "Could not start xcrun executable." msgstr "xcrun 실행 파일을 시작하지 못했습니다." msgid "Cannot sign file %s." msgstr "파일 %s를 서명할 수 없습니다." +msgid "PKG Creation" +msgstr "PKG 생성" + +msgid "Could not start productbuild executable." +msgstr "productbuild 실행 파일을 시작할 수 없었습니다." + +msgid "DMG Creation" +msgstr "DMG 생성" + msgid "Could not start hdiutil executable." msgstr "hdiutil 실행 파일을 시작할 수 없었습니다." +msgid "Creating app bundle" +msgstr "앱 번들 생성" + msgid "Could not find template app to export: \"%s\"." msgstr "내보낼 템플릿 앱을 찾을 수 없음: \"%s\"." msgid "Invalid export format." msgstr "잘못된 내보내기 템플릿입니다." +msgid "Could not create directory: \"%s\"." +msgstr "디렉토리를 만들 수 없음: \"%s\"." + +msgid "Could not create directory \"%s\"." +msgstr "디렉토리를 만들 수 없음: \"%s\"." + msgid "Could not created symlink \"%s\" -> \"%s\"." msgstr "바로가기 파일 \"%s\" -> \"%s\"를 만들 수 없습니다." +msgid "Could not open \"%s\"." +msgstr "\"%s\"를 열 수 없습니다." + +msgid "Entitlements Modified" +msgstr "수정된 자격" + +msgid "Could not create entitlements file." +msgstr "자격 파일을 만들 수 없습니다." + +msgid "Could not create helper entitlements file." +msgstr "도우미 자격 파일을 생성할 수 없습니다." + msgid "Invalid package short name." msgstr "잘못된 패키지 단축 이름." @@ -14624,6 +14948,13 @@ msgstr "" "ReflectionProbes는 아직 GL 호환성 백엔드에서 지원되지 않습니다. 추후 릴리즈에" "서 지원될 예정입니다." +msgid "" +"The \"Remote Path\" property must point to a valid Node3D or Node3D-derived " +"node to work." +msgstr "" +"\"원격 경로(Remote Path)\" 속성이 작동하려면 유효한 Node3D 또는 Node3D 파생 노" +"드를 가리켜야 합니다." + msgid "" "This node cannot interact with other objects unless a Shape3D is assigned." msgstr "" @@ -14676,11 +15007,35 @@ msgstr "" "VoxelGI 데이터가 설정되지 않아서 이 노드는 비활성화되었습니다. 스태틱 오브젝트" "를 구워서 GI를 활성화하세요." +msgid "" +"To have any visible effect, WorldEnvironment requires its \"Environment\" " +"property to contain an Environment, its \"Camera Attributes\" property to " +"contain a CameraAttributes resource, or both." +msgstr "" +"가시적인 효과를 가지려면 WorldEnvironment에는 환경을 포함하는 \"Environment\" " +"속성, CameraAttributes 리소스를 포함하는 \"Camera Attributes\" 속성, 또는 두 " +"가지 모두가 필요합니다." + msgid "" "Only one WorldEnvironment is allowed per scene (or set of instantiated " "scenes)." msgstr "씬(또는 인스턴스된 씬들마다) 당 WorldEnvironment는 하나만 허용됩니다." +msgid "XRCamera3D must have an XROrigin3D node as its parent." +msgstr "XRCamera3D의 부모 노드는 반드시 XROrigin3D이어야 합니다." + +msgid "XRController3D must have an XROrigin3D node as its parent." +msgstr "XRController3D의 부모 노드는 반드시 XROrigin3D 노드여야 합니다." + +msgid "No tracker name is set." +msgstr "트래커 이름이 설정되지 않았습니다." + +msgid "No pose is set." +msgstr "설정된 포즈가 없습니다." + +msgid "XROrigin3D requires an XRCamera3D child node." +msgstr "XROrigin3D는 자식으로 XRCamera3D 노드가 필요합니다." + msgid "On BlendTree node '%s', animation not found: '%s'" msgstr "BlendTree 노드 '%s'에서, 애니메이션을 찾을 수 없음: '%s'" @@ -14990,6 +15345,9 @@ msgstr "미리보기에 잘못된 소스." msgid "Invalid source for shader." msgstr "셰이더에 잘못된 소스." +msgid "Invalid operator for that type." +msgstr "해당 타입에 잘못된 연산자." + msgid "Default Color" msgstr "기본 색" @@ -15002,6 +15360,18 @@ msgstr "반복" msgid "Invalid comparison function for that type." msgstr "해당 타입에 잘못된 비교 함수." +msgid "2D Mode" +msgstr "2D 모드" + +msgid "Use All Surfaces" +msgstr "모든 서피스 사용" + +msgid "Surface Index" +msgstr "서피스 인덱스" + +msgid "Varyings cannot be passed for the '%s' parameter." +msgstr "Varying은 '%s' 매개변수로 전달될 수 없습니다." + msgid "Invalid arguments for the built-in function: \"%s(%s)\"." msgstr "내장 함수에 잘못된 인수가 들어감: \"%s(%s)\"." @@ -15014,6 +15384,18 @@ msgstr "상수 표현식이 와야 합니다." msgid "Varying may not be assigned in the '%s' function." msgstr "Varying은 '%s' 함수에서 할당되지 않을 수 있습니다." +msgid "" +"Varying with '%s' data type may only be assigned in the 'fragment' function." +msgstr "" +"'%s' 데이터 타입으로 변경하는 것은 'fragment' 함수에서만 할당될 수 있습니다." + +msgid "" +"Varyings which assigned in 'vertex' function may not be reassigned in " +"'fragment' or 'light'." +msgstr "" +"'vertex' 함수에서 할당된 Varying은 'fragment' 또는 'light'에서 재할당되지 않" +"을 수 있습니다." + msgid "Assignment to function." msgstr "함수에 대입할 수 없습니다." @@ -15365,6 +15747,13 @@ msgstr "인스턴스 인덱스는 음수일 수 없습니다." msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "허용되는 인스턴스 균일 인덱스는 [0..%d] 범위 내에 있어야 합니다." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"backend." +msgstr "" +"'hint_normal_roughness_texture'은 Forward+ 백엔드를 사용할 때만 사용할 수 있습" +"니다." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture'는 '%s' 셰이더에서 지원되지 않습니다." diff --git a/editor/translations/editor/pl.po b/editor/translations/editor/pl.po index 83a75304567d..b8613617b900 100644 --- a/editor/translations/editor/pl.po +++ b/editor/translations/editor/pl.po @@ -85,7 +85,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-17 11:10+0000\n" +"PO-Revision-Date: 2023-08-24 14:56+0000\n" "Last-Translator: Tomek \n" "Language-Team: Polish \n" @@ -193,6 +193,9 @@ msgstr "Powrót, Sony wybór, Xbox powrót, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Przewodnik, Sony PS, Xbox Home" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Start, Xbox Menu, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Lewy drążek, Sony L3, Xbox L/LS" @@ -1231,6 +1234,9 @@ msgstr "Numer linii:" msgid "%d replaced." msgstr "%d zamieniono." +msgid "No match" +msgstr "Brak dopasowania" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d dopasowanie" @@ -3067,6 +3073,9 @@ msgstr "Błąd podczas analizy pliku \"%s\"." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "Plik sceny \"%s\" wydaje się być nieprawidłowy/uszkodzony." +msgid "Missing file '%s' or one of its dependencies." +msgstr "Brakuje pliku \"%s\" lub jednej z jego zależności." + msgid "Error while loading file '%s'." msgstr "Błąd podczas wczytywania pliku \"%s\"." @@ -4010,7 +4019,7 @@ msgid "Shortcuts" msgstr "Skróty" msgid "Binding" -msgstr "Wiązanie" +msgstr "Przypisanie" msgid "Left Stick Left, Joystick 0 Left" msgstr "Lewa gałka w lewo, Joystick 0 w lewo" @@ -12406,6 +12415,14 @@ msgstr "Metadane kontroli wersji:" msgid "Git" msgstr "Git" +msgid "This project was last edited in a different Godot version: " +msgstr "Ten projekt był ostatnio edytowany w innej wersji Godota: " + +msgid "This project uses features unsupported by the current build:" +msgstr "" +"Ten projekt używa funkcjonalności niewspieranych przez aktualnie używaną " +"wersję:" + msgid "Error: Project is missing on the filesystem." msgstr "Błąd: Projekt nieobecny w systemie plików." @@ -12548,6 +12565,15 @@ msgstr "" "modułu Mono. Jeśli kontynuujesz, nie będziesz mógł uzywać skryptów C#.\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"Ostrzeżenie: Ten projekt był ostatnio edytowany w wersji Godota %s. Otwarcie " +"zmieni go do wersji do Godota %s.\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -12690,6 +12716,28 @@ msgstr "Usuń także projekt (nie można cofnąć!)" msgid "Convert Full Project" msgstr "Przekonwertuj cały projekt" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3 to work in Godot 4.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"Ta opcja spowoduje pełną konwersję projektu, aktualizację scen, zasobów i " +"skryptów z Godota 3 do Godota 4.\n" +"\n" +"Miej na uwadze, że konwersja zostanie przeprowadzona w najlepszy możliwy " +"sposób, dzięki czemu aktualizacja będzie łatwiejsza, ale nadal będą wymagane " +"ręczne poprawki.\n" +"\n" +"WAŻNE: Upewnij się, że przed konwersją zrobiłeś kopię zapasową swojego " +"projektu, ponieważ przeprowadzenie konwersji uniemożliwi jego otwarcie w " +"starszych wersjach Godota." + msgid "Can't run project" msgstr "Nie można uruchomić projektu" @@ -16625,6 +16673,13 @@ msgstr "Indeks instancji nie może być ujemny." msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "Dozwolone indeksy uniformów instancji muszą być w zakresie [0..%d]." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"backend." +msgstr "" +"'hint_normal_roughness_texture' jest dostępne tylko, gdy użyty jest backend " +"Przedni+." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture' nie jest obsługiwany w shaderach '%s'." diff --git a/editor/translations/editor/pt_BR.po b/editor/translations/editor/pt_BR.po index fc30a9cd9837..f572a053bc16 100644 --- a/editor/translations/editor/pt_BR.po +++ b/editor/translations/editor/pt_BR.po @@ -167,13 +167,15 @@ # Daniel Mucciolo , 2023. # Guilherme , 2023. # Glayson Olivieri , 2023. +# Jose Delvani , 2023. +# Romildo Franco , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2023-07-27 22:43+0000\n" -"Last-Translator: Joel Gomes da Silva \n" +"PO-Revision-Date: 2023-09-08 06:21+0000\n" +"Last-Translator: Romildo Franco \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -181,7 +183,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Restaurar" @@ -279,6 +281,9 @@ msgstr "Voltar, Sony Select, Xbox Back, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Menu, Sony PS, Xbox Home" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Iniciar, Menu Xbox, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Alavanca Esquerda, Sony L3, Xbox L/LS" @@ -1283,6 +1288,9 @@ msgstr "Gerar Animação" msgid "3D Pos/Rot/Scl Track:" msgstr "Faixa de Pos/Rot/Esc 3D:" +msgid "Blendshape Track:" +msgstr "Trilha Blendshape:" + msgid "Value Track:" msgstr "Faixa de valor:" @@ -1313,6 +1321,9 @@ msgstr "Número da Linha:" msgid "%d replaced." msgstr "%d substituído." +msgid "No match" +msgstr "Sem correspondência" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d correspondência" @@ -1572,6 +1583,15 @@ msgstr "" msgid "Toggle Visibility" msgstr "Alternar Visibilidade" +msgid "Updating assets on target device:" +msgstr "Atualizando recursos no dispositivo alvo:" + +msgid "Syncing headers" +msgstr "Sincronizando cabeçalhos" + +msgid "Getting remote file system" +msgstr "Obtendo o sistema de arquivos remoto" + msgid "Decompressing remote file system" msgstr "Descompactando o sistema de arquivos remoto" @@ -3143,6 +3163,9 @@ msgstr "Erro ao processar o arquivo '%s'." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "O arquivo de cena '%s' parece ser inválido/corrompido." +msgid "Missing file '%s' or one of its dependencies." +msgstr "Arquivo '%s' ausente ou uma de suas dependências." + msgid "Error while loading file '%s'." msgstr "Erro ao carregar o arquivo '%s'." @@ -3378,9 +3401,7 @@ msgstr "" "falhou." msgid "Unable to find script field for addon plugin at: '%s'." -msgstr "" -"Não foi possível encontrar o campo de script para o plugin em: 'res://addons/" -"%s'." +msgstr "Não foi possível encontrar o campo script para o plugin em: '%s'." msgid "Unable to load addon script from path: '%s'." msgstr "" @@ -3430,6 +3451,9 @@ msgstr "Limpar Cenas Recentes" msgid "There is no defined scene to run." msgstr "Não há cena definida para rodar." +msgid "%s - Godot Engine" +msgstr "%s - Godot Engine" + msgid "" "No main scene has ever been defined, select one?\n" "You can change it later in \"Project Settings\" under the 'application' " @@ -3995,6 +4019,9 @@ msgstr "Traduções da String (quantidade: %d)" msgid "Add Translation" msgstr "Adicionar Tradução" +msgid "Lock/Unlock Component Ratio" +msgstr "Relação de componente de bloqueio/desbloqueio" + msgid "" "The selected resource (%s) does not match any type expected for this property " "(%s)." @@ -4060,6 +4087,12 @@ msgstr "" "Não foi possível executar o script do editor, você esqueceu de substituir o " "método '_run'?" +msgid "Undo: %s" +msgstr "Desfazer: %s" + +msgid "Redo: %s" +msgstr "Refazer: %s" + msgid "Edit Built-in Action" msgstr "Editar Ação Integrada" @@ -4147,6 +4180,12 @@ msgstr "Joystick 4 Acima" msgid "Joystick 4 Down" msgstr "Joystick 4 Abaixo" +msgid "or" +msgstr "Ou" + +msgid "Unicode" +msgstr "Padrão Unicode" + msgid "Joypad Axis %d %s (%s)" msgstr "Eixo do Joypad %d %s (%s)" @@ -4485,6 +4524,9 @@ msgstr "Recursos para exportar:" msgid "Delete preset '%s'?" msgstr "Apagar predefinição '%s'?" +msgid "(Inherited)" +msgstr "(Herdado)" + msgid "%s Export" msgstr "Exportar %s" @@ -4820,6 +4862,12 @@ msgstr "Expandir Pasta" msgid "Expand Hierarchy" msgstr "Expandir Hierarquia" +msgid "Collapse Hierarchy" +msgstr "Recolher hierarquia" + +msgid "Move/Duplicate To..." +msgstr "Mover/Duplicar para..." + msgid "Add to Favorites" msgstr "Adicionar aos Favoritos" @@ -7426,12 +7474,27 @@ msgstr "Criar Pontos de Emissão a Partir do Nó" msgid "Load Curve Preset" msgstr "Carregar Definição de Curva" +msgid "Add Curve Point" +msgstr "Adicionar ponto de curva" + msgid "Remove Curve Point" msgstr "Remover Ponto da Curva" msgid "Modify Curve Point" msgstr "Modificar Ponto da Curva" +msgid "Modify Curve Point's Tangents" +msgstr "Modifique as tangentes do ponto da curva" + +msgid "Modify Curve Point's Left Tangent" +msgstr "Modifique a tangente esquerda do ponto da curva" + +msgid "Modify Curve Point's Right Tangent" +msgstr "Modificar a tangente direita do ponto da curva" + +msgid "Toggle Linear Curve Point's Tangent" +msgstr "Alternar a tangente do ponto da curva linear" + msgid "Hold Shift to edit tangents individually" msgstr "Segure Shift para editar tangentes individualmente" @@ -7516,6 +7579,16 @@ msgstr "" "Quando esta opção está ativa, malhas e polígonos de navegação serão visíveis " "durante o projeto em execução." +msgid "Visible Avoidance" +msgstr "Evitação Visível" + +msgid "" +"When this option is enabled, avoidance objects shapes, radius and velocities " +"will be visible in the running project." +msgstr "" +"Quando esta opção estiver habilitada, as formas, raios e velocidades dos " +"objetos evitados ficarão visíveis no projeto em execução." + msgid "Synchronize Scene Changes" msgstr "Sincronizar Mudanças de Cena" @@ -7569,6 +7642,9 @@ msgstr "Tamanho: %s" msgid "Type: %s" msgstr "Tipo: %s" +msgid "Dimensions: %d × %d" +msgstr "Dimensões: %d × %d" + msgid "Overrides (%d)" msgstr "Sobrescreveu (%d)" @@ -7774,6 +7850,9 @@ msgstr "Gradiente Editado" msgid "Reverse/mirror gradient." msgstr "Gradiente reverso/espelhado." +msgid "Move GradientTexture2D Fill Point" +msgstr "Mover ponto de preenchimento GradientTexture2D" + msgid "Swap GradientTexture2D Fill Points" msgstr "Trocar Pontos de Preenchimento do GradientTexture2D" @@ -8119,6 +8198,9 @@ msgstr "Definir start_position" msgid "Set end_position" msgstr "Definir end_position" +msgid "Set NavigationObstacle3D Vertices" +msgstr "Definir Vértices do NavigationObstacle3D" + msgid "Edit Vertices" msgstr "Editar Vértices" @@ -8224,6 +8306,9 @@ msgstr "Tamanho: %s (%.1fMP)\n" msgid "Objects: %d\n" msgstr "Objetos: %d\n" +msgid "Primitives: %d\n" +msgstr "Primitivos: %d\n" + msgid "Draw Calls: %d" msgstr "Chamadas de Desenho: %d" @@ -9222,6 +9307,9 @@ msgstr "Ir para o documento editado anteriormente." msgid "Go to next edited document." msgstr "Ir para o próximo documento editado." +msgid "Make the script editor floating." +msgstr "Torne o editor de script flutuante." + msgid "Discard" msgstr "Descartar" @@ -9337,6 +9425,9 @@ msgstr "Mostrar Todas as Linhas" msgid "Evaluate Selection" msgstr "Avaliar Seleção" +msgid "Toggle Word Wrap" +msgstr "Alternar Quebra de Linha" + msgid "Trim Trailing Whitespace" msgstr "Apagar Espaços em Branco" @@ -9412,6 +9503,9 @@ msgstr "Abrir Arquivo no Inspetor" msgid "Close File" msgstr "Fechar Arquivo" +msgid "Make the shader editor floating." +msgstr "Torne o editor de shader flutuante." + msgid "No valid shader stages found." msgstr "Não foi encontrado estágio válido de Shader." @@ -9639,6 +9733,9 @@ msgstr "Filtrar Animações" msgid "Delete Animation" msgstr "Excluir Animação" +msgid "This resource does not have any animations." +msgstr "Este recurso não possui animações." + msgid "Animation Frames:" msgstr "Quadros da Animação:" @@ -9678,6 +9775,9 @@ msgstr "Selecionar Quadros" msgid "Frame Order" msgstr "Ordem do Quadro" +msgid "As Selected" +msgstr "Conforme selecionado" + msgid "By Row" msgstr "Por Linha" @@ -9696,6 +9796,24 @@ msgstr "Direita para Esquerda, Baixo para Cima" msgid "By Column" msgstr "Por Coluna" +msgid "Top to Bottom, Left to Right" +msgstr "De cima para baixo, da esquerda para a direita" + +msgid "Top to Bottom, Right to Left" +msgstr "De cima para baixo, da direita para a esquerda" + +msgid "Bottom to Top, Left to Right" +msgstr "De baixo para cima, da esquerda para a direita" + +msgid "Bottom to Top, Right to Left" +msgstr "De baixo para cima, da direita para a esquerda" + +msgid "Select None" +msgstr "Selecionar nenhum" + +msgid "Toggle Settings Panel" +msgstr "Alternar painel de configurações" + msgid "Horizontal" msgstr "Horizontal" @@ -10407,6 +10525,12 @@ msgstr "Inverter Horizontalmente" msgid "Flip Vertically" msgstr "Inverter Verticalmente" +msgid "Disable Snap" +msgstr "Desativar Snap" + +msgid "Half-Pixel Snap" +msgstr "Snap de meio pixel" + msgid "Painting Tiles Property" msgstr "Propriedade Pintar Tiles" @@ -10452,6 +10576,9 @@ msgstr "Tile com Cena Inválida" msgid "Delete tiles" msgstr "Excluir tiles" +msgid "Drawing Rect:" +msgstr "Desenho Reto:" + msgid "Change selection" msgstr "Mudar Seleção" @@ -10512,6 +10639,13 @@ msgstr "Espalhamento:" msgid "Tiles" msgstr "Tiles" +msgid "" +"This TileMap's TileSet has no source configured. Go to the TileSet bottom tab " +"to add one." +msgstr "" +"O TileSet deste TileMap não tem fonte configurada. Vá para a guia inferior " +"TileSet para adicionar um." + msgid "Sort sources" msgstr "Classificar fontes" @@ -10587,6 +10721,13 @@ msgstr "Alterna visibilidade da grade." msgid "Automatically Replace Tiles with Proxies" msgstr "Automaticamente Substitui Tiles com Proxies" +msgid "" +"The edited TileMap node has no TileSet resource.\n" +"Create or load a TileSet resource in the Tile Set property in the inspector." +msgstr "" +"O nó TileMap editado não possui recurso TileSet.\n" +"Crie ou carregue um recurso TileSet na propriedade Tile Set no inspetor." + msgid "Remove Tile Proxies" msgstr "Remover Proxies de Tile" @@ -10804,6 +10945,15 @@ msgstr "Abrir Ferramenta de Mesclagem do Atlas" msgid "Manage Tile Proxies" msgstr "Gerenciar Proxies Tile" +msgid "" +"No TileSet source selected. Select or create a TileSet source.\n" +"You can create a new source by using the Add button on the left or by " +"dropping a tileset texture onto the source list." +msgstr "" +"Nenhuma fonte TileSet selecionada. Selecione ou crie uma fonte TileSet.\n" +"Você pode criar uma nova fonte usando o botão Adicionar à esquerda ou " +"soltando uma textura de mosaico na lista de fontes." + msgid "Add new patterns in the TileMap editing mode." msgstr "Adicione novos padrões no modo de edição TileMap." @@ -12371,6 +12521,13 @@ msgstr "Controle de Versão:" msgid "Git" msgstr "Git" +msgid "This project was last edited in a different Godot version: " +msgstr "" +"Este projeto foi editado pela última vez em uma versão diferente do Godot: " + +msgid "This project uses features unsupported by the current build:" +msgstr "Este projeto usa recursos não suportados pela compilação atual:" + msgid "Error: Project is missing on the filesystem." msgstr "Erro: Projeto não encontrado no sistema de arquivos." @@ -12511,6 +12668,15 @@ msgstr "" "o módulo mono. Se você continuar, não poderá usar nenhum script C#.\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"Aviso: Este projeto foi editado pela última vez em Godot %s. A abertura o " +"mudará para Godot %s.\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -12546,6 +12712,18 @@ msgstr "" msgid "Are you sure to run %d projects at once?" msgstr "Tem certeza de que deseja executar %d projetos de modo simultâneo?" +msgid "Tag name can't be empty." +msgstr "O nome da tag não pode estar vazio." + +msgid "Tag name can't contain spaces." +msgstr "O nome da tag não pode conter espaços." + +msgid "These characters are not allowed in tags: %s." +msgstr "Estes caracteres não são permitidos em tags: %s." + +msgid "Tag name must be lowercase." +msgstr "O nome da tag deve estar em letras minúsculas." + msgid "Remove %d projects from the list?" msgstr "Remover %d projetos da lista?" @@ -12597,6 +12775,9 @@ msgstr "Carregando, por favor aguarde..." msgid "Last Edited" msgstr "Última Modificação" +msgid "Tags" +msgstr "Tags" + msgid "New Project" msgstr "Novo Projeto" @@ -12612,6 +12793,9 @@ msgstr "Escanear Projetos" msgid "Edit Project" msgstr "Editar Projeto" +msgid "Manage Tags" +msgstr "Gerenciar tags" + msgid "Remove Project" msgstr "Remover Projeto" @@ -12636,6 +12820,27 @@ msgstr "Também deletar os conteúdos do projeto (não pode ser desfeito!)" msgid "Convert Full Project" msgstr "Converter Projeto Completo" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3 to work in Godot 4.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"Esta opção realizará a conversão completa do projeto, atualizando cenas, " +"recursos e scripts do Godot 3 para funcionar no Godot 4.\n" +"\n" +"Observe que esta é uma conversão de melhor esforço, ou seja, facilita a " +"atualização do projeto, mas não será aberta imediatamente e ainda exigirá " +"ajustes manuais.\n" +"\n" +"IMPORTANTE: Certifique-se de fazer backup do seu projeto antes de converter, " +"pois esta operação impossibilita a abertura em versões mais antigas do Godot." + msgid "Can't run project" msgstr "Não é possível executar o projeto" @@ -12646,9 +12851,27 @@ msgstr "" "Você não tem nenhum projeto no momento.\n" "Gostaria de explorar projetos de exemplos oficiais na Biblioteca de Recursos?" +msgid "Manage Project Tags" +msgstr "Gerenciar tags de projeto" + +msgid "Project Tags" +msgstr "Tags de Projeto" + +msgid "Click tag to remove it from the project." +msgstr "Clique na tag para removê-la do projeto." + +msgid "All Tags" +msgstr "Todas as Tags" + +msgid "Click tag to add it to the project." +msgstr "Clique na tag para adicioná-la ao projeto." + msgid "Create New Tag" msgstr "Criar Nova Tag" +msgid "Tags are capitalized automatically when displayed." +msgstr "As tags são capitalizadas automaticamente quando exibidas." + msgid "Add Project Setting" msgstr "Adicionar Configuração ao Projeto" @@ -12838,6 +13061,9 @@ msgstr "Nome de arquivo inválido." msgid "File already exists." msgstr "O arquivo já existe." +msgid "Root node valid." +msgstr "Nó raiz válido." + msgid "Invalid root node name." msgstr "Nome de nó raiz inválido." @@ -12934,6 +13160,9 @@ msgstr "Excluir nó \"%s\" e seus filhos?" msgid "Delete node \"%s\"?" msgstr "Excluir o nó \"%s\"?" +msgid "Some nodes are referenced by animation tracks." +msgstr "Alguns nós são referenciados por faixas de animação." + msgid "Saving the branch as a scene requires having a scene open in the editor." msgstr "" "Para salvar o ramo como cena é necessário ter uma cena aberta no editor." @@ -13093,6 +13322,9 @@ msgstr "Carregar como Substituto" msgid "Auto Expand to Selected" msgstr "Auto Expandir Selecionados" +msgid "All Scene Sub-Resources" +msgstr "Todos os sub-recursos de cena" + msgid "Filters" msgstr "Filtros" @@ -13130,6 +13362,9 @@ msgstr "Colar Nó(s)" msgid " at %s" msgstr " em %s" +msgid "(used %d times)" +msgstr "(usado %d vezes)" + msgid "Add Child Node" msgstr "Adicionar Nó Filho" @@ -13182,6 +13417,9 @@ msgstr "" "toda vez que atualizar.\n" "Volte para o painel da árvore de cena Local para melhorar o desempenho." +msgid "Delete Related Animation Tracks" +msgstr "Excluir faixas de animação relacionadas" + msgid "Clear Inheritance? (No Undo!)" msgstr "Limpar Herança? (Irreversível!)" @@ -13360,6 +13598,16 @@ msgstr "O nome '%s' é uma palavra-chave reservada da linguagem de shader." msgid "Add Shader Global Parameter" msgstr "Adicionar Parâmetro Global Shader" +msgid "Make this panel floating in the screen %d." +msgstr "Faça este painel flutuar na tela %d." + +msgid "" +"Make this panel floating.\n" +"Right click to open the screen selector." +msgstr "" +"Torne este painel flutuante.\n" +"Clique com o botão direito para abrir o seletor de tela." + msgid "Select Screen" msgstr "Selecionar tela" @@ -13735,18 +13983,29 @@ msgstr "Por favor, selecione um MultiplayerSynchronizer primeiro." msgid "The MultiplayerSynchronizer needs a root path." msgstr "O MultiplayerSynchronizer precisa de um caminho raiz." +msgid "" +"Each MultiplayerSynchronizer can have no more than 64 watched properties." +msgstr "" +"Cada MultiplayerSynchronizer não pode ter mais de 64 propriedades monitoradas." + msgid "Set spawn property" msgstr "Definir propriedade de geração" msgid "Set sync property" msgstr "Definir propriedade de sincronização" +msgid "Set watch property" +msgstr "Definir propriedade do relógio" + msgid "Delete Property?" msgstr "Excluir Propriedade?" msgid "Remove Property" msgstr "Remover Propriedade" +msgid "Property of this type not supported." +msgstr "Propriedade deste tipo não é suportada." + msgid "" "A valid NodePath must be set in the \"Spawn Path\" property in order for " "MultiplayerSpawner to be able to spawn Nodes." @@ -13998,6 +14257,20 @@ msgstr "Executando no dispositivo..." msgid "Could not execute on device." msgstr "Não foi possível executar no dispositivo." +msgid "" +"Exporting to Android is currently not supported in Godot 4 when using C#/." +"NET. Use Godot 3 to target Android with C#/Mono instead." +msgstr "" +"Atualmente, a exportação para Android não é suportada no Godot 4 ao usar C#/." +"NET. Em vez disso, use o Godot 3 para direcionar o Android com C#/Mono." + +msgid "" +"If this project does not use C#, use a non-C# editor build to export the " +"project." +msgstr "" +"Se este projeto não usar C#, use uma compilação de editor não C# para " +"exportar o projeto." + msgid "" "Android build template not installed in the project. Install it from the " "Project menu." @@ -14212,6 +14485,9 @@ msgstr "Alinhando APK..." msgid "Could not unzip temporary unaligned APK." msgstr "Não foi possível descompactar o APK temporário não alinhado." +msgid "App Store Team ID not specified." +msgstr "ID da equipe da App Store não especificada." + msgid "Invalid Identifier:" msgstr "Identificador Inválido:" @@ -14247,6 +14523,13 @@ msgstr "" ".ipa só pode ser criado no macOS. Saindo do projeto Xcode sem compilar o " "pacote." +msgid "" +"Exporting to iOS is currently not supported in Godot 4 when using C#/.NET. " +"Use Godot 3 to target iOS with C#/Mono instead." +msgstr "" +"A exportação para iOS atualmente não é suportada no Godot 4 ao usar C#/.NET. " +"Em vez disso, use o Godot 3 para direcionar o iOS com C#/Mono." + msgid "Identifier is missing." msgstr "Identificador está ausente." @@ -14259,6 +14542,12 @@ msgstr "Exportar Script de Depuração" msgid "Could not open file \"%s\"." msgstr "Não foi possível abrir o arquivo \"%s\"." +msgid "Debug Console Export" +msgstr "Exportação do console de depuração" + +msgid "Could not create console wrapper." +msgstr "Não foi possível criar o wrapper do console." + msgid "Failed to open executable file \"%s\"." msgstr "Falha ao abrir o arquivo executável \"%s\"." @@ -14361,6 +14650,37 @@ msgstr "Tipo de objeto desconhecido." msgid "Invalid bundle identifier:" msgstr "Identificador de pacote inválido:" +msgid "App Store distribution with ad-hoc code signing is not supported." +msgstr "" +"A distribuição da App Store com assinatura de código ad-hoc não é suportada." + +msgid "Notarization with an ad-hoc signature is not supported." +msgstr "Notarização com uma assinatura ad-hoc não é suportada." + +msgid "Apple Team ID is required for App Store distribution." +msgstr "O Apple Team ID é necessário para distribuição na App Store." + +msgid "Apple Team ID is required for notarization." +msgstr "O Apple Team ID é necessário para reconhecimento de firma." + +msgid "Provisioning profile is required for App Store distribution." +msgstr "" +"O perfil de provisionamento é necessário para distribuição na App Store." + +msgid "Installer signing identity is required for App Store distribution." +msgstr "" +"A identidade de assinatura do instalador é necessária para distribuição na " +"App Store." + +msgid "App sandbox is required for App Store distribution." +msgstr "A sandbox do aplicativo é necessária para distribuição na App Store." + +msgid "Code signing is required for App Store distribution." +msgstr "A assinatura do código é necessária para distribuição na App Store." + +msgid "Code signing is required for notarization." +msgstr "A assinatura do código é necessária para reconhecimento de firma." + msgid "" "Neither Apple ID name nor App Store Connect issuer ID name not specified." msgstr "" @@ -14383,6 +14703,36 @@ msgstr "App Store Connect API key ID não foi especificado." msgid "App Store Connect issuer ID name not specified." msgstr "O nome do App Store Connect issuer ID não foi especificado." +msgid "Microphone access is enabled, but usage description is not specified." +msgstr "" +"O acesso ao microfone está ativado, mas a descrição de uso não é especificada." + +msgid "Camera access is enabled, but usage description is not specified." +msgstr "" +"O acesso à câmera está ativado, mas a descrição de uso não é especificada." + +msgid "" +"Location information access is enabled, but usage description is not " +"specified." +msgstr "" +"O acesso às informações de localização está ativado, mas a descrição de uso " +"não está especificada." + +msgid "Address book access is enabled, but usage description is not specified." +msgstr "" +"O acesso ao catálogo de endereços está ativado, mas a descrição de uso não " +"está especificada." + +msgid "Calendar access is enabled, but usage description is not specified." +msgstr "" +"O acesso ao calendário está ativado, mas a descrição de uso não está " +"especificada." + +msgid "Photo library access is enabled, but usage description is not specified." +msgstr "" +"O acesso à biblioteca de fotos está ativado, mas a descrição de uso não é " +"especificada." + msgid "Icon Creation" msgstr "Criação de Ícone" @@ -14466,6 +14816,15 @@ msgstr "" "Links simbólicos relativos não são suportados, \"%s\" exportado pode estar " "quebrado!" +msgid "PKG Creation" +msgstr "Criação PKG" + +msgid "Could not start productbuild executable." +msgstr "Não foi possível iniciar o executável do productbuild." + +msgid "`productbuild` failed." +msgstr "`productbuild` falhou." + msgid "DMG Creation" msgstr "Criação de DMG" @@ -14542,6 +14901,9 @@ msgstr "Criando DMG" msgid "Code signing DMG" msgstr "Assinatura de código DMG" +msgid "Making PKG installer" +msgstr "Criando o instalador do PKG" + msgid "Making ZIP" msgstr "Criando ZIP" @@ -14659,6 +15021,13 @@ msgstr "Não foi possível ler o arquivo: \"%s\"." msgid "PWA" msgstr "PWA" +msgid "" +"Exporting to Web is currently not supported in Godot 4 when using C#/.NET. " +"Use Godot 3 to target Web with C#/Mono instead." +msgstr "" +"Atualmente, a exportação para a Web não é suportada no Godot 4 ao usar C#/." +"NET. Em vez disso, use Godot 3 para direcionar a Web com C#/Mono." + msgid "Could not read HTML shell: \"%s\"." msgstr "Não foi possível ler o shell HTML: \"%s\"." @@ -14819,6 +15188,13 @@ msgstr "" "Polígono inválido. Pelo menos 2 pontos são necessários no modo de construção " "de 'Segmentos'." +msgid "" +"The One Way Collision property will be ignored when the collision object is " +"an Area2D." +msgstr "" +"A propriedade One Way Collision será ignorada quando o objeto de colisão for " +"um Area2D." + msgid "" "CollisionShape2D only serves to provide a collision shape to a " "CollisionObject2D derived node. Please only use it as a child of Area2D, " @@ -14870,6 +15246,13 @@ msgstr "" "As trilhas de partículas estão disponíveis apenas ao usar o módulo de " "renderização Avançado+ ou Mobile." +msgid "" +"Particle sub-emitters are not available when using the GL Compatibility " +"rendering backend." +msgstr "" +"Os subemissores de partículas não estão disponíveis ao usar o back-end de " +"renderização de compatibilidade com GL." + msgid "Node A and Node B must be PhysicsBody2Ds" msgstr "O Nó A e o Nó B devem ser PhysicsBody2Ds" @@ -15203,6 +15586,13 @@ msgstr "" "Trilhas habilitadas, mas um ou mais materiais de malha estão ausentes ou não " "definidos para renderização de trilhas." +msgid "" +"Particle sub-emitters are only available when using the Forward+ or Mobile " +"rendering backends." +msgstr "" +"Os subemissores de partículas estão disponíveis apenas ao usar os back-ends " +"de renderização Forward+ ou Mobile." + msgid "" "The Bake Mask has no bits enabled, which means baking will not produce any " "collision for this GPUParticlesCollisionSDF3D.\n" @@ -15557,6 +15947,10 @@ msgstr "" msgid "Copy this constructor in a script." msgstr "Copiar este construtor em um script." +msgid "Enter a hex code (\"#ff0000\") or named color (\"red\")." +msgstr "" +"Insira um código hexadecimal (\"#ff0000\") ou uma cor nomeada (\"vermelho\")." + msgid "" "Color: #%s\n" "LMB: Apply color\n" @@ -15573,6 +15967,9 @@ msgstr "" "Cor: #%s\n" "LMB: Aplica cor" +msgid "Pick a color from the screen." +msgstr "Escolha uma cor na tela." + msgid "Pick a color from the application window." msgstr "Escolha uma cor na janela do aplicativo." @@ -15585,6 +15982,9 @@ msgstr "Selecione o modo do seletor." msgid "Switch between hexadecimal and code values." msgstr "Alterne entre valores hexadecimais e de código." +msgid "Hex code or named color" +msgstr "Código hexadecimal ou cor nomeada" + msgid "Add current color as a preset." msgstr "Adicionar cor atual como uma predefinição." @@ -15781,6 +16181,13 @@ msgstr "" "Este nó está marcado como experimental e pode estar sujeito a remoção ou " "grandes alterações em versões futuras." +msgid "" +"Default Environment as specified in the project setting \"rendering/" +"environment/defaults/default_environment\" could not be loaded." +msgstr "" +"O ambiente padrão conforme especificado na configuração do projeto " +"\"rendering/environment/defaults/default_environment\" não pôde ser carregado." + msgid "" "ShaderGlobalsOverride is not active because another node of the same type is " "in the scene." @@ -15828,6 +16235,15 @@ msgstr "Formato de textura BMFont não suportado." msgid "Invalid BMFont block type." msgstr "Tipo de bloco BMFont inválido." +msgid "" +"An incoming node's name clashes with %s already in the scene (presumably, " +"from a more nested instance).\n" +"The less nested node will be renamed. Please fix and re-save the scene." +msgstr "" +"O nome de um nó entrante conflita com %s já na cena (presumivelmente, de uma " +"instância mais aninhada).\n" +"O nó menos aninhado será renomeado. Corrija e salve novamente a cena." + msgid "" "Shader keywords cannot be used as parameter names.\n" "Choose another name." @@ -16367,6 +16783,13 @@ msgstr "" "Índices uniformes de instância permitidos devem estar dentro do intervalo [0.." "%d]." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"backend." +msgstr "" +"'hint_normal_roughness_texture' só está disponível ao usar o back-end " +"Forward+." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture' não é suportado em shaders '%s'." diff --git a/editor/translations/editor/ru.po b/editor/translations/editor/ru.po index bcbd4b97fefd..29e357581401 100644 --- a/editor/translations/editor/ru.po +++ b/editor/translations/editor/ru.po @@ -101,7 +101,7 @@ # mrvladus , 2021. # DΞLTΛ , 2021. # AngryPhilomel , 2021. -# Russkikh Michail , 2022. +# Russkikh Michail , 2022, 2023. # Alex_Faction , 2022. # Максим Легостаев , 2022. # dickus , 2022. @@ -151,13 +151,15 @@ # Artem Yaroshenko , 2023. # Толя Богомолов , 2023. # Quartin , 2023. +# 0eoc <0eoc@users.noreply.hosted.weblate.org>, 2023. +# 0que <0que@users.noreply.hosted.weblate.org>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-16 20:54+0000\n" -"Last-Translator: Quartin \n" +"PO-Revision-Date: 2023-09-07 02:32+0000\n" +"Last-Translator: Russkikh Michail \n" "Language-Team: Russian \n" "Language: ru\n" @@ -166,7 +168,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Не задано" @@ -264,6 +266,9 @@ msgstr "Назад, Sony Select, Xbox Back, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Руководство, Sony PS, Xbox Home" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Старт, Xbox Меню, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Левый стик, Sony L3, Xbox L/LS" @@ -289,7 +294,7 @@ msgid "D-pad Right" msgstr "D-pad вправо" msgid "Xbox Share, PS5 Microphone, Nintendo Capture" -msgstr "Xbox Share, PS5 Microphone, Nintendo Capture" +msgstr "Xbox Share, Микрофон PS5, Nintendo Capture" msgid "Xbox Paddle 1" msgstr "Xbox крестовина 1" @@ -1236,6 +1241,10 @@ msgctxt "Transition Type" msgid "Spring" msgstr "Пружина" +msgctxt "Ease Type" +msgid "In" +msgstr "Вход" + msgctxt "Ease Type" msgid "Out" msgstr "Выход" @@ -1296,6 +1305,9 @@ msgstr "Номер строки:" msgid "%d replaced." msgstr "%d заменено." +msgid "No match" +msgstr "Не совпадает" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d совпадает" @@ -3141,6 +3153,9 @@ msgstr "Ошибка при разборе файла '%s'." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "Файл сцены '%s' является недействительным/повреждённым." +msgid "Missing file '%s' or one of its dependencies." +msgstr "Не найден файл '%s' или одна из его зависимостей." + msgid "Error while loading file '%s'." msgstr "Ошибка при загрузке файла '%s'." @@ -4906,6 +4921,9 @@ msgstr "" msgid "Overwrite" msgstr "Перезаписать" +msgid "Keep Both" +msgstr "Оставить оба" + msgid "Create Script" msgstr "Создать скрипт" @@ -5202,7 +5220,7 @@ msgid "" "Hold Shift for more precise changes." msgstr "" "Зажмите %s, чтобы округлить до целых.\n" -" Зажмите Shift для более точных изменений." +"Зажмите Shift для более точных изменений." msgid "No notifications." msgstr "Нет уведомлений." @@ -7441,6 +7459,9 @@ msgstr "Изменить точку кривой" msgid "Modify Curve Point's Tangents" msgstr "Изменить касательные точки кривой" +msgid "Toggle Linear Curve Point's Tangent" +msgstr "Переключить Тангенс точки линейной кривой" + msgid "Hold Shift to edit tangents individually" msgstr "Удерживайте Shift, чтобы изменить касательные индивидуально" @@ -7524,6 +7545,9 @@ msgstr "" "Когда эта опция включена, навигационные меши и полигоны будут видны в " "запущенном проекте." +msgid "Visible Avoidance" +msgstr "Избегание видимости" + msgid "Synchronize Scene Changes" msgstr "Синхронизация изменений в сценах" @@ -7783,6 +7807,9 @@ msgstr "Градиент отредактирован" msgid "Reverse/mirror gradient." msgstr "Развернуть/отразить градиент." +msgid "Move GradientTexture2D Fill Point" +msgstr "Переместить точку заливки GradientTexture2D" + msgid "Swap GradientTexture2D Fill Points" msgstr "Поменять местами точки заливки GradientTexture2D" @@ -8542,6 +8569,15 @@ msgstr "" "Если к сцене добавляется узел DirectionalLight3D, предварительный просмотр " "солнечного света отключается." +msgid "" +"Toggle preview environment.\n" +"If a WorldEnvironment node is added to the scene, preview environment is " +"disabled." +msgstr "" +"Включить предварительный просмотр окружения.\n" +"Если в сцену добавлен узел WorldEnvironment, предварительный просмотр " +"окружения отключается." + msgid "Edit Sun and Environment settings." msgstr "Изменить настройки солнца и окружения." @@ -8758,6 +8794,21 @@ msgstr "" "Удерживайте Shift при нажатии, чтобы также добавить предпросмотр солнца к " "текущей сцене." +msgid "" +"No meshes to bake.\n" +"Make sure there is at least one MeshInstance3D node in the scene whose visual " +"layers are part of the OccluderInstance3D's Bake Mask property." +msgstr "" +"Нет сеток для запекания.\n" +"Убедитесь, что в сцене есть хотя бы один узел MeshInstance3D, визуальные слои " +"которого являются частью свойства Bake Mask OccluderInstance3D." + +msgid "Could not save the new occluder at the specified path:" +msgstr "Не удалось сохранить новый окклюдер по указанному пути:" + +msgid "Bake Occluders" +msgstr "Запечь окклюдеры" + msgid "Remove Point from Curve" msgstr "Удалить точку с кривой" @@ -9042,7 +9093,7 @@ msgid "Error while saving theme." msgstr "Ошибка при сохранении темы." msgid "Error Saving" -msgstr "Ошибка сохранения" +msgstr "Ошибка Сохранения" msgid "Error importing theme." msgstr "Ошибка импортирования темы." @@ -11681,6 +11732,9 @@ msgstr "" msgid "Version Control Metadata:" msgstr "Метаданные контроля версий:" +msgid "This project was last edited in a different Godot version: " +msgstr "В последний раз проект был изменён в другой версии Godot: " + msgid "Error: Project is missing on the filesystem." msgstr "Ошибка: Проект отсутствует в файловой системе." @@ -11824,6 +11878,15 @@ msgstr "" "модуля Mono. Если продолжить, вы не сможете использовать скрипты C#.\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"Внимание: Проект был создан в Godot %s. Открытие приведет к изменению на " +"Godot %s.\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -14293,6 +14356,39 @@ msgstr "" "Анимация частиц требует использования BaseMaterial3D, чей Billboard Mode " "установлен в \"Particle Billboard\"." +msgid "" +"Using Trail meshes with a skin causes Skin to override Trail poses. Suggest " +"removing the Skin." +msgstr "" +"Использование Trail сетки со скином заставляет Skin переопределить позы " +"Trail. Предлагаем удалить Skin." + +msgid "Trails active, but neither Trail meshes or a Skin were found." +msgstr "Trails активны, но ни сетки Trail, ни Skin не обнаружены." + +msgid "" +"Only one Trail mesh is supported. If you want to use more than a single mesh, " +"a Skin is needed (see documentation)." +msgstr "" +"Поддерживается только одна сетка Trail. Если вы хотите использовать более " +"одной сетки, необходимо установить Skin (см. документацию)." + +msgid "" +"Trails enabled, but one or more mesh materials are either missing or not set " +"for trails rendering." +msgstr "" +"Trails включен, но один или несколько материалов сетки либо отсутствуют, либо " +"не настроены для рендеринга Trails." + +msgid "" +"The Bake Mask has no bits enabled, which means baking will not produce any " +"collision for this GPUParticlesCollisionSDF3D.\n" +"To resolve this, enable at least one bit in the Bake Mask property." +msgstr "" +"В свойстве Bake Mask не включено ни одного бита, что означает, что запекание " +"не приведет к столкновениям для данного GPUParticlesCollisionSDF3D.\n" +"Чтобы решить эту проблему, включите хотя бы один бит в свойстве Bake Mask." + msgid "" "Shadows are not supported when using the GL Compatibility backend yet. " "Support will be added in a future release." @@ -14306,15 +14402,32 @@ msgstr "Масштабирование света не влияет на раз msgid "Projector texture only works with shadows active." msgstr "Текстура проекции работает только с включенными тенями." +msgid "" +"Projector textures are not supported when using the GL Compatibility backend " +"yet. Support will be added in a future release." +msgstr "" +"Текстуры проекторов пока не поддерживаются при использовании бэкенда GL " +"Compatibility. Поддержка будет добавлена в одном из следующих выпусков." + msgid "Creating probes" msgstr "Создание проб" +msgid "Creating probes from mesh %d/%d" +msgstr "Создание зондов из сетки %d/%d" + msgid "Generating Probe Volumes" msgstr "Генерация объёмов проб" msgid "Generating Probe Acceleration Structures" msgstr "Создание ускоряющих структур зонда" +msgid "" +"LightmapGI nodes are not supported when using the GL Compatibility backend " +"yet. Support will be added in a future release." +msgstr "" +"Узлы LightmapGI пока не поддерживаются при использовании бэкенда GL " +"Compatibility. Поддержка будет добавлена в одном из будущих выпусков." + msgid "" "NavigationLink3D start position should be different than the end position to " "be useful." @@ -14474,6 +14587,34 @@ msgstr "" msgid "(Other)" msgstr "(Другие)" +msgid "" +"This node was saved as class type '%s', which was no longer available when " +"this scene was loaded." +msgstr "" +"Этот узел был сохранён с типом класса \"%s\", более недоступного после " +"загрузки этой сцены." + +msgid "" +"This node is marked as deprecated and will be removed in future versions.\n" +"Please check the Godot documentation for information about migration." +msgstr "" +"Этот узел является устаревшим и будет удалён в следующих версиях.\n" +"Для получения информации о миграции, ознакомьтесь с документацией Godot." + +msgid "" +"This node is marked as experimental and may be subject to removal or major " +"changes in future versions." +msgstr "" +"Этот узел является экспериментальным и может быть удалён или значительно " +"изменён в следующих версиях." + +msgid "" +"ShaderGlobalsOverride is not active because another node of the same type is " +"in the scene." +msgstr "" +"ShaderGlobalsOverride неактивен, т.к. другой узел с таким же типом " +"присутствует в сцене." + msgid "" "Very low timer wait times (< 0.05 seconds) may behave in significantly " "different ways depending on the rendered or physics frame rate.\n" @@ -14582,15 +14723,61 @@ msgstr "" "Недопустимое количество аргументов при вызове функции стадии '%s', которая " "ожидает %d аргументов." +msgid "" +"Invalid argument type when calling stage function '%s', type expected is '%s'." +msgstr "" +"Неверный тип аргумента при вызове функции этапа \"%s\". Ожидаемый тип: \"%s\"." + +msgid "Expected integer constant within [%d..%d] range." +msgstr "Ожидалась целочисленная константа в диапазоне [%d..%d]." + +msgid "Argument %d of function '%s' is not a variable, array, or member." +msgstr "Аргумент %d функции \"%s\" не является переменной, массивом или членом." + msgid "Varyings cannot be passed for the '%s' parameter." msgstr "Для параметра '%s' не могут быть переданы вариации." +msgid "A constant value cannot be passed for the '%s' parameter." +msgstr "Константа не может быть передана для параметра \"%s\"." + +msgid "" +"Argument %d of function '%s' can only take a local variable, array, or member." +msgstr "" +"Аргумент %d функции \"%s\" может принимать только локальные переменные, " +"массивы или члены." + +msgid "Built-in function \"%s(%s)\" is only supported on high-end platforms." +msgstr "" +"Встроенная функция \"%s(%s)\" поддерживается только на современных/" +"производительных платформах." + msgid "Invalid arguments for the built-in function: \"%s(%s)\"." msgstr "Недопустимые аргументы для встроенной функции: \"%s(%s)\"." msgid "Recursion is not allowed." msgstr "Рекурсия запрещена." +msgid "Function '%s' can't be called from source code." +msgstr "Функция \"%s\" не может быть вызвана из исходного кода." + +msgid "" +"Invalid argument for \"%s(%s)\" function: argument %d should be %s but is %s." +msgstr "" +"Неправильный аргумент для функции \"%s(%s)\": аргумент %d должен быть %s, не " +"%s." + +msgid "" +"Too few arguments for \"%s(%s)\" call. Expected at least %d but received %d." +msgstr "" +"Слишком мало аргументов для вызова \"%s(%s)\". Ожидалось хотя бы %d, получено " +"%d." + +msgid "" +"Too many arguments for \"%s(%s)\" call. Expected at most %d but received %d." +msgstr "" +"Слишком много аргументов для вызова \"%s(%s)\". Ожидалось не более %d, " +"получено %d." + msgid "Invalid assignment of '%s' to '%s'." msgstr "Недопустимое присвоение '%s' в '%s'." @@ -14618,6 +14805,15 @@ msgstr "Назначить форму." msgid "Constants cannot be modified." msgstr "Константы не могут быть изменены." +msgid "Array size is already defined." +msgstr "Размер массива уже определён." + +msgid "Unknown array size is forbidden in that context." +msgstr "Неизвестный размер массива невозможен в этом контексте." + +msgid "Array size expressions are not supported." +msgstr "Выражения размера массива не поддерживаются." + msgid "Expected a positive integer constant." msgstr "Ожидалась целая положительная константа." @@ -14660,6 +14856,12 @@ msgid "Varying '%s' cannot be passed for the '%s' parameter in that context." msgstr "" "Varying '%s' не может быть передано для параметра '%s' в данном контексте." +msgid "A constant value cannot be passed for '%s' parameter." +msgstr "Значение константы не может передано параметру \"%s\"." + +msgid "Unknown identifier in expression: '%s'." +msgstr "Неизвестный идентификатор в выражении: \"%s\"." + msgid "Varying with '%s' data type may only be used in the 'fragment' function." msgstr "" "Varying с типом данных '%s' может быть использовано только в 'fragment' " @@ -14668,12 +14870,21 @@ msgstr "" msgid "Varying '%s' must be assigned in the 'fragment' function first." msgstr "Varying '%s' должны быть сначала назначены в 'fragment' функции." +msgid "Can't use function as identifier: '%s'." +msgstr "Невозможно использовать функцию в качестве идентификатора: \"%s\"." + +msgid "Only integer expressions are allowed for indexing." +msgstr "Только целочисленные выражения могут быть индексированы." + msgid "Expected expression, found: '%s'." msgstr "Ожидаемое выражение, найдено: '%s'." msgid "Invalid member for '%s' expression: '.%s'." msgstr "Недопустимый член для '%s': выражения '.%s'." +msgid "An object of type '%s' can't be indexed." +msgstr "Объекты типа \"%s\" не могут быть индексированы." + msgid "Unexpected end of expression." msgstr "Неожиданный конец выражения." @@ -14689,9 +14900,30 @@ msgstr "Недопустимые аргументы для оператора '% msgid "Invalid variable type (samplers are not allowed)." msgstr "Недопустимый тип переменной (сэмплеры не разрешены)." +msgid "Expected initialization of constant." +msgstr "Ожидалась инициализация константы." + +msgid "Expected a boolean expression." +msgstr "Ожидалось логическое выражение." + +msgid "Expected an integer expression." +msgstr "Ожидалось целочисленное выражение." + +msgid "Cases must be defined before default case." +msgstr "Варианты должны быть указаны перед вариантом по умолчанию." + +msgid "Default case must be defined only once." +msgstr "Вариант по умолчанию должен быть указан единожды." + msgid "Duplicated case label: %d." msgstr "Дублируется метка варианта: %d." +msgid "'%s' must be placed within a '%s' block." +msgstr "\"%s\" должен быть размещён внутри блока \"%s\"." + +msgid "Expected an integer constant." +msgstr "Ожидалась целочисленная константа." + msgid "Use of '%s' is not allowed here." msgstr "Использование '%s' здесь недопустимо." @@ -14770,6 +15002,9 @@ msgstr "Переопределение '%s'." msgid "Invalid argument name." msgstr "Недопустимое имя аргумента." +msgid "Unmatched elif." +msgstr "Несовпадающий elif." + msgid "Missing condition." msgstr "Пропущено условие." diff --git a/editor/translations/editor/sv.po b/editor/translations/editor/sv.po index a81e4b179d83..37e3880163e4 100644 --- a/editor/translations/editor/sv.po +++ b/editor/translations/editor/sv.po @@ -35,7 +35,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-08 18:02+0000\n" +"PO-Revision-Date: 2023-09-02 10:51+0000\n" "Last-Translator: Henrik Nilsson \n" "Language-Team: Swedish \n" @@ -44,7 +44,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Nollställ" @@ -142,6 +142,9 @@ msgstr "Tillbaka, Sony Select, XBox Back, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Guide, Sony PS, Xbox Home" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Start, Xbox meny, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Vänster Spak, Sony L3, XBox L/LS" @@ -1117,6 +1120,9 @@ msgstr "Radnummer:" msgid "%d replaced." msgstr "%d ersatt." +msgid "No match" +msgstr "Ingen träff" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d matcha" @@ -2267,6 +2273,13 @@ msgstr "" msgid "Error codes returned:" msgstr "Returnerade felkoder:" +msgid "" +"There is currently no description for this %s. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" +"Det finns för närvarande ingen beskrivning för denna %s. Snälla hjälp oss " +"genom att [color=$color][url=$url]bidra med en[/url][/color]!" + msgid "Top" msgstr "Topp" @@ -3182,6 +3195,9 @@ msgstr "Redigera Text:" msgid "On" msgstr "På" +msgid "Renaming layer %d:" +msgstr "Byter namn på lager %d:" + msgid "No name provided." msgstr "Inget namn har angetts." @@ -3191,6 +3207,9 @@ msgstr "Namnet innehåller ogiltiga tecken." msgid "Rename" msgstr "Byt namn" +msgid "Layer %d" +msgstr "Lager %d" + msgid "Assign..." msgstr "Tilldela..." @@ -3257,6 +3276,9 @@ msgstr "Kunde inte öppna filen för läsning från sökväg \"%s\"." msgid "Packing" msgstr "Packar" +msgid "Cannot create file \"%s\"." +msgstr "Kunde inte skapa fil \"%s\"." + msgid "Failed to export project files." msgstr "Misslyckades att exportera projektets filer." @@ -3290,6 +3312,9 @@ msgstr "PCK Inbäddning" msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB." msgstr "Den inbäddade PCK får inte vara större än 4 GiB på 32 bitars exporter." +msgid "There are no mirrors available." +msgstr "Det finns inga tillgängliga speglar." + msgid "Connecting to the mirror..." msgstr "Ansluter till spegeln..." @@ -3401,6 +3426,9 @@ msgstr "Körbar" msgid "(Inherited)" msgstr "(Ärvd)" +msgid "%s Export" +msgstr "%s Exportera" + msgid "Release" msgstr "Släpp" @@ -3455,6 +3483,9 @@ msgstr "Misslyckades att spara resurs till %s: %s" msgid "Failed to load resource at %s: %s" msgstr "Misslyckades att ladda resurs från %s: %s" +msgid "Unable to update dependencies:" +msgstr "Kunde inte uppdatera beroenden:" + msgid "A file or folder with this name already exists." msgstr "En fil eller mapp med detta namn finns redan." @@ -3464,6 +3495,9 @@ msgstr "Duplicerar fil:" msgid "New Inherited Scene" msgstr "Ny Ärvd Scen" +msgid "Create New" +msgstr "Skapa ny" + msgid "Add to Favorites" msgstr "Lägg till i Favoriter" @@ -3501,6 +3535,9 @@ msgstr "Skriv över" msgid "Create Script" msgstr "Skapa Skript" +msgid "Find in Files" +msgstr "Sök i filer" + msgid "Find:" msgstr "Hitta:" @@ -3744,6 +3781,9 @@ msgstr "2D" msgid "" msgstr "" +msgid "Import ID: %s" +msgstr "Importera ID: %s" + msgid "Error opening scene" msgstr "Fel vid öppning av scen" @@ -3857,9 +3897,15 @@ msgstr "Kopiera Resurs" msgid "Open documentation for this object." msgstr "Öppna dokumentationen för detta objektet." +msgid "Add %d Translations" +msgstr "Lägg till %d översättningar" + msgid "Remove Translation" msgstr "Ta bort Översättning" +msgid "%s cannot be found." +msgstr "%s kan ej hittas." + msgid "Translations" msgstr "Översättningar" @@ -3872,6 +3918,9 @@ msgstr "Resurser:" msgid "Set %s on %d nodes" msgstr "Sätt %s på %d noder" +msgid "%s (%d Selected)" +msgstr "%s (%d valda)" + msgid "Update" msgstr "Uppdatera" @@ -3944,15 +3993,27 @@ msgstr "Lägg Till Node..." msgid "Animation name can't be empty." msgstr "Animationsnamnet kan inte vara tomt." +msgid "Animation with the same name already exists." +msgstr "En animation med samma namn existerar redan." + msgid "Load Animation" msgstr "Ladda Animation" +msgid "Make Animation Unique: %s" +msgstr "Gör animation unik: %s" + msgid "Invalid AnimationLibrary file." msgstr "Ogiltig AnimationLibrary-fil." msgid "Invalid Animation file." msgstr "Ogiltig animationsfil." +msgid "Save Animation to File: %s" +msgstr "Spara animation till fil: %s" + +msgid "Rename Animation: %s" +msgstr "Byt namn på animation: %s" + msgid "Pasted Animation" msgstr "Inklistrad Animation" @@ -3980,9 +4041,15 @@ msgstr "Byt namn på Animation" msgid "Change Animation Name:" msgstr "Ändra Animationsnamn:" +msgid "Delete Animation '%s'?" +msgstr "Ta bort animation '%s'?" + msgid "Remove Animation" msgstr "Ta bort Animation" +msgid "Animation '%s' already exists!" +msgstr "Animation '%s' finns redan!" + msgid "Duplicate Animation" msgstr "Duplicera Animation" @@ -4360,9 +4427,24 @@ msgid_plural "Run %d Instances" msgstr[0] "Kör %d instans" msgstr[1] "Kör %d instanser" +msgid "Size: %s" +msgstr "Storlek: %s" + +msgid "Type: %s" +msgstr "Typ: %s" + +msgid "Add Feature" +msgstr "Lägg till funktion" + msgid " - Variation" msgstr " - Variation" +msgid "Change Box Shape Size" +msgstr "Ändra boxformsstorlek" + +msgid "Change Probe Size" +msgstr "Ändra sondstorlek" + msgid "Volume" msgstr "Volym" @@ -4487,6 +4569,9 @@ msgstr "Z-Axel Transformering." msgid "Objects: %d\n" msgstr "Objekt: %d\n" +msgid "FPS: %d" +msgstr "FPS: %d" + msgid "Top View." msgstr "Vy Ovanifrån." @@ -4508,6 +4593,9 @@ msgstr "Vy Bakifrån." msgid "Rotating %s degrees." msgstr "Roterar %s grader." +msgid "Scene Luminance" +msgstr "Scen luminans" + msgid "Display Advanced..." msgstr "Visa avancerad..." @@ -4577,6 +4665,12 @@ msgstr "Inställningar..." msgid "Viewport Settings" msgstr "Vyinställningar" +msgid "Sun Color" +msgstr "Solens färg" + +msgid "Sky Color" +msgstr "Himmelns färg" + msgid "Ctrl: Rotate" msgstr "Ctrl: Rotera" @@ -4699,6 +4793,9 @@ msgstr "Konvertera gemener/versaler" msgid "Delete Line" msgstr "Ta bort rad" +msgid "Convert Indent to Tabs" +msgstr "Konvertera indentering till tabbar" + msgid "Auto Indent" msgstr "Automatisk Indentering" @@ -4711,6 +4808,21 @@ msgstr "Gå till Rad..." msgid "Save File As" msgstr "Spara fil som" +msgid "ShaderFile" +msgstr "Shaderfil" + +msgid "Create MeshInstance2D" +msgstr "Skapa MeshInstance2D" + +msgid "Convert to MeshInstance2D" +msgstr "Konvertera till MeshInstance2D" + +msgid "Convert to Polygon2D" +msgstr "Konvertera till Polygon2D" + +msgid "Simplification:" +msgstr "Simplifiering:" + msgid "Settings:" msgstr "Inställningar:" @@ -4732,6 +4844,12 @@ msgstr "Ta bort animation" msgid "Size" msgstr "Storlek" +msgid "Separation" +msgstr "Separation" + +msgid "Memory: %s" +msgstr "Minne: %s" + msgid "1 color" msgid_plural "{num} colors" msgstr[0] "1 färg" @@ -4808,6 +4926,9 @@ msgstr "Välj en annan temaresurs:" msgid "Type name is empty!" msgstr "Typnamn är tomt!" +msgid "Set Base Type" +msgstr "Sätt bastyp" + msgid "Override All" msgstr "Åsidosätt Alla" @@ -4817,6 +4938,12 @@ msgstr "Tema:" msgid "Select UI Scene:" msgstr "Välj UI-scen:" +msgid "Painting:" +msgstr "Målning:" + +msgid "Index: %d" +msgstr "Index: %d" + msgid "Shift+Ctrl: Draw rectangle." msgstr "Skift+Ctrl: Rita rektangel." @@ -4838,6 +4965,12 @@ msgstr "Teränger" msgid "No Layers" msgstr "Inga lager" +msgid "Physics Layer %d" +msgstr "Fysiklager %d" + +msgid "Paint Properties:" +msgstr "Målningsegenskaper:" + msgid "Yes" msgstr "Ja" @@ -4916,6 +5049,9 @@ msgstr "Lägg till Utgångsport" msgid "Node(s) Moved" msgstr "Nod(er) Flyttade" +msgid "Set Constant: %s" +msgstr "Sätt konstant: %s" + msgid "Add Node" msgstr "Lägg Till Node" @@ -5012,6 +5148,9 @@ msgstr "Nytt Spelprojekt" msgid "It would be a good idea to name your project." msgstr "Det vore en bra idé att namnge ditt projekt." +msgid "Couldn't save project at '%s' (error %d)." +msgstr "Kunde inte spara projekt vid '%s' (error %d)." + msgid "Error opening package file, not in ZIP format." msgstr "Fel vid öppning av paketfil, är inte ZIP-format." @@ -5081,6 +5220,9 @@ msgstr "Ta bort Alla" msgid "Can't run project" msgstr "Kan inte köra projektet" +msgid "Create New Tag" +msgstr "Skapa ny tag" + msgid "Add Project Setting" msgstr "Lägg till projektinställning" @@ -5312,6 +5454,9 @@ msgstr "Fel - Kunde inte skapa Skript i filsystemet." msgid "Error loading script from %s" msgstr "Fel vid laddning av Skript från %s" +msgid "Inherit %s" +msgstr "Ärver %s" + msgid "Script path/name is valid." msgstr "Skript väg/namn är ogiltigt." @@ -5395,6 +5540,9 @@ msgstr "" msgid "Delete Property?" msgstr "Radera egenskap?" +msgid "Error saving file %s: %s" +msgstr "Fel vid sparande av fil %s: %s" + msgid "Error loading %s: %s." msgstr "Fel vid laddning %s: %s." @@ -5438,6 +5586,9 @@ msgstr "Paket hittades ej: \"%s\"." msgid "Could not find template APK to export: \"%s\"." msgstr "Kunde inte hitta APK-mall för export: \"%s\"." +msgid "Adding files..." +msgstr "Lägger till filer..." + msgid "Could not export project files." msgstr "Kunde inte exportera projektfiler." @@ -5523,7 +5674,7 @@ msgid "No identity found." msgstr "Ingen identitet funnen." msgid "Invalid identity type." -msgstr "Ogiltig identifierartyp:" +msgstr "Ogiltig identitetstyp." msgid "Failed to remove temporary file \"%s\"." msgstr "Kan inte ta bort temporär fil \"%s\"." @@ -5649,8 +5800,45 @@ msgstr "Omdefiniering av '%s'." msgid "Shader include file does not exist:" msgstr "Shader inkluderingsfil saknas:" +msgid "Invalid pragma directive." +msgstr "Ogiltigt pragmadirektiv." + +msgid "Macro expansion limit exceeded." +msgstr "Makroexpansionsgräns överskriden." + +msgid "Invalid macro argument list." +msgstr "Ogiltig makroargumentslista." + msgid "Invalid macro argument." msgstr "Ogiltigt makroargument." msgid "Invalid macro argument count." msgstr "Ogiltigt antal makroargument." + +msgid "Invalid symbols placed before directive." +msgstr "Ogiltiga symboler placerade före direktivet." + +msgid "The const '%s' is declared but never used." +msgstr "Konstanten '%s' är deklarerad men aldrig använd." + +msgid "The function '%s' is declared but never used." +msgstr "Funktionen '%s' är deklarerad men aldrig använd." + +msgid "The struct '%s' is declared but never used." +msgstr "Strukten '%s' är deklarerad men aldrig använd." + +msgid "The uniform '%s' is declared but never used." +msgstr "Uniform '%s' är deklarerad men aldrig använd." + +msgid "The varying '%s' is declared but never used." +msgstr "Varying '%s' är deklarerad men aldrig använd." + +msgid "The local variable '%s' is declared but never used." +msgstr "Den lokala variabeln '%s' är deklarerad men aldrig använd." + +msgid "" +"The total size of the %s for this shader on this device has been exceeded (%d/" +"%d). The shader may not work correctly." +msgstr "" +"Den totala storleken %s för denna shader på denna enhet har överskridit (%d/" +"%d). Shadern kanske inte fungerar korrekt." diff --git a/editor/translations/editor/tr.po b/editor/translations/editor/tr.po index 557ec0ce1b27..39bdb5f99c23 100644 --- a/editor/translations/editor/tr.po +++ b/editor/translations/editor/tr.po @@ -109,7 +109,7 @@ msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-13 22:46+0000\n" +"PO-Revision-Date: 2023-08-30 14:58+0000\n" "Last-Translator: Yılmaz Durmaz \n" "Language-Team: Turkish \n" @@ -118,7 +118,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "Ayarı Kaldır" @@ -216,6 +216,9 @@ msgstr "Geri, Sony Select, Xbox Back, Nintendo -" msgid "Guide, Sony PS, Xbox Home" msgstr "Rehber, Sony PS, Xbox Ana Sayfası" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "Başlat, Xbox Menüsü, Nintendo +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "Sol Kol, Sony L3, Xbox L/LS" @@ -1249,6 +1252,9 @@ msgstr "Satır Numarası:" msgid "%d replaced." msgstr "%d değiştirildi." +msgid "No match" +msgstr "Eşleşme yok" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d eşleşme" @@ -1532,7 +1538,7 @@ msgid "ms" msgstr "ms" msgid "Monitors" -msgstr "İleyiciler" +msgstr "İzleyiciler" msgid "Monitor" msgstr "İzleyici" @@ -1671,16 +1677,16 @@ msgid "C++ Source" msgstr "C++ Kaynağı" msgid "Video RAM" -msgstr "Görüntü Belleği" +msgstr "Video Belleği" msgid "Skip Breakpoints" msgstr "Kesme Noktalarını Atla" msgid "Step Into" -msgstr "İçine gir" +msgstr "İçine Gir" msgid "Step Over" -msgstr "Üstünden geç" +msgstr "Üstünden Geç" msgid "Break" msgstr "Duraklat" @@ -1728,7 +1734,7 @@ msgid "Format" msgstr "Biçim" msgid "Usage" -msgstr "Kullanım" +msgstr "Kullanımı" msgid "Misc" msgstr "Çeşitli" @@ -3099,6 +3105,9 @@ msgstr "'%s' dosyası ayrıştırılırken hata oluştu." msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "'%s' sahne dosyası geçersiz/bozuk görünüyor." +msgid "Missing file '%s' or one of its dependencies." +msgstr "'%s' dosyası veya bağımlılıklarından biri eksik." + msgid "Error while loading file '%s'." msgstr "'%s' dosyası yüklenirken bir hata oluştu." @@ -3467,7 +3476,7 @@ msgstr "" "'%s' dosyasına yazılamıyor; dosya kullanımda, kilitli veya izinler eksik." msgid "Pan View" -msgstr "Kaydırma Görünümü" +msgstr "Görünümü Kaydır" msgid "Dock Position" msgstr "Yuva Konumu" @@ -5028,7 +5037,7 @@ msgid "Favorited folder does not exist anymore and will be removed." msgstr "Sık kullanılan klasör artık mevcut değil, ve kaldırılacak." msgid "Go Back" -msgstr "Geri Dön" +msgstr "Geri Git" msgid "Go Forward" msgstr "İleri Git" @@ -5920,7 +5929,7 @@ msgid "Remaps by Locale:" msgstr "Yerele Göre Yeniden Haritalamalar:" msgid "Locale" -msgstr "Yerel" +msgstr "Yerel kodu" msgid "POT Generation" msgstr "POT Üretimi" @@ -8433,7 +8442,7 @@ msgid "Freelook Down" msgstr "Aşağı Serbest Bakış" msgid "Freelook Speed Modifier" -msgstr "Serbest Bakış Hızı Değiştirici" +msgstr "Serbest Bakış Hızlı Değiştirici" msgid "Freelook Slow Modifier" msgstr "Serbest Bakış Yavaş Değiştirici" @@ -9151,7 +9160,7 @@ msgid "%s Class Reference" msgstr "%s Sınıf Başvurusu" msgid "Find Next" -msgstr "Sonraki Bul" +msgstr "Sonrakini Bul" msgid "Find Previous" msgstr "Öncekini Bul" @@ -9317,7 +9326,7 @@ msgid "Lowercase" msgstr "Küçük harf" msgid "Capitalize" -msgstr "Büyük harfe çevir" +msgstr "İlk harfi büyük yap" msgid "Convert Case" msgstr "Büyük/Küçük Harf Dönüştür" @@ -9341,7 +9350,7 @@ msgid "Toggle Comment" msgstr "Yorumu Aç/Kapat" msgid "Fold/Unfold Line" -msgstr "Satırı Daralt/Aç" +msgstr "Satırı Katla/Aç" msgid "Fold All Lines" msgstr "Tüm Satırları Daralt" @@ -9377,13 +9386,13 @@ msgid "Contextual Help" msgstr "Bağlamsal Yardım" msgid "Toggle Bookmark" -msgstr "Yer imleri Aç / Kapat" +msgstr "Yer imlerini Aç / Kapat" msgid "Go to Next Bookmark" -msgstr "Sonraki Yerimine Git" +msgstr "Sonraki Yer İmine Git" msgid "Go to Previous Bookmark" -msgstr "Önceki Yerimine Git" +msgstr "Önceki Yer İmine Git" msgid "Remove All Bookmarks" msgstr "Bütün Yer imlerini Kaldır" @@ -11122,7 +11131,7 @@ msgid "Add Output" msgstr "Çıkış Ekle" msgid "Float" -msgstr "Ondalıklı (Float)" +msgstr "Float" msgid "Int" msgstr "Int (Tamsayı)" @@ -12457,6 +12466,14 @@ msgstr "Sürüm Denetimi Metaverileri:" msgid "Git" msgstr "Git" +msgid "This project was last edited in a different Godot version: " +msgstr "" +"Bu projenin en son düzenlenmesi, Godot'nun farklı bir sürümüyle yapılmış. " + +msgid "This project uses features unsupported by the current build:" +msgstr "" +"Bu proje, mevcut derleme tarafından desteklenmeyen özellikler kullanıyor:" + msgid "Error: Project is missing on the filesystem." msgstr "Hata: Proje, dosya sisteminde mevcut değil." @@ -12600,6 +12617,15 @@ msgstr "" "kullanamazsınız.\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"Uyarı: Bu projenin en son düzenlenmesi, Godot %s ile yaplımıştır. Açmaya " +"devam etmek, projeyi Godot %s 'e değiştirecektir.\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -12743,6 +12769,28 @@ msgstr "Ayrıca proje içeriğini de sil (geri alınamaz!)" msgid "Convert Full Project" msgstr "Projeyi Tam Dönüştür" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3 to work in Godot 4.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"Bu seçenek, Godot 4 'te çalışmak üzere, Godot 3 ile oluşturulmuş sahneleri, " +"kaynakları ve betikleri güncelleyerek, tam proje dönüşümü " +"gerçekleştirecektir.\n" +"\n" +"Bunun en-iyi-çabalama dönüştürmesi olduğunu unutmayın, yani projeyi " +"yükseltmeyi kolaylaştırır, ancak kutudan-yeni-çıkmış gibi açılmayacak ve yine " +"de elle ayarlamalar gerektirecektir.\n" +"\n" +"ÖNEMLİ: Dönüştürmeden önce projenizi yedeklediğinizden emin olun, çünkü bu " +"işlem Godot'un eski sürümleriyle açılmasını imkansız hale getirir." + msgid "Can't run project" msgstr "Proje çalıştırılamıyor" @@ -12839,7 +12887,7 @@ msgid "Select Virtual Method" msgstr "Sanal Yöntem Seç" msgid "Batch Rename" -msgstr "Toplu Yeniden Adlandır" +msgstr "Toplu Yeniden İsimlendir" msgid "Prefix:" msgstr "Ön Ek:" @@ -13268,7 +13316,7 @@ msgid "(used %d times)" msgstr "( %d kez kullanıldı)" msgid "Add Child Node" -msgstr "Alt-Düğüm Ekle" +msgstr "Alt-öğe Düğümü Ekle" msgid "Expand/Collapse Branch" msgstr "Dalı Genişlet/Daralt" @@ -13837,7 +13885,7 @@ msgid "Count" msgstr "Sayım" msgid "Network Profiler" -msgstr "Ağ Profilcisi" +msgstr "Ağ Profil Çıkarıcısı" msgid "Replication" msgstr "Çoğaltma" @@ -16736,6 +16784,13 @@ msgstr "Örneğin indeksi negatif olamaz." msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "İzin verilen örnek düzenli dizinleri [0..%d] aralığında olmalıdır." +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"backend." +msgstr "" +"'hint_normal_roughness_texture' seçeneği sadece İleri+ arka-uç kullanırken " +"kullanılabilir olur." + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "'hint_normal_roughness_texture', '%s' gölgelendiricilerde desteklenmez." diff --git a/editor/translations/editor/vi.po b/editor/translations/editor/vi.po index b0f4d201c868..12e36a9f470e 100644 --- a/editor/translations/editor/vi.po +++ b/editor/translations/editor/vi.po @@ -30,13 +30,14 @@ # Schuetzer , 2023. # Phạm Minh Tấn , 2023. # Long Phan , 2023. +# duong cfa , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor interface\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-17 11:10+0000\n" -"Last-Translator: Long Phan \n" +"PO-Revision-Date: 2023-08-22 15:34+0000\n" +"Last-Translator: duong cfa \n" "Language-Team: Vietnamese \n" "Language: vi\n" @@ -249,6 +250,18 @@ msgstr "Nhân đôi các khoá đã chọn" msgid "Delete Selected Key(s)" msgstr "Xoá các khoá được chọn" +msgid "Make Handles Balanced" +msgstr "Làm cho tay cầm cân bằng" + +msgid "Make Handles Mirrored" +msgstr "Làm cho tay cầm phản chiếu" + +msgid "Make Handles Balanced (Auto Tangent)" +msgstr "Làm cho tay cầm cân bằng (tiếp tục tự động)" + +msgid "Make Handles Mirrored (Auto Tangent)" +msgstr "Làm cho tay cầm phản chiếu (tiếp tục tự động)" + msgid "Add Bezier Point" msgstr "Thêm điểm Bezier" @@ -4595,6 +4608,18 @@ msgstr "Xóa mục Lớp" msgid "Remove All Items" msgstr "Xóa tất cả các mục" +msgid "Override All Default Theme Items" +msgstr "Ghi đè tất cả các mục chủ đề mặc định" + +msgid "Set Font Size Item in Theme" +msgstr "Đặt kích thước phông chữ trong chủ đề" + +msgid "Set Font Item in Theme" +msgstr "Đặt mục phông chữ trong chủ đề" + +msgid "Set Icon Item in Theme" +msgstr "Đặt mục biểu tượng trong chủ đề" + msgid "Base Type" msgstr "loại cơ sở" diff --git a/editor/translations/editor/zh_CN.po b/editor/translations/editor/zh_CN.po index cc68d7121a5e..70ac3821adff 100644 --- a/editor/translations/editor/zh_CN.po +++ b/editor/translations/editor/zh_CN.po @@ -91,12 +91,13 @@ # WangYi13 , 2023. # matrixant , 2023. # GarliCat , 2023. +# GT-610 , 2023. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2023-07-29 03:10+0000\n" +"PO-Revision-Date: 2023-09-05 13:09+0000\n" "Last-Translator: Haoyu Qiu \n" "Language-Team: Chinese (Simplified) \n" @@ -105,7 +106,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Unset" msgstr "未设置" @@ -203,6 +204,9 @@ msgstr "返回、索尼 Select、Xbox Back、任天堂 -" msgid "Guide, Sony PS, Xbox Home" msgstr "指南、索尼 PS、Xbox Home" +msgid "Start, Xbox Menu, Nintendo +" +msgstr "开始、Xbox 菜单、任天堂 +" + msgid "Left Stick, Sony L3, Xbox L/LS" msgstr "左摇杆、索尼 L3、Xbox L/LS" @@ -1222,6 +1226,9 @@ msgstr "行号:" msgid "%d replaced." msgstr "已替换 %d 处。" +msgid "No match" +msgstr "无匹配" + msgid "%d match" msgid_plural "%d matches" msgstr[0] "%d 个匹配" @@ -2551,7 +2558,7 @@ msgstr "" "这个 %s 目前没有描述。请帮我们[color=$color][url=$url]贡献一个[/url][/color]!" msgid "Top" -msgstr "顶" +msgstr "顶部" msgid "Class:" msgstr "类:" @@ -3014,6 +3021,9 @@ msgstr "解析文件“%s”时出错。" msgid "Scene file '%s' appears to be invalid/corrupt." msgstr "场景文件“%s”似乎无效/已损坏。" +msgid "Missing file '%s' or one of its dependencies." +msgstr "缺失文件“%s”或其依赖项。" + msgid "Error while loading file '%s'." msgstr "加载文件“%s”时出错。" @@ -6758,7 +6768,7 @@ msgstr "平移模式" msgid "" "You can also use Pan View shortcut (Space by default) to pan in any mode." -msgstr "您还可以使用平移视图快捷键(默认为空格)在任何模式下平移。" +msgstr "你还可以使用平移视图快捷键(默认为空格)在任何模式下平移。" msgid "Ruler Mode" msgstr "标尺模式" @@ -10654,7 +10664,7 @@ msgid "Discard all changes" msgstr "丢弃所有修改" msgid "This operation is IRREVERSIBLE. Your changes will be deleted FOREVER." -msgstr "此操作是不可逆的。您的更改将被永久删除。" +msgstr "此操作是不可逆的。你的更改将被永久删除。" msgid "Permanentally delete my changes" msgstr "永久删除我的更改" @@ -11814,8 +11824,8 @@ msgid "" "it later in the Expressions. You can also declare varyings, parameters and " "constants." msgstr "" -"自定义的 Godot 着色器语言表达式,会被放到最终的着色器开头。您可以在其中放置各" -"种函数定义,然后在表达式中调用。您还可以声明 varying、参数和常量。" +"自定义的 Godot 着色器语言表达式,会被放到最终的着色器开头。你可以在其中放置各" +"种函数定义,然后在表达式中调用。你还可以声明 varying、参数和常量。" msgid "A reference to an existing parameter." msgstr "对现有参数的引用。" @@ -12017,6 +12027,12 @@ msgstr "版本控制元数据:" msgid "Git" msgstr "Git" +msgid "This project was last edited in a different Godot version: " +msgstr "该项目的最近一次编辑使用了不同的 Godot 版本: " + +msgid "This project uses features unsupported by the current build:" +msgstr "该项目使用了当前 Godot 构建不支持的功能:" + msgid "Error: Project is missing on the filesystem." msgstr "错误:文件系统上缺失项目。" @@ -12148,6 +12164,14 @@ msgstr "" "Mono 模块。如果继续,你将无法使用任何 C# 脚本。\n" "\n" +msgid "" +"Warning: This project was last edited in Godot %s. Opening will change it to " +"Godot %s.\n" +"\n" +msgstr "" +"警告:该项目的最近一次编辑使用的是 Godot %s。打开后将修改为 Godot %s。\n" +"\n" + msgid "" "Warning: This project uses the following features not supported by this build " "of Godot:\n" @@ -12286,6 +12310,26 @@ msgstr "同时删除项目内容(无法撤销!)" msgid "Convert Full Project" msgstr "转换完整项目" +msgid "" +"This option will perform full project conversion, updating scenes, resources " +"and scripts from Godot 3 to work in Godot 4.\n" +"\n" +"Note that this is a best-effort conversion, i.e. it makes upgrading the " +"project easier, but it will not open out-of-the-box and will still require " +"manual adjustments.\n" +"\n" +"IMPORTANT: Make sure to backup your project before converting, as this " +"operation makes it impossible to open it in older versions of Godot." +msgstr "" +"该选项将执行完整的项目转换,更新 Godot 3 的场景、资源和脚本,以便在 Godot 4 中" +"运行。\n" +"\n" +"注意,转换是尽力而为的,也就是说,它可以让项目的升级更容易,但无法做到开箱即" +"用,仍然需要手动调整。\n" +"\n" +"重要:转换前请一定要备份你的项目,因为本操作会使它无法在旧版本的 Godot 中打" +"开。" + msgid "Can't run project" msgstr "无法运行项目" @@ -15177,7 +15221,7 @@ msgid "" "If you don't intend to add a script, use a plain Control node instead." msgstr "" "除非脚本配置其子节点放置行为,否则容器本身没有任何作用。\n" -"如果您不想添加脚本,请改用普通的 Control 节点。" +"如果你不想添加脚本,请改用普通的 Control 节点。" msgid "" "The Hint Tooltip won't be displayed as the control's Mouse Filter is set to " @@ -15906,6 +15950,11 @@ msgstr "实例索引不能为负。" msgid "Allowed instance uniform indices must be within [0..%d] range." msgstr "实例 uniform 索引必须在 [0...%d] 范围内。" +msgid "" +"'hint_normal_roughness_texture' is only available when using the Forward+ " +"backend." +msgstr "“hint_normal_roughness_texture”仅在使用 Forward+ 后端时可用。" + msgid "'hint_normal_roughness_texture' is not supported in '%s' shaders." msgstr "“%s”着色器尚未支持“hint_normal_roughness_texture”。" diff --git a/editor/translations/properties/de.po b/editor/translations/properties/de.po index ec7bb852b067..190d386f8d19 100644 --- a/editor/translations/properties/de.po +++ b/editor/translations/properties/de.po @@ -100,7 +100,7 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-07-07 16:32+0000\n" +"PO-Revision-Date: 2023-09-08 02:18+0000\n" "Last-Translator: ‎ \n" "Language-Team: German \n" @@ -109,7 +109,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "Anwendung" @@ -322,7 +322,7 @@ msgid "Occlusion Culling" msgstr "Occlusion Culling" msgid "BVH Build Quality" -msgstr "BVH Build Qualität" +msgstr "BVH Build-Qualität" msgid "Memory" msgstr "Speicher" @@ -2559,6 +2559,9 @@ msgstr "Angepasster Vordergrund 432 x 432" msgid "Adaptive Background 432 X 432" msgstr "Angepasster Hintergrund 432 x 432" +msgid "Use Gradle Build" +msgstr "Einen Gradle Build verwenden" + msgid "Export Format" msgstr "Exportformat" @@ -2886,15 +2889,24 @@ msgstr "Mindest-macOS-Version" msgid "High Res" msgstr "Hohe Auflösung" +msgid "Platform Build" +msgstr "Plattform-Build" + msgid "SDK Version" msgstr "SDK-Version" +msgid "SDK Build" +msgstr "SDK Build" + msgid "SDK Name" msgstr "SDK-Name" msgid "Xcode Version" msgstr "Xcode-Version" +msgid "Xcode Build" +msgstr "Xcode-Build" + msgid "Codesign" msgstr "Code-Signierung" @@ -3723,6 +3735,9 @@ msgstr "Vermeidungsmaske" msgid "Avoidance Priority" msgstr "Vermeidungspriorität" +msgid "Use Custom" +msgstr "Benutzerdefiniert" + msgid "Path Custom Point Size" msgstr "Pfad Benutzerdefinierte Punktgröße" @@ -5976,6 +5991,9 @@ msgstr "Vorschau" msgid "Transform Format" msgstr "Transformformat" +msgid "Use Custom Data" +msgstr "Eigene Daten verwenden" + msgid "Instance Count" msgstr "Instanzanzahl" @@ -6558,6 +6576,9 @@ msgstr "Upscale-Modus" msgid "Buffer Size" msgstr "Puffergröße" +msgid "Cluster Builder" +msgstr "Cluster Builder" + msgid "Max Lights per Object" msgstr "Max Lichtinstanzen pro Objekt" diff --git a/editor/translations/properties/fr.po b/editor/translations/properties/fr.po index 58b1a15ac3b1..dce8c08c154b 100644 --- a/editor/translations/properties/fr.po +++ b/editor/translations/properties/fr.po @@ -114,13 +114,14 @@ # "Dimitri A." , 2023. # Varthore , 2023. # Chloe Lee-Hone , 2023. +# François de la Taste , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-13 09:01+0000\n" -"Last-Translator: Chloe Lee-Hone \n" +"PO-Revision-Date: 2023-08-30 14:58+0000\n" +"Last-Translator: François de la Taste \n" "Language-Team: French \n" "Language: fr\n" @@ -128,7 +129,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "Application" @@ -2765,7 +2766,7 @@ msgid "Animations" msgstr "Animations" msgid "Blender" -msgstr "Mélangeur" +msgstr "Blender" msgid "RPC Port" msgstr "Port RPC" diff --git a/editor/translations/properties/id.po b/editor/translations/properties/id.po index d5408f8f7c54..62cb3acab49e 100644 --- a/editor/translations/properties/id.po +++ b/editor/translations/properties/id.po @@ -47,13 +47,14 @@ # Septian Kurniawan , 2023. # Septian Ganendra Savero Kurniawan , 2023. # GID , 2023. +# Luqman Firmansyah , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-07-08 13:52+0000\n" -"Last-Translator: GID \n" +"PO-Revision-Date: 2023-09-08 02:18+0000\n" +"Last-Translator: EngageIndo \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -61,7 +62,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "Aplikasi" @@ -180,6 +181,9 @@ msgstr "Tata Letak Bus Default" msgid "General" msgstr "Umum" +msgid "Text to Speech" +msgstr "Teks to Speech" + msgid "2D Panning Strength" msgstr "Kekuatan Panning 2D" @@ -253,7 +257,7 @@ msgid "Window Log Size" msgstr "Ukuran Jendela Log" msgid "Zlib" -msgstr "Zlib" +msgstr "Software Zlib" msgid "Gzip" msgstr "Gzip" @@ -265,7 +269,7 @@ msgid "Message" msgstr "Pesan" msgid "Rendering" -msgstr "Rendering" +msgstr "Proses membuat gambar" msgid "Occlusion Culling" msgstr "Pemusnahan Oklusi" @@ -333,6 +337,12 @@ msgstr "Ukuran Maksimum (MB)" msgid "Texture Upload Region Size Px" msgstr "Ukuran Wilayah Unggah Tekstur Ukuran Px" +msgid "Pipeline Cache" +msgstr "Cache Alur" + +msgid "Save Chunk Size (MB)" +msgstr "Simpan Ukuran Potongan" + msgid "Vulkan" msgstr "Vulkan" @@ -357,6 +367,9 @@ msgstr "Mode Penggunaan Processor Rendah" msgid "Low Processor Usage Mode Sleep (µsec)" msgstr "Mode Penggunaan Prosesor Rendah Tidur (μsec)" +msgid "Delta Smoothing" +msgstr "Penyempurnaan Perubahan" + msgid "Print Error Messages" msgstr "Cetak Pesan Kesalahan" @@ -384,6 +397,12 @@ msgstr "Gunakan Akumulasi Masukan" msgid "Input Devices" msgstr "Perangkat Masukan" +msgid "Compatibility" +msgstr "Kecocokan" + +msgid "Legacy Just Pressed Behavior" +msgstr "Tekan Tombol hanya Sekali" + msgid "Device" msgstr "Perangkat" @@ -438,6 +457,9 @@ msgstr "Faktor" msgid "Button Index" msgstr "Tombol Indeks" +msgid "Canceled" +msgstr "Dibatalkan" + msgid "Double Click" msgstr "Klik ganda" @@ -481,7 +503,7 @@ msgid "Channel" msgstr "Channel" msgid "Pitch" -msgstr "Pitch" +msgstr "Tingkat Nada" msgid "Instrument" msgstr "Instrumen" @@ -714,6 +736,12 @@ msgstr "Kata Sandi" msgid "Default Feature Profile" msgstr "Profil Fitur Default" +msgid "Version Hash" +msgstr "Versi Pencocokan" + +msgid "Classes" +msgstr "Kelas-kelas" + msgid "Text Editor" msgstr "Editor Teks" @@ -747,6 +775,9 @@ msgstr "Dapat dihapus" msgid "Distraction Free Mode" msgstr "Mode Tanpa Gangguan" +msgid "Movie Maker Enabled" +msgstr "Pembuat Film Enabled" + msgid "Interface" msgstr "Antarmuka" @@ -816,6 +847,12 @@ msgstr "Bahasa Editor" msgid "Display Scale" msgstr "Skala Tampilan" +msgid "Editor Screen" +msgstr "Layar Editor" + +msgid "Project Manager Screen" +msgstr "Layar Manajer Project" + msgid "Enable Pseudolocalization" msgstr "Aktifkan Pseudolokalisasi" @@ -894,6 +931,9 @@ msgstr "Item Dictionary Array Maks per Halaman" msgid "Show Low Level OpenType Features" msgstr "Tampilkan Fitur OpenType Tingkat Rendah" +msgid "Float Drag Speed" +msgstr "Float Kecepatan Tarikan" + msgid "Theme" msgstr "Tema" @@ -945,6 +985,9 @@ msgstr "Aktifkan Tekan Lama sebagai Klik Kanan" msgid "Enable Pan and Scale Gestures" msgstr "Aktifkan Gerakan Pan dan Scale" +msgid "Scale Gizmo Handles" +msgstr "Scale Gizmo Menangani" + msgid "Display Close Button" msgstr "Tampilkan Tombol Tutup" @@ -957,9 +1000,18 @@ msgstr "Lebar Maksimum" msgid "Show Script Button" msgstr "Tampilkan Tombol Skrip" +msgid "Multi Window" +msgstr "Layar Ganda" + msgid "Enable" msgstr "Aktifkan" +msgid "Restore Windows on Load" +msgstr "Pulihkan Windows saat Memuat" + +msgid "Maximize Window" +msgstr "Maksimalkan Jendela" + msgid "External Programs" msgstr "Program Eksternal" @@ -1020,6 +1072,9 @@ msgstr "Perluas Otomatis ke yang Dipilih" msgid "Always Show Folders" msgstr "Selalu Tampilkan Folder" +msgid "TextFile Extensions" +msgstr "Ekstensi File Teks" + msgid "Property Editor" msgstr "Editor Properti" @@ -1039,7 +1094,7 @@ msgid "Caret" msgstr "Tanda sisipan" msgid "Caret Blink" -msgstr "Caret Blink" +msgstr "Caret Berkedip" msgid "Caret Blink Interval" msgstr "Interval Kedipan Caret" @@ -1425,6 +1480,9 @@ msgstr "Lapisan Onion Warna Masa Depan" msgid "Shader Editor" msgstr "Editor Shader" +msgid "Restore Shaders on Load" +msgstr "Pulihkan Shaders saat Dimuat" + msgid "Visual Editors" msgstr "Editor Visual" @@ -1452,6 +1510,9 @@ msgstr "Posisi Kotak Kustom" msgid "Screen" msgstr "Layar" +msgid "Android Window" +msgstr "Jendela Android" + msgid "Auto Save" msgstr "Simpan Otomatis" @@ -1629,6 +1690,9 @@ msgstr "Template Kustom" msgid "Release" msgstr "Rilis" +msgid "Export Console Wrapper" +msgstr "Export Pembungkus Konsol" + msgid "Binary Format" msgstr "Format Biner" @@ -2373,6 +2437,9 @@ msgstr "Tampilkan Pilihan Root Pohon Adegan" msgid "Derive Script Globals by Name" msgstr "Turunkan Script Globals berdasarkan Nama" +msgid "Ask Before Deleting Related Animation Tracks" +msgstr "Bertanya Sebelum Menghapus Trek Animasi Terkait" + msgid "Use Favorites Root Selection" msgstr "Gunakan Pemilihan Root Favorit" @@ -2404,11 +2471,14 @@ msgid "Max Log Files" msgstr "File Log Maks" msgid "Driver" -msgstr "Driver" +msgstr "Pengemudi" msgid "GL Compatibility" msgstr "Kompatibilitas GL" +msgid "Nvidia Disable Threaded Optimization" +msgstr "Nvidia Nonaktifkan Optimasi Berulir" + msgid "Renderer" msgstr "Perender" @@ -2443,7 +2513,7 @@ msgid "Orientation" msgstr "Orientasi" msgid "V-Sync" -msgstr "V-Sync" +msgstr "Sinkronisasi Vertikal" msgid "V-Sync Mode" msgstr "Mode V-Sync" @@ -2548,7 +2618,7 @@ msgid "Windows Native Icon" msgstr "Ikon Windows" msgid "Buffering" -msgstr "Buffering" +msgstr "Proses Pengumpulan Data" msgid "Agile Event Flushing" msgstr "Flushing Event yang Tangkas" @@ -2592,6 +2662,9 @@ msgstr "Nama Assembly" msgid "Solution Directory" msgstr "Direktori Solusi" +msgid "Assembly Reload Attempts" +msgstr "Upaya Muat Ulang Perakitan" + msgid "Operation" msgstr "Operasi" @@ -2617,7 +2690,7 @@ msgid "Collision Priority" msgstr "Prioritas Collision" msgid "Flip Faces" -msgstr "Flip Faces" +msgstr "Ubah Wajah" msgid "Mesh" msgstr "Jala" @@ -2781,6 +2854,18 @@ msgstr "Kecepatan Linear" msgid "Angular Velocity" msgstr "Kecepatan Sudut" +msgid "Inertia Tensor" +msgstr "Tensor Inersia" + +msgid "Is Trigger" +msgstr "Adalah Pemicu" + +msgid "Mesh Index" +msgstr "Mesh Indeks" + +msgid "Importer Mesh" +msgstr "Pengimpor Mesh" + msgid "Json" msgstr "Json" @@ -2980,7 +3065,7 @@ msgid "Src Image" msgstr "Gambar Sumber" msgid "Sampler" -msgstr "Sampler" +msgstr "Contoh Acak" msgid "Mag Filter" msgstr "Filter Mag" @@ -3132,6 +3217,9 @@ msgstr "Path Root" msgid "Replication Interval" msgstr "Interval Replikasi" +msgid "Delta Interval" +msgstr "Interval Delta" + msgid "Visibility Update Mode" msgstr "Mode Pembaruan Visibilitas" @@ -3153,6 +3241,12 @@ msgstr "Tolak Koneksi Baru" msgid "Server Relay" msgstr "Relai Server" +msgid "Max Sync Packet Size" +msgstr "Ukuran Maksimum Paket Sinkronisasi" + +msgid "Max Delta Packet Size" +msgstr "Ukuran Paket Maksimum Delta" + msgid "Noise Type" msgstr "Tipe Kebisingan" @@ -3252,6 +3346,9 @@ msgstr "Path Profil Interaksi" msgid "Display Refresh Rate" msgstr "Kecepatan Refresh Layar" +msgid "Render Target Size Multiplier" +msgstr "Render Pengganda Ukuran Target" + msgid "Hand" msgstr "Tangan" @@ -3702,18 +3799,48 @@ msgstr "macOS" msgid "rcodesign" msgstr "rcodesign" +msgid "Distribution Type" +msgstr "Jenis Distribusi" + msgid "Copyright" msgstr "Hak Cipta" msgid "Copyright Localized" msgstr "Hak Cipta Dilokalkan" +msgid "Min macOS Version" +msgstr "Versi macOS Minimal" + msgid "High Res" msgstr "Resolusi Tinggi" +msgid "Xcode" +msgstr "Xcode" + +msgid "Platform Build" +msgstr "Membangun Platform" + +msgid "SDK Version" +msgstr "Versi Kit Pengembangan Perangkat Lunak" + +msgid "SDK Build" +msgstr "Membangun Kit Pengembangan Perangkat Lunak" + +msgid "SDK Name" +msgstr "Nama Kit Pengembangan Perangkat Lunak" + +msgid "Xcode Version" +msgstr "Versi Xcode" + +msgid "Xcode Build" +msgstr "Membangun Xcode" + msgid "Codesign" msgstr "Codesign" +msgid "Installer Identity" +msgstr "Identitas Pemasang" + msgid "Apple Team ID" msgstr "ID Tim Apple" @@ -3726,6 +3853,9 @@ msgstr "File Sertifikat" msgid "Certificate Password" msgstr "Kata Sandi Sertifikat" +msgid "Provisioning Profile" +msgstr "Provisioning Profile" + msgid "Entitlements" msgstr "Hak" @@ -3955,7 +4085,7 @@ msgid "Splash Screen" msgstr "Splash Screen" msgid "Tiles" -msgstr "Ubin" +msgstr "Petak" msgid "Show Name on Square 150 X 150" msgstr "Tampilkan Nama Pada Persegi 150 X 150" @@ -4480,7 +4610,7 @@ msgid "Node B" msgstr "Node B" msgid "Bias" -msgstr "Bias" +msgstr "ketidakseimbangan" msgid "Disable Collision" msgstr "Nonaktifkan Tabrakan" @@ -4626,9 +4756,24 @@ msgstr "Jarak Tetangga" msgid "Max Neighbors" msgstr "Tetangga Maks" +msgid "Time Horizon Agents" +msgstr "Agen Cakrawala Waktu" + +msgid "Time Horizon Obstacles" +msgstr "Hambatan Cakrawala Waktu" + msgid "Max Speed" msgstr "Kecepatan Maks" +msgid "Avoidance Layers" +msgstr "Lapisan Penghindaran" + +msgid "Avoidance Mask" +msgstr "Masker Penghindaran" + +msgid "Avoidance Priority" +msgstr "Prioritas Penghindaran" + msgid "Use Custom" msgstr "Gunakan Kustom" @@ -4656,9 +4801,18 @@ msgstr "Biaya Masuk" msgid "Travel Cost" msgstr "Biaya Perjalanan" +msgid "Vertices" +msgstr "Sudut" + msgid "Navigation Polygon" msgstr "Poligon Navigasi" +msgid "Use Edge Connections" +msgstr "unakan Koneksi Tepi" + +msgid "Constrain Avoidance" +msgstr "Penghindaran Pembatasan" + msgid "Skew" msgstr "Condong" @@ -5307,6 +5461,9 @@ msgstr "Penjajaran Vertikal" msgid "Uppercase" msgstr "Huruf Besar" +msgid "Justification Flags" +msgstr "Pembenaran Flags" + msgid "BiDi" msgstr "BiDi" @@ -5445,6 +5602,12 @@ msgstr "Data Cahaya" msgid "Surface Material Override" msgstr "Penggantian Material Permukaan" +msgid "Path Height Offset" +msgstr "Path Jarak Ketinggian" + +msgid "Use 3D Avoidance" +msgstr "Gunakan Penghindaran 3D" + msgid "Navigation Mesh" msgstr "Mesh Navigasi" @@ -5478,6 +5641,9 @@ msgstr "Bake" msgid "Rotation Mode" msgstr "Mode Rotasi" +msgid "Use Model Front" +msgstr "Gunakan Model Depan" + msgid "Tilt Enabled" msgstr "Kemiringan Diaktifkan" @@ -5826,9 +5992,15 @@ msgstr "Mode Campuran" msgid "Fadein Time" msgstr "Waktu Fadein" +msgid "Fadein Curve" +msgstr "Kurva Pemudaran Masuk" + msgid "Fadeout Time" msgstr "Waktu Fadeout" +msgid "Fadeout Curve" +msgstr "Kurva Pemudaran Keluar" + msgid "Auto Restart" msgstr "Mulai Ulang Otomatis" @@ -5859,12 +6031,18 @@ msgstr "Permintaan" msgid "Active" msgstr "Aktif" +msgid "Internal Active" +msgstr "Internal yang Aktif" + msgid "Add Amount" msgstr "Tambahkan Jumlah" msgid "Blend Amount" msgstr "Jumlah Campuran" +msgid "Sub Amount" +msgstr "Jumlah Pengurangan" + msgid "Seek Request" msgstr "Mencari Permintaan" @@ -5895,6 +6073,12 @@ msgstr "Kondisi" msgid "Expression" msgstr "Ekspresi" +msgid "State Machine Type" +msgstr "Jenis Mesin Keadaan" + +msgid "Reset Ends" +msgstr "Reset Berakhir" + msgid "Libraries" msgstr "Library" @@ -5979,6 +6163,9 @@ msgstr "Pintasan di Tooltip" msgid "Button Shortcut Feedback Highlight Time" msgstr "Tombol Pintasan Umpan Balik Sorot Waktu" +msgid "Allow Unpress" +msgstr "Izinkan Pemencetan Ulang" + msgid "Text Behavior" msgstr "Perilaku Teks" @@ -5994,6 +6181,9 @@ msgstr "Perilaku Ikon" msgid "Icon Alignment" msgstr "Penjajaran Ikon" +msgid "Vertical Icon Alignment" +msgstr "Penyelarasan Icon Secara Vertikal" + msgid "Expand Icon" msgstr "Perluas Ikon" @@ -6315,6 +6505,9 @@ msgstr "Ukuran Ikon Tetap" msgid "Label Settings" msgstr "Pengaturan Label" +msgid "Tab Stops" +msgstr "Tab Berhenti" + msgid "Displayed Text" msgstr "Teks yang Ditampilkan" @@ -6481,7 +6674,7 @@ msgid "Outline" msgstr "Garis besar" msgid "Env" -msgstr "Env" +msgstr "Lingkungan" msgid "Glyph Index" msgstr "Indeks Glyph" @@ -6540,6 +6733,12 @@ msgstr "Langkah Kustom" msgid "Follow Focus" msgstr "Ikuti Fokus" +msgid "Horizontal Custom Step" +msgstr "Langkah Kustom Horizontal" + +msgid "Vertical Custom Step" +msgstr "Langkah Kustom Vertikal" + msgid "Horizontal Scroll Mode" msgstr "Mode Gulir Horizontal" @@ -6568,7 +6767,7 @@ msgid "Custom Arrow Step" msgstr "Langkah Panah Kustom" msgid "Split Offset" -msgstr "Split Offset" +msgstr "Pemisahan Posisi" msgid "Collapsed" msgstr "Runtuh" @@ -6642,6 +6841,9 @@ msgstr "Ketinggian Konten yang Sesuai" msgid "Draw" msgstr "Menggambar" +msgid "Draw When Editable Disabled" +msgstr "Gambar saat Tidak Dapat Diedit" + msgid "Move on Right Click" msgstr "Pindah ke Klik Kanan" @@ -6796,7 +6998,7 @@ msgid "Max Redirects" msgstr "Pengalihan Maks" msgid "Timeout" -msgstr "Timeout" +msgstr "Waktu Habis" msgid "Transfer Mode" msgstr "Mode Transfer" @@ -6810,6 +7012,21 @@ msgstr "Nama Node Pemisah Angka" msgid "Node Name Casing" msgstr "Casing Nama Node" +msgid "Physics Priority" +msgstr "Prioritas Fisika" + +msgid "Thread Group" +msgstr "Grup Benang" + +msgid "Group" +msgstr "Kelompok" + +msgid "Group Order" +msgstr "Pemesanan Kelompok" + +msgid "Messages" +msgstr "Pesan" + msgid "Editor Description" msgstr "Deskripsi Editor" @@ -7153,7 +7370,7 @@ msgid "Max Sensitivity" msgstr "Sensitivitas Maks" msgid "Frustum" -msgstr "Frustum" +msgstr "Bangun Tumpul" msgid "Focus Distance" msgstr "Jarak Fokus" @@ -7198,7 +7415,7 @@ msgid "Bake Resolution" msgstr "Bake Resolusi" msgid "Bake Interval" -msgstr "Bake Interval" +msgstr "Waktu Pemanggangan" msgid "Up Vector" msgstr "Vektor Atas" @@ -7248,6 +7465,9 @@ msgstr "Ikon Warna yang Dinonaktifkan" msgid "H Separation" msgstr "Pemisahan H" +msgid "Icon Max Width" +msgstr "Icon Lebar Maksimum" + msgid "Underline Spacing" msgstr "Menggarisbawahi Spasi" @@ -7360,7 +7580,7 @@ msgid "Font Readonly Color" msgstr "Warna Hanya Baca Font" msgid "Breakpoint" -msgstr "Breakpoint" +msgstr "Titik Batas" msgid "Bookmark" msgstr "Bookmark" @@ -7431,6 +7651,9 @@ msgstr "Perampas Dinonaktifkan" msgid "Tick" msgstr "Centang" +msgid "Center Grabber" +msgstr "Pengambil Pusat" + msgid "Grabber Offset" msgstr "Offset Perampas" @@ -7519,7 +7742,7 @@ msgid "Labeled Separator Right" msgstr "Pemisah Berlabel Kanan" msgid "Submenu" -msgstr "Submenu" +msgstr "Menu Tambahan" msgid "Submenu Mirrored" msgstr "Submenu Dicerminkan" @@ -7674,15 +7897,42 @@ msgstr "Perbatasan Gulir" msgid "Scroll Speed" msgstr "Kecepatan Gulir" +msgid "Scrollbar Margin Left" +msgstr "Scrollbar Jarak Kiri" + +msgid "Scrollbar Margin Top" +msgstr "Scrollbar Jarak Atas" + +msgid "Scrollbar Margin Right" +msgstr "Scrollbar Jarak Kanan" + +msgid "Scrollbar Margin Bottom" +msgstr "Scrollbar Jarak Bawah" + +msgid "Scrollbar H Separation" +msgstr "Scrollbar Pemisah H" + +msgid "Scrollbar V Separation" +msgstr "Scrollbar Pemisah V" + msgid "Icon Margin" msgstr "Ikon Margin" msgid "Line Separation" msgstr "Pemisahan Garis" +msgid "Font Hovered Color" +msgstr "Color Font Melayang" + +msgid "Hovered" +msgstr "Melayang" + msgid "Tab Selected" msgstr "Tab Dipilih" +msgid "Tab Hovered" +msgstr "Tab Melayang" + msgid "Tab Unselected" msgstr "Tab Tidak Dipilih" @@ -7731,6 +7981,9 @@ msgstr "Lebar H" msgid "Label Width" msgstr "Lebar Label" +msgid "Center Slider Grabbers" +msgstr "Pengait Pusat Slider" + msgid "Folded Arrow" msgstr "Panah Terlipat" @@ -7815,42 +8068,315 @@ msgstr "Pemisah H Tabel" msgid "Table V Separation" msgstr "Pemisah V Tabel" +msgid "Table Odd Row BG" +msgstr "Latar Belakang Baris Ganjil pada Tabel" + +msgid "Table Even Row BG" +msgstr "Latar Belakang Baris Genap pada Tabel" + +msgid "Table Border" +msgstr "Batas Tabel" + +msgid "Text Highlight H Padding" +msgstr "Jarak H Penyorotan Teks" + +msgid "Text Highlight V Padding" +msgstr "Jarak V Penyorotan Teks" + +msgid "H Grabber" +msgstr "Pengait H" + +msgid "V Grabber" +msgstr "Pengait V" + +msgid "Margin Left" +msgstr "Jarak Kiri" + +msgid "Margin Top" +msgstr "Jarak Atas" + +msgid "Margin Right" +msgstr "Jarak Kanan" + +msgid "Margin Bottom" +msgstr "Jarak Bawah" + +msgid "Minimum Grab Thickness" +msgstr "Tebal Minimum yang Dapat Diambil" + +msgid "Autohide" +msgstr "Otomatis Tersembunyi" + +msgid "Minus" +msgstr "Minus" + +msgid "More" +msgstr "Lebih" + +msgid "Grid Minor" +msgstr "Garis Pembantu" + +msgid "Grid Major" +msgstr "Garis Utama" + +msgid "Selection Fill" +msgstr "Pengisian Seleksi" + +msgid "Selection Stroke" +msgstr "Garis Seleksi" + +msgid "Activity" +msgstr "Aktifitas" + +msgid "Port Hotzone Inner Extent" +msgstr "Batas Bagian Dalam Area Pusat Panas" + +msgid "Port Hotzone Outer Extent" +msgstr "Batas Bagian Luar Area Pusat Panas" + msgid "Node" msgstr "Node" +msgid "Energy Multiplier" +msgstr "Pengganda Energi" + +msgid "Canvas Max Layer" +msgstr "Lapisan Maksimum Kanvas" + +msgid "Camera Feed ID" +msgstr "ID Halaman Beranda Kamera" + +msgid "Sky" +msgstr "Langit" + +msgid "Custom FOV" +msgstr "Kostum FOV" + +msgid "Ambient Light" +msgstr "Cahaya Lingkungan" + msgid "Source" msgstr "Sumber" +msgid "Sky Contribution" +msgstr "Kontribusi Langit" + +msgid "Reflected Light" +msgstr "Cahaya Pantulan" + msgid "Tonemap" msgstr "Tonemap" +msgid "White" +msgstr "Putih" + +msgid "SSR" +msgstr "SSR" + +msgid "Max Steps" +msgstr "Langkah Maksimum" + +msgid "Fade In" +msgstr "Memudar" + +msgid "Fade Out" +msgstr "Memudar" + +msgid "Depth Tolerance" +msgstr "Toleransi Kedalaman" + msgid "SSAO" msgstr "SSAO" +msgid "Power" +msgstr "Kekuatan" + +msgid "Detail" +msgstr "Detil" + +msgid "Horizon" +msgstr "Garis Cakrawala" + +msgid "Sharpness" +msgstr "Ketajaman" + +msgid "Light Affect" +msgstr "Efek Cahaya" + +msgid "AO Channel Affect" +msgstr "Efek AO Channel" + msgid "SSIL" msgstr "SSIL" +msgid "Normal Rejection" +msgstr "Penolakan Normal" + +msgid "SDFGI" +msgstr "SDFGI" + +msgid "Use Occlusion" +msgstr "Menggunakan Penghalangan" + +msgid "Cascades" +msgstr "Bertumpukan" + +msgid "Min Cell Size" +msgstr "Ukuran Sel Minimal" + +msgid "Cascade 0 Distance" +msgstr "Jarak Tumpuan 0" + +msgid "Probe Bias" +msgstr "Kecenderungan Probe" + msgid "Glow" msgstr "Bersinar" +msgid "1" +msgstr "1" + msgid "2" msgstr "2" +msgid "4" +msgstr "4" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + msgid "Mix" msgstr "Bercampur" +msgid "Bloom" +msgstr "Mekar" + +msgid "HDR Threshold" +msgstr "Ambang Dinamik Tinggi" + +msgid "HDR Luminance Cap" +msgstr "Batas Cahaya HDR" + +msgid "Fog" +msgstr "Kabut" + +msgid "Sun Scatter" +msgstr "Taburan Cahaya Matahari" + +msgid "GI Inject" +msgstr "Injeksi GI" + +msgid "Anisotropy" +msgstr "Anisotrop" + +msgid "Adjustments" +msgstr "Penyesuaian" + +msgid "Saturation" +msgstr "Ketepatan Warna" + +msgid "Color Correction" +msgstr "Koreksi Color" + +msgid "Edge Fade" +msgstr "Pelepasan Tepi" + msgid "Features" msgstr "Fitur-fitur" +msgid "Extra Spacing" +msgstr "Jarak Tambahan" + +msgid "Glyph" +msgstr "Glyph" + +msgid "Offsets" +msgstr "Perpindahan" + +msgid "Map Width" +msgstr "Lebar Peta" + msgid "Shader" msgstr "Shader" msgid "Shading" -msgstr "Shading" +msgstr "Pengarsiran" + +msgid "Use as Albedo" +msgstr "Gunakan sebagai Albedo" + +msgid "Is sRGB" +msgstr "Adalah sRGB" + +msgid "ORM" +msgstr "ORM" + +msgid "Metallic" +msgstr "Berbahan Logam" + +msgid "Operator" +msgstr "Operator" + +msgid "On UV2" +msgstr "Di UV2" + +msgid "Rim" +msgstr "Lingkaran Luar" + +msgid "Flowmap" +msgstr "Peta Aliran" + +msgid "Deep Parallax" +msgstr "Efek Kedalaman Mendalam" + +msgid "Flip Tangent" +msgstr "Pembalikan Garis Singgung" + +msgid "Subsurface Scattering" +msgstr "Subsurface Scattering" + +msgid "Transmittance" +msgstr "Transmisi" + +msgid "Boost" +msgstr "Meningkatkan" + +msgid "Refraction" +msgstr "Refraction" + +msgid "Triplanar" +msgstr "Tiga Dimensi" + +msgid "Triplanar Sharpness" +msgstr "Ketajaman dalam Tiga Dimensi" + +msgid "World Triplanar" +msgstr "Dunia Tiga Dimensi" + +msgid "Sampling" +msgstr "Contoh" msgid "Shadows" msgstr "Bayangan" +msgid "H Frames" +msgstr "Bingkai H" + +msgid "V Frames" +msgstr "Bingkai V" + +msgid "Grow" +msgstr "Tumbuh" + +msgid "Distance" +msgstr "Jarak" + msgid "MSDF" msgstr "MSDF" @@ -7860,36 +8386,156 @@ msgstr "Item" msgid "Preview" msgstr "Pratinjau" +msgid "Transform Format" +msgstr "Format Transformasi" + +msgid "Visible Instance Count" +msgstr "Jumlah Instance Terlihat" + msgid "Parsed Geometry Type" msgstr "Jenis Geometri yang Diuraikan" +msgid "Source Geometry Mode" +msgstr "Mode Geometri Sumber" + +msgid "Agents" +msgstr "Agen" + +msgid "Max Climb" +msgstr "Maksimum Kenaikan" + +msgid "Max Slope" +msgstr "Kemiringan Maksimum" + +msgid "Edges" +msgstr "Ujung" + msgid "Sample Distance" msgstr "Jarak sampel" +msgid "Low Hanging Obstacles" +msgstr "Hambatan yang Mudah Dihindari" + +msgid "Ledge Spans" +msgstr "Jarak Antara Aliran Batu" + +msgid "Walkable Low Height Spans" +msgstr "Jembatan Ketinggian Rendah yang Bisa Dijalani Kaki" + +msgid "Baking AABB Offset" +msgstr "Jarak Baking AABB" + +msgid "Bundled" +msgstr "Dikemas Bersama" + msgid "Point Texture" msgstr "Tekstur Titik" msgid "Normal Texture" msgstr "Texture Normal" +msgid "Turbulence" +msgstr "Turbulence" + +msgid "Noise Speed" +msgstr "Kecepatan Suara" + +msgid "Influence Min" +msgstr "Pengaruh Minimum" + +msgid "Influence Max" +msgstr "Pengaruh Maksimum" + +msgid "Initial Displacement Min" +msgstr "Jarak Awal Minimum" + +msgid "Initial Displacement Max" +msgstr "Perpindahan Awal Maksimum" + +msgid "Influence over Life" +msgstr "Pengaruh terhadap Kehidupan" + +msgid "Rough" +msgstr "Kasar" + +msgid "Absorbent" +msgstr "Bahan Penyerap" + +msgid "Add UV2" +msgstr "Tambah UV2" + +msgid "Subdivide Width" +msgstr "Membagi Lebar" + +msgid "Subdivide Height" +msgstr "Pemisahan Tinggi" + +msgid "Subdivide Depth" +msgstr "Kedalaman Pembagian Subbagian" + msgid "Top Radius" msgstr "Radius Atas" msgid "Bottom Radius" msgstr "Radius Bawah" +msgid "Is Hemisphere" +msgstr "Adalah Selatan Belahan Bumi" + +msgid "Ring Segments" +msgstr "Segmen Cincin" + +msgid "Radial Steps" +msgstr "Langkah-langkah Radial" + +msgid "Section Segments" +msgstr "Bagian Segmen" + +msgid "A" +msgstr "A" + msgid "B" msgstr "B" +msgid "Custom Solver Bias" +msgstr "Penyesuaian Penyelesaian Kustom" + +msgid "CCDIK Data Chain Length" +msgstr "CCDIK Panjang Rantai Data" + +msgid "FABRIK Data Chain Length" +msgstr "FABRIK Panjang Rantai Data" + +msgid "Jiggle Data Chain Length" +msgstr "Panjang Rantai Data Getar" + +msgid "Target Maximum Distance" +msgstr "Jarak Maksimum Target" + +msgid "Sky Material" +msgstr "Bahan Langit" + msgid "Radiance Size" msgstr "Ukuran Pancaran" msgid "Horizon Color" msgstr "Warna Horizon" +msgid "Cover" +msgstr "Sampul" + +msgid "Panorama" +msgstr "Pemandangan Luas" + msgid "Rayleigh" msgstr "Rayleigh" +msgid "Eccentricity" +msgstr "Keanehan" + +msgid "Turbidity" +msgstr "Kekeruhan" + msgid "Ground Color" msgstr "Warna Daratan" @@ -7908,6 +8554,21 @@ msgstr "Kanan Bawah" msgid "Bottom Left" msgstr "Kiri Bawah" +msgid "Corner Detail" +msgstr "Detail Sudut" + +msgid "Grow Begin" +msgstr "Tumbuh Dimulai" + +msgid "Grow End" +msgstr "Tumbuh Berakhir" + +msgid "Break Flags" +msgstr "Hancurkan Flags" + +msgid "Keep Compressed Buffer" +msgstr "Menyimpan Buffer yang Tertekan" + msgid "Image Size" msgstr "Ukuran Gambar" @@ -7920,30 +8581,102 @@ msgstr "Ke" msgid "Frames" msgstr "Bingkai-bingkai" +msgid "Which Feed" +msgstr "Umpan yang Mana" + +msgid "Terrains" +msgstr "Lahan" + +msgid "Alternative Level" +msgstr "Tingkat Alternatif" + +msgid "UV Clipping" +msgstr "Pemotongan UV" + +msgid "Custom Data Layers" +msgstr "Lapisan Data Kustom" + msgid "Scene" msgstr "Adegan" +msgid "One Way" +msgstr "Satu Cara" + msgid "Transpose" msgstr "Mengubah urutan" +msgid "Terrain" +msgstr "Lahan" + +msgid "Miscellaneous" +msgstr "Lain-lain" + +msgid "Output Port for Preview" +msgstr "Output Port untuk Preview" + +msgid "Parameter Name" +msgstr "Nama Parameter" + msgid "Constant" msgstr "Konstan" +msgid "Cube Map" +msgstr "Peta Kubus" + msgid "Function" msgstr "Fungsi" +msgid "Hint" +msgstr "Petunjuk" + msgid "Plane" -msgstr "Plane" +msgstr "Pesawat" msgid "Custom" msgstr "Kustom" +msgid "Default Font Multichannel Signed Distance Field" +msgstr "Font Standar Multichannel Signed Distance Field" + +msgid "Playback Mode" +msgstr "Mode Pemutaran" + msgid "Random Pitch" msgstr "Pitch Acak" +msgid "Random Volume Offset dB" +msgstr "Penyesuaian Volume Acak dalam dB" + +msgid "Buffer Length" +msgstr "Panjang Buffer" + +msgid "Voice Count" +msgstr "Jumlah Suara" + +msgid "Dry" +msgstr "Kering" + +msgid "Wet" +msgstr "Basah" + +msgid "Voice" +msgstr "Suara" + +msgid "Delay (ms)" +msgstr "Jeda (milidetik)" + +msgid "Rate Hz" +msgstr "Laju Hz" + +msgid "Level dB" +msgstr "Tingkat dB" + msgid "Pan" msgstr "Pan" +msgid "Attack (µs)" +msgstr "Serangan (µs)" + msgid "Sidechain" msgstr "Sidechain" @@ -7953,39 +8686,231 @@ msgstr "Tap 1" msgid "Tap 2" msgstr "Tap 2" +msgid "Pre Gain" +msgstr "Penyetelan Awal Gain" + +msgid "Keep Hf Hz" +msgstr "Pertahankan Frekuensi Tinggi dalam Hertz" + +msgid "Drive" +msgstr "Drive" + +msgid "Ceiling dB" +msgstr "Atap dB" + +msgid "Threshold dB" +msgstr "Batas Minimum dB" + msgid "Soft Clip dB" msgstr "Soft Clip dB" msgid "Soft Clip Ratio" msgstr "Rasio Soft Clip" +msgid "Range Min Hz" +msgstr "Rentang Frekuensi Minimum" + +msgid "Range Max Hz" +msgstr "Rentang Frekuensi Maksimum" + msgid "FFT Size" msgstr "Ukuran FFT" +msgid "Predelay" +msgstr "Lagu Awal Echo" + +msgid "Msec" +msgstr "Milidetik" + +msgid "Room Size" +msgstr "Ukuran Room" + +msgid "Tap Back Pos" +msgstr "Posisi Tap Kembali" + +msgid "Pan Pullout" +msgstr "Lemari Keluar Pan" + +msgid "Time Pullout (ms)" +msgstr "Penarikan Waktu (ms)" + +msgid "Surround" +msgstr "Sekitar" + +msgid "Channel Disable Threshold dB" +msgstr "Channel Ambang dB Nonaktif" + +msgid "Video Delay Compensation (ms)" +msgstr "Pengompensasian Tunda Video (ms)" + +msgid "Feed" +msgstr "Makanan" + +msgid "Metadata Flags" +msgstr "Metadata Flags" + +msgid "Path Rids" +msgstr "Menyingkirkan Path" + +msgid "Path Owner IDs" +msgstr "Path Pemilik ID" + +msgid "Default Edge Connection Margin" +msgstr "Batas Pinggiran Koneksi Standar" + +msgid "Default Link Connection Radius" +msgstr "Jarak Standar Koneksi Tautan" + +msgid "Avoidance Use High Priority Threads" +msgstr "Menghindari Penggunaan Utas Prioritas Tinggi" + +msgid "Edge Connection Color" +msgstr "Color Koneksi Tepi" + +msgid "Enable Edge Connections X-Ray" +msgstr "Aktifkan Koneksi Tepi X-Ray" + +msgid "Enable Edge Lines X-Ray" +msgstr "Aktifkan Garis-Garis Tepi X-Ray" + +msgid "Enable Agent Paths X-Ray" +msgstr "Aktifkan Fitur X-Ray pada Jalur Agen" + +msgid "Obstacles Radius Color" +msgstr "Radius Hambatan Color" + +msgid "Obstacles Static Face Pushin Color" +msgstr "Color untuk Mendorong Rintangan Tidak Bergerak pada Sisi Tetap" + +msgid "Obstacles Static Edge Pushin Color" +msgstr "Color Dorongan Pinggiran untuk Menghindari Halangan Statis" + +msgid "Obstacles Static Face Pushout Color" +msgstr "Color Pendorong Wajah Tetap Halangan" + +msgid "Obstacles Static Edge Pushout Color" +msgstr "Color Pendorong Tepi Statik untuk Kendala" + +msgid "Enable Obstacles Static" +msgstr "Aktifkan Rintangan yang Statis" + +msgid "Inverse Mass" +msgstr "Massa Terbalik" + +msgid "Total Angular Damp" +msgstr "Peredaman Sudut Total" + +msgid "Exclude" +msgstr "Mengesampingkan" + +msgid "Collide With Areas" +msgstr "Tabrak Dengan Area" + +msgid "Shape RID" +msgstr "ID Bentuk" + +msgid "Collide Separation Ray" +msgstr "Sinar Pemisahan Tabrakan" + msgid "Default Gravity" msgstr "Gravitasi Baku" +msgid "Sleep Threshold Linear" +msgstr "Ambang Tidur Linier" + +msgid "Sleep Threshold Angular" +msgstr "Ambang Batas Sudut Tidur" + +msgid "Time Before Sleep" +msgstr "Waktu Sebelum Tidur" + +msgid "Solver" +msgstr "Pemecah Masalah" + +msgid "Contact Max Separation" +msgstr "Jarak Maksimum Kontak" + +msgid "Contact Max Allowed Penetration" +msgstr "Kontak Maksimal yang Diizinkan untuk Penetrasi" + +msgid "Physics Engine" +msgstr "Mesin Fisika" + +msgid "Principal Inertia Axes" +msgstr "Sumbu Inersia Utama" + msgid "Vertex" msgstr "Titik" msgid "Fragment" msgstr "Fragmen" +msgid "Tesselation Evaluation" +msgstr "Evaluasi Pengekerutan" + +msgid "Syntax" +msgstr "Tata Bahasa" + +msgid "Bytecode" +msgstr "Kode Byte" + +msgid "Base Error" +msgstr "Error Dasar" + +msgid "IDs" +msgstr "ID" + +msgid "Depth Prepass Alpha" +msgstr "Pra-Penjelajahan Kedalaman Alfa" + +msgid "SSS Mode Skin" +msgstr "Mode Skin SSS" + msgid "Cull" msgstr "Cull" +msgid "Ensure Correct Normals" +msgstr "Pastikan Normal yang Benar" + +msgid "Alpha to Coverage" +msgstr "Alfa to Tutupan" + +msgid "Alpha to Coverage and One" +msgstr "Alfa to Tutupan and Satu" + +msgid "Use Half Res Pass" +msgstr "Gunakan Pass Setengah Resolusi" + +msgid "Use Quarter Res Pass" +msgstr "Menggunakan Pass Resolusi Kuartal" + msgid "Render Loop Enabled" msgstr "Render Loop Diaktifkan" msgid "VRAM Compression" msgstr "Kompresi VRAM" +msgid "Lossless Compression" +msgstr "Kompresi Tanpa Hilang" + msgid "Force PNG" msgstr "Paksa PNG" +msgid "Time Rollover Secs" +msgstr "Detik Bergulir Waktu" + +msgid "Use Physical Light Units" +msgstr "Gunakan Satuan Cahaya Fisik" + +msgid "Soft Shadow Filter Quality" +msgstr "Kualitas Filter Bayangan Lembut" + msgid "Shadow Atlas" msgstr "Atlas Bayangan" +msgid "Shader Cache" +msgstr "Penyimpanan Shader" + msgid "Reflections" msgstr "Refleksi" @@ -7998,11 +8923,92 @@ msgstr "GI" msgid "Overrides" msgstr "Menimpa" +msgid "Force Vertex Shading" +msgstr "Pemberian Efek Warna Titik Paksa" + +msgid "Force Lambert over Burley" +msgstr "Paksa Lambert atas Burley" + +msgid "Depth Prepass" +msgstr "Pra-penjelajahan Kedalaman" + +msgid "Use Nearest Mipmap Filter" +msgstr "Gunakan Mipmap Filter Terdekat" + +msgid "Anisotropic Filtering Level" +msgstr "Tingkat Penyaringan Anisotropik" + +msgid "Depth of Field Use Jitter" +msgstr "Getaran Penggunaan Kedalaman Bidang" + +msgid "Adaptive Target" +msgstr "Sasaran yang Beradaptasi" + +msgid "Blur Passes" +msgstr "Blur Data" + +msgid "Fadeout From" +msgstr "Meredupkan Dari" + +msgid "Fadeout To" +msgstr "Meredupkan To" + +msgid "Screen Space Roughness Limiter" +msgstr "Pembatasan Roughness Ruang Layar" + +msgid "Decals" +msgstr "Decals" + +msgid "Occlusion Rays per Thread" +msgstr "Sinar Penyembunyian per Utas" + +msgid "Subsurface Scattering Quality" +msgstr "Kualitas Subsurface Scattering" + +msgid "Subsurface Scattering Depth Scale" +msgstr "Subsurface Scattering Kedalaman Scale" + +msgid "Probe Capture" +msgstr "Gambar Probe" + +msgid "Frames to Converge" +msgstr "Bingkai to Dikonvergensi" + +msgid "Frames to Update Lights" +msgstr "Bingkai to Perbarui Lampu" + +msgid "Update Iterations per Frame" +msgstr "Perulangan Pembaruan per Frame" + +msgid "Max Renderable Elements" +msgstr "Elemen yang Dapat Dihentikan Sebanyak Maksimal" + +msgid "Max Renderable Lights" +msgstr "Jumlah Lampu yang Bisa Dihitung Maksimal" + +msgid "Max Lights per Object" +msgstr "Maksimal Lampu per Object" + msgid "Shader Language" msgstr "Bahasa Shader" msgid "Treat Warnings as Errors" msgstr "Perlakukan Peringatan Sebagai Error" +msgid "Is Primary" +msgstr "Adalah Pertama" + +msgid "Play Area Mode" +msgstr "Mode Area Bermain" + +msgid "AR" +msgstr "AR" + +msgid "Is Anchor Detection Enabled" +msgstr "Adalah Deteksi Pemancangan Enabled" + +msgid "Tracking Confidence" +msgstr "Keyakinan Pelacakan" + msgid "Property" msgstr "Properti" diff --git a/editor/translations/properties/ko.po b/editor/translations/properties/ko.po index 2479b26c2367..e68e2343ec42 100644 --- a/editor/translations/properties/ko.po +++ b/editor/translations/properties/ko.po @@ -46,13 +46,14 @@ # Overdue - , 2023. # nulta , 2023. # 이정희 , 2023. +# Zinccccc , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-07-31 18:39+0000\n" -"Last-Translator: 이정희 \n" +"PO-Revision-Date: 2023-09-05 08:33+0000\n" +"Last-Translator: Zinccccc \n" "Language-Team: Korean \n" "Language: ko\n" @@ -60,7 +61,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "어플리케이션" @@ -3854,6 +3855,9 @@ msgstr "권한 설정 프로파일" msgid "Location" msgstr "위치" +msgid "Notarization" +msgstr "공증" + msgid "UWP" msgstr "UWP" @@ -7199,6 +7203,12 @@ msgstr "상수" msgid "Function" msgstr "함수" +msgid "Use All Surfaces" +msgstr "모든 서피스 사용" + +msgid "Surface Index" +msgstr "서피스 인덱스" + msgid "Degrees Mode" msgstr "각도 모드" diff --git a/editor/translations/properties/pt_BR.po b/editor/translations/properties/pt_BR.po index 5689257f84b4..84fe20e6ffa2 100644 --- a/editor/translations/properties/pt_BR.po +++ b/editor/translations/properties/pt_BR.po @@ -158,13 +158,14 @@ # Zer0-Zer0 , 2022. # Levi Ferreira , 2023. # Daniel Mucciolo , 2023. +# Romildo Franco , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2023-06-30 06:50+0000\n" -"Last-Translator: Daniel Mucciolo \n" +"PO-Revision-Date: 2023-09-08 09:58+0000\n" +"Last-Translator: Romildo Franco \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -172,7 +173,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "Aplicação" @@ -219,6 +220,9 @@ msgstr "Tipo de Loop Principal" msgid "Auto Accept Quit" msgstr "Aceitar Sair Automaticamente" +msgid "Quit on Go Back" +msgstr "Encerrar ao Voltar" + msgid "Display" msgstr "Exibição" @@ -399,6 +403,9 @@ msgstr "Internacionalização" msgid "Force Right to Left Layout Direction" msgstr "Forçar Direção de Layout Direita para Esquerda" +msgid "Root Node Layout Direction" +msgstr "Direção da Estrutura do Nó Raiz" + msgid "GUI" msgstr "GUI (Interface Gráfica de Usuário)" @@ -411,6 +418,9 @@ msgstr "Máximo intervalo de busca incremental Msec" msgid "Common" msgstr "Comum" +msgid "Snap Controls to Pixels" +msgstr "Fixar Controles em Pixels" + msgid "Fonts" msgstr "Fontes" @@ -435,6 +445,12 @@ msgstr "Tamanho Máximo (MB)" msgid "Texture Upload Region Size Px" msgstr "Tamanho da região de upload de Textura (PX)" +msgid "Pipeline Cache" +msgstr "Armazenamento Temporário" + +msgid "Save Chunk Size (MB)" +msgstr "Tamanho (MB) dos Blocos Salvos" + msgid "Vulkan" msgstr "Vulkan" @@ -459,6 +475,9 @@ msgstr "Modo de Baixo Uso de Processador" msgid "Low Processor Usage Mode Sleep (µsec)" msgstr "Modo de Baixo Uso de Processador (µsec)" +msgid "Delta Smoothing" +msgstr "Suavização de Deltas" + msgid "Print Error Messages" msgstr "Imprimir Mensagens de Erro" @@ -486,6 +505,12 @@ msgstr "Usar entrada acumulada" msgid "Input Devices" msgstr "Dispositivos de Entrada" +msgid "Compatibility" +msgstr "Compatibilidade" + +msgid "Legacy Just Pressed Behavior" +msgstr "Comportamento do Pressionamento Instantâneo Clássico" + msgid "Device" msgstr "Dispositivo" @@ -513,11 +538,14 @@ msgstr "Pressionado" msgid "Keycode" msgstr "Keycode (Código de Tecla)" +msgid "Physical Keycode" +msgstr "Código de Tecla Física" + msgid "Key Label" -msgstr "Rótulo da Tecla" +msgstr "Inscrição da Tecla" msgid "Unicode" -msgstr "Unicode" +msgstr "Padrão Unicode" msgid "Echo" msgstr "Eco" @@ -537,6 +565,9 @@ msgstr "Fator" msgid "Button Index" msgstr "Índice do Botão" +msgid "Canceled" +msgstr "Cancelado" + msgid "Double Click" msgstr "Clique Duplo" @@ -564,6 +595,9 @@ msgstr "Valor do Eixo" msgid "Index" msgstr "Índice" +msgid "Double Tap" +msgstr "Toque Duplo" + msgid "Action" msgstr "Ação" @@ -588,6 +622,9 @@ msgstr "Número do Controlador" msgid "Controller Value" msgstr "Valor do Controlador" +msgid "Shortcut" +msgstr "Atalho" + msgid "Events" msgstr "Eventos" @@ -786,6 +823,9 @@ msgstr "Adaptador de Depurador" msgid "Remote Port" msgstr "Porta Remota" +msgid "Request Timeout" +msgstr "Tempo Limite de Solicitação" + msgid "Sync Breakpoints" msgstr "Pontos de Quebra de Sincronismo" @@ -804,6 +844,12 @@ msgstr "Senha" msgid "Default Feature Profile" msgstr "Perfil de funcionalidade Padrão" +msgid "Version Hash" +msgstr "Versão do Hash" + +msgid "Classes" +msgstr "Classes" + msgid "Text Editor" msgstr "Editor de Texto" @@ -825,6 +871,9 @@ msgstr "Checável" msgid "Checked" msgstr "Checado" +msgid "Draw Warning" +msgstr "Desenhar Aviso" + msgid "Keying" msgstr "Chaveamento" @@ -834,9 +883,15 @@ msgstr "Deletável" msgid "Distraction Free Mode" msgstr "Modo Sem Distrações" +msgid "Movie Maker Enabled" +msgstr "Criador de filmes Ativado" + msgid "Interface" msgstr "Interface" +msgid "Save on Focus Loss" +msgstr "Salvar ao perder o foco" + msgid "Show Update Spinner" msgstr "Mostrar Spinner de Atualização" @@ -849,6 +904,9 @@ msgstr "Configurações de Localização" msgid "Scene Tabs" msgstr "Abas de Cena" +msgid "Restore Scenes on Load" +msgstr "Restaurar Cenas ao Inicializar" + msgid "Inspector" msgstr "Inspetor" @@ -870,6 +928,12 @@ msgstr "Edição Horizontal do Vector2" msgid "Horizontal Vector Types Editing" msgstr "Edição Horizontal de Tipos de Vetor" +msgid "Open Resources in Current Inspector" +msgstr "Abrir Recursos no Inspetor Atual" + +msgid "Resources to Open in New Inspector" +msgstr "Recursos para abrir em Novo Inspetor" + msgid "Default Color Picker Mode" msgstr "Modo de Seletor de Cores Padrão" @@ -891,6 +955,12 @@ msgstr "Linguagem do Editor" msgid "Display Scale" msgstr "Exibir Escala" +msgid "Editor Screen" +msgstr "Tela do Editor" + +msgid "Project Manager Screen" +msgstr "Tela do Gerenciador de Projetos" + msgid "Enable Pseudolocalization" msgstr "Habilitar Pseudo Localização" @@ -4848,11 +4918,20 @@ msgstr "Modo de Reprodução" msgid "Sync" msgstr "Sincronizar" +msgid "Mix Mode" +msgstr "Modo Mix" + msgid "Fadein Time" -msgstr "Tempo de Esmaecer de Entrada" +msgstr "Tempo do Fadein" + +msgid "Fadein Curve" +msgstr "Curva Fadein" msgid "Fadeout Time" -msgstr "Tempo de Esmaecer de Saída" +msgstr "Tempo de Fadeout" + +msgid "Fadeout Curve" +msgstr "Curva Fadeout" msgid "Auto Restart" msgstr "Reinício Automático" @@ -4867,20 +4946,38 @@ msgid "Random Delay" msgstr "Atraso Aleatório" msgid "Xfade Time" -msgstr "Tempo do Esmaecer Cruzado" +msgstr "Tempo do Xfade" + +msgid "Xfade Curve" +msgstr "Curva Xfade" msgid "Allow Transition to Self" msgstr "Permitir Transição para Auto" +msgid "Input Count" +msgstr "Contador de Inputs" + msgid "Request" -msgstr "Solicitar" +msgstr "Solicitação" msgid "Active" msgstr "Ativo" +msgid "Internal Active" +msgstr "Atividade Interna" + +msgid "Add Amount" +msgstr "Adicionar Quantidade" + msgid "Seek Request" msgstr "Solicitar Busca" +msgid "Current Index" +msgstr "Índice Atual" + +msgid "Current State" +msgstr "Estado Atual" + msgid "Reset" msgstr "Redefinir" @@ -5118,11 +5215,17 @@ msgstr "Permitir Menor" msgid "Elapsed Time" msgstr "Tempo Decorrido" +msgid "BBCode Enabled" +msgstr "BBCode Ativado" + +msgid "Fit Content" +msgstr "Encaixar Conteúdo" + msgid "Scroll Active" msgstr "Rolagem Ativa" msgid "Scroll Following" -msgstr "Rolar Seguindo" +msgstr "Seguir Rolagem" msgid "Tab Size" msgstr "Tamanho da Tabulação" @@ -5136,14 +5239,59 @@ msgstr "Meta Sublinhado" msgid "Progress Bar Delay" msgstr "Atraso da Barra de Progresso" +msgid "Text Selection" +msgstr "Seleção de Texto" + +msgid "Selection Enabled" +msgstr "Seleção Ativada" + +msgid "Custom Step" +msgstr "Intervalo Personalizado" + +msgid "Follow Focus" +msgstr "Siga o Foco" + +msgid "Horizontal Custom Step" +msgstr "Intervalo Horizontal Personalizado" + +msgid "Vertical Custom Step" +msgstr "Intervalo Personalizado Vertical" + +msgid "Horizontal Scroll Mode" +msgstr "Modo de Rolagem Horizontal" + +msgid "Vertical Scroll Mode" +msgstr "Modo de Rolagem Vertical" + +msgid "Scroll Deadzone" +msgstr "Zona Morta da Rolagem" + msgid "Default Scroll Deadzone" msgstr "Padrão: Rolagem por Zona-Morta" msgid "Scrollable" msgstr "Rolagem" +msgid "Tick Count" +msgstr "Contador de Marcações" + +msgid "Ticks on Borders" +msgstr "Marcações nas Bordas" + +msgid "Update on Text Changed" +msgstr "Atualizar na Mudança do Texto" + +msgid "Custom Arrow Step" +msgstr "Intervalo de Seta Personalizado" + msgid "Split Offset" -msgstr "Deslocamento de Divisão" +msgstr "Deslocamento Dividido" + +msgid "Collapsed" +msgstr "Recolhido" + +msgid "Dragger Visibility" +msgstr "Visibilidade do Arrastador" msgid "Stretch Shrink" msgstr "Esticar Encolher" @@ -5166,6 +5314,9 @@ msgstr "Modo Enrolar" msgid "Syntax Highlighter" msgstr "Realçar Sintaxe" +msgid "Fit Content Height" +msgstr "Ajustar Altura do Conteúdo" + msgid "Draw" msgstr "Desenhar" @@ -5184,6 +5335,9 @@ msgstr "Flutuar" msgid "Under" msgstr "Abaixo" +msgid "Over" +msgstr "Por Cima" + msgid "Progress Offset" msgstr "Desvio de Progresso" @@ -5196,6 +5350,12 @@ msgstr "Preenchimento Radial" msgid "Fill Degrees" msgstr "Graus de Preenchimento" +msgid "Center Offset" +msgstr "Deslocamento Central" + +msgid "Expand Mode" +msgstr "Modo de Expansão" + msgid "Custom Minimum Height" msgstr "Altura Mínima Personalizada" @@ -5211,8 +5371,11 @@ msgstr "Pausado" msgid "Expand" msgstr "Expandir" +msgid "Buffering Msec" +msgstr "Armazenamento ms" + msgid "Self Modulate" -msgstr "Auto Modular" +msgstr "Auto Modulação" msgid "Show Behind Parent" msgstr "Mostrar Atrás do Pai" @@ -5244,9 +5407,21 @@ msgstr "Repetir" msgid "Use Parent Material" msgstr "Usar Material do Pai" +msgid "Diffuse" +msgstr "Difusão" + msgid "NormalMap" msgstr "'NormalMap'" +msgid "Download File" +msgstr "Arquivo do Download" + +msgid "Download Chunk Size" +msgstr "Tamanho do Bloco do Download" + +msgid "Accept Gzip" +msgstr "Aceitar Gzip" + msgid "Body Size Limit" msgstr "Limite de Medidas de Corpo" @@ -5268,6 +5443,21 @@ msgstr "Separador Num. de Nome de Nó" msgid "Node Name Casing" msgstr "Nome do Nós (Maiúsculas/Minúsculas)" +msgid "Physics Priority" +msgstr "Prioridade Física" + +msgid "Thread Group" +msgstr "Grupo da Thread" + +msgid "Group" +msgstr "Grupo" + +msgid "Group Order" +msgstr "Ordem do Grupo" + +msgid "Messages" +msgstr "Mensagens" + msgid "Editor Description" msgstr "Descrição do Editor" @@ -5280,6 +5470,9 @@ msgstr "Formas" msgid "Shape Color" msgstr "Cor da Forma" +msgid "Contact Color" +msgstr "Cor de Contato" + msgid "Geometry Color" msgstr "Cor da Geometria" @@ -5295,6 +5488,12 @@ msgstr "'MSAA 3D'" msgid "Use Debanding" msgstr "Usar Debanding" +msgid "Use Occlusion Culling" +msgstr "Usa Ocultação de Objetos" + +msgid "Mesh LOD" +msgstr "Malha LOD" + msgid "LOD Change" msgstr "LOD (Nível de Detalhe)" @@ -5307,6 +5506,9 @@ msgstr "Luzes e Sombras" msgid "Atlas Size" msgstr "Tamanho do Atlas" +msgid "Atlas Quadrant 3 Subdiv" +msgstr "Quadrante de Subdivisão 3 Atlas" + msgid "SDF" msgstr "SDF" @@ -5319,6 +5521,9 @@ msgstr "Início Automático" msgid "Transparent BG" msgstr "Fundo Transparente" +msgid "Debug Draw" +msgstr "Desenho da Depuração" + msgid "Scaling 3D" msgstr "Escala 3D" @@ -5331,6 +5536,27 @@ msgstr "Taxa variável de Shading" msgid "Audio Listener" msgstr "Ouvinte de Áudio" +msgid "Enable 2D" +msgstr "Habilitar 2D" + +msgid "Enable 3D" +msgstr "Habilitar 3D" + +msgid "Object Picking" +msgstr "Seleção de Objetos" + +msgid "Object Picking Sort" +msgstr "Seleção Ordenada de Objetos" + +msgid "Disable Input" +msgstr "Input Desativado" + +msgid "Positional Shadow Atlas" +msgstr "Sombra Posicional Atlas" + +msgid "16 Bits" +msgstr "16 Bits" + msgid "Quad 0" msgstr "'Quad 0'" @@ -5346,12 +5572,36 @@ msgstr "'Quad 3'" msgid "Canvas Cull Mask" msgstr "Máscara de tela" +msgid "Tooltip Delay (sec)" +msgstr "Delay do Tooltip (seg)" + +msgid "Size 2D Override" +msgstr "Sobreposição de Tamanho 2D" + +msgid "Size 2D Override Stretch" +msgstr "Sobreposição de Tamanho Esticamento 2D" + msgid "Render Target" msgstr "Alvo do Renderizador" msgid "Current Screen" msgstr "Tela Atual" +msgid "Mouse Passthrough Polygon" +msgstr "Polígono de Passagem do Mouse" + +msgid "Wrap Controls" +msgstr "Ajustar Controles" + +msgid "Transient" +msgstr "Transitória" + +msgid "Exclusive" +msgstr "Exclusivo" + +msgid "Unresizable" +msgstr "Não redimensionável" + msgid "Unfocusable" msgstr "Infocalizável" @@ -5361,6 +5611,12 @@ msgstr "Tamanho Mínimo" msgid "Max Size" msgstr "Tamanho Máximo" +msgid "2D Render" +msgstr "Renderização 2D" + +msgid "3D Render" +msgstr "Renderização 3D" + msgid "2D Physics" msgstr "Física 2D" @@ -5373,12 +5629,48 @@ msgstr "Formato" msgid "Stereo" msgstr "Stereo" +msgid "Profile" +msgstr "Perfil" + +msgid "Bonemap" +msgstr "Mapeamento dos Bones" + +msgid "Exposure" +msgstr "Exposição" + +msgid "Sensitivity" +msgstr "Sensibilidade" + +msgid "Multiplier" +msgstr "Multiplicador" + msgid "Auto Exposure" msgstr "Auto Exposição" msgid "DOF Blur" msgstr "Embaçamento DOF" +msgid "Far Transition" +msgstr "Transição à Distância" + +msgid "Near Enabled" +msgstr "Proximidade Ativado" + +msgid "Near Distance" +msgstr "Distância Próxima" + +msgid "Near Transition" +msgstr "Transição Próxima" + +msgid "Min Sensitivity" +msgstr "Min Sensibilidade" + +msgid "Max Sensitivity" +msgstr "Max Sensibilidade" + +msgid "Light Mode" +msgstr "Modo Luz" + msgid "Particles Animation" msgstr "Animação de Partículas" @@ -5397,20 +5689,92 @@ msgstr "Intervalo de Bake" msgid "Panel" msgstr "Painel" +msgid "Font Hover Color" +msgstr "Cor da Fonte Hover" + +msgid "Font Focus Color" +msgstr "Cor da Fonte Foco" + +msgid "Font Hover Pressed Color" +msgstr "Cor da Fonte Hover Pressionado" + +msgid "Font Disabled Color" +msgstr "Cor da Fonte Desabilitado" + +msgid "Font Outline Color" +msgstr "Cor do Contorno da Fonte" + +msgid "Icon Hover Color" +msgstr "Cor do Icon Hover" + +msgid "Icon Hover Pressed Color" +msgstr "Cor Icon Hover Pressionado" + +msgid "Icon Focus Color" +msgstr "Cor de Foco do Ícone" + +msgid "Icon Disabled Color" +msgstr "Cor do Ícone Desativado" + msgid "H Separation" msgstr "Separação Horizontal" +msgid "Icon Max Width" +msgstr "Largura Máxima do Ícone" + +msgid "Underline Spacing" +msgstr "Espaço Underline" + +msgid "Normal Mirrored" +msgstr "Normal Espelhado" + +msgid "Hover Mirrored" +msgstr "Hover Espelhado" + +msgid "Pressed Mirrored" +msgstr "Pressionamento Espelhado" + +msgid "Disabled Mirrored" +msgstr "Desabilitar Espelhamento" + msgid "Arrow" msgstr "Seta" +msgid "Arrow Margin" +msgstr "Margem da Seta" + msgid "Modulate Arrow" -msgstr "Modular Seta" +msgstr "Modifica a Seta" + +msgid "Hover Pressed" +msgstr "Hover Pressionado" + +msgid "Checked Disabled" +msgstr "Verificado Desativado" + +msgid "Unchecked" +msgstr "Desmarcado" + +msgid "Unchecked Disabled" +msgstr "Desmarcado Desativado" + +msgid "Radio Checked" +msgstr "Radio Marcado" + +msgid "Radio Checked Disabled" +msgstr "Radio Marcado Desativado" msgid "Radio Unchecked" -msgstr "Radio não selecionado" +msgstr "Radio Desmarcado" msgid "Radio Unchecked Disabled" -msgstr "Radio não checado desabilitado" +msgstr "Radio Desmarcado Desabilitado" + +msgid "Check V Offset" +msgstr "Deslocamento V Verificadores" + +msgid "Checked Mirrored" +msgstr "Verificação Espelhada" msgid "Shadow Offset X" msgstr "Deslocamento da Sombra em X" @@ -5418,6 +5782,9 @@ msgstr "Deslocamento da Sombra em X" msgid "Shadow Offset Y" msgstr "Deslocamento da Sombra em Y" +msgid "Caret Width" +msgstr "Largura do Cursor" + msgid "Clear" msgstr "Limpar" @@ -5430,6 +5797,9 @@ msgstr "Dobrado" msgid "Folded EOL Icon" msgstr "Ícone EOL dobrado" +msgid "Scroll Focus" +msgstr "Foco do Scroll" + msgid "Grabber" msgstr "Agarrador" @@ -5451,6 +5821,9 @@ msgstr "Destaque de Área Agarrada" msgid "Tick" msgstr "Marcação" +msgid "Center Grabber" +msgstr "Agarrador Central" + msgid "Updown" msgstr "De cima para baixo" @@ -5463,6 +5836,9 @@ msgstr "Modular Contorno do Título" msgid "Close" msgstr "Fechar" +msgid "Close V Offset" +msgstr "Deslocamento V do Fechar" + msgid "Reload" msgstr "Recarregar" @@ -5475,15 +5851,36 @@ msgstr "Arquivo" msgid "Separator" msgstr "Separador" +msgid "Labeled Separator Left" +msgstr "Esquerda do Separador Rotulado" + +msgid "Labeled Separator Right" +msgstr "Direita do Separador Rotulado" + msgid "Submenu" msgstr "Sub-menu" msgid "V Separation" msgstr "Separação Vertical" +msgid "Item Start Padding" +msgstr "Margem inicial do item" + +msgid "Item End Padding" +msgstr "Margem Final do Item" + +msgid "Selected Frame" +msgstr "Frame Selecionado" + +msgid "Comment Focus" +msgstr "Foco de Comentário" + msgid "Slot" msgstr "'Slot'" +msgid "Resizer" +msgstr "Redimensionador" + msgid "Port Offset" msgstr "Deslocamento de Porta" @@ -5493,6 +5890,9 @@ msgstr "Ponteiro" msgid "Cursor Unfocused" msgstr "Cursor Desfocado" +msgid "Title Button Normal" +msgstr "Padrão do Botão de Título" + msgid "Custom Button Font Highlight" msgstr "Destaque de Fonte de Botão Personalizado" diff --git a/editor/translations/properties/ru.po b/editor/translations/properties/ru.po index 2a3b553500d4..c5064d07a00e 100644 --- a/editor/translations/properties/ru.po +++ b/editor/translations/properties/ru.po @@ -144,13 +144,14 @@ # Mmaxum , 2023. # ZIP2020 , 2023. # Daniil Ryakhinov , 2023. +# 0que <0que@users.noreply.hosted.weblate.org>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-15 16:33+0000\n" -"Last-Translator: Daniil Ryakhinov \n" +"PO-Revision-Date: 2023-08-30 14:58+0000\n" +"Last-Translator: 0que <0que@users.noreply.hosted.weblate.org>\n" "Language-Team: Russian \n" "Language: ru\n" @@ -159,7 +160,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "Приложение" @@ -269,6 +270,9 @@ msgstr "Не выключать экран" msgid "Audio" msgstr "Аудио" +msgid "Buses" +msgstr "Шины" + msgid "Default Bus Layout" msgstr "Значение по умолчанию включено" @@ -338,6 +342,9 @@ msgstr "Сжатие" msgid "Formats" msgstr "Форматы" +msgid "Zstd" +msgstr "Zstd" + msgid "Long Distance Matching" msgstr "Сравнение Длинных Дистанций" @@ -347,6 +354,12 @@ msgstr "Уровень сжатия" msgid "Window Log Size" msgstr "Размер Лога Окна" +msgid "Zlib" +msgstr "Zlib" + +msgid "Gzip" +msgstr "Gzip" + msgid "Crash Handler" msgstr "Обработчик падений" @@ -356,6 +369,9 @@ msgstr "Сообщение" msgid "Rendering" msgstr "*Рендеринг*" +msgid "Occlusion Culling" +msgstr "Occlusion Culling" + msgid "BVH Build Quality" msgstr "Качество сборки BVH" @@ -368,6 +384,9 @@ msgstr "Ограничения" msgid "Multithreaded Server" msgstr "Многопоточный сервер" +msgid "RID Pool Prealloc" +msgstr "Предварительное распределение пула RID" + msgid "Internationalization" msgstr "Интернационализация" @@ -389,6 +408,9 @@ msgstr "Максимальный интервал инкрементного п msgid "Common" msgstr "Общий" +msgid "Snap Controls to Pixels" +msgstr "Пиксельная привязка управления" + msgid "Fonts" msgstr "Шрифты" @@ -401,6 +423,9 @@ msgstr "Использовать передискретизацию" msgid "Rendering Device" msgstr "Устройство рендеринга" +msgid "Staging Buffer" +msgstr "Промежуточный буфер" + msgid "Block Size (KB)" msgstr "Размер блока (КБ)" @@ -413,6 +438,9 @@ msgstr "Размер области текстуры Px" msgid "Pipeline Cache" msgstr "Кэш конвеера" +msgid "Save Chunk Size (MB)" +msgstr "Сохранить размер блока (МБ)" + msgid "Vulkan" msgstr "Vulkan" @@ -422,18 +450,36 @@ msgstr "Макс. дескрипторов на пул" msgid "Textures" msgstr "Текстуры" +msgid "Canvas Textures" +msgstr "Текстура холста" + +msgid "Default Texture Filter" +msgstr "Фильтр текстур по умолчанию" + +msgid "Default Texture Repeat" +msgstr "Повторение текстур по умолчанию" + msgid "Low Processor Usage Mode" msgstr "Режим низкой нагрузки процессора" msgid "Low Processor Usage Mode Sleep (µsec)" msgstr "Задержка в режиме низкой нагрузки процессора (мксек)" +msgid "Delta Smoothing" +msgstr "Дельта сглаживание" + msgid "Print Error Messages" msgstr "Печатать сообщения об ошибках" msgid "Physics Ticks per Second" msgstr "Частота обновления физических кадров" +msgid "Max Physics Steps per Frame" +msgstr "Макс. количество физических шагов на кадр" + +msgid "Max FPS" +msgstr "Макс. FPS" + msgid "Time Scale" msgstr "Масштаб времени" @@ -449,15 +495,42 @@ msgstr "Использовать накопленный ввод" msgid "Input Devices" msgstr "Устройства ввода" +msgid "Compatibility" +msgstr "Совместимость" + msgid "Device" msgstr "Устройство" +msgid "Window ID" +msgstr "Идентификатор окна" + +msgid "Command or Control Autoremap" +msgstr "Команда или управление автоперестановка" + +msgid "Alt Pressed" +msgstr "Нажатие Alt" + +msgid "Shift Pressed" +msgstr "Нажатие Shift" + +msgid "Ctrl Pressed" +msgstr "Нажатие Ctrl" + +msgid "Meta Pressed" +msgstr "Нажато Meta" + msgid "Pressed" msgstr "Нажато" msgid "Keycode" msgstr "Код клавиши" +msgid "Physical Keycode" +msgstr "Физический код клавиши" + +msgid "Key Label" +msgstr "Метка клавиши" + msgid "Unicode" msgstr "Unicode" @@ -479,6 +552,9 @@ msgstr "Множитель" msgid "Button Index" msgstr "Индекс кнопки" +msgid "Canceled" +msgstr "Отменено" + msgid "Double Click" msgstr "Двойной щелчок" @@ -506,6 +582,9 @@ msgstr "Значение оси" msgid "Index" msgstr "Индекс" +msgid "Double Tap" +msgstr "Двойное касание" + msgid "Action" msgstr "Действие" @@ -533,6 +612,15 @@ msgstr "Значение контроллера" msgid "Shortcut" msgstr "Ярлык" +msgid "Events" +msgstr "События" + +msgid "Include Navigational" +msgstr "Включить навигацию" + +msgid "Include Hidden" +msgstr "Включить скрытый" + msgid "Big Endian" msgstr "Прямой порядок байтов" @@ -560,6 +648,9 @@ msgstr "Максимальный размер исходящего буфера" msgid "Resource" msgstr "Ресурс" +msgid "Local to Scene" +msgstr "Локальный для сцены" + msgid "Path" msgstr "Путь" @@ -578,24 +669,57 @@ msgstr "Отступ" msgid "Cell Size" msgstr "Размер ячейки" +msgid "Jumping Enabled" +msgstr "Прыжки включены" + +msgid "Default Compute Heuristic" +msgstr "Эвристика расчета по умолчанию" + +msgid "Default Estimate Heuristic" +msgstr "Эвристика оценок по умолчанию" + +msgid "Diagonal Mode" +msgstr "Диагональный режим" + msgid "Seed" msgstr "Зерно" msgid "State" msgstr "Состояние" +msgid "Message Queue" +msgstr "Список сообщений" + msgid "Network" msgstr "Сеть" +msgid "TCP" +msgstr "TCP" + +msgid "Connect Timeout Seconds" +msgstr "Время ожидания соединения в секундах" + +msgid "Packet Peer Stream" +msgstr "Пакетный одно ранговый поток" + msgid "Max Buffer (Power of 2)" msgstr "Максимальный буфер (Уровень 2)" msgid "TLS" msgstr "TLS" +msgid "Certificate Bundle Override" +msgstr "Переназначение пакета сертификатов" + +msgid "Threading" +msgstr "Потоки" + msgid "Worker Pool" msgstr "Рабочий пул" +msgid "Max Threads" +msgstr "Макс. потоков" + msgid "Use System Threads for Low Priority Tasks" msgstr "Использовать потоки системы для низкоприоритеных задач" @@ -611,12 +735,36 @@ msgstr "Тест" msgid "Fallback" msgstr "Запасной вариант" +msgid "Pseudolocalization" +msgstr "Псевдолокализация" + +msgid "Use Pseudolocalization" +msgstr "Использовать псевдолокализацию" + +msgid "Replace With Accents" +msgstr "Заменить с акцентами" + +msgid "Double Vowels" +msgstr "Удвоенные гласные" + +msgid "Fake BiDi" +msgstr "Ложный BiDi" + +msgid "Override" +msgstr "Переопределить" + +msgid "Expansion Ratio" +msgstr "Коэффициент расширения" + msgid "Prefix" msgstr "Префикс" msgid "Suffix" msgstr "Суффикс" +msgid "Skip Placeholders" +msgstr "Пропустить заполнитель" + msgid "Rotation" msgstr "Поворот" @@ -638,6 +786,9 @@ msgstr "Задать обработчик" msgid "Out Handle" msgstr "Задать обработчик" +msgid "Handle Mode" +msgstr "Ручной режим" + msgid "Stream" msgstr "Поток" @@ -653,9 +804,18 @@ msgstr "Анимация" msgid "Easing" msgstr "Облегчение" +msgid "Debug Adapter" +msgstr "Отладочный адаптер" + msgid "Remote Port" msgstr "Удалённый порт" +msgid "Request Timeout" +msgstr "Время ожидания запроса" + +msgid "Sync Breakpoints" +msgstr "Синхронизация точек остановки" + msgid "FileSystem" msgstr "Файловая система" @@ -671,6 +831,12 @@ msgstr "Пароль" msgid "Default Feature Profile" msgstr "Профиль возможностей по умолчанию" +msgid "Version Hash" +msgstr "Хэш версии" + +msgid "Classes" +msgstr "Классы" + msgid "Text Editor" msgstr "Текстовый редактор" @@ -692,12 +858,21 @@ msgstr "Отмечаемый" msgid "Checked" msgstr "Отмеченный" +msgid "Draw Warning" +msgstr "Предупреждение рисования" + msgid "Keying" msgstr "Вставка ключей" +msgid "Deletable" +msgstr "Удаляемый" + msgid "Distraction Free Mode" msgstr "Режим без отвлечения" +msgid "Movie Maker Enabled" +msgstr "Movie Maker Включен" + msgid "Interface" msgstr "Интерфейс" @@ -848,6 +1023,9 @@ msgstr "Включить долгие нажатия ПКМ" msgid "Enable Pan and Scale Gestures" msgstr "Включить касания щипка и увеличения" +msgid "Scale Gizmo Handles" +msgstr "Масштаб Гизмо Дескрипторы" + msgid "Show Script Button" msgstr "Показать кнопку скрипта" @@ -4379,6 +4557,9 @@ msgstr "Персональная сеть" msgid "Release (ms)" msgstr "Релиз (мс)" +msgid "Sidechain" +msgstr "Боковая цепь" + msgid "Tap 1" msgstr "Нажмите 1" diff --git a/editor/translations/properties/tr.po b/editor/translations/properties/tr.po index b12e459a9d4b..291899e23f0b 100644 --- a/editor/translations/properties/tr.po +++ b/editor/translations/properties/tr.po @@ -99,8 +99,8 @@ msgstr "" "Project-Id-Version: Godot Engine properties\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-08-16 20:55+0000\n" -"Last-Translator: Haoyu Qiu \n" +"PO-Revision-Date: 2023-09-08 02:18+0000\n" +"Last-Translator: Yılmaz Durmaz \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -108,7 +108,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "Uygulama" @@ -345,7 +345,7 @@ msgid "Root Node Layout Direction" msgstr "Kök Düğüm Yerleşim Düzeni Yönü" msgid "GUI" -msgstr "Grafiksel Kullanıcı Arayüzü" +msgstr "Grafiksel Kullanıcı Arayüzü (GUI)" msgid "Timers" msgstr "Zamanlayıcılar" @@ -678,7 +678,7 @@ msgid "Low Priority Thread Ratio" msgstr "Düşük Öncelikli İş Parçacığı Oranı" msgid "Locale" -msgstr "Yerel" +msgstr "Yerel kodu" msgid "Test" msgstr "Deneme" @@ -1152,7 +1152,7 @@ msgid "Highlight All Occurrences" msgstr "Tüm Bulunanları Vurgula" msgid "Guidelines" -msgstr "Kılavuz çizgiler" +msgstr "Kılavuzlar" msgid "Show Line Length Guidelines" msgstr "Satır Uzunluğu Kılavuz Çizgilerini Göster" @@ -1956,7 +1956,7 @@ msgid "Channel Pack" msgstr "Kanal Paketi" msgid "Mipmaps" -msgstr "Mip-haritalar" +msgstr "Mip-haritaları" msgid "Generate" msgstr "Üret" @@ -2016,7 +2016,7 @@ msgid "Advanced" msgstr "Gelişmiş" msgid "Precision" -msgstr "Keskinik" +msgstr "Kesinlik" msgid "Max Concavity" msgstr "En Fazla İçbükeylik" @@ -2205,7 +2205,7 @@ msgid "Size Limit" msgstr "Boyut Sınırı" msgid "Detect 3D" -msgstr "3D Algıla" +msgstr "3B Algıla" msgid "Compress To" msgstr "Şuna Sıkıştır" @@ -4212,7 +4212,7 @@ msgid "Icon 512 X 512" msgstr "Simge 512 X 512" msgid "Windows" -msgstr "Pencereler" +msgstr "Windows" msgid "rcedit" msgstr "rcedit" @@ -4476,7 +4476,7 @@ msgid "Lifetime Randomness" msgstr "Yaşam süresi Rastgeleliği" msgid "Fixed FPS" -msgstr "FPS'yi Sabitle" +msgstr "Sabit FPS" msgid "Fract Delta" msgstr "Kesirli Delta" @@ -6105,7 +6105,7 @@ msgid "Reset" msgstr "Sıfırla" msgid "Switch" -msgstr "Değiştir" +msgstr "Switch" msgid "Switch Mode" msgstr "Kipi Değiştir" @@ -7620,7 +7620,7 @@ msgid "Tab" msgstr "Sekme" msgid "Space" -msgstr "Boşluk" +msgstr "Uzay" msgid "Font Readonly Color" msgstr "Yazıtipi Sadece Okunabilir Rengi" diff --git a/editor/translations/properties/zh_CN.po b/editor/translations/properties/zh_CN.po index 0bfe37e591f7..f0b6e9b716be 100644 --- a/editor/translations/properties/zh_CN.po +++ b/editor/translations/properties/zh_CN.po @@ -88,13 +88,14 @@ # 1104 EXSPIRAVIT_ , 2022. # ChairC <974833488@qq.com>, 2022. # dmit-225 , 2023. +# GT-610 , 2023. msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2023-07-12 02:49+0000\n" -"Last-Translator: Haoyu Qiu \n" +"PO-Revision-Date: 2023-08-25 09:47+0000\n" +"Last-Translator: GT-610 \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -102,7 +103,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.0.1-dev\n" msgid "Application" msgstr "应用" @@ -4356,7 +4357,7 @@ msgid "Left" msgstr "左" msgid "Top" -msgstr "顶" +msgstr "顶部" msgid "Right" msgstr "右"