# Chinese (Simplified) translation of the Godot Engine class reference.
# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.
# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
#
# Haoyu Qiu <timothyqiu32@gmail.com>, 2020, 2021.
# fangxvan <2661712415@qq.com>, 2020.
# yzt <834950797@qq.com>, 2020.
# 懵逼Kitty <m1330586660@163.com>, 2020, 2021.
# MintSoda <lionlxh@qq.com>, 2020.
# Gardner Belgrade <hapenia@sina.com>, 2020.
# WangYi13 <wyi13@outlook.com>, 2020.
# UnluckyNinja <unluckyninja1994@gmail.com>, 2020.
# idleman <1524328475@qq.com>, 2020.
# Oberon Zheng <360119124@qq.com>, 2020, 2021.
# li yong <liyonghelpme@gmail.com>, 2020.
# Pierre Stempin <pierre.stempin@gmail.com>, 2020.
# BinotaLIU <me@binota.org>, 2020.
# Zhirong Qin (fengjiongmax) <fengjiongmax@gmail.com>, 2020, 2021.
# zzjbook <zzjbook@outlook.com>, 2020.
# Gary Wang <wzc782970009@gmail.com>, 2020.
# cyj <chenyuanji123@yandex.com>, 2020.
# twoBornottwoB <305766341@qq.com>, 2021.
# zzh <zzh12581@icloud.com>, 2021.
# longhjues <longhjues@gmail.com>, 2021.
# 800Coins <jj4156@163.com>, 2021.
# qjyqjyqjyqjy <qjyqjyqjyqjy@sina.com.cn>, 2021.
# mzzhao <13030224963@163.com>, 2021.
# Baiyuan Qiu <1061688677@qq.com>, 2021.
# CZM <605557370@qq.com>, 2021.
# Zephyr <placysan@126.com>, 2021.
# 扬 <zuiaiyangyang3@qq.com>, 2021.
# luoji <564144019@qq.com>, 2021.
# Merlin Bao <windmf@qq.com>, 2021.
# Felix Xing <FelixXingFX@gmail.com>, 2021.
# Wang Chenhao <wch272@outlook.com>, 2021.
# Juer Genie Whang <2695996944@qq.com>, 2021.
# SimonChang <simon_chang@foxmail.com>, 2021.
# zeng haochen <m18621006730@163.com>, 2021.
# suplife <2634557184@qq.com>, 2021.
# Magian <magian1127@gmail.com>, 2021.
# ji233 <27987772@qq.com>, 2021.
# 沈士超 <shenshichao920@hotmail.com>, 2021.
# MisakaRua <1150235785@qq.com>, 2021.
# KodLenss <kodlenss@gmail.com>, 2021.
# Wang Tseryui <2251439097@qq.com>, 2021.
# knight100 <knight100@163.com>, 2021.
# jixun <jingshinglai@gmail.com>, 2021.
# Hapenia Lans <hapenia233@163.com>, 2021.
# 枫叶 <928584916@qq.com>, 2021.
# B TO THE R <1470997723@qq.com>, 2021.
# 有趣极了 <2944595791@qq.com>, 2021.
# 刘亚西 <wayrboy123@gmail.com>, 2021.
# 诗鸷Temsys <shenshichao920@hotmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine class reference\n"
"Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n"
"PO-Revision-Date: 2021-10-07 08:24+0000\n"
"Last-Translator: Magian <magian1127@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot-class-reference/zh_Hans/>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 4.9-dev\n"

#: doc/tools/makerst.py
msgid "Description"
msgstr "描述"

#: doc/tools/makerst.py
msgid "Tutorials"
msgstr "教程"

#: doc/tools/makerst.py
msgid "Properties"
msgstr "属性"

#: doc/tools/makerst.py
msgid "Methods"
msgstr "方法"

#: doc/tools/makerst.py
msgid "Theme Properties"
msgstr "主题属性"

#: doc/tools/makerst.py
msgid "Signals"
msgstr "信号"

#: doc/tools/makerst.py
msgid "Enumerations"
msgstr "枚举"

#: doc/tools/makerst.py
msgid "Constants"
msgstr "常量"

#: doc/tools/makerst.py
msgid "Property Descriptions"
msgstr "属性说明"

#: doc/tools/makerst.py
msgid "Method Descriptions"
msgstr "方法说明"

#: modules/gdscript/doc_classes/@GDScript.xml:4
msgid "Built-in GDScript functions."
msgstr "内置GDScript函数。"

#: modules/gdscript/doc_classes/@GDScript.xml:7
msgid ""
"List of core built-in GDScript functions. Math functions and other "
"utilities. Everything else is provided by objects. (Keywords: builtin, built "
"in, global functions.)"
msgstr ""
"核心内置在GDScript中的函数列表。包含数学函数及其它实用工具。其他一切函数方法"
"都由继承自对象的类提供。(关键词:内置、内建、全局函数。)"

#: modules/gdscript/doc_classes/@GDScript.xml:19
msgid ""
"Returns a color constructed from integer red, green, blue, and alpha "
"channels. Each channel should have 8 bits of information ranging from 0 to "
"255.\n"
"[code]r8[/code] red channel\n"
"[code]g8[/code] green channel\n"
"[code]b8[/code] blue channel\n"
"[code]a8[/code] alpha channel\n"
"[codeblock]\n"
"red = Color8(255, 0, 0)\n"
"[/codeblock]"
msgstr ""
"返回由整数红色,绿色,蓝色和alpha通道构成的颜色。每个通道应具有8位,范围从0到"
"255的信息。\n"
"[code]r8[/code] 红色通道\n"
"[code]g8[/code] 绿色通道\n"
"[code]b8[/code] 蓝色通道\n"
"[code]a8[/code] alpha通道\n"
"[codeblock]\n"
"red = Color8(255, 0, 0)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:34
msgid ""
"Returns a color according to the standardized [code]name[/code] with "
"[code]alpha[/code] ranging from 0 to 1.\n"
"[codeblock]\n"
"red = ColorN(\"red\", 1)\n"
"[/codeblock]\n"
"Supported color names are the same as the constants defined in [Color]."
msgstr ""
"根据标准名称 [code]name[/code] 返回一个颜色,[code]alpha[/code] 值的范围为0到"
"1。\n"
"[codeblock]\n"
"red = ColorN(\"red\", 1)\n"
"[/codeblock]\n"
"支持的颜色名称与 [Color] 中定义的常量相同。"

#: modules/gdscript/doc_classes/@GDScript.xml:45
#, fuzzy
msgid ""
"Returns the absolute value of parameter [code]s[/code] (i.e. positive "
"value).\n"
"[codeblock]\n"
"a = abs(-1) # a is 1\n"
"[/codeblock]"
msgstr ""
"返回参数 [code]s[/code] 的绝对值(即非负值,适用于整数和浮点数)。\n"
"[codeblock]\n"
"# a is 1\n"
"a = abs(-1)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:55
#, fuzzy
msgid ""
"Returns the arc cosine of [code]s[/code] in radians. Use to get the angle of "
"cosine [code]s[/code]. [code]s[/code] must be between [code]-1.0[/code] and "
"[code]1.0[/code] (inclusive), otherwise, [method acos] will return [constant "
"NAN].\n"
"[codeblock]\n"
"# c is 0.523599 or 30 degrees if converted with rad2deg(s)\n"
"c = acos(0.866025)\n"
"[/codeblock]"
msgstr ""
"以弧度返回 [code]s[/code] 的反余弦值。用于求余弦 [code]s[/code] 的角度。\n"
"[codeblock]\n"
"# c is 0.523599 or 30 degrees if converted with rad2deg(s)\n"
"c = acos(0.866025)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:66
#, fuzzy
msgid ""
"Returns the arc sine of [code]s[/code] in radians. Use to get the angle of "
"sine [code]s[/code]. [code]s[/code] must be between [code]-1.0[/code] and "
"[code]1.0[/code] (inclusive), otherwise, [method asin] will return [constant "
"NAN].\n"
"[codeblock]\n"
"# s is 0.523599 or 30 degrees if converted with rad2deg(s)\n"
"s = asin(0.5)\n"
"[/codeblock]"
msgstr ""
"以弧度返回 [code]s[/code] 的反正弦值。用于求正弦 [code]s[/code] 的角度。\n"
"[codeblock]\n"
"# s is 0.523599 or 30 degrees if converted with rad2deg(s)\n"
"s = asin(0.5)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:78
#, fuzzy
msgid ""
"Asserts that the [code]condition[/code] is [code]true[/code]. If the "
"[code]condition[/code] is [code]false[/code], an error is generated. When "
"running from the editor, the running project will also be paused until you "
"resume it. This can be used as a stronger form of [method push_error] for "
"reporting errors to project developers or add-on users.\n"
"[b]Note:[/b] For performance reasons, the code inside [method assert] is "
"only executed in debug builds or when running the project from the editor. "
"Don't include code that has side effects in an [method assert] call. "
"Otherwise, the project will behave differently when exported in release "
"mode.\n"
"The optional [code]message[/code] argument, if given, is shown in addition "
"to the generic \"Assertion failed\" message. You can use this to provide "
"additional details about why the assertion failed.\n"
"[codeblock]\n"
"# Imagine we always want speed to be between 0 and 20.\n"
"var speed = -10\n"
"assert(speed < 20) # True, the program will continue\n"
"assert(speed >= 0) # False, the program will stop\n"
"assert(speed >= 0 and speed < 20) # You can also combine the two conditional "
"statements in one check\n"
"assert(speed < 20, \"speed = %f, but the speed limit is 20\" % speed) # Show "
"a message with clarifying details\n"
"[/codeblock]"
msgstr ""
"断言条件 [code]condition[/code] 为 [code]true[/code] 。如果条件 "
"[code]condition[/code] 为 [code]false[/code] ,则会生成一个错误,程序将停止运"
"行,直到恢复。仅在调试构建版本、或在从编辑器运行游戏时,执行。将其用于调试目"
"的,以确保在开发过程中语句是 [code]true[/code]。\n"
"如果给出可选的信息 [code]message[/code] 参数,在通用的“断言失败”消息之外,还"
"会显示该信息。您可以使用它来提供关于断言失败原因的其他详细信息。\n"
"[codeblock]\n"
"# Imagine we always want speed to be between 0 and 20\n"
"speed = -10\n"
"assert(speed < 20) # True, the program will continue\n"
"assert(speed >= 0) # False, the program will stop\n"
"assert(speed >= 0 && speed < 20) # You can also combine the two conditional "
"statements in one check\n"
"assert(speed < 20, \"speed = %f, but the speed limit is 20\" % speed) # Show "
"a message with clarifying details\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:95
msgid ""
"Returns the arc tangent of [code]s[/code] in radians. Use it to get the "
"angle from an angle's tangent in trigonometry: [code]atan(tan(angle)) == "
"angle[/code].\n"
"The method cannot know in which quadrant the angle should fall. See [method "
"atan2] if you have both [code]y[/code] and [code]x[/code].\n"
"[codeblock]\n"
"a = atan(0.5) # a is 0.463648\n"
"[/codeblock]"
msgstr ""
"以弧度返回 [code]s[/code] 的反正切值。在三角函数中,使用它可以从一个角的正切"
"得到这个角:[code]atan(tan(angle)) == angle[/code]。\n"
"该方法不能知道这个角应该落在哪个象限。如果同时拥有 [code]y[/code] 和 "
"[code]x[/code]可参考[method atan2]。\n"
"[codeblock]\n"
"a = atan(0.5) # a is 0.463648\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:107
msgid ""
"Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle "
"of tangent [code]y/x[/code]. To compute the value, the method takes into "
"account the sign of both arguments in order to determine the quadrant.\n"
"Important note: The Y coordinate comes first, by convention.\n"
"[codeblock]\n"
"a = atan2(0, -1) # a is 3.141593\n"
"[/codeblock]"
msgstr ""
"以弧度返回 [code]y/x[/code] 的反正切。用于获取正切 [code]y/x[/code] 的角度。"
"为了求解该值,该方法考虑两个参数的符号以确定象限。\n"
"重要说明:按照惯例,Y坐标优先。\n"
"[codeblock]\n"
"a = atan2(0, -1) # a 为 3.141593\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:119
msgid ""
"Decodes a byte array back to a value. When [code]allow_objects[/code] is "
"[code]true[/code] decoding objects is allowed.\n"
"[b]WARNING:[/b] Deserialized object can contain code which gets executed. Do "
"not use this option if the serialized object comes from untrusted sources to "
"avoid potential security threats (remote code execution)."
msgstr ""
"将字节数组解码返回一个值。当 [code]allow_objects[/code] is [code]true[/code] "
"时,允许解码对象。\n"
"[b]警告:[/b] 反序列化的对象可能包含可执行的代码。如果序列化的对象来自不受信任"
"的来源,请不要激活此选项,以避免潜在的安全威胁(远程执行代码)。"

#: modules/gdscript/doc_classes/@GDScript.xml:128
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:145
msgid ""
"Converts a 2D point expressed in the cartesian coordinate system (X and Y "
"axis) to the polar coordinate system (a distance from the origin and an "
"angle)."
msgstr ""
"将以直角坐标系(X和Y轴)表示的2D点转换为以极坐标系(距原点的距离和角度)表"
"示。"

#: modules/gdscript/doc_classes/@GDScript.xml:135
#, fuzzy
msgid ""
"Rounds [code]s[/code] upward (towards positive infinity), returning the "
"smallest whole number that is not less than [code]s[/code].\n"
"[codeblock]\n"
"a = ceil(1.45)  # a is 2.0\n"
"a = ceil(1.001) # a is 2.0\n"
"[/codeblock]\n"
"See also [method floor], [method round], [method stepify], and [int]."
msgstr ""
"将 [code]s[/code] 向上舍入(朝正无穷大),返回不小于 [code]s[/code] 的最小整"
"数。\n"
"[codeblock]\n"
"i = ceil(1.45)  # i is 2\n"
"i = ceil(1.001) # i is 2\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:147
msgid ""
"Returns a character as a String of the given Unicode code point (which is "
"compatible with ASCII code).\n"
"[codeblock]\n"
"a = char(65)      # a is \"A\"\n"
"a = char(65 + 32) # a is \"a\"\n"
"a = char(8364)    # a is \"€\"\n"
"[/codeblock]\n"
"This is the inverse of [method ord]."
msgstr ""
"返回一个作为字符串的字符,该字符为给定Unicode代码点(与ASCII码兼容)。\n"
"[codeblock]\n"
"a = char(65)      # a is \"A\"\n"
"a = char(65 + 32) # a is \"a\"\n"
"a = char(8364)    # a is \"€\"\n"
"[/codeblock]\n"
"这与 [method ord] 相反。"

#: modules/gdscript/doc_classes/@GDScript.xml:162
#, fuzzy
msgid ""
"Clamps [code]value[/code] and returns a value not less than [code]min[/code] "
"and not more than [code]max[/code].\n"
"[codeblock]\n"
"a = clamp(1000, 1, 20) # a is 20\n"
"a = clamp(-10, 1, 20)  # a is 1\n"
"a = clamp(15, 1, 20)   # a is 15\n"
"[/codeblock]"
msgstr ""
"钳制 [code]value[/code],返回一个不低于 [code]min[/code] 且不高于 [code]max[/"
"code]的值。\n"
"[codeblock]\n"
"speed = 1000\n"
"# a is 20\n"
"a = clamp(speed, 1, 20)\n"
"\n"
"speed = -10\n"
"# a is 1\n"
"a = clamp(speed, 1, 20)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:175
msgid ""
"Converts from a type to another in the best way possible. The [code]type[/"
"code] parameter uses the [enum Variant.Type] values.\n"
"[codeblock]\n"
"a = Vector2(1, 0)\n"
"# Prints 1\n"
"print(a.length())\n"
"a = convert(a, TYPE_STRING)\n"
"# Prints 6 as \"(1, 0)\" is 6 characters\n"
"print(a.length())\n"
"[/codeblock]"
msgstr ""
"尽可能以最佳方式将一种类型转换为另一种类型。[code]type[/code] 参数应使用 "
"[enum Variant.Type] 作为值。\n"
"[codeblock]\n"
"a = Vector2(1, 0)\n"
"# Prints 1\n"
"print(a.length())\n"
"a = convert(a, TYPE_STRING)\n"
"# Prints 6 as \"(1, 0)\" is 6 characters\n"
"print(a.length())\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:190
#, fuzzy
msgid ""
"Returns the cosine of angle [code]s[/code] in radians.\n"
"[codeblock]\n"
"a = cos(TAU) # a is 1.0\n"
"a = cos(PI)  # a is -1.0\n"
"[/codeblock]"
msgstr ""
"返回弧度角 [code]s[/code] 的正弦值。\n"
"[codeblock]\n"
"sin(0.523599) # Returns 0.5\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:201
#, fuzzy
msgid ""
"Returns the hyperbolic cosine of [code]s[/code] in radians.\n"
"[codeblock]\n"
"print(cosh(1)) # Prints 1.543081\n"
"[/codeblock]"
msgstr ""
"返回弧度角 [code]s[/code] 的双曲余弦值。\n"
"[codeblock]\n"
"# Prints 1.543081\n"
"print(cosh(1))\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:211
msgid "Converts from decibels to linear energy (audio)."
msgstr "从分贝转换为线性能量(音频)。"

#: modules/gdscript/doc_classes/@GDScript.xml:218
msgid "Deprecated alias for [method step_decimals]."
msgstr ""

#: modules/gdscript/doc_classes/@GDScript.xml:227
#, fuzzy
msgid ""
"[b]Note:[/b] [code]dectime[/code] has been deprecated and will be removed in "
"Godot 4.0, please use [method move_toward] instead.\n"
"Returns the result of [code]value[/code] decreased by [code]step[/code] * "
"[code]amount[/code].\n"
"[codeblock]\n"
"a = dectime(60, 10, 0.1)) # a is 59.0\n"
"[/codeblock]"
msgstr ""
"返回 [code]value[/code] 减去 [code]step[/code] * [code]amount[/code] 之后的结"
"果。\n"
"[codeblock]\n"
"# a = 59\n"
"a = dectime(60, 10, 0.1))\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:238
#, fuzzy
msgid ""
"Converts an angle expressed in degrees to radians.\n"
"[codeblock]\n"
"r = deg2rad(180) # r is 3.141593\n"
"[/codeblock]"
msgstr ""
"将以度表示的角度转换为弧度。\n"
"[codeblock]\n"
"# r is 3.141593\n"
"r = deg2rad(180)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:248
#, fuzzy
msgid ""
"Converts a dictionary (previously created with [method inst2dict]) back to "
"an instance. Useful for deserializing."
msgstr "将先前由实例转换成的字典,再转换回实例。用于反序列化。"

#: modules/gdscript/doc_classes/@GDScript.xml:256
msgid ""
"Returns an \"eased\" value of [code]x[/code] based on an easing function "
"defined with [code]curve[/code]. This easing function is based on an "
"exponent. The [code]curve[/code] 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 in\n"
"- 1.0: Linear\n"
"- Greater than 1.0 (exclusive): Ease out\n"
"[/codeblock]\n"
"[url=https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/"
"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n"
"See also [method smoothstep]. If you need to perform more advanced "
"transitions, use [Tween] or [AnimationPlayer]."
msgstr ""

#: modules/gdscript/doc_classes/@GDScript.xml:274
msgid ""
"The natural exponential function. It raises the mathematical constant [b]e[/"
"b] to the power of [code]s[/code] and returns it.\n"
"[b]e[/b] has an approximate value of 2.71828, and can be obtained with "
"[code]exp(1)[/code].\n"
"For exponents to other bases use the method [method pow].\n"
"[codeblock]\n"
"a = exp(2) # Approximately 7.39\n"
"[/codeblock]"
msgstr ""
"自然指数函数。返回 [b]e[/b] 的 [b]s[/b] 次幂。\n"
"[b]e[/b]的近似值为2.71828,可以使用 [code]exp(1)[/code] 获得。\n"
"以其他底数求指数,应使用方法 [method pow]。\n"
"[codeblock]\n"
"a = exp(2) # Approximately 7.39\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:286
#, fuzzy
msgid ""
"Rounds [code]s[/code] downward (towards negative infinity), returning the "
"largest whole number that is not more than [code]s[/code].\n"
"[codeblock]\n"
"a = floor(2.45)  # a is 2.0\n"
"a = floor(2.99)  # a is 2.0\n"
"a = floor(-2.99) # a is -3.0\n"
"[/codeblock]\n"
"See also [method ceil], [method round], [method stepify], and [int].\n"
"[b]Note:[/b] This method returns a float. If you need an integer and "
"[code]s[/code] is a non-negative number, you can use [code]int(s)[/code] "
"directly."
msgstr ""
"向下舍入 [code]s[/code] (朝负无穷大),返回不大于 [code]s[/code] 的最大整"
"数。\n"
"[codeblock]\n"
"# a is 2.0\n"
"a = floor(2.99)\n"
"# a is -3.0\n"
"a = floor(-2.99)\n"
"[/codeblock]\n"
"[b]注意:[/b] 这个方法返回一个浮点值,如果需要返回一个整数,可以直接使用 "
"[code]int(s)[/code] 。"

#: modules/gdscript/doc_classes/@GDScript.xml:301
#, fuzzy
msgid ""
"Returns the floating-point remainder of [code]a/b[/code], keeping the sign "
"of [code]a[/code].\n"
"[codeblock]\n"
"r = fmod(7, 5.5) # r is 1.5\n"
"[/codeblock]\n"
"For the integer remainder operation, use the % operator."
msgstr ""
"返回 [code]a/b[/code] 的浮点型余数, 符号与 [code]a[/code]一致。\n"
"[codeblock]\n"
"# Remainder is 1.5\n"
"var remainder = fmod(7, 5.5)\n"
"[/codeblock]\n"
"如果对整数进行取余操作,请使用操作符 % 。"

#: modules/gdscript/doc_classes/@GDScript.xml:313
#, fuzzy
msgid ""
"Returns the floating-point modulus of [code]a/b[/code] that wraps equally in "
"positive and negative.\n"
"[codeblock]\n"
"for i in 7:\n"
"    var x = 0.5 * i - 1.5\n"
"    print(\"%4.1f %4.1f %4.1f\" % [x, fmod(x, 1.5), fposmod(x, 1.5)])\n"
"[/codeblock]\n"
"Produces:\n"
"[codeblock]\n"
"-1.5 -0.0  0.0\n"
"-1.0 -1.0  0.5\n"
"-0.5 -0.5  1.0\n"
" 0.0  0.0  0.0\n"
" 0.5  0.5  0.5\n"
" 1.0  1.0  1.0\n"
" 1.5  0.0  0.0\n"
"[/codeblock]"
msgstr ""
"返回 [code]a/b[/code] 的浮点型余数,该浮点型余数非负。\n"
"[codeblock]\n"
"var i = -6\n"
"while i < 5:\n"
"    prints(i, fposmod(i, 3))\n"
"    i += 1\n"
"[/codeblock]\n"
"Produces:\n"
"[codeblock]\n"
"-6 0\n"
"-5 1\n"
"-4 2\n"
"-3 0\n"
"-2 1\n"
"-1 2\n"
"0 0\n"
"1 1\n"
"2 2\n"
"3 0\n"
"4 1\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:336
msgid ""
"Returns a reference to the specified function [code]funcname[/code] in the "
"[code]instance[/code] node. As functions aren't first-class objects in "
"GDscript, use [code]funcref[/code] to store a [FuncRef] in a variable and "
"call it later.\n"
"[codeblock]\n"
"func foo():\n"
"    return(\"bar\")\n"
"\n"
"a = funcref(self, \"foo\")\n"
"print(a.call_func()) # Prints bar\n"
"[/codeblock]"
msgstr ""
"返回对 [code]instance[/code] 节点中指定函数 [code]funcname[/code] 的引用。由"
"于函数在GDScript中不是一级对象,因此请使用 [code]funcref[/code] 将 [FuncRef] "
"存储在变量中,然后再调用它。\n"
"[codeblock]\n"
"func foo():\n"
"    return(\"bar\")\n"
"\n"
"a = funcref(self, \"foo\")\n"
"print(a.call_func()) # Prints bar\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:349
msgid ""
"Returns an array of dictionaries representing the current call stack.\n"
"[codeblock]\n"
"func _ready():\n"
"    foo()\n"
"\n"
"func foo():\n"
"    bar()\n"
"\n"
"func bar():\n"
"    print(get_stack())\n"
"[/codeblock]\n"
"would print\n"
"[codeblock]\n"
"[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, "
"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n"
"[/codeblock]"
msgstr ""
"返回一个表示当前调用堆栈的字典数组。\n"
"[codeblock]\n"
"func _ready():\n"
"    foo()\n"
"\n"
"func foo():\n"
"    bar()\n"
"\n"
"func bar():\n"
"    print(get_stack())\n"
"[/codeblock]\n"
"would print\n"
"[codeblock]\n"
"[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, "
"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:370
msgid ""
"Returns the integer hash of the variable passed.\n"
"[codeblock]\n"
"print(hash(\"a\")) # Prints 177670\n"
"[/codeblock]"
msgstr ""
"返回传入的变量的整数哈希值。\n"
"[codeblock]\n"
"print(hash(\"a\")) # Prints 177670\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:380
msgid ""
"Returns the passed instance converted to a dictionary (useful for "
"serializing).\n"
"[codeblock]\n"
"var foo = \"bar\"\n"
"func _ready():\n"
"    var d = inst2dict(self)\n"
"    print(d.keys())\n"
"    print(d.values())\n"
"[/codeblock]\n"
"Prints out:\n"
"[codeblock]\n"
"[@subpath, @path, foo]\n"
"[, res://test.gd, bar]\n"
"[/codeblock]"
msgstr ""
"返回传入的实例转换为的字典(可用于序列化)。\n"
"[codeblock]\n"
"var foo = \"bar\"\n"
"func _ready():\n"
"    var d = inst2dict(self)\n"
"    print(d.keys())\n"
"    print(d.values())\n"
"[/codeblock]\n"
"Prints out:\n"
"[codeblock]\n"
"[@subpath, @path, foo]\n"
"[, res://test.gd, bar]\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:399
msgid ""
"Returns the Object that corresponds to [code]instance_id[/code]. All Objects "
"have a unique instance ID.\n"
"[codeblock]\n"
"var foo = \"bar\"\n"
"func _ready():\n"
"    var id = get_instance_id()\n"
"    var inst = instance_from_id(id)\n"
"    print(inst.foo) # Prints bar\n"
"[/codeblock]"
msgstr ""
"返回id [code]instance_id[/code] 所对应的对象。所有对象都有独有的实例ID。\n"
"[codeblock]\n"
"var foo = \"bar\"\n"
"func _ready():\n"
"    var id = get_instance_id()\n"
"    var inst = instance_from_id(id)\n"
"    print(inst.foo) # Prints bar\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:415
msgid ""
"Returns a normalized value considering the given range. This is the opposite "
"of [method lerp].\n"
"[codeblock]\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
"[/codeblock]"
msgstr ""
"考虑给定范围,返回归一化值。这与 [method lerp] 相反。\n"
"[codeblock]\n"
"var middle = lerp(20, 30, 0.75)\n"
"# `middle` is now 27.5.\n"
"# Now, we pretend to have forgotten the original ratio and want to get it "
"back.\n"
"var ratio = inverse_lerp(20, 30, 27.5)\n"
"# `ratio` is now 0.75.\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:430
msgid ""
"Returns [code]true[/code] if [code]a[/code] and [code]b[/code] are "
"approximately equal to each other.\n"
"Here, approximately equal means that [code]a[/code] and [code]b[/code] are "
"within a small internal epsilon of each other, which scales with the "
"magnitude of the numbers.\n"
"Infinity values of the same sign are considered equal."
msgstr ""
"如果 [code]a[/code] 和 [code]b[/code] 彼此近似相等,则返回 [code]true[/"
"code]。\n"
"在此,近似等于是指 [code]a[/code] 和 [code]b[/code] 彼此之间在较小的内部ε内,"
"它随数字的大小成比例。\n"
"具有相同符号的无穷大值被视为相等。"

#: modules/gdscript/doc_classes/@GDScript.xml:439
msgid ""
"Returns whether [code]s[/code] is an infinity value (either positive "
"infinity or negative infinity)."
msgstr "返回 [code]s[/code] 是否为无穷大值(正无穷大或负无穷大)。"

#: modules/gdscript/doc_classes/@GDScript.xml:446
msgid ""
"Returns whether [code]instance[/code] is a valid object (e.g. has not been "
"deleted from memory)."
msgstr "返回 [code]instance[/code] 是否为有效对象(例如尚未从内存中删除)。"

#: modules/gdscript/doc_classes/@GDScript.xml:453
msgid ""
"Returns whether [code]s[/code] is a NaN (\"Not a Number\" or invalid) value."
msgstr "返回 [code]s[/code] 是否为NaN(“不是数字”或无效)值。"

#: modules/gdscript/doc_classes/@GDScript.xml:460
msgid ""
"Returns [code]true[/code] if [code]s[/code] is zero or almost zero.\n"
"This method is faster than using [method is_equal_approx] with one value as "
"zero."
msgstr ""
"如果 [code]s[/code] 为零或几乎为零,则返回 [code]true[/code]。\n"
"此方法比使用 [method is_equal_approx] (其中一个值为零)要快。"

#: modules/gdscript/doc_classes/@GDScript.xml:468
msgid ""
"Returns length of Variant [code]var[/code]. Length is the character count of "
"String, element count of Array, size of Dictionary, etc.\n"
"[b]Note:[/b] Generates a fatal error if Variant can not provide a length.\n"
"[codeblock]\n"
"a = [1, 2, 3, 4]\n"
"len(a) # Returns 4\n"
"[/codeblock]"
msgstr ""
"返回 Variant [code]var[/code] 的长度。长度是字符串的字符数,数组的元素数,字"
"典的大小等。\n"
"[b]注意:[/b] 如果Variant无法提供长度,则会产生致命错误。\n"
"[codeblock]\n"
"a = [1, 2, 3, 4]\n"
"len(a) # Returns 4\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:482
#, fuzzy
msgid ""
"Linearly interpolates between two values by a normalized value. This is the "
"opposite of [method inverse_lerp].\n"
"If the [code]from[/code] and [code]to[/code] arguments are of type [int] or "
"[float], the return value is a [float].\n"
"If both are of the same vector type ([Vector2], [Vector3] or [Color]), the "
"return value will be of the same type ([code]lerp[/code] then calls the "
"vector type's [code]linear_interpolate[/code] method).\n"
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
"[/codeblock]"
msgstr ""
"通过归一化值在两个值之间线性插值。这与 [method inverse_lerp] 相反。\n"
"如果参数 [code]from[/code] 和 [code]to[/code] 的类型为 [int]或 [float],则返"
"回值为 [float]。\n"
"如果两者都是相同的向量类型([Vector2],[Vector3]或[Color]),则返回值将是相同"
"的类型([code]lerp[/code] 然后调用向量类型的 [code]lerp[/code] 方法)。\n"
"[codeblock]\n"
"lerp(0, 4, 0.75) # Returns 3.0\n"
"lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:497
msgid ""
"Linearly interpolates between two angles (in radians) by a normalized "
"value.\n"
"Similar to [method lerp], but interpolates correctly when the angles wrap "
"around [constant @GDScript.TAU].\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
"func _process(delta):\n"
"    var min_angle = deg2rad(0.0)\n"
"    var max_angle = deg2rad(90.0)\n"
"    rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
"    elapsed += delta\n"
"[/codeblock]"
msgstr ""
"通过归一化值在两个角度之间(以弧度为单位)进行线性插值。\n"
"与 [method lerp] 相似,但是当角度环绕 [constant @GDScript.TAU] 时会准确插"
"值。\n"
"[codeblock]\n"
"extends Sprite\n"
"var elapsed = 0.0\n"
"func _process(delta):\n"
"    var min_angle = deg2rad(0.0)\n"
"    var max_angle = deg2rad(90.0)\n"
"    rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
"    elapsed += delta\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:514
msgid ""
"Converts from linear energy to decibels (audio). This can be used to "
"implement volume sliders that behave as expected (since volume isn't "
"linear). Example:\n"
"[codeblock]\n"
"# \"Slider\" refers to a node that inherits Range such as HSlider or "
"VSlider.\n"
"# Its range must be configured to go from 0 to 1.\n"
"# Change the bus name if you'd like to change the volume of a specific bus "
"only.\n"
"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
"linear2db($Slider.value))\n"
"[/codeblock]"
msgstr ""
"从线性能量转换为分贝(音频)。这可用于实现按预期运行的音量滑块(因为音量不是"
"线性的)。例如:\n"
"[codeblock]\n"
"# \"Slider\" refers to a node that inherits Range such as HSlider or "
"VSlider.\n"
"# Its range must be configured to go from 0 to 1.\n"
"# Change the bus name if you'd like to change the volume of a specific bus "
"only.\n"
"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
"linear2db($Slider.value))\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:527
#, fuzzy
msgid ""
"Loads a resource from the filesystem located at [code]path[/code]. The "
"resource is loaded on the method call (unless it's referenced already "
"elsewhere, e.g. in another script or in the scene), which might cause slight "
"delay, especially when loading scenes. To avoid unnecessary delays when "
"loading something multiple times, either store the resource in a variable or "
"use [method preload].\n"
"[b]Note:[/b] Resource paths can be obtained by right-clicking on a resource "
"in the FileSystem dock and choosing \"Copy Path\" or by dragging the file "
"from the FileSystem dock into the script.\n"
"[codeblock]\n"
"# Load a scene called main located in the root of the project directory and "
"cache it in a variable.\n"
"var main = load(\"res://main.tscn\") # main will contain a PackedScene "
"resource.\n"
"[/codeblock]\n"
"[b]Important:[/b] The path must be absolute, a local path will just return "
"[code]null[/code].\n"
"This method is a simplified version of [method ResourceLoader.load], which "
"can be used for more advanced scenarios."
msgstr ""
"从位于 [code]path[/code] 的文件系统中加载资源。资源被加载到方法调用上(除非已"
"经在其他地方引用了它,例如在另一个脚本或场景中),这可能会导致轻微的延迟,尤"
"其是在加载场景时。为避免多次加载时不必要的延迟,请将资源存储在变量中或使用 "
"[method preload]。\n"
"[b]注意:[/b] 可以通过右击文件系统停靠面板中的资源并选择“复制路径”,或者将文"
"件从文件系统停靠面板拖到脚本中来获得资源路径。\n"
"[codeblock]\n"
"# Load a scene called main located in the root of the project directory and "
"cache it in a variable.\n"
"var main = load(\"res://main.tscn\") # main will contain a PackedScene "
"resource.\n"
"[/codeblock]\n"
"[b]重要:[/b] 路径必须是绝对路径,本地路径只会返回 [code]null[/code] 。"

#: modules/gdscript/doc_classes/@GDScript.xml:541
msgid ""
"Natural logarithm. The amount of time needed to reach a certain level of "
"continuous growth.\n"
"[b]Note:[/b] This is not the same as the \"log\" function on most "
"calculators, which uses a base 10 logarithm.\n"
"[codeblock]\n"
"log(10) # Returns 2.302585\n"
"[/codeblock]\n"
"[b]Note:[/b] The logarithm of [code]0[/code] returns [code]-inf[/code], "
"while negative values return [code]-nan[/code]."
msgstr ""
"自然对数。 达到一定程度的持续增长所需的时间。\n"
"[b]注意:[/b] 与大多数计算器上的对数“log”函数不同,后者使用以10为底的对数。\n"
"[codeblock]\n"
"log(10) # Returns 2.302585\n"
"[/codeblock]\n"
"[b]注意:[/b] [code]0[/code] 的对数返回 [code]-inf[/code] ,而负值返回 "
"[code]-nan[/code] 。"

#: modules/gdscript/doc_classes/@GDScript.xml:554
msgid ""
"Returns the maximum of two values.\n"
"[codeblock]\n"
"max(1, 2) # Returns 2\n"
"max(-3.99, -4) # Returns -3.99\n"
"[/codeblock]"
msgstr ""
"返回两个值的最大值。\n"
"[codeblock]\n"
"max(1, 2) # Returns 2\n"
"max(-3.99, -4) # Returns -3.99\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:566
msgid ""
"Returns the minimum of two values.\n"
"[codeblock]\n"
"min(1, 2) # Returns 1\n"
"min(-3.99, -4) # Returns -4\n"
"[/codeblock]"
msgstr ""
"返回两个值的最小值\n"
"[codeblock]\n"
"min(1, 2) # Returns 1\n"
"min(-3.99, -4) # Returns -4\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:579
msgid ""
"Moves [code]from[/code] toward [code]to[/code] by the [code]delta[/code] "
"value.\n"
"Use a negative [code]delta[/code] value to move away.\n"
"[codeblock]\n"
"move_toward(5, 10, 4) # Returns 9\n"
"move_toward(10, 5, 4) # Returns 6\n"
"move_toward(10, 5, -1.5) # Returns 11.5\n"
"[/codeblock]"
msgstr ""
"通过 [code]delta[/code] 值将 [code]from[/code] 移向 [code]to[/code] 。\n"
"使用负的 [code]delta[/code] 值将移开。\n"
"[codeblock]\n"
"move_toward(5, 10, 4) # Returns 9\n"
"move_toward(10, 5, 4) # Returns 6\n"
"move_toward(10, 5, -1.5) # Returns 11.5\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:592
msgid ""
"Returns the nearest equal or larger power of 2 for integer [code]value[/"
"code].\n"
"In other words, returns the smallest value [code]a[/code] where [code]a = "
"pow(2, n)[/code] such that [code]value <= a[/code] for some non-negative "
"integer [code]n[/code].\n"
"[codeblock]\n"
"nearest_po2(3) # Returns 4\n"
"nearest_po2(4) # Returns 4\n"
"nearest_po2(5) # Returns 8\n"
"\n"
"nearest_po2(0) # Returns 0 (this may not be what you expect)\n"
"nearest_po2(-1) # Returns 0 (this may not be what you expect)\n"
"[/codeblock]\n"
"[b]WARNING:[/b] Due to the way it is implemented, this function returns "
"[code]0[/code] rather than [code]1[/code] for non-positive values of "
"[code]value[/code] (in reality, 1 is the smallest integer power of 2)."
msgstr ""
"返回最接近且不小于整数 [code]value[/code] 的2的幂。\n"
"换句话说,返回最小值 [code]a[/code] ,其中 [code]a = pow(2, n)[/code] ,某些"
"非负整数 [code]n[/code] 使得值 [code]value <= a[/code] 。\n"
"[codeblock]\n"
"nearest_po2(3) # Returns 4\n"
"nearest_po2(4) # Returns 4\n"
"nearest_po2(5) # Returns 8\n"
"\n"
"nearest_po2(0) # Returns 0 (this may not be what you expect)\n"
"nearest_po2(-1) # Returns 0 (this may not be what you expect)\n"
"[/codeblock]\n"
"[b]警告:[/b]由于其实现方式,对于 [code]value[/code] 的非正值,此函数返回 "
"[code]0[/code] 而不是 [code]1[/code] (实际上,1是2的最小整数幂)。"

#: modules/gdscript/doc_classes/@GDScript.xml:609
msgid ""
"Returns an integer representing the Unicode code point of the given Unicode "
"character [code]char[/code].\n"
"[codeblock]\n"
"a = ord(\"A\") # a is 65\n"
"a = ord(\"a\") # a is 97\n"
"a = ord(\"€\") # a is 8364\n"
"[/codeblock]\n"
"This is the inverse of [method char]."
msgstr ""
"返回一个整数,该整数表示给定Unicode字符 [code]char[/code] 的Unicode代码点。\n"
"[codeblock]\n"
"a = ord(\"A\") # a is 65\n"
"a = ord(\"a\") # a is 97\n"
"a = ord(\"€\") # a is 8364\n"
"[/codeblock]\n"
"这是 [method char] 的逆运算。"

#: modules/gdscript/doc_classes/@GDScript.xml:622
msgid ""
"Parse JSON text to a Variant. (Use [method typeof] to check if the Variant's "
"type is what you expect.)\n"
"[b]Note:[/b] The JSON specification does not define integer or float types, "
"but only a [i]number[/i] type. Therefore, parsing a JSON text will convert "
"all numerical values to [float] types.\n"
"[b]Note:[/b] JSON objects do not preserve key order like Godot dictionaries, "
"thus, you should not rely on keys being in a certain order if a dictionary "
"is constructed from JSON. In contrast, JSON arrays retain the order of their "
"elements:\n"
"[codeblock]\n"
"var p = JSON.parse('[\"hello\", \"world\", \"!\"]')\n"
"if typeof(p.result) == TYPE_ARRAY:\n"
"    print(p.result[0]) # Prints \"hello\"\n"
"else:\n"
"    push_error(\"Unexpected results.\")\n"
"[/codeblock]\n"
"See also [JSON] for an alternative way to parse JSON text."
msgstr ""
"将JSON文本解析为Variant。(使用 [method typeof] 检查Variant的类型是否符合您的"
"期望。)\n"
"[b]注意:[/b] JSON规范未定义整数或浮点类型,而仅定义了 [i]number[/i] 类型。 "
"因此,解析JSON文本会将所有数值转换为 [float] 类型。\n"
"[b]注意:[/b] JSON对象不会像Godot字典那样保留键顺序,因此,如果字典是由JSON构"
"造的,则不应依赖于特定顺序的键。相反,JSON数组保留其元素的顺序:\n"
"[codeblock]\n"
"var p = JSON.parse('[\"hello\", \"world\", \"!\"]')\n"
"if typeof(p.result) == TYPE_ARRAY:\n"
"    print(p.result[0]) # Prints \"hello\"\n"
"else:\n"
"    push_error(\"Unexpected results.\")\n"
"[/codeblock]\n"
"另请参阅 [JSON] 以获取解析JSON文本的另一种方法。"

#: modules/gdscript/doc_classes/@GDScript.xml:640
#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:142
msgid ""
"Converts a 2D point expressed in the polar coordinate system (a distance "
"from the origin [code]r[/code] and an angle [code]th[/code]) to the "
"cartesian coordinate system (X and Y axis)."
msgstr ""
"将以极坐标系表示的2D点(从到原点的距离[code]r[/code] 和一个角度 [code]th[/"
"code])转换为笛卡尔(cartesian)坐标系(X和Y轴)。"

#: modules/gdscript/doc_classes/@GDScript.xml:648
#, fuzzy
msgid ""
"Returns the integer modulus of [code]a/b[/code] that wraps equally in "
"positive and negative.\n"
"[codeblock]\n"
"for i in range(-3, 4):\n"
"    print(\"%2d %2d %2d\" % [i, i % 3, posmod(i, 3)])\n"
"[/codeblock]\n"
"Produces:\n"
"[codeblock]\n"
"-3  0  0\n"
"-2 -2  1\n"
"-1 -1  2\n"
" 0  0  0\n"
" 1  1  1\n"
" 2  2  2\n"
" 3  0  0\n"
"[/codeblock]"
msgstr ""
"返回 [code]a/b[/code] 的整数余数,该整数余数以正数和负数均等地环绕。\n"
"[codeblock]\n"
"var i = -6\n"
"while i < 5:\n"
"    prints(i, posmod(i, 3))\n"
"    i += 1\n"
"[/codeblock]\n"
"Produces:\n"
"[codeblock]\n"
"-6 0\n"
"-5 1\n"
"-4 2\n"
"-3 0\n"
"-2 1\n"
"-1 2\n"
"0 0\n"
"1 1\n"
"2 2\n"
"3 0\n"
"4 1\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:670
#, fuzzy
msgid ""
"Returns the result of [code]base[/code] raised to the power of [code]exp[/"
"code].\n"
"[codeblock]\n"
"pow(2, 5) # Returns 32.0\n"
"[/codeblock]"
msgstr ""
"返回 [code]x[/code] 提高到 [code]y[/code] 次幂的结果。\n"
"[codeblock]\n"
"pow(2, 5) # Returns 32\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:680
msgid ""
"Returns a [Resource] from the filesystem located at [code]path[/code]. The "
"resource is loaded during script parsing, i.e. is loaded with the script and "
"[method preload] effectively acts as a reference to that resource. Note that "
"the method requires a constant path. If you want to load a resource from a "
"dynamic/variable path, use [method load].\n"
"[b]Note:[/b] Resource paths can be obtained by right clicking on a resource "
"in the Assets Panel and choosing \"Copy Path\" or by dragging the file from "
"the FileSystem dock into the script.\n"
"[codeblock]\n"
"# Instance a scene.\n"
"var diamond = preload(\"res://diamond.tscn\").instance()\n"
"[/codeblock]"
msgstr ""
"从位于 [code]path[/code] 的文件系统返回一个 [Resource]。资源是在脚本解析期间"
"加载的,即脚本加载的资源,[method preload] 有效地充当了对该资源的引用。请注"
"意,该方法需要恒定路径。如果要从动态/可变路径加载资源,请使用 [method "
"load] 。\n"
"[b]注意:[/b] 可以通过右键单击资产面板中的资源并选择“复制路径”,或者将文件从"
"文件系统停靠面板拖到脚本中来获得资源路径。\n"
"[codeblock]\n"
"# Instance a scene.\n"
"var diamond = preload(\"res://diamond.tscn\").instance()\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:691
msgid ""
"Converts one or more arguments of any type to string in the best way "
"possible and prints them to the console.\n"
"[codeblock]\n"
"a = [1, 2, 3]\n"
"print(\"a\", \"=\", a) # Prints a=[1, 2, 3]\n"
"[/codeblock]\n"
"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to "
"print error and warning messages instead of [method print]. This "
"distinguishes them from print messages used for debugging purposes, while "
"also displaying a stack trace when an error or warning is printed."
msgstr ""

#: modules/gdscript/doc_classes/@GDScript.xml:702
msgid "Like [method print], but prints only when used in debug mode."
msgstr "与 [method print] 类似,但仅在调试模式下使用时才打印。"

#: modules/gdscript/doc_classes/@GDScript.xml:708
msgid ""
"Prints a stack track at code location, only works when running with debugger "
"turned on.\n"
"Output in the console would look something like this:\n"
"[codeblock]\n"
"Frame 0 - res://test.gd:16 in function '_process'\n"
"[/codeblock]"
msgstr ""
"在代码位置打印堆栈轨迹,仅在打开调试器的情况下运行。\n"
"控制台中的输出如下所示:\n"
"[codeblock]\n"
"Frame 0 - res://test.gd:16 in function '_process'\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:718
msgid ""
"Prints one or more arguments to strings in the best way possible to standard "
"error line.\n"
"[codeblock]\n"
"printerr(\"prints to stderr\")\n"
"[/codeblock]"
msgstr ""
"以可能的最佳方式将一个或多个参数作为字符串输出到标准错误行。\n"
"[codeblock]\n"
"printerr(\"prints to stderr\")\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:727
msgid ""
"Prints one or more arguments to strings in the best way possible to console. "
"No newline is added at the end.\n"
"[codeblock]\n"
"printraw(\"A\")\n"
"printraw(\"B\")\n"
"# Prints AB\n"
"[/codeblock]\n"
"[b]Note:[/b] Due to limitations with Godot's built-in console, this only "
"prints to the terminal. If you need to print in the editor, use another "
"method, such as [method print]."
msgstr ""
"以最佳的方式将一个或多个参数作为字符串输出到控制台。末尾没有添加换行符。\n"
"[codeblock]\n"
"printraw(\"A\")\n"
"printraw(\"B\")\n"
"# Prints AB\n"
"[/codeblock]\n"
"[b]注意:[/b] 由于Godot内置控制台的限制,此内容仅会打印到终端上。如果需要在编"
"辑器中打印,请使用其他方法,例如 [method print]。"

#: modules/gdscript/doc_classes/@GDScript.xml:739
msgid ""
"Prints one or more arguments to the console with a space between each "
"argument.\n"
"[codeblock]\n"
"prints(\"A\", \"B\", \"C\") # Prints A B C\n"
"[/codeblock]"
msgstr ""
"将一个或多个参数打印到控制台,每个参数之间有一个空格。\n"
"[codeblock]\n"
"prints(\"A\", \"B\", \"C\") # Prints A B C\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:748
msgid ""
"Prints one or more arguments to the console with a tab between each "
"argument.\n"
"[codeblock]\n"
"printt(\"A\", \"B\", \"C\") # Prints A       B       C\n"
"[/codeblock]"
msgstr ""
"将一个或多个参数打印到控制台,每个参数之间有一个制表符。\n"
"[codeblock]\n"
"printt(\"A\", \"B\", \"C\") # Prints A       B       C\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:758
#, fuzzy
msgid ""
"Pushes an error message to Godot's built-in debugger and to the OS "
"terminal.\n"
"[codeblock]\n"
"push_error(\"test error\") # Prints \"test error\" to debugger and terminal "
"as error call\n"
"[/codeblock]\n"
"[b]Note:[/b] Errors printed this way will not pause project execution. To "
"print an error message and pause project execution in debug builds, use "
"[code]assert(false, \"test error\")[/code] instead."
msgstr ""
"将错误消息推送到Godot的内置调试器和OS终端。\n"
"[codeblock]\n"
"push_error(\"test error\") # Prints \"test error\" to debugger and terminal "
"as error call\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:769
msgid ""
"Pushes a warning message to Godot's built-in debugger and to the OS "
"terminal.\n"
"[codeblock]\n"
"push_warning(\"test warning\") # Prints \"test warning\" to debugger and "
"terminal as warning call\n"
"[/codeblock]"
msgstr ""
"将警告消息推送到Godot的内置调试器和OS终端。\n"
"[codeblock]\n"
"push_warning(\"test warning\") # Prints \"test warning\" to debugger and "
"terminal as warning call\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:779
#, fuzzy
msgid ""
"Converts an angle expressed in radians to degrees.\n"
"[codeblock]\n"
"rad2deg(0.523599) # Returns 30.0\n"
"[/codeblock]"
msgstr ""
"将以弧度表示的角度转换为度。\n"
"[codeblock]\n"
"rad2deg(0.523599) # Returns 30\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:790
msgid ""
"Random range, any floating point value between [code]from[/code] and "
"[code]to[/code].\n"
"[codeblock]\n"
"prints(rand_range(0, 1), rand_range(0, 1)) # Prints e.g. 0.135591 0.405263\n"
"[/codeblock]"
msgstr ""
"随机范围,[code]from[/code] 和 [code]to[/code] 之间的任何浮点值。\n"
"[codeblock]\n"
"prints(rand_range(0, 1), rand_range(0, 1)) # Prints e.g. 0.135591 0.405263\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:800
msgid ""
"Random from seed: pass a [code]seed[/code], and an array with both number "
"and new seed is returned. \"Seed\" here refers to the internal state of the "
"pseudo random number generator. The internal state of the current "
"implementation is 64 bits."
msgstr ""
"来自种子的随机数:传入一个 [code]seed[/code],然后返回同时包含数字和新种子的"
"数组。这里的“种子”是指伪随机数生成器的内部状态。当前实现的内部状态为64位。"

#: modules/gdscript/doc_classes/@GDScript.xml:806
msgid ""
"Returns a random floating point value on the interval [code][0, 1][/code].\n"
"[codeblock]\n"
"randf() # Returns e.g. 0.375671\n"
"[/codeblock]"
msgstr ""
"返回区间 [code][0, 1][/code] 上的随机浮点值。\n"
"[codeblock]\n"
"randf() # Returns e.g. 0.375671\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:815
#, fuzzy
msgid ""
"Returns a random unsigned 32-bit integer. Use remainder to obtain a random "
"value in the interval [code][0, N - 1][/code] (where N is smaller than "
"2^32).\n"
"[codeblock]\n"
"randi()           # Returns random integer between 0 and 2^32 - 1\n"
"randi() % 20      # Returns random integer between 0 and 19\n"
"randi() % 100     # Returns random integer between 0 and 99\n"
"randi() % 100 + 1 # Returns random integer between 1 and 100\n"
"[/codeblock]"
msgstr ""
"返回一个随机的无符号32位整数。使用余数获得区间 [code][0, N - 1][/code] (其中"
"N小于2^32)的随机值。\n"
"[codeblock]\n"
"randi()           # Returns random integer between 0 and 2^32 - 1\n"
"randi() % 20      # Returns random integer between 0 and 19\n"
"randi() % 100     # Returns random integer between 0 and 99\n"
"randi() % 100 + 1 # Returns random integer between 1 and 100\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:827
msgid ""
"Randomizes the seed (or the internal state) of the random number generator. "
"Current implementation reseeds using a number based on time.\n"
"[codeblock]\n"
"func _ready():\n"
"    randomize()\n"
"[/codeblock]"
msgstr ""
"随机化随机数生成器的种子(或内部状态)。当前的实现使用基于时间的数字来重新设"
"定种子。\n"
"[codeblock]\n"
"func _ready():\n"
"   randomize()\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:837
msgid ""
"Returns an array with the given range. Range can be 1 argument [code]N[/"
"code] (0 to [code]N[/code] - 1), two arguments ([code]initial[/code], "
"[code]final - 1[/code]) or three arguments ([code]initial[/code], "
"[code]final - 1[/code], [code]increment[/code]). Returns an empty array if "
"the range isn't valid (e.g. [code]range(2, 5, -1)[/code] or [code]range(5, "
"5, 1)[/code]).\n"
"Returns an array with the given range. [code]range()[/code] can have 1 "
"argument N ([code]0[/code] to [code]N - 1[/code]), two arguments "
"([code]initial[/code], [code]final - 1[/code]) or three arguments "
"([code]initial[/code], [code]final - 1[/code], [code]increment[/code]). "
"[code]increment[/code] can be negative. If [code]increment[/code] is "
"negative, [code]final - 1[/code] will become [code]final + 1[/code]. Also, "
"the initial value must be greater than the final value for the loop to run.\n"
"[codeblock]\n"
"print(range(4))\n"
"print(range(2, 5))\n"
"print(range(0, 6, 2))\n"
"[/codeblock]\n"
"Output:\n"
"[codeblock]\n"
"[0, 1, 2, 3]\n"
"[2, 3, 4]\n"
"[0, 2, 4]\n"
"[/codeblock]\n"
"To iterate over an [Array] backwards, use:\n"
"[codeblock]\n"
"var array = [3, 6, 9]\n"
"var i := array.size() - 1\n"
"while i >= 0:\n"
"    print(array[i])\n"
"    i -= 1\n"
"[/codeblock]\n"
"Output:\n"
"[codeblock]\n"
"9\n"
"6\n"
"3\n"
"[/codeblock]"
msgstr ""

#: modules/gdscript/doc_classes/@GDScript.xml:874
msgid ""
"Maps a [code]value[/code] from range [code][istart, istop][/code] to [code]"
"[ostart, ostop][/code].\n"
"[codeblock]\n"
"range_lerp(75, 0, 100, -1, 1) # Returns 0.5\n"
"[/codeblock]"
msgstr ""
"将 [code]value[/code] 从范围 [code][istart, istop][/code] 映射到 [code]"
"[ostart, ostop][/code]。\n"
"[codeblock]\n"
"range_lerp(75, 0, 100, -1, 1) # Returns 0.5\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:884
#, fuzzy
msgid ""
"Rounds [code]s[/code] to the nearest whole number, with halfway cases "
"rounded away from zero.\n"
"[codeblock]\n"
"a = round(2.49) # a is 2.0\n"
"a = round(2.5)  # a is 3.0\n"
"a = round(2.51) # a is 3.0\n"
"[/codeblock]\n"
"See also [method floor], [method ceil], [method stepify], and [int]."
msgstr ""
"将 [code]s[/code] 舍入到最接近的整数,中间的情况舍入为零。\n"
"[codeblock]\n"
"round(2.6) # Returns 3\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:897
msgid ""
"Sets seed for the random number generator.\n"
"[codeblock]\n"
"my_seed = \"Godot Rocks\"\n"
"seed(my_seed.hash())\n"
"[/codeblock]"
msgstr ""
"为随机数生成器设置种子。\n"
"[codeblock]\n"
"my_seed = \"Godot Rocks\"\n"
"seed(my_seed.hash())\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:908
msgid ""
"Returns the sign of [code]s[/code]: -1 or 1. Returns 0 if [code]s[/code] is "
"0.\n"
"[codeblock]\n"
"sign(-6) # Returns -1\n"
"sign(0)  # Returns 0\n"
"sign(6)  # Returns 1\n"
"[/codeblock]"
msgstr ""
"返回 [code]s[/code] 的符号:-1或1。如果 [code]s[/code] 为0,则返回0。\n"
"[codeblock]\n"
"sign(-6) # Returns -1\n"
"sign(0)  # Returns 0\n"
"sign(6)  # Returns 1\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:920
msgid ""
"Returns the sine of angle [code]s[/code] in radians.\n"
"[codeblock]\n"
"sin(0.523599) # Returns 0.5\n"
"[/codeblock]"
msgstr ""
"返回弧度角 [code]s[/code] 的正弦值。\n"
"[codeblock]\n"
"sin(0.523599) # Returns 0.5\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:930
msgid ""
"Returns the hyperbolic sine of [code]s[/code].\n"
"[codeblock]\n"
"a = log(2.0) # Returns 0.693147\n"
"sinh(a) # Returns 0.75\n"
"[/codeblock]"
msgstr ""
"返回 [code]s[/code] 的双曲正弦值。\n"
"[codeblock]\n"
"a = log(2.0) # Returns 0.693147\n"
"sinh(a) # Returns 0.75\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:943
#, fuzzy
msgid ""
"Returns the result of smoothly interpolating the value of [code]s[/code] "
"between [code]0[/code] and [code]1[/code], based on the where [code]s[/code] "
"lies with respect to the edges [code]from[/code] and [code]to[/code].\n"
"The return value is [code]0[/code] if [code]s <= from[/code], and [code]1[/"
"code] if [code]s >= to[/code]. If [code]s[/code] lies between [code]from[/"
"code] and [code]to[/code], the returned value follows an S-shaped curve that "
"maps [code]s[/code] 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/3.4/img/"
"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, "
"-1.6521) return values[/url]"
msgstr ""
"根据 [code]s[/code] 相对于 [code]from[/code]和 [code]to[/code] 的边缘所在的位"
"置,返回在 [code]0[/code] 和 [code]1[/code] 之间平滑内插 [code]s[/code] 的值"
"的结果 。\n"
"如果 [code]s <= from[/code],则返回值为 [code]0[/code],如果 [code]s >= to[/"
"code],则返回值为 [code]1[/code]。如果 [code]s[/code] 位于 [code]from[/code] "
"和 [code]to[/code] 之间,则返回值遵循S形曲线,该曲线将 [code]s[/code] 映射到 "
"[code]0[/code] 和 [code]1[/code] 之间。\n"
"该S形曲线是三次Hermite内插器,由 [code]f(s) = 3*s^2 - 2*s^3[/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]"

#: modules/gdscript/doc_classes/@GDScript.xml:960
#, fuzzy
msgid ""
"Returns the square root of [code]s[/code], where [code]s[/code] is a non-"
"negative number.\n"
"[codeblock]\n"
"sqrt(9) # Returns 3\n"
"[/codeblock]\n"
"[b]Note:[/b] Negative values of [code]s[/code] return NaN. If you need "
"negative inputs, use [code]System.Numerics.Complex[/code] in C#."
msgstr ""
"返回 [code]s[/code] 的平方根,其中 [code]s[/code] 是非负数。\n"
"[codeblock]\n"
"sqrt(9) # Returns 3\n"
"[/codeblock]\n"
"[b]注意:[/b] [code]s[/code] 的负值返回NaN。如果需要负输入,请在 C# 中使用 "
"[code]System.Numerics.Complex[/code]。"

#: modules/gdscript/doc_classes/@GDScript.xml:971
#, fuzzy
msgid ""
"Returns the position of the first non-zero digit, after the decimal point. "
"Note that the maximum return value is 10, which is a design decision in the "
"implementation.\n"
"[codeblock]\n"
"n = step_decimals(5)           # n is 0\n"
"n = step_decimals(1.0005)      # n is 4\n"
"n = step_decimals(0.000000005) # n is 9\n"
"[/codeblock]"
msgstr ""
"返回小数点后第一个非零数字的位置。请注意,最大返回值为10,这是实现中的设计决"
"策。\n"
"[codeblock]\n"
"# n is 0\n"
"n = step_decimals(5)\n"
"# n is 4\n"
"n = step_decimals(1.0005)\n"
"# n is 9\n"
"n = step_decimals(0.000000005)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:984
#, fuzzy
msgid ""
"Snaps float value [code]s[/code] to a given [code]step[/code]. This can also "
"be used to round a floating point number to an arbitrary number of "
"decimals.\n"
"[codeblock]\n"
"stepify(100, 32) # Returns 96.0\n"
"stepify(3.14159, 0.01) # Returns 3.14\n"
"[/codeblock]\n"
"See also [method ceil], [method floor], [method round], and [int]."
msgstr ""
"将浮点值 [code]s[/code] 按照给定的 [code]step[/code] 对齐。也可以用于将浮点数"
"四舍五入为任意的小数位数。\n"
"[codeblock]\n"
"stepify(100, 32) # Returns 96\n"
"stepify(3.14159, 0.01) # Returns 3.14\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:995
#, fuzzy
msgid ""
"Converts one or more arguments of any type to string in the best way "
"possible.\n"
"[codeblock]\n"
"var a = [10, 20, 30]\n"
"var b = str(a);\n"
"len(a) # Returns 3\n"
"len(b) # Returns 12\n"
"[/codeblock]"
msgstr ""
"以尽可能最佳的方式将一个或多个参数转换为字符串。\n"
"[codeblock]\n"
"var a = [10, 20, 30]\n"
"var b = str(a);\n"
"len(a) # Returns 3\n"
"len(b) # Returns 12\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1008
msgid ""
"Converts a formatted string that was returned by [method var2str] to the "
"original value.\n"
"[codeblock]\n"
"a = '{ \"a\": 1, \"b\": 2 }'\n"
"b = str2var(a)\n"
"print(b[\"a\"]) # Prints 1\n"
"[/codeblock]"
msgstr ""
"将 [method var2str] 返回的格式化字符串转换为原始值。\n"
"[codeblock]\n"
"a = '{ \"a\": 1, \"b\": 2 }'\n"
"b = str2var(a)\n"
"print(b[\"a\"]) # Prints 1\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1020
msgid ""
"Returns the tangent of angle [code]s[/code] in radians.\n"
"[codeblock]\n"
"tan(deg2rad(45)) # Returns 1\n"
"[/codeblock]"
msgstr ""
"返回弧度角 [code]s[/code] 的正切。\n"
"[codeblock]\n"
"tan(deg2rad(45)) # Returns 1\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1030
#, fuzzy
msgid ""
"Returns the hyperbolic tangent of [code]s[/code].\n"
"[codeblock]\n"
"a = log(2.0) # a is 0.693147\n"
"b = tanh(a)  # b is 0.6\n"
"[/codeblock]"
msgstr ""
"返回 [code]s[/code] 的双曲正切值。\n"
"[codeblock]\n"
"a = log(2.0) # Returns 0.693147\n"
"tanh(a)      # Returns 0.6\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1041
msgid ""
"Converts a [Variant] [code]var[/code] to JSON text and return the result. "
"Useful for serializing data to store or send over the network.\n"
"[codeblock]\n"
"# Both numbers below are integers.\n"
"a = { \"a\": 1, \"b\": 2 }\n"
"b = to_json(a)\n"
"print(b) # {\"a\":1, \"b\":2}\n"
"# Both numbers above are floats, even if they display without any decimal "
"places.\n"
"[/codeblock]\n"
"[b]Note:[/b] The JSON specification does not define integer or float types, "
"but only a [i]number[/i] type. Therefore, converting a [Variant] to JSON "
"text will convert all numerical values to [float] types.\n"
"See also [JSON] for an alternative way to convert a [Variant] to JSON text."
msgstr ""
"将 [Variant] [code]var[/code] 转换为JSON文本并返回结果。对于序列化数据以通过"
"网络存储或发送很有用。\n"
"[codeblock]\n"
"# Both numbers below are integers.\n"
"a = { \"a\": 1, \"b\": 2 }\n"
"b = to_json(a)\n"
"print(b) # {\"a\":1, \"b\":2}\n"
"# Both numbers above are floats, even if they display without any decimal "
"places.\n"
"[/codeblock]\n"
"[b]注意:[/b] JSON规范未定义整数或浮点类型,而仅定义了 [i]number[/i] 类型。 "
"因此,将 [Variant] 转换为JSON文本会将所有数值转换为 [float] 类型。\n"
"另请参见 [JSON],以将 [Variant] 转换为JSON文本的另一种方法。"

#: modules/gdscript/doc_classes/@GDScript.xml:1057
#, fuzzy
msgid ""
"Returns whether the given class exists in [ClassDB].\n"
"[codeblock]\n"
"type_exists(\"Sprite\") # Returns true\n"
"type_exists(\"Variant\") # Returns false\n"
"[/codeblock]"
msgstr ""
"返回给定的类在 [ClassDB] 中是否存在。\n"
"[codeblock]\n"
"type_exists(\"Sprite2D\") # Returns true\n"
"type_exists(\"Variant\") # Returns false\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1068
msgid ""
"Returns the internal type of the given Variant object, using the [enum "
"Variant.Type] values.\n"
"[codeblock]\n"
"p = parse_json('[\"a\", \"b\", \"c\"]')\n"
"if typeof(p) == TYPE_ARRAY:\n"
"    print(p[0]) # Prints a\n"
"else:\n"
"    print(\"unexpected results\")\n"
"[/codeblock]"
msgstr ""
"使用 [enum Variant.Type] 值返回给定 Variant 对象的内部类型。\n"
"[codeblock]\n"
"p = parse_json('[\"a\", \"b\", \"c\"]')\n"
"if typeof(p) == TYPE_ARRAY:\n"
"    print(p[0]) # Prints a\n"
"else:\n"
"    print(\"unexpected results\")\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1082
msgid ""
"Checks that [code]json[/code] is valid JSON data. Returns an empty string if "
"valid, or an error message otherwise.\n"
"[codeblock]\n"
"j = to_json([1, 2, 3])\n"
"v = validate_json(j)\n"
"if not v:\n"
"    print(\"Valid JSON.\")\n"
"else:\n"
"    push_error(\"Invalid JSON: \" + v)\n"
"[/codeblock]"
msgstr ""
"检查 [code]json[/code] 是有效的JSON数据。如果有效,则返回空字符串,否则返回错"
"误消息。\n"
"[codeblock]\n"
"j = to_json([1, 2, 3])\n"
"v = validate_json(j)\n"
"if not v:\n"
"    print(\"Valid JSON.\")\n"
"else:\n"
"    push_error(\"Invalid JSON: \" + v)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1098
msgid ""
"Encodes a variable value to a byte array. When [code]full_objects[/code] is "
"[code]true[/code] encoding objects is allowed (and can potentially include "
"code)."
msgstr ""
"将变量值编码为一个字节数组。当 [code]full_objects[/code] 为 [code]true[/"
"code] 时,允许对对象进行编码(并且可能包含代码)。"

#: modules/gdscript/doc_classes/@GDScript.xml:1105
msgid ""
"Converts a Variant [code]var[/code] to a formatted string that can later be "
"parsed using [method str2var].\n"
"[codeblock]\n"
"a = { \"a\": 1, \"b\": 2 }\n"
"print(var2str(a))\n"
"[/codeblock]\n"
"prints\n"
"[codeblock]\n"
"{\n"
"\"a\": 1,\n"
"\"b\": 2\n"
"}\n"
"[/codeblock]"
msgstr ""
"将一个 Variant [code]var[/code] 转换为一个格式化的字符串,以后可以使用 "
"[method str2var] 对其进行解析。\n"
"[codeblock]\n"
"a = { \"a\": 1, \"b\": 2 }\n"
"print(var2str(a))\n"
"[/codeblock]\n"
"prints\n"
"[codeblock]\n"
"{\n"
"\"a\": 1,\n"
"\"b\": 2\n"
"}\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/@GDScript.xml:1123
msgid ""
"Returns a weak reference to an object.\n"
"A weak reference to an object is not enough to keep the object alive: when "
"the only remaining references to a referent are weak references, garbage "
"collection is free to destroy the referent and reuse its memory for "
"something else. However, until the object is actually destroyed the weak "
"reference may return the object even if there are no strong references to it."
msgstr ""
"返回一个对对象的弱引用。\n"
"一个对对象的弱引用不足以使对象保持活动状态:当仅剩余的对引用对象的引用是弱引"
"用时,垃圾回收可以随意销毁该引用并将其内存重用于其他用途。但是,直到没有实际"
"破坏对象为止,弱引用仍可能会返回该对象,即使没有强引用也是如此。"

#: modules/gdscript/doc_classes/@GDScript.xml:1133
msgid ""
"Wraps float [code]value[/code] between [code]min[/code] and [code]max[/"
"code].\n"
"Usable for creating loop-alike behavior or infinite surfaces.\n"
"[codeblock]\n"
"# Infinite loop between 5.0 and 9.9\n"
"value = wrapf(value + 0.1, 5.0, 10.0)\n"
"[/codeblock]\n"
"[codeblock]\n"
"# Infinite rotation (in radians)\n"
"angle = wrapf(angle + 0.1, 0.0, TAU)\n"
"[/codeblock]\n"
"[codeblock]\n"
"# Infinite rotation (in radians)\n"
"angle = wrapf(angle + 0.1, -PI, PI)\n"
"[/codeblock]\n"
"[b]Note:[/b] If [code]min[/code] is [code]0[/code], this is equivalent to "
"[method fposmod], so prefer using that instead.\n"
"[code]wrapf[/code] is more flexible than using the [method fposmod] approach "
"by giving the user control over the minimum value."
msgstr ""
"在 [code]min[/code] 和 [code]max[/code] 之间将 [code]value[/code] 循环。\n"
"可用于创建类似循环的行为或无限曲面。\n"
"[codeblock]\n"
"# Infinite loop between 5.0 and 9.9\n"
"value = wrapf(value + 0.1, 5.0, 10.0)\n"
"[/codeblock]\n"
"[codeblock]\n"
"# Infinite rotation (in radians)\n"
"angle = wrapf(angle + 0.1, 0.0, TAU)\n"
"[/codeblock]\n"
"[codeblock]\n"
"# Infinite rotation (in radians)\n"
"angle = wrapf(angle + 0.1, -PI, PI)\n"
"[/codeblock]\n"
"[b]注意:[/b] 如果 [code]min[/code] 为 [code]0[/code],则等价于 [method "
"fposmod],因此请改用它。\n"
"通过让用户控制最小值,[code]wrapf[/code] 比使用 [method fposmod] 方法更灵活。"

#: modules/gdscript/doc_classes/@GDScript.xml:1157
msgid ""
"Wraps integer [code]value[/code] between [code]min[/code] and [code]max[/"
"code].\n"
"Usable for creating loop-alike behavior or infinite surfaces.\n"
"[codeblock]\n"
"# Infinite loop between 5 and 9\n"
"frame = wrapi(frame + 1, 5, 10)\n"
"[/codeblock]\n"
"[codeblock]\n"
"# result is -2\n"
"var result = wrapi(-6, -5, -1)\n"
"[/codeblock]\n"
"[b]Note:[/b] If [code]min[/code] is [code]0[/code], this is equivalent to "
"[method posmod], so prefer using that instead.\n"
"[code]wrapi[/code] is more flexible than using the [method posmod] approach "
"by giving the user control over the minimum value."
msgstr ""
"在 [code]min[/code] 和 [code]max[/code] 之间包装整数 [code]value[/code]。\n"
"可用于创建类似循环的行为或无限曲面。\n"
"[codeblock]\n"
"# Infinite loop between 5 and 9\n"
"frame = wrapi(frame + 1, 5, 10)\n"
"[/codeblock]\n"
"[codeblock]\n"
"# result is -2\n"
"var result = wrapi(-6, -5, -1)\n"
"[/codeblock]\n"
"[b]注意:[/b] 如果 [code]min[/code] 为 [code]0[/code],则等价于 [method "
"posmod],因此建议改用它。\n"
"通过让用户控制最小值,[code]wrapi[/code] 比使用[method posmod]方法更灵活。"

#: modules/gdscript/doc_classes/@GDScript.xml:1176
msgid ""
"Stops the function execution and returns the current suspended state to the "
"calling function.\n"
"From the caller, call [method GDScriptFunctionState.resume] on the state to "
"resume execution. This invalidates the state. Within the resumed function, "
"[code]yield()[/code] returns whatever was passed to the [code]resume()[/"
"code] function call.\n"
"If passed an object and a signal, the execution is resumed when the object "
"emits the given signal. In this case, [code]yield()[/code] returns the "
"argument passed to [code]emit_signal()[/code] if the signal takes only one "
"argument, or an array containing all the arguments passed to "
"[code]emit_signal()[/code] if the signal takes multiple arguments.\n"
"You can also use [code]yield[/code] to wait for a function to finish:\n"
"[codeblock]\n"
"func _ready():\n"
"    yield(countdown(), \"completed\") # waiting for the countdown() function "
"to complete\n"
"    print('Ready')\n"
"\n"
"func countdown():\n"
"    yield(get_tree(), \"idle_frame\") # returns a GDScriptFunctionState "
"object to _ready()\n"
"    print(3)\n"
"    yield(get_tree().create_timer(1.0), \"timeout\")\n"
"    print(2)\n"
"    yield(get_tree().create_timer(1.0), \"timeout\")\n"
"    print(1)\n"
"    yield(get_tree().create_timer(1.0), \"timeout\")\n"
"\n"
"# prints:\n"
"# 3\n"
"# 2\n"
"# 1\n"
"# Ready\n"
"[/codeblock]\n"
"When yielding on a function, the [code]completed[/code] signal will be "
"emitted automatically when the function returns. It can, therefore, be used "
"as the [code]signal[/code] parameter of the [code]yield[/code] method to "
"resume.\n"
"In order to yield on a function, the resulting function should also return a "
"[code]GDScriptFunctionState[/code]. Notice [code]yield(get_tree(), "
"\"idle_frame\")[/code] from the above example."
msgstr ""

#: modules/gdscript/doc_classes/@GDScript.xml:1207
msgid ""
"Constant that represents how many times the diameter of a circle fits around "
"its perimeter. This is equivalent to [code]TAU / 2[/code]."
msgstr "代表圆直径适合其周长多少倍的常量。这等效于 [code]TAU / 2[/code]。"

#: modules/gdscript/doc_classes/@GDScript.xml:1210
#, fuzzy
msgid ""
"The circle constant, the circumference of the unit circle in radians. This "
"is equivalent to [code]PI * 2[/code], or 360 degrees in rotations."
msgstr "圆常量,单位圆周的弧度。"

#: modules/gdscript/doc_classes/@GDScript.xml:1213
msgid ""
"Positive floating-point infinity. This is the result of floating-point "
"division when the divisor is [code]0.0[/code]. For negative infinity, use "
"[code]-INF[/code]. Dividing by [code]-0.0[/code] will result in negative "
"infinity if the numerator is positive, so dividing by [code]0.0[/code] is "
"not the same as dividing by [code]-0.0[/code] (despite [code]0.0 == -0.0[/"
"code] returning [code]true[/code]).\n"
"[b]Note:[/b] Numeric infinity is only a concept with floating-point numbers, "
"and has no equivalent for integers. Dividing an integer number by [code]0[/"
"code] will not result in [constant INF] and will result in a run-time error "
"instead."
msgstr ""

#: modules/gdscript/doc_classes/@GDScript.xml:1217
msgid ""
"\"Not a Number\", an invalid floating-point value. [constant NAN] has "
"special properties, including that it is not equal to itself ([code]NAN == "
"NAN[/code] returns [code]false[/code]). It is output by some invalid "
"operations, such as dividing floating-point [code]0.0[/code] by [code]0.0[/"
"code].\n"
"[b]Note:[/b] \"Not a Number\" is only a concept with floating-point numbers, "
"and has no equivalent for integers. Dividing an integer [code]0[/code] by "
"[code]0[/code] will not result in [constant NAN] and will result in a run-"
"time error instead."
msgstr ""

#: doc/classes/@GlobalScope.xml:4
msgid "Global scope constants and variables."
msgstr "全局范围常量和变量。"

#: doc/classes/@GlobalScope.xml:7
#, fuzzy
msgid ""
"Global scope constants and variables. This is all that resides in the "
"globals, constants regarding error codes, scancodes, property hints, etc.\n"
"Singletons are also documented here, since they can be accessed from "
"anywhere."
msgstr ""
"全局范围常量和变量。这就是所有驻留在全局变量,有关错误代码,键码,属性提示等"
"的常量中的内容。\n"
"单例也记录在这里,因此可以从任何地方访问它们。"

#: doc/classes/@GlobalScope.xml:16
#, fuzzy
msgid "The [ARVRServer] singleton."
msgstr "[XRServer]单例。"

#: doc/classes/@GlobalScope.xml:19
msgid "The [AudioServer] singleton."
msgstr "[AudioServer] 单例。"

#: doc/classes/@GlobalScope.xml:22
msgid "The [CameraServer] singleton."
msgstr "[CameraServer]单例。"

#: doc/classes/@GlobalScope.xml:25
msgid "The [ClassDB] singleton."
msgstr "[ClassDB] 单例。"

#: doc/classes/@GlobalScope.xml:28
msgid "The [Engine] singleton."
msgstr "[Engine] 单例。"

#: doc/classes/@GlobalScope.xml:31
#, fuzzy
msgid "The [Geometry] singleton."
msgstr "[Geometry2D] 单例。"

#: doc/classes/@GlobalScope.xml:34
msgid "The [IP] singleton."
msgstr "[IP] 单例。"

#: doc/classes/@GlobalScope.xml:37
msgid "The [Input] singleton."
msgstr "[Input] 单例。"

#: doc/classes/@GlobalScope.xml:40
msgid "The [InputMap] singleton."
msgstr "[InputMap] 单例。"

#: doc/classes/@GlobalScope.xml:43
msgid "The [JSON] singleton."
msgstr "[JSON] 单例。"

#: doc/classes/@GlobalScope.xml:46
msgid ""
"The [JavaClassWrapper] singleton.\n"
"[b]Note:[/b] Only implemented on Android."
msgstr ""
"[JavaClassWrapper] 单例。\n"
"[b]注意:[/b] 仅在Android上实现。"

#: doc/classes/@GlobalScope.xml:50
msgid ""
"The [JavaScript] singleton.\n"
"[b]Note:[/b] Only implemented on HTML5."
msgstr ""
"[JavaScript] 单例。\n"
"[b]注意:[/b] 仅在HTML5上实现。"

#: doc/classes/@GlobalScope.xml:54
msgid "The [Marshalls] singleton."
msgstr "[Marshalls] 单例。"

#: doc/classes/@GlobalScope.xml:57
#, fuzzy
msgid "The [EditorNavigationMeshGenerator] singleton."
msgstr "[NavigationMeshGenerator] 单例。"

#: doc/classes/@GlobalScope.xml:60
msgid "The [OS] singleton."
msgstr "[OS] 单例。"

#: doc/classes/@GlobalScope.xml:63
msgid "The [Performance] singleton."
msgstr "[Performance] 单例。"

#: doc/classes/@GlobalScope.xml:66
#, fuzzy
msgid "The [Physics2DServer] singleton."
msgstr "[PhysicsServer2D] 单例。"

#: doc/classes/@GlobalScope.xml:69
#, fuzzy
msgid "The [PhysicsServer] singleton."
msgstr "[PhysicsServer2D] 单例。"

#: doc/classes/@GlobalScope.xml:72
msgid "The [ProjectSettings] singleton."
msgstr "[ProjectSettings] 单例。"

#: doc/classes/@GlobalScope.xml:75
msgid "The [ResourceLoader] singleton."
msgstr "[ResourceLoader]单例。"

#: doc/classes/@GlobalScope.xml:78
msgid "The [ResourceSaver] singleton."
msgstr "[ResourceSaver] 单例。"

#: doc/classes/@GlobalScope.xml:81
msgid "The [TranslationServer] singleton."
msgstr "[TranslationServer]单例。"

#: doc/classes/@GlobalScope.xml:84
msgid "The [VisualScriptEditor] singleton."
msgstr "[VisualScriptEditor]单例。"

#: doc/classes/@GlobalScope.xml:87
#, fuzzy
msgid "The [VisualServer] singleton."
msgstr "[DisplayServer] 单例。"

#: doc/classes/@GlobalScope.xml:92
msgid "Left margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr "左边距,常用于 [Control] 或 [StyleBox] 的派生类。"

#: doc/classes/@GlobalScope.xml:95
msgid "Top margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr "上边距,常用于 [Control] 或 [StyleBox] 的派生类。"

#: doc/classes/@GlobalScope.xml:98
msgid "Right margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr "右边距,常用于 [Control] 或 [StyleBox] 的派生类。"

#: doc/classes/@GlobalScope.xml:101
msgid ""
"Bottom margin, usually used for [Control] or [StyleBox]-derived classes."
msgstr "下边距,常用于 [Control] 或 [StyleBox] 的派生类。"

#: doc/classes/@GlobalScope.xml:104
msgid "Top-left corner."
msgstr "左上角。"

#: doc/classes/@GlobalScope.xml:107
msgid "Top-right corner."
msgstr "右上角。"

#: doc/classes/@GlobalScope.xml:110
msgid "Bottom-right corner."
msgstr "右下角。"

#: doc/classes/@GlobalScope.xml:113
msgid "Bottom-left corner."
msgstr "左下角。"

#: doc/classes/@GlobalScope.xml:116
msgid ""
"General vertical alignment, usually used for [Separator], [ScrollBar], "
"[Slider], etc."
msgstr "通用垂直对齐,常用于 [Separator]、[ScrollBar]、[Slider] 等。"

#: doc/classes/@GlobalScope.xml:119
msgid ""
"General horizontal alignment, usually used for [Separator], [ScrollBar], "
"[Slider], etc."
msgstr "通用水平对齐,常用于 [Separator]、[ScrollBar]、[Slider] 等。"

#: doc/classes/@GlobalScope.xml:122
msgid "Horizontal left alignment, usually for text-derived classes."
msgstr "水平左对齐,常用于文本派生类。"

#: doc/classes/@GlobalScope.xml:125
msgid "Horizontal center alignment, usually for text-derived classes."
msgstr "水平居中对齐,常用于文本派生类。"

#: doc/classes/@GlobalScope.xml:128
msgid "Horizontal right alignment, usually for text-derived classes."
msgstr "水平右对齐,常用于文本派生类。"

#: doc/classes/@GlobalScope.xml:131
msgid "Vertical top alignment, usually for text-derived classes."
msgstr "垂直上对齐,常用于文本派生类。"

#: doc/classes/@GlobalScope.xml:134
msgid "Vertical center alignment, usually for text-derived classes."
msgstr "垂直居中对齐,常用于文本派生类。"

#: doc/classes/@GlobalScope.xml:137
msgid "Vertical bottom alignment, usually for text-derived classes."
msgstr "垂直下对齐,常用于文本派生类。"

#: doc/classes/@GlobalScope.xml:140
#, fuzzy
msgid "Scancodes with this bit applied are non-printable."
msgstr "键码在启用了该比特位后是不可打印的。"

#: doc/classes/@GlobalScope.xml:143
msgid "Escape key."
msgstr "ESC 键。"

#: doc/classes/@GlobalScope.xml:146
msgid "Tab key."
msgstr "Tab 键。"

#: doc/classes/@GlobalScope.xml:149
#, fuzzy
msgid "Shift+Tab key."
msgstr "Shift + Tab 键。"

#: doc/classes/@GlobalScope.xml:152
msgid "Backspace key."
msgstr "退格键。"

#: doc/classes/@GlobalScope.xml:155
msgid "Return key (on the main keyboard)."
msgstr "回车键(位于主键盘)。"

#: doc/classes/@GlobalScope.xml:158
msgid "Enter key on the numeric keypad."
msgstr "小键盘区的回车键。"

#: doc/classes/@GlobalScope.xml:161
msgid "Insert key."
msgstr "Insert 键。"

#: doc/classes/@GlobalScope.xml:164
msgid "Delete key."
msgstr "Delete 键。"

#: doc/classes/@GlobalScope.xml:167
msgid "Pause key."
msgstr "Pause 键。"

#: doc/classes/@GlobalScope.xml:170
msgid "Print Screen key."
msgstr "Print Screen 键。"

#: doc/classes/@GlobalScope.xml:173
msgid "System Request key."
msgstr "System Request 键。"

#: doc/classes/@GlobalScope.xml:176
msgid "Clear key."
msgstr "Clear 键。"

#: doc/classes/@GlobalScope.xml:179
msgid "Home key."
msgstr "Home 键。"

#: doc/classes/@GlobalScope.xml:182
msgid "End key."
msgstr "End 键。"

#: doc/classes/@GlobalScope.xml:185
msgid "Left arrow key."
msgstr "左方向键。"

#: doc/classes/@GlobalScope.xml:188
msgid "Up arrow key."
msgstr "上方向键。"

#: doc/classes/@GlobalScope.xml:191
msgid "Right arrow key."
msgstr "右方向键。"

#: doc/classes/@GlobalScope.xml:194
msgid "Down arrow key."
msgstr "下方向键。"

#: doc/classes/@GlobalScope.xml:197
msgid "Page Up key."
msgstr "Page Up 键。"

#: doc/classes/@GlobalScope.xml:200
msgid "Page Down key."
msgstr "Page Down 键。"

#: doc/classes/@GlobalScope.xml:203
msgid "Shift key."
msgstr "Shift 键。"

#: doc/classes/@GlobalScope.xml:206
msgid "Control key."
msgstr "Control 键。"

#: doc/classes/@GlobalScope.xml:209
msgid "Meta key."
msgstr "Meta 键。"

#: doc/classes/@GlobalScope.xml:212
msgid "Alt key."
msgstr "Alt 键。"

#: doc/classes/@GlobalScope.xml:215
msgid "Caps Lock key."
msgstr "Caps Lock 键。"

#: doc/classes/@GlobalScope.xml:218
msgid "Num Lock key."
msgstr "Num Lock 键。"

#: doc/classes/@GlobalScope.xml:221
msgid "Scroll Lock key."
msgstr "Scroll Lock 键。"

#: doc/classes/@GlobalScope.xml:224
msgid "F1 key."
msgstr "F1 键。"

#: doc/classes/@GlobalScope.xml:227
msgid "F2 key."
msgstr "F2 键。"

#: doc/classes/@GlobalScope.xml:230
msgid "F3 key."
msgstr "F3 键。"

#: doc/classes/@GlobalScope.xml:233
msgid "F4 key."
msgstr "F4 键。"

#: doc/classes/@GlobalScope.xml:236
msgid "F5 key."
msgstr "F5 键。"

#: doc/classes/@GlobalScope.xml:239
msgid "F6 key."
msgstr "F6 键。"

#: doc/classes/@GlobalScope.xml:242
msgid "F7 key."
msgstr "F7 键。"

#: doc/classes/@GlobalScope.xml:245
msgid "F8 key."
msgstr "F8 键。"

#: doc/classes/@GlobalScope.xml:248
msgid "F9 key."
msgstr "F9 键。"

#: doc/classes/@GlobalScope.xml:251
msgid "F10 key."
msgstr "F10 键。"

#: doc/classes/@GlobalScope.xml:254
msgid "F11 key."
msgstr "F11 键。"

#: doc/classes/@GlobalScope.xml:257
msgid "F12 key."
msgstr "F12 键。"

#: doc/classes/@GlobalScope.xml:260
msgid "F13 key."
msgstr "F13 键。"

#: doc/classes/@GlobalScope.xml:263
msgid "F14 key."
msgstr "F14 键。"

#: doc/classes/@GlobalScope.xml:266
msgid "F15 key."
msgstr "F15 键。"

#: doc/classes/@GlobalScope.xml:269
msgid "F16 key."
msgstr "F16 键。"

#: doc/classes/@GlobalScope.xml:272
msgid "Multiply (*) key on the numeric keypad."
msgstr "小键盘的星键/乘以键(*)。"

#: doc/classes/@GlobalScope.xml:275
msgid "Divide (/) key on the numeric keypad."
msgstr "小键盘的除以键(/)。"

#: doc/classes/@GlobalScope.xml:278
msgid "Subtract (-) key on the numeric keypad."
msgstr "小键盘的减号键(-)。"

#: doc/classes/@GlobalScope.xml:281
msgid "Period (.) key on the numeric keypad."
msgstr "小件盘的点键(.)。"

#: doc/classes/@GlobalScope.xml:284
msgid "Add (+) key on the numeric keypad."
msgstr "小键盘的加号键(+)。"

#: doc/classes/@GlobalScope.xml:287
msgid "Number 0 on the numeric keypad."
msgstr "小键盘的数字 0。"

#: doc/classes/@GlobalScope.xml:290
msgid "Number 1 on the numeric keypad."
msgstr "小键盘的数字 1。"

#: doc/classes/@GlobalScope.xml:293
msgid "Number 2 on the numeric keypad."
msgstr "小键盘的数字 2。"

#: doc/classes/@GlobalScope.xml:296
msgid "Number 3 on the numeric keypad."
msgstr "小键盘的数字 3。"

#: doc/classes/@GlobalScope.xml:299
msgid "Number 4 on the numeric keypad."
msgstr "小键盘的数字 4。"

#: doc/classes/@GlobalScope.xml:302
msgid "Number 5 on the numeric keypad."
msgstr "小键盘的数字 5。"

#: doc/classes/@GlobalScope.xml:305
msgid "Number 6 on the numeric keypad."
msgstr "小键盘的数字 6。"

#: doc/classes/@GlobalScope.xml:308
msgid "Number 7 on the numeric keypad."
msgstr "小键盘的数字 7。"

#: doc/classes/@GlobalScope.xml:311
msgid "Number 8 on the numeric keypad."
msgstr "小键盘的数字 8。"

#: doc/classes/@GlobalScope.xml:314
msgid "Number 9 on the numeric keypad."
msgstr "小键盘的数字 9。"

#: doc/classes/@GlobalScope.xml:317
msgid "Left Super key (Windows key)."
msgstr "左 Super 键( Windows 键 )。"

#: doc/classes/@GlobalScope.xml:320
msgid "Right Super key (Windows key)."
msgstr "右 Super 键( Windows 键 )。"

#: doc/classes/@GlobalScope.xml:323
msgid "Context menu key."
msgstr "菜单键。"

#: doc/classes/@GlobalScope.xml:326
msgid "Left Hyper key."
msgstr "左 Hyper 键。"

#: doc/classes/@GlobalScope.xml:329
msgid "Right Hyper key."
msgstr "右 Hyper 键。"

#: doc/classes/@GlobalScope.xml:332
msgid "Help key."
msgstr "Help 键。"

#: doc/classes/@GlobalScope.xml:335
msgid "Left Direction key."
msgstr "左方向键。"

#: doc/classes/@GlobalScope.xml:338
msgid "Right Direction key."
msgstr "右方向键。"

#: doc/classes/@GlobalScope.xml:341
msgid ""
"Media back key. Not to be confused with the Back button on an Android device."
msgstr ""

#: doc/classes/@GlobalScope.xml:344
#, fuzzy
msgid "Media forward key."
msgstr "媒体录制键。"

#: doc/classes/@GlobalScope.xml:347 doc/classes/@GlobalScope.xml:380
msgid "Media stop key."
msgstr "媒体停止播放键。"

#: doc/classes/@GlobalScope.xml:350
#, fuzzy
msgid "Media refresh key."
msgstr "媒体录制键。"

#: doc/classes/@GlobalScope.xml:353
msgid "Volume down key."
msgstr "音量降低键。"

#: doc/classes/@GlobalScope.xml:356
msgid "Mute volume key."
msgstr "静音键。"

#: doc/classes/@GlobalScope.xml:359
msgid "Volume up key."
msgstr "音量升高键。"

#: doc/classes/@GlobalScope.xml:362
msgid "Bass Boost key."
msgstr "Bass Boost 键。"

#: doc/classes/@GlobalScope.xml:365
msgid "Bass up key."
msgstr "Bass up 键。"

#: doc/classes/@GlobalScope.xml:368
msgid "Bass down key."
msgstr "Bass down 键。"

#: doc/classes/@GlobalScope.xml:371
msgid "Treble up key."
msgstr "Treble up 键。"

#: doc/classes/@GlobalScope.xml:374
msgid "Treble down key."
msgstr "Treble down 键。"

#: doc/classes/@GlobalScope.xml:377
msgid "Media play key."
msgstr "媒体播放键。"

#: doc/classes/@GlobalScope.xml:383
msgid "Previous song key."
msgstr "上一首歌键。"

#: doc/classes/@GlobalScope.xml:386
msgid "Next song key."
msgstr "下一首歌键。"

#: doc/classes/@GlobalScope.xml:389
msgid "Media record key."
msgstr "媒体录制键。"

#: doc/classes/@GlobalScope.xml:392
msgid "Home page key."
msgstr "主页键。"

#: doc/classes/@GlobalScope.xml:395
msgid "Favorites key."
msgstr "收藏键。"

#: doc/classes/@GlobalScope.xml:398
msgid "Search key."
msgstr "搜索键。"

#: doc/classes/@GlobalScope.xml:401
msgid "Standby key."
msgstr "Standby 键。"

#: doc/classes/@GlobalScope.xml:404
msgid "Open URL / Launch Browser key."
msgstr "打开 URL / 启动浏览器键。"

#: doc/classes/@GlobalScope.xml:407
msgid "Launch Mail key."
msgstr "启动邮箱键。"

#: doc/classes/@GlobalScope.xml:410
msgid "Launch Media key."
msgstr "启动多媒体键。"

#: doc/classes/@GlobalScope.xml:413
msgid "Launch Shortcut 0 key."
msgstr "快捷启动键0。"

#: doc/classes/@GlobalScope.xml:416
msgid "Launch Shortcut 1 key."
msgstr "快捷启动键1。"

#: doc/classes/@GlobalScope.xml:419
msgid "Launch Shortcut 2 key."
msgstr "快捷启动键2。"

#: doc/classes/@GlobalScope.xml:422
msgid "Launch Shortcut 3 key."
msgstr "快捷启动键3。"

#: doc/classes/@GlobalScope.xml:425
msgid "Launch Shortcut 4 key."
msgstr "快捷启动键4。"

#: doc/classes/@GlobalScope.xml:428
msgid "Launch Shortcut 5 key."
msgstr "快捷启动键5。"

#: doc/classes/@GlobalScope.xml:431
msgid "Launch Shortcut 6 key."
msgstr "快捷启动键6。"

#: doc/classes/@GlobalScope.xml:434
msgid "Launch Shortcut 7 key."
msgstr "快捷启动键 7。"

#: doc/classes/@GlobalScope.xml:437
msgid "Launch Shortcut 8 key."
msgstr "快捷启动键 8。"

#: doc/classes/@GlobalScope.xml:440
msgid "Launch Shortcut 9 key."
msgstr "快捷启动键9。"

#: doc/classes/@GlobalScope.xml:443
msgid "Launch Shortcut A key."
msgstr "快捷启动键 A 。"

#: doc/classes/@GlobalScope.xml:446
msgid "Launch Shortcut B key."
msgstr "快捷启动键 B 。"

#: doc/classes/@GlobalScope.xml:449
msgid "Launch Shortcut C key."
msgstr "快捷启动键 C 。"

#: doc/classes/@GlobalScope.xml:452
msgid "Launch Shortcut D key."
msgstr "快捷启动键 D 。"

#: doc/classes/@GlobalScope.xml:455
msgid "Launch Shortcut E key."
msgstr "快捷启动键 E 。"

#: doc/classes/@GlobalScope.xml:458
msgid "Launch Shortcut F key."
msgstr "快捷启动键 F 。"

#: doc/classes/@GlobalScope.xml:461
msgid "Unknown key."
msgstr "未知 键。"

#: doc/classes/@GlobalScope.xml:464
msgid "Space key."
msgstr "空格键。"

#: doc/classes/@GlobalScope.xml:467
msgid "! key."
msgstr "! 键。"

#: doc/classes/@GlobalScope.xml:470
msgid "\" key."
msgstr "\" 键。"

#: doc/classes/@GlobalScope.xml:473
msgid "# key."
msgstr "# 键。"

#: doc/classes/@GlobalScope.xml:476
msgid "$ key."
msgstr "$ 键。"

#: doc/classes/@GlobalScope.xml:479
msgid "% key."
msgstr "% 键。"

#: doc/classes/@GlobalScope.xml:482
msgid "& key."
msgstr "& 键。"

#: doc/classes/@GlobalScope.xml:485
msgid "' key."
msgstr "' 键。"

#: doc/classes/@GlobalScope.xml:488
msgid "( key."
msgstr "( 键。"

#: doc/classes/@GlobalScope.xml:491
msgid ") key."
msgstr ") 键。"

#: doc/classes/@GlobalScope.xml:494
msgid "* key."
msgstr "* 键。"

#: doc/classes/@GlobalScope.xml:497
msgid "+ key."
msgstr "+ 键。"

#: doc/classes/@GlobalScope.xml:500
msgid ", key."
msgstr ", 键。"

#: doc/classes/@GlobalScope.xml:503
msgid "- key."
msgstr "- 键。"

#: doc/classes/@GlobalScope.xml:506
msgid ". key."
msgstr ". 键。"

#: doc/classes/@GlobalScope.xml:509
msgid "/ key."
msgstr "/ 键。"

#: doc/classes/@GlobalScope.xml:512
msgid "Number 0."
msgstr "数字 0。"

#: doc/classes/@GlobalScope.xml:515
msgid "Number 1."
msgstr "数字 1。"

#: doc/classes/@GlobalScope.xml:518
msgid "Number 2."
msgstr "数字 2。"

#: doc/classes/@GlobalScope.xml:521
msgid "Number 3."
msgstr "数字 3。"

#: doc/classes/@GlobalScope.xml:524
msgid "Number 4."
msgstr "数字 4。"

#: doc/classes/@GlobalScope.xml:527
msgid "Number 5."
msgstr "数字 5。"

#: doc/classes/@GlobalScope.xml:530
msgid "Number 6."
msgstr "数字 6。"

#: doc/classes/@GlobalScope.xml:533
msgid "Number 7."
msgstr "数字 7。"

#: doc/classes/@GlobalScope.xml:536
msgid "Number 8."
msgstr "数字 8。"

#: doc/classes/@GlobalScope.xml:539
msgid "Number 9."
msgstr "数字 9。"

#: doc/classes/@GlobalScope.xml:542
msgid ": key."
msgstr ": 键。"

#: doc/classes/@GlobalScope.xml:545
msgid "; key."
msgstr "; 键。"

#: doc/classes/@GlobalScope.xml:548
msgid "< key."
msgstr "< 键。"

#: doc/classes/@GlobalScope.xml:551
msgid "= key."
msgstr "= 键。"

#: doc/classes/@GlobalScope.xml:554
msgid "> key."
msgstr "> 键。"

#: doc/classes/@GlobalScope.xml:557
msgid "? key."
msgstr "? 键。"

#: doc/classes/@GlobalScope.xml:560
msgid "@ key."
msgstr "@ 键。"

#: doc/classes/@GlobalScope.xml:563
msgid "A key."
msgstr "A 键。"

#: doc/classes/@GlobalScope.xml:566
msgid "B key."
msgstr "B 键。"

#: doc/classes/@GlobalScope.xml:569
msgid "C key."
msgstr "C 键。"

#: doc/classes/@GlobalScope.xml:572
msgid "D key."
msgstr "D 键。"

#: doc/classes/@GlobalScope.xml:575
msgid "E key."
msgstr "E 键。"

#: doc/classes/@GlobalScope.xml:578
msgid "F key."
msgstr "F 键。"

#: doc/classes/@GlobalScope.xml:581
msgid "G key."
msgstr "G 键。"

#: doc/classes/@GlobalScope.xml:584
msgid "H key."
msgstr "H 键。"

#: doc/classes/@GlobalScope.xml:587
msgid "I key."
msgstr "I 键。"

#: doc/classes/@GlobalScope.xml:590
msgid "J key."
msgstr "J 键。"

#: doc/classes/@GlobalScope.xml:593
msgid "K key."
msgstr "K 键。"

#: doc/classes/@GlobalScope.xml:596
msgid "L key."
msgstr "L 键。"

#: doc/classes/@GlobalScope.xml:599
msgid "M key."
msgstr "M 键。"

#: doc/classes/@GlobalScope.xml:602
msgid "N key."
msgstr "N 键。"

#: doc/classes/@GlobalScope.xml:605
msgid "O key."
msgstr "O 键。"

#: doc/classes/@GlobalScope.xml:608
msgid "P key."
msgstr "P 键。"

#: doc/classes/@GlobalScope.xml:611
msgid "Q key."
msgstr "Q 键。"

#: doc/classes/@GlobalScope.xml:614
msgid "R key."
msgstr "R 键。"

#: doc/classes/@GlobalScope.xml:617
msgid "S key."
msgstr "S 键。"

#: doc/classes/@GlobalScope.xml:620
msgid "T key."
msgstr "T 键。"

#: doc/classes/@GlobalScope.xml:623
msgid "U key."
msgstr "U 键。"

#: doc/classes/@GlobalScope.xml:626
msgid "V key."
msgstr "V 键。"

#: doc/classes/@GlobalScope.xml:629
msgid "W key."
msgstr "W 键。"

#: doc/classes/@GlobalScope.xml:632
msgid "X key."
msgstr "X 键。"

#: doc/classes/@GlobalScope.xml:635
msgid "Y key."
msgstr "Y 键。"

#: doc/classes/@GlobalScope.xml:638
msgid "Z key."
msgstr "Z 键。"

#: doc/classes/@GlobalScope.xml:641
msgid "[ key."
msgstr "[ 键。"

#: doc/classes/@GlobalScope.xml:644
msgid "\\ key."
msgstr "\\ 键。"

#: doc/classes/@GlobalScope.xml:647
msgid "] key."
msgstr "] 键。"

#: doc/classes/@GlobalScope.xml:650
msgid "^ key."
msgstr "^ 键。"

#: doc/classes/@GlobalScope.xml:653
msgid "_ key."
msgstr "_ 键。"

#: doc/classes/@GlobalScope.xml:656
msgid "` key."
msgstr "` 键。"

#: doc/classes/@GlobalScope.xml:659
msgid "{ key."
msgstr "{ 键。"

#: doc/classes/@GlobalScope.xml:662
msgid "| key."
msgstr "| 键。"

#: doc/classes/@GlobalScope.xml:665
msgid "} key."
msgstr "} 键。"

#: doc/classes/@GlobalScope.xml:668
msgid "~ key."
msgstr "~ 键。"

#: doc/classes/@GlobalScope.xml:671
msgid "Non-breakable space key."
msgstr "不可分离空格键。"

#: doc/classes/@GlobalScope.xml:674
msgid "¡ key."
msgstr "¡ 键。"

#: doc/classes/@GlobalScope.xml:677
msgid "¢ key."
msgstr "¢ 键。"

#: doc/classes/@GlobalScope.xml:680
msgid "£ key."
msgstr "£ 键。"

#: doc/classes/@GlobalScope.xml:683
msgid "¤ key."
msgstr "¤ 键。"

#: doc/classes/@GlobalScope.xml:686
msgid "¥ key."
msgstr "¥ 键。"

#: doc/classes/@GlobalScope.xml:689
msgid "¦ key."
msgstr "¦ 键。"

#: doc/classes/@GlobalScope.xml:692
msgid "§ key."
msgstr "§ 键。"

#: doc/classes/@GlobalScope.xml:695
msgid "¨ key."
msgstr "¨ 键。"

#: doc/classes/@GlobalScope.xml:698
msgid "© key."
msgstr "© 键。"

#: doc/classes/@GlobalScope.xml:701
msgid "ª key."
msgstr "ª 键。"

#: doc/classes/@GlobalScope.xml:704
msgid "« key."
msgstr "左书名号键。"

#: doc/classes/@GlobalScope.xml:707
msgid "¬ key."
msgstr "¬ 键。"

#: doc/classes/@GlobalScope.xml:710
msgid "Soft hyphen key."
msgstr "软破折号键。"

#: doc/classes/@GlobalScope.xml:713
msgid "® key."
msgstr "® 键。"

#: doc/classes/@GlobalScope.xml:716
msgid "¯ key."
msgstr "¯ 键。"

#: doc/classes/@GlobalScope.xml:719
msgid "° key."
msgstr "° 键。"

#: doc/classes/@GlobalScope.xml:722
msgid "± key."
msgstr "± 键。"

#: doc/classes/@GlobalScope.xml:725
msgid "² key."
msgstr "² 键。"

#: doc/classes/@GlobalScope.xml:728
msgid "³ key."
msgstr "³ 键。"

#: doc/classes/@GlobalScope.xml:731
msgid "´ key."
msgstr "´ 键。"

#: doc/classes/@GlobalScope.xml:734
msgid "µ key."
msgstr "µ 键。"

#: doc/classes/@GlobalScope.xml:737
msgid "¶ key."
msgstr "¶ 键。"

#: doc/classes/@GlobalScope.xml:740
msgid "· key."
msgstr "· 键。"

#: doc/classes/@GlobalScope.xml:743
msgid "¸ key."
msgstr "¸ 键。"

#: doc/classes/@GlobalScope.xml:746
msgid "¹ key."
msgstr "¹ 键。"

#: doc/classes/@GlobalScope.xml:749
msgid "º key."
msgstr "º 键。"

#: doc/classes/@GlobalScope.xml:752
msgid "» key."
msgstr "» 键。"

#: doc/classes/@GlobalScope.xml:755
msgid "¼ key."
msgstr "¼ 键。"

#: doc/classes/@GlobalScope.xml:758
msgid "½ key."
msgstr "½ 键。"

#: doc/classes/@GlobalScope.xml:761
msgid "¾ key."
msgstr "¾ 键。"

#: doc/classes/@GlobalScope.xml:764
msgid "¿ key."
msgstr "¿ 键。"

#: doc/classes/@GlobalScope.xml:767
msgid "À key."
msgstr "À 键。"

#: doc/classes/@GlobalScope.xml:770
msgid "Á key."
msgstr "Á 键。"

#: doc/classes/@GlobalScope.xml:773
msgid "Â key."
msgstr "Â 键。"

#: doc/classes/@GlobalScope.xml:776
msgid "Ã key."
msgstr "Ã 键。"

#: doc/classes/@GlobalScope.xml:779
msgid "Ä key."
msgstr "Ä 键。"

#: doc/classes/@GlobalScope.xml:782
msgid "Å key."
msgstr "Å 键。"

#: doc/classes/@GlobalScope.xml:785
msgid "Æ key."
msgstr "Æ 键。"

#: doc/classes/@GlobalScope.xml:788
msgid "Ç key."
msgstr "Ç 键。"

#: doc/classes/@GlobalScope.xml:791
msgid "È key."
msgstr "È 键。"

#: doc/classes/@GlobalScope.xml:794
msgid "É key."
msgstr "É 键。"

#: doc/classes/@GlobalScope.xml:797
msgid "Ê key."
msgstr "Ê 键。"

#: doc/classes/@GlobalScope.xml:800
msgid "Ë key."
msgstr "Ë 键。"

#: doc/classes/@GlobalScope.xml:803
msgid "Ì key."
msgstr "Ì 键。"

#: doc/classes/@GlobalScope.xml:806
msgid "Í key."
msgstr "Í 键。"

#: doc/classes/@GlobalScope.xml:809
msgid "Î key."
msgstr "Î 键。"

#: doc/classes/@GlobalScope.xml:812
msgid "Ï key."
msgstr "Ï 键。"

#: doc/classes/@GlobalScope.xml:815
msgid "Ð key."
msgstr "Ð 键。"

#: doc/classes/@GlobalScope.xml:818
msgid "Ñ key."
msgstr "Ñ 键。"

#: doc/classes/@GlobalScope.xml:821
msgid "Ò key."
msgstr "Ò 键。"

#: doc/classes/@GlobalScope.xml:824
msgid "Ó key."
msgstr "Ó 键。"

#: doc/classes/@GlobalScope.xml:827
msgid "Ô key."
msgstr "Ô 键。"

#: doc/classes/@GlobalScope.xml:830
msgid "Õ key."
msgstr "Õ 键。"

#: doc/classes/@GlobalScope.xml:833
msgid "Ö key."
msgstr "Ö 键。"

#: doc/classes/@GlobalScope.xml:836
msgid "× key."
msgstr "× 键。"

#: doc/classes/@GlobalScope.xml:839
msgid "Ø key."
msgstr "Ø 键。"

#: doc/classes/@GlobalScope.xml:842
msgid "Ù key."
msgstr "Ù 键。"

#: doc/classes/@GlobalScope.xml:845
msgid "Ú key."
msgstr "Ú 键。"

#: doc/classes/@GlobalScope.xml:848
msgid "Û key."
msgstr "Û 键。"

#: doc/classes/@GlobalScope.xml:851
msgid "Ü key."
msgstr "Ü 键。"

#: doc/classes/@GlobalScope.xml:854
msgid "Ý key."
msgstr "Ý 键。"

#: doc/classes/@GlobalScope.xml:857
msgid "Þ key."
msgstr "Þ 键。"

#: doc/classes/@GlobalScope.xml:860
msgid "ß key."
msgstr "ß 键。"

#: doc/classes/@GlobalScope.xml:863
msgid "÷ key."
msgstr "÷ 键。"

#: doc/classes/@GlobalScope.xml:866
msgid "ÿ key."
msgstr "ÿ 键。"

#: doc/classes/@GlobalScope.xml:869
msgid "Key Code mask."
msgstr "键码掩码。"

#: doc/classes/@GlobalScope.xml:872
msgid "Modifier key mask."
msgstr "Modifier 键掩码。"

#: doc/classes/@GlobalScope.xml:875
msgid "Shift key mask."
msgstr "Shift 键掩码。"

#: doc/classes/@GlobalScope.xml:878
msgid "Alt key mask."
msgstr "Alt 键掩码。"

#: doc/classes/@GlobalScope.xml:881
msgid "Meta key mask."
msgstr "Meta 键掩码。"

#: doc/classes/@GlobalScope.xml:884
msgid "Ctrl key mask."
msgstr "Ctrl 键掩码。"

#: doc/classes/@GlobalScope.xml:887
msgid ""
"Command key mask. On macOS, this is equivalent to [constant KEY_MASK_META]. "
"On other platforms, this is equivalent to [constant KEY_MASK_CTRL]. This "
"mask should be preferred to [constant KEY_MASK_META] or [constant "
"KEY_MASK_CTRL] for system shortcuts as it handles all platforms correctly."
msgstr ""
"Command 键掩码。在 macOS,这等同于 [constant KEY_MASK_META]。而在其他平台,这"
"等同于 [constant KEY_MASK_CTRL]。在使用此掩码时应优先使用 [constant "
"KEY_MASK_META] 或 [constant KEY_MASK_CTRL] 来作为系统快捷键,以便能让所有平台"
"正确处理。"

#: doc/classes/@GlobalScope.xml:890
msgid "Keypad key mask."
msgstr "Keypad 键掩码。"

#: doc/classes/@GlobalScope.xml:893
msgid "Group Switch key mask."
msgstr "Group Switch 键掩码。"

#: doc/classes/@GlobalScope.xml:896
msgid "Left mouse button."
msgstr "鼠标左键。"

#: doc/classes/@GlobalScope.xml:899
msgid "Right mouse button."
msgstr "鼠标右键。"

#: doc/classes/@GlobalScope.xml:902
msgid "Middle mouse button."
msgstr "鼠标中键。"

#: doc/classes/@GlobalScope.xml:905
msgid "Extra mouse button 1 (only present on some mice)."
msgstr "鼠标额外键1(仅在某些鼠标上有实现)。"

#: doc/classes/@GlobalScope.xml:908
msgid "Extra mouse button 2 (only present on some mice)."
msgstr "鼠标额外键2(仅在某些鼠标上有实现)。"

#: doc/classes/@GlobalScope.xml:911
msgid "Mouse wheel up."
msgstr "鼠标滚轮向上。"

#: doc/classes/@GlobalScope.xml:914
msgid "Mouse wheel down."
msgstr "鼠标滚轮向下。"

#: doc/classes/@GlobalScope.xml:917
msgid "Mouse wheel left button (only present on some mice)."
msgstr "鼠标滚轮左键(仅在某些鼠标上有实现)。"

#: doc/classes/@GlobalScope.xml:920
msgid "Mouse wheel right button (only present on some mice)."
msgstr "鼠标滚轮右键(仅在某些鼠标上有实现)。"

#: doc/classes/@GlobalScope.xml:923
msgid "Left mouse button mask."
msgstr "鼠标左键掩码。"

#: doc/classes/@GlobalScope.xml:926
msgid "Right mouse button mask."
msgstr "鼠标右键掩码。"

#: doc/classes/@GlobalScope.xml:929
msgid "Middle mouse button mask."
msgstr "鼠标中键掩码。"

#: doc/classes/@GlobalScope.xml:932
msgid "Extra mouse button 1 mask."
msgstr "鼠标额外键1掩码。"

#: doc/classes/@GlobalScope.xml:935
msgid "Extra mouse button 2 mask."
msgstr "鼠标额外键2掩码。"

#: doc/classes/@GlobalScope.xml:938
#, fuzzy
msgid "Invalid button or axis."
msgstr "无效持续时间。"

#: doc/classes/@GlobalScope.xml:941
msgid "Gamepad button 0."
msgstr ""

#: doc/classes/@GlobalScope.xml:944
#, fuzzy
msgid "Gamepad button 1."
msgstr "鼠标额外键1掩码。"

#: doc/classes/@GlobalScope.xml:947
#, fuzzy
msgid "Gamepad button 2."
msgstr "鼠标额外键2掩码。"

#: doc/classes/@GlobalScope.xml:950
msgid "Gamepad button 3."
msgstr ""

#: doc/classes/@GlobalScope.xml:953
msgid "Gamepad button 4."
msgstr ""

#: doc/classes/@GlobalScope.xml:956
msgid "Gamepad button 5."
msgstr ""

#: doc/classes/@GlobalScope.xml:959
msgid "Gamepad button 6."
msgstr ""

#: doc/classes/@GlobalScope.xml:962
msgid "Gamepad button 7."
msgstr ""

#: doc/classes/@GlobalScope.xml:965
msgid "Gamepad button 8."
msgstr ""

#: doc/classes/@GlobalScope.xml:968
msgid "Gamepad button 9."
msgstr ""

#: doc/classes/@GlobalScope.xml:971
msgid "Gamepad button 10."
msgstr ""

#: doc/classes/@GlobalScope.xml:974
msgid "Gamepad button 11."
msgstr ""

#: doc/classes/@GlobalScope.xml:977
msgid "Gamepad button 12."
msgstr ""

#: doc/classes/@GlobalScope.xml:980
msgid "Gamepad button 13."
msgstr ""

#: doc/classes/@GlobalScope.xml:983
msgid "Gamepad button 14."
msgstr ""

#: doc/classes/@GlobalScope.xml:986
msgid "Gamepad button 15."
msgstr ""

#: doc/classes/@GlobalScope.xml:989
msgid "Gamepad button 16."
msgstr ""

#: doc/classes/@GlobalScope.xml:992
msgid "Gamepad button 17."
msgstr ""

#: doc/classes/@GlobalScope.xml:995
msgid "Gamepad button 18."
msgstr ""

#: doc/classes/@GlobalScope.xml:998
msgid "Gamepad button 19."
msgstr ""

#: doc/classes/@GlobalScope.xml:1001
msgid "Gamepad button 20."
msgstr ""

#: doc/classes/@GlobalScope.xml:1004
msgid "Gamepad button 21."
msgstr ""

#: doc/classes/@GlobalScope.xml:1007
msgid "Gamepad button 22."
msgstr ""

#: doc/classes/@GlobalScope.xml:1010
#, fuzzy
msgid "Represents the maximum number of joystick buttons supported."
msgstr "游戏控制器按钮数量的最大值。"

#: doc/classes/@GlobalScope.xml:1013
msgid "DualShock circle button."
msgstr ""

#: doc/classes/@GlobalScope.xml:1016
msgid "DualShock X button."
msgstr ""

#: doc/classes/@GlobalScope.xml:1019
msgid "DualShock square button."
msgstr ""

#: doc/classes/@GlobalScope.xml:1022
msgid "DualShock triangle button."
msgstr ""

#: doc/classes/@GlobalScope.xml:1025
#, fuzzy
msgid "Xbox controller B button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1028
#, fuzzy
msgid "Xbox controller A button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1031
#, fuzzy
msgid "Xbox controller X button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1034
#, fuzzy
msgid "Xbox controller Y button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1037
#, fuzzy
msgid "Nintendo controller A button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1040
#, fuzzy
msgid "Nintendo controller B button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1043
#, fuzzy
msgid "Nintendo controller X button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1046
#, fuzzy
msgid "Nintendo controller Y button."
msgstr "游戏控制器 SDL 按钮 A。"

#: doc/classes/@GlobalScope.xml:1049
msgid "Grip (side) buttons on a VR controller."
msgstr ""

#: doc/classes/@GlobalScope.xml:1052
msgid "Push down on the touchpad or main joystick on a VR controller."
msgstr ""

#: doc/classes/@GlobalScope.xml:1055
msgid "Trigger on a VR controller."
msgstr ""

#: doc/classes/@GlobalScope.xml:1058
msgid ""
"A button on the right Oculus Touch controller, X button on the left "
"controller (also when used in OpenVR)."
msgstr ""

#: doc/classes/@GlobalScope.xml:1061
msgid ""
"B button on the right Oculus Touch controller, Y button on the left "
"controller (also when used in OpenVR)."
msgstr ""

#: doc/classes/@GlobalScope.xml:1064
msgid "Menu button on either Oculus Touch controller."
msgstr ""

#: doc/classes/@GlobalScope.xml:1067
msgid "Menu button in OpenVR (Except when Oculus Touch controllers are used)."
msgstr ""

#: doc/classes/@GlobalScope.xml:1070
msgid "Gamepad button Select."
msgstr ""

#: doc/classes/@GlobalScope.xml:1073
msgid "Gamepad button Start."
msgstr ""

#: doc/classes/@GlobalScope.xml:1076
msgid "Gamepad DPad up."
msgstr ""

#: doc/classes/@GlobalScope.xml:1079
msgid "Gamepad DPad down."
msgstr ""

#: doc/classes/@GlobalScope.xml:1082
msgid "Gamepad DPad left."
msgstr ""

#: doc/classes/@GlobalScope.xml:1085
msgid "Gamepad DPad right."
msgstr ""

#: doc/classes/@GlobalScope.xml:1088
#, fuzzy
msgid "Gamepad SDL guide button."
msgstr "游戏控制器 SDL 向导按钮。"

#: doc/classes/@GlobalScope.xml:1091
msgid "Gamepad SDL miscellaneous button."
msgstr ""

#: doc/classes/@GlobalScope.xml:1094
#, fuzzy
msgid "Gamepad SDL paddle 1 button."
msgstr "游戏控制器 SDL 方向左按钮。"

#: doc/classes/@GlobalScope.xml:1097
#, fuzzy
msgid "Gamepad SDL paddle 2 button."
msgstr "游戏控制器 SDL 方向左按钮。"

#: doc/classes/@GlobalScope.xml:1100
#, fuzzy
msgid "Gamepad SDL paddle 3 button."
msgstr "游戏控制器 SDL 方向左按钮。"

#: doc/classes/@GlobalScope.xml:1103
#, fuzzy
msgid "Gamepad SDL paddle 4 button."
msgstr "游戏控制器 SDL 方向左按钮。"

#: doc/classes/@GlobalScope.xml:1106
#, fuzzy
msgid "Gamepad SDL touchpad button."
msgstr "游戏控制器 SDL 方向上按钮。"

#: doc/classes/@GlobalScope.xml:1109
#, fuzzy
msgid "Gamepad left Shoulder button."
msgstr "游戏控制器 SDL 左肩按钮。"

#: doc/classes/@GlobalScope.xml:1112
#, fuzzy
msgid "Gamepad left trigger."
msgstr "游戏控制器左扳机轴。"

#: doc/classes/@GlobalScope.xml:1115
msgid "Gamepad left stick click."
msgstr ""

#: doc/classes/@GlobalScope.xml:1118
#, fuzzy
msgid "Gamepad right Shoulder button."
msgstr "游戏控制器 SDL 右肩按钮。"

#: doc/classes/@GlobalScope.xml:1121
#, fuzzy
msgid "Gamepad right trigger."
msgstr "游戏控制器右扳机轴。"

#: doc/classes/@GlobalScope.xml:1124
msgid "Gamepad right stick click."
msgstr ""

#: doc/classes/@GlobalScope.xml:1127 doc/classes/@GlobalScope.xml:1160
msgid "Gamepad left stick horizontal axis."
msgstr ""

#: doc/classes/@GlobalScope.xml:1130 doc/classes/@GlobalScope.xml:1163
#, fuzzy
msgid "Gamepad left stick vertical axis."
msgstr "游戏控制器左摇杆X轴。"

#: doc/classes/@GlobalScope.xml:1133 doc/classes/@GlobalScope.xml:1166
msgid "Gamepad right stick horizontal axis."
msgstr ""

#: doc/classes/@GlobalScope.xml:1136 doc/classes/@GlobalScope.xml:1169
#, fuzzy
msgid "Gamepad right stick vertical axis."
msgstr "游戏控制器右摇杆X轴。"

#: doc/classes/@GlobalScope.xml:1139
msgid "Generic gamepad axis 4."
msgstr ""

#: doc/classes/@GlobalScope.xml:1142
msgid "Generic gamepad axis 5."
msgstr ""

#: doc/classes/@GlobalScope.xml:1145
#, fuzzy
msgid "Gamepad left trigger analog axis."
msgstr "游戏控制器左扳机轴。"

#: doc/classes/@GlobalScope.xml:1148
#, fuzzy
msgid "Gamepad right trigger analog axis."
msgstr "游戏控制器右扳机轴。"

#: doc/classes/@GlobalScope.xml:1151
msgid "Generic gamepad axis 8."
msgstr ""

#: doc/classes/@GlobalScope.xml:1154
msgid "Generic gamepad axis 9."
msgstr ""

#: doc/classes/@GlobalScope.xml:1157
#, fuzzy
msgid "Represents the maximum number of joystick axes supported."
msgstr "支持的最大抽取次数。"

#: doc/classes/@GlobalScope.xml:1172
msgid "Gamepad left analog trigger."
msgstr ""

#: doc/classes/@GlobalScope.xml:1175
msgid "Gamepad right analog trigger."
msgstr ""

#: doc/classes/@GlobalScope.xml:1178
#, fuzzy
msgid "VR Controller analog trigger."
msgstr "游戏控制器左扳机轴。"

#: doc/classes/@GlobalScope.xml:1181
#, fuzzy
msgid "VR Controller analog grip (side buttons)."
msgstr "游戏控制器 SDL 向导按钮。"

#: doc/classes/@GlobalScope.xml:1184
msgid ""
"OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR "
"controllers)."
msgstr ""

#: doc/classes/@GlobalScope.xml:1187
msgid ""
"OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR "
"controllers)."
msgstr ""

#: doc/classes/@GlobalScope.xml:1190
msgid "MIDI note OFF message."
msgstr "MIDI 音符关闭信息。"

#: doc/classes/@GlobalScope.xml:1193
msgid "MIDI note ON message."
msgstr "MIDI 音符开启信息。"

#: doc/classes/@GlobalScope.xml:1196
msgid "MIDI aftertouch message."
msgstr "MIDI 触摸后信息。"

#: doc/classes/@GlobalScope.xml:1199
msgid "MIDI control change message."
msgstr "MIDI 控制更改信息。"

#: doc/classes/@GlobalScope.xml:1202
msgid "MIDI program change message."
msgstr "MIDI 程序变更信息。"

#: doc/classes/@GlobalScope.xml:1205
msgid "MIDI channel pressure message."
msgstr "MIDI 通道压力消息。"

#: doc/classes/@GlobalScope.xml:1208
msgid "MIDI pitch bend message."
msgstr "MIDI 弯音消息。"

#: doc/classes/@GlobalScope.xml:1211
msgid ""
"Methods that return [enum Error] return [constant OK] when no error "
"occurred. Note that many functions don't return an error code but will print "
"error messages to standard output.\n"
"Since [constant OK] has value 0, and all other failure codes are positive "
"integers, it can also be used in boolean checks, e.g.:\n"
"[codeblock]\n"
"var err = method_that_returns_error()\n"
"if err != OK:\n"
"    print(\"Failure!\")\n"
"# Or, equivalent:\n"
"if err:\n"
"    print(\"Still failing!\")\n"
"[/codeblock]"
msgstr ""
"会在发生错误时返回 [enum Error] 的函数,会在没有发生错误的时候返回 [constant "
"OK]。然而也右很多函数在发生错误时不会返回错误代码而是会输出错误信息到标准输"
"出。\n"
"因为 [constant OK] 的值是0,而且其他的错误代码皆为正整数,返回值也能用于布尔"
"检查,例如:\n"
"[codeblock]\n"
"var err = method_that_returns_error()\n"
"if err != OK:\n"
"    print(\"Failure!\")\n"
"# Or, equivalent:\n"
"if err:\n"
"    print(\"Still failing!\")\n"
"[/codeblock]"

#: doc/classes/@GlobalScope.xml:1223
msgid "Generic error."
msgstr "一般性错误。"

#: doc/classes/@GlobalScope.xml:1226
msgid "Unavailable error."
msgstr "不可用的错误。"

#: doc/classes/@GlobalScope.xml:1229
msgid "Unconfigured error."
msgstr "未配置的错误。"

#: doc/classes/@GlobalScope.xml:1232
msgid "Unauthorized error."
msgstr "未经授权的错误。"

#: doc/classes/@GlobalScope.xml:1235
msgid "Parameter range error."
msgstr "参数范围错误。"

#: doc/classes/@GlobalScope.xml:1238
msgid "Out of memory (OOM) error."
msgstr "内存不足(OOM)错误。"

#: doc/classes/@GlobalScope.xml:1241
msgid "File: Not found error."
msgstr "文件:未找到错误。"

#: doc/classes/@GlobalScope.xml:1244
msgid "File: Bad drive error."
msgstr "文件:坏驱动器错误。"

#: doc/classes/@GlobalScope.xml:1247
msgid "File: Bad path error."
msgstr "文件:错误的路径错误。"

#: doc/classes/@GlobalScope.xml:1250
msgid "File: No permission error."
msgstr "文件:无权限错误。"

#: doc/classes/@GlobalScope.xml:1253
msgid "File: Already in use error."
msgstr "文件:已在使用错误。"

#: doc/classes/@GlobalScope.xml:1256
msgid "File: Can't open error."
msgstr "文件:无法打开错误。"

#: doc/classes/@GlobalScope.xml:1259
msgid "File: Can't write error."
msgstr "文件:无法写入错误。"

#: doc/classes/@GlobalScope.xml:1262
msgid "File: Can't read error."
msgstr "文件:无法读取错误。"

#: doc/classes/@GlobalScope.xml:1265
msgid "File: Unrecognized error."
msgstr "文件:未识别的错误。"

#: doc/classes/@GlobalScope.xml:1268
msgid "File: Corrupt error."
msgstr "文件:损坏错误。"

#: doc/classes/@GlobalScope.xml:1271
msgid "File: Missing dependencies error."
msgstr "文件:缺少依赖项错误。"

#: doc/classes/@GlobalScope.xml:1274
msgid "File: End of file (EOF) error."
msgstr "文件:文件结束(EOF)错误。"

#: doc/classes/@GlobalScope.xml:1277
msgid "Can't open error."
msgstr "无法打开错误。"

#: doc/classes/@GlobalScope.xml:1280
msgid "Can't create error."
msgstr "无法创建错误。"

#: doc/classes/@GlobalScope.xml:1283
msgid "Query failed error."
msgstr "查询失败错误。"

#: doc/classes/@GlobalScope.xml:1286
msgid "Already in use error."
msgstr "已在使用中错误。"

#: doc/classes/@GlobalScope.xml:1289
msgid "Locked error."
msgstr "锁定错误。"

#: doc/classes/@GlobalScope.xml:1292
msgid "Timeout error."
msgstr "超时错误。"

#: doc/classes/@GlobalScope.xml:1295
msgid "Can't connect error."
msgstr "无法连接错误。"

#: doc/classes/@GlobalScope.xml:1298
msgid "Can't resolve error."
msgstr "无法解决错误。"

#: doc/classes/@GlobalScope.xml:1301
msgid "Connection error."
msgstr "连接错误。"

#: doc/classes/@GlobalScope.xml:1304
msgid "Can't acquire resource error."
msgstr "无法获取资源错误。"

#: doc/classes/@GlobalScope.xml:1307
msgid "Can't fork process error."
msgstr "无法分叉进程错误。"

#: doc/classes/@GlobalScope.xml:1310
msgid "Invalid data error."
msgstr "无效数据错误。"

#: doc/classes/@GlobalScope.xml:1313
msgid "Invalid parameter error."
msgstr "无效参数错误。"

#: doc/classes/@GlobalScope.xml:1316
msgid "Already exists error."
msgstr "已存在的错误。"

#: doc/classes/@GlobalScope.xml:1319
msgid "Does not exist error."
msgstr "不存在的错误。"

#: doc/classes/@GlobalScope.xml:1322
msgid "Database: Read error."
msgstr "数据库:读取错误。"

#: doc/classes/@GlobalScope.xml:1325
msgid "Database: Write error."
msgstr "数据库:写入错误。"

#: doc/classes/@GlobalScope.xml:1328
msgid "Compilation failed error."
msgstr "编译失败错误。"

#: doc/classes/@GlobalScope.xml:1331
msgid "Method not found error."
msgstr "方法未找到错误。"

#: doc/classes/@GlobalScope.xml:1334
msgid "Linking failed error."
msgstr "链接失败错误。"

#: doc/classes/@GlobalScope.xml:1337
msgid "Script failed error."
msgstr "脚本失败错误。"

#: doc/classes/@GlobalScope.xml:1340
msgid "Cycling link (import cycle) error."
msgstr "循环链接(导入循环)错误。"

#: doc/classes/@GlobalScope.xml:1343
msgid "Invalid declaration error."
msgstr "无效声明错误。"

#: doc/classes/@GlobalScope.xml:1346
msgid "Duplicate symbol error."
msgstr "符号重复错误。"

#: doc/classes/@GlobalScope.xml:1349
msgid "Parse error."
msgstr "解析错误。"

#: doc/classes/@GlobalScope.xml:1352
msgid "Busy error."
msgstr "忙碌错误。"

#: doc/classes/@GlobalScope.xml:1355
msgid "Skip error."
msgstr "跳过错误。"

#: doc/classes/@GlobalScope.xml:1358
msgid "Help error."
msgstr "帮助错误。"

#: doc/classes/@GlobalScope.xml:1361
msgid "Bug error."
msgstr "缺陷错误。"

#: doc/classes/@GlobalScope.xml:1364
msgid ""
"Printer on fire error. (This is an easter egg, no engine methods return this "
"error code.)"
msgstr "打印机失火错误。(这是个彩蛋,引擎中没有方法会返回此错误码)"

#: doc/classes/@GlobalScope.xml:1367
msgid "No hint for the edited property."
msgstr "没有关于已编辑属性的提示。"

#: doc/classes/@GlobalScope.xml:1370
msgid ""
"Hints that an integer or float property should be within a range specified "
"via the hint string [code]\"min,max\"[/code] or [code]\"min,max,step\"[/"
"code]. The hint string can optionally include [code]\"or_greater\"[/code] "
"and/or [code]\"or_lesser\"[/code] to allow manual input going respectively "
"above the max or below the min values. Example: [code]\"-360,360,1,"
"or_greater,or_lesser\"[/code]."
msgstr ""
"通过提示串[code]\"min,max\"[/code] 或[code]\"min,max,step\"[/code]来提示一个"
"整数或浮点数属性应当落在指定范围内。提示串可以选择性地包含 [code]\"or_greater"
"\"[/code] 与/或 [code]\"or_lesser\"[/code] 来允许手动输入的值超过或低于最大最"
"小值。例如: [code]\"-360,360,1,or_greater,or_lesser\"[/code]。"

#: doc/classes/@GlobalScope.xml:1373
#, fuzzy
msgid ""
"Hints that a float property should be within an exponential range specified "
"via the hint string [code]\"min,max\"[/code] or [code]\"min,max,step\"[/"
"code]. The hint string can optionally include [code]\"or_greater\"[/code] "
"and/or [code]\"or_lesser\"[/code] to allow manual input going respectively "
"above the max or below the min values. Example: [code]\"0.01,100,0.01,"
"or_greater\"[/code]."
msgstr ""
"通过提示串[code]\"min,max\"[/code] 或[code]\"min,max,step\"[/code]来提示一个"
"整数或浮点数属性应当落在指定的指数范围内。提示串可以选择性地包含 "
"[code]\"or_greater\"[/code] 与/或 [code]\"or_lesser\"[/code] 来允许手动输入的"
"值超过或低于最大最小值。例如: [code]\"0.01,100,0.01,or_greater\"[/code]。"

#: doc/classes/@GlobalScope.xml:1376
msgid ""
"Hints that an integer, float or string property is an enumerated value to "
"pick in a list specified via a hint string such as [code]\"Hello,Something,"
"Else\"[/code]."
msgstr ""
"通过一个提示串,提示一个整数、浮点或字符串属性是枚举值,枚举值取值来自于形如"
"[code]\"Hello,Something,Else\"[/code]的提示串。"

#: doc/classes/@GlobalScope.xml:1379
msgid ""
"Hints that a float property should be edited via an exponential easing "
"function. The hint string can include [code]\"attenuation\"[/code] to flip "
"the curve horizontally and/or [code]\"inout\"[/code] to also include in/out "
"easing."
msgstr ""
"提示一个浮点数属性应当通过指数缓动函数来编辑。此处的提示串可以包含 "
"[code]\"attenuation\"[/code] 来翻转曲线的水平方向,并且/或者也可以通过"
"[code]\"inout\"[/code]来控制是否缓入缓出。"

#: doc/classes/@GlobalScope.xml:1382 doc/classes/@GlobalScope.xml:1385
msgid "Deprecated hint, unused."
msgstr "已废弃的提示标识,未被使用。"

#: doc/classes/@GlobalScope.xml:1388
msgid ""
"Hints that an integer property is a bitmask with named bit flags. For "
"example, to allow toggling bits 0, 1, 2 and 4, the hint could be something "
"like [code]\"Bit0,Bit1,Bit2,,Bit4\"[/code]."
msgstr ""
"提示一个整数属性是一个带有若干命名的位标记的掩码。例如,想允许修改0、1、2、4"
"位,提示串应当是类似于[code]\"Bit0,Bit1,Bit2,,Bit4\"[/code]的东西。"

#: doc/classes/@GlobalScope.xml:1391
msgid ""
"Hints that an integer property is a bitmask using the optionally named 2D "
"render layers."
msgstr "提示一个整数属性是一个掩码,使用着具备或不具备命名的2D渲染层。"

#: doc/classes/@GlobalScope.xml:1394
msgid ""
"Hints that an integer property is a bitmask using the optionally named 2D "
"physics layers."
msgstr "提示一个整数属性是一个掩码,使用着具备或不具备命名的2D物理层。"

#: doc/classes/@GlobalScope.xml:1397
msgid ""
"Hints that an integer property is a bitmask using the optionally named 3D "
"render layers."
msgstr "提示一个整数属性是一个掩码,使用着具备或不具备命名的3D渲染层。"

#: doc/classes/@GlobalScope.xml:1400
msgid ""
"Hints that an integer property is a bitmask using the optionally named 3D "
"physics layers."
msgstr "提示一个整数属性是一个掩码,使用着具备或不具备命名的3D物理层。"

#: doc/classes/@GlobalScope.xml:1403
msgid ""
"Hints that a string property is a path to a file. Editing it will show a "
"file dialog for picking the path. The hint string can be a set of filters "
"with wildcards like [code]\"*.png,*.jpg\"[/code]."
msgstr ""
"提示一个字符串属性是关于一个文件的路径。编辑该属性时会弹出取得文件路径的文件"
"对话框。此处的提示文本可以是一组带有通配符的过滤器,例如 [code]\"*.png,*.jpg"
"\"[/code]。"

#: doc/classes/@GlobalScope.xml:1406
msgid ""
"Hints that a string property is a path to a directory. Editing it will show "
"a file dialog for picking the path."
msgstr ""
"提示一个字符串属性是一个关于目录的路径。编辑该属性时会弹出取得文件路径的文件"
"对话框。"

#: doc/classes/@GlobalScope.xml:1409
msgid ""
"Hints that a string property is an absolute path to a file outside the "
"project folder. Editing it will show a file dialog for picking the path. The "
"hint string can be a set of filters with wildcards like [code]\"*.png,*.jpg"
"\"[/code]."
msgstr ""
"提示一个字符串属性是关于一个在项目文件夹之外的文件的绝对路径。编辑该属性时会"
"弹出取得文件路径的文件对话框。此处的提示文本可以是一组带有通配符的过滤器,例"
"如 [code]\"*.png,*.jpg\"[/code]。"

#: doc/classes/@GlobalScope.xml:1412
msgid ""
"Hints that a string property is an absolute path to a directory outside the "
"project folder. Editing it will show a file dialog for picking the path."
msgstr ""
"提示一个字符串属性是一个关于项目文件夹之外的目录的绝对路径。编辑该属性时会弹"
"出取得文件路径的文件对话框。"

#: doc/classes/@GlobalScope.xml:1415
#, fuzzy
msgid ""
"Hints that a property is an instance of a [Resource]-derived type, "
"optionally specified via the hint string (e.g. [code]\"Texture\"[/code]). "
"Editing it will show a popup menu of valid resource types to instantiate."
msgstr ""
"提示一个属性是一个[Resource]派生类的实例,可以通过提示串指定(例如 "
"[code]\"Texture2D\"[/code])。编辑该属性时会弹出一个列举了可用的待实例化的资"
"源类型的菜单。"

#: doc/classes/@GlobalScope.xml:1418
msgid ""
"Hints that a string property is text with line breaks. Editing it will show "
"a text input field where line breaks can be typed."
msgstr ""
"提示一个字符串属性是一个带有换行的文本。编辑该属性时会显示一个允许键入换行符"
"的文本输入域。"

#: doc/classes/@GlobalScope.xml:1421
msgid ""
"Hints that a string property should have a placeholder text visible on its "
"input field, whenever the property is empty. The hint string is the "
"placeholder text to use."
msgstr ""
"提示一个字符串属性在其输入域上应当具有当属性为空时可见的占位文本。此处的提示"
"串是占位文本使用的字符串。"

#: doc/classes/@GlobalScope.xml:1424
msgid ""
"Hints that a color property should be edited without changing its alpha "
"component, i.e. only R, G and B channels are edited."
msgstr ""
"提示一个颜色属性在编辑时不能修改alpha分量,换言之,只有R、G、B三通道可以被编"
"辑。"

#: doc/classes/@GlobalScope.xml:1427
msgid "Hints that an image is compressed using lossy compression."
msgstr "提示一个图片使用了有损压缩进行压缩。"

#: doc/classes/@GlobalScope.xml:1430
msgid "Hints that an image is compressed using lossless compression."
msgstr "提示一个图片使用了无损压缩进行压缩。"

#: doc/classes/@GlobalScope.xml:1433
msgid "The property is serialized and saved in the scene file (default)."
msgstr "将属性序列化并保存到场景文件中(默认)。"

#: doc/classes/@GlobalScope.xml:1436
msgid "The property is shown in the editor inspector (default)."
msgstr "将属性展示在编辑器的属性检查器面板中(默认)。"

#: doc/classes/@GlobalScope.xml:1439 doc/classes/@GlobalScope.xml:1442
msgid "Deprecated usage flag, unused."
msgstr "废弃使用的标志,未使用。"

#: doc/classes/@GlobalScope.xml:1445
msgid "The property can be checked in the editor inspector."
msgstr "该属性可以在编辑器的属性检查器中被勾选。"

#: doc/classes/@GlobalScope.xml:1448
msgid "The property is checked in the editor inspector."
msgstr "该属性在编辑器的检查器中已经勾选。"

#: doc/classes/@GlobalScope.xml:1451
msgid "The property is a translatable string."
msgstr "该属性是一个可翻译的字符串。"

#: doc/classes/@GlobalScope.xml:1454
msgid "Used to group properties together in the editor."
msgstr "在编辑器中用于为属性分组。"

#: doc/classes/@GlobalScope.xml:1457
msgid "Used to categorize properties together in the editor."
msgstr "在编辑器中用于为属性分类。"

#: doc/classes/@GlobalScope.xml:1460
msgid "The property does not save its state in [PackedScene]."
msgstr "该属性在[PackedScene]中不保存其状态。"

#: doc/classes/@GlobalScope.xml:1463
msgid "Editing the property prompts the user for restarting the editor."
msgstr "编辑属性会提示用户重新启动编辑器。"

#: doc/classes/@GlobalScope.xml:1466
msgid ""
"The property is a script variable which should be serialized and saved in "
"the scene file."
msgstr "该属性是一个脚本变量,应该被序列化并保存在场景文件中。"

#: doc/classes/@GlobalScope.xml:1469
msgid "Default usage (storage, editor and network)."
msgstr "默认用法(存储、编辑器和网络)。"

#: doc/classes/@GlobalScope.xml:1472
msgid ""
"Default usage for translatable strings (storage, editor, network and "
"internationalized)."
msgstr "可翻译字符串的默认用法(存储、编辑器、网络和国际化)。"

#: doc/classes/@GlobalScope.xml:1475
msgid ""
"Default usage but without showing the property in the editor (storage, "
"network)."
msgstr "默认用法,但不在编辑器中显示属性(存储、网络)。"

#: doc/classes/@GlobalScope.xml:1478
msgid "Flag for a normal method."
msgstr "普通方法的标志。"

#: doc/classes/@GlobalScope.xml:1481
msgid "Flag for an editor method."
msgstr "编辑器方法的标志。"

#: doc/classes/@GlobalScope.xml:1484 doc/classes/@GlobalScope.xml:1490
#: doc/classes/@GlobalScope.xml:1496
msgid "Deprecated method flag, unused."
msgstr "已废弃的方法标志,未使用。"

#: doc/classes/@GlobalScope.xml:1487
msgid "Flag for a constant method."
msgstr "一个常量方法的标志。"

#: doc/classes/@GlobalScope.xml:1493
msgid "Flag for a virtual method."
msgstr "虚拟方法的标志。"

#: doc/classes/@GlobalScope.xml:1499
msgid "Default method flags."
msgstr "默认方法的标志。"

#: doc/classes/@GlobalScope.xml:1502
msgid "Variable is [code]null[/code]."
msgstr "变量是 [code]null[/code]."

#: doc/classes/@GlobalScope.xml:1505
msgid "Variable is of type [bool]."
msgstr "变量是[bool]类型。"

#: doc/classes/@GlobalScope.xml:1508
msgid "Variable is of type [int]."
msgstr "变量是[int]类型。"

#: doc/classes/@GlobalScope.xml:1511
msgid "Variable is of type [float] (real)."
msgstr "变量是[float]类型(实数)。"

#: doc/classes/@GlobalScope.xml:1514
msgid "Variable is of type [String]."
msgstr "变量是[String]类型。"

#: doc/classes/@GlobalScope.xml:1517
msgid "Variable is of type [Vector2]."
msgstr "变量类型为[Vector2]。"

#: doc/classes/@GlobalScope.xml:1520
msgid "Variable is of type [Rect2]."
msgstr "变量类型为[Rect2]。"

#: doc/classes/@GlobalScope.xml:1523
msgid "Variable is of type [Vector3]."
msgstr "变量类型为[Vector3]。"

#: doc/classes/@GlobalScope.xml:1526
msgid "Variable is of type [Transform2D]."
msgstr "变量类型为[Transform2D]。"

#: doc/classes/@GlobalScope.xml:1529
msgid "Variable is of type [Plane]."
msgstr "变量类型为[Plane]。"

#: doc/classes/@GlobalScope.xml:1532
msgid "Variable is of type [Quat]."
msgstr "变量的类型为[Quat]。"

#: doc/classes/@GlobalScope.xml:1535
msgid "Variable is of type [AABB]."
msgstr "变量的类型为 [AABB]."

#: doc/classes/@GlobalScope.xml:1538
msgid "Variable is of type [Basis]."
msgstr "变量的类型为[Basis]."

#: doc/classes/@GlobalScope.xml:1541
msgid "Variable is of type [Transform]."
msgstr "变量的类型为 [Transform]."

#: doc/classes/@GlobalScope.xml:1544
msgid "Variable is of type [Color]."
msgstr "变量的类型为[Color]."

#: doc/classes/@GlobalScope.xml:1547
msgid "Variable is of type [NodePath]."
msgstr "变量的类型为 [NodePath]。"

#: doc/classes/@GlobalScope.xml:1550
msgid "Variable is of type [RID]."
msgstr "变量的类型为[RID]."

#: doc/classes/@GlobalScope.xml:1553
msgid "Variable is of type [Object]."
msgstr "变量的类型为[Object]."

#: doc/classes/@GlobalScope.xml:1556
msgid "Variable is of type [Dictionary]."
msgstr "变量的类型为[Dictionary]。"

#: doc/classes/@GlobalScope.xml:1559
msgid "Variable is of type [Array]."
msgstr "变量的类型为[Array]。"

#: doc/classes/@GlobalScope.xml:1562
#, fuzzy
msgid "Variable is of type [PoolByteArray]."
msgstr "变量的类型为[PackedByteArray]."

#: doc/classes/@GlobalScope.xml:1565
#, fuzzy
msgid "Variable is of type [PoolIntArray]."
msgstr "变量的类型为[Array]。"

#: doc/classes/@GlobalScope.xml:1568
#, fuzzy
msgid "Variable is of type [PoolRealArray]."
msgstr "变量的类型为[Array]。"

#: doc/classes/@GlobalScope.xml:1571
#, fuzzy
msgid "Variable is of type [PoolStringArray]."
msgstr "变量的类型为[PackedStringArray]。"

#: doc/classes/@GlobalScope.xml:1574
#, fuzzy
msgid "Variable is of type [PoolVector2Array]."
msgstr "变量的类型为[PackedVector2Array]。"

#: doc/classes/@GlobalScope.xml:1577
#, fuzzy
msgid "Variable is of type [PoolVector3Array]."
msgstr "变量的类型为[PackedVector3Array]。"

#: doc/classes/@GlobalScope.xml:1580
#, fuzzy
msgid "Variable is of type [PoolColorArray]."
msgstr "变量的类型为[PackedColorArray]。"

#: doc/classes/@GlobalScope.xml:1583
msgid "Represents the size of the [enum Variant.Type] enum."
msgstr "表示[enum Variant.Type]枚举的大小。"

#: doc/classes/@GlobalScope.xml:1586
msgid "Equality operator ([code]==[/code])."
msgstr "等于运算符([code] == [/code])。"

#: doc/classes/@GlobalScope.xml:1589
msgid "Inequality operator ([code]!=[/code])."
msgstr "不等式运算符([code]!= [/code])。"

#: doc/classes/@GlobalScope.xml:1592
msgid "Less than operator ([code]<[/code])."
msgstr "小于运算符([code] <[/code])。"

#: doc/classes/@GlobalScope.xml:1595
msgid "Less than or equal operator ([code]<=[/code])."
msgstr "小于或等于运算符([code] <= [/code])。"

#: doc/classes/@GlobalScope.xml:1598
msgid "Greater than operator ([code]>[/code])."
msgstr "大于运算符([code]> [/code])。"

#: doc/classes/@GlobalScope.xml:1601
msgid "Greater than or equal operator ([code]>=[/code])."
msgstr "大于或等于运算符([code]> = [/code])。"

#: doc/classes/@GlobalScope.xml:1604
msgid "Addition operator ([code]+[/code])."
msgstr "加法运算符([code] + [/code])。"

#: doc/classes/@GlobalScope.xml:1607
msgid "Subtraction operator ([code]-[/code])."
msgstr "减法运算符([code]-[/code])。"

#: doc/classes/@GlobalScope.xml:1610
msgid "Multiplication operator ([code]*[/code])."
msgstr "乘法运算符([code] * [/code])。"

#: doc/classes/@GlobalScope.xml:1613
msgid "Division operator ([code]/[/code])."
msgstr "除法运算符([code] / [/code])。"

#: doc/classes/@GlobalScope.xml:1616
msgid "Unary negation operator ([code]-[/code])."
msgstr "一元减号运算符([code]-[/code])。"

#: doc/classes/@GlobalScope.xml:1619
msgid "Unary plus operator ([code]+[/code])."
msgstr "一元加号运算符([code] + [/code])。"

#: doc/classes/@GlobalScope.xml:1622
msgid "Remainder/modulo operator ([code]%[/code])."
msgstr "余数/取模运算符([code]%[/code])。"

#: doc/classes/@GlobalScope.xml:1625
msgid "String concatenation operator ([code]+[/code])."
msgstr "字符串串联运算符([code] + [/code])。"

#: doc/classes/@GlobalScope.xml:1628
msgid "Left shift operator ([code]<<[/code])."
msgstr "左移运算符([code] << [/code])。"

#: doc/classes/@GlobalScope.xml:1631
msgid "Right shift operator ([code]>>[/code])."
msgstr "右移运算符([code] >> [/code])。"

#: doc/classes/@GlobalScope.xml:1634
msgid "Bitwise AND operator ([code]&[/code])."
msgstr "按位AND运算符([code]&[/code])。"

#: doc/classes/@GlobalScope.xml:1637
msgid "Bitwise OR operator ([code]|[/code])."
msgstr "按位或运算符([code] | [/code])。"

#: doc/classes/@GlobalScope.xml:1640
msgid "Bitwise XOR operator ([code]^[/code])."
msgstr "按位XOR运算符([code] ^ [/code])。"

#: doc/classes/@GlobalScope.xml:1643
msgid "Bitwise NOT operator ([code]~[/code])."
msgstr "按位NOT运算符([code]〜[/code])。"

#: doc/classes/@GlobalScope.xml:1646
msgid "Logical AND operator ([code]and[/code] or [code]&&[/code])."
msgstr "逻辑AND运算符([code] and [/code]或[code] && [/code])。"

#: doc/classes/@GlobalScope.xml:1649
msgid "Logical OR operator ([code]or[/code] or [code]||[/code])."
msgstr "逻辑或运算符([code]或[/code]或[code] || [/code])。"

#: doc/classes/@GlobalScope.xml:1652
msgid "Logical XOR operator (not implemented in GDScript)."
msgstr "逻辑XOR运算符(未在GDScript中实现)。"

#: doc/classes/@GlobalScope.xml:1655
msgid "Logical NOT operator ([code]not[/code] or [code]![/code])."
msgstr "逻辑NOT运算符([code] not [/code]或[code]![/code])。"

#: doc/classes/@GlobalScope.xml:1658
msgid "Logical IN operator ([code]in[/code])."
msgstr "逻辑IN运算符([code] in [/code])。"

#: doc/classes/@GlobalScope.xml:1661
msgid "Represents the size of the [enum Variant.Operator] enum."
msgstr "表示[enum Variant.Operator]枚举的大小。"

#: doc/classes/AABB.xml:4
msgid "Axis-Aligned Bounding Box."
msgstr "轴对齐包围盒。"

#: doc/classes/AABB.xml:7
#, fuzzy
msgid ""
"[AABB] consists of a position, a size, and several utility functions. It is "
"typically used for fast overlap tests.\n"
"It uses floating-point coordinates. The 2D counterpart to [AABB] is "
"[Rect2].\n"
"[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses "
"integer coordinates."
msgstr ""
"[Rect2] 由一个位置、一个大小和几个实用功能组成。它通常用于快速重叠测试。\n"
"它使用浮点坐标。"

#: doc/classes/AABB.xml:12 doc/classes/Basis.xml:13 doc/classes/Plane.xml:10
#: doc/classes/Rect2.xml:12 doc/classes/Transform.xml:11
#: doc/classes/Transform2D.xml:11 doc/classes/Vector2.xml:11
#: doc/classes/Vector3.xml:11
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/math/index.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/math/index.html"

#: doc/classes/AABB.xml:13 doc/classes/Rect2.xml:13 doc/classes/Vector2.xml:12
#: doc/classes/Vector3.xml:12
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/math/vector_math.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/math/index.html"

#: doc/classes/AABB.xml:14 doc/classes/Rect2.xml:14 doc/classes/Vector2.xml:13
#: doc/classes/Vector3.xml:13
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/math/vectors_advanced.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/math/index.html"

#: doc/classes/AABB.xml:22
msgid "Constructs an [AABB] from a position and size."
msgstr "从一个位置和大小构造 [AABB] 。"

#: doc/classes/AABB.xml:28
msgid ""
"Returns an AABB with equivalent position and size, modified so that the most-"
"negative corner is the origin and the size is positive."
msgstr "返回等价的 AABB,其原点被修正至最负数的角落,大小被修正为正数。"

#: doc/classes/AABB.xml:35
msgid ""
"Returns [code]true[/code] if this [AABB] completely encloses another one."
msgstr "该 [AABB] 完全包含另一个时,返回 [code]true[/code]。"

#: doc/classes/AABB.xml:42
msgid "Returns this [AABB] expanded to include a given point."
msgstr "返回被扩展至包含指定点的该 [AABB]。"

#: doc/classes/AABB.xml:48
msgid "Returns the volume of the [AABB]."
msgstr "返回该 [AABB] 的体积。"

#: doc/classes/AABB.xml:55
msgid "Gets the position of the 8 endpoints of the [AABB] in space."
msgstr "获取该 [AABB] 的 8 个端点的位置。"

#: doc/classes/AABB.xml:61
msgid "Returns the normalized longest axis of the [AABB]."
msgstr "返回该 [AABB] 归一化后的最长轴。"

#: doc/classes/AABB.xml:67
msgid ""
"Returns the index of the longest axis of the [AABB] (according to "
"[Vector3]'s [code]AXIS_*[/code] constants)."
msgstr ""
"返回该 [AABB] 最长轴的索引(根据 [Vector3] 的 [code]AXIS_*[/code] 常量)。"

#: doc/classes/AABB.xml:73
msgid "Returns the scalar length of the longest axis of the [AABB]."
msgstr "返回该 [AABB] 最长轴的标量长度。"

#: doc/classes/AABB.xml:79
msgid "Returns the normalized shortest axis of the [AABB]."
msgstr "返回该 [AABB] 归一化后的最短轴。"

#: doc/classes/AABB.xml:85
msgid ""
"Returns the index of the shortest axis of the [AABB] (according to "
"[Vector3]::AXIS* enum)."
msgstr ""
"返回该 [AABB] 最短轴的索引(根据 [Vector3] 的 [code]AXIS_*[/code] 常量)。"

#: doc/classes/AABB.xml:91
msgid "Returns the scalar length of the shortest axis of the [AABB]."
msgstr "返回该 [AABB] 最短轴的标量长度。"

#: doc/classes/AABB.xml:98
msgid ""
"Returns the support point in a given direction. This is useful for collision "
"detection algorithms."
msgstr "返回指定方向上的支持点。常用于碰撞检测算法。"

#: doc/classes/AABB.xml:105
msgid ""
"Returns a copy of the [AABB] grown a given amount of units towards all the "
"sides."
msgstr "返回该 [AABB] 的副本,沿着所有面的方向都增加了指定的大小。"

#: doc/classes/AABB.xml:111
msgid "Returns [code]true[/code] if the [AABB] is flat or empty."
msgstr "该 [AABB] 为平面或者为空时,返回 [code]true[/code]。"

#: doc/classes/AABB.xml:117
msgid "Returns [code]true[/code] if the [AABB] is empty."
msgstr "该 [AABB] 为空时,返回 [code]true[/code]。"

#: doc/classes/AABB.xml:124
msgid "Returns [code]true[/code] if the [AABB] contains a point."
msgstr "该 [AABB] 包含指定点时,返回 [code]true[/code]。"

#: doc/classes/AABB.xml:131
msgid ""
"Returns the intersection between two [AABB]. An empty AABB (size 0,0,0) is "
"returned on failure."
msgstr "返回两个 [AABB] 的交叠区域。失败时返回空的 AABB(大小为 0,0,0)。"

#: doc/classes/AABB.xml:138
msgid "Returns [code]true[/code] if the [AABB] overlaps with another."
msgstr "该 [AABB] 与另一个交叠时,返回 [code]true[/code]。"

#: doc/classes/AABB.xml:145
msgid "Returns [code]true[/code] if the [AABB] is on both sides of a plane."
msgstr "该 [AABB] 同时位于指定平面的两边时,返回 [code]true[/code]。"

#: doc/classes/AABB.xml:153
msgid ""
"Returns [code]true[/code] if the [AABB] intersects the line segment between "
"[code]from[/code] and [code]to[/code]."
msgstr ""
"该 [AABB] 与 [code]from[/code] 和 [code]to[/code] 所构成的线段有交叠时,返回 "
"[code]true[/code]。"

#: doc/classes/AABB.xml:160
msgid ""
"Returns [code]true[/code] if this [AABB] and [code]aabb[/code] are "
"approximately equal, by calling [method @GDScript.is_equal_approx] on each "
"component."
msgstr ""
"该 [AABB] 与 [code]aabb[/code] 近似相等时,返回 [code]true[/code]。通过将各个"
"分量调用 [method @GDScript.is_equal_approx] 确定。"

#: doc/classes/AABB.xml:167
msgid ""
"Returns a larger [AABB] that contains both this [AABB] and [code]with[/code]."
msgstr "返回同时包含该 [AABB] 和 [code]with[/code] 的更大的 [AABB]。"

#: doc/classes/AABB.xml:173 doc/classes/Rect2.xml:132
msgid ""
"Ending corner. This is calculated as [code]position + size[/code]. Setting "
"this value will change the size."
msgstr ""
"终点角。通过 [code]position + size[/code] 计算而来。设置该值会修改大小。"

#: doc/classes/AABB.xml:176 doc/classes/Rect2.xml:135
msgid "Beginning corner. Typically has values lower than [member end]."
msgstr "起点角。通常比 [member end] 小。"

#: doc/classes/AABB.xml:179 doc/classes/Rect2.xml:138
#, fuzzy
msgid ""
"Size from [member position] to [member end]. Typically, all components are "
"positive.\n"
"If the size is negative, you can use [method abs] to fix it."
msgstr ""
"由[member position] 到 [member end] 的大小。通常所有分量都是正数。\n"
"如果大小为负,可以用 [method abs] 修正。"

#: doc/classes/AcceptDialog.xml:4
msgid "Base dialog for user notification."
msgstr "用户通知的基本对话框。"

#: doc/classes/AcceptDialog.xml:7
msgid ""
"This dialog is useful for small notifications to the user about an event. It "
"can only be accepted or closed, with the same result."
msgstr ""
"该对话框对于向用户发送有关事件的小通知很有用。它只能被接受或关闭,并且结果相"
"同。"

#: doc/classes/AcceptDialog.xml:18
#, fuzzy
msgid ""
"Adds a button with label [code]text[/code] and a custom [code]action[/code] "
"to the dialog and returns the created button. [code]action[/code] will be "
"passed to the [signal custom_action] signal when pressed.\n"
"If [code]true[/code], [code]right[/code] will place the button to the right "
"of any sibling buttons.\n"
"You can use [method remove_button] method to remove a button created with "
"this method from the dialog."
msgstr ""
"向对话框中添加一个带有标签[code] text [/code]和自定义[code] action [/code]的"
"按钮,并返回创建的按钮。按下时,[code] action [/code]会被传递给[signal "
"custom_action]信号。\n"
"如果[code]right[/code]为[code]true[/code],按钮会被放置在所有同级按钮的右边。"

#: doc/classes/AcceptDialog.xml:27
#, fuzzy
msgid ""
"Adds a button with label [code]name[/code] and a cancel action to the dialog "
"and returns the created button.\n"
"You can use [method remove_button] method to remove a button created with "
"this method from the dialog."
msgstr ""
"向对话框中添加一个标签为[code]name[/code]的按钮和一个取消动作,然后返回这个新"
"创建的按钮。"

#: doc/classes/AcceptDialog.xml:34
msgid "Returns the label used for built-in text."
msgstr "返回用于内置文本的标签。"

#: doc/classes/AcceptDialog.xml:40
msgid "Returns the OK [Button] instance."
msgstr "返回OK [Button]实例。"

#: doc/classes/AcceptDialog.xml:47
msgid ""
"Registers a [LineEdit] in the dialog. When the enter key is pressed, the "
"dialog will be accepted."
msgstr "在对话框中注册[QLineEdit]。 当按下回车键时,对话框将被接受。"

#: doc/classes/AcceptDialog.xml:54
msgid ""
"Removes the [code]button[/code] from the dialog. Does NOT free the "
"[code]button[/code]. The [code]button[/code] must be a [Button] added with "
"[method add_button] or [method add_cancel] method. After removal, pressing "
"the [code]button[/code] will no longer emit this dialog's [signal "
"custom_action] signal or cancel this dialog."
msgstr ""

#: doc/classes/AcceptDialog.xml:60
msgid "Sets autowrapping for the text in the dialog."
msgstr "为对话框中的文本设置自动换行。"

#: doc/classes/AcceptDialog.xml:63
msgid ""
"If [code]true[/code], the dialog is hidden when the OK button is pressed. "
"You can set it to [code]false[/code] if you want to do e.g. input validation "
"when receiving the [signal confirmed] signal, and handle hiding the dialog "
"in your own logic.\n"
"[b]Note:[/b] Some nodes derived from this class can have a different default "
"value, and potentially their own built-in logic overriding this setting. For "
"example [FileDialog] defaults to [code]false[/code], and has its own input "
"validation code that is called when you press OK, which eventually hides the "
"dialog if the input is valid. As such, this property can't be used in "
"[FileDialog] to disable hiding the dialog when pressing OK."
msgstr ""
"如果为 [code] true [/code],按下OK按钮时对话框将隐藏。如果要在收到 [signal "
"confirmed] 信号时执行类似输入验证的操作,则可以将其设置为[code]false[/code],"
"然后在自己的逻辑中处理对话框的隐藏。\n"
"[b]注意:[/b] 从此类派生的某些节点可以具有不同的默认值,并且可能有自己的内置"
"逻辑会覆盖此设置。 例如,[FileDialog] 默认其为 [code]false[/code],并在按下OK"
"时实现了自己的输入验证代码,如果输入有效,最终将隐藏对话框。因此,不能在 "
"[FileDialog] 中使用此属性来禁止在按OK时隐藏对话框。"

#: doc/classes/AcceptDialog.xml:67
msgid "The text displayed by the dialog."
msgstr "对话框显示的文本。"

#: doc/classes/AcceptDialog.xml:74
msgid "Emitted when the dialog is accepted, i.e. the OK button is pressed."
msgstr "接受对话框时,即按下OK按钮时发出。"

#: doc/classes/AcceptDialog.xml:80
msgid "Emitted when a custom button is pressed. See [method add_button]."
msgstr "按下自定义按钮时发出。 参见[方法add_button]。"

#: doc/classes/AESContext.xml:4
msgid "Interface to low level AES encryption features."
msgstr "低级AES加密功能接口。"

#: doc/classes/AESContext.xml:7
msgid ""
"This class provides access to AES encryption/decryption of raw data. Both "
"AES-ECB and AES-CBC mode are supported.\n"
"[codeblock]\n"
"extends Node\n"
"\n"
"var aes = AESContext.new()\n"
"\n"
"func _ready():\n"
"    var key = \"My secret key!!!\" # Key must be either 16 or 32 bytes.\n"
"    var data = \"My secret text!!\" # Data size must be multiple of 16 "
"bytes, apply padding if needed.\n"
"    # Encrypt ECB\n"
"    aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8())\n"
"    var encrypted = aes.update(data.to_utf8())\n"
"    aes.finish()\n"
"    # Decrypt ECB\n"
"    aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8())\n"
"    var decrypted = aes.update(encrypted)\n"
"    aes.finish()\n"
"    # Check ECB\n"
"    assert(decrypted == data.to_utf8())\n"
"\n"
"    var iv = \"My secret iv!!!!\" # IV must be of exactly 16 bytes.\n"
"    # Encrypt CBC\n"
"    aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8(), iv.to_utf8())\n"
"    encrypted = aes.update(data.to_utf8())\n"
"    aes.finish()\n"
"    # Decrypt CBC\n"
"    aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8(), iv.to_utf8())\n"
"    decrypted = aes.update(encrypted)\n"
"    aes.finish()\n"
"    # Check CBC\n"
"    assert(decrypted == data.to_utf8())\n"
"[/codeblock]"
msgstr ""
"“此类提供了对原始数据的AES加密/解密的访问。同时支持AES-ECB和AES-CBC模式。\n"
"[codeblock]\n"
"extends Node\n"
"\n"
"var aes = AESContext.new()\n"
"\n"
"func _ready():\n"
"    var key = \"My secret key!!!\" # Key must be either 16 or 32 bytes.\n"
"    var data = \"My secret text!!\" # Data size must be multiple of 16 "
"bytes, apply padding if needed.\n"
"    # Encrypt ECB\n"
"    aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8())\n"
"    var encrypted = aes.update(data.to_utf8())\n"
"    aes.finish()\n"
"    # Decrypt ECB\n"
"    aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8())\n"
"    var decrypted = aes.update(encrypted)\n"
"    aes.finish()\n"
"    # Check ECB\n"
"    assert(decrypted == data.to_utf8())\n"
"\n"
"    var iv = \"My secret iv!!!!\" # IV must be of exactly 16 bytes.\n"
"    # Encrypt CBC\n"
"    aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8(), iv.to_utf8())\n"
"    encrypted = aes.update(data.to_utf8())\n"
"    aes.finish()\n"
"    # Decrypt CBC\n"
"    aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8(), iv.to_utf8())\n"
"    decrypted = aes.update(encrypted)\n"
"    aes.finish()\n"
"    # Check CBC\n"
"    assert(decrypted == data.to_utf8())\n"
"[/codeblock]"

#: doc/classes/AESContext.xml:46
msgid "Close this AES context so it can be started again. See [method start]."
msgstr "关闭此AES上下文,以便可以再次启动它。 参见[method start]。"

#: doc/classes/AESContext.xml:52
#, fuzzy
msgid ""
"Get the current IV state for this context (IV gets updated when calling "
"[method update]). You normally don't need this function.\n"
"[b]Note:[/b] This function only makes sense when the context is started with "
"[constant MODE_CBC_ENCRYPT] or [constant MODE_CBC_DECRYPT]."
msgstr ""
"获取此上下文的当前IV状态(调用[方法更新]时会更新IV。)通常不需要此函数。\n"
"注意:仅当以[constant MODE_CBC_ENCRYPT]或[constant MODE_CBC_DECRYPT]开头上下"
"文时,此功能才有意义。"

#: doc/classes/AESContext.xml:62
msgid ""
"Start the AES context in the given [code]mode[/code]. A [code]key[/code] of "
"either 16 or 32 bytes must always be provided, while an [code]iv[/code] "
"(initialization vector) of exactly 16 bytes, is only needed when [code]mode[/"
"code] is either [constant MODE_CBC_ENCRYPT] or [constant MODE_CBC_DECRYPT]."
msgstr ""
"以给定的[code]模式[/code]启动AES上下文。必须始终提供16或32字节的[code] key [/"
"code],而仅当[code] mode [/code]为以下两种情况时才需要正好为16字节的[code] "
"iv [/code](初始化向量) [constant MODE_CBC_ENCRYPT]或[constant "
"MODE_CBC_DECRYPT]。"

#: doc/classes/AESContext.xml:69
#, fuzzy
msgid ""
"Run the desired operation for this AES context. Will return a "
"[PoolByteArray] containing the result of encrypting (or decrypting) the "
"given [code]src[/code]. See [method start] for mode of operation.\n"
"[b]Note:[/b] The size of [code]src[/code] must be a multiple of 16. Apply "
"some padding if needed."
msgstr ""
"运行此 AES 上下文所需的操作。将返回包含加密(或解密)给定 [code] src [/code] "
"结果的 [包装字节] 。有关操作模式,请参阅[方法启动]。\n"
"注意:[code]src[/code]的大小必须是16倍的倍数。如果需要,应用一些填充。"

#: doc/classes/AESContext.xml:76
msgid "AES electronic codebook encryption mode."
msgstr "AES电子密码簿加密模式。"

#: doc/classes/AESContext.xml:79
msgid "AES electronic codebook decryption mode."
msgstr "AES电子密码簿解密模式。"

#: doc/classes/AESContext.xml:82
msgid "AES cipher blocker chaining encryption mode."
msgstr "AES密码封锁器链式加密模式。"

#: doc/classes/AESContext.xml:85
msgid "AES cipher blocker chaining decryption mode."
msgstr "AES密码封锁器链式解密模式。"

#: doc/classes/AESContext.xml:88
msgid "Maximum value for the mode enum."
msgstr "模式列举的最大值。"

#: doc/classes/AnimatedSprite.xml:4
msgid "Sprite node that can use multiple textures for animation."
msgstr "可以使用多个纹理进行动画处理的Sprite节点。"

#: doc/classes/AnimatedSprite.xml:7
msgid ""
"Animations are created using a [SpriteFrames] resource, which can be "
"configured in the editor via the SpriteFrames panel.\n"
"[b]Note:[/b] You can associate a set of normal maps by creating additional "
"[SpriteFrames] resources with a [code]_normal[/code] suffix. For example, "
"having 2 [SpriteFrames] resources [code]run[/code] and [code]run_normal[/"
"code] will make it so the [code]run[/code] animation uses the normal map."
msgstr ""

#: doc/classes/AnimatedSprite.xml:11 doc/classes/AnimatedSprite3D.xml:10
#: doc/classes/AnimationPlayer.xml:13
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/2d/2d_sprite_animation.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/2d/2d_transforms.html"

#: doc/classes/AnimatedSprite.xml:12 doc/classes/Area2D.xml:11
#: doc/classes/AudioStreamPlayer.xml:12 doc/classes/Button.xml:24
#: doc/classes/CanvasLayer.xml:12 doc/classes/CollisionShape2D.xml:11
#: doc/classes/ColorRect.xml:10 doc/classes/Input.xml:11
#: doc/classes/InputEvent.xml:12 doc/classes/InputEventAction.xml:11
#: doc/classes/Label.xml:12 doc/classes/Particles2D.xml:15
#: doc/classes/Timer.xml:11 doc/classes/VisibilityNotifier2D.xml:12
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/515"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/AnimatedSprite.xml:18 doc/classes/AnimatedSprite3D.xml:16
msgid "Returns [code]true[/code] if an animation is currently being played."
msgstr "如果一个动画当前正在播放,返回 [code]true[/code] 。"

#: doc/classes/AnimatedSprite.xml:26
msgid ""
"Plays the animation named [code]anim[/code]. If no [code]anim[/code] is "
"provided, the current animation is played. If [code]backwards[/code] is "
"[code]true[/code], the animation will be played in reverse."
msgstr ""
"播放由 [code]anim[/code] 指定的播放。如果没有指定 [code]anim[/code] 参数,则"
"播放当前动画。 如果 [code]backwards[/code] 为 [code]true[/code] ,则倒序播放"
"动画。"

#: doc/classes/AnimatedSprite.xml:32 doc/classes/AnimatedSprite3D.xml:29
msgid "Stops the current animation (does not reset the frame counter)."
msgstr "停止播放当前动画(不会重置帧计数器)。"

#: doc/classes/AnimatedSprite.xml:38 doc/classes/AnimatedSprite3D.xml:35
msgid ""
"The current animation from the [code]frames[/code] resource. If this value "
"changes, the [code]frame[/code] counter is reset."
msgstr ""
"来自 [code]frames[/code] 资源的当前动画。如果这个值发生变化,[code]frame[/"
"code]计数器会被重置。"

#: doc/classes/AnimatedSprite.xml:41 doc/classes/SpriteBase3D.xml:48
msgid "If [code]true[/code], texture will be centered."
msgstr "如果为 [code]true[/code],纹理将被居中。"

#: doc/classes/AnimatedSprite.xml:44 doc/classes/Sprite.xml:39
#: doc/classes/SpriteBase3D.xml:54 doc/classes/TextureButton.xml:21
#: doc/classes/TextureRect.xml:20
msgid "If [code]true[/code], texture is flipped horizontally."
msgstr "如果为 [code]true[/code],纹理将被水平翻转。"

#: doc/classes/AnimatedSprite.xml:47 doc/classes/Sprite.xml:42
#: doc/classes/SpriteBase3D.xml:57 doc/classes/TextureButton.xml:24
#: doc/classes/TextureRect.xml:23
msgid "If [code]true[/code], texture is flipped vertically."
msgstr "如果为 [code]true[/code],纹理将被垂直翻转。"

#: doc/classes/AnimatedSprite.xml:50 doc/classes/AnimatedSprite3D.xml:38
msgid "The displayed animation frame's index."
msgstr "显示的动画帧的索引。"

#: doc/classes/AnimatedSprite.xml:53 doc/classes/AnimatedSprite3D.xml:41
msgid "The [SpriteFrames] resource containing the animation(s)."
msgstr "包含动画的 [SpriteFrames] 资源。"

#: doc/classes/AnimatedSprite.xml:56 doc/classes/Sprite.xml:58
#: doc/classes/SpriteBase3D.xml:63
msgid "The texture's drawing offset."
msgstr "纹理的绘图偏移量。"

#: doc/classes/AnimatedSprite.xml:59 doc/classes/AnimatedSprite3D.xml:44
msgid "If [code]true[/code], the [member animation] is currently playing."
msgstr "如果[code]true[/code],则表示当前正在播放[成员动画]。"

#: doc/classes/AnimatedSprite.xml:62
msgid "The animation speed is multiplied by this value."
msgstr "动画速度乘以此值。"

#: doc/classes/AnimatedSprite.xml:68 doc/classes/AnimatedSprite3D.xml:50
msgid ""
"Emitted when the animation is finished (when it plays the last frame). If "
"the animation is looping, this signal is emitted every time the last frame "
"is drawn."
msgstr ""
"动画结束时(播放最后一帧时)发出。如果动画正在循环播放,则每次绘制最后一帧时"
"都会发出此信号。"

#: doc/classes/AnimatedSprite.xml:73 doc/classes/AnimatedSprite3D.xml:55
msgid "Emitted when [member frame] changed."
msgstr "当[成员框架]更改时发出。"

#: doc/classes/AnimatedSprite3D.xml:4
msgid ""
"2D sprite node in 3D world, that can use multiple 2D textures for animation."
msgstr "3D世界中的2D精灵节点,可以使用多个2D纹理进行动画处理。"

#: doc/classes/AnimatedSprite3D.xml:7
msgid ""
"Animations are created using a [SpriteFrames] resource, which can be "
"configured in the editor via the SpriteFrames panel."
msgstr ""
"动画能够使用一个 [SpriteFrames] 资源创建,可以在编辑器的动画帧面板配置。"

#: doc/classes/AnimatedSprite3D.xml:23
msgid ""
"Plays the animation named [code]anim[/code]. If no [code]anim[/code] is "
"provided, the current animation is played."
msgstr ""
"播放名为 [code] anim [/code] 。如果没有提供 [code]anim[/code],则播放当前动"
"画。"

#: doc/classes/AnimatedTexture.xml:4
msgid "Proxy texture for simple frame-based animations."
msgstr "基于简单帧动画的代理纹理。"

#: doc/classes/AnimatedTexture.xml:7
#, fuzzy
msgid ""
"[AnimatedTexture] is a resource format for frame-based animations, where "
"multiple textures can be chained automatically with a predefined delay for "
"each frame. Unlike [AnimationPlayer] or [AnimatedSprite], it isn't a [Node], "
"but has the advantage of being usable anywhere a [Texture] resource can be "
"used, e.g. in a [TileSet].\n"
"The playback of the animation is controlled by the [member fps] property as "
"well as each frame's optional delay (see [method set_frame_delay]). The "
"animation loops, i.e. it will restart at frame 0 automatically after playing "
"the last frame.\n"
"[AnimatedTexture] currently requires all frame textures to have the same "
"size, otherwise the bigger ones will be cropped to match the smallest one.\n"
"[b]Note:[/b] AnimatedTexture doesn't support using [AtlasTexture]s. Each "
"frame needs to be a separate [Texture]."
msgstr ""
"[AnimatedTexture]是用于基于帧的动画的资源格式,其中可以自动为每个帧以预定义的"
"延迟链接多个纹理。与[AnimationPlayer]或[AnimatedSprite2D]不同,它不是[Node],"
"但具有可以在可以使用[Texture2D]资源的任何地方使用的优点,例如在[TileSet]"
"中。\n"
"动画的回放由[member fps]属性以及每帧的可选延迟控制(请参见[method "
"set_frame_delay])。动画循环播放,即它将在播放最后一帧后在第0帧自动重新开"
"始。\n"
"[AnimatedTexture]当前要求所有帧纹理具有相同的大小,否则较大的纹理将被裁剪以匹"
"配最小的纹理。另外,它不支持[AtlasTexture]。每个帧需要是单独的图像。"

#: doc/classes/AnimatedTexture.xml:19
msgid "Returns the given frame's delay value."
msgstr "返回给定帧的延迟值。"

#: doc/classes/AnimatedTexture.xml:26
#, fuzzy
msgid "Returns the given frame's [Texture]."
msgstr "返回给定帧的[Texture2D]。"

#: doc/classes/AnimatedTexture.xml:34
msgid ""
"Sets an additional delay (in seconds) between this frame and the next one, "
"that will be added to the time interval defined by [member fps]. By default, "
"frames have no delay defined. If a delay value is defined, the final time "
"interval between this frame and the next will be [code]1.0 / fps + delay[/"
"code].\n"
"For example, for an animation with 3 frames, 2 FPS and a frame delay on the "
"second frame of 1.2, the resulting playback will be:\n"
"[codeblock]\n"
"Frame 0: 0.5 s (1 / fps)\n"
"Frame 1: 1.7 s (1 / fps + 1.2)\n"
"Frame 2: 0.5 s (1 / fps)\n"
"Total duration: 2.7 s\n"
"[/codeblock]"
msgstr ""
"在此帧和下一帧之间设置额外的延迟(以秒为内),该延迟将添加到 [member fps] 定"
"义的时间间隔中。默认情况下,框架没有延迟定义。如果定义了延迟值,则此帧和下一"
"帧之间的最终时间间隔将是 [code]1.0 / fps + delay[/code] 。\n"
"例如,对于具有 3 帧、2 个 FPS 和 1.2 第二帧上的帧延迟的动画,由此产生的回放将"
"是:\n"
"[codeblock]\n"
"Frame 0: 0.5 s (1 / fps)\n"
"Frame 1: 1.7 s (1 / fps + 1.2)\n"
"Frame 2: 0.5 s (1 / fps)\n"
"Total duration: 2.7 s\n"
"[/codeblock]"

#: doc/classes/AnimatedTexture.xml:49
#, fuzzy
msgid ""
"Assigns a [Texture] to the given frame. Frame IDs start at 0, so the first "
"frame has ID 0, and the last frame of the animation has ID [member frames] - "
"1.\n"
"You can define any number of textures up to [constant MAX_FRAMES], but keep "
"in mind that only frames from 0 to [member frames] - 1 will be part of the "
"animation."
msgstr ""
"将[Texture2D]分配给给定的帧。帧ID从0开始,因此第一帧的ID为0,动画的最后一帧的"
"ID为[成员帧]-1。\n"
"您可以定义任意数量的纹理,直到[constant MAX_FRAMES],但要记住,只有0到[成员"
"帧]-1的帧会成为动画的一部分。"

#: doc/classes/AnimatedTexture.xml:56
msgid "Sets the currently visible frame of the texture."
msgstr "设置纹理当前可见的帧。"

#: doc/classes/AnimatedTexture.xml:60
msgid ""
"Animation speed in frames per second. This value defines the default time "
"interval between two frames of the animation, and thus the overall duration "
"of the animation loop based on the [member frames] property. A value of 0 "
"means no predefined number of frames per second, the animation will play "
"according to each frame's frame delay (see [method set_frame_delay]).\n"
"For example, an animation with 8 frames, no frame delay and a [code]fps[/"
"code] value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds."
msgstr ""
"动画速度,以每秒帧数为单位。此值定义动画两个帧之间的默认时间间隔,并因此基于"
"[member frames]属性定义动画循环的总体持续时间。值为0表示每秒没有预定义的帧"
"数,动画将根据每个帧的帧延迟播放(请参阅[method set_frame_delay])。\n"
"例如,具有8帧,无帧延迟且[code] fps [/code]值为2的动画将运行4秒,每帧持续0.5"
"秒。"

#: doc/classes/AnimatedTexture.xml:64
msgid ""
"Number of frames to use in the animation. While you can create the frames "
"independently with [method set_frame_texture], you need to set this value "
"for 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]。"

#: doc/classes/AnimatedTexture.xml:67
msgid ""
"If [code]true[/code], the animation will only play once and will not loop "
"back to the first frame after reaching the end. Note that reaching the end "
"will not set [member pause] to [code]true[/code]."
msgstr ""
"如果[code] true [/code],则动画将只播放一次,并且在到达结尾后将不会循环回到第"
"一帧。请注意,到达终点不会将[成员暂停]设置为[code] true [/code]。"

#: doc/classes/AnimatedTexture.xml:70
msgid ""
"If [code]true[/code], the animation will pause where it currently is (i.e. "
"at [member current_frame]). The animation will continue from where it was "
"paused when changing this property to [code]false[/code]."
msgstr ""
"如果[code] true [/code],则动画将暂停在当前位置(即[member current_frame])。"
"将此属性更改为[code] false [/code]时,动画将从暂停处继续播放。"

#: doc/classes/AnimatedTexture.xml:75
#, fuzzy
msgid ""
"The maximum number of frames supported by [AnimatedTexture]. If you need "
"more frames in your animation, use [AnimationPlayer] or [AnimatedSprite]."
msgstr ""
"[AnimatedTexture]支持的最大帧数。如果动画中需要更多帧,请使用"
"[AnimationPlayer]或[AnimatedSprite2D]。"

#: doc/classes/Animation.xml:4
msgid "Contains data used to animate everything in the engine."
msgstr "包含用于对引擎中所有内容进行动画处理的数据。"

#: doc/classes/Animation.xml:7
#, fuzzy
msgid ""
"An Animation resource contains data used to animate everything in the "
"engine. Animations are divided into tracks, and each track must be linked to "
"a node. The state of that node can be changed through time, by adding timed "
"keys (events) to the track.\n"
"[codeblock]\n"
"# This creates an animation that makes the node \"Enemy\" move to the right "
"by\n"
"# 100 pixels in 0.5 seconds.\n"
"var animation = Animation.new()\n"
"var track_index = animation.add_track(Animation.TYPE_VALUE)\n"
"animation.track_set_path(track_index, \"Enemy:position:x\")\n"
"animation.track_insert_key(track_index, 0.0, 0)\n"
"animation.track_insert_key(track_index, 0.5, 100)\n"
"[/codeblock]\n"
"Animations are just data containers, and must be added to nodes such as an "
"[AnimationPlayer] or [AnimationTreePlayer] to be played back. Animation "
"tracks have different types, each with its own set of dedicated methods. "
"Check [enum TrackType] to see available types."
msgstr ""
"动画资源包含用于对引擎中所有内容进行动画处理的数据。动画分为轨道,每个轨道必"
"须链接到一个节点。通过将定时键(事件)添加到轨道,可以随时间更改该节点的状"
"态。\n"
"[codeblock]\n"
"# This creates an animation that makes the node \"Enemy\" move to the right "
"by\n"
"# 100 pixels in 0.5 seconds.\n"
"var animation = Animation.new()\n"
"var track_index = animation.add_track(Animation.TYPE_VALUE)\n"
"animation.track_set_path(track_index, \"Enemy:position:x\")\n"
"animation.track_insert_key(track_index, 0.0, 0)\n"
"animation.track_insert_key(track_index, 0.5, 100)\n"
"[/codeblock]\n"
"动画只是数据容器,必须将其添加到诸如[AnimationPlayer]之类的节点才能播放。动画"
"轨道有不同的类型,每种都有自己的专用方法集。选中 [enum TrackType]以查看可用的"
"类型。"

#: doc/classes/Animation.xml:20 doc/classes/AnimationPlayer.xml:12
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/animation/index.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/animation/index.html"

#: doc/classes/Animation.xml:28
msgid "Adds a track to the Animation."
msgstr "向动画添加轨道。"

#: doc/classes/Animation.xml:36
msgid ""
"Returns the animation name at the key identified by [code]key_idx[/code]. "
"The [code]track_idx[/code] must be the index of an Animation Track."
msgstr ""
"返回由 [code]key_idx[/code]标识的键处的动画名称。 [code] track_idx [/code]必"
"须是动画轨道的索引。"

#: doc/classes/Animation.xml:45
msgid ""
"Inserts a key with value [code]animation[/code] at the given [code]time[/"
"code] (in seconds). The [code]track_idx[/code] must be the index of an "
"Animation Track."
msgstr ""
"在给定的[code]time[/code](以秒为单位)中插入值[code] animation [/code]的"
"键。 [code] track_idx [/code]必须是动画轨道的索引。"

#: doc/classes/Animation.xml:54
msgid ""
"Sets the key identified by [code]key_idx[/code] to value [code]animation[/"
"code]. The [code]track_idx[/code] must be the index of an Animation Track."
msgstr ""
"将 [code]key_idx[/code] 所标识的键设置为 [code]animation[/code] 的值。"
"[code]track_idx[/code] 必须是动画轨道的索引。"

#: doc/classes/Animation.xml:62
msgid ""
"Returns the end offset of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of an Audio Track.\n"
"End offset is the number of seconds cut off at the ending of the audio "
"stream."
msgstr ""
"返回由[code] key_idx [/code]标识的键的结束偏移量。 [code] track_idx [/code]必"
"须是音轨的索引。\n"
"结束偏移是音频流结束时截断的秒数。"

#: doc/classes/Animation.xml:71
msgid ""
"Returns the start offset of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of an Audio Track.\n"
"Start offset is the number of seconds cut off at the beginning of the audio "
"stream."
msgstr ""
"返回由[code] key_idx [/code]标识的键的起始偏移量。 [code] track_idx [/code]必"
"须是音轨的索引。\n"
"起始偏移量是音频流开始处截断的秒数。"

#: doc/classes/Animation.xml:80
msgid ""
"Returns the audio stream of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of an Audio Track."
msgstr ""
"返回由[code] key_idx [/code]标识的键的音频流。 [code] track_idx [/code]必须是"
"音轨的索引。"

#: doc/classes/Animation.xml:91
msgid ""
"Inserts an Audio Track key at the given [code]time[/code] in seconds. The "
"[code]track_idx[/code] must be the index of an Audio Track.\n"
"[code]stream[/code] is the [AudioStream] resource to play. "
"[code]start_offset[/code] is the number of seconds cut off at the beginning "
"of the audio stream, while [code]end_offset[/code] is at the ending."
msgstr ""
"在给定的[code]时间[/code](以秒为单位)中插入音轨音调。 [code] track_idx [/"
"code]必须是音轨的索引。\n"
"[code] stream [/code]是要播放的[AudioStream]资源。 [code] start_offset [/"
"code]是在音频流的开头截断的秒数,而[code] end_offset [/code]在结尾。"

#: doc/classes/Animation.xml:101
msgid ""
"Sets the end offset of the key identified by [code]key_idx[/code] to value "
"[code]offset[/code]. The [code]track_idx[/code] must be the index of an "
"Audio Track."
msgstr ""
"将由 [code]key_idx[/code] 标识的键的结束偏移设置为值 [code]offset[/code]. "
"[code]track_idx[/code] 必须是音轨的索引."

#: doc/classes/Animation.xml:110
msgid ""
"Sets the start offset of the key identified by [code]key_idx[/code] to value "
"[code]offset[/code]. The [code]track_idx[/code] must be the index of an "
"Audio Track."
msgstr ""
"将由 [code]key_idx[/code] 确定的键的起始偏移量设置为 [code]offset[/code]. "
"[code]track_idx[/code] 必须是音频轨道的索引."

#: doc/classes/Animation.xml:119
#, fuzzy
msgid ""
"Sets the stream of the key identified by [code]key_idx[/code] to value "
"[code]stream[/code]. The [code]track_idx[/code] must be the index of an "
"Audio Track."
msgstr ""
"将 [code]key_idx[/code] 所标识的键流设置为 [code]offset[/code] 值。"
"[code]track_idx[/code]必须是一个音频轨道的索引。"

#: doc/classes/Animation.xml:127
msgid ""
"Returns the in handle of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
"返回由 [code]key_idx[/code] 识别的键的输入句柄, [code]track_idx[/code] 必须"
"是 Bezier轨道的索引。"

#: doc/classes/Animation.xml:135
msgid ""
"Returns the out handle of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
"返回由 [code]key_idx[/code] 识别的键的输出句柄, [code]track_idx[/code] 必须"
"是 Bezier轨道的索引。"

#: doc/classes/Animation.xml:143
msgid ""
"Returns the value of the key identified by [code]key_idx[/code]. The "
"[code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
"返回由 [code]key_idx[/code] 识别的键的值, [code]track_idx[/code] 必须是 "
"Bezier轨道的索引。"

#: doc/classes/Animation.xml:154
msgid ""
"Inserts a Bezier Track key at the given [code]time[/code] in seconds. The "
"[code]track_idx[/code] must be the index of a Bezier Track.\n"
"[code]in_handle[/code] is the left-side weight of the added Bezier curve "
"point, [code]out_handle[/code] is the right-side one, while [code]value[/"
"code] is the actual value at this point."
msgstr ""
"在给定的[code]时间[/code]插入一个贝塞尔轨道键,单位为秒。[code]track_idx[/"
"code] 必须是 Bezier轨道的索引。\n"
"[code]in_handle[/code]是添加的Bezier曲线点的左侧权重,[code]out_handle[/code]"
"是右侧权重,而[code]value[/code]是这个点的实际值。"

#: doc/classes/Animation.xml:163
msgid ""
"Returns the interpolated value at the given [code]time[/code] (in seconds). "
"The [code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
"返回给定 [code]time[/code]处的插值(以秒为单位)。 [code]track_idx[/code]必须"
"是 Bezier轨道的索引。"

#: doc/classes/Animation.xml:172
msgid ""
"Sets the in handle of the key identified by [code]key_idx[/code] to value "
"[code]in_handle[/code]. The [code]track_idx[/code] must be the index of a "
"Bezier Track."
msgstr ""
"将 [code]key_idx[/code] 所标识的键的 in handle 设置为 [code]in_handle[/code] "
"值。[code]track_idx[/code] 必须是 Bezier轨道的索引。"

#: doc/classes/Animation.xml:181
msgid ""
"Sets the out handle of the key identified by [code]key_idx[/code] to value "
"[code]out_handle[/code]. The [code]track_idx[/code] must be the index of a "
"Bezier Track."
msgstr ""
"将由 [code]key_idx[/code] 确定的键的输出柄设置为 [code]out_handle[/code] 。"
"[code]track_idx[/code] 必须是 Bezier轨道的索引。"

#: doc/classes/Animation.xml:190
msgid ""
"Sets the value of the key identified by [code]key_idx[/code] to the given "
"value. The [code]track_idx[/code] must be the index of a Bezier Track."
msgstr ""
"将 [code]key_idx[/code] 所标识的键值设置为给定值。[code]track_idx[/code]必须"
"是 Bezier轨道的索引。"

#: doc/classes/Animation.xml:196
msgid "Clear the animation (clear all tracks and reset all)."
msgstr "清除动画(清除所有轨道并重置所有)。"

#: doc/classes/Animation.xml:204
msgid ""
"Adds a new track that is a copy of the given track from [code]to_animation[/"
"code]."
msgstr "从[code]to_animation[/code]中添加一个新的轨道,它是给定轨道的副本。"

#: doc/classes/Animation.xml:211
msgid ""
"Returns the index of the specified track. If the track is not found, return "
"-1."
msgstr "返回指定轨迹的索引。如果没有找到,返回-1。"

#: doc/classes/Animation.xml:217
msgid "Returns the amount of tracks in the animation."
msgstr "返回动画中的曲目量。"

#: doc/classes/Animation.xml:226
msgid ""
"Returns all the key indices of a method track, given a position and delta "
"time."
msgstr "返回给定位置和delta时间的方法轨迹的所有关键指数。"

#: doc/classes/Animation.xml:234
msgid "Returns the method name of a method track."
msgstr "返回一个方法轨迹的方法名。"

#: doc/classes/Animation.xml:242
msgid ""
"Returns the arguments values to be called on a method track for a given key "
"in a given track."
msgstr "返回给定轨道中给定键的方法轨道上要调用的参数值。"

#: doc/classes/Animation.xml:249
msgid "Removes a track by specifying the track index."
msgstr "通过指定轨迹索引来删除一个轨迹。"

#: doc/classes/Animation.xml:258
msgid ""
"Finds the key index by time in a given track. Optionally, only find it if "
"the exact time is given."
msgstr "按时间查找给定轨迹中的关键索引。也可选择只在给定准确时间的情况下查找。"

#: doc/classes/Animation.xml:265
msgid ""
"Returns [code]true[/code] if the track at [code]idx[/code] wraps the "
"interpolation loop. New tracks wrap the interpolation loop by default."
msgstr ""
"如果 [code]idx[/code] 处的轨迹包住了内插循环,则返回 [code]true[/code]。新的"
"轨迹默认会包住内插循环。"

#: doc/classes/Animation.xml:272
msgid "Returns the interpolation type of a given track."
msgstr "返回给定轨迹的插值类型。"

#: doc/classes/Animation.xml:279
msgid "Returns the amount of keys in a given track."
msgstr "返回指定轨道中的键数。"

#: doc/classes/Animation.xml:287
msgid "Returns the time at which the key is located."
msgstr "返回钥匙所在的时间。"

#: doc/classes/Animation.xml:295
msgid ""
"Returns the transition curve (easing) for a specific key (see the built-in "
"math function [method @GDScript.ease])."
msgstr "返回特定键的过渡曲线(缓动)(参见内置数学函数[方法@GDScript.ease])。"

#: doc/classes/Animation.xml:303
msgid "Returns the value of a given key in a given track."
msgstr "返回给定轨道中给定键的值。"

#: doc/classes/Animation.xml:310
msgid ""
"Gets the path of a track. For more information on the path format, see "
"[method track_set_path]."
msgstr "获取轨迹的路径。有关路径格式的详细信息,请参见[方法 track_set_path]。"

#: doc/classes/Animation.xml:317
msgid "Gets the type of a track."
msgstr "获取轨道的类型。"

#: doc/classes/Animation.xml:327
msgid "Insert a generic key in a given track."
msgstr "在指定的轨道中插入一个通用键。"

#: doc/classes/Animation.xml:334
msgid ""
"Returns [code]true[/code] if the track at index [code]idx[/code] is enabled."
msgstr "如果启用了索引[code]idx[/code]处的轨迹,则返回[code]true[/code]。"

#: doc/classes/Animation.xml:341
msgid ""
"Returns [code]true[/code] if the given track is imported. Else, return "
"[code]false[/code]."
msgstr ""
"如果给定的轨迹被导入,返回[code]true[/code]。否则,返回[code]false[/code]。"

#: doc/classes/Animation.xml:348
msgid "Moves a track down."
msgstr "将轨道下移。"

#: doc/classes/Animation.xml:356
msgid ""
"Changes the index position of track [code]idx[/code] to the one defined in "
"[code]to_idx[/code]."
msgstr ""
"将轨道 [code]idx[/code] 的索引位置改为 [code]to_idx[/code] 中定义的位置。"

#: doc/classes/Animation.xml:363
msgid "Moves a track up."
msgstr "将轨道上移。"

#: doc/classes/Animation.xml:371
msgid "Removes a key by index in a given track."
msgstr "在指定的轨道上按索引删除一个键。"

#: doc/classes/Animation.xml:379
msgid "Removes a key by position (seconds) in a given track."
msgstr "按位置(秒)删除指定轨道中的键。"

#: doc/classes/Animation.xml:387
msgid "Enables/disables the given track. Tracks are enabled by default."
msgstr "启用/禁用指定的轨道。曲目默认为启用。"

#: doc/classes/Animation.xml:395
msgid "Sets the given track as imported or not."
msgstr "将指定的轨道设置为导入或不导入。"

#: doc/classes/Animation.xml:403
msgid ""
"If [code]true[/code], the track at [code]idx[/code] wraps the interpolation "
"loop."
msgstr "如果[code]true[/code],则[code]idx[/code]处的轨迹包住插值循环。"

#: doc/classes/Animation.xml:411
msgid "Sets the interpolation type of a given track."
msgstr "设置指定轨道的内插类型。"

#: doc/classes/Animation.xml:420
msgid "Sets the time of an existing key."
msgstr "设置现有键的时间。"

#: doc/classes/Animation.xml:429
msgid ""
"Sets the transition curve (easing) for a specific key (see the built-in math "
"function [method @GDScript.ease])."
msgstr "设置特定键的过渡曲线(缓动)(参见内置数学函数[方法@GDScript.ease])。"

#: doc/classes/Animation.xml:438
msgid "Sets the value of an existing key."
msgstr "设置现有键的值。"

#: doc/classes/Animation.xml:446
#, fuzzy
msgid ""
"Sets the path of a track. Paths must be valid scene-tree paths to a node and "
"must be specified starting from the parent node of the node that will "
"reproduce the animation. Tracks that control properties or bones must append "
"their name after the path, separated by [code]\":\"[/code].\n"
"For example, [code]\"character/skeleton:ankle\"[/code] or [code]\"character/"
"mesh:transform/local\"[/code]."
msgstr ""
"设置轨迹的路径。路径必须是通往节点的有效场景树路径,并且必须从重现动画的节点"
"的父节点开始指定。控制属性或骨骼的轨迹必须在路径后附加其名称,并以[code]\":"
"\"[/code]分隔。\n"
"例如,[code]\"character/skeleton:ankle\"[/code]or[code]\"character/mesh:"
"transform/local\"[/code]。"

#: doc/classes/Animation.xml:455
msgid ""
"Swaps the track [code]idx[/code]'s index position with the track "
"[code]with_idx[/code]."
msgstr ""
"将轨道 [code]idx[/code] 的索引位置与轨道 [code]with_idx[/code] 的索引位置互"
"换。"

#: doc/classes/Animation.xml:466
msgid "Insert a transform key for a transform track."
msgstr "为变换轨道插入变换键。"

#: doc/classes/Animation.xml:474
msgid ""
"Returns the interpolated value of a transform track at a given time (in "
"seconds). An array consisting of 3 elements: position ([Vector3]), rotation "
"([Quat]) and scale ([Vector3])."
msgstr ""
"返回给定时间内变换轨迹的插值(以秒为单位)。由3个元素组成的数组:position(位"
"置)([Vector3])、rotation(旋转)([Quat])、 scale(缩放)([Vector3])。"

#: doc/classes/Animation.xml:483
msgid ""
"Returns all the key indices of a value track, given a position and delta "
"time."
msgstr "返回给定位置和delta时间的价值轨迹的所有关键指数。"

#: doc/classes/Animation.xml:490
msgid "Returns the update mode of a value track."
msgstr "返回值跟踪的更新模式。"

#: doc/classes/Animation.xml:498
#, fuzzy
msgid ""
"Returns the interpolated value at the given time (in seconds). The "
"[code]track_idx[/code] must be the index of a value track."
msgstr ""
"返回给定 [code]time[/code]处的插值(以秒为单位)。 [code]track_idx[/code]必须"
"是 Bezier轨道的索引。"

#: doc/classes/Animation.xml:506
msgid "Sets the update mode (see [enum UpdateMode]) of a value track."
msgstr "设置值跟踪的更新模式(参见[enum UpdateMode])。"

#: doc/classes/Animation.xml:512
msgid ""
"The total length of the animation (in seconds).\n"
"[b]Note:[/b] Length is not delimited by the last key, as this one may be "
"before or after the end to ensure correct interpolation and looping."
msgstr ""
"动画的总长度(单位:秒)。\n"
"[b]注意:[/b]长度不以最后一个键为界,因为这个键可能在结束前或结束后,以确保正"
"确的插值和循环。"

#: doc/classes/Animation.xml:516
#, fuzzy
msgid ""
"A flag indicating that the animation must loop. This is used for correct "
"interpolation of animation cycles, and for hinting the player that it must "
"restart the animation."
msgstr ""
"表示动画必须循环的标志。用于正确的动画循环插值,并提示玩家必须重新开始动画。"

#: doc/classes/Animation.xml:519
msgid "The animation step value."
msgstr "动画步长值。"

#: doc/classes/Animation.xml:525
msgid ""
"Emitted when there's a change in the list of tracks, e.g. tracks are added, "
"moved or have changed paths."
msgstr "当轨道列表发生变化时发出,例如轨道被添加、移动或改变路径。"

#: doc/classes/Animation.xml:531
msgid ""
"Value tracks set values in node properties, but only those which can be "
"Interpolated."
msgstr "值跟踪节点属性中的设置值,但只跟踪那些可以插值的值。"

#: doc/classes/Animation.xml:534
msgid ""
"Transform tracks are used to change node local transforms or skeleton pose "
"bones. Transitions are interpolated."
msgstr "变换轨迹用于改变节点局部变换或骨架姿势骨架。转变是插值的。"

#: doc/classes/Animation.xml:537
msgid "Method tracks call functions with given arguments per key."
msgstr "方法跟踪每个键给定参数的调用函数。"

#: doc/classes/Animation.xml:540
msgid ""
"Bezier tracks are used to interpolate a value using custom curves. They can "
"also be used to animate sub-properties of vectors and colors (e.g. alpha "
"value of a [Color])."
msgstr ""
"Bezier轨迹用于使用自定义曲线对数值进行插值。它们也可以用来对向量和颜色的子属"
"性进行动画处理(例如[颜色]的alpha值)。"

#: doc/classes/Animation.xml:543
msgid ""
"Audio tracks are used to play an audio stream with either type of "
"[AudioStreamPlayer]. The stream can be trimmed and previewed in the "
"animation."
msgstr ""
"音轨是用来播放音频流的任何一种类型的[AudioStreamPlayer]。该流可以在动画中进行"
"修剪和预览。"

#: doc/classes/Animation.xml:546
msgid "Animation tracks play animations in other [AnimationPlayer] nodes."
msgstr "动画曲目在其他 [动画播放器] 节点中播放动画。"

#: doc/classes/Animation.xml:549
msgid "No interpolation (nearest value)."
msgstr "无内插(最近值)。"

#: doc/classes/Animation.xml:552
msgid "Linear interpolation."
msgstr "线性插值."

#: doc/classes/Animation.xml:555
msgid "Cubic interpolation."
msgstr "三次插值."

#: doc/classes/Animation.xml:558
msgid "Update between keyframes."
msgstr "在关键帧之间更新。"

#: doc/classes/Animation.xml:561
msgid "Update at the keyframes and hold the value."
msgstr "在关键帧更新并保持数值。"

#: doc/classes/Animation.xml:564
msgid "Update at the keyframes."
msgstr "在关键帧更新。"

#: doc/classes/Animation.xml:567
msgid ""
"Same as linear interpolation, but also interpolates from the current value "
"(i.e. dynamically at runtime) if the first key isn't at 0 seconds."
msgstr ""
"与线性插值相同,但如果第一个键不是在0秒时,也会从当前值进行插值(即在运行时动"
"态插值)。"

#: doc/classes/AnimationNode.xml:4
msgid "Base resource for [AnimationTree] nodes."
msgstr "[AnimationTree]节点的基础资源。"

#: doc/classes/AnimationNode.xml:7
msgid ""
"Base resource for [AnimationTree] nodes. In general, it's not used directly, "
"but you can create custom ones with custom blending formulas.\n"
"Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], "
"otherwise [AnimationRootNode] should be used instead."
msgstr ""
"[AnimationTree]节点的基础资源。通常,它不是直接使用的,但是您可以使用自定义混"
"合公式创建自定义的。\n"
"在创建主要用于[AnimationNodeBlendTree]的节点时,继承该属性,否则应改用"
"[AnimationRootNode]。"

#: doc/classes/AnimationNode.xml:11 doc/classes/AnimationNodeAdd2.xml:10
#: doc/classes/AnimationNodeAdd3.xml:14
#: doc/classes/AnimationNodeAnimation.xml:10
#: doc/classes/AnimationNodeBlend2.xml:10
#: doc/classes/AnimationNodeBlend3.xml:14
#: doc/classes/AnimationNodeBlendSpace1D.xml:13
#: doc/classes/AnimationNodeBlendSpace2D.xml:12
#: doc/classes/AnimationNodeBlendTree.xml:10
#: doc/classes/AnimationNodeOneShot.xml:10
#: doc/classes/AnimationNodeOutput.xml:9
#: doc/classes/AnimationNodeStateMachine.xml:15
#: doc/classes/AnimationNodeStateMachinePlayback.xml:15
#: doc/classes/AnimationNodeStateMachineTransition.xml:8
#: doc/classes/AnimationNodeTimeScale.xml:10
#: doc/classes/AnimationNodeTimeSeek.xml:21
#: doc/classes/AnimationNodeTransition.xml:10 doc/classes/AnimationTree.xml:11
#: doc/classes/AnimationTreePlayer.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/animation/animation_tree."
"html"

#: doc/classes/AnimationNode.xml:18
msgid ""
"Adds an input to the node. This is only useful for nodes created for use in "
"an [AnimationNodeBlendTree]."
msgstr "为节点添加一个输入。这只对创建用于[AnimationNodeBlendTree]的节点有用。"

#: doc/classes/AnimationNode.xml:29
msgid ""
"Blend an animation by [code]blend[/code] amount (name must be valid in the "
"linked [AnimationPlayer]). A [code]time[/code] and [code]delta[/code] may be "
"passed, as well as whether [code]seek[/code] happened."
msgstr ""
"按[code]blend[/code]量混合一个动画(名称必须在链接的[AnimationPlayer]中有"
"效)。可以通过[code]时间[/code]和[code]delta[/code],以及是否发生[code]seek[/"
"code]。"

#: doc/classes/AnimationNode.xml:41
msgid ""
"Blend an input. This is only useful for nodes created for an "
"[AnimationNodeBlendTree]. The [code]time[/code] parameter is a relative "
"delta, unless [code]seek[/code] is [code]true[/code], in which case it is "
"absolute. A filter mode may be optionally passed (see [enum FilterAction] "
"for options)."
msgstr ""
"混合一个输入。这只对为 [AnimationNodeBlendTree] 创建的节点有用。[code]time[/"
"code]参数是一个相对三角,除非 [code]seek[/code] 是 [code]true[/code],在这种"
"情况下,它是绝对值。可以选择传递过滤模式(选项参见[enum FilterAction])。"

#: doc/classes/AnimationNode.xml:54
msgid ""
"Blend another animation node (in case this node contains children animation "
"nodes). This function is only useful if you inherit from [AnimationRootNode] "
"instead, else editors will not display your node for addition."
msgstr ""
"混合另一个动画节点(在这个节点包含子动画节点的情况下)。这个函数只有在你继承"
"[AnimationRootNode]而不是[AnimationRootNode]时才有用,否则编辑器将不会显示你"
"的节点进行添加。"

#: doc/classes/AnimationNode.xml:60
msgid "Gets the text caption for this node (used by some editors)."
msgstr "获取此节点的文本标题(由某些编辑器使用)。"

#: doc/classes/AnimationNode.xml:67
msgid ""
"Gets a child node by index (used by editors inheriting from "
"[AnimationRootNode])."
msgstr "按索引获取一个子节点(由继承[AnimationRootNode]的编辑器使用)。"

#: doc/classes/AnimationNode.xml:73
msgid ""
"Gets all children nodes in order as a [code]name: node[/code] dictionary. "
"Only useful when inheriting [AnimationRootNode]."
msgstr ""
"按照[code]name: node[/code]字典的顺序获取所有子节点。仅在继承"
"[AnimationRootNode]时有用。"

#: doc/classes/AnimationNode.xml:79
msgid ""
"Amount of inputs in this node, only useful for nodes that go into "
"[AnimationNodeBlendTree]."
msgstr "这个节点的输入数量,只对进入[AnimationNodeBlendTree]的节点有用。"

#: doc/classes/AnimationNode.xml:86
msgid "Gets the name of an input by index."
msgstr "通过索引获取输入的名称。"

#: doc/classes/AnimationNode.xml:93
msgid ""
"Gets the value of a parameter. Parameters are custom local memory used for "
"your nodes, given a resource can be reused in multiple trees."
msgstr ""
"获取一个参数的值。参数是你的节点使用的自定义本地存储,给定的资源可以在多个树"
"中重复使用。"

#: doc/classes/AnimationNode.xml:100
msgid ""
"Gets the default value of a parameter. Parameters are custom local memory "
"used for your nodes, given a resource can be reused in multiple trees."
msgstr ""
"获取一个参数的默认值。参数是用于节点的自定义本地内存,给定资源可以在多个树中"
"重用。"

#: doc/classes/AnimationNode.xml:106
msgid ""
"Gets the property information for parameter. Parameters are custom local "
"memory used for your nodes, given a resource can be reused in multiple "
"trees. Format is similar to [method Object.get_property_list]."
msgstr ""
"获取参数的属性信息。参数是你的节点使用的自定义本地存储,给定的资源可以在多个"
"树中重复使用。格式类似于[method Object.get_property_list]。"

#: doc/classes/AnimationNode.xml:112
msgid ""
"Returns [code]true[/code] whether you want the blend tree editor to display "
"filter editing on this node."
msgstr "返回[code]true[/code],是否希望混合树编辑器在此节点上显示过滤器编辑。"

#: doc/classes/AnimationNode.xml:119
msgid "Returns [code]true[/code] whether a given path is filtered."
msgstr "返回[code]true[/code]是否对指定路径进行过滤。"

#: doc/classes/AnimationNode.xml:127
msgid ""
"User-defined callback called when a custom node is processed. The "
"[code]time[/code] parameter is a relative delta, unless [code]seek[/code] is "
"[code]true[/code], in which case it is absolute.\n"
"Here, call the [method blend_input], [method blend_node] or [method "
"blend_animation] functions. You can also use [method get_parameter] and "
"[method set_parameter] to modify local memory.\n"
"This function should return the time left for the current animation to "
"finish (if unsure, pass the value from the main blend being called)."
msgstr ""
"当一个自定义节点被处理时,用户定义的回调被调用。[code]time[/code]参数是一个相"
"对的delta,除非[code]seek[/code]是[code]true[/code],在这种情况下,它是绝对"
"的。\n"
"在这里,调用[method blend_input]、[method blend_node]或[method "
"blend_animation]函数。你也可以使用[method get_parameter]和[method "
"set_parameter]来修改本地存储。\n"
"这个函数应该返回当前动画完成的剩余时间(如果不确定,请传递被调用的主混合"
"值)。"

#: doc/classes/AnimationNode.xml:136
msgid "Removes an input, call this only when inactive."
msgstr "删除输入,仅在处于非活动状态时调用此输入。"

#: doc/classes/AnimationNode.xml:144
msgid "Adds or removes a path for the filter."
msgstr "添加或删除筛选器的路径。"

#: doc/classes/AnimationNode.xml:152
msgid ""
"Sets a custom parameter. These are used as local storage, because resources "
"can be reused across the tree or scenes."
msgstr ""
"设置一个自定义参数。这些参数被用作本地存储,因为资源可以在树或场景中重复使"
"用。"

#: doc/classes/AnimationNode.xml:158
msgid "If [code]true[/code], filtering is enabled."
msgstr "如果[code]true[/code],则启用过滤功能。"

#: doc/classes/AnimationNode.xml:164
msgid "Called when the node was removed from the graph."
msgstr "当该节点从图中删除时调用。"

#: doc/classes/AnimationNode.xml:169
msgid ""
"Emitted by nodes that inherit from this class and that have an internal tree "
"when one of their nodes changes. The nodes that emit this signal are "
"[AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], "
"[AnimationNodeStateMachine], and [AnimationNodeBlendTree]."
msgstr ""
"由继承自该类且内部有树的节点发出,当其一个节点发生变化时。发出此信号的节点有"
"[AnimationNodeBlendSpace1D]、[AnimationNodeBlendSpace2D]、"
"[AnimationNodeStateMachine]和[AnimationNodeBlendTree]。"

#: doc/classes/AnimationNode.xml:175
msgid "Do not use filtering."
msgstr "不要使用过滤功能。"

#: doc/classes/AnimationNode.xml:178
msgid "Paths matching the filter will be allowed to pass."
msgstr "匹配过滤器的路径将被允许通过。"

#: doc/classes/AnimationNode.xml:181
msgid "Paths matching the filter will be discarded."
msgstr "与过滤器匹配的路径将被丢弃。"

#: doc/classes/AnimationNode.xml:184
msgid "Paths matching the filter will be blended (by the blend value)."
msgstr "与滤镜相匹配的路径将被混合(根据混合值)。"

#: doc/classes/AnimationNodeAdd2.xml:4
msgid "Blends two animations additively inside of an [AnimationNodeBlendTree]."
msgstr "在一个[AnimationNodeBlendTree]中加法地混合两个动画。"

#: doc/classes/AnimationNodeAdd2.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
"additively based on an amount value in the [code][0.0, 1.0][/code] range."
msgstr ""
"添加到 [AnimationNodeBlendTree] 的资源。根据[code][0.0,1.0][/code]范围内的量"
"值加法混合两个动画。"

#: doc/classes/AnimationNodeAdd2.xml:16 doc/classes/AnimationNodeAdd3.xml:21
#: doc/classes/AnimationNodeBlend2.xml:18
#: doc/classes/AnimationNodeBlend3.xml:20
msgid ""
"If [code]true[/code], sets the [code]optimization[/code] to [code]false[/"
"code] when calling [method AnimationNode.blend_input], forcing the blended "
"animations to update every frame."
msgstr ""
"如果[code]true[/code],在调用[method AnimationNode.blend_input]时,将"
"[code]optimization[/code] to[code]false[/code],强制混合后的动画每一帧更新。"

#: doc/classes/AnimationNodeAdd3.xml:4
msgid ""
"Blends two of three animations additively inside of an "
"[AnimationNodeBlendTree]."
msgstr "在[AnimationNodeBlendTree]内部将三个动画中的两个动画相加。"

#: doc/classes/AnimationNodeAdd3.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
"together additively out of three based on a value in the [code][-1.0, 1.0][/"
"code] range.\n"
"This node has three inputs:\n"
"- The base animation to add to\n"
"- A -add animation to blend with when the blend amount is in the [code]"
"[-1.0, 0.0][/code] range.\n"
"- A +add animation to blend with when the blend amount is in the [code][0.0, "
"1.0][/code] range"
msgstr ""
"添加到 [AnimationNodeBlendTree] 的资源。根据 [code][-1.0, 1.0][/code] 范围内"
"的值,将三个动画中的两个动画加法混合在一起。\n"
"这个节点有三个输入。\n"
"- 要添加到基础动画中的动画\n"
"- 当混合量在[code][-1.0,0.0][/code]范围内时,添加动画进行混合。\n"
"- 当混合量在[code][0.0,1.0][/code]范围内时,添加动画进行混合"

#: doc/classes/AnimationNodeAdd3.xml:15
#: doc/classes/AnimationNodeAnimation.xml:12
#: doc/classes/AnimationNodeBlend2.xml:12
#: doc/classes/AnimationNodeBlendSpace2D.xml:13
#: doc/classes/AnimationNodeOneShot.xml:11
#: doc/classes/AnimationNodeOutput.xml:11
#: doc/classes/AnimationNodeTransition.xml:12
#: doc/classes/AnimationPlayer.xml:14 doc/classes/AnimationTree.xml:12
#: doc/classes/AudioEffectReverb.xml:11 doc/classes/Camera.xml:10
#: doc/classes/CollisionShape.xml:13 doc/classes/CylinderShape.xml:10
#: doc/classes/Environment.xml:19 doc/classes/GIProbe.xml:14
#: doc/classes/GIProbeData.xml:8 doc/classes/KinematicBody.xml:16
#: doc/classes/Light.xml:11 doc/classes/Material.xml:11 doc/classes/Mesh.xml:13
#: doc/classes/MeshInstance.xml:13 doc/classes/Particles.xml:14
#: doc/classes/Quat.xml:13 doc/classes/Skeleton.xml:13
#: doc/classes/SpotLight.xml:12 doc/classes/StaticBody.xml:12
#: doc/classes/WorldEnvironment.xml:15
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/678"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/AnimationNodeAnimation.xml:4
msgid "Input animation to use in an [AnimationNodeBlendTree]."
msgstr "输入要在[AnimationNodeBlendTree]中使用的动画。"

#: doc/classes/AnimationNodeAnimation.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree]. Only features one output "
"set using the [member animation] property. Use it as an input for "
"[AnimationNode] that blend animations together."
msgstr ""
"添加到[AnimationNodeBlendTree]的资源。只具有一个使用[成员动画]属性的输出集。"
"将其作为[AnimationNode]的输入,将动画融合在一起。"

#: doc/classes/AnimationNodeAnimation.xml:11
#: doc/classes/AnimationNodeBlend2.xml:11
#: doc/classes/AnimationNodeOutput.xml:10
#: doc/classes/AnimationNodeTimeScale.xml:11
#: doc/classes/AnimationNodeTransition.xml:11 doc/classes/Area.xml:10
#: doc/classes/Basis.xml:17 doc/classes/BoxShape.xml:12
#: doc/classes/CollisionShape.xml:12 modules/gridmap/doc_classes/GridMap.xml:15
#: doc/classes/KinematicBody.xml:14 doc/classes/Mesh.xml:12
#: doc/classes/MeshInstance.xml:12 doc/classes/MeshLibrary.xml:11
#: doc/classes/ProjectSettings.xml:14 doc/classes/Transform.xml:15
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/125"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/AnimationNodeAnimation.xml:18
msgid ""
"Animation to use as an output. It is one of the animations provided by "
"[member AnimationTree.anim_player]."
msgstr ""
"作为输出使用的动画。它是[成员AnimationTree.anim_player]提供的动画之一。"

#: doc/classes/AnimationNodeBlend2.xml:4
msgid "Blends two animations linearly inside of an [AnimationNodeBlendTree]."
msgstr "在[AnimationNodeBlendTree]中线性地混合两个动画。"

#: doc/classes/AnimationNodeBlend2.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
"linearly based on an amount value in the [code][0.0, 1.0][/code] range."
msgstr ""
"添加到 [AnimationNodeBlendTree] 的资源。根据[code][0.0,1.0][/code]范围内的量"
"值线性地混合两个动画。"

#: doc/classes/AnimationNodeBlend3.xml:4
msgid ""
"Blends two of three animations linearly inside of an "
"[AnimationNodeBlendTree]."
msgstr "在一个[AnimationNodeBlendTree]中线性地混合三个动画中的两个。"

#: doc/classes/AnimationNodeBlend3.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
"together linearly out of three based on a value in the [code][-1.0, 1.0][/"
"code] range.\n"
"This node has three inputs:\n"
"- The base animation\n"
"- A -blend animation to blend with when the blend amount is in the [code]"
"[-1.0, 0.0][/code] range.\n"
"- A +blend animation to blend with when the blend amount is in the [code]"
"[0.0, 1.0][/code] range"
msgstr ""
"添加到 [AnimationNodeBlendTree] 的资源。根据[code][-1.0,1.0][/code]范围内的"
"值,将三个动画中的两个动画线性地混合在一起。\n"
"这个节点有三个输入。\n"
"- 基础动画\n"
"- 当混合量在[code][-1.0,0.0][/code]范围内时,使用-混合动画进行混合。\n"
"- 当混合量在[code][0.0,1.0][/code]范围内时,要使用+混合动画进行混合"

#: doc/classes/AnimationNodeBlendSpace1D.xml:4
msgid ""
"Blends linearly between two of any number of [AnimationNode] of any type "
"placed on a virtual axis."
msgstr ""
"在虚拟轴上放置的任意数量的[AnimationNode]的任意类型的两个[AnimationNode]之间"
"线性混合。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree].\n"
"This is a virtual axis on which you can add any type of [AnimationNode] "
"using [method add_blend_point].\n"
"Outputs the linear blend of the two [AnimationNode]s closest to the node's "
"current value.\n"
"You can set the extents of the axis using the [member min_space] and [member "
"max_space]."
msgstr ""
"要添加到[AnimationNodeBlendTree]的资源。\n"
"这是一个虚拟轴,您可以使用[method add_blend_point]在上面添加任何类型的"
"[AnimationNode]。\n"
"输出最接近节点当前值的两个[AnimationNode]的线性混合。\n"
"您可以使用[member min_space]和[member max_space]来设置轴的外延。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:22
msgid ""
"Adds a new point that represents a [code]node[/code] on the virtual axis at "
"a given position set by [code]pos[/code]. You can insert it at a specific "
"index using the [code]at_index[/code] argument. If you use the default value "
"for [code]at_index[/code], the point is inserted at the end of the blend "
"points array."
msgstr ""
"在[code]pos[/code]设定的给定位置添加一个新点,代表虚拟轴上的[code]node[/"
"code]。您可以使用 [code]at_index[/code] 参数在特定的索引处插入新点。如果您使"
"用 [code]at_index[/code] 的默认值,该点会被插入到混合点数组的最后。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:28
msgid "Returns the number of points on the blend axis."
msgstr "返回混合轴上的点的数量。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:35
msgid ""
"Returns the [AnimationNode] referenced by the point at index [code]point[/"
"code]."
msgstr "返回索引[code]point[/code]处的点所引用的[AnimationNode]。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:42
#: doc/classes/AnimationNodeBlendSpace2D.xml:52
msgid "Returns the position of the point at index [code]point[/code]."
msgstr "返回索引[code]point[/code]处的点的位置。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:49
msgid "Removes the point at index [code]point[/code] from the blend axis."
msgstr "将索引[code]point[/code]处的点从混合轴上删除。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:57
#: doc/classes/AnimationNodeBlendSpace2D.xml:88
msgid ""
"Changes the [AnimationNode] referenced by the point at index [code]point[/"
"code]."
msgstr "改变索引[code]point[/code]处的点所引用的[AnimationNode]。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:65
#: doc/classes/AnimationNodeBlendSpace2D.xml:96
msgid ""
"Updates the position of the point at index [code]point[/code] on the blend "
"axis."
msgstr "更新混合轴上索引[code]point[/code]处的点的位置。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:71
msgid ""
"The blend space's axis's upper limit for the points' position. See [method "
"add_blend_point]."
msgstr "混合空间的轴的点的位置上限。参见[method add_blend_point]。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:74
msgid ""
"The blend space's axis's lower limit for the points' position. See [method "
"add_blend_point]."
msgstr "混合空间的轴的点的位置下限。参见[method add_blend_point]。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:77
msgid "Position increment to snap to when moving a point on the axis."
msgstr "当在轴上移动一个点时,要捕捉到的位置增量。"

#: doc/classes/AnimationNodeBlendSpace1D.xml:80
msgid "Label of the virtual axis of the blend space."
msgstr "混合空间虚拟轴的标签。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:4
msgid ""
"Blends linearly between three [AnimationNode] of any type placed in a 2D "
"space."
msgstr "在二维空间中放置的三个任意类型的[AnimationNode]之间线性融合。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree].\n"
"This node allows you to blend linearly between three animations using a "
"[Vector2] weight.\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 create up the blend space by hand."
msgstr ""
"添加到[AnimationNodeBlendTree]的资源。\n"
"该节点允许您使用[Vector2]权重在三个动画之间进行线性混合。\n"
"您可以使用[method add_blend_point]向混合空间添加顶点,并通过将[member "
"auto_triangles]设置为[code]true[/code]来自动进行三角测量。否则,请使用 "
"[method add_triangle] 和 [method remove_triangle] 手工创建混合空间。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:22
msgid ""
"Adds a new point that represents a [code]node[/code] at the position set by "
"[code]pos[/code]. You can insert it at a specific index using the "
"[code]at_index[/code] argument. If you use the default value for "
"[code]at_index[/code], the point is inserted at the end of the blend points "
"array."
msgstr ""
"在 [code]pos[/code] 设定的位置添加一个代表 [code]node[/code] 的新点。您可以使"
"用 [code]at_index[/code] 参数将它插入到特定的索引中。如果您使用 "
"[code]at_index[/code] 的默认值,这个点会被插入到混合点数组的最后。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:32
msgid ""
"Creates a new triangle using three points [code]x[/code], [code]y[/code], "
"and [code]z[/code]. Triangles can overlap. You can insert the triangle at a "
"specific index using the [code]at_index[/code] argument. If you use the "
"default value for [code]at_index[/code], the point is inserted at the end of "
"the blend points array."
msgstr ""
"使用 [code]x[/code]、[code]y[/code]and [code]z[/code] 三个点创建一个新的三角"
"形。三角形可以重叠。您可以使用 [code]at_index[/code] 参数在特定的索引处插入三"
"角形。如果您使用 [code]at_index[/code] 的默认值,该点会被插入到混合点数组的最"
"后。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:38
msgid "Returns the number of points in the blend space."
msgstr "返回混合空间中的点的数量。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:45
msgid ""
"Returns the [AnimationRootNode] referenced by the point at index "
"[code]point[/code]."
msgstr "返回索引[code]point[/code]处的点所引用的[AnimationRootNode]。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:58
msgid "Returns the number of triangles in the blend space."
msgstr "返回混合空间中三角形的数量。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:66
msgid ""
"Returns the position of the point at index [code]point[/code] in the "
"triangle of index [code]triangle[/code]."
msgstr ""
"返回索引[code]point[/code]处的点在索引[code]triangle[/code]的三角形中的位置。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:73
msgid "Removes the point at index [code]point[/code] from the blend space."
msgstr "从混合空间中删除索引[code]point[/code]处的点。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:80
msgid ""
"Removes the triangle at index [code]triangle[/code] from the blend space."
msgstr "从混合空间中删除索引[code]triangle[/code]处的三角形。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:102
msgid ""
"If [code]true[/code], the blend space is triangulated automatically. The "
"mesh updates every time you add or remove points with [method "
"add_blend_point] and [method remove_blend_point]."
msgstr ""
"如果 [code]true[/code],混合空间会自动进行三角测量。每次使用 [method "
"add_blend_point] 和 [method remove_blend_point] 添加或移除点时,网格都会更"
"新。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:105
msgid ""
"Controls the interpolation between animations. See [enum BlendMode] "
"constants."
msgstr "控制动画之间的插值。参见 [enum BlendMode] 常量。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:108
msgid ""
"The blend space's X and Y axes' upper limit for the points' position. See "
"[method add_blend_point]."
msgstr "混合空间的X轴和Y轴的点的位置上限。参见[method add_blend_point]。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:111
msgid ""
"The blend space's X and Y axes' lower limit for the points' position. See "
"[method add_blend_point]."
msgstr "混合空间的X轴和Y轴的点的位置下限。参见[method add_blend_point]。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:114
msgid "Position increment to snap to when moving a point."
msgstr "移动点时要对齐的位置增量。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:117
msgid "Name of the blend space's X axis."
msgstr "混合空间X轴的名称。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:120
msgid "Name of the blend space's Y axis."
msgstr "混合空间Y轴的名称。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:126
msgid ""
"Emitted every time the blend space's triangles are created, removed, or when "
"one of their vertices changes position."
msgstr "每当创建、删除混合空间的三角形,或当其中一个顶点改变位置时发出。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:132
msgid "The interpolation between animations is linear."
msgstr "动画之间的插点是线性的。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:135
msgid ""
"The blend space plays the animation of the node the blending position is "
"closest to. Useful for frame-by-frame 2D animations."
msgstr "混合空间播放混合位置最接近的节点的动画。对逐帧的2D动画很有用。"

#: doc/classes/AnimationNodeBlendSpace2D.xml:138
msgid ""
"Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at "
"the last animation's playback position."
msgstr ""
"类似于[constant BLEND_MODE_DISCRETE],但在最后一个动画的播放位置开始新的动"
"画。"

#: doc/classes/AnimationNodeBlendTree.xml:4
msgid "[AnimationTree] node resource that contains many blend type nodes."
msgstr "[AnimationTree]节点资源,其中包含许多混合类型节点。"

#: doc/classes/AnimationNodeBlendTree.xml:7
msgid ""
"This node may contain a sub-tree of any other blend type nodes, such as mix, "
"blend2, blend3, one shot, etc. This is one of the most commonly used roots."
msgstr ""
"该节点可以包含任何其他混合类型节点的子树,例如mix,blend2,blend3,一个shot"
"等。这是最常用的根之一。"

#: doc/classes/AnimationNodeBlendTree.xml:19
msgid ""
"Adds an [AnimationNode] at the given [code]position[/code]. The [code]name[/"
"code] is used to identify the created sub-node later."
msgstr ""
"在给定的 [code]position[/code] 添加一个 [AnimationNode]。[code]name[/code]用"
"于以后识别创建的子节点。"

#: doc/classes/AnimationNodeBlendTree.xml:28
msgid ""
"Connects the output of an [AnimationNode] as input for another "
"[AnimationNode], at the input port specified by [code]input_index[/code]."
msgstr ""
"将一个[AnimationNode]的输出作为另一个[AnimationNode]的输入,连接在"
"[code]input_index[/code]指定的输入端口。"

#: doc/classes/AnimationNodeBlendTree.xml:36
msgid "Disconnects the node connected to the specified input."
msgstr "断开连接到指定输入端的节点。"

#: doc/classes/AnimationNodeBlendTree.xml:43
msgid "Returns the sub-node with the specified [code]name[/code]."
msgstr "返回带有指定[code]name[/code]的子节点。"

#: doc/classes/AnimationNodeBlendTree.xml:50
msgid ""
"Returns the position of the sub-node with the specified [code]name[/code]."
msgstr "返回指定[code]name[/code]的子节点的位置。"

#: doc/classes/AnimationNodeBlendTree.xml:57
msgid ""
"Returns [code]true[/code] if a sub-node with specified [code]name[/code] "
"exists."
msgstr "如果存在指定[code]name[/code]的子节点,返回[code]true[/code]。"

#: doc/classes/AnimationNodeBlendTree.xml:64
msgid "Removes a sub-node."
msgstr "删除一个子节点。"

#: doc/classes/AnimationNodeBlendTree.xml:72
msgid "Changes the name of a sub-node."
msgstr "更改子节点的名称。"

#: doc/classes/AnimationNodeBlendTree.xml:80
msgid "Modifies the position of a sub-node."
msgstr "修改子节点的位置。"

#: doc/classes/AnimationNodeBlendTree.xml:86
msgid "The global offset of all sub-nodes."
msgstr "所有子节点的全局偏移量。"

#: doc/classes/AnimationNodeBlendTree.xml:91
msgid "The connection was successful."
msgstr "连接成功。"

#: doc/classes/AnimationNodeBlendTree.xml:94
msgid "The input node is [code]null[/code]."
msgstr "输入节点为[code]null[/code]。"

#: doc/classes/AnimationNodeBlendTree.xml:97
msgid "The specified input port is out of range."
msgstr "指定的输入端口已出范围。"

#: doc/classes/AnimationNodeBlendTree.xml:100
msgid "The output node is [code]null[/code]."
msgstr "输出节点为[code]null[/code]。"

#: doc/classes/AnimationNodeBlendTree.xml:103
msgid "Input and output nodes are the same."
msgstr "输入和输出节点是一样的。"

#: doc/classes/AnimationNodeBlendTree.xml:106
msgid "The specified connection already exists."
msgstr "指定的连接已经存在。"

#: doc/classes/AnimationNodeOneShot.xml:4
msgid "Plays an animation once in [AnimationNodeBlendTree]."
msgstr "在[AnimationNodeBlendTree]中播放一次动画。"

#: doc/classes/AnimationNodeOneShot.xml:7
msgid ""
"A resource to add to an [AnimationNodeBlendTree]. This 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."
msgstr ""
"要添加到[AnimationNodeBlendTree]的资源。这个节点将执行一个子动画,并在完成后"
"返回。可以自定义淡入和淡出的混合时间,以及过滤器。"

#: doc/classes/AnimationNodeOneShot.xml:28
msgid ""
"If [code]true[/code], the sub-animation will restart automatically after "
"finishing."
msgstr "如果[code]true[/code],子动画完成后会自动重新开始。"

#: doc/classes/AnimationNodeOneShot.xml:31
msgid "The delay after which the automatic restart is triggered, in seconds."
msgstr "触发自动重启的延迟时间,以秒为单位。"

#: doc/classes/AnimationNodeOneShot.xml:34
msgid ""
"If [member autorestart] is [code]true[/code], a random additional delay (in "
"seconds) between 0 and this value will be added to [member "
"autorestart_delay]."
msgstr ""
"如果[member autorestart]为[code] true [/code],则介于0和此值之间的随机附加延"
"迟(以秒为单位)将添加到[member autorestart_delay]。"

#: doc/classes/AnimationNodeOutput.xml:4
msgid "Generic output node to be added to [AnimationNodeBlendTree]."
msgstr "要添加到[AnimationNodeBlendTree]的通用输出节点。"

#: doc/classes/AnimationNodeStateMachine.xml:4
msgid "State machine for control of animations."
msgstr "用于控制动画的状态机。"

#: doc/classes/AnimationNodeStateMachine.xml:7
msgid ""
"Contains multiple nodes representing animation states, connected in a graph. "
"Node 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"
"[codeblock]\n"
"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
"state_machine.travel(\"some_state\")\n"
"[/codeblock]"
msgstr ""
"包含代表动画状态的多个节点,以图的形式连接。节点转换可以配置为自动发生或通过"
"代码,使用最短路径算法。从[AnimationTree]节点中检索"
"[AnimationNodeStateMachinePlayback]对象,对其进行编程控制。\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
"state_machine.travel(\"some_state\")\n"
"[/codeblock]"

#: doc/classes/AnimationNodeStateMachine.xml:24
msgid ""
"Adds a new node to the graph. The [code]position[/code] is used for display "
"in the editor."
msgstr "向图中添加一个新节点。 [code]position[/code]用于在编辑器中显示。"

#: doc/classes/AnimationNodeStateMachine.xml:33
msgid "Adds a transition between the given nodes."
msgstr "在给定节点之间添加一个过渡。"

#: doc/classes/AnimationNodeStateMachine.xml:39
#: doc/classes/AnimationNodeStateMachine.xml:72
msgid "Returns the graph's end node."
msgstr "返回图的末端节点。"

#: doc/classes/AnimationNodeStateMachine.xml:45
msgid "Returns the draw offset of the graph. Used for display in the editor."
msgstr "返回图形的绘制偏移。用于编辑器中的显示。"

#: doc/classes/AnimationNodeStateMachine.xml:52
msgid "Returns the animation node with the given name."
msgstr "返回指定名称的动画节点。"

#: doc/classes/AnimationNodeStateMachine.xml:59
msgid "Returns the given animation node's name."
msgstr "返回指定动画节点的名称。"

#: doc/classes/AnimationNodeStateMachine.xml:66
msgid "Returns the given node's coordinates. Used for display in the editor."
msgstr "返回给定的节点的坐标。用于编辑器中的显示。"

#: doc/classes/AnimationNodeStateMachine.xml:79
msgid "Returns the given transition."
msgstr "返回给定的过渡。"

#: doc/classes/AnimationNodeStateMachine.xml:85
msgid "Returns the number of connections in the graph."
msgstr "返回图中的连接数。"

#: doc/classes/AnimationNodeStateMachine.xml:92
msgid "Returns the given transition's start node."
msgstr "返回给定过渡的开始节点。"

#: doc/classes/AnimationNodeStateMachine.xml:99
msgid "Returns the given transition's end node."
msgstr "返回给定过渡的端节点。"

#: doc/classes/AnimationNodeStateMachine.xml:106
msgid "Returns [code]true[/code] if the graph contains the given node."
msgstr "如果图中包含给定的节点,返回[code]true[/code]。"

#: doc/classes/AnimationNodeStateMachine.xml:114
msgid ""
"Returns [code]true[/code] if there is a transition between the given nodes."
msgstr "如果在给定节点之间存在过渡,返回[code]true[/code]。"

#: doc/classes/AnimationNodeStateMachine.xml:121
msgid "Deletes the given node from the graph."
msgstr "从图中删除指定的节点。"

#: doc/classes/AnimationNodeStateMachine.xml:129
msgid "Deletes the transition between the two specified nodes."
msgstr "删除两个指定节点之间的过渡。"

#: doc/classes/AnimationNodeStateMachine.xml:136
msgid "Deletes the given transition by index."
msgstr "按索引删除给定的过渡。"

#: doc/classes/AnimationNodeStateMachine.xml:144
msgid "Renames the given node."
msgstr "重命名给定的节点。"

#: doc/classes/AnimationNodeStateMachine.xml:152
msgid "Replaces the node and keeps its transitions unchanged."
msgstr ""

#: doc/classes/AnimationNodeStateMachine.xml:159
msgid "Sets the given node as the graph end point."
msgstr "将给定的节点设置为图形的端点。"

#: doc/classes/AnimationNodeStateMachine.xml:166
msgid "Sets the draw offset of the graph. Used for display in the editor."
msgstr "设置图形的绘制偏移。用于编辑器中的显示。"

#: doc/classes/AnimationNodeStateMachine.xml:174
msgid "Sets the node's coordinates. Used for display in the editor."
msgstr "设置节点的坐标。用于编辑器中的显示。"

#: doc/classes/AnimationNodeStateMachine.xml:181
msgid "Sets the given node as the graph start point."
msgstr "将给定的节点设置为图形的起始点。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:4
msgid "Playback control for [AnimationNodeStateMachine]."
msgstr "[AnimationNodeStateMachine]的播放控件。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:7
msgid ""
"Allows control of [AnimationTree] state machines created with "
"[AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree."
"get(\"parameters/playback\")[/code].\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
"state_machine.travel(\"some_state\")\n"
"[/codeblock]"
msgstr ""
"允许控制用[AnimationNodeStateMachine]创建的[AnimationTree]状态机。用"
"[code]$AnimationTree.get(\"parameters/playback\")[/code]检索。\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
"state_machine.travel(\"some_state\")\n"
"[/codeblock]"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:26
msgid "Returns the currently playing animation state."
msgstr "返回当前播放的动画状态。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:32
#, fuzzy
msgid "Returns the playback position within the current animation state."
msgstr "返回接触点的局部坐标系下的位置。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:38
msgid ""
"Returns the current travel path as computed internally by the A* algorithm."
msgstr "返回A*算法内部计算的当前行进路径。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:44
msgid "Returns [code]true[/code] if an animation is playing."
msgstr "如果正在播放动画,返回[code]true[/code]。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:51
msgid "Starts playing the given animation."
msgstr "开始播放指定的动画。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:57
msgid "Stops the currently playing animation."
msgstr "停止当前播放的动画。"

#: doc/classes/AnimationNodeStateMachinePlayback.xml:64
msgid ""
"Transitions from the current state to another one, following the shortest "
"path."
msgstr "按照最短路径从当前状态过渡到另一个状态。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:14
#, fuzzy
msgid ""
"Turn on auto advance when this condition is set. The provided name will "
"become a boolean parameter on the [AnimationTree] that can be controlled "
"from code (see [url=https://docs.godotengine.org/en/3.4/tutorials/animation/"
"animation_tree.html#controlling-from-code][/url]). For example, if [member "
"AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member "
"advance_condition] is set to [code]\"idle\"[/code]:\n"
"[codeblock]\n"
"$animation_tree[\"parameters/conditions/idle\"] = is_on_floor and "
"(linear_velocity.x == 0)\n"
"[/codeblock]"
msgstr ""
"当设置此条件时,开启自动前进。提供的名称将成为[AnimationTree]上的一个布尔参"
"数,可以从代码中进行控制(见[url=https://docs.godotengine.org/zh_CN/latest/"
"tutorials/animation/animation_tree.html#controlling-from-code][/url])。例"
"如,如果[member AnimationTree.tree_root]是一个[AnimationNodeStateMachine],并"
"且[member advance_condition]设置为[code]\"idle\"[/code]:\n"
"[codeblock]\n"
"$animation_tree[\"parameters/conditions/idle\"] = is_on_floor and "
"(linear_velocity.x == 0)\n"
"[/codeblock]"

#: doc/classes/AnimationNodeStateMachineTransition.xml:20
msgid ""
"Turn on the transition automatically when this state is reached. This works "
"best with [constant SWITCH_MODE_AT_END]."
msgstr ""
"当达到该状态时,自动开启过渡。这与[constant SWITCH_MODE_AT_END]配合使用效果最"
"好。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:23
msgid ""
"Don't use this transition during [method AnimationNodeStateMachinePlayback."
"travel] or [member auto_advance]."
msgstr ""
"不要在[method AnimationNodeStateMachinePlayback.travel]或[member "
"auto_advance]期间使用这个过渡。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:26
msgid ""
"Lower priority transitions are preferred when travelling through the tree "
"via [method AnimationNodeStateMachinePlayback.travel] or [member "
"auto_advance]."
msgstr ""
"当通过[method AnimationNodeStateMachinePlayback.travel]或[member "
"auto_advance]在树中旅行时,优先级较低的转场。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:29
msgid "The transition type."
msgstr "过渡类型."

#: doc/classes/AnimationNodeStateMachineTransition.xml:32
msgid "The time to cross-fade between this state and the next."
msgstr "这个状态和下一个状态之间的交叉渐变时间。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:38
msgid "Emitted when [member advance_condition] is changed."
msgstr "变更[member advance_condition]时发出。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:44
msgid ""
"Switch to the next state immediately. The current state will end and blend "
"into the beginning of the new one."
msgstr "立即切换到下一个状态。当前状态将结束,并融合到新状态的开始。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:47
msgid ""
"Switch to the next state immediately, but will seek the new state to the "
"playback position of the old state."
msgstr "立即切换到下一个状态,但会寻找新的状态到旧状态的播放位置。"

#: doc/classes/AnimationNodeStateMachineTransition.xml:50
msgid ""
"Wait for the current state playback to end, then switch to the beginning of "
"the next state animation."
msgstr "等待当前状态播放结束,然后切换到下一个状态动画的开头。"

#: doc/classes/AnimationNodeTimeScale.xml:4
msgid "A time-scaling animation node to be used with [AnimationTree]."
msgstr "与[AnimationTree]一起使用的时间缩放动画节点。"

#: doc/classes/AnimationNodeTimeScale.xml:7
msgid ""
"Allows scaling the speed of the animation (or reversing it) in any children "
"nodes. Setting it to 0 will pause the animation."
msgstr "允许缩放任何子节点中动画的速度(或反转)。将其设置为0将暂停动画。"

#: doc/classes/AnimationNodeTimeSeek.xml:4
msgid "A time-seeking animation node to be used with [AnimationTree]."
msgstr "与[AnimationTree]配合使用的寻时动画节点。"

#: doc/classes/AnimationNodeTimeSeek.xml:7
msgid ""
"This node can be used to cause a seek command to happen to any sub-children "
"of the animation graph. Use this node type to play an [Animation] from the "
"start or a certain playback position inside the [AnimationNodeBlendTree]. "
"After setting the time and changing the animation playback, the seek node "
"automatically goes into sleep mode on the next process frame by setting its "
"[code]seek_position[/code] value to [code]-1.0[/code].\n"
"[codeblock]\n"
"# Play child animation from the start.\n"
"animation_tree.set(\"parameters/Seek/seek_position\", 0.0)\n"
"# Alternative syntax (same result as above).\n"
"animation_tree[\"parameters/Seek/seek_position\"] = 0.0\n"
"\n"
"# Play child animation from 12 second timestamp.\n"
"animation_tree.set(\"parameters/Seek/seek_position\", 12.0)\n"
"# Alternative syntax (same result as above).\n"
"animation_tree[\"parameters/Seek/seek_position\"] = 12.0\n"
"[/codeblock]"
msgstr ""

#: doc/classes/AnimationNodeTransition.xml:4
msgid "A generic animation transition node for [AnimationTree]."
msgstr "[AnimationTree]的通用动画过渡节点。"

#: doc/classes/AnimationNodeTransition.xml:7
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."
msgstr ""
"简单的状态机,适用于不需要更高级的[AnimationNodeStateMachine]的情况。可以将动"
"画连接到输入,并指定过渡时间。"

#: doc/classes/AnimationNodeTransition.xml:44
msgid "The number of available input ports for this node."
msgstr "此节点的可用输入端口数。"

#: doc/classes/AnimationNodeTransition.xml:47
msgid ""
"Cross-fading time (in seconds) between each animation connected to the "
"inputs."
msgstr "连接到输入的每个动画之间的交叉渐变时间(秒)。"

#: doc/classes/AnimationPlayer.xml:4
msgid "Container and player of [Animation] resources."
msgstr "[Animation]资源的容器和播放器。"

#: doc/classes/AnimationPlayer.xml:7
msgid ""
"An animation player is used for general-purpose playback of [Animation] "
"resources. It contains a dictionary of animations (referenced by name) and "
"custom blend times between their transitions. Additionally, animations can "
"be played and blended in different channels.\n"
"[AnimationPlayer] is more suited than [Tween] for animations where you know "
"the final values in advance. For example, fading a screen in and out is more "
"easily done with an [AnimationPlayer] node thanks to the animation tools "
"provided by the editor. That particular example can also be implemented with "
"a [Tween] node, but it requires doing everything by code.\n"
"Updating the target properties of animations occurs at process time."
msgstr ""
"动画播放器用于[动画]资源的通用播放。它包含一个动画字典(以名称为参考)和自定"
"义动画转换之间的混合时间。此外,动画可以在不同的通道中播放和混合。\n"
"AnimationPlayer]比[Tween]更适合用于事先知道最终值的动画。例如,由于编辑器提供"
"的动画工具,用[AnimationPlayer]节点更容易完成屏幕的淡入淡出。这个特殊的例子也"
"可以用[Tween]节点来实现,但这需要通过代码来完成一切。\n"
"更新动画的目标属性是在流程时间发生的。"

#: doc/classes/AnimationPlayer.xml:22
msgid ""
"Adds [code]animation[/code] to the player accessible with the key "
"[code]name[/code]."
msgstr "给播放器添加[code]animation[/code],用按键[code]key[/code]即可进入。"

#: doc/classes/AnimationPlayer.xml:29
msgid ""
"Shifts position in the animation timeline and immediately updates the "
"animation. [code]delta[/code] is the time in seconds to shift. Events "
"between the current frame and [code]delta[/code] are handled."
msgstr ""
"移动动画时间轴上的位置并立即更新动画。[code]delta[/code]是要移动的时间,单位"
"是秒。处理当前帧和 [code]delta[/code] 之间的事件。"

#: doc/classes/AnimationPlayer.xml:36
msgid "Returns the name of the next animation in the queue."
msgstr "返回队列中下一个动画的名称。"

#: doc/classes/AnimationPlayer.xml:44
msgid ""
"Triggers the [code]anim_to[/code] animation when the [code]anim_from[/code] "
"animation completes."
msgstr "当[code]anim_from[/code]动画完成后,触发[code]anim_to[/code]动画。"

#: doc/classes/AnimationPlayer.xml:50
msgid ""
"[AnimationPlayer] caches animated nodes. It may not notice if a node "
"disappears; [method clear_caches] forces it to update the cache again."
msgstr ""
"[AnimationPlayer] 缓存动画节点。如果一个节点消失,它可能不会注意到;[method "
"clear_caches]强制它再次更新缓存。"

#: doc/classes/AnimationPlayer.xml:56
msgid "Clears all queued, unplayed animations."
msgstr "清除所有已排队、未播放的动画。"

#: doc/classes/AnimationPlayer.xml:63
msgid ""
"Returns the name of [code]animation[/code] or an empty string if not found."
msgstr "返回[code]animation[/code]的名称,如果没有找到,则返回一个空字符串。"

#: doc/classes/AnimationPlayer.xml:70
msgid ""
"Returns the [Animation] with key [code]name[/code] or [code]null[/code] if "
"not found."
msgstr ""
"如果没有找到,返回带有键[code]key[/code]or[code]null[/code]的[Animation]。"

#: doc/classes/AnimationPlayer.xml:76
msgid "Returns the list of stored animation names."
msgstr "返回存储的动画名称列表。"

#: doc/classes/AnimationPlayer.xml:84
msgid ""
"Gets the blend time (in seconds) between two animations, referenced by their "
"names."
msgstr "获取两个动画之间的混合时间(以秒为单位),由它们的名称引用。"

#: doc/classes/AnimationPlayer.xml:90
msgid ""
"Gets the actual playing speed of current animation or 0 if not playing. This "
"speed is the [member playback_speed] property multiplied by "
"[code]custom_speed[/code] argument specified when calling the [method play] "
"method."
msgstr ""
"获取当前动画的实际播放速度,如果没有播放则为0。这个速度是调用[method play]方"
"法时指定的[member playback_speed]属性乘以[code]custom_speed[/code]参数。"

#: doc/classes/AnimationPlayer.xml:96
msgid ""
"Returns a list of the animation names that are currently queued to play."
msgstr "返回当前排队播放的动画名称列表。"

#: doc/classes/AnimationPlayer.xml:103
msgid ""
"Returns [code]true[/code] if the [AnimationPlayer] stores an [Animation] "
"with key [code]name[/code]."
msgstr ""
"如果[AnimationPlayer]存储了带有[code]name[/code]with key[Animation],返回"
"[code]true[/code]。"

#: doc/classes/AnimationPlayer.xml:109
msgid "Returns [code]true[/code] if playing an animation."
msgstr "如果播放动画,返回[code]true[/code]。"

#: doc/classes/AnimationPlayer.xml:119
msgid ""
"Plays the animation with key [code]name[/code]. Custom blend times and speed "
"can be set. If [code]custom_speed[/code] is negative and [code]from_end[/"
"code] 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 [code]name[/code], or with no [code]name[/code] parameter, the "
"assigned animation will resume playing if it was paused, or restart if it "
"was stopped (see [method stop] for both pause and stop). If the animation "
"was already playing, it will keep playing.\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 ""
"用键[code]with key[/code]播放动画。可以设置自定义混合时间和速度。如果[code] "
"custom_speed [/code]为负,[code] from_end [/code]is[code]true[/code],则动画"
"将向后播放(相当于调用[method play_backwards])。\n"
"[AnimationPlayer]使用[member Assigned_animation]跟踪其当前或最后播放的动画。"
"如果使用相同的动画[code] name [/code]或没有[code] name [/code]参数调用此方"
"法,则分配的动画将在暂停时继续播放,或者在停止时重新启动(请参见[方法]停止],"
"同时暂停和停止。如果动画已经在播放,它将继续播放。\n"
"[b]注意:[/b]下次处理[AnimationPlayer]时,动画将被更新。如果在调用的同时更新"
"了其他变量,则它们可能更新得太早。要立即执行更新,请调用[code] advance(0)[/"
"code]。"

#: doc/classes/AnimationPlayer.xml:129
msgid ""
"Plays the animation with key [code]name[/code] in reverse.\n"
"This method is a shorthand for [method play] with [code]custom_speed = -1.0[/"
"code] and [code]from_end = true[/code], so see its description for more "
"information."
msgstr ""
"反向播放按键[code]name[/code]的动画。\n"
"这个方法是 [method play] 的简写,其中 [code]custom_speed = -1.0[/code] and "
"[code]from_end = true[/code],所以更多信息请参见其描述。"

#: doc/classes/AnimationPlayer.xml:137
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 will never play unless the looped animation is stopped somehow."
msgstr ""
"当当前动画播放完毕后,排队等待播放。\n"
"[b]注意:[/b]如果当前正在播放循环动画,除非以某种方式停止循环动画,否则排队的"
"动画将永远不会播放。"

#: doc/classes/AnimationPlayer.xml:145
msgid "Removes the animation with key [code]name[/code]."
msgstr "移除按键[code]name[/code]的动画。"

#: doc/classes/AnimationPlayer.xml:153
msgid ""
"Renames an existing animation with key [code]name[/code] to [code]newname[/"
"code]."
msgstr "将键值为[code]name[/code]的现有动画重命名为[code]newname[/code]。"

#: doc/classes/AnimationPlayer.xml:161
msgid ""
"Seeks the animation to the [code]seconds[/code] point in time (in seconds). "
"If [code]update[/code] is [code]true[/code], the animation updates too, "
"otherwise it updates at process time. Events between the current frame and "
"[code]seconds[/code] are skipped."
msgstr ""
"查看动画到[code]seconds[/code]的时间点(以秒为单位)。如果[code]update[/"
"code]is[code]true[/code],动画也会更新,否则会在处理时间更新。当前帧和"
"[code]seconds[/code]之间的事件被跳过。"

#: doc/classes/AnimationPlayer.xml:170
msgid ""
"Specifies a blend time (in seconds) between two animations, referenced by "
"their names."
msgstr "指定两个动画之间的混合时间(以秒为单位),以它们的名称为参照。"

#: doc/classes/AnimationPlayer.xml:177
msgid ""
"Stops or pauses the currently playing animation. If [code]reset[/code] is "
"[code]true[/code], the animation position is reset to [code]0[/code] and the "
"playback speed is reset to [code]1.0[/code].\n"
"If [code]reset[/code] is [code]false[/code], the [member "
"current_animation_position] will be kept and calling [method play] or "
"[method play_backwards] without arguments or with the same animation name as "
"[member assigned_animation] will resume the animation."
msgstr ""
"停止或暂停当前播放的动画。如果 [code] reset [/code] is [code] true[/code],则"
"动画位置重置为 [code]0[/code],播放速度重置为 [code]1.0[/code]。\n"
"如果 [code] reset [/code] is [code] false [/code], [member "
"current_animation_position] 将被保留, 并调用 [method play] 或 [method "
"play_backwards] 没有参数或与 [method assigned_animation] 相同的动画名称将恢复"
"动画。"

#: doc/classes/AnimationPlayer.xml:184
msgid ""
"If playing, the current animation; otherwise, the animation last played. "
"When set, would change the animation, but would not play it unless currently "
"playing. See also [member current_animation]."
msgstr ""
"如果正在播放,则为当前的动画;否则为上次播放的动画。当设置时,将改变动画,但"
"不会播放它,除非当前正在播放。参见[method current_animation]。"

#: doc/classes/AnimationPlayer.xml:187
msgid "The name of the animation to play when the scene loads."
msgstr "场景加载时要播放的动画名称。"

#: doc/classes/AnimationPlayer.xml:190
msgid ""
"The name of the currently playing animation. If no animation is playing, the "
"property's value is an empty string. Changing this value does not restart "
"the animation. See [method play] for more information on playing "
"animations.\n"
"[b]Note:[/b] While this property appears in the inspector, it's not meant to "
"be edited, and it's not saved in the scene. This property is mainly used to "
"get the currently playing animation, and internally for animation playback "
"tracks. For more information, see [Animation]."
msgstr ""

#: doc/classes/AnimationPlayer.xml:194
msgid "The length (in seconds) of the currently being played animation."
msgstr "当前正在播放的动画的长度(秒)。"

#: doc/classes/AnimationPlayer.xml:197
msgid "The position (in seconds) of the currently playing animation."
msgstr "当前播放的动画的位置(以秒为单位)。"

#: doc/classes/AnimationPlayer.xml:200
msgid "The call mode to use for Call Method tracks."
msgstr "用于“呼叫方法”轨道的呼叫模式。"

#: doc/classes/AnimationPlayer.xml:203
msgid ""
"If [code]true[/code], updates animations in response to process-related "
"notifications."
msgstr "如果[code]true[/code],根据流程相关通知更新动画。"

#: doc/classes/AnimationPlayer.xml:206
msgid ""
"The default time in which to blend animations. Ranges from 0 to 4096 with "
"0.01 precision."
msgstr "混合动画的默认时间。范围从 0 到 4096,精度为 0.01。"

#: doc/classes/AnimationPlayer.xml:209
msgid "The process notification in which to update animations."
msgstr "更新动画的过程通知。"

#: doc/classes/AnimationPlayer.xml:212
msgid ""
"The speed scaling ratio. For instance, if this value is 1, then the "
"animation plays at normal speed. If it's 0.5, then it plays at half speed. "
"If it's 2, then it plays at double speed."
msgstr ""
"速度缩放比。例如,如果这个值是1,那么动画以正常速度播放。如果是0.5,则以半速"
"播放。如果是2,则以双倍速度播放。"

#: doc/classes/AnimationPlayer.xml:215
msgid ""
"This is used by the editor. If set to [code]true[/code], the scene will be "
"saved with the effects of the reset animation applied (as if it had been "
"seeked to time 0), then reverted after saving.\n"
"In other words, the saved scene file will contain the \"default pose\", as "
"defined by the reset animation, if any, with the editor keeping the values "
"that the nodes had before saving."
msgstr ""

#: doc/classes/AnimationPlayer.xml:219
msgid "The node from which node path references will travel."
msgstr "节点路径引用将从其运行的节点。"

#: doc/classes/AnimationPlayer.xml:227
msgid ""
"Emitted when a queued animation plays after the previous animation was "
"finished. See [method queue].\n"
"[b]Note:[/b] The signal is not emitted when the animation is changed via "
"[method play] or from [AnimationTree]."
msgstr ""

#: doc/classes/AnimationPlayer.xml:234
msgid "Notifies when an animation finished playing."
msgstr "当动画播放结束时通知。"

#: doc/classes/AnimationPlayer.xml:240
msgid "Notifies when an animation starts playing."
msgstr "当动画开始播放时通知。"

#: doc/classes/AnimationPlayer.xml:245
msgid ""
"Notifies when the caches have been cleared, either automatically, or "
"manually via [method clear_caches]."
msgstr "当缓存被清除时,通过[method clear_caches]自动或手动通知。"

#: doc/classes/AnimationPlayer.xml:251 doc/classes/AnimationTreePlayer.xml:505
msgid ""
"Process animation during the physics process. This is especially useful when "
"animating physics bodies."
msgstr "在物理过程中处理动画。在为物理物体设置动画时,这特别有用。"

#: doc/classes/AnimationPlayer.xml:254 doc/classes/AnimationTreePlayer.xml:508
msgid "Process animation during the idle process."
msgstr "在空闲过程中处理动画。"

#: doc/classes/AnimationPlayer.xml:257
msgid ""
"Do not process animation. Use [method advance] to process the animation "
"manually."
msgstr "不处理动画。使用[method advance]手动处理动画。"

#: doc/classes/AnimationPlayer.xml:260
msgid ""
"Batch method calls during the animation process, then do the calls after "
"events are processed. This avoids bugs involving deleting nodes or modifying "
"the AnimationPlayer while playing."
msgstr ""
"在动画过程中批量调用方法,然后在处理完事件后再进行调用。这样就避免了在播放过"
"程中涉及删除节点或修改AnimationPlayer的错误。"

#: doc/classes/AnimationPlayer.xml:263
msgid "Make method calls immediately when reached in the animation."
msgstr "在动画中达到时立即进行方法调用。"

#: doc/classes/AnimationTree.xml:4
msgid ""
"A node to be used for advanced animation transitions in an [AnimationPlayer]."
msgstr "用于[AnimationPlayer]中高级动画转换的节点。"

#: doc/classes/AnimationTree.xml:7
#, fuzzy
msgid ""
"A node to be 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]链接时,对应的[AnimationPlayer]的一些属性和方法将"
"无法按照预期的方式运行。播放和转场应仅使用[AnimationTree]及其组成的"
"[AnimationNode]来处理。AnimationPlayer]节点应仅用于添加、删除和编辑动画。"

#: doc/classes/AnimationTree.xml:19
msgid "Manually advance the animations by the specified time (in seconds)."
msgstr "手动将动画前进指定的时间(单位为秒)。"

#: doc/classes/AnimationTree.xml:25
#, fuzzy
msgid ""
"Retrieve the motion of the [member root_motion_track] as a [Transform] that "
"can be used elsewhere. If [member root_motion_track] is not a path to a "
"track of type [constant Animation.TYPE_TRANSFORM], returns an identity "
"transformation. See also [member root_motion_track] and [RootMotionView]."
msgstr ""
"获取 [member root_motion_track] 的运动,类型为 [Transform],可在其它地方使"
"用。如果 [member root_motion_track] 不是 [constant Animation.TYPE_TRANSFORM] "
"类型轨道的路径,则返回恒等变换。"

#: doc/classes/AnimationTree.xml:38
msgid "If [code]true[/code], the [AnimationTree] will be processing."
msgstr "如果 [code]true[/code] 时,[AnimationTree] 将执行逻辑处理。"

#: doc/classes/AnimationTree.xml:41
msgid "The path to the [AnimationPlayer] used for animating."
msgstr "用于动画的 [AnimationPlayer] 的路径。"

#: doc/classes/AnimationTree.xml:44
msgid ""
"The process mode of this [AnimationTree]. See [enum AnimationProcessMode] "
"for available modes."
msgstr ""
"该 [AnimationTree] 的处理模式。可用的模式见 [enum AnimationProcessMode]。"

#: doc/classes/AnimationTree.xml:47
#, fuzzy
msgid ""
"The path to the Animation track used for root motion. Paths must be valid "
"scene-tree paths to a node, and must be specified starting from the parent "
"node of the node that will reproduce the animation. To specify a track that "
"controls properties or bones, append its name after the path, separated by "
"[code]\":\"[/code]. For example, [code]\"character/skeleton:ankle\"[/code] "
"or [code]\"character/mesh:transform/local\"[/code].\n"
"If the track has type [constant Animation.TYPE_TRANSFORM], the "
"transformation will be cancelled visually, and the animation will appear to "
"stay in place. See also [method get_root_motion_transform] and "
"[RootMotionView]."
msgstr ""
"根运动所使用的动画轨道的路径。路径必须是有效的场景树节点路径,并且必须从想要"
"再现动画的节点的父节点开始。如果要指定控制属性或者骨骼的轨道,可以将对应的名"
"称写在路径后面,以 [code]\":\"[/code] 分隔。例如 [code]\"character/skeleton:"
"ankle\"[/code] 和 [code]\"character/mesh:transform/local\"[/code]。\n"
"如果轨道是 [constant Animation.TYPE_TRANSFORM] 类型的,对应的变换将被取消,动"
"画看上去就是在原地进行。"

#: doc/classes/AnimationTree.xml:51
msgid "The root animation node of this [AnimationTree]. See [AnimationNode]."
msgstr "该 [AnimationTree] 的根动画节点。见 [AnimationNode]。"

#: doc/classes/AnimationTree.xml:56
msgid ""
"The animations will progress during the physics frame (i.e. [method Node."
"_physics_process])."
msgstr "在物理帧期间进行动画(即 [method Node._physics_process])。"

#: doc/classes/AnimationTree.xml:59
msgid ""
"The animations will progress during the idle frame (i.e. [method Node."
"_process])."
msgstr "在空闲帧期间进行动画(即 [method Node. _process])。"

#: doc/classes/AnimationTree.xml:62
msgid "The animations will only progress manually (see [method advance])."
msgstr "只能手动进行动画(见 [method advance])。"

#: doc/classes/AnimationTreePlayer.xml:4
msgid ""
"[i]Deprecated.[/i] Animation player that uses a node graph for blending "
"animations. Superseded by [AnimationTree]."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:7
msgid ""
"[i]Deprecated.[/i] A node graph tool for blending multiple animations bound "
"to an [AnimationPlayer]. Especially useful for animating characters or other "
"skeleton-based rigs. It can combine several animations to form a desired "
"pose.\n"
"It takes [Animation]s from an [AnimationPlayer] node and mixes them "
"depending on the graph.\n"
"See [AnimationTree] for a more full-featured replacement of this node."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:20
#, fuzzy
msgid "Adds a [code]type[/code] node to the graph with name [code]id[/code]."
msgstr "为索引 [code]tab_idx[/code] 处的选项卡设置 [code]title[/code]。"

#: doc/classes/AnimationTreePlayer.xml:27
#, fuzzy
msgid ""
"Shifts position in the animation timeline. [code]delta[/code] is the time in "
"seconds to shift. Events between the current frame and [code]delta[/code] "
"are handled."
msgstr ""
"移动动画时间轴上的位置并立即更新动画。[code]delta[/code]是要移动的时间,单位"
"是秒。处理当前帧和 [code]delta[/code] 之间的事件。"

#: doc/classes/AnimationTreePlayer.xml:34
#, fuzzy
msgid ""
"Returns the [AnimationPlayer]'s [Animation] bound to the "
"[AnimationTreePlayer]'s animation node with name [code]id[/code]."
msgstr ""
"如果[AnimationPlayer]存储了带有[code]name[/code]with key[Animation],返回"
"[code]true[/code]。"

#: doc/classes/AnimationTreePlayer.xml:41
#, fuzzy
msgid ""
"Returns the name of the [member master_player]'s [Animation] bound to this "
"animation node."
msgstr "返回此索引处的混合形状的名称。"

#: doc/classes/AnimationTreePlayer.xml:48
#, fuzzy
msgid ""
"Returns the absolute playback timestamp of the animation node with name "
"[code]id[/code]."
msgstr "返回[code]idx[/code]处的节点名称。"

#: doc/classes/AnimationTreePlayer.xml:56
msgid ""
"Binds a new [Animation] from the [member master_player] to the "
"[AnimationTreePlayer]'s animation node with name [code]id[/code]."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:65
msgid ""
"If [code]enable[/code] is [code]true[/code], the animation node with ID "
"[code]id[/code] turns off the track modifying the property at [code]path[/"
"code]. The modified node's children continue to animate."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:73
msgid ""
"Binds the [Animation] named [code]source[/code] from [member master_player] "
"to the animation node [code]id[/code]. Recalculates caches."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:82
#, fuzzy
msgid ""
"Returns whether node [code]id[/code] and [code]dst_id[/code] are connected "
"at the specified slot."
msgstr ""
"返回索引[code]idx[/code]处项目的id。[code]id[/code]可以手动分配,而索引不能。"

#: doc/classes/AnimationTreePlayer.xml:89
#, fuzzy
msgid "Returns the blend amount of a Blend2 node given its name."
msgstr "返回指定轨道中的键数。"

#: doc/classes/AnimationTreePlayer.xml:97
msgid ""
"Sets the blend amount of a Blend2 node given its name and value.\n"
"A Blend2 node blends two animations (A and B) with the amount between 0 and "
"1.\n"
"At 0, output is input A. Towards 1, the influence of A gets lessened, the "
"influence of B gets raised. At 1, output is input B."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:108
msgid ""
"If [code]enable[/code] is [code]true[/code], the Blend2 node with name "
"[code]id[/code] turns off the track modifying the property at [code]path[/"
"code]. The modified node's children continue to animate."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:115
#, fuzzy
msgid "Returns the blend amount of a Blend3 node given its name."
msgstr "返回指定轨道中的键数。"

#: doc/classes/AnimationTreePlayer.xml:123
msgid ""
"Sets the blend amount of a Blend3 node given its name and value.\n"
"A Blend3 Node blends three animations (A, B-, B+) with the amount between -1 "
"and 1.\n"
"At -1, output is input B-. From -1 to 0, the influence of B- gets lessened, "
"the influence of A gets raised and the influence of B+ is 0. At 0, output is "
"input A. From 0 to 1, the influence of A gets lessened, the influence of B+ "
"gets raised and the influence of B+ is 0. At 1, output is input B+."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:132
#, fuzzy
msgid "Returns the blend amount of a Blend4 node given its name."
msgstr "返回指定轨道中的键数。"

#: doc/classes/AnimationTreePlayer.xml:140
msgid ""
"Sets the blend amount of a Blend4 node given its name and value.\n"
"A Blend4 Node blends two pairs of animations.\n"
"The two pairs are blended like Blend2 and then added together."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:151
#, fuzzy
msgid ""
"Connects node [code]id[/code] to [code]dst_id[/code] at the specified input "
"slot."
msgstr "断开连接到指定输入端的节点。"

#: doc/classes/AnimationTreePlayer.xml:159
#, fuzzy
msgid ""
"Disconnects nodes connected to [code]id[/code] at the specified input slot."
msgstr "断开连接到指定输入端的节点。"

#: doc/classes/AnimationTreePlayer.xml:165
#, fuzzy
msgid "Returns a [PoolStringArray] containing the name of all nodes."
msgstr "返回一个 [Array],包含当前所有连接手柄的设备 ID。"

#: doc/classes/AnimationTreePlayer.xml:172
#, fuzzy
msgid "Returns the mix amount of a Mix node given its name."
msgstr "返回指定轨道中的键数。"

#: doc/classes/AnimationTreePlayer.xml:180
msgid ""
"Sets the mix amount of a Mix node given its name and value.\n"
"A Mix node adds input b to input a by the amount given by ratio."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:188
msgid "Check if a node exists (by name)."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:195
msgid ""
"Returns the input count for a given node. Different types of nodes have "
"different amount of inputs."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:203
#, fuzzy
msgid "Returns the input source for a given node input."
msgstr "返回给定步骤的输入断点。"

#: doc/classes/AnimationTreePlayer.xml:210
#, fuzzy
msgid "Returns position of a node in the graph given its name."
msgstr "返回指定名称的动画节点。"

#: doc/classes/AnimationTreePlayer.xml:217
#, fuzzy
msgid "Gets the node type, will return from [enum NodeType] enum."
msgstr "获取当前节点的类型。与[enum NodeType]常量比较。"

#: doc/classes/AnimationTreePlayer.xml:225
#, fuzzy
msgid "Renames a node in the graph."
msgstr "从图中删除指定的节点。"

#: doc/classes/AnimationTreePlayer.xml:233
#, fuzzy
msgid "Sets the position of a node in the graph given its name and position."
msgstr "将给定的节点设置为图形的端点。"

#: doc/classes/AnimationTreePlayer.xml:240
#, fuzzy
msgid "Returns the autostart delay of a OneShot node given its name."
msgstr "返回给定轨道中给定键的值。"

#: doc/classes/AnimationTreePlayer.xml:247
#, fuzzy
msgid "Returns the autostart random delay of a OneShot node given its name."
msgstr "返回指定名称的动画节点。"

#: doc/classes/AnimationTreePlayer.xml:254
#, fuzzy
msgid "Returns the fade in time of a OneShot node given its name."
msgstr "返回指定名称的动画节点。"

#: doc/classes/AnimationTreePlayer.xml:261
#, fuzzy
msgid "Returns the fade out time of a OneShot node given its name."
msgstr "返回与给定名称相匹配的第一个图块。"

#: doc/classes/AnimationTreePlayer.xml:268
#, fuzzy
msgid "Returns whether a OneShot node will auto restart given its name."
msgstr "返回指定名称的动画节点。"

#: doc/classes/AnimationTreePlayer.xml:275
#, fuzzy
msgid "Returns whether a OneShot node is active given its name."
msgstr "返回指定名称的动画节点。"

#: doc/classes/AnimationTreePlayer.xml:283
msgid ""
"Sets the autorestart property of a OneShot node given its name and value."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:291
msgid ""
"Sets the autorestart delay of a OneShot node given its name and value in "
"seconds."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:299
msgid ""
"Sets the autorestart random delay of a OneShot node given its name and value "
"in seconds."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:307
#, fuzzy
msgid ""
"Sets the fade in time of a OneShot node given its name and value in seconds."
msgstr "设置插值为指定的[code]time[/code],单位秒。"

#: doc/classes/AnimationTreePlayer.xml:315
msgid ""
"Sets the fade out time of a OneShot node given its name and value in seconds."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:324
msgid ""
"If [code]enable[/code] is [code]true[/code], the OneShot node with ID "
"[code]id[/code] turns off the track modifying the property at [code]path[/"
"code]. The modified node's children continue to animate."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:331
#, fuzzy
msgid "Starts a OneShot node given its name."
msgstr "开始播放指定的动画。"

#: doc/classes/AnimationTreePlayer.xml:338
#, fuzzy
msgid "Stops the OneShot node with name [code]id[/code]."
msgstr "返回[code]idx[/code]处的节点名称。"

#: doc/classes/AnimationTreePlayer.xml:344
msgid ""
"Manually recalculates the cache of track information generated from "
"animation nodes. Needed when external sources modify the animation nodes' "
"state."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:351
#, fuzzy
msgid "Removes the animation node with name [code]id[/code]."
msgstr "移除按键[code]name[/code]的动画。"

#: doc/classes/AnimationTreePlayer.xml:357
msgid "Resets this [AnimationTreePlayer]."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:364
#, fuzzy
msgid ""
"Returns the time scale value of the TimeScale node with name [code]id[/code]."
msgstr "返回具有给定 [code] name [/code] 的材质属性的默认值。"

#: doc/classes/AnimationTreePlayer.xml:372
msgid ""
"Sets the time scale of the TimeScale node with name [code]id[/code] to "
"[code]scale[/code].\n"
"The TimeScale node is used to speed [Animation]s up if the scale is above 1 "
"or slow them down if it is below 1.\n"
"If applied after a blend or mix, affects all input animations to that blend "
"or mix."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:382
msgid ""
"Sets the time seek value of the TimeSeek node with name [code]id[/code] to "
"[code]seconds[/code].\n"
"This functions as a seek in the [Animation] or the blend or mix of "
"[Animation]s input in it."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:391
#, fuzzy
msgid ""
"Deletes the input at [code]input_idx[/code] for the transition node with "
"name [code]id[/code]."
msgstr "返回[code]prop_idx[/code]处的属性名称,用于[code]idx[/code]处的节点。"

#: doc/classes/AnimationTreePlayer.xml:398
#, fuzzy
msgid ""
"Returns the index of the currently evaluated input for the transition node "
"with name [code]id[/code]."
msgstr "返回带有给定[code]id[/code]的项的索引。"

#: doc/classes/AnimationTreePlayer.xml:405
msgid ""
"Returns the number of inputs for the transition node with name [code]id[/"
"code]. You can add inputs by right-clicking on the transition node."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:412
#, fuzzy
msgid ""
"Returns the cross fade time for the transition node with name [code]id[/"
"code]."
msgstr "返回[code]idx[/code]处的节点名称。"

#: doc/classes/AnimationTreePlayer.xml:420
msgid ""
"Returns [code]true[/code] if the input at [code]input_idx[/code] on the "
"transition node with name [code]id[/code] is set to automatically advance to "
"the next input upon completion."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:428
#, fuzzy
msgid ""
"The transition node with name [code]id[/code] sets its current input at "
"[code]input_idx[/code]."
msgstr ""
"将轨道 [code]idx[/code] 的索引位置改为 [code]to_idx[/code] 中定义的位置。"

#: doc/classes/AnimationTreePlayer.xml:437
msgid ""
"The transition node with name [code]id[/code] advances to its next input "
"automatically when the input at [code]input_idx[/code] completes."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:445
#, fuzzy
msgid ""
"Resizes the number of inputs available for the transition node with name "
"[code]id[/code]."
msgstr "返回与给定[code] id [/code]关联的点的权重比例。"

#: doc/classes/AnimationTreePlayer.xml:453
#, fuzzy
msgid ""
"The transition node with name [code]id[/code] sets its cross fade time to "
"[code]time_sec[/code]."
msgstr ""
"将轨道 [code]idx[/code] 的索引位置改为 [code]to_idx[/code] 中定义的位置。"

#: doc/classes/AnimationTreePlayer.xml:459
#, fuzzy
msgid ""
"If [code]true[/code], the [AnimationTreePlayer] is able to play animations."
msgstr "如果 [code]true[/code] 时,[AnimationTree] 将执行逻辑处理。"

#: doc/classes/AnimationTreePlayer.xml:462
msgid ""
"The node from which to relatively access other nodes.\n"
"It accesses the bones, so it should point to the same node the "
"[AnimationPlayer] would point its Root Node at."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:466
msgid ""
"The path to the [AnimationPlayer] from which this [AnimationTreePlayer] "
"binds animations to animation nodes.\n"
"Once set, [Animation] nodes can be added to the [AnimationTreePlayer]."
msgstr ""

#: doc/classes/AnimationTreePlayer.xml:470
#, fuzzy
msgid "The thread in which to update animations."
msgstr "更新动画的过程通知。"

#: doc/classes/AnimationTreePlayer.xml:475
#, fuzzy
msgid "Output node."
msgstr "文本节点。"

#: doc/classes/AnimationTreePlayer.xml:478
#, fuzzy
msgid "Animation node."
msgstr "未知节点。"

#: doc/classes/AnimationTreePlayer.xml:481
#, fuzzy
msgid "OneShot node."
msgstr "文本节点。"

#: doc/classes/AnimationTreePlayer.xml:484
#, fuzzy
msgid "Mix node."
msgstr "文本节点。"

#: doc/classes/AnimationTreePlayer.xml:487
#, fuzzy
msgid "Blend2 node."
msgstr "注释节点。"

#: doc/classes/AnimationTreePlayer.xml:490
#, fuzzy
msgid "Blend3 node."
msgstr "注释节点。"

#: doc/classes/AnimationTreePlayer.xml:493
#, fuzzy
msgid "Blend4 node."
msgstr "注释节点。"

#: doc/classes/AnimationTreePlayer.xml:496
#, fuzzy
msgid "TimeScale node."
msgstr "文本节点。"

#: doc/classes/AnimationTreePlayer.xml:499
#, fuzzy
msgid "TimeSeek node."
msgstr "文本节点。"

#: doc/classes/AnimationTreePlayer.xml:502
#, fuzzy
msgid "Transition node."
msgstr "过渡类型."

#: doc/classes/Area.xml:4
#, fuzzy
msgid "3D area for detection and physics and audio influence."
msgstr "用于检测和二维物理作用的二维区域。"

#: doc/classes/Area.xml:7
#, fuzzy
msgid ""
"3D area that detects [CollisionObject] nodes overlapping, entering, or "
"exiting. Can also alter or override local physics parameters (gravity, "
"damping) and route audio to custom audio buses."
msgstr ""
"检测 [CollisionObject2D] 节点重叠、进入、离开的二维区域。还可以修改或覆盖本地"
"的物理参数(重力、阻尼)。"

#: doc/classes/Area.xml:11 doc/classes/QuadMesh.xml:10
#: doc/classes/Viewport.xml:17 doc/classes/ViewportTexture.xml:11
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/127"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Area.xml:17
#, fuzzy
msgid ""
"Returns a list of intersecting [Area]s. For performance reasons (collisions "
"are all processed at the same time) this list is modified once during the "
"physics step, not immediately after objects are moved. Consider using "
"signals instead."
msgstr ""
"返回相交的 [Area2D] 的列表。由于性能原因(碰撞都是同时处理的),该列表不会在"
"对象移动后立即更新,只会在物理更新时进行统一修改。可以考虑改用信号。"

#: doc/classes/Area.xml:23
#, fuzzy
msgid ""
"Returns a list of intersecting [PhysicsBody]s. For performance reasons "
"(collisions are all processed at the same time) this list is modified once "
"during the physics step, not immediately after objects are moved. Consider "
"using signals instead."
msgstr ""
"返回相交的 [PhysicsBody2D] 的列表。由于性能原因(碰撞都是同时处理的),该列表"
"不会在对象移动后立即更新,只会在物理更新时进行统一修改。可以考虑改用信号。"

#: doc/classes/Area.xml:30
#, fuzzy
msgid ""
"If [code]true[/code], the given area overlaps the Area.\n"
"[b]Note:[/b] The result of this test is not immediate after moving objects. "
"For performance, list of overlaps is updated once per frame and before the "
"physics step. Consider using signals instead."
msgstr ""
"如果[code]true[/code],则给定区域与Area2D重叠。\n"
"[b]注意:[/b]在移动物体后,这个测试的结果不是立即的。为了性能,重叠列表每帧更"
"新一次,并且在物理步骤之前更新。可以考虑使用信号来代替。"

#: doc/classes/Area.xml:38
#, fuzzy
msgid ""
"If [code]true[/code], the given physics body overlaps the Area.\n"
"[b]Note:[/b] The result of this test is not immediate after moving objects. "
"For performance, list of overlaps is updated once per frame and before the "
"physics step. Consider using signals instead.\n"
"The [code]body[/code] argument can either be a [PhysicsBody] or a [GridMap] "
"instance (while GridMaps are not physics body themselves, they register "
"their tiles with collision shapes as a virtual physics body)."
msgstr ""
"如果[code]true[/code],则给定的物理实体与Area3D重叠。\n"
"[b]注意:[/b]移动物体后,该测试的结果不是立即产生的。为了提高性能,重叠列表每"
"帧更新一次,并在物理步骤之前进行更新。考虑改用信号。\n"
"[code] body [/code]参数可以是[PhysicsBody3D]或[GridMap]实例(虽然GridMaps本身"
"不是物理物体,但它们将具有碰撞形状的图块注册为虚拟物理物体)。"

#: doc/classes/Area.xml:46
#, fuzzy
msgid ""
"The rate at which objects stop spinning in this area. Represents the angular "
"velocity lost per second.\n"
"See [member ProjectSettings.physics/3d/default_angular_damp] for more "
"details about damping."
msgstr ""
"物体在此区域停止旋转的速度。代表每秒损失的角速度。值的范围是[code]0[/code]"
"(无阻尼)到[code]1[/code](全阻尼)。"

#: doc/classes/Area.xml:50 doc/classes/Area2D.xml:52
msgid "The name of the area's audio bus."
msgstr "该地区的音讯总线的名字。"

#: doc/classes/Area.xml:53 doc/classes/Area2D.xml:55
msgid ""
"If [code]true[/code], the area's audio bus overrides the default audio bus."
msgstr "如果[code]true[/code],该区域的音频总线覆盖默认的音频总线。"

#: doc/classes/Area.xml:56
#, fuzzy
msgid ""
"The area's gravity intensity (in meters per second squared). This value "
"multiplies the gravity vector. This is useful to alter the force of gravity "
"without altering its direction."
msgstr ""
"该地区的重力强度(范围从-1024到1024)。这个值是重力向量的倍数。这对于在不改变"
"重力方向的情况下改变重力的作用力很有用。"

#: doc/classes/Area.xml:59 doc/classes/Area2D.xml:61
msgid ""
"The falloff factor for point gravity. The greater the value, the faster "
"gravity decreases with distance."
msgstr "点重力的落差系数。该值越大,重力随距离下降越快。"

#: doc/classes/Area.xml:62 doc/classes/Area2D.xml:64
msgid ""
"If [code]true[/code], gravity is calculated from a point (set via [member "
"gravity_vec]). See also [member space_override]."
msgstr ""
"如果 [code]true[/code],则从一个点计算重力(通过 [member gravity_vec] 设"
"置)。参见 [member space_override]。"

#: doc/classes/Area.xml:65 doc/classes/Area2D.xml:67
msgid ""
"The area's gravity vector (not normalized). If gravity is a point (see "
"[member gravity_point]), this will be the point of attraction."
msgstr ""
"区域的重力向量(未规范化)。如果重力是一个点(请参阅[membergravity_point]),"
"则这将是吸引力点。"

#: doc/classes/Area.xml:68
#, fuzzy
msgid ""
"The rate at which objects stop moving in this area. Represents the linear "
"velocity lost per second.\n"
"See [member ProjectSettings.physics/3d/default_linear_damp] for more details "
"about damping."
msgstr ""
"物体在此区域停止运动的速度。代表每秒损失的线性速度。数值范围从[code]0[/code]"
"(无阻尼)到[code]1[/code](全阻尼)。"

#: doc/classes/Area.xml:72 doc/classes/Area2D.xml:74
msgid "If [code]true[/code], other monitoring areas can detect this area."
msgstr "如果[code]true[/code],其他监测区域可以检测到这个区域。"

#: doc/classes/Area.xml:75 doc/classes/Area2D.xml:77
msgid ""
"If [code]true[/code], the area detects bodies or areas entering and exiting "
"it."
msgstr "如果[code]true[/code],则该区域检测进入和退出该区域的机构或区域。"

#: doc/classes/Area.xml:78 doc/classes/Area2D.xml:80
msgid "The area's priority. Higher priority areas are processed first."
msgstr "该地区的优先级。优先级较高的地区优先处理。"

#: doc/classes/Area.xml:81
msgid ""
"The degree to which this area applies reverb to its associated audio. Ranges "
"from [code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
msgstr ""
"该区域对其相关音频应用混响的程度。范围从[code]0[/code]到[code]1[/code],精度"
"为[code]0.1[/code]。"

#: doc/classes/Area.xml:84
msgid "If [code]true[/code], the area applies reverb to its associated audio."
msgstr "如果[code]true[/code],则该区域将混响应用于其相关音频。"

#: doc/classes/Area.xml:87
msgid "The reverb bus name to use for this area's associated audio."
msgstr "这个区域的相关音频要使用的混响总线名称。"

#: doc/classes/Area.xml:90
msgid ""
"The degree to which this area's reverb is a uniform effect. Ranges from "
"[code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
msgstr ""
"这个区域的混响效果均匀的程度。范围从[code]0[/code]到[code]1[/code],精度为"
"[code]0.1[/code]。"

#: doc/classes/Area.xml:93 doc/classes/Area2D.xml:83
msgid ""
"Override mode for gravity and damping calculations within this area. See "
"[enum SpaceOverride] for possible values."
msgstr "该区域内重力和阻尼计算的覆盖模式。可能的值见[enum SpaceOverride]。"

#: doc/classes/Area.xml:100
#, fuzzy
msgid ""
"Emitted when another Area enters this Area. Requires [member monitoring] to "
"be set to [code]true[/code].\n"
"[code]area[/code] the other Area."
msgstr ""
"当鼠标指针退出此对象的所有形状时发出。要求[member input_pickable]为[code] "
"true [/code],并且至少要设置一个[code] collision_layer [/code]位。"

#: doc/classes/Area.xml:107
#, fuzzy
msgid ""
"Emitted when another Area exits this Area. Requires [member monitoring] to "
"be set to [code]true[/code].\n"
"[code]area[/code] the other Area."
msgstr ""
"当鼠标指针退出此对象的所有形状时发出。要求[member input_pickable]为[code] "
"true [/code],并且至少要设置一个[code] collision_layer [/code]位。"

#: doc/classes/Area.xml:117 doc/classes/Area.xml:130
msgid ""
"Emitted when one of another Area's [Shape]s enters one of this Area's "
"[Shape]s. Requires [member monitoring] to be set to [code]true[/code].\n"
"[code]area_id[/code] the [RID] of the other Area's [CollisionObject] used by "
"the [PhysicsServer].\n"
"[code]area[/code] the other Area.\n"
"[code]area_shape[/code] the index of the [Shape] of the other Area used by "
"the [PhysicsServer].\n"
"[code]local_shape[/code] the index of the [Shape] of this Area used by the "
"[PhysicsServer]."
msgstr ""

#: doc/classes/Area.xml:140
msgid ""
"Emitted when a [PhysicsBody] or [GridMap] enters this Area. Requires [member "
"monitoring] to be set to [code]true[/code]. [GridMap]s are detected if the "
"[MeshLibrary] has Collision [Shape]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap]."
msgstr ""

#: doc/classes/Area.xml:147
msgid ""
"Emitted when a [PhysicsBody] or [GridMap] exits this Area. Requires [member "
"monitoring] to be set to [code]true[/code]. [GridMap]s are detected if the "
"[MeshLibrary] has Collision [Shape]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap]."
msgstr ""

#: doc/classes/Area.xml:157 doc/classes/Area.xml:170
msgid ""
"Emitted when one of a [PhysicsBody] or [GridMap]'s [Shape]s enters one of "
"this Area's [Shape]s. Requires [member monitoring] to be set to [code]true[/"
"code]. [GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
"[code]body_id[/code] the [RID] of the [PhysicsBody] or [MeshLibrary]'s "
"[CollisionObject] used by the [PhysicsServer].\n"
"[code]body[/code] the [Node], if it exists in the tree, of the [PhysicsBody] "
"or [GridMap].\n"
"[code]body_shape[/code] the index of the [Shape] of the [PhysicsBody] or "
"[GridMap] used by the [PhysicsServer].\n"
"[code]local_shape[/code] the index of the [Shape] of this Area used by the "
"[PhysicsServer]."
msgstr ""

#: doc/classes/Area.xml:180 doc/classes/Area2D.xml:170
msgid "This area does not affect gravity/damping."
msgstr "这个区域不影响重力/阻尼。"

#: doc/classes/Area.xml:183 doc/classes/Area2D.xml:173
msgid ""
"This area adds its gravity/damping values to whatever has been calculated so "
"far (in [member priority] order)."
msgstr ""
"该区域将其重力/阻尼值加到迄今为止计算出的任何值上(按[成员优先级]排序)。"

#: doc/classes/Area.xml:186 doc/classes/Area2D.xml:176
msgid ""
"This area adds its gravity/damping values to whatever has been calculated so "
"far (in [member priority] order), ignoring any lower priority areas."
msgstr ""
"该区域将其重力/阻尼值添加到到目前为止已计算的任何内容(按[成员优先级]顺序),"
"而忽略任何较低优先级的区域。"

#: doc/classes/Area.xml:189 doc/classes/Area2D.xml:179
msgid ""
"This area replaces any gravity/damping, even the defaults, ignoring any "
"lower priority areas."
msgstr "该区域将替换所有重力/阻尼,甚至是默认值,而忽略任何较低优先级的区域。"

#: doc/classes/Area.xml:192 doc/classes/Area2D.xml:182
msgid ""
"This area replaces any gravity/damping calculated so far (in [member "
"priority] order), but keeps calculating the rest of the areas."
msgstr ""
"这个区域取代了到目前为止计算出的任何重力/阻尼(按[成员优先]顺序),但继续计算"
"其余的区域。"

#: doc/classes/Area2D.xml:4
#, fuzzy
msgid "2D area for detection and physics and audio influence."
msgstr "用于检测和二维物理作用的二维区域。"

#: doc/classes/Area2D.xml:7
#, fuzzy
msgid ""
"2D area that detects [CollisionObject2D] nodes overlapping, entering, or "
"exiting. Can also alter or override local physics parameters (gravity, "
"damping) and route audio to a custom audio bus."
msgstr ""
"检测 [CollisionObject2D] 节点重叠、进入、离开的二维区域。还可以修改或覆盖本地"
"的物理参数(重力、阻尼)。"

#: doc/classes/Area2D.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/physics/using_area_2d.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/physics/using_area_2d."
"html"

#: doc/classes/Area2D.xml:12 doc/classes/CollisionShape2D.xml:12
#: doc/classes/RectangleShape2D.xml:10
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/121"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Area2D.xml:13 doc/classes/Camera2D.xml:12
#: doc/classes/KinematicBody2D.xml:15 doc/classes/TileMap.xml:12
#: doc/classes/TileSet.xml:12
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/120"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Area2D.xml:19
msgid ""
"Returns a list of intersecting [Area2D]s. For performance reasons "
"(collisions are all processed at the same time) this list is modified once "
"during the physics step, not immediately after objects are moved. Consider "
"using signals instead."
msgstr ""
"返回相交的 [Area2D] 的列表。由于性能原因(碰撞都是同时处理的),该列表不会在"
"对象移动后立即更新,只会在物理更新时进行统一修改。可以考虑改用信号。"

#: doc/classes/Area2D.xml:25
msgid ""
"Returns a list of intersecting [PhysicsBody2D]s. For performance reasons "
"(collisions are all processed at the same time) this list is modified once "
"during the physics step, not immediately after objects are moved. Consider "
"using signals instead."
msgstr ""
"返回相交的 [PhysicsBody2D] 的列表。由于性能原因(碰撞都是同时处理的),该列表"
"不会在对象移动后立即更新,只会在物理更新时进行统一修改。可以考虑改用信号。"

#: doc/classes/Area2D.xml:32
#, fuzzy
msgid ""
"If [code]true[/code], the given area overlaps the Area2D.\n"
"[b]Note:[/b] The result of this test is not immediate after moving objects. "
"For performance, the list of overlaps is updated once per frame and before "
"the physics step. Consider using signals instead."
msgstr ""
"如果[code]true[/code],则给定区域与Area2D重叠。\n"
"[b]注意:[/b]在移动物体后,这个测试的结果不是立即的。为了性能,重叠列表每帧更"
"新一次,并且在物理步骤之前更新。可以考虑使用信号来代替。"

#: doc/classes/Area2D.xml:40
#, fuzzy
msgid ""
"If [code]true[/code], the given physics body overlaps the Area2D.\n"
"[b]Note:[/b] The result of this test is not immediate after moving objects. "
"For performance, list of overlaps is updated once per frame and before the "
"physics step. Consider using signals instead.\n"
"The [code]body[/code] argument can either be a [PhysicsBody2D] or a "
"[TileMap] instance (while TileMaps are not physics bodies themselves, they "
"register their tiles with collision shapes as a virtual physics body)."
msgstr ""
"如果[code]true[/code],给定的物理体与Area2D重叠。\n"
"[b]注意:[/b]在移动物体后,这个测试的结果不是立即的。为了性能,重叠列表每帧更"
"新一次,并且在物理步骤之前更新。可以考虑使用信号来代替。\n"
"[code]body[/code]参数可以是一个[PhysicsBody2D]或一个[TileMap]实例(虽然"
"TileMaps本身不是物理体,但它们将其带有碰撞形状的瓷砖注册为虚拟物理体)。"

#: doc/classes/Area2D.xml:48
#, fuzzy
msgid ""
"The rate at which objects stop spinning in this area. Represents the angular "
"velocity lost per second.\n"
"See [member ProjectSettings.physics/2d/default_angular_damp] for more "
"details about damping."
msgstr ""
"物体在此区域停止旋转的速度。代表每秒损失的角速度。值的范围是[code]0[/code]"
"(无阻尼)到[code]1[/code](全阻尼)。"

#: doc/classes/Area2D.xml:58
#, fuzzy
msgid ""
"The area's gravity intensity (in pixels per second squared). This value "
"multiplies the gravity vector. This is useful to alter the force of gravity "
"without altering its direction."
msgstr ""
"该地区的重力强度(范围从-1024到1024)。这个值是重力向量的倍数。这对于在不改变"
"重力方向的情况下改变重力的作用力很有用。"

#: doc/classes/Area2D.xml:70
#, fuzzy
msgid ""
"The rate at which objects stop moving in this area. Represents the linear "
"velocity lost per second.\n"
"See [member ProjectSettings.physics/2d/default_linear_damp] for more details "
"about damping."
msgstr ""
"物体在此区域停止运动的速度。代表每秒损失的线性速度。数值范围从[code]0[/code]"
"(无阻尼)到[code]1[/code](全阻尼)。"

#: doc/classes/Area2D.xml:90
#, fuzzy
msgid ""
"Emitted when another Area2D enters this Area2D. Requires [member monitoring] "
"to be set to [code]true[/code].\n"
"[code]area[/code] the other Area2D."
msgstr ""
"当鼠标指针退出此对象的所有形状时发出。要求[member input_pickable]为[code] "
"true [/code],并且至少要设置一个[code] collision_layer [/code]位。"

#: doc/classes/Area2D.xml:97
#, fuzzy
msgid ""
"Emitted when another Area2D exits this Area2D. Requires [member monitoring] "
"to be set to [code]true[/code].\n"
"[code]area[/code] the other Area2D."
msgstr ""
"当鼠标指针退出此对象的所有形状时发出。要求[member input_pickable]为[code] "
"true [/code],并且至少要设置一个[code] collision_layer [/code]位。"

#: doc/classes/Area2D.xml:107
msgid ""
"Emitted when one of another Area2D's [Shape2D]s enters one of this Area2D's "
"[Shape2D]s. Requires [member monitoring] to be set to [code]true[/code].\n"
"[code]area_id[/code] the [RID] of the other Area2D's [CollisionObject2D] "
"used by the [Physics2DServer].\n"
"[code]area[/code] the other Area2D.\n"
"[code]area_shape[/code] the index of the [Shape2D] of the other Area2D used "
"by the [Physics2DServer].\n"
"[code]local_shape[/code] the index of the [Shape2D] of this Area2D used by "
"the [Physics2DServer]."
msgstr ""

#: doc/classes/Area2D.xml:120
msgid ""
"Emitted when one of another Area2D's [Shape2D]s exits one of this Area2D's "
"[Shape2D]s. Requires [member monitoring] to be set to [code]true[/code].\n"
"[code]area_id[/code] the [RID] of the other Area2D's [CollisionObject2D] "
"used by the [Physics2DServer].\n"
"[code]area[/code] the other Area2D.\n"
"[code]area_shape[/code] the index of the [Shape2D] of the other Area2D used "
"by the [Physics2DServer].\n"
"[code]local_shape[/code] the index of the [Shape2D] of this Area2D used by "
"the [Physics2DServer]."
msgstr ""

#: doc/classes/Area2D.xml:130
msgid ""
"Emitted when a [PhysicsBody2D] or [TileMap] enters this Area2D. Requires "
"[member monitoring] to be set to [code]true[/code]. [TileMap]s are detected "
"if the [TileSet] has Collision [Shape2D]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody2D] or [TileMap]."
msgstr ""

#: doc/classes/Area2D.xml:137
msgid ""
"Emitted when a [PhysicsBody2D] or [TileMap] exits this Area2D. Requires "
"[member monitoring] to be set to [code]true[/code]. [TileMap]s are detected "
"if the [TileSet] has Collision [Shape2D]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody2D] or [TileMap]."
msgstr ""

#: doc/classes/Area2D.xml:147
msgid ""
"Emitted when one of a [PhysicsBody2D] or [TileMap]'s [Shape2D]s enters one "
"of this Area2D's [Shape2D]s. Requires [member monitoring] to be set to "
"[code]true[/code]. [TileMap]s are detected if the [TileSet] has Collision "
"[Shape2D]s.\n"
"[code]body_id[/code] the [RID] of the [PhysicsBody2D] or [TileSet]'s "
"[CollisionObject2D] used by the [Physics2DServer].\n"
"[code]body[/code] the [Node], if it exists in the tree, of the "
"[PhysicsBody2D] or [TileMap].\n"
"[code]body_shape[/code] the index of the [Shape2D] of the [PhysicsBody2D] or "
"[TileMap] used by the [Physics2DServer].\n"
"[code]local_shape[/code] the index of the [Shape2D] of this Area2D used by "
"the [Physics2DServer]."
msgstr ""

#: doc/classes/Area2D.xml:160
msgid ""
"Emitted when one of a [PhysicsBody2D] or [TileMap]'s [Shape2D]s exits one of "
"this Area2D's [Shape2D]s. Requires [member monitoring] to be set to "
"[code]true[/code]. [TileMap]s are detected if the [TileSet] has Collision "
"[Shape2D]s.\n"
"[code]body_id[/code] the [RID] of the [PhysicsBody2D] or [TileSet]'s "
"[CollisionObject2D] used by the [Physics2DServer].\n"
"[code]body[/code] the [Node], if it exists in the tree, of the "
"[PhysicsBody2D] or [TileMap].\n"
"[code]body_shape[/code] the index of the [Shape2D] of the [PhysicsBody2D] or "
"[TileMap] used by the [Physics2DServer].\n"
"[code]local_shape[/code] the index of the [Shape2D] of this Area2D used by "
"the [Physics2DServer]."
msgstr ""

#: doc/classes/Array.xml:4
#, fuzzy
msgid "A generic array datatype."
msgstr "通用数组数据类型。"

#: doc/classes/Array.xml:7
#, fuzzy
msgid ""
"A generic array that can contain several elements of any type, accessible by "
"a numerical index starting at 0. Negative indices can be used to count from "
"the back, like in Python (-1 is the last element, -2 is the second to last, "
"etc.).\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"var array = [\"One\", 2, 3, \"Four\"]\n"
"print(array[0]) # One.\n"
"print(array[2]) # 3.\n"
"print(array[-1]) # Four.\n"
"array[2] = \"Three\"\n"
"print(array[-2]) # Three.\n"
"[/codeblock]\n"
"Arrays can be concatenated using the [code]+[/code] operator:\n"
"[codeblock]\n"
"var array1 = [\"One\", 2]\n"
"var array2 = [3, \"Four\"]\n"
"print(array1 + array2) # [\"One\", 2, 3, \"Four\"]\n"
"[/codeblock]\n"
"[b]Note:[/b] Concatenating with the [code]+=[/code] operator will create a "
"new array, which has a cost. If you want to append another array to an "
"existing array, [method append_array] is more efficient.\n"
"[b]Note:[/b] Arrays are always passed by reference. To get a copy of an "
"array that can be modified independently of the original array, use [method "
"duplicate].\n"
"[b]Note:[/b] When declaring an array with [code]const[/code], the array "
"itself can still be mutated by defining the values at individual indices or "
"pushing/removing elements. Using [code]const[/code] will only prevent "
"assigning the constant with another value after it was initialized."
msgstr ""
"通用数组,可以包含若干任意类型的元素,通过由 0 开始的数字索引访问。负数索引从"
"末尾开始计算,与 Python 类似(-1 为最后一个元素,-2 为倒数第二个元素,等"
"等。)。\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"var array = [\"One\", 2, 3, \"Four\"]\n"
"print(array[0]) # One.\n"
"print(array[2]) # 3.\n"
"print(array[-1]) # Four.\n"
"array[2] = \"Three\"\n"
"print(array[-2]) # Three.\n"
"[/codeblock]\n"
"Arrays can be concatenated using the [code]+[/code] operator:\n"
"[codeblock]\n"
"var array1 = [\"One\", 2]\n"
"var array2 = [3, \"Four\"]\n"
"print(array1 + array2) # [\"One\", 2, 3, \"Four\"]\n"
"[/codeblock]\n"
"[b]注意:[/b] 数组总是传引用的。可以使用 [method duplicate] 来获取数组的副"
"本,这样就可以不影响原有数组,独立进行修改了。"

#: doc/classes/Array.xml:34
#, fuzzy
msgid "Constructs an array from a [PoolColorArray]."
msgstr "从 [PackedColorArray] 构造数组。"

#: doc/classes/Array.xml:41
#, fuzzy
msgid "Constructs an array from a [PoolVector3Array]."
msgstr "从 [PackedVector3Array] 构造数组。"

#: doc/classes/Array.xml:48
#, fuzzy
msgid "Constructs an array from a [PoolVector2Array]."
msgstr "从 [PackedVector2Array] 构造数组。"

#: doc/classes/Array.xml:55
#, fuzzy
msgid "Constructs an array from a [PoolStringArray]."
msgstr "从 [PackedStringArray] 构造数组。"

#: doc/classes/Array.xml:62
#, fuzzy
msgid "Constructs an array from a [PoolRealArray]."
msgstr "从 [PackedColorArray] 构造数组。"

#: doc/classes/Array.xml:69
#, fuzzy
msgid "Constructs an array from a [PoolIntArray]."
msgstr "从 [PackedInt64Array] 构造数组。"

#: doc/classes/Array.xml:76
#, fuzzy
msgid "Constructs an array from a [PoolByteArray]."
msgstr "从 [PackedByteArray] 构造数组。"

#: doc/classes/Array.xml:82 doc/classes/PoolByteArray.xml:23
#: doc/classes/PoolColorArray.xml:23 doc/classes/PoolIntArray.xml:24
#: doc/classes/PoolRealArray.xml:24 doc/classes/PoolStringArray.xml:24
#: doc/classes/PoolVector2Array.xml:24 doc/classes/PoolVector3Array.xml:23
msgid ""
"Appends an element at the end of the array (alias of [method push_back])."
msgstr "向数组末尾追加一个元素([method push_back] 的别名)。"

#: doc/classes/Array.xml:88
msgid ""
"Appends another array at the end of this array.\n"
"[codeblock]\n"
"var array1 = [1, 2, 3]\n"
"var array2 = [4, 5, 6]\n"
"array1.append_array(array2)\n"
"print(array1) # Prints [1, 2, 3, 4, 5, 6].\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Array.xml:100
msgid ""
"Returns the last element of the array. Prints an error and returns "
"[code]null[/code] if the array is empty.\n"
"[b]Note:[/b] Calling this function is not the same as writing [code]array[-1]"
"[/code]. If the array is empty, accessing by index will pause project "
"execution when running from the editor."
msgstr ""

#: doc/classes/Array.xml:109
msgid ""
"Finds the index of an existing value (or the insertion index that maintains "
"sorting order, if the value is not yet present in the array) using binary "
"search. Optionally, a [code]before[/code] specifier can be passed. If "
"[code]false[/code], the returned index comes after all existing entries of "
"the value in the array.\n"
"[b]Note:[/b] Calling [method bsearch] on an unsorted array results in "
"unexpected behavior."
msgstr ""
"使用二分法查找已有值的索引(该值不存在时,为现有顺序下的插入索引)。"
"[code]before[/code] 参数是可选的,为 [code]false[/code] 时返回的索引位于数组"
"中所有同值元素之后。\n"
"[b]注意:[/b] 在未排序的数组上调用 [method bsearch] 会产生预料之外的行为。"

#: doc/classes/Array.xml:120
#, fuzzy
msgid ""
"Finds the index of an existing value (or the insertion index that maintains "
"sorting order, if the value is not yet present in the array) using binary "
"search and a custom comparison method declared in the [code]obj[/code]. "
"Optionally, a [code]before[/code] specifier can be passed. If [code]false[/"
"code], the returned index comes after all existing entries of the value in "
"the array. The custom method receives two arguments (an element from the "
"array and the value searched for) and must return [code]true[/code] if the "
"first argument is less than the second, and return [code]false[/code] "
"otherwise.\n"
"[codeblock]\n"
"func cardinal_to_algebraic(a):\n"
"    match a:\n"
"        \"one\":\n"
"            return 1\n"
"        \"two\":\n"
"            return 2\n"
"        \"three\":\n"
"            return 3\n"
"        \"four\":\n"
"            return 4\n"
"        _:\n"
"            return 0\n"
"\n"
"func compare(a, b):\n"
"    return cardinal_to_algebraic(a) < cardinal_to_algebraic(b)\n"
"\n"
"func _ready():\n"
"    var a = [\"one\", \"two\", \"three\", \"four\"]\n"
"    # `compare` is defined in this object, so we use `self` as the `obj` "
"parameter.\n"
"    print(a.bsearch_custom(\"three\", self, \"compare\", true)) # Expected "
"value is 2.\n"
"[/codeblock]\n"
"[b]Note:[/b] Calling [method bsearch_custom] on an unsorted array results in "
"unexpected behavior."
msgstr ""
"自定义比较函数,使用二分法查找已有值的索引(该值不存在时,为现有顺序下的插入"
"索引)。[code]before[/code] 参数是可选的,为 [code]false[/code] 时返回的索引"
"位于数组中所有同值元素之后。自定义的比较函数接受两个参数(一个是数组中的元"
"素、一个是查找的目标值),必须在第一个参数小于第二个参数时返回 [code]true[/"
"code],否则返回 [code]false[/code]。\n"
"[b]注意:[/b] 在未排序的数组上调用 [method bsearch] 会产生预料之外的行为。"

#: doc/classes/Array.xml:148
msgid ""
"Clears the array. This is equivalent to using [method resize] with a size of "
"[code]0[/code]."
msgstr "清空数组。与调用 [method resize] 时指定大小为 [code]0[/code] 等价。"

#: doc/classes/Array.xml:155
msgid "Returns the number of times an element is in the array."
msgstr "返回元素在数组中出现的次数。"

#: doc/classes/Array.xml:162
msgid ""
"Returns a copy of the array.\n"
"If [code]deep[/code] is [code]true[/code], a deep copy is performed: all "
"nested arrays and dictionaries are duplicated and will not be shared with "
"the original array. If [code]false[/code], a shallow copy is made and "
"references to the original nested arrays and dictionaries are kept, so that "
"modifying a sub-array or dictionary in the copy will also impact those "
"referenced in the source array."
msgstr ""
"返回该数组的副本。\n"
"[code]deep[/code] 为 [code]true[/code] 时会执行深拷贝:复制所有嵌套数组和字"
"典,不与原数组共享。为 [code]false[/code] 时为浅拷贝,会维持对原有嵌套数组和"
"字典的引用,所以修改副本中的子数组或者字典也会影响原数组所引用的内容。"

#: doc/classes/Array.xml:169 doc/classes/PoolByteArray.xml:61
#: doc/classes/PoolColorArray.xml:35 doc/classes/PoolIntArray.xml:36
#: doc/classes/PoolRealArray.xml:36 doc/classes/PoolStringArray.xml:36
#: doc/classes/PoolVector2Array.xml:36 doc/classes/PoolVector3Array.xml:35
msgid "Returns [code]true[/code] if the array is empty."
msgstr "该数组为空时,返回 [code]true[/code]。"

#: doc/classes/Array.xml:175
msgid ""
"Removes the first occurrence of a value from the array. To remove an element "
"by index, use [method remove] instead.\n"
"[b]Note:[/b] This method acts in-place and doesn't return a value.\n"
"[b]Note:[/b] On large arrays, this method will be slower if the removed "
"element is close to the beginning of the array (index 0). This is because "
"all elements placed after the removed element have to be reindexed."
msgstr ""

#: doc/classes/Array.xml:185
msgid ""
"Searches the array for a value and returns its index or [code]-1[/code] if "
"not found. Optionally, the initial search index can be passed."
msgstr ""
"在数组中查找指定的值,返回对应的索引,未找到时返回 [code]-1[/code]。还可以传"
"入搜索起始位置的索引。"

#: doc/classes/Array.xml:192
msgid ""
"Searches the array in reverse order for a value and returns its index or "
"[code]-1[/code] if not found."
msgstr ""
"在数组中逆序查找指定的值,返回对应的索引,未找到时返回 [code]-1[/code]。"

#: doc/classes/Array.xml:198
msgid ""
"Returns the first element of the array. Prints an error and returns "
"[code]null[/code] if the array is empty.\n"
"[b]Note:[/b] Calling this function is not the same as writing [code]array[0]"
"[/code]. If the array is empty, accessing by index will pause project "
"execution when running from the editor."
msgstr ""

#: doc/classes/Array.xml:206
#, fuzzy
msgid ""
"Returns [code]true[/code] if the array contains the given value.\n"
"[codeblock]\n"
"[\"inside\", 7].has(\"inside\") # True\n"
"[\"inside\", 7].has(\"outside\") # False\n"
"[\"inside\", 7].has(7) # True\n"
"[\"inside\", 7].has(\"7\") # False\n"
"[/codeblock]\n"
"[b]Note:[/b] This is equivalent to using the [code]in[/code] operator as "
"follows:\n"
"[codeblock]\n"
"# Will evaluate to `true`.\n"
"if 2 in [2, 4, 6, 8]:\n"
"    pass\n"
"[/codeblock]"
msgstr ""
"该数组包含指定值时,返回 [code]true[/code]。\n"
"[codeblock]\n"
"print([\"inside\", 7].has(\"inside\")) # True\n"
"print([\"inside\", 7].has(\"outside\")) # False\n"
"print([\"inside\", 7].has(7)) # True\n"
"print([\"inside\", 7].has(\"7\")) # False\n"
"[/codeblock]\n"
"[b]Note:[/b] This is equivalent to using the [code]in[/code] operator as "
"follows:\n"
"[codeblock]\n"
"# Will evaluate to `true`.\n"
"if 2 in [2, 4, 6, 8]:\n"
"    pass\n"
"[/codeblock]"

#: doc/classes/Array.xml:224
msgid ""
"Returns a hashed integer value representing the array and its contents.\n"
"[b]Note:[/b] Arrays with equal contents can still produce different hashes. "
"Only the exact same arrays will produce the same hashed integer value."
msgstr ""

#: doc/classes/Array.xml:232
msgid ""
"Inserts a new element at a given position in the array. The position must be "
"valid, or at the end of the array ([code]pos == size()[/code]).\n"
"[b]Note:[/b] This method acts in-place and doesn't return a value.\n"
"[b]Note:[/b] On large arrays, this method will be slower if the inserted "
"element is close to the beginning of the array (index 0). This is because "
"all elements placed after the newly inserted element have to be reindexed."
msgstr ""

#: doc/classes/Array.xml:239 doc/classes/PoolByteArray.xml:96
#: doc/classes/PoolColorArray.xml:48 doc/classes/PoolIntArray.xml:49
#: doc/classes/PoolRealArray.xml:49 doc/classes/PoolStringArray.xml:49
#: doc/classes/PoolVector2Array.xml:49 doc/classes/PoolVector3Array.xml:48
msgid "Reverses the order of the elements in the array."
msgstr "将数组中的元素逆序排列。"

#: doc/classes/Array.xml:245
msgid ""
"Returns the maximum value contained in the array if all elements are of "
"comparable types. If the elements can't be compared, [code]null[/code] is "
"returned."
msgstr ""
"如果数组中的所有元素都是可比较的类型,返回其中的最大值。如果无法比较,返回 "
"[code]null[/code]。"

#: doc/classes/Array.xml:251
msgid ""
"Returns the minimum value contained in the array if all elements are of "
"comparable types. If the elements can't be compared, [code]null[/code] is "
"returned."
msgstr ""
"如果数组中的所有元素都是可比较的类型,返回其中的最小值。如果无法比较,返回 "
"[code]null[/code]。"

#: doc/classes/Array.xml:258
msgid ""
"Removes and returns the element of the array at index [code]position[/code]. "
"If negative, [code]position[/code] is considered relative to the end of the "
"array. Leaves the array untouched and returns [code]null[/code] if the array "
"is empty or if it's accessed out of bounds. An error message is printed when "
"the array is accessed out of bounds, but not when the array is empty.\n"
"[b]Note:[/b] On large arrays, this method can be slower than [method "
"pop_back] as it will reindex the array's elements that are located after the "
"removed element. The larger the array and the lower the index of the removed "
"element, the slower [method pop_at] will be."
msgstr ""

#: doc/classes/Array.xml:265
#, fuzzy
msgid ""
"Removes and returns the last element of the array. Returns [code]null[/code] "
"if the array is empty, without printing an error message. See also [method "
"pop_front]."
msgstr "删除并返回数组中的末尾元素。数组为空时,返回 [code]null[/code]。"

#: doc/classes/Array.xml:271
msgid ""
"Removes and returns the first element of the array. Returns [code]null[/"
"code] if the array is empty, without printing an error message. See also "
"[method pop_back].\n"
"[b]Note:[/b] On large arrays, this method is much slower than [method "
"pop_back] as it will reindex all the array's elements every time it's "
"called. The larger the array, the slower [method pop_front] will be."
msgstr ""

#: doc/classes/Array.xml:278
#, fuzzy
msgid ""
"Appends an element at the end of the array. See also [method push_front]."
msgstr "向数组末尾追加一个元素([method push_back] 的别名)。"

#: doc/classes/Array.xml:284
msgid ""
"Adds an element at the beginning of the array. See also [method push_back].\n"
"[b]Note:[/b] On large arrays, this method is much slower than [method "
"push_back] as it will reindex all the array's elements every time it's "
"called. The larger the array, the slower [method push_front] will be."
msgstr ""

#: doc/classes/Array.xml:291
msgid ""
"Removes an element from the array by index. If the index does not exist in "
"the array, nothing happens. To remove an element by searching for its value, "
"use [method erase] instead.\n"
"[b]Note:[/b] This method acts in-place and doesn't return a value.\n"
"[b]Note:[/b] On large arrays, this method will be slower if the removed "
"element is close to the beginning of the array (index 0). This is because "
"all elements placed after the removed element have to be reindexed."
msgstr ""

#: doc/classes/Array.xml:299
msgid ""
"Resizes the array to contain a different number of elements. If the array "
"size is smaller, elements are cleared, if bigger, new elements are "
"[code]null[/code]."
msgstr ""
"调整数组至包含不同数量的元素。如果数组变小则清除多余元素,变大则新元素为 "
"[code]null[/code]。"

#: doc/classes/Array.xml:307
msgid ""
"Searches the array in reverse order. Optionally, a start search index can be "
"passed. If negative, the start index is considered relative to the end of "
"the array."
msgstr ""
"逆序搜索数组。还可以传入搜索起始位置的索引,如果为负数,则起始位置从数组的末"
"尾开始计算。"

#: doc/classes/Array.xml:312
msgid ""
"Shuffles the array such that the items will have a random order. This method "
"uses the global random number generator common to methods such as [method "
"@GDScript.randi]. Call [method @GDScript.randomize] to ensure that a new "
"seed will be used each time if you want non-reproducible shuffling."
msgstr ""
"将数组打乱,元素随机排列。该方法使用全局随机数生成器,与 [method @GDScript."
"randi] 等方法一致。如果你想每次都使用新的种子,让打乱无法重现,则可以调用 "
"[method @GDScript.randomize]。"

#: doc/classes/Array.xml:318
msgid "Returns the number of elements in the array."
msgstr "返回数组中元素的个数。"

#: doc/classes/Array.xml:328
msgid ""
"Duplicates the subset described in the function and returns it in an array, "
"deeply copying the array if [code]deep[/code] is [code]true[/code]. Lower "
"and upper index are inclusive, with the [code]step[/code] describing the "
"change between indices while slicing."
msgstr ""
"复制函数中描述的子集并以数组形式返回,如果[code]deep[/code]为[code]true[/"
"code],则深度复制数组。下索引和上索引是包含的,[code]step[/code]描述了分片时"
"索引之间的变化。"

#: doc/classes/Array.xml:333
msgid ""
"Sorts the array.\n"
"[b]Note:[/b] Strings are sorted in alphabetical order (as opposed to natural "
"order). This may lead to unexpected behavior when sorting an array of "
"strings ending with a sequence of numbers. Consider the following example:\n"
"[codeblock]\n"
"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
"strings.sort()\n"
"print(strings) # Prints [string1, string10, string11, string2]\n"
"[/codeblock]"
msgstr ""
"对数组进行排序。\n"
"[b]注意:[/b] 字符串按字母顺序排序(与自然顺序相反)。当对一个以数字序列结尾"
"的字符串数组进行排序时,这可能会导致意外的行为。请看下面的例子。\n"
"[codeblock]\n"
"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
"strings.sort()\n"
"print(strings) # Prints [string1, string10, string11, string2] 。\n"
"[/codeblock]"

#: doc/classes/Array.xml:346
#, fuzzy
msgid ""
"Sorts the array using a custom method. The arguments are an object that "
"holds the method and the name of such method. The custom method receives two "
"arguments (a pair of elements from the array) and must return either "
"[code]true[/code] or [code]false[/code].\n"
"For two elements [code]a[/code] and [code]b[/code], if the given method "
"returns [code]true[/code], element [code]b[/code] will be after element "
"[code]a[/code] in the array.\n"
"[b]Note:[/b] You cannot randomize the return value as the heapsort algorithm "
"expects a deterministic result. Doing so will result in unexpected "
"behavior.\n"
"[codeblock]\n"
"class MyCustomSorter:\n"
"    static func sort_ascending(a, b):\n"
"        if a[0] < b[0]:\n"
"            return true\n"
"        return false\n"
"\n"
"var my_items = [[5, \"Potato\"], [9, \"Rice\"], [4, \"Tomato\"]]\n"
"my_items.sort_custom(MyCustomSorter, \"sort_ascending\")\n"
"print(my_items) # Prints [[4, Tomato], [5, Potato], [9, Rice]].\n"
"[/codeblock]"
msgstr ""
"使用自定义方法对数组进行排序。参数是一个持有方法的对象和方法的名称。自定义方"
"法接收两个参数(数组中的一对元素),必须返回[code]true[/code]or[code]false[/"
"code]。\n"
"[b]注意:[/b]您不能随机化返回值,因为堆栈算法希望得到确定的结果。这样做会导致"
"意外的行为。\n"
"(codeblock)\n"
"class MyCustomSorter:\n"
"static func sort_ascending(a, b):\n"
"if a[0] < b[0]:\n"
"return true\n"
"return false\n"
"\n"
"var my_items = [[5, \"Potato\"], [9, \"Rice\"], [4, \"Tomato\"]] 。\n"
"my_items.sort_custom(MyCustomSorter, \"sort_ascending\")\n"
"print(my_items) #Prints[[4, Tomato], [5, Potato], [9, Rice]]。\n"
"[/codeblock]"

#: doc/classes/ArrayMesh.xml:4
msgid ""
"[Mesh] type that provides utility for constructing a surface from arrays."
msgstr "[Mesh(网格)] 类型,提供了用于从数组构造表面的实用程序。"

#: doc/classes/ArrayMesh.xml:7
#, fuzzy
msgid ""
"The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes "
"as arrays.\n"
"The most basic example is the creation of a single triangle:\n"
"[codeblock]\n"
"var vertices = PoolVector3Array()\n"
"vertices.push_back(Vector3(0, 1, 0))\n"
"vertices.push_back(Vector3(1, 0, 0))\n"
"vertices.push_back(Vector3(0, 0, 1))\n"
"# Initialize the ArrayMesh.\n"
"var arr_mesh = ArrayMesh.new()\n"
"var arrays = []\n"
"arrays.resize(ArrayMesh.ARRAY_MAX)\n"
"arrays[ArrayMesh.ARRAY_VERTEX] = vertices\n"
"# Create the Mesh.\n"
"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n"
"var m = MeshInstance.new()\n"
"m.mesh = arr_mesh\n"
"[/codeblock]\n"
"The [MeshInstance] is ready to be added to the [SceneTree] to be shown.\n"
"See also [ImmediateGeometry], [MeshDataTool] and [SurfaceTool] for "
"procedural geometry generation.\n"
"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
"primitive modes."
msgstr ""
"[ArrayMesh]用于通过将属性指定为数组来构造[Mesh](网格)。\n"
"最基本的例子是创建一个单一的三角形。\n"
"[codeblock]\n"
"var vertices = PackedVector3Array()\n"
"vertices.push_back(Vector3(0, 1, 0))\n"
"vertices.push_back(Vector3(1, 0, 0))\n"
"vertices.push_back(Vector3(0, 0, 1))\n"
"# Initialize ArrayMesh。\n"
"var arr_mesh = ArrayMesh.new()\n"
"var arrays = []\n"
"arrays.resize(ArrayMesh.ARRAY_MAX)\n"
"arrays[ArrayMesh.ARRAY_VERTEX] = vertices。\n"
"# Create Mesh。\n"
"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n"
"var m = MeshInstance3D.new()\n"
"m.mesh = arr_mesh\n"
"[/codeblock]\n"
"[MeshInstance3D]已准备好添加到[SceneTree]中显示。\n"
"程序化几何体的生成还可以参考[ImmediateGeometry3D]、[MeshDataTool]和"
"[SurfaceTool]。\n"
"[b]Note:[/b]Godot对三角形基元模式的前脸使用顺时针[url=https://learnopengl."
"com/Advanced-OpenGL/Face-culling]winding order[/url]。"

#: doc/classes/ArrayMesh.xml:29
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/content/procedural_geometry/"
"arraymesh.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/content/"
"procedural_geometry/arraymesh.html"

#: doc/classes/ArrayMesh.xml:36
msgid ""
"Adds name for a blend shape that will be added with [method "
"add_surface_from_arrays]. Must be called before surface is added."
msgstr ""
"为混合形状添加名称,该名称将用[method add_surface_from_arrays]添加。必须在添"
"加曲面之前调用。"

#: doc/classes/ArrayMesh.xml:46
#, fuzzy
msgid ""
"Creates a new surface.\n"
"Surfaces are created to be rendered using a [code]primitive[/code], which "
"may be any of the types defined in [enum Mesh.PrimitiveType]. (As a note, "
"when using indices, it is recommended to only use points, lines, or "
"triangles.) [method Mesh.get_surface_count] will become the [code]surf_idx[/"
"code] for this new surface.\n"
"The [code]arrays[/code] argument is an array of arrays. See [enum ArrayType] "
"for the values used in this array. For example, [code]arrays[0][/code] is "
"the array of vertices. That first vertex sub-array is always required; the "
"others are optional. Adding an index array puts this function into \"index "
"mode\" where the vertex and other arrays become the sources of data and the "
"index array defines the vertex order. All sub-arrays must have the same "
"length as the vertex array or be empty, except for [constant ARRAY_INDEX] if "
"it is used."
msgstr ""
"创建一个新曲面。\n"
"创建表面以使用[code] primitive [/code]进行渲染,该基元可以是[enum Mesh."
"PrimitiveType]中定义的任何类型。 (请注意,使用索引时,建议仅使用点,线或三角"
"形。)[method.Mesh.get_surface_count]将成为此新曲面的[code] surf_idx [/"
"code]。\n"
"[code] arrays [/code]参数是一个数组数组。有关此数组中使用的值,请参见[enum "
"ArrayType]。例如,[code] arrays [0] [/code]是顶点的数组。始终需要第一个顶点子"
"数组;其他是可选的。添加索引数组会使此函数进入“索引模式”,在该模式下,顶点和"
"其他数组成为数据源,而索引数组定义了顶点顺序。所有子数组的长度必须与顶点数组"
"相同,或者为空,除非使用了[constant ARRAY_INDEX]。\n"
"添加索引数组会使此函数进入“索引模式”,其中顶点和其他数组成为数据源,并且索引"
"数组定义了顶点的顺序。"

#: doc/classes/ArrayMesh.xml:54
msgid "Removes all blend shapes from this [ArrayMesh]."
msgstr "删除此[ArrayMesh]的所有混合形状。"

#: doc/classes/ArrayMesh.xml:60
msgid "Removes all surfaces from this [ArrayMesh]."
msgstr "删除此[ArrayMesh]的所有表面。"

#: doc/classes/ArrayMesh.xml:66
msgid "Returns the number of blend shapes that the [ArrayMesh] holds."
msgstr "返回[ArrayMesh]持有的混合形状的数量。"

#: doc/classes/ArrayMesh.xml:73
msgid "Returns the name of the blend shape at this index."
msgstr "返回此索引处的混合形状的名称。"

#: doc/classes/ArrayMesh.xml:81
msgid ""
"Will perform a UV unwrap on the [ArrayMesh] to prepare the mesh for "
"lightmapping."
msgstr "将在[ArrayMesh]上执行UV展开,以准备用于光照贴图的网格。"

#: doc/classes/ArrayMesh.xml:87
msgid "Will regenerate normal maps for the [ArrayMesh]."
msgstr "将为[ArrayMesh]重新生成法线图。"

#: doc/classes/ArrayMesh.xml:101
msgid ""
"Returns the index of the first surface with this name held within this "
"[ArrayMesh]. If none are found, -1 is returned."
msgstr ""
"返回此[ArrayMesh]中带有此名称的第一个曲面的索引。如果没有找到,则返回-1。"

#: doc/classes/ArrayMesh.xml:108
msgid ""
"Returns the length in indices of the index array in the requested surface "
"(see [method add_surface_from_arrays])."
msgstr ""
"返回请求的曲面的索引数组的长度,以指数为单位(参见[method "
"add_surface_from_arrays])。"

#: doc/classes/ArrayMesh.xml:115
msgid ""
"Returns the length in vertices of the vertex array in the requested surface "
"(see [method add_surface_from_arrays])."
msgstr ""
"返回所请求曲面中顶点数组的顶点长度(请参见[method "
"add_surface_from_arrays])。"

#: doc/classes/ArrayMesh.xml:122
msgid ""
"Returns the format mask of the requested surface (see [method "
"add_surface_from_arrays])."
msgstr "返回所请求表面的格式掩码(请参见[method add_surface_from_arrays])。"

#: doc/classes/ArrayMesh.xml:129
msgid "Gets the name assigned to this surface."
msgstr "获取分配给此表面的名称。"

#: doc/classes/ArrayMesh.xml:136
msgid ""
"Returns the primitive type of the requested surface (see [method "
"add_surface_from_arrays])."
msgstr "返回所请求曲面的基本类型(请参见[method add_surface_from_arrays])。"

#: doc/classes/ArrayMesh.xml:143
#, fuzzy
msgid ""
"Removes a surface at position [code]surf_idx[/code], shifting greater "
"surfaces one [code]surf_idx[/code] slot down."
msgstr ""
"将索引 [code]effect_idx[/code] 的效果从索引 [code]bus_idx[/code] 的总线上删"
"除。"

#: doc/classes/ArrayMesh.xml:151
msgid "Sets a name for a given surface."
msgstr "设置给定曲面的名称。"

#: doc/classes/ArrayMesh.xml:160
msgid ""
"Updates a specified region of mesh arrays on the GPU.\n"
"[b]Warning:[/b] Only use if you know what you are doing. You can easily "
"cause crashes by calling this function with improper arguments."
msgstr ""
"更新 GPU 上的网格阵列的指定区域。\n"
"[b] 警告:[/b] 仅在知道您在做什么时使用。通过用不恰当的参数调用此功能,您可以"
"轻松地导致崩溃。"

#: doc/classes/ArrayMesh.xml:167
msgid "Sets the blend shape mode to one of [enum Mesh.BlendShapeMode]."
msgstr "将混合形状模式设置为[enum Mesh.BlendShapeMode]之一。"

#: doc/classes/ArrayMesh.xml:170 doc/classes/PrimitiveMesh.xml:26
msgid ""
"Overrides the [AABB] with one defined by user for use with frustum culling. "
"Especially useful to avoid unexpected culling when using a shader to offset "
"vertices."
msgstr ""
"用用户定义的用于使用视锥剔除的一种替代[AABB]。在使用着色器偏移顶点时,避免非"
"预期的剔除特别有用。"

#: doc/classes/ArrayMesh.xml:175
msgid "Default value used for index_array_len when no indices are present."
msgstr "当没有索引时,index_array_len的默认值。"

#: doc/classes/ArrayMesh.xml:178
msgid "Amount of weights/bone indices per vertex (always 4)."
msgstr "每个顶点的权重/骨指数量(始终为 4)。"

#: doc/classes/ArrayMesh.xml:181
#, fuzzy
msgid "[PoolVector3Array], [PoolVector2Array], or [Array] of vertex positions."
msgstr "顶点位置的[PackedVector3Array]、[PackedVector2Array]或[Array]。"

#: doc/classes/ArrayMesh.xml:184
#, fuzzy
msgid "[PoolVector3Array] of vertex normals."
msgstr "顶点法线的[PackedVector3Array]。"

#: doc/classes/ArrayMesh.xml:187
#, fuzzy
msgid ""
"[PoolRealArray] of vertex tangents. Each element in groups of 4 floats, "
"first 3 floats determine the tangent, and the last the binormal direction as "
"-1 or 1."
msgstr ""
"顶点切线的[PackedFloat32Array]。每组元素由4个浮点组成,前3个浮点确定切线,最"
"后一个双法线方向为-1或1。"

#: doc/classes/ArrayMesh.xml:190
#, fuzzy
msgid "[PoolColorArray] of vertex colors."
msgstr "顶点颜色的[PackedColorArray]。"

#: doc/classes/ArrayMesh.xml:193
#, fuzzy
msgid "[PoolVector2Array] for UV coordinates."
msgstr "UV坐标的[PackedVector2Array]。"

#: doc/classes/ArrayMesh.xml:196
#, fuzzy
msgid "[PoolVector2Array] for second UV coordinates."
msgstr "第二个UV坐标的[PackedVector2Array]。"

#: doc/classes/ArrayMesh.xml:199
#, fuzzy
msgid ""
"[PoolRealArray] or [PoolIntArray] of bone indices. Each element in groups of "
"4 floats."
msgstr ""
"骨骼索引的[PackedFloat32Array]或[PackedInt32Array]。每个元素以4个浮点数为一"
"组。"

#: doc/classes/ArrayMesh.xml:202
#, fuzzy
msgid "[PoolRealArray] of bone weights. Each element in groups of 4 floats."
msgstr "骨骼重量的[PackedFloat32Array]。每个元素以4个浮点数为一组。"

#: doc/classes/ArrayMesh.xml:205
#, fuzzy
msgid ""
"[PoolIntArray] of integers used as indices referencing vertices, colors, "
"normals, tangents, and textures. All of those arrays must have the same "
"number of elements as the vertex array. No index can be beyond the vertex "
"array size. When this index array is present, it puts the function into "
"\"index mode,\" where the index selects the *i*'th vertex, normal, tangent, "
"color, UV, etc. This means if you want to have different normals or colors "
"along an edge, you have to duplicate the vertices.\n"
"For triangles, the index array is interpreted as triples, referring to the "
"vertices of each triangle. For lines, the index array is in pairs indicating "
"the start and end of each line."
msgstr ""
"整数[PackedInt32Array]用作引用顶点,颜色,法线,切线和纹理的索引。所有这些数"
"组必须具有与顶点数组相同数量的元素。索引不能超出顶点数组的大小。当存在此索引"
"数组时,它将函数置于“索引模式”,其中索引选择第* i *个顶点,法线,切线,颜色,"
"UV等。这意味着是否要具有不同的法线或颜色沿着边缘,您必须复制顶点。\n"
"对于三角形,索引数组被解释为三元组,指的是每个三角形的顶点。对于行,索引数组"
"是成对的,指示每行的开始和结束。"

#: doc/classes/ArrayMesh.xml:209 doc/classes/Mesh.xml:225
#: doc/classes/VisualServer.xml:3269
msgid "Represents the size of the [enum ArrayType] enum."
msgstr "表示[enum ArrayType]枚举的大小。"

#: doc/classes/ArrayMesh.xml:212
msgid "Array format will include vertices (mandatory)."
msgstr "阵列格式将包括顶点(必填)。"

#: doc/classes/ArrayMesh.xml:215
msgid "Array format will include normals."
msgstr "阵列格式将包括法线。"

#: doc/classes/ArrayMesh.xml:218
msgid "Array format will include tangents."
msgstr "阵列格式将包括切线。"

#: doc/classes/ArrayMesh.xml:221
msgid "Array format will include a color array."
msgstr "阵列格式将包括一个颜色阵列。"

#: doc/classes/ArrayMesh.xml:224
msgid "Array format will include UVs."
msgstr "数组格式将包括UV。"

#: doc/classes/ArrayMesh.xml:227
msgid "Array format will include another set of UVs."
msgstr "阵列格式将包括另一组UV。"

#: doc/classes/ArrayMesh.xml:230
msgid "Array format will include bone indices."
msgstr "数组格式将包括骨骼索引。"

#: doc/classes/ArrayMesh.xml:233
msgid "Array format will include bone weights."
msgstr "数组格式将包括骨骼权重。"

#: doc/classes/ArrayMesh.xml:236
msgid "Index array will be used."
msgstr "将使用索引数组。"

#: doc/classes/ARVRAnchor.xml:4
msgid "An anchor point in AR space."
msgstr "AR空间中的锚点。"

#: doc/classes/ARVRAnchor.xml:7
#, fuzzy
msgid ""
"The [ARVRAnchor] point is a spatial node that maps a real world location "
"identified by the AR platform to a position within the game world. For "
"example, as long as plane detection in ARKit is on, ARKit will identify and "
"update the position of planes (tables, floors, etc) and create anchors for "
"them.\n"
"This node is mapped to one of the anchors through its unique ID. When you "
"receive a signal that a new anchor is available, you should add this node to "
"your scene for that anchor. You can predefine nodes and set the ID; the "
"nodes will simply remain on 0,0,0 until a plane is recognized.\n"
"Keep in mind that, as long as plane detection is enabled, the size, placing "
"and orientation of an anchor will be updated as the detection logic learns "
"more about the real world out there especially if only part of the surface "
"is in view."
msgstr ""
"[XRAnchor3D]点是空间节点,它将AR平台识别的现实世界的位置映射到游戏世界中的一"
"个位置。例如,只要ARKit中的平面检测开启,ARKit就会识别并更新平面的位置,如桌"
"子、地板等,并为其创建锚点。\n"
"这个节点通过其独特的ID被映射到其中一个锚点。当你收到一个新的锚点可用的信号"
"时,你应该为该锚点在你的场景中添加这个节点。你可以预先定义节点并设置ID;节点"
"将简单地保持在0,0,0上,直到一个平面被识别。\n"
"请记住,只要启用了平面检测,锚的大小、放置和方向就会随着检测逻辑了解更多关于"
"现实世界的信息而更新,尤其是在只有部分表面可见的情况下。"

#: doc/classes/ARVRAnchor.xml:17
msgid "Returns the name given to this anchor."
msgstr "返回赋予此锚点的名称。"

#: doc/classes/ARVRAnchor.xml:23
msgid ""
"Returns [code]true[/code] if the anchor is being tracked and [code]false[/"
"code] if no anchor with this ID is currently known."
msgstr ""
"如果正在跟踪锚点,则返回 [code]true[/code];如果当前没有已知具有此 ID 的锚"
"点,则返回 [code]false[/code]。"

#: doc/classes/ARVRAnchor.xml:29
#, fuzzy
msgid ""
"If provided by the [ARVRInterface], this returns a mesh object for the "
"anchor. For an anchor, this can be a shape related to the object being "
"tracked or it can be a mesh that provides topology related to the anchor and "
"can be used to create shadows/reflections on surfaces or for generating "
"collision shapes."
msgstr ""
"如果由[XRInterface]提供,这将返回锚点的网格对象。对于锚点来说,这可以是一个与"
"被追踪物体有关的形状,也可以是一个提供与锚点有关的拓扑结构的网格,可以用来在"
"表面上创建阴影及反射,或者用于生成碰撞形状。"

#: doc/classes/ARVRAnchor.xml:35
msgid ""
"Returns a plane aligned with our anchor; handy for intersection testing."
msgstr "返回一个与我们的锚点对齐的平面;方便进行交集测试。"

#: doc/classes/ARVRAnchor.xml:41
msgid ""
"Returns the estimated size of the plane that was detected. Say when the "
"anchor relates to a table in the real world, this is the estimated size of "
"the surface of that table."
msgstr ""
"返回检测到的平面的估计尺寸。比如当锚点与现实世界中的一张桌子有关时,这就是该"
"桌子表面的估计尺寸。"

#: doc/classes/ARVRAnchor.xml:47
msgid ""
"The anchor's ID. You can set this before the anchor itself exists. The first "
"anchor gets an ID of [code]1[/code], the second an ID of [code]2[/code], "
"etc. When anchors get removed, the engine can then assign the corresponding "
"ID to new anchors. The most common situation where anchors \"disappear\" is "
"when the AR server identifies that two anchors represent different parts of "
"the same plane and merges them."
msgstr ""
"锚点的ID。你可以在锚点本身存在之前设置它。第一个锚的ID是[code]1[/code],第二"
"个锚的ID是[code]2[/code],等等。当锚被移除时,引擎就可以将相应的ID分配给新的"
"锚。锚点 \"消失\" 的最常见情况是,AR服务器识别出两个锚点代表同一平面的不同部"
"分,并将它们合并。"

#: doc/classes/ARVRAnchor.xml:54
msgid ""
"Emitted when the mesh associated with the anchor changes or when one becomes "
"available. This is especially important for topology that is constantly "
"being [code]mesh_updated[/code]."
msgstr ""
"当与锚点相关的网格发生变化或有可用的网格时触发。这对于不断"
"[code]Mesh_updated[/code]更新的拓扑结构尤为重要。"

#: doc/classes/ARVRCamera.xml:4
msgid ""
"A camera node with a few overrules for AR/VR applied, such as location "
"tracking."
msgstr "应用了一些 AR/VR 规则的相机节点,例如位置跟踪。"

#: doc/classes/ARVRCamera.xml:7
#, fuzzy
msgid ""
"This is a helper spatial node for our camera; note that, if stereoscopic "
"rendering is applicable (VR-HMD), most of the camera properties are ignored, "
"as the HMD information overrides them. The only properties that can be "
"trusted are the near and far planes.\n"
"The position and orientation of this node is automatically updated by the "
"ARVR Server to represent the location of the HMD if such tracking is "
"available and can thus be used by game logic. Note that, in contrast to the "
"ARVR Controller, the render thread has access to the most up-to-date "
"tracking data of the HMD and the location of the ARVRCamera can lag a few "
"milliseconds behind what is used for rendering as a result."
msgstr ""
"这是用于相机的辅助空间节点;注意,如果是应用于立体渲染(VR-HMD),大部分的相"
"机属性会被忽略,因为HMD信息会重写它们。唯一可以保证的属性是近平面和远平面。\n"
"这个节点的位置和方向由XR服务器自动更新,以表示HMD的位置,如果这种跟踪是可用"
"的,则可在游戏逻辑使用。请注意,与XR控制器相反,渲染线程可以访问HMD的最新跟踪"
"数据,因此XRCamera3D的位置可能比用于渲染的位置滞后几毫秒。"

#: doc/classes/ARVRCamera.xml:11 doc/classes/ARVRController.xml:12
#: doc/classes/ARVRInterface.xml:11 doc/classes/ARVROrigin.xml:13
#: doc/classes/ARVRPositionalTracker.xml:12 doc/classes/ARVRServer.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/vr/index.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/ARVRController.xml:4
msgid "A spatial node representing a spatially-tracked controller."
msgstr "表示空间跟踪控制器的空间节点。"

#: doc/classes/ARVRController.xml:7
#, fuzzy
msgid ""
"This is a helper spatial node that is linked to the tracking of controllers. "
"It also offers several handy passthroughs to the state of buttons and such "
"on the controllers.\n"
"Controllers are linked by their ID. You can create controller nodes before "
"the controllers are available. If your game always uses two controllers (one "
"for each hand), you can predefine the controllers with ID 1 and 2; they will "
"become active as soon as the controllers are identified. If you expect "
"additional controllers to be used, you should react to the signals and add "
"ARVRController nodes to your scene.\n"
"The position of the controller node is automatically updated by the "
"[ARVRServer]. This makes this node ideal to add child nodes to visualize the "
"controller."
msgstr ""
"这是一个与控制器的跟踪有关的辅助空间节点。它还为控制器上的按钮等状态提供了几"
"个方便的通道。\n"
"控制器是通过他们的ID链接的。你可以在控制器可用之前创建控制器节点。如果你的游"
"戏总是使用两个控制器,即每只手一个,你可以用ID1和2预先定义控制器;一旦控制器"
"被识别,它们就会被激活。如果你计划使用额外的控制器,则应该对信号做出响应,并"
"在你的场景中添加XRController3D节点。\n"
"控制器节点的位置会由[XRServer]自动更新。这使得该节点非常适合添加子节点以实现"
"可视化控制器。"

#: doc/classes/ARVRController.xml:18
msgid ""
"If active, returns the name of the associated controller if provided by the "
"AR/VR SDK used."
msgstr "如果激活,如果由使用的AR/VR SDK提供,则返回相关控制器的名称。"

#: doc/classes/ARVRController.xml:24
#, fuzzy
msgid ""
"Returns the hand holding this controller, if known. See [enum "
"ARVRPositionalTracker.TrackerHand]."
msgstr ""
"返回持有此控制器的手,在知道的情况下。参阅[enum XRPositionalTracker."
"TrackerHand]。"

#: doc/classes/ARVRController.xml:30
#, fuzzy
msgid ""
"Returns [code]true[/code] if the bound controller is active. ARVR systems "
"attempt to track active controllers."
msgstr ""
"如果绑定的控制器处于激活状态,返回[code]true[/code]。XR系统尝试跟踪激活的控制"
"器。"

#: doc/classes/ARVRController.xml:37
msgid ""
"Returns the value of the given axis for things like triggers, touchpads, "
"etc. that are embedded into the controller."
msgstr "为嵌入到控制器中的触发器、触摸板等返回给定轴的值。"

#: doc/classes/ARVRController.xml:43
#, fuzzy
msgid ""
"Returns the ID of the joystick object bound to this. Every controller "
"tracked by the [ARVRServer] that has buttons and axis will also be "
"registered as a joystick within Godot. This means that all the normal "
"joystick tracking and input mapping will work for buttons and axis found on "
"the AR/VR controllers. This ID is purely offered as information so you can "
"link up the controller with its joystick entry."
msgstr ""
"返回与此绑定的操纵杆对象的ID。[XRServer]追踪每个控制器,如果有按钮和轴,会被"
"注册为Godot的操纵杆。这意味着所有正常的操纵杆追踪和输入映射将对AR/VR控制器上"
"的按钮和轴也起作用。这个ID是提供的信息,这样你就可以把控制器和它的操纵杆条目"
"关联起来。"

#: doc/classes/ARVRController.xml:49
#, fuzzy
msgid ""
"If provided by the [ARVRInterface], this returns a mesh associated with the "
"controller. This can be used to visualize the controller."
msgstr ""
"如果由[XRInterface]提供,将返回一个与控制器相关的网格。可用于可视化控制器。"

#: doc/classes/ARVRController.xml:56
#, fuzzy
msgid ""
"Returns [code]true[/code] if the button at index [code]button[/code] is "
"pressed. See [enum JoystickList], in particular the [code]JOY_VR_*[/code] "
"constants."
msgstr ""
"如果索引[code]button[/code]处的按钮被按下,则返回[code]true[/code]。参阅"
"[enum JoyButtonList]。"

#: doc/classes/ARVRController.xml:62
#, fuzzy
msgid ""
"The controller's ID.\n"
"A controller ID of 0 is unbound and will always result in an inactive node. "
"Controller ID 1 is reserved for the first controller that identifies itself "
"as the left-hand controller and ID 2 is reserved for the first controller "
"that identifies itself as the right-hand controller.\n"
"For any other controller that the [ARVRServer] detects, we continue with "
"controller ID 3.\n"
"When a controller is turned off, its slot is freed. This ensures controllers "
"will keep the same ID even when controllers with lower IDs are turned off."
msgstr ""
"控制器的ID。\n"
"控制器ID为0是不绑定,将始终有一个未激活的节点。控制器ID 1保留给第一个识别自身"
"左手的控制器,ID 2保留给第一个识别自身右手的控制器。\n"
"对于[XRServer]检测到的任何其他控制器,我们继续使用控制器ID 3。\n"
"当一个控制器被关闭时,释放它的插槽。这确保控制器将保持相同的ID,即使ID较低的"
"控制器被关闭。"

#: doc/classes/ARVRController.xml:68
#, fuzzy
msgid ""
"The degree to which the controller vibrates. Ranges from [code]0.0[/code] to "
"[code]1.0[/code] with precision [code].01[/code]. If changed, updates "
"[member ARVRPositionalTracker.rumble] accordingly.\n"
"This is a useful property to animate if you want the controller to vibrate "
"for a limited duration."
msgstr ""
"控制器振动的程度。范围从[code]0.0[/code]到[code]1.0[/code],精度[code].01[/"
"code]。如果改变了,会相应地更新[member XRPositionalTracker.rumble]。\n"
"如果你想让控制器在有限的时间内振动,这是一个有用的动画属性。"

#: doc/classes/ARVRController.xml:76
msgid "Emitted when a button on this controller is pressed."
msgstr "当该控制器上的一个按钮被按下时触发。"

#: doc/classes/ARVRController.xml:82
msgid "Emitted when a button on this controller is released."
msgstr "当该控制器上的一个按钮被释放时触发。"

#: doc/classes/ARVRController.xml:88
msgid ""
"Emitted when the mesh associated with the controller changes or when one "
"becomes available. Generally speaking this will be a static mesh after "
"becoming available."
msgstr ""
"当与控制器相关的Mesh发生变化或变得可用时触发。一般来说,这将是一个变得可用后"
"的静态网格。"

#: doc/classes/ARVRInterface.xml:4
msgid "Base class for an AR/VR interface implementation."
msgstr "AR/VR接口实现的基类。"

#: doc/classes/ARVRInterface.xml:7
#, fuzzy
msgid ""
"This class needs to be implemented to make an AR or VR platform available to "
"Godot and these should be implemented as C++ modules or GDNative modules "
"(note that for GDNative the subclass ARVRScriptInterface should be used). "
"Part of the interface is exposed to GDScript so you can detect, enable and "
"configure an AR or VR platform.\n"
"Interfaces should be written in such a way that simply enabling them will "
"give us a working setup. You can query the available interfaces through "
"[ARVRServer]."
msgstr ""
"这个类需要实现,以使AR或VR平台在Godot中可用,这些内容应以C++模块或GDNative模"
"块实现,注意,对于GDNative应使用子类XRScriptInterface。其部分接口暴露给"
"GDScript,因此你可以检测、启用和配置AR或VR平台。\n"
"接口的编写方式将是简单地启用它们,就可以得到环境安装。你可以通过[XRServer]查"
"询可用的接口。"

#: doc/classes/ARVRInterface.xml:17
msgid ""
"If this is an AR interface that requires displaying a camera feed as the "
"background, this method returns the feed ID in the [CameraServer] for this "
"interface."
msgstr ""
"如果这是一个需要显示相机画面作为背景的AR界面,此方法返回该界面的"
"[CameraServer]中的画面ID。"

#: doc/classes/ARVRInterface.xml:23
msgid ""
"Returns a combination of [enum Capabilities] flags providing information "
"about the capabilities of this interface."
msgstr "返回[enum Capabilities]标签的组合,提供关于这个接口功能的信息。"

#: doc/classes/ARVRInterface.xml:29
msgid "Returns the name of this interface (OpenVR, OpenHMD, ARKit, etc)."
msgstr "返回该接口的名称,如OpenVR、OpenHMD、ARKit等。"

#: doc/classes/ARVRInterface.xml:35
msgid ""
"Returns the resolution at which we should render our intermediate results "
"before things like lens distortion are applied by the VR platform."
msgstr "返回在VR平台应用镜头失真等内容之前渲染的中间结果的分辨率。"

#: doc/classes/ARVRInterface.xml:41
msgid ""
"If supported, returns the status of our tracking. This will allow you to "
"provide feedback to the user whether there are issues with positional "
"tracking."
msgstr ""
"如果支持,返回我们的跟踪状态。这将使你能够向用户反馈,是否存在位置跟踪的问"
"题。"

#: doc/classes/ARVRInterface.xml:47
msgid ""
"Call this to initialize this interface. The first interface that is "
"initialized is identified as the primary interface and it will be used for "
"rendering output.\n"
"After initializing the interface you want to use you then need to enable the "
"AR/VR mode of a viewport and rendering should commence.\n"
"[b]Note:[/b] You must enable the AR/VR mode on the main viewport for any "
"device that uses the main output of Godot, such as for mobile VR.\n"
"If you do this for a platform that handles its own output (such as OpenVR) "
"Godot will show just one eye without distortion on screen. Alternatively, "
"you can add a separate viewport node to your scene and enable AR/VR on that "
"viewport. It will be used to output to the HMD, leaving you free to do "
"anything you like in the main window, such as using a separate camera as a "
"spectator camera or rendering something completely different.\n"
"While currently not used, you can activate additional interfaces. You may "
"wish to do this if you want to track controllers from other platforms. "
"However, at this point in time only one interface can render to an HMD."
msgstr ""
"调用这个来初始化这个接口。第一个被初始化的接口确定为主接口,用于渲染输出。\n"
"在初始化了接口之后,需要启用视窗的AR/VR模式,将开始渲染。\n"
"[b]注意:[/b] 对于任何使用Godot主输出的设备,如移动VR,你必须在主视窗上启用"
"AR/VR模式。\n"
"如果你为一个处理自己输出的平台这样做,如OpenVR,Godot就会在屏幕上只显示一只眼"
"睛而不失真。另外,你可以在场景中添加一个单独的视窗节点,在该视窗上启用AR/VR。"
"它将被用来输出到HMD,让你在主窗口中做你喜欢的事情,比如用一个单独的相机作为旁"
"观者相机,或者渲染一些完全不同的东西。\n"
"虽然目前没有使用,但你可以激活其他接口。如果你想跟踪其他平台的控制器,可能希"
"望这样做。然而,此时,只有一个界面可以渲染到HMD。"

#: doc/classes/ARVRInterface.xml:57
msgid ""
"Returns [code]true[/code] if the current output of this interface is in "
"stereo."
msgstr "如果这个接口的当前是立体声输出,返回[code]true[/code]。"

#: doc/classes/ARVRInterface.xml:63
msgid "Turns the interface off."
msgstr "关闭接口。"

#: doc/classes/ARVRInterface.xml:69
msgid "On an AR interface, [code]true[/code] if anchor detection is enabled."
msgstr "在 AR 接口上,如果启用锚点检测,则为 [code]true[/code]。"

#: doc/classes/ARVRInterface.xml:72
msgid "[code]true[/code] if this interface been initialized."
msgstr "[code]true[/code] 如果这个接口已经初始化。"

#: doc/classes/ARVRInterface.xml:75
msgid "[code]true[/code] if this is the primary interface."
msgstr "[code]true[/code] 如果这是个主接口。"

#: doc/classes/ARVRInterface.xml:80
#, fuzzy
msgid "No ARVR capabilities."
msgstr "没有XR功能。"

#: doc/classes/ARVRInterface.xml:83
msgid ""
"This interface can work with normal rendering output (non-HMD based AR)."
msgstr "此接口可以与正常的渲染输出一起工作,非基于HMD的AR。"

#: doc/classes/ARVRInterface.xml:86
msgid "This interface supports stereoscopic rendering."
msgstr "该接口支持立体渲染。"

#: doc/classes/ARVRInterface.xml:89
msgid "This interface supports AR (video background and real world tracking)."
msgstr "该接口支持 AR,视频背景和真实世界跟踪。"

#: doc/classes/ARVRInterface.xml:92
msgid ""
"This interface outputs to an external device. If the main viewport is used, "
"the on screen output is an unmodified buffer of either the left or right eye "
"(stretched if the viewport size is not changed to the same aspect ratio of "
"[method get_render_targetsize]). Using a separate viewport node frees up the "
"main viewport for other purposes."
msgstr ""
"这个接口输出到一个外部设备。如果使用主视窗,屏幕上的输出是一个未经修改的左眼"
"或右眼的缓冲区,如果没有将视窗尺寸更改为[method get_render_targetsize]的相同"
"长宽比,则被拉伸。使用一个单独的视窗节点可以释放出主视窗,用于其他用途。"

#: doc/classes/ARVRInterface.xml:95
msgid ""
"Mono output, this is mostly used internally when retrieving positioning "
"information for our camera node or when stereo scopic rendering is not "
"supported."
msgstr ""
"Mono输出,这主要是在相机节点检索定位信息时,或者在不支持立体视景渲染时,内部"
"使用。"

#: doc/classes/ARVRInterface.xml:98
msgid ""
"Left eye output, this is mostly used internally when rendering the image for "
"the left eye and obtaining positioning and projection information."
msgstr "左眼输出,这主要是在为左眼渲染图像和获得定位和投影信息时内部使用。"

#: doc/classes/ARVRInterface.xml:101
msgid ""
"Right eye output, this is mostly used internally when rendering the image "
"for the right eye and obtaining positioning and projection information."
msgstr "右眼输出,这主要是在为右眼渲染图像和获得定位和投影信息时内部使用。"

#: doc/classes/ARVRInterface.xml:104
msgid "Tracking is behaving as expected."
msgstr "追踪行为符合预期。"

#: doc/classes/ARVRInterface.xml:107
msgid ""
"Tracking is hindered by excessive motion (the player is moving faster than "
"tracking can keep up)."
msgstr "过度运动会阻碍追踪,即玩家的移动速度超过追踪的速度。"

#: doc/classes/ARVRInterface.xml:110
msgid ""
"Tracking is hindered by insufficient features, it's too dark (for camera-"
"based tracking), player is blocked, etc."
msgstr "跟踪受到功能不足的阻碍,太暗(对于基于相机的跟踪),玩家被阻碍等。"

#: doc/classes/ARVRInterface.xml:113
msgid ""
"We don't know the status of the tracking or this interface does not provide "
"feedback."
msgstr "我们不知道跟踪的状态,或者这个接口未提供反馈。"

#: doc/classes/ARVRInterface.xml:116
msgid ""
"Tracking is not functional (camera not plugged in or obscured, lighthouses "
"turned off, etc.)."
msgstr "追踪功能失效,即相机未插电或被遮挡,灯塔关闭,等等。"

#: modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml:4
#, fuzzy
msgid "GDNative wrapper for an ARVR interface."
msgstr "XR接口的GDNative包装器。"

#: modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml:7
#, fuzzy
msgid ""
"This is a wrapper class for GDNative implementations of the ARVR interface. "
"To use a GDNative ARVR interface, simply instantiate this object and set "
"your GDNative library containing the ARVR interface implementation."
msgstr ""
"这是一个包装类,用于XR接口的GDNative实现。要使用GDNative XR接口,只需将此对象"
"实例化,并设置你GDNative库中包含XR接口的实现。"

#: doc/classes/ARVROrigin.xml:4
msgid "The origin point in AR/VR."
msgstr "AR/VR的原点。"

#: doc/classes/ARVROrigin.xml:7
#, fuzzy
msgid ""
"This is a special node within the AR/VR system that maps the physical "
"location of the center of our tracking space to the virtual location within "
"our game world.\n"
"There should be only one of these nodes in your scene and you must have one. "
"All the ARVRCamera, ARVRController and ARVRAnchor nodes should be direct "
"children of this node for spatial tracking to work correctly.\n"
"It is the position of this node that you update when your character needs to "
"move through your game world while we're not moving in the real world. "
"Movement in the real world is always in relation to this origin point.\n"
"For example, if your character is driving a car, the ARVROrigin node should "
"be a child node of this car. Or, if you're implementing a teleport system to "
"move your character, you should change the position of this node."
msgstr ""
"这是AR/VR系统中的特殊节点,它将我们追踪空间中心的物理位置映射到游戏世界中的虚"
"拟位置。\n"
"在你的场景中应该至少有一个这样的节点。所有的XRCamera3D、XRController3D和"
"XRAnchor3D节点都应该是这个节点的直接子节点,这样空间追踪才能正常工作。\n"
"当你的角色需要在游戏世界中移动时,你会更新这个节点的位置,而我们并没有在现实"
"世界中移动。现实世界中的运动总是与这个原点有关。\n"
"例如,如果你的角色正在驾驶一辆汽车,XROrigin3D节点应该是这辆汽车的一个子节"
"点。或者,如果你正在实现一个传送系统来移动你的角色,你应该改变这个节点的位"
"置。"

#: doc/classes/ARVROrigin.xml:19
#, fuzzy
msgid ""
"Allows you to adjust the scale to your game's units. Most AR/VR platforms "
"assume a scale of 1 game world unit = 1 real world meter.\n"
"[b]Note:[/b] This method is a passthrough to the [ARVRServer] itself."
msgstr ""
"允许你根据你的游戏的单位来调整比例。大多数AR/VR平台的比例是,1个游戏世界的单"
"位=1个现实世界的米。\n"
"[b]注意:[/b]这种方法是对[XRServer]本身的一种穿透。"

#: doc/classes/ARVRPositionalTracker.xml:4
msgid "A tracked object."
msgstr "跟踪对象。"

#: doc/classes/ARVRPositionalTracker.xml:7
#, fuzzy
msgid ""
"An instance of this object represents a device that is tracked, such as a "
"controller or anchor point. HMDs aren't represented here as they are handled "
"internally.\n"
"As controllers are turned on and the AR/VR interface detects them, instances "
"of this object are automatically added to this list of active tracking "
"objects accessible through the [ARVRServer].\n"
"The [ARVRController] and [ARVRAnchor] both consume objects of this type and "
"should be used in your project. The positional trackers are just under-the-"
"hood objects that make this all work. These are mostly exposed so that "
"GDNative-based interfaces can interact with them."
msgstr ""
"此对象的一个实例代表一个被追踪的设备,如控制器或锚点。这里不代表HMD,因为它们"
"是内部处理的。\n"
"当打开控制器,并且AR/VR接口检测到它们时,会自动添加这个对象的实例到通过这个"
"[XRServer]访问的激活的跟踪对象列表中。\n"
"[XRController3D]和[XRAnchor3D]会消耗这种类型的对象,你应在项目中使用。位置跟"
"踪器只是使这一切工作的幕后对象。这些对象通常被公开出来,以便基于GDNative的接"
"口可以与它们进行交互。"

#: doc/classes/ARVRPositionalTracker.xml:18
msgid ""
"Returns the hand holding this tracker, if known. See [enum TrackerHand] "
"constants."
msgstr "返回持有此追踪器的手,如果知道。参阅[enum TrackerHand]常量。"

#: doc/classes/ARVRPositionalTracker.xml:24
msgid ""
"If this is a controller that is being tracked, the controller will also be "
"represented by a joystick entry with this ID."
msgstr ""
"如果这是一个正在被追踪的控制器,该控制器将由一个具有此ID的操纵杆条目表示。"

#: doc/classes/ARVRPositionalTracker.xml:30
msgid ""
"Returns the mesh related to a controller or anchor point if one is available."
msgstr "如果可用,则返回与控制器或锚点相关的网格。"

#: doc/classes/ARVRPositionalTracker.xml:36
msgid "Returns the controller or anchor point's name if available."
msgstr "如果可用,返回控制器或锚点的名称。"

#: doc/classes/ARVRPositionalTracker.xml:42
msgid "Returns the controller's orientation matrix."
msgstr "返回控制器的方向矩阵。"

#: doc/classes/ARVRPositionalTracker.xml:48
msgid "Returns the world-space controller position."
msgstr "返回世界空间控制器的位置。"

#: doc/classes/ARVRPositionalTracker.xml:54
#, fuzzy
msgid ""
"Returns the internal tracker ID. This uniquely identifies the tracker per "
"tracker type and matches the ID you need to specify for nodes such as the "
"[ARVRController] and [ARVRAnchor] nodes."
msgstr ""
"返回内部追踪器的ID。这是对每个跟踪器类型的唯一标识,与你需要为"
"[XRController3D]和[XRAnchor3D]节点指定的ID相匹配。"

#: doc/classes/ARVRPositionalTracker.xml:60
msgid "Returns [code]true[/code] if this device tracks orientation."
msgstr "如果该设备跟踪方向,则返回[code]true[/code]。"

#: doc/classes/ARVRPositionalTracker.xml:66
msgid "Returns [code]true[/code] if this device tracks position."
msgstr "如果该设备跟踪位置,则返回[code]true[/code]。"

#: doc/classes/ARVRPositionalTracker.xml:73
msgid "Returns the transform combining this device's orientation and position."
msgstr "返回组合此设备的方向和坐标的变换。"

#: doc/classes/ARVRPositionalTracker.xml:79
msgid "Returns the tracker's type."
msgstr "返回跟踪器的类型。"

#: doc/classes/ARVRPositionalTracker.xml:85
msgid ""
"The degree to which the tracker rumbles. Ranges from [code]0.0[/code] to "
"[code]1.0[/code] with precision [code].01[/code]."
msgstr ""
"追踪器噪声的程度。范围从[code]0.0[/code]到[code]1.0[/code],精度[code].01[/"
"code]。"

#: doc/classes/ARVRPositionalTracker.xml:90
msgid "The hand this tracker is held in is unknown or not applicable."
msgstr "这个追踪器所持的手是未知的或不适用的。"

#: doc/classes/ARVRPositionalTracker.xml:93
msgid "This tracker is the left hand controller."
msgstr "此跟踪器是左手控制器。"

#: doc/classes/ARVRPositionalTracker.xml:96
msgid "This tracker is the right hand controller."
msgstr "此跟踪器是右手控制器。"

#: doc/classes/ARVRServer.xml:4
msgid "Server for AR and VR features."
msgstr "AR 和 VR 功能的服务。"

#: doc/classes/ARVRServer.xml:7
msgid ""
"The AR/VR server is the heart of our Advanced and Virtual Reality solution "
"and handles all the processing."
msgstr "AR/VR服务是我们高级的虚拟现实解决方案的核心,负责处理所有的过程。"

#: doc/classes/ARVRServer.xml:17
msgid "Registers an [ARVRInterface] object."
msgstr ""

#: doc/classes/ARVRServer.xml:24
msgid ""
"Registers a new [ARVRPositionalTracker] that tracks a spatial location in "
"real space."
msgstr ""

#: doc/classes/ARVRServer.xml:32
msgid ""
"This is an important function to understand correctly. AR and VR platforms "
"all handle positioning slightly differently.\n"
"For platforms that do not offer spatial tracking, our origin point (0,0,0) "
"is the location of our HMD, but you have little control over the direction "
"the player is facing in the real world.\n"
"For platforms that do offer spatial tracking, our origin point depends very "
"much on the system. For OpenVR, our origin point is usually the center of "
"the tracking space, on the ground. For other platforms, it's often the "
"location of the tracking camera.\n"
"This method allows you to center your tracker on the location of the HMD. It "
"will take the current location of the HMD and use that to adjust all your "
"tracking data; in essence, realigning the real world to your player's "
"current position in the game world.\n"
"For this method to produce usable results, tracking information must be "
"available. This often takes a few frames after starting your game.\n"
"You should call this method after a few seconds have passed. For instance, "
"when the user requests a realignment of the display holding a designated "
"button on a controller for a short period of time, or when implementing a "
"teleport mechanism."
msgstr ""
"这是正确理解的重要功能。 AR 和 VR 平台处理定位的方式略有不同。\n"
"对于不提供空间跟踪的平台,我们的原点 (0,0,0) 是 HMD 的位置,但您几乎无法控制"
"玩家在现实世界中面对的方向。\n"
"对于提供空间跟踪的平台,我们的原点在很大程度上取决于系统。对于 OpenVR,原点通"
"常是地面上跟踪空间的中心。对于其他平台,它通常是跟踪摄像机的位置。\n"
"此方法允许您将跟踪器置于 HMD 的位置。它将获取 HMD 的当前位置并使用它来调整您"
"的所有跟踪数据;从本质上讲,将现实世界重新调整到玩家在游戏世界中的当前位"
"置。\n"
"为了使这种方法产生可用的结果,跟踪信息必须可用。这通常在开始游戏后需要几"
"帧。\n"
"您应该在几秒钟后调用此方法。例如,当用户请求重新调整显示时,按住控制器上的指"
"定按钮一小段时间,或者当实现传送机制时。"

#: doc/classes/ARVRServer.xml:44
msgid ""
"Clears our current primary interface if it is set to the provided interface."
msgstr ""

#: doc/classes/ARVRServer.xml:51
msgid ""
"Finds an interface by its name. For instance, if your project uses "
"capabilities of an AR/VR platform, you can find the interface for that "
"platform by name and initialize it."
msgstr ""
"通过名字找到一个接口。例如,如果你的项目使用AR/VR平台的功能,你可以通过名称找"
"到该平台的接口并初始化它。"

#: doc/classes/ARVRServer.xml:57
msgid "Returns the primary interface's transformation."
msgstr "返回主界面的变换。"

#: doc/classes/ARVRServer.xml:64
msgid ""
"Returns the interface registered at a given index in our list of interfaces."
msgstr "返回在我们的接口列表中以指定索引注册的接口。"

#: doc/classes/ARVRServer.xml:70
msgid ""
"Returns the number of interfaces currently registered with the AR/VR server. "
"If your project supports multiple AR/VR platforms, you can look through the "
"available interface, and either present the user with a selection or simply "
"try to initialize each interface and use the first one that returns "
"[code]true[/code]."
msgstr ""
"返回当前在AR/VR服务器上注册的接口数量。如果你的项目支持多个AR/VR平台,你可以"
"查看可用的接口,并向用户展示一个选择,或者简单地尝试初始化每个接口,并使用第"
"一个返回[code]true[/code]的接口。"

#: doc/classes/ARVRServer.xml:76
msgid ""
"Returns a list of available interfaces the ID and name of each interface."
msgstr "返回可用接口的列表,每个接口的ID和名称。"

#: doc/classes/ARVRServer.xml:82
#, fuzzy
msgid ""
"Returns the absolute timestamp (in μs) of the last [ARVRServer] commit of "
"the AR/VR eyes to [VisualServer]. The value comes from an internal call to "
"[method OS.get_ticks_usec]."
msgstr ""
"返回AR/VR眼睛最后一次[XRServer]提交到[RenderingServer]的绝对时间戳(单位:"
"μs)。该值来自对[method OS.get_ticks_usec]的内部调用。"

#: doc/classes/ARVRServer.xml:88
msgid ""
"Returns the duration (in μs) of the last frame. This is computed as the "
"difference between [method get_last_commit_usec] and [method "
"get_last_process_usec] when committing."
msgstr ""
"返回最后一帧的持续时间(单位:μs)。这被计算为提交时[method "
"get_last_commit_usec]和[method get_last_process_usec]之间的差异。"

#: doc/classes/ARVRServer.xml:94
#, fuzzy
msgid ""
"Returns the absolute timestamp (in μs) of the last [ARVRServer] process "
"callback. The value comes from an internal call to [method OS."
"get_ticks_usec]."
msgstr ""
"返回最后一次[XRServer]进程回调的绝对时间戳(单位:μs)。该值来自对[method OS."
"get_ticks_usec]的内部调用。"

#: doc/classes/ARVRServer.xml:100
msgid ""
"Returns the reference frame transform. Mostly used internally and exposed "
"for GDNative build interfaces."
msgstr "返回引用帧的变换。主要在内部使用,并公开在GDNative构建接口中。"

#: doc/classes/ARVRServer.xml:107
msgid "Returns the positional tracker at the given ID."
msgstr "返回给定ID处的位置追踪器。"

#: doc/classes/ARVRServer.xml:113
msgid "Returns the number of trackers currently registered."
msgstr "返回当前注册的跟踪器的数量。"

#: doc/classes/ARVRServer.xml:120
#, fuzzy
msgid "Removes this interface."
msgstr "删除项目。"

#: doc/classes/ARVRServer.xml:127
#, fuzzy
msgid "Removes this positional tracker."
msgstr "返回给定ID处的位置追踪器。"

#: doc/classes/ARVRServer.xml:133
#, fuzzy
msgid "The primary [ARVRInterface] currently bound to the [ARVRServer]."
msgstr "当前绑定到 [XRServer] 的主要 [XRInterface]。"

#: doc/classes/ARVRServer.xml:136
msgid ""
"Allows you to adjust the scale to your game's units. Most AR/VR platforms "
"assume a scale of 1 game world unit = 1 real world meter."
msgstr ""
"允许你根据你的游戏的单位来调整缩放。大多数AR/VR平台假定1个游戏世界单位=1个现"
"实世界的米。"

#: doc/classes/ARVRServer.xml:143
msgid "Emitted when a new interface has been added."
msgstr "添加新接口时触发。"

#: doc/classes/ARVRServer.xml:149
msgid "Emitted when an interface is removed."
msgstr "当接口被删除时触发。"

#: doc/classes/ARVRServer.xml:157
#, fuzzy
msgid ""
"Emitted when a new tracker has been added. If you don't use a fixed number "
"of controllers or if you're using [ARVRAnchor]s for an AR solution, it is "
"important to react to this signal to add the appropriate [ARVRController] or "
"[ARVRAnchor] nodes related to this new tracker."
msgstr ""
"添加新跟踪器时触发。如果你不使用固定数量的控制器,或者你使用[XRAnchor3D]的AR"
"解决方案,那么对这个信号做出反应,添加与这个新追踪器相关的适当的"
"[XRController3D]或[XRAnchor3D]节点将很重要。"

#: doc/classes/ARVRServer.xml:165
#, fuzzy
msgid ""
"Emitted when a tracker is removed. You should remove any [ARVRController] or "
"[ARVRAnchor] points if applicable. This is not mandatory, the nodes simply "
"become inactive and will be made active again when a new tracker becomes "
"available (i.e. a new controller is switched on that takes the place of the "
"previous one)."
msgstr ""
"当追踪器被移除时触发。如果适用,你应该删除任何[XRController3D]或[XRAnchor3D]"
"点。这不是强制性的,这些节点将变得非激活,当一个新的追踪器可用时,即一个新的"
"控制器被打开,取代了之前的控制器,这些节点将被重新激活。"

#: doc/classes/ARVRServer.xml:171
msgid "The tracker tracks the location of a controller."
msgstr "追踪器追踪控制器的位置。"

#: doc/classes/ARVRServer.xml:174
msgid "The tracker tracks the location of a base station."
msgstr "追踪器追踪基站的位置。"

#: doc/classes/ARVRServer.xml:177
msgid "The tracker tracks the location and size of an AR anchor."
msgstr "追踪器追踪AR锚的位置和大小。"

#: doc/classes/ARVRServer.xml:180
msgid "Used internally to filter trackers of any known type."
msgstr "内部用于过滤任何已知类型的跟踪器。"

#: doc/classes/ARVRServer.xml:183
msgid "Used internally if we haven't set the tracker type yet."
msgstr "如果我们尚未设置跟踪器类型,则在内部使用。"

#: doc/classes/ARVRServer.xml:186
msgid "Used internally to select all trackers."
msgstr "在内部用于选择所有跟踪器。"

#: doc/classes/ARVRServer.xml:189
msgid ""
"Fully reset the orientation of the HMD. Regardless of what direction the "
"user is looking to in the real world. The user will look dead ahead in the "
"virtual world."
msgstr ""
"完全重置HMD的方向。无论用户在现实世界中看向哪个方向。将在虚拟世界中锁定视角。"

#: doc/classes/ARVRServer.xml:192
msgid ""
"Resets the orientation but keeps the tilt of the device. So if we're looking "
"down, we keep looking down but heading will be reset."
msgstr ""
"重置方向,但保持设备的倾斜度。因此,如果我们正在往下看,会继续往下看,但方向"
"会被重置。"

#: doc/classes/ARVRServer.xml:195
msgid ""
"Does not reset the orientation of the HMD, only the position of the player "
"gets centered."
msgstr "不重置HMD的方向,只让玩家的位置居中。"

#: doc/classes/AspectRatioContainer.xml:4
msgid "Container that preserves its child controls' aspect ratio."
msgstr ""

#: doc/classes/AspectRatioContainer.xml:7
msgid ""
"Arranges child controls in a way to preserve their aspect ratio "
"automatically whenever the container is resized. Solves the problem where "
"the container size is dynamic and the contents' size needs to adjust "
"accordingly without losing proportions."
msgstr ""

#: doc/classes/AspectRatioContainer.xml:15
#, fuzzy
msgid "Specifies the horizontal relative position of child controls."
msgstr "子节点的水平分隔量。"

#: doc/classes/AspectRatioContainer.xml:18
#, fuzzy
msgid "Specifies the vertical relative position of child controls."
msgstr "子节点的垂直分隔量。"

#: doc/classes/AspectRatioContainer.xml:21
msgid ""
"The aspect ratio to enforce on child controls. This is the width divided by "
"the height. The ratio depends on the [member stretch_mode]."
msgstr ""

#: doc/classes/AspectRatioContainer.xml:24
#, fuzzy
msgid "The stretch mode used to align child controls."
msgstr "用于“呼叫方法”轨道的呼叫模式。"

#: doc/classes/AspectRatioContainer.xml:29
msgid ""
"The height of child controls is automatically adjusted based on the width of "
"the container."
msgstr ""

#: doc/classes/AspectRatioContainer.xml:32
#, fuzzy
msgid ""
"The width of child controls is automatically adjusted based on the height of "
"the container."
msgstr "如果为 [code]true[/code],控件将自动调整高度以适合其内容。"

#: doc/classes/AspectRatioContainer.xml:35
msgid ""
"The bounding rectangle of child controls is automatically adjusted to fit "
"inside the container while keeping the aspect ratio."
msgstr ""

#: doc/classes/AspectRatioContainer.xml:38
msgid ""
"The width and height of child controls is automatically adjusted to make "
"their bounding rectangle cover the entire area of the container while "
"keeping the aspect ratio.\n"
"When the bounding rectangle of child controls exceed the container's size "
"and [member Control.rect_clip_content] is enabled, this allows to show only "
"the container's area restricted by its own bounding rectangle."
msgstr ""

#: doc/classes/AspectRatioContainer.xml:42
#, fuzzy
msgid ""
"Aligns child controls with the beginning (left or top) of the container."
msgstr "将子项与容器的开端对齐。"

#: doc/classes/AspectRatioContainer.xml:45
#, fuzzy
msgid "Aligns child controls with the center of the container."
msgstr "将子项与容器的中心对齐。"

#: doc/classes/AspectRatioContainer.xml:48
#, fuzzy
msgid "Aligns child controls with the end (right or bottom) of the container."
msgstr "将子项与容器的末端对齐。"

#: doc/classes/AStar.xml:4
#, fuzzy
msgid ""
"An implementation of A* to find the shortest paths among connected points in "
"space."
msgstr "A *的一种实现,用于在空间中的连接点之间找到最短路径。"

#: doc/classes/AStar.xml:7
#, fuzzy
msgid ""
"A* (A star) is a computer algorithm that is widely 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 three-dimensional space and Euclidean "
"distances by default.\n"
"You must add points manually with [method add_point] and create segments "
"manually with [method connect_points]. Then 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]AStar[/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"
"[codeblock]\n"
"class MyAStar:\n"
"    extends AStar\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"
"[/codeblock]\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 star)是一个计算机算法,被广泛应用于寻路和图遍历,即在顶点(points)之"
"间绘制短路径的过程,通过给定的一组边(segments)。由于它的性能和精度,得到了"
"广泛的应用。Godot的A*算法实现默认使用三维空间中的点和欧氏距离。\n"
"你必须使用[method add_point]手动添加点并使用[method connect_points]手动创建"
"边。然后你可以使用[method are_points_connected]函数测试两个点之间是否存在路"
"径,使用[method get_id_path]获取包含索引的路径,或者使用[method "
"get_point_path]来获取包含真实坐标的路径。\n"
"使用非欧几里德距离也是可以的。为此,创建一个类继承[code]AStar[/code]并重写 "
"[method _compute_cost] 和 [method _estimate_cost]方法。两者都需要输入两个索引"
"并返回一个长度,如下面的例子所示。\n"
"[codeblock]\n"
"class MyAStar:\n"
"    extends AStar\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"
"[/codeblock]\n"
"[method _estimate_cost]应该返回距离的一个下界,即[code]_estimate_cost(u, v) "
"<= _compute_cost(u, v)[/code]。这是对算法的一个提示,因为自定义的"
"[code]_compute_cost[/code]可能计算量很大。如果不是这样,请让[method "
"_estimate_cost]返回与[method _compute_cost]相同的值,以便为算法提供最准确的信"
"息。"

#: doc/classes/AStar.xml:31
msgid ""
"Called when computing the cost between two connected points.\n"
"Note that this function is hidden in the default [code]AStar[/code] class."
msgstr ""
"计算两个连接点之间的成本时调用。\n"
"注意这个函数隐藏在默认的 [code]AStar[/code] 类中。"

#: doc/classes/AStar.xml:40
msgid ""
"Called when estimating the cost between a point and the path's ending "
"point.\n"
"Note that this function is hidden in the default [code]AStar[/code] class."
msgstr ""
"当估计一个点和路径终点之间的成本时调用。\n"
"注意这个函数隐藏在默认的 [code]AStar[/code] 类中。"

#: doc/classes/AStar.xml:50
#, fuzzy
msgid ""
"Adds a new point at the given position with the given identifier. The "
"[code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must "
"be 1 or larger.\n"
"The [code]weight_scale[/code] is multiplied by the result of [method "
"_compute_cost] when determining the overall cost of traveling across a "
"segment from a neighboring point to this point. Thus, all else being equal, "
"the algorithm prefers points with lower [code]weight_scale[/code]s to form a "
"path.\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with "
"weight_scale 4 and id 1\n"
"[/codeblock]\n"
"If there already exists a point for the given [code]id[/code], its position "
"and weight scale are updated to the given values."
msgstr ""
"在给定的位置添加一个新的点。算法优先选择[code]weight_scale[/code]较低的点来形"
"成路径。[code]id[/code]必须是0或更大,[code]weight_scale[/code]必须是1或更"
"大。\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with "
"weight_scale 4 and id 1\n"
"[/codeblock]\n"
"如果给定的[code]id[/code]已经存在一个点,那么它的位置和权重刻度将更新到给定的"
"值。"

#: doc/classes/AStar.xml:65
msgid ""
"Returns whether the two given points are directly connected by a segment. If "
"[code]bidirectional[/code] is [code]false[/code], returns whether movement "
"from [code]id[/code] to [code]to_id[/code] is possible through this segment."
msgstr ""
"返回两个给定点是否通过线段直接连接。如果[code] bidirectional [/code]is[code] "
"false [/code],则返回是否可以通过此段从[code] id [/code]to[code] to_id [/"
"code]进行移动。"

#: doc/classes/AStar.xml:71 doc/classes/AStar2D.xml:56
msgid "Clears all the points and segments."
msgstr "清除所有点和线段。"

#: doc/classes/AStar.xml:80
msgid ""
"Creates a segment between the given points. If [code]bidirectional[/code] is "
"[code]false[/code], only movement from [code]id[/code] to [code]to_id[/code] "
"is allowed, not the reverse direction.\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(1, 1, 0))\n"
"astar.add_point(2, Vector3(0, 5, 0))\n"
"astar.connect_points(1, 2, false)\n"
"[/codeblock]"
msgstr ""
"在给定点之间创建线段。如果[code]bidirectiona[/code]is[code]false[/code],则仅"
"允许从[code] id [/code]to[code] to_id [/code]的移动,而不允许反向移动。\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(1, 1, 0))\n"
"astar.add_point(2, Vector3(0, 5, 0))\n"
"astar.connect_points(1, 2, false)\n"
"[/codeblock]"

#: doc/classes/AStar.xml:95
msgid ""
"Deletes the segment between the given points. If [code]bidirectional[/code] "
"is [code]false[/code], only movement from [code]id[/code] to [code]to_id[/"
"code] is prevented, and a unidirectional segment possibly remains."
msgstr ""
"删除给定点之间的段。如果[code]bidirectional[/code]is[code]false[/code],则只"
"阻止从[code]id[/code]to[code]to_id[/code]的移动,可能会保留一个单向的线段。"

#: doc/classes/AStar.xml:101 doc/classes/AStar2D.xml:85
msgid "Returns the next available point ID with no point associated to it."
msgstr "返回没有关联的下一个可用点的ID。"

#: doc/classes/AStar.xml:109 doc/classes/AStar2D.xml:93
msgid ""
"Returns the ID of the closest point to [code]to_position[/code], optionally "
"taking disabled points into account. Returns [code]-1[/code] if there are no "
"points in the points pool.\n"
"[b]Note:[/b] If several points are the closest to [code]to_position[/code], "
"the one with the smallest ID will be returned, ensuring a deterministic "
"result."
msgstr ""
"返回离[code]to_position[/code]最近的点的ID,可以选择将禁用的点考虑在内。如果"
"点池中没有点,返回[code]-1[/code]。\n"
"[b]注意:[/b] 如果几个点都是离[code]to_position[/code]最近的点,将返回ID最小的"
"那个点,以保证结果的确定性。"

#: doc/classes/AStar.xml:117
msgid ""
"Returns the closest position to [code]to_position[/code] that resides inside "
"a segment between two connected points.\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(0, 0, 0))\n"
"astar.add_point(2, Vector3(0, 5, 0))\n"
"astar.connect_points(1, 2)\n"
"var res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Returns "
"(0, 3, 0)\n"
"[/codeblock]\n"
"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
"5[/code]. It's the closest position in the segment to the given point."
msgstr ""
"返回位于两个连接点之间的线段中离[code]to_position[/code]最近的位置。\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(0, 0, 0))\n"
"astar.add_point(2, Vector3(0, 5, 0))\n"
"astar.connect_points(1, 2)\n"
"var res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Returns "
"(0, 3, 0)\n"
"[/codeblock]\n"
"结果是在从[code]y=0[/code]to[code]y=5[/code]的线段中。它是该段中离给定点最近"
"的位置。"

#: doc/classes/AStar.xml:133
msgid ""
"Returns an array with the IDs of the points that form the path found by "
"AStar between the given points. The array is ordered from the starting point "
"to the ending point of the path.\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(0, 0, 0))\n"
"astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n"
"astar.add_point(3, Vector3(1, 1, 0))\n"
"astar.add_point(4, Vector3(2, 0, 0))\n"
"\n"
"astar.connect_points(1, 2, false)\n"
"astar.connect_points(2, 3, false)\n"
"astar.connect_points(4, 3, false)\n"
"astar.connect_points(1, 4, false)\n"
"\n"
"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
"[/codeblock]\n"
"If you change the 2nd point's weight to 3, then the result will be [code][1, "
"4, 3][/code] instead, because now even though the distance is longer, it's "
"\"easier\" to get through point 4 than through point 2."
msgstr ""
"返回一个数组,该数组中包含了AStar在给定点之间找到的路径的点的ID。数组从路径的"
"起始点到结束点排序。\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(0, 0, 0))\n"
"astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n"
"astar.add_point(3, Vector3(1, 1, 0))\n"
"astar.add_point(4, Vector3(2, 0, 0))\n"
"\n"
"astar.connect_points(1, 2, false)\n"
"astar.connect_points(2, 3, false)\n"
"astar.connect_points(4, 3, false)\n"
"astar.connect_points(1, 4, false)\n"
"\n"
"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
"[/codeblock]\n"
"如果你把第2点的权重改为3,那么结果就会变成[code][1,4,3][/code],因为现在虽"
"然距离长了,但通过第4点比通过第2点 \"容易\"。"

#: doc/classes/AStar.xml:154 doc/classes/AStar2D.xml:138
msgid ""
"Returns the capacity of the structure backing the points, useful in "
"conjunction with [code]reserve_space[/code]."
msgstr "返回支持点的结构的容量,与 [code]reserve_space[/code] 配合使用。"

#: doc/classes/AStar.xml:161
msgid ""
"Returns an array with the IDs of the points that form the connection with "
"the given point.\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(0, 0, 0))\n"
"astar.add_point(2, Vector3(0, 1, 0))\n"
"astar.add_point(3, Vector3(1, 1, 0))\n"
"astar.add_point(4, Vector3(2, 0, 0))\n"
"\n"
"astar.connect_points(1, 2, true)\n"
"astar.connect_points(1, 3, true)\n"
"\n"
"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
"[/codeblock]"
msgstr ""
"返回一个数组,其中包含与给定点形成连接的点的ID。\n"
"[codeblock]\n"
"var astar = AStar.new()\n"
"astar.add_point(1, Vector3(0, 0, 0))\n"
"astar.add_point(2, Vector3(0, 1, 0))\n"
"astar.add_point(3, Vector3(1, 1, 0))\n"
"astar.add_point(4, Vector3(2, 0, 0))\n"
"\n"
"astar.connect_points(1, 2, true)\n"
"astar.connect_points(1, 3, true)\n"
"\n"
"var neighbors = astar.get_point_connections(1) # Returns [2, 3] 。\n"
"[/codeblock]"

#: doc/classes/AStar.xml:179 doc/classes/AStar2D.xml:163
msgid "Returns the number of points currently in the points pool."
msgstr "返回当前积分池中的积分数量。"

#: doc/classes/AStar.xml:187
#, fuzzy
msgid ""
"Returns an array with the points that are in the path found by AStar between "
"the given points. The array is ordered from the starting point to the ending "
"point of the path.\n"
"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it "
"will return an empty [PoolVector3Array] and will print an error message."
msgstr ""
"返回一个数组,该数组包含了AStar在给定点之间找到的路径上的点。数组从路径的起始"
"点到结束点排序。"

#: doc/classes/AStar.xml:195 doc/classes/AStar2D.xml:179
msgid ""
"Returns the position of the point associated with the given [code]id[/code]."
msgstr "返回与给定[code]id[/code]相关联的点的位置。"

#: doc/classes/AStar.xml:202 doc/classes/AStar2D.xml:186
msgid ""
"Returns the weight scale of the point associated with the given [code]id[/"
"code]."
msgstr "返回与给定[code] id [/code]关联的点的权重比例。"

#: doc/classes/AStar.xml:208 doc/classes/AStar2D.xml:192
msgid "Returns an array of all points."
msgstr "返回所有点的数组。"

#: doc/classes/AStar.xml:215 doc/classes/AStar2D.xml:199
msgid ""
"Returns whether a point associated with the given [code]id[/code] exists."
msgstr "返回与给定[code]id[/code]相关联的点是否存在。"

#: doc/classes/AStar.xml:222 doc/classes/AStar2D.xml:206
msgid ""
"Returns whether a point is disabled or not for pathfinding. By default, all "
"points are enabled."
msgstr "返回是否禁用点以进行寻路。默认情况下,所有点均处于启用状态。"

#: doc/classes/AStar.xml:229 doc/classes/AStar2D.xml:213
msgid ""
"Removes the point associated with the given [code]id[/code] from the points "
"pool."
msgstr "从积分池中删除与给定[code] id [/code]关联的积分。"

#: doc/classes/AStar.xml:236 doc/classes/AStar2D.xml:220
msgid ""
"Reserves space internally for [code]num_nodes[/code] points, useful if "
"you're adding a known large number of points at once, for a grid for "
"instance. New capacity must be greater or equals to old capacity."
msgstr ""
"在内部为[code] num_nodes [/code]个点保留空间,如果您一次要添加一个已知的大量"
"点(例如对于一个网格),则很有用。新容量必须大于或等于旧容量。"

#: doc/classes/AStar.xml:244 doc/classes/AStar2D.xml:228
msgid ""
"Disables or enables the specified point for pathfinding. Useful for making a "
"temporary obstacle."
msgstr "禁用或启用指定点的寻路功能。用于制作临时障碍物。"

#: doc/classes/AStar.xml:252 doc/classes/AStar2D.xml:236
msgid ""
"Sets the [code]position[/code] for the point with the given [code]id[/code]."
msgstr "为具有给定[code] id [/code]的点设置[code]position[/code]。"

#: doc/classes/AStar.xml:260 doc/classes/AStar2D.xml:244
msgid ""
"Sets the [code]weight_scale[/code] for the point with the given [code]id[/"
"code]. The [code]weight_scale[/code] is multiplied by the result of [method "
"_compute_cost] when determining the overall cost of traveling across a "
"segment from a neighboring point to this point."
msgstr ""

#: doc/classes/AStar2D.xml:4
msgid "AStar class representation that uses 2D vectors as edges."
msgstr "使用二维向量作为边缘的AStar类表示。"

#: doc/classes/AStar2D.xml:7
msgid ""
"This is a wrapper for the [AStar] class which uses 2D vectors instead of 3D "
"vectors."
msgstr "这是[AStar]类的包装,该类使用2D向量而不是3D向量。"

#: doc/classes/AStar2D.xml:17
msgid ""
"Called when computing the cost between two connected points.\n"
"Note that this function is hidden in the default [code]AStar2D[/code] class."
msgstr ""
"计算两个连接点之间的成本时调用。\n"
"注意这个函数隐藏在默认的[code]AStar2D[/code]类中。"

#: doc/classes/AStar2D.xml:26
msgid ""
"Called when estimating the cost between a point and the path's ending "
"point.\n"
"Note that this function is hidden in the default [code]AStar2D[/code] class."
msgstr ""
"当估计一个点和路径终点之间的成本时调用。\n"
"请注意,这个函数隐藏在默认的 [code]AStar2D[/code] 类中。"

#: doc/classes/AStar2D.xml:36
#, fuzzy
msgid ""
"Adds a new point at the given position with the given identifier. The "
"[code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must "
"be 1 or larger.\n"
"The [code]weight_scale[/code] is multiplied by the result of [method "
"_compute_cost] when determining the overall cost of traveling across a "
"segment from a neighboring point to this point. Thus, all else being equal, "
"the algorithm prefers points with lower [code]weight_scale[/code]s to form a "
"path.\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with "
"weight_scale 4 and id 1\n"
"[/codeblock]\n"
"If there already exists a point for the given [code]id[/code], its position "
"and weight scale are updated to the given values."
msgstr ""
"在给定的位置添加一个新的点。算法优先选择[code]weight_scale[/code]较低的点来形"
"成路径。[code]id[/code]必须是0或更大,[code]weight_scale[/code]必须是1或更"
"大。\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with "
"weight_scale 4 and id 1\n"
"[/codeblock]\n"
"如果给定的[code]id[/code]已经存在一个点,那么它的位置和权重刻度将更新到给定的"
"值。"

#: doc/classes/AStar2D.xml:50
msgid "Returns whether there is a connection/segment between the given points."
msgstr "返回给定点之间是否有连接/分割。"

#: doc/classes/AStar2D.xml:65
msgid ""
"Creates a segment between the given points. If [code]bidirectional[/code] is "
"[code]false[/code], only movement from [code]id[/code] to [code]to_id[/code] "
"is allowed, not the reverse direction.\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(1, 1))\n"
"astar.add_point(2, Vector2(0, 5))\n"
"astar.connect_points(1, 2, false)\n"
"[/codeblock]"
msgstr ""
"在给定的点之间创建一个分段。如果[code]bidirectional[/code]is[code]false[/"
"code],则只允许从[code]id[/code]to[code]to_id[/code]之间的移动,不允许反方向"
"移动。\n"
"(codeblock)\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(1, 1))\n"
"astar.add_point(2, Vector2(0, 5))\n"
"astar.connect_points(1, 2, false)\n"
"[/codeblock]"

#: doc/classes/AStar2D.xml:79
msgid "Deletes the segment between the given points."
msgstr "删除给定点之间的线段。"

#: doc/classes/AStar2D.xml:101
msgid ""
"Returns the closest position to [code]to_position[/code] that resides inside "
"a segment between two connected points.\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(0, 0))\n"
"astar.add_point(2, Vector2(0, 5))\n"
"astar.connect_points(1, 2)\n"
"var res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Returns (0, "
"3)\n"
"[/codeblock]\n"
"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
"5[/code]. It's the closest position in the segment to the given point."
msgstr ""
"返回位于两个连接点之间的线段中离[code]to_position[/code]最近的位置。\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(0, 0))\n"
"astar.add_point(2, Vector2(0, 5))\n"
"astar.connect_points(1, 2)\n"
"var res = astar.get_closest_position_in_segment(Vector2(3, 3))# Returns (0, "
"3)\n"
"[/codeblock]\n"
"结果是在从[code]y=0[/code]to[code]y=5[/code]的线段中。它是该段中离给定点最近"
"的位置。"

#: doc/classes/AStar2D.xml:117
msgid ""
"Returns an array with the IDs of the points that form the path found by "
"AStar2D between the given points. The array is ordered from the starting "
"point to the ending point of the path.\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(0, 0))\n"
"astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n"
"astar.add_point(3, Vector2(1, 1))\n"
"astar.add_point(4, Vector2(2, 0))\n"
"\n"
"astar.connect_points(1, 2, false)\n"
"astar.connect_points(2, 3, false)\n"
"astar.connect_points(4, 3, false)\n"
"astar.connect_points(1, 4, false)\n"
"\n"
"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
"[/codeblock]\n"
"If you change the 2nd point's weight to 3, then the result will be [code][1, "
"4, 3][/code] instead, because now even though the distance is longer, it's "
"\"easier\" to get through point 4 than through point 2."
msgstr ""
"返回一个数组,该数组中包含了由AStar2D在给定点之间找到的路径的点的ID。数组从路"
"径的起点到终点排序。\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(0, 0))\n"
"astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n"
"astar.add_point(3, Vector2(1, 1))\n"
"astar.add_point(4, Vector2(2, 0))\n"
"\n"
"astar.connect_points(1, 2, false)\n"
"astar.connect_points(2, 3, false)\n"
"astar.connect_points(4, 3, false)\n"
"astar.connect_points(1, 4, false)\n"
"\n"
"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
"[/codeblock]\n"
"如果你把第2点的权重改为3,那么结果就会变成[code][1,4,3][/code],因为现在虽"
"然距离长了,但通过第4点比通过第2点 \"容易\"。"

#: doc/classes/AStar2D.xml:145
msgid ""
"Returns an array with the IDs of the points that form the connection with "
"the given point.\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(0, 0))\n"
"astar.add_point(2, Vector2(0, 1))\n"
"astar.add_point(3, Vector2(1, 1))\n"
"astar.add_point(4, Vector2(2, 0))\n"
"\n"
"astar.connect_points(1, 2, true)\n"
"astar.connect_points(1, 3, true)\n"
"\n"
"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
"[/codeblock]"
msgstr ""
"返回一个数组,其中包含与给定点形成连接的点的ID。\n"
"[codeblock]\n"
"var astar = AStar2D.new()\n"
"astar.add_point(1, Vector2(0, 0))\n"
"astar.add_point(2, Vector2(0, 1))\n"
"astar.add_point(3, Vector2(1, 1))\n"
"astar.add_point(4, Vector2(2, 0))\n"
"\n"
"astar.connect_points(1, 2, true)\n"
"astar.connect_points(1, 3, true)\n"
"\n"
"var neighbors = astar.get_point_connections(1) # Returns [2, 3] 。\n"
"[/codeblock]"

#: doc/classes/AStar2D.xml:171
#, fuzzy
msgid ""
"Returns an array with the points that are in the path found by AStar2D "
"between the given points. The array is ordered from the starting point to "
"the ending point of the path.\n"
"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it "
"will return an empty [PoolVector2Array] and will print an error message."
msgstr ""
"返回一个数组,该数组包含了AStar2D在给定点之间找到的路径中的点。数组从路径的起"
"始点到结束点排序。"

#: doc/classes/AtlasTexture.xml:4
msgid ""
"Crops out one part of a texture, such as a texture from a texture atlas."
msgstr ""

#: doc/classes/AtlasTexture.xml:7
msgid ""
"[Texture] resource that crops out one part of the [member atlas] texture, "
"defined by [member region]. The main use case is cropping out textures from "
"a texture atlas, which is a big texture file that packs multiple smaller "
"textures. Consists of a [Texture] for the [member atlas], a [member region] "
"that defines the area of [member atlas] to use, and a [member margin] that "
"defines the border width.\n"
"[AtlasTexture] cannot be used in an [AnimatedTexture], cannot be tiled in "
"nodes such as [TextureRect], and does not work properly if used inside of "
"other [AtlasTexture] resources. Multiple [AtlasTexture] resources can be "
"used to crop multiple textures from the atlas. Using a texture atlas helps "
"to optimize video memory costs and render calls compared to using multiple "
"small files.\n"
"[b]Note:[/b] AtlasTextures don't support repetition. The [constant Texture."
"FLAG_REPEAT] and [constant Texture.FLAG_MIRRORED_REPEAT] flags are ignored "
"when using an AtlasTexture."
msgstr ""

#: doc/classes/AtlasTexture.xml:17
#, fuzzy
msgid "The texture that contains the atlas. Can be any [Texture] subtype."
msgstr "包含图集的纹理。可以是任何 [Texture2D]子类型。"

#: doc/classes/AtlasTexture.xml:20
msgid ""
"If [code]true[/code], clips the area outside of the region to avoid bleeding "
"of the surrounding texture pixels."
msgstr "如果[code]true[/code],剪辑区域外的区域,以避免周围纹理像素的出血。"

#: doc/classes/AtlasTexture.xml:24
msgid ""
"The margin around the region. The [Rect2]'s [member Rect2.size] parameter "
"(\"w\" and \"h\" in the editor) resizes the texture so it fits within the "
"margin."
msgstr ""
"区域周围的边距。Rect2]的[member Rect2.size]参数(编辑器中的 \"w \"和 \"h\")"
"调整纹理的大小,使其适合于边距。"

#: doc/classes/AtlasTexture.xml:27
msgid "The AtlasTexture's used region."
msgstr "地图集的使用区域。"

#: doc/classes/AudioBusLayout.xml:4
msgid "Stores information about the audio buses."
msgstr "存储有关音频总线的信息。"

#: doc/classes/AudioBusLayout.xml:7
msgid ""
"Stores position, muting, solo, bypass, effects, effect position, volume, and "
"the connections between buses. See [AudioServer] for usage."
msgstr ""
"存储位置、静音、独奏、旁路、效果、效果位置、音量以及总线之间的连接。使用方法"
"参见 [AudioServer] 。"

#: doc/classes/AudioEffect.xml:4
msgid "Audio effect for audio."
msgstr "音频效果的音频。"

#: doc/classes/AudioEffect.xml:7
msgid ""
"Base resource for audio bus. Applies an audio effect on the bus that the "
"resource is applied on."
msgstr "音频总线的基础资源。在该资源所应用的总线上应用音频效果。"

#: doc/classes/AudioEffect.xml:10 doc/classes/AudioEffectRecord.xml:11
#: doc/classes/AudioServer.xml:12 doc/classes/AudioStream.xml:12
#: doc/classes/AudioStreamPlayer.xml:15
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/527"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/AudioEffectAmplify.xml:4
msgid ""
"Adds an amplifying audio effect to an audio bus.\n"
"Increases or decreases the volume of the selected audio bus."
msgstr ""
"给音频总线添加放大音频效果。\n"
"增加或减少所选音频总线的音量。"

#: doc/classes/AudioEffectAmplify.xml:8
msgid "Increases or decreases the volume being routed through the audio bus."
msgstr "增加或减少通过音频总线传送的音量。"

#: doc/classes/AudioEffectAmplify.xml:16
msgid ""
"Amount of amplification in decibels. Positive values make the sound louder, "
"negative values make it quieter. Value can range from -80 to 24."
msgstr ""
"以分贝为单位的放大量。正值使声音更响亮,负值使声音更安静。数值范围从-80到24。"

#: doc/classes/AudioEffectBandLimitFilter.xml:4
msgid "Adds a band limit filter to the audio bus."
msgstr "为音频总线添加一个带限滤波器。"

#: doc/classes/AudioEffectBandLimitFilter.xml:7
msgid ""
"Limits the frequencies in a range around the [member AudioEffectFilter."
"cutoff_hz] and allows frequencies outside of this range to pass."
msgstr ""
"限制[member AudioEffectFilter.cutoff_hz]周围范围内的频率,允许这个范围外的频"
"率通过。"

#: doc/classes/AudioEffectBandPassFilter.xml:4
msgid "Adds a band pass filter to the audio bus."
msgstr "为音频总线添加一个带通滤波器。"

#: doc/classes/AudioEffectBandPassFilter.xml:7
msgid ""
"Attenuates the frequencies inside of a range around the [member "
"AudioEffectFilter.cutoff_hz] and cuts frequencies outside of this band."
msgstr ""
"衰减[member AudioEffectFilter.cutoff_hz]周围范围内的频率,并切断这个频段之外"
"的频率。"

#: doc/classes/AudioEffectCapture.xml:4
msgid "Captures audio from an audio bus in real-time."
msgstr ""

#: doc/classes/AudioEffectCapture.xml:7
msgid ""
"AudioEffectCapture is an AudioEffect which copies all audio frames from the "
"attached audio effect bus into its internal ring buffer.\n"
"Application code should consume these audio frames from this ring buffer "
"using [method get_buffer] and process it as needed, for example to capture "
"data from a microphone, implement application defined effects, or to "
"transmit audio over the network."
msgstr ""

#: doc/classes/AudioEffectCapture.xml:17
#, fuzzy
msgid ""
"Returns [code]true[/code] if at least [code]frames[/code] audio frames are "
"available to read in the internal ring buffer."
msgstr ""
"如果给定[code]name[/code]的字体在这个[Control]节点中具有有效的覆盖,则返回"
"[code]true[/code]。"

#: doc/classes/AudioEffectCapture.xml:23
#, fuzzy
msgid "Clears the internal ring buffer."
msgstr "清除库。"

#: doc/classes/AudioEffectCapture.xml:30
msgid ""
"Gets the next [code]frames[/code] audio samples from the internal ring "
"buffer.\n"
"Returns a [PoolVector2Array] containing exactly [code]frames[/code] audio "
"samples if available, or an empty [PoolVector2Array] if insufficient data "
"was available."
msgstr ""

#: doc/classes/AudioEffectCapture.xml:37
#, fuzzy
msgid "Returns the total size of the internal ring buffer in frames."
msgstr "返回文件的大小,以字节(bytes)形式。"

#: doc/classes/AudioEffectCapture.xml:43
#, fuzzy
msgid ""
"Returns the number of audio frames discarded from the audio bus due to full "
"buffer."
msgstr "返回这个目录的子目录的数量。"

#: doc/classes/AudioEffectCapture.xml:49
#, fuzzy
msgid ""
"Returns the number of frames available to read using [method get_buffer]."
msgstr "返回环形缓冲区中当前可用的数据包数。"

#: doc/classes/AudioEffectCapture.xml:55
#, fuzzy
msgid "Returns the number of audio frames inserted from the audio bus."
msgstr "返回动画中的帧数。"

#: doc/classes/AudioEffectCapture.xml:61
msgid ""
"Length of the internal ring buffer, in seconds. Setting the buffer length "
"will have no effect if already initialized."
msgstr ""

#: doc/classes/AudioEffectChorus.xml:4
msgid "Adds a chorus audio effect."
msgstr "添加合唱音频效果。"

#: doc/classes/AudioEffectChorus.xml:7
msgid ""
"Adds a chorus audio effect. The effect applies a filter with voices to "
"duplicate the audio source and manipulate it through the filter."
msgstr "添加一个合唱音频效果。该效果复制音频源,并应用声音滤波器进行操作。"

#: doc/classes/AudioEffectChorus.xml:93
msgid "The effect's raw signal."
msgstr "效果的原始信号。"

#: doc/classes/AudioEffectChorus.xml:96 doc/classes/AudioEffectChorus.xml:114
#: doc/classes/AudioEffectChorus.xml:132 doc/classes/AudioEffectChorus.xml:150
msgid "The voice's cutoff frequency."
msgstr "声音的截止频率。"

#: doc/classes/AudioEffectChorus.xml:99 doc/classes/AudioEffectChorus.xml:117
#: doc/classes/AudioEffectChorus.xml:135 doc/classes/AudioEffectChorus.xml:153
msgid "The voice's signal delay."
msgstr "声音的信号延迟。"

#: doc/classes/AudioEffectChorus.xml:102 doc/classes/AudioEffectChorus.xml:120
#: doc/classes/AudioEffectChorus.xml:138 doc/classes/AudioEffectChorus.xml:156
msgid "The voice filter's depth."
msgstr "声音滤镜的深度。"

#: doc/classes/AudioEffectChorus.xml:105 doc/classes/AudioEffectChorus.xml:123
#: doc/classes/AudioEffectChorus.xml:141 doc/classes/AudioEffectChorus.xml:159
msgid "The voice's volume."
msgstr "声音的音量。"

#: doc/classes/AudioEffectChorus.xml:108 doc/classes/AudioEffectChorus.xml:126
#: doc/classes/AudioEffectChorus.xml:144 doc/classes/AudioEffectChorus.xml:162
msgid "The voice's pan level."
msgstr "声音的声相级别。"

#: doc/classes/AudioEffectChorus.xml:111 doc/classes/AudioEffectChorus.xml:129
#: doc/classes/AudioEffectChorus.xml:147 doc/classes/AudioEffectChorus.xml:165
msgid "The voice's filter rate."
msgstr "声音过滤比率。"

#: doc/classes/AudioEffectChorus.xml:168
msgid "The amount of voices in the effect."
msgstr "效果中的声音数量。"

#: doc/classes/AudioEffectChorus.xml:171
msgid "The effect's processed signal."
msgstr "效果的处理信号。"

#: doc/classes/AudioEffectCompressor.xml:4
msgid ""
"Adds a compressor audio effect to an audio bus.\n"
"Reduces sounds that exceed a certain threshold level, smooths out the "
"dynamics and increases the overall volume."
msgstr ""
"为音频总线添加压缩音频效果。\n"
"减少超过一定阈值水平的声音,平滑动态,增加整体音量。"

#: doc/classes/AudioEffectCompressor.xml:8
msgid ""
"Dynamic range compressor reduces the level of the sound when the amplitude "
"goes over a certain threshold in Decibels. One of the main uses of a "
"compressor is to increase the dynamic range by clipping as little as "
"possible (when sound goes over 0dB).\n"
"Compressor has many uses in the mix:\n"
"- In the Master bus to compress the whole output (although an "
"[AudioEffectLimiter] is probably better).\n"
"- In voice channels to ensure they sound as balanced as possible.\n"
"- Sidechained. This can reduce the sound level sidechained with another "
"audio bus for threshold detection. This technique is common in video game "
"mixing to the level of music and SFX while voices are being heard.\n"
"- Accentuates transients by using a wider attack, making effects sound more "
"punchy."
msgstr ""
"动态范围压缩器在振幅超过一定的阈值(以分贝为单位)时,降低声音的电平。压缩器"
"的主要用途之一是通过尽可能少的削波(当声音超过0dB时)来增加动态范围。\n"
"压缩器在混音中的用途很多。\n"
"- 在主总线上压缩整个输出(虽然[AudioEffectLimiter]可能更好些)。\n"
"- 在声音通道中,以确保它们听起来尽可能的平衡。\n"
"- 侧链。这可以降低与另一条音频总线侧链的声音级别,以进行阈值检测。这种技术在"
"视频游戏混音中很常见,以音乐和SFX的级别,从而声音被听到。\n"
"- 通过使用更宽的冲攻来突出瞬态,使效果听起来更有冲击力。"

#: doc/classes/AudioEffectCompressor.xml:21
msgid ""
"Compressor's reaction time when the signal exceeds the threshold, in "
"microseconds. Value can range from 20 to 2000."
msgstr "当信号超过阈值时,压缩器的反应时间,以微秒为单位。数值范围从20到2000。"

#: doc/classes/AudioEffectCompressor.xml:24
msgid "Gain applied to the output signal."
msgstr "应用于输出信号的增益。"

#: doc/classes/AudioEffectCompressor.xml:27
msgid ""
"Balance between original signal and effect signal. Value can range from 0 "
"(totally dry) to 1 (totally wet)."
msgstr "原始信号和效果信号之间的平衡。数值范围从0(完全干燥)到1(完全浸润)。"

#: doc/classes/AudioEffectCompressor.xml:30
msgid ""
"Amount of compression applied to the audio once it passes the threshold "
"level. The higher the ratio, the more the loud parts of the audio will be "
"compressed. Value can range from 1 to 48."
msgstr ""
"音频通过阈值级别后,应用于音频的压缩量。比率越高,音频的大声部分将被压缩。数"
"值范围从1到48。"

#: doc/classes/AudioEffectCompressor.xml:33
msgid ""
"Compressor's delay time to stop reducing the signal after the signal level "
"falls below the threshold, in milliseconds. Value can range from 20 to 2000."
msgstr ""
"压缩器在信号电平低于阈值后,停止降低信号的延迟时间,以毫秒为单位。数值范围为"
"20至2000。"

#: doc/classes/AudioEffectCompressor.xml:36
msgid "Reduce the sound level using another audio bus for threshold detection."
msgstr "使用另一条音频总线进行阈值检测,降低声音级别。"

#: doc/classes/AudioEffectCompressor.xml:39
msgid ""
"The level above which compression is applied to the audio. Value can range "
"from -60 to 0."
msgstr "对音频进行压缩的级别。数值范围从-60到0。"

#: doc/classes/AudioEffectDelay.xml:4
msgid ""
"Adds a delay audio effect to an audio bus. Plays input signal back after a "
"period of time.\n"
"Two tap delay and feedback options."
msgstr ""
"为音频总线添加延迟音频效果。在一段时间后回放输入信号。\n"
"两个阀值延迟和反馈选项。"

#: doc/classes/AudioEffectDelay.xml:8
msgid ""
"Plays input signal back after a period of time. The delayed signal may be "
"played back multiple times to create the sound of a repeating, decaying "
"echo. Delay effects range from a subtle echo effect to a pronounced blending "
"of previous sounds with new sounds."
msgstr ""
"在一段时间后回放输入信号。延迟的信号可以多次回放,以产生重复、衰减的回声。延"
"迟效果的范围是从微弱回声效果到明显的以前声音和新声音的混合。"

#: doc/classes/AudioEffectDelay.xml:16
msgid ""
"Output percent of original sound. At 0, only delayed sounds are output. "
"Value can range from 0 to 1."
msgstr "原始声音的输出百分比。0时,只输出延迟的声音。值的范围为0~1。"

#: doc/classes/AudioEffectDelay.xml:19
msgid "If [code]true[/code], feedback is enabled."
msgstr "如果[code]true[/code],则启用反馈。"

#: doc/classes/AudioEffectDelay.xml:22
msgid "Feedback delay time in milliseconds."
msgstr "反馈延迟时间,单位为毫秒。"

#: doc/classes/AudioEffectDelay.xml:25 doc/classes/AudioEffectDelay.xml:37
msgid "Sound level for [code]tap1[/code]."
msgstr "[code]tap1[/code]的声音级别。"

#: doc/classes/AudioEffectDelay.xml:28
msgid ""
"Low-pass filter for feedback, in Hz. Frequencies below this value are "
"filtered out of the source signal."
msgstr "反馈的低通滤波器,单位为Hz。低于此值的频率会被源信号过滤掉。"

#: doc/classes/AudioEffectDelay.xml:31
msgid "If [code]true[/code], [code]tap1[/code] will be enabled."
msgstr "如果[code]true[/code],将启用[code]tap1[/code]。"

#: doc/classes/AudioEffectDelay.xml:34
msgid "[code]tap1[/code] delay time in milliseconds."
msgstr "[code]tap1[/code] 延时,单位为毫秒。"

#: doc/classes/AudioEffectDelay.xml:40
msgid ""
"Pan position for [code]tap1[/code]. Value can range from -1 (fully left) to "
"1 (fully right)."
msgstr "[code]tap1[/code]的平移位置。值的范围为-1(完全向左)至1(完全向右)。"

#: doc/classes/AudioEffectDelay.xml:43
msgid "If [code]true[/code], [code]tap2[/code] will be enabled."
msgstr "如果[code]true[/code],将启用[code]tap2[/code]。"

#: doc/classes/AudioEffectDelay.xml:46
msgid "[b]Tap2[/b] delay time in milliseconds."
msgstr "[b]Tap2[/b]延迟时间,单位为毫秒。"

#: doc/classes/AudioEffectDelay.xml:49
msgid "Sound level for [code]tap2[/code]."
msgstr "[code]tap2[/code]的声音级别。"

#: doc/classes/AudioEffectDelay.xml:52
msgid ""
"Pan position for [code]tap2[/code]. Value can range from -1 (fully left) to "
"1 (fully right)."
msgstr "[code]tap2[/code]的平移位置。值的范围为-1(完全向左)至1(完全向右)。"

#: doc/classes/AudioEffectDistortion.xml:4
#, fuzzy
msgid ""
"Adds a distortion audio effect to an Audio bus.\n"
"Modify the sound to make it distorted."
msgstr ""
"为音频总线添加失真音频效果。\n"
"修改声音,使其失真。"

#: doc/classes/AudioEffectDistortion.xml:8
#, fuzzy
msgid ""
"Different types are available: clip, tan, lo-fi (bit crushing), overdrive, "
"or waveshape.\n"
"By distorting the waveform the frequency content change, which will often "
"make the sound \"crunchy\" or \"abrasive\". For games, it can simulate sound "
"coming from some saturated device or speaker very efficiently."
msgstr ""
"修改声音并使其混淆。可用的类型有: clip, tan, lo-fi (bit crushing), "
"overdrive, or waveshape。\n"
"通过使波形扭曲,频率内容会发生变化,这通常会使声音“嘎吱”或“磨砂”。对于游戏,"
"它可以非常有效地模拟来自某些饱和设备或扬声器的声音。"

#: doc/classes/AudioEffectDistortion.xml:12
#: doc/classes/AudioEffectFilter.xml:10
#: doc/classes/AudioEffectHighShelfFilter.xml:9
#: doc/classes/AudioEffectLowShelfFilter.xml:9 doc/classes/AudioServer.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/audio/audio_buses.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/audio/audio_buses.html"

#: doc/classes/AudioEffectDistortion.xml:18
msgid "Distortion power. Value can range from 0 to 1."
msgstr "失真度。值的范围可在0到1之间。"

#: doc/classes/AudioEffectDistortion.xml:21
msgid ""
"High-pass filter, in Hz. Frequencies higher than this value will not be "
"affected by the distortion. Value can range from 1 to 20000."
msgstr ""
"高通滤波器,单位为Hz。高于此值的频率不会受到失真的影响。该值的范围为1至"
"20000。"

#: doc/classes/AudioEffectDistortion.xml:24
msgid "Distortion type."
msgstr "失真类型."

#: doc/classes/AudioEffectDistortion.xml:27
msgid ""
"Increases or decreases the volume after the effect. Value can range from -80 "
"to 24."
msgstr "增加或减少效果后的音量。数值范围从-80到24。"

#: doc/classes/AudioEffectDistortion.xml:30
msgid ""
"Increases or decreases the volume before the effect. Value can range from "
"-60 to 60."
msgstr "增加或减少效果前的音量。值的范围为-60至60。"

#: doc/classes/AudioEffectDistortion.xml:35
msgid ""
"Digital distortion effect which cuts off peaks at the top and bottom of the "
"waveform."
msgstr "数字失真效果,可以切断波形顶部和底部的峰值。"

#: doc/classes/AudioEffectDistortion.xml:40
msgid ""
"Low-resolution digital distortion effect. You can use it to emulate the "
"sound of early digital audio devices."
msgstr "低分辨率的数字失真效果。你可以用它来模拟早期数字音频设备的声音。"

#: doc/classes/AudioEffectDistortion.xml:43
msgid ""
"Emulates the warm distortion produced by a field effect transistor, which is "
"commonly used in solid-state musical instrument amplifiers."
msgstr "模仿场效应晶体管产生的暖失真,场效应晶体管常用于固态乐器放大器。"

#: doc/classes/AudioEffectDistortion.xml:46
msgid ""
"Waveshaper distortions are used mainly by electronic musicians to achieve an "
"extra-abrasive sound."
msgstr "波形变形失真主要是电子音乐人为了获得格外粗糙的声音而使用的。"

#: doc/classes/AudioEffectEQ.xml:4
msgid ""
"Base class for audio equalizers. Gives you control over frequencies.\n"
"Use it to create a custom equalizer if [AudioEffectEQ6], [AudioEffectEQ10] "
"or [AudioEffectEQ21] don't fit your needs."
msgstr ""
"音频均衡器的基础类。让你可以控制频率。\n"
"如果 [AudioEffectEQ6], [AudioEffectEQ10] 或 [AudioEffectEQ21]不符合您的需求,"
"请使用它来创建一个自定义均衡器。"

#: doc/classes/AudioEffectEQ.xml:8
msgid ""
"AudioEffectEQ gives you control over frequencies. Use it to compensate for "
"existing deficiencies in audio. AudioEffectEQs are useful on the Master bus "
"to completely master a mix and give it more character. They are also useful "
"when a game is run on a mobile device, to adjust the mix to that kind of "
"speakers (it can be added but disabled when headphones are plugged)."
msgstr ""
"AudioEffectEQ让你控制频率。用它来弥补音频中不足之处。AudioEffectEQ在Master总"
"线上很有用,可以完全掌控一个混音,并赋予它更多的特性。当游戏在移动设备上运行"
"时,它们也很有用,可以根据那种扬声器来调整混音(可以被添加,但在插入耳机时禁"
"用)。"

#: doc/classes/AudioEffectEQ.xml:16
msgid "Returns the number of bands of the equalizer."
msgstr "返回均衡器的频段数。"

#: doc/classes/AudioEffectEQ.xml:23
msgid "Returns the band's gain at the specified index, in dB."
msgstr "返回指定索引处的波段增益,单位为dB。"

#: doc/classes/AudioEffectEQ.xml:31
msgid "Sets band's gain at the specified index, in dB."
msgstr "设置指定索引处的波段增益,单位为dB。"

#: doc/classes/AudioEffectEQ10.xml:4
msgid ""
"Adds a 10-band equalizer audio effect to an Audio bus. Gives you control "
"over frequencies from 31 Hz to 16000 Hz.\n"
"Each frequency can be modulated between -60/+24 dB."
msgstr ""
"为音频总线添加10段均衡器音频效果。让你控制31Hz到16000Hz的频率。\n"
"每个频率可以在-60/+24dB之间进行调制。"

#: doc/classes/AudioEffectEQ10.xml:8
msgid ""
"Frequency bands:\n"
"Band 1: 31 Hz\n"
"Band 2: 62 Hz\n"
"Band 3: 125 Hz\n"
"Band 4: 250 Hz\n"
"Band 5: 500 Hz\n"
"Band 6: 1000 Hz\n"
"Band 7: 2000 Hz\n"
"Band 8: 4000 Hz\n"
"Band 9: 8000 Hz\n"
"Band 10: 16000 Hz\n"
"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ21]."
msgstr ""
"频段:频段1:31赫兹\n"
"频段1:31赫兹\n"
"频段2:62赫兹\n"
"频段3:125赫兹\n"
"频段4:250赫兹\n"
"频段5:500赫兹\n"
"频段6:1000赫兹\n"
"频段7:2000赫兹\n"
"频段8:4000赫兹\n"
"频段9:8000赫兹\n"
"频段10:16000赫兹\n"
"另见[AudioEffectEQ]、[AudioEffectEQ6]、[AudioEffectEQ21]。"

#: doc/classes/AudioEffectEQ21.xml:4
msgid ""
"Adds a 21-band equalizer audio effect to an Audio bus. Gives you control "
"over frequencies from 22 Hz to 22000 Hz.\n"
"Each frequency can be modulated between -60/+24 dB."
msgstr ""
"为音频总线添加21段均衡器音频效果。让你控制22Hz到22000Hz的频率。\n"
"每个频率可以在-60/+24dB之间进行调制。"

#: doc/classes/AudioEffectEQ21.xml:8
msgid ""
"Frequency bands:\n"
"Band 1: 22 Hz\n"
"Band 2: 32 Hz\n"
"Band 3: 44 Hz\n"
"Band 4: 63 Hz\n"
"Band 5: 90 Hz\n"
"Band 6: 125 Hz\n"
"Band 7: 175 Hz\n"
"Band 8: 250 Hz\n"
"Band 9: 350 Hz\n"
"Band 10: 500 Hz\n"
"Band 11: 700 Hz\n"
"Band 12: 1000 Hz\n"
"Band 13: 1400 Hz\n"
"Band 14: 2000 Hz\n"
"Band 15: 2800 Hz\n"
"Band 16: 4000 Hz\n"
"Band 17: 5600 Hz\n"
"Band 18: 8000 Hz\n"
"Band 19: 11000 Hz\n"
"Band 20: 16000 Hz\n"
"Band 21: 22000 Hz\n"
"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]."
msgstr ""
"频段:频段1:22赫兹\n"
"频段1:22赫兹\n"
"频段2:32赫兹\n"
"频段3:44赫兹\n"
"频段4:63赫兹\n"
"频段5:90赫兹\n"
"频段6:125赫兹\n"
"频段7:175赫兹\n"
"频段8:250赫兹\n"
"频段9:350赫兹\n"
"频段10:500赫兹\n"
"频段11:700赫兹\n"
"频段12:1000赫兹\n"
"频段13:1400赫兹\n"
"频段14:2000赫兹\n"
"频段15:2800赫兹\n"
"频段16:4000赫兹\n"
"频段17:5600赫兹\n"
"频段18:8000赫兹\n"
"频段19:11000赫兹\n"
"频段20:16000赫兹\n"
"频段21:22000赫兹\n"
"另见[AudioEffectEQ]、[AudioEffectEQ6]、[AudioEffectEQ10]。"

#: doc/classes/AudioEffectEQ6.xml:4
msgid ""
"Adds a 6-band equalizer audio effect to an Audio bus. Gives you control over "
"frequencies from 32 Hz to 10000 Hz.\n"
"Each frequency can be modulated between -60/+24 dB."
msgstr ""
"为音频总线添加6段均衡器音频效果。让你控制32Hz到10000Hz的频率。\n"
"每个频率可以在-60/+24dB之间进行调制。"

#: doc/classes/AudioEffectEQ6.xml:8
msgid ""
"Frequency bands:\n"
"Band 1: 32 Hz\n"
"Band 2: 100 Hz\n"
"Band 3: 320 Hz\n"
"Band 4: 1000 Hz\n"
"Band 5: 3200 Hz\n"
"Band 6: 10000 Hz\n"
"See also [AudioEffectEQ], [AudioEffectEQ10], [AudioEffectEQ21]."
msgstr ""
"频段:频段1:32赫兹\n"
"频段1:32赫兹\n"
"频段2:100赫兹\n"
"频段3:320赫兹\n"
"频段4:1000赫兹\n"
"频段5:3200赫兹\n"
"频段6:10000赫兹\n"
"另请参阅[AudioEffectEQ]、[AudioEffectEQ10]、[AudioEffectEQ21]。"

#: doc/classes/AudioEffectFilter.xml:4
msgid "Adds a filter to the audio bus."
msgstr "为音频总线添加一个滤波器。"

#: doc/classes/AudioEffectFilter.xml:7
msgid "Allows frequencies other than the [member cutoff_hz] to pass."
msgstr "允许通过[member cutoff_hz]以外的频率。"

#: doc/classes/AudioEffectFilter.xml:16
msgid "Threshold frequency for the filter, in Hz."
msgstr "滤波器的阈值频率,单位为Hz。"

#: doc/classes/AudioEffectFilter.xml:21
msgid "Gain amount of the frequencies after the filter."
msgstr "滤波后频率的增益量。"

#: doc/classes/AudioEffectFilter.xml:24
#, fuzzy
msgid "Amount of boost in the frequency range near the cutoff frequency."
msgstr "在截止频率附近泛音的提升量。"

#: doc/classes/AudioEffectHighPassFilter.xml:4
msgid "Adds a high-pass filter to the Audio Bus."
msgstr "为音频总线添加高通滤波器。"

#: doc/classes/AudioEffectHighPassFilter.xml:7
msgid ""
"Cuts frequencies lower than the [member AudioEffectFilter.cutoff_hz] and "
"allows higher frequencies to pass."
msgstr ""
"削减比[member AudioEffectFilter.cutoff_hz]更低的频率,允许更高的频率通过。"

#: doc/classes/AudioEffectHighShelfFilter.xml:4
#, fuzzy
msgid "Reduces all frequencies above the [member AudioEffectFilter.cutoff_hz]."
msgstr ""
"削减比[member AudioEffectFilter.cutoff_hz]更低的频率,允许更高的频率通过。"

#: doc/classes/AudioEffectLimiter.xml:4
msgid "Adds a soft-clip limiter audio effect to an Audio bus."
msgstr "为音频总线添加一个软剪辑限制器音频效果。"

#: doc/classes/AudioEffectLimiter.xml:7
msgid ""
"A limiter is similar to a compressor, but it's less flexible and designed to "
"disallow sound going over a given dB threshold. Adding one in the Master bus "
"is always recommended to reduce the effects of clipping.\n"
"Soft clipping starts to reduce the peaks a little below the threshold level "
"and progressively increases its effect as the input level increases such "
"that the threshold is never exceeded."
msgstr ""
"限制器类似于压缩器,但灵活性较差,并且设计为不允许声音超过给定的dB阈值。始终"
"建议在主总线中添加一个以减少削波的影响。\n"
"软削波开始将峰值降低到略低于阈值水平,并随着输入水平的增加而逐渐增强其效果,"
"从而永不超过阈值。"

#: doc/classes/AudioEffectLimiter.xml:16
msgid ""
"The waveform's maximum allowed value, in decibels. Value can range from -20 "
"to -0.1."
msgstr "波形的最大允许值,单位是分贝。数值范围从-20到-0.1。"

#: doc/classes/AudioEffectLimiter.xml:19
msgid ""
"Applies a gain to the limited waves, in decibels. Value can range from 0 to "
"6."
msgstr "将增益应用于有限的波,以分贝为单位。取值范围是0到6。"

#: doc/classes/AudioEffectLimiter.xml:24
msgid ""
"Threshold from which the limiter begins to be active, in decibels. Value can "
"range from -30 to 0."
msgstr "限制器开始生效的阈值,以分贝为单位。值的范围可以从-30到0。"

#: doc/classes/AudioEffectLowPassFilter.xml:4
msgid "Adds a low-pass filter to the Audio bus."
msgstr "向音频总线添加一个低通滤波器。"

#: doc/classes/AudioEffectLowPassFilter.xml:7
msgid ""
"Cuts frequencies higher than the [member AudioEffectFilter.cutoff_hz] and "
"allows lower frequencies to pass."
msgstr ""
"削减比[member AudioEffectFilter.cutoff_hz]更低的频率,允许更高的频率通过。"

#: doc/classes/AudioEffectLowShelfFilter.xml:4
#, fuzzy
msgid "Reduces all frequencies below the [member AudioEffectFilter.cutoff_hz]."
msgstr ""
"削减比[member AudioEffectFilter.cutoff_hz]更低的频率,允许更高的频率通过。"

#: doc/classes/AudioEffectNotchFilter.xml:4
msgid "Adds a notch filter to the Audio bus."
msgstr "在音频总线上添加一个陷波滤波器。"

#: doc/classes/AudioEffectNotchFilter.xml:7
msgid ""
"Attenuates frequencies in a narrow band around the [member AudioEffectFilter."
"cutoff_hz] and cuts frequencies outside of this range."
msgstr ""
"衰减[member AudioEffectFilter.cutoff_hz]周围窄带的频率,并切断这个范围以外的"
"频率。"

#: doc/classes/AudioEffectPanner.xml:4
msgid "Adds a panner audio effect to an Audio bus. Pans sound left or right."
msgstr "向音频总线添加声相器音频效果。左右平移声音。"

#: doc/classes/AudioEffectPanner.xml:7
msgid ""
"Determines how much of an audio signal is sent to the left and right buses."
msgstr "决定向左右总线发送的音频信号量。"

#: doc/classes/AudioEffectPanner.xml:15
msgid "Pan position. Value can range from -1 (fully left) to 1 (fully right)."
msgstr "平移位置。值的范围可以从-1(完全左)到1(完全右)。"

#: doc/classes/AudioEffectPhaser.xml:4
msgid ""
"Adds a phaser audio effect to an Audio bus.\n"
"Combines the original signal with a copy that is slightly out of phase with "
"the original."
msgstr ""
"为音频总线添加相移音频效果。\n"
"将原始信号与原始信号稍有相位偏差的副本相结合。"

#: doc/classes/AudioEffectPhaser.xml:8
msgid ""
"Combines phase-shifted signals with the original signal. The movement of the "
"phase-shifted signals is controlled using a low-frequency oscillator."
msgstr "将相移信号与原始信号相结合。使用低频振荡器控制相移信号的移动。"

#: doc/classes/AudioEffectPhaser.xml:16
msgid ""
"Governs how high the filter frequencies sweep. Low value will primarily "
"affect bass frequencies. High value can sweep high into the treble. Value "
"can range from 0.1 to 4."
msgstr ""
"控制滤波器频率扫描的频率。较低的值将主要影响低音频率。高值可以推高高音。值的"
"范围可以从0.1到4。"

#: doc/classes/AudioEffectPhaser.xml:19
msgid "Output percent of modified sound. Value can range from 0.1 to 0.9."
msgstr "修改后声音的输出百分比。数值范围从0.1到0.9。"

#: doc/classes/AudioEffectPhaser.xml:22
msgid ""
"Determines the maximum frequency affected by the LFO modulations, in Hz. "
"Value can range from 10 to 10000."
msgstr "决定受 LFO 调制影响的最大频率,单位为 Hz。数值范围为10-10000。"

#: doc/classes/AudioEffectPhaser.xml:25
msgid ""
"Determines the minimum frequency affected by the LFO modulations, in Hz. "
"Value can range from 10 to 10000."
msgstr "决定受 LFO 调制影响的最小频率,单位为 Hz。数值范围为10-10000。"

#: doc/classes/AudioEffectPhaser.xml:28
msgid ""
"Adjusts the rate in Hz at which the effect sweeps up and down across the "
"frequency range."
msgstr "以Hz为单位调整效果在整个频率范围内上下扫描的速度。"

#: doc/classes/AudioEffectPitchShift.xml:4
msgid ""
"Adds a pitch-shifting audio effect to an Audio bus.\n"
"Raises or lowers the pitch of original sound."
msgstr ""
"为音频总线添加音调变换的音频效果。\n"
"升高或降低原始声音的音调。"

#: doc/classes/AudioEffectPitchShift.xml:8
msgid ""
"Allows modulation of pitch independently of tempo. All frequencies can be "
"increased/decreased with minimal effect on transients."
msgstr "允许独立于速度调制音调。所有频率都可以增加或减少,而对瞬态的影响最小。"

#: doc/classes/AudioEffectPitchShift.xml:16
msgid ""
"The size of the [url=https://en.wikipedia.org/wiki/"
"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
"smooth out the effect over time, but have greater latency. The effects of "
"this higher latency are especially noticeable on sounds that have sudden "
"amplitude changes."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:19
msgid ""
"The oversampling factor to use. Higher values result in better quality, but "
"are more demanding on the CPU and may cause audio cracking if the CPU can't "
"keep up."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:22
msgid ""
"The pitch scale to use. [code]1.0[/code] is the default pitch and plays "
"sounds unaltered. [member pitch_scale] can range from [code]0.0[/code] "
"(infinitely low pitch, inaudible) to [code]16[/code] (16 times higher than "
"the initial pitch)."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:27
#: doc/classes/AudioEffectSpectrumAnalyzer.xml:28
msgid ""
"Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, "
"but least stable over time."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:30
#: doc/classes/AudioEffectSpectrumAnalyzer.xml:31
msgid ""
"Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but "
"less stable over time."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:33
#: doc/classes/AudioEffectSpectrumAnalyzer.xml:34
msgid ""
"Use a buffer of 1024 samples for the Fast Fourier transform. This is a "
"compromise between latency and stability over time."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:36
#: doc/classes/AudioEffectSpectrumAnalyzer.xml:37
msgid ""
"Use a buffer of 2048 samples for the Fast Fourier transform. High latency, "
"but stable over time."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:39
#: doc/classes/AudioEffectSpectrumAnalyzer.xml:40
msgid ""
"Use a buffer of 4096 samples for the Fast Fourier transform. Highest "
"latency, but most stable over time."
msgstr ""

#: doc/classes/AudioEffectPitchShift.xml:42
#: doc/classes/AudioEffectSpectrumAnalyzer.xml:43
msgid "Represents the size of the [enum FFT_Size] enum."
msgstr "表示[enum FFT_Size]枚举的大小。"

#: doc/classes/AudioEffectRecord.xml:4
msgid "Audio effect used for recording sound from a microphone."
msgstr "用于录制来自麦克风的声音的音频效果。"

#: doc/classes/AudioEffectRecord.xml:7
msgid ""
"Allows the user to record sound from a microphone. It sets and gets the "
"format in which the audio file will be recorded (8-bit, 16-bit, or "
"compressed). It checks whether or not the recording is active, and if it is, "
"records the sound. It then returns the recorded sample."
msgstr ""
"允许用户录制来自麦克风的声音。它设置和获取记录音频文件的格式(8位,16位或压"
"缩)。它检查录音是否处于活动状态,如果是,则记录声音。然后返回记录的样本。"

#: doc/classes/AudioEffectRecord.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/audio/"
"recording_with_microphone.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/audio/"
"recording_with_microphone.html"

#: doc/classes/AudioEffectRecord.xml:17
msgid "Returns the recorded sample."
msgstr "返回录音的样本。"

#: doc/classes/AudioEffectRecord.xml:23
msgid "Returns whether the recording is active or not."
msgstr "返回录音是否处于激活状态。"

#: doc/classes/AudioEffectRecord.xml:30
msgid ""
"If [code]true[/code], the sound will be recorded. Note that restarting the "
"recording will remove the previously recorded sample."
msgstr ""
"如果[code]true[/code],将录制声音。请注意,重新开始录音将删除先前录音的样本。"

#: doc/classes/AudioEffectRecord.xml:36
msgid ""
"Specifies the format in which the sample will be recorded. See [enum "
"AudioStreamSample.Format] for available formats."
msgstr ""
"指定录音样本的格式。请参阅[enum AudioStreamSample.Format]了解可用的格式。"

#: doc/classes/AudioEffectReverb.xml:4
msgid ""
"Adds a reverberation audio effect to an Audio bus.\n"
"Simulates the sound of acoustic environments such as rooms, concert halls, "
"caverns, or an open spaces."
msgstr ""
"为音频总线添加混响效果。\n"
"模拟房间、音乐厅、洞穴或开放空间等声学环境的声音。"

#: doc/classes/AudioEffectReverb.xml:8
msgid ""
"Simulates rooms of different sizes. Its parameters can be adjusted to "
"simulate the sound of a specific room."
msgstr "模拟不同大小的房间。其参数可以调整,以模拟特定房间的声音。"

#: doc/classes/AudioEffectReverb.xml:17
msgid ""
"Defines how reflective the imaginary room's walls are. Value can range from "
"0 to 1."
msgstr "定义虚拟房间墙壁的反射程度。值的范围是0到1。"

#: doc/classes/AudioEffectReverb.xml:20
msgid ""
"Output percent of original sound. At 0, only modified sound is outputted. "
"Value can range from 0 to 1."
msgstr "原始声音的输出百分比。0时,只输出修改后的声音。值的范围是0~1。"

#: doc/classes/AudioEffectReverb.xml:23
msgid ""
"High-pass filter passes signals with a frequency higher than a certain "
"cutoff frequency and attenuates signals with frequencies lower than the "
"cutoff frequency. Value can range from 0 to 1."
msgstr ""
"高通滤波器通过频率高于某一截止频率的信号,衰减频率低于截止频率的信号。数值范"
"围为0~1。"

#: doc/classes/AudioEffectReverb.xml:26
msgid "Output percent of predelay. Value can range from 0 to 1."
msgstr "预延迟的输出百分比。数值范围为0~1。"

#: doc/classes/AudioEffectReverb.xml:29
msgid ""
"Time between the original signal and the early reflections of the reverb "
"signal, in milliseconds."
msgstr "原始信号与混响信号早期反射之间的时间,以毫秒为单位。"

#: doc/classes/AudioEffectReverb.xml:32
msgid ""
"Dimensions of simulated room. Bigger means more echoes. Value can range from "
"0 to 1."
msgstr "模拟房间的尺寸。越大表示回声越多。值的范围可以从0到1。"

#: doc/classes/AudioEffectReverb.xml:35
msgid ""
"Widens or narrows the stereo image of the reverb tail. 1 means fully widens. "
"Value can range from 0 to 1."
msgstr "扩大或缩小混响尾音的立体声图像。1表示完全扩大。值的范围是0到1。"

#: doc/classes/AudioEffectReverb.xml:38
msgid ""
"Output percent of modified sound. At 0, only original sound is outputted. "
"Value can range from 0 to 1."
msgstr "输出修改后声音的百分比。在0时,只输出原始声音。值的范围为0~1。"

#: doc/classes/AudioEffectSpectrumAnalyzer.xml:4
msgid "Audio effect that can be used for real-time audio visualizations."
msgstr ""

#: doc/classes/AudioEffectSpectrumAnalyzer.xml:7
msgid ""
"This audio effect does not affect sound output, but can be used for real-"
"time audio visualizations.\n"
"See also [AudioStreamGenerator] for procedurally generating sounds."
msgstr ""

#: doc/classes/AudioEffectSpectrumAnalyzer.xml:11
msgid "Audio Spectrum Demo"
msgstr ""

#: doc/classes/AudioEffectSpectrumAnalyzer.xml:12
#: doc/classes/AudioStreamGenerator.xml:13
#: doc/classes/AudioStreamGeneratorPlayback.xml:11
msgid "Godot 3.2 will get new audio features"
msgstr ""

#: doc/classes/AudioEffectSpectrumAnalyzer.xml:18
msgid ""
"The length of the buffer to keep (in seconds). Higher values keep data "
"around for longer, but require more memory."
msgstr ""

#: doc/classes/AudioEffectSpectrumAnalyzer.xml:21
msgid ""
"The size of the [url=https://en.wikipedia.org/wiki/"
"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
"smooth out the spectrum analysis over time, but have greater latency. The "
"effects of this higher latency are especially noticeable with sudden "
"amplitude changes."
msgstr ""

#: doc/classes/AudioEffectSpectrumAnalyzerInstance.xml:21
msgid "Use the average value as magnitude."
msgstr "用平均值作为幅度。"

#: doc/classes/AudioEffectSpectrumAnalyzerInstance.xml:24
msgid "Use the maximum value as magnitude."
msgstr "用最大值作为幅度。"

#: doc/classes/AudioServer.xml:4
msgid "Server interface for low-level audio access."
msgstr "低级音频访问的服务器接口。"

#: doc/classes/AudioServer.xml:7
msgid ""
"[AudioServer] is a low-level server interface for audio access. It is in "
"charge of creating sample data (playable audio) as well as its playback via "
"a voice interface."
msgstr ""
"[AudioServer]是一个音频访问的低级服务器接口。它负责创建样本数据(可播放的音"
"频)以及通过语音接口进行播放。"

#: doc/classes/AudioServer.xml:11 doc/classes/AudioStreamPlayer.xml:13
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/525"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/AudioServer.xml:13 doc/classes/AudioStream.xml:13
#: doc/classes/AudioStreamPlayer.xml:16 doc/classes/CanvasItem.xml:17
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/528"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/AudioServer.xml:20
msgid "Adds a bus at [code]at_position[/code]."
msgstr "在[code]at_position[/code]处添加一条总线。"

#: doc/classes/AudioServer.xml:29
msgid ""
"Adds an [AudioEffect] effect to the bus [code]bus_idx[/code] at "
"[code]at_position[/code]."
msgstr ""
"在[code]bus_idx[/code]at[code]at_position[/code]处给总线添加[AudioEffect]效"
"果。"

#: doc/classes/AudioServer.xml:35
msgid ""
"Name of the current device for audio input (see [method "
"capture_get_device_list])."
msgstr "当前音频输入设备的名称(参见[method capture_get_device_list])。"

#: doc/classes/AudioServer.xml:41
msgid "Returns the names of all audio input devices detected on the system."
msgstr "返回系统上检测到的所有音频输入设备的名称。"

#: doc/classes/AudioServer.xml:48
msgid "Sets which audio input device is used for audio capture."
msgstr "设置用于音频采集的音频输入设备。"

#: doc/classes/AudioServer.xml:54
msgid "Generates an [AudioBusLayout] using the available buses and effects."
msgstr "使用可用的总线和效果生成[AudioBusLayout]。"

#: doc/classes/AudioServer.xml:61
msgid ""
"Returns the amount of channels of the bus at index [code]bus_idx[/code]."
msgstr "返回索引为[code] bus_idx [/code]的总线通道数。"

#: doc/classes/AudioServer.xml:69
msgid ""
"Returns the [AudioEffect] at position [code]effect_idx[/code] in bus "
"[code]bus_idx[/code]."
msgstr ""
"返回总线 [code]bus_idx[/code] in [code]effect_idx[/code] 位置的 "
"[AudioEffect]。"

#: doc/classes/AudioServer.xml:76
msgid "Returns the number of effects on the bus at [code]bus_idx[/code]."
msgstr "返回[code]bus_idx[/code]处总线上的效果数。"

#: doc/classes/AudioServer.xml:85
msgid ""
"Returns the [AudioEffectInstance] assigned to the given bus and effect "
"indices (and optionally channel)."
msgstr ""
"返回分配给给定总线和效果指数(以及可选的通道)的[AudioEffectInstance]。"

#: doc/classes/AudioServer.xml:92
msgid "Returns the index of the bus with the name [code]bus_name[/code]."
msgstr "返回名称为[code]bus_name[/code]的总线的索引。"

#: doc/classes/AudioServer.xml:99
msgid "Returns the name of the bus with the index [code]bus_idx[/code]."
msgstr "返回索引为 [code]bus_idx[/code] 的总线名称。"

#: doc/classes/AudioServer.xml:107
msgid ""
"Returns the peak volume of the left speaker at bus index [code]bus_idx[/"
"code] and channel index [code]channel[/code]."
msgstr ""
"返回总线索引[code]bus_idx[/code]和通道索引[code]channel[/code]处左扬声器的峰"
"值音量。"

#: doc/classes/AudioServer.xml:115
msgid ""
"Returns the peak volume of the right speaker at bus index [code]bus_idx[/"
"code] and channel index [code]channel[/code]."
msgstr ""
"返回总线索引[code]bus_idx[/code]和通道索引[code]channel[/code]处右扬声器的峰"
"值音量。"

#: doc/classes/AudioServer.xml:122
msgid ""
"Returns the name of the bus that the bus at index [code]bus_idx[/code] sends "
"to."
msgstr "返回位于索引[code]bus_idx[/code]处的总线所发送的总线名称。"

#: doc/classes/AudioServer.xml:129
msgid "Returns the volume of the bus at index [code]bus_idx[/code] in dB."
msgstr "返回索引[code]bus_idx[/code]处总线的音量,单位为dB。"

#: doc/classes/AudioServer.xml:135
msgid "Returns the names of all audio devices detected on the system."
msgstr "返回系统中检测到的所有音频设备的名称。"

#: doc/classes/AudioServer.xml:141
msgid "Returns the sample rate at the output of the [AudioServer]."
msgstr "返回[AudioServer]输出的采样率。"

#: doc/classes/AudioServer.xml:147
msgid "Returns the audio driver's output latency."
msgstr "返回音频驱动器的输出延迟。"

#: doc/classes/AudioServer.xml:153
msgid "Returns the speaker configuration."
msgstr "返回扬声器的配置。"

#: doc/classes/AudioServer.xml:159
msgid "Returns the relative time since the last mix occurred."
msgstr "返回自上次混合以来的相对时间。"

#: doc/classes/AudioServer.xml:165
msgid "Returns the relative time until the next mix occurs."
msgstr "返回下一次混合之前的相对时间。"

#: doc/classes/AudioServer.xml:172 doc/classes/AudioServer.xml:232
msgid ""
"If [code]true[/code], the bus at index [code]bus_idx[/code] is bypassing "
"effects."
msgstr ""
"如果[code]true[/code],则位于index[code]bus_idx[/code]的总线会绕过效果。"

#: doc/classes/AudioServer.xml:180 doc/classes/AudioServer.xml:241
msgid ""
"If [code]true[/code], the effect at index [code]effect_idx[/code] on the bus "
"at index [code]bus_idx[/code] is enabled."
msgstr ""
"如果[code]true[/code],则启用索引[code]effect_idx[/code]在索引[code]bus_idx[/"
"code]的总线上的效果。"

#: doc/classes/AudioServer.xml:187 doc/classes/AudioServer.xml:256
msgid "If [code]true[/code], the bus at index [code]bus_idx[/code] is muted."
msgstr "如果为[code]true[/code],则索引[code]bus_idx[/code]处的总线被静音。"

#: doc/classes/AudioServer.xml:194 doc/classes/AudioServer.xml:280
msgid ""
"If [code]true[/code], the bus at index [code]bus_idx[/code] is in solo mode."
msgstr ""
"如果为[code]true[/code],则索引[code]bus_idx[/code]处的总线处于solo模式。"

#: doc/classes/AudioServer.xml:200
msgid ""
"Locks the audio driver's main loop.\n"
"[b]Note:[/b] Remember to unlock it afterwards."
msgstr ""
"锁定音频驱动程序的主循环。\n"
"[b]注意:[/b]记得事后解锁。"

#: doc/classes/AudioServer.xml:209
msgid ""
"Moves the bus from index [code]index[/code] to index [code]to_index[/code]."
msgstr "将总线从索引[code]index[/code]移动到索引[code]to_index[/code]。"

#: doc/classes/AudioServer.xml:216
msgid "Removes the bus at index [code]index[/code]."
msgstr "移除索引[code]index[/code]处的总线。"

#: doc/classes/AudioServer.xml:224
msgid ""
"Removes the effect at index [code]effect_idx[/code] from the bus at index "
"[code]bus_idx[/code]."
msgstr ""
"将索引 [code]effect_idx[/code] 的效果从索引 [code]bus_idx[/code] 的总线上删"
"除。"

#: doc/classes/AudioServer.xml:248
msgid "Overwrites the currently used [AudioBusLayout]."
msgstr "覆盖当前使用的[AudioBusLayout]。"

#: doc/classes/AudioServer.xml:264
msgid ""
"Sets the name of the bus at index [code]bus_idx[/code] to [code]name[/code]."
msgstr "将索引[code]bus_idx[/code]处的总线名称设置为[code]name[/code]。"

#: doc/classes/AudioServer.xml:272
msgid ""
"Connects the output of the bus at [code]bus_idx[/code] to the bus named "
"[code]send[/code]."
msgstr ""
"将 [code]bus_idx[/code] 处的总线输出连接到名为 [code]send[/code] 的总线。"

#: doc/classes/AudioServer.xml:288
msgid ""
"Sets the volume of the bus at index [code]bus_idx[/code] to [code]volume_db[/"
"code]."
msgstr ""
"将索引 [code]bus_idx[/code] 处的总线容量设置为 [code]volume_db[/code]。"

#: doc/classes/AudioServer.xml:297
msgid "Swaps the position of two effects in bus [code]bus_idx[/code]."
msgstr "在[code]bus_idx[/code]中交换两个效果的位置。"

#: doc/classes/AudioServer.xml:303
msgid ""
"Unlocks the audio driver's main loop. (After locking it, you should always "
"unlock it.)"
msgstr "解锁音频驱动程序的主循环。(锁定后,你始终需要手动解锁它。)"

#: doc/classes/AudioServer.xml:309
msgid "Number of available audio buses."
msgstr "可用音频总线的数量。"

#: doc/classes/AudioServer.xml:312
msgid ""
"Name of the current device for audio output (see [method get_device_list])."
msgstr "用于音频输出的当前设备的名称(请参见[method get_device_list])。"

#: doc/classes/AudioServer.xml:315
msgid ""
"Scales the rate at which audio is played (i.e. setting it to [code]0.5[/"
"code] will make the audio be played twice as fast)."
msgstr ""
"缩放播放音频的速率(即将其设置为[code] 0.5 [/code]将使音频播放速度提高一"
"倍)。"

#: doc/classes/AudioServer.xml:321
msgid "Emitted when the [AudioBusLayout] changes."
msgstr "当[AudioBusLayout]改变时发出。"

#: doc/classes/AudioServer.xml:327
msgid "Two or fewer speakers were detected."
msgstr "检测到两个或更少的扬声器。"

#: doc/classes/AudioServer.xml:330
msgid "A 3.1 channel surround setup was detected."
msgstr "检测到3.1声道环绕声设置。"

#: doc/classes/AudioServer.xml:333
msgid "A 5.1 channel surround setup was detected."
msgstr "检测到5.1声道环绕声设置。"

#: doc/classes/AudioServer.xml:336
msgid "A 7.1 channel surround setup was detected."
msgstr "检测到7.1声道环绕声设置。"

#: doc/classes/AudioStream.xml:4
msgid "Base class for audio streams."
msgstr "音频流的基类。"

#: doc/classes/AudioStream.xml:7
msgid ""
"Base class for audio streams. Audio streams are used for sound effects and "
"music playback, and support WAV (via [AudioStreamSample]) and OGG (via "
"[AudioStreamOGGVorbis]) file formats."
msgstr ""
"音频流的基类。音频流用于声音效果和音乐播放,支持WAV(通过"
"[AudioStreamSample])和OGG(通过[AudioStreamOGGVorbis])文件格式。"

#: doc/classes/AudioStream.xml:10 doc/classes/AudioStreamPlayer.xml:11
#: doc/classes/AudioStreamPlayer2D.xml:12
#: doc/classes/AudioStreamPlayer3D.xml:13
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/audio/audio_streams.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/audio/audio_streams.html"

#: doc/classes/AudioStream.xml:11 doc/classes/AudioStreamGenerator.xml:12
#: doc/classes/AudioStreamGeneratorPlayback.xml:10
#: doc/classes/AudioStreamPlayback.xml:10 doc/classes/AudioStreamPlayer.xml:14
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/526"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/AudioStream.xml:19
msgid "Returns the length of the audio stream in seconds."
msgstr "返回音频流的长度,单位为秒。"

#: doc/classes/AudioStreamGenerator.xml:4
msgid "Audio stream that generates sounds procedurally."
msgstr ""

#: doc/classes/AudioStreamGenerator.xml:7
msgid ""
"This audio stream does not play back sounds, but expects a script to "
"generate audio data for it instead. See also "
"[AudioStreamGeneratorPlayback].\n"
"See also [AudioEffectSpectrumAnalyzer] for performing real-time audio "
"spectrum analysis.\n"
"[b]Note:[/b] Due to performance constraints, this class is best used from C# "
"or from a compiled language via GDNative. If you still want to use this "
"class from GDScript, consider using a lower [member mix_rate] such as 11,025 "
"Hz or 22,050 Hz."
msgstr ""

#: doc/classes/AudioStreamGenerator.xml:19
msgid ""
"The length of the buffer to generate (in seconds). Lower values result in "
"less latency, but require the script to generate audio data faster, "
"resulting in increased CPU usage and more risk for audio cracking if the CPU "
"can't keep up."
msgstr ""

#: doc/classes/AudioStreamGenerator.xml:22
msgid ""
"The sample rate to use (in Hz). Higher values are more demanding for the CPU "
"to generate, but result in better quality.\n"
"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
"[code]48000[/code].\n"
"According to the [url=https://en.wikipedia.org/wiki/Nyquist"
"%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/url], "
"there is no quality difference to human hearing when going past 40,000 Hz "
"(since most humans can only hear up to ~20,000 Hz, often less). If you are "
"generating lower-pitched sounds such as voices, lower sample rates such as "
"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
"quality."
msgstr ""

#: doc/classes/AudioStreamGeneratorPlayback.xml:4
msgid "Plays back audio generated using [AudioStreamGenerator]."
msgstr ""

#: doc/classes/AudioStreamGeneratorPlayback.xml:7
msgid ""
"This class is meant to be used with [AudioStreamGenerator] to play back the "
"generated audio in real-time."
msgstr ""

#: doc/classes/AudioStreamGeneratorPlayback.xml:18
#, fuzzy
msgid ""
"Returns [code]true[/code] if a buffer of the size [code]amount[/code] can be "
"pushed to the audio sample data buffer without overflowing it, [code]false[/"
"code] otherwise."
msgstr ""
"如果[成员cull_mask]中给定的[code]layer[/code]被启用,返回[code]true[/code],"
"否则返回[code]false[/code]。"

#: doc/classes/AudioStreamGeneratorPlayback.xml:24
#, fuzzy
msgid "Clears the audio sample data buffer."
msgstr "包含以字节为单位的音频数据。"

#: doc/classes/AudioStreamGeneratorPlayback.xml:30
msgid ""
"Returns the number of audio data frames left to play. If this returned "
"number reaches [code]0[/code], the audio will stop playing until frames are "
"added again. Therefore, make sure your script can always generate and push "
"new audio frames fast enough to avoid audio cracking."
msgstr ""

#: doc/classes/AudioStreamGeneratorPlayback.xml:42
msgid ""
"Pushes several audio data frames to the buffer. This is usually more "
"efficient than [method push_frame] in C# and compiled languages via "
"GDNative, but [method push_buffer] may be [i]less[/i] efficient in GDScript."
msgstr ""

#: doc/classes/AudioStreamGeneratorPlayback.xml:49
msgid ""
"Pushes a single audio data frame to the buffer. This is usually less "
"efficient than [method push_buffer] in C# and compiled languages via "
"GDNative, but [method push_frame] may be [i]more[/i] efficient in GDScript."
msgstr ""

#: modules/minimp3/doc_classes/AudioStreamMP3.xml:4
#: modules/minimp3/doc_classes/AudioStreamMP3.xml:7
#, fuzzy
msgid "MP3 audio stream driver."
msgstr "OGG Vorbis音频流驱动程序。"

#: modules/minimp3/doc_classes/AudioStreamMP3.xml:15
#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml:15
msgid "Contains the audio data in bytes."
msgstr "包含以字节为单位的音频数据。"

#: modules/minimp3/doc_classes/AudioStreamMP3.xml:18
#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml:18
msgid ""
"If [code]true[/code], the stream will automatically loop when it reaches the "
"end."
msgstr "如果[code]true[/code],当流到达末尾时将自动循环。"

#: modules/minimp3/doc_classes/AudioStreamMP3.xml:21
#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml:21
msgid "Time in seconds at which the stream starts after being looped."
msgstr "循环后流开始的时间(秒)。"

#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml:4
#: modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml:7
msgid "OGG Vorbis audio stream driver."
msgstr "OGG Vorbis音频流驱动程序。"

#: doc/classes/AudioStreamPlayback.xml:4
msgid "Meta class for playing back audio."
msgstr "播放音频的元类。"

#: doc/classes/AudioStreamPlayback.xml:7
msgid ""
"Can play, loop, pause a scroll through audio. See [AudioStream] and "
"[AudioStreamOGGVorbis] for usage."
msgstr ""
"可以播放,循环,暂停滚动音频。有关用法,请参见[AudioStream]和"
"[AudioStreamOGGVorbis]。"

#: doc/classes/AudioStreamPlayer.xml:4
msgid "Plays back audio non-positionally."
msgstr "非定位地播放音频。"

#: doc/classes/AudioStreamPlayer.xml:7
msgid ""
"Plays an audio stream non-positionally.\n"
"To play audio positionally, use [AudioStreamPlayer2D] or "
"[AudioStreamPlayer3D] instead of [AudioStreamPlayer]."
msgstr ""

#: doc/classes/AudioStreamPlayer.xml:22
msgid "Returns the position in the [AudioStream] in seconds."
msgstr "返回[AudioStream]中的位置,单位为秒。"

#: doc/classes/AudioStreamPlayer.xml:28
msgid ""
"Returns the [AudioStreamPlayback] object associated with this "
"[AudioStreamPlayer]."
msgstr "返回与此[AudioStreamPlayer]关联的[AudioStreamPlayback]对象。"

#: doc/classes/AudioStreamPlayer.xml:35
msgid "Plays the audio from the given [code]from_position[/code], in seconds."
msgstr "从给定的[code]from_position[/code]播放音频,以秒为单位。"

#: doc/classes/AudioStreamPlayer.xml:42 doc/classes/AudioStreamPlayer2D.xml:38
#: doc/classes/AudioStreamPlayer3D.xml:39
msgid "Sets the position from which audio will be played, in seconds."
msgstr "设置音频的播放位置,以秒为单位。"

#: doc/classes/AudioStreamPlayer.xml:48 doc/classes/AudioStreamPlayer2D.xml:44
#: doc/classes/AudioStreamPlayer3D.xml:45
msgid "Stops the audio."
msgstr "停止音频。"

#: doc/classes/AudioStreamPlayer.xml:54 doc/classes/AudioStreamPlayer2D.xml:56
msgid "If [code]true[/code], audio plays when added to scene tree."
msgstr "如果[code]true[/code],则在添加到场景树时播放音频。"

#: doc/classes/AudioStreamPlayer.xml:57 doc/classes/AudioStreamPlayer2D.xml:59
msgid "Bus on which this audio is playing."
msgstr "播放此音频的总线。"

#: doc/classes/AudioStreamPlayer.xml:60
msgid ""
"If the audio configuration has more than two speakers, this sets the target "
"channels. See [enum MixTarget] constants."
msgstr ""
"如果音频配置有两个以上的扬声器,则设置目标通道。请参阅[enum MixTarget]常量。"

#: doc/classes/AudioStreamPlayer.xml:63 doc/classes/AudioStreamPlayer2D.xml:65
#: doc/classes/AudioStreamPlayer3D.xml:91
msgid ""
"The pitch and the tempo of the audio, as a multiplier of the audio sample's "
"sample rate."
msgstr "音频的音高和节奏,作为音频样本的采样率的倍数。"

#: doc/classes/AudioStreamPlayer.xml:66 doc/classes/AudioStreamPlayer2D.xml:68
#: doc/classes/AudioStreamPlayer3D.xml:94
msgid "If [code]true[/code], audio is playing."
msgstr "如果[code]true[/code],则播放音频。"

#: doc/classes/AudioStreamPlayer.xml:69 doc/classes/AudioStreamPlayer2D.xml:71
msgid "The [AudioStream] object to be played."
msgstr "要播放的[AudioStream]对象。"

#: doc/classes/AudioStreamPlayer.xml:72 doc/classes/AudioStreamPlayer2D.xml:74
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]false[/code] 来恢复播放。"

#: doc/classes/AudioStreamPlayer.xml:75
msgid "Volume of sound, in dB."
msgstr "音量,单位为dB。"

#: doc/classes/AudioStreamPlayer.xml:81 doc/classes/AudioStreamPlayer2D.xml:83
#: doc/classes/AudioStreamPlayer3D.xml:112
msgid "Emitted when the audio stops playing."
msgstr "当音频停止播放时发出。"

#: doc/classes/AudioStreamPlayer.xml:87
msgid "The audio will be played only on the first channel."
msgstr "音频将只在第一个频道播放。"

#: doc/classes/AudioStreamPlayer.xml:90
msgid "The audio will be played on all surround channels."
msgstr "音频将在所有环绕声频道播放。"

#: doc/classes/AudioStreamPlayer.xml:93
msgid ""
"The audio will be played on the second channel, which is usually the center."
msgstr "音频将在第二通道,也就是通常的中央播放。"

#: doc/classes/AudioStreamPlayer2D.xml:4
#, fuzzy
msgid "Plays positional sound in 2D space."
msgstr "在3D空间中播放3D声音。"

#: doc/classes/AudioStreamPlayer2D.xml:7
msgid ""
"Plays audio that dampens with distance from screen center.\n"
"See also [AudioStreamPlayer] to play a sound non-positionally.\n"
"[b]Note:[/b] Hiding an [AudioStreamPlayer2D] node does not disable its audio "
"output. To temporarily disable an [AudioStreamPlayer2D]'s audio output, set "
"[member volume_db] to a very low value like [code]-100[/code] (which isn't "
"audible to human hearing)."
msgstr ""

#: doc/classes/AudioStreamPlayer2D.xml:18
#: doc/classes/AudioStreamPlayer3D.xml:19
msgid "Returns the position in the [AudioStream]."
msgstr "返回[AudioStream]中的位置。"

#: doc/classes/AudioStreamPlayer2D.xml:24
msgid ""
"Returns the [AudioStreamPlayback] object associated with this "
"[AudioStreamPlayer2D]."
msgstr "返回与该[AudioStreamPlayer2D]相关联的[AudioStreamPlayback]对象。"

#: doc/classes/AudioStreamPlayer2D.xml:31
#: doc/classes/AudioStreamPlayer3D.xml:32
msgid ""
"Plays the audio from the given position [code]from_position[/code], in "
"seconds."
msgstr "从给定的位置[code]from_position[/code]播放音频,以秒为单位。"

#: doc/classes/AudioStreamPlayer2D.xml:50
#: doc/classes/AudioStreamPlayer3D.xml:51
msgid "Areas in which this sound plays."
msgstr "这个声音的播放区域。"

#: doc/classes/AudioStreamPlayer2D.xml:53
msgid "Dampens audio over distance with this as an exponent."
msgstr "以此为指数,将声音在距离上进行衰减。"

#: doc/classes/AudioStreamPlayer2D.xml:62
msgid "Maximum distance from which audio is still hearable."
msgstr "音频仍可听到的最大距离。"

#: doc/classes/AudioStreamPlayer2D.xml:77
msgid "Base volume without dampening."
msgstr "基础音量,无衰减。"

#: doc/classes/AudioStreamPlayer3D.xml:4
#, fuzzy
msgid "Plays positional sound in 3D space."
msgstr "在3D空间中播放3D声音。"

#: doc/classes/AudioStreamPlayer3D.xml:7
msgid ""
"Plays a sound effect with directed sound effects, dampens with distance if "
"needed, generates effect of hearable position in space. For greater realism, "
"a low-pass filter is automatically applied to distant sounds. This can be "
"disabled by setting [member attenuation_filter_cutoff_hz] to [code]20500[/"
"code].\n"
"By default, audio is heard from the camera position. This can be changed by "
"adding a [Listener] node to the scene and enabling it by calling [method "
"Listener.make_current] on it.\n"
"See also [AudioStreamPlayer] to play a sound non-positionally.\n"
"[b]Note:[/b] Hiding an [AudioStreamPlayer3D] node does not disable its audio "
"output. To temporarily disable an [AudioStreamPlayer3D]'s audio output, set "
"[member unit_db] to a very low value like [code]-100[/code] (which isn't "
"audible to human hearing)."
msgstr ""

#: doc/classes/AudioStreamPlayer3D.xml:25
msgid ""
"Returns the [AudioStreamPlayback] object associated with this "
"[AudioStreamPlayer3D]."
msgstr "返回与该[AudioStreamPlayer3D]相关联的[AudioStreamPlayback]对象。"

#: doc/classes/AudioStreamPlayer3D.xml:54
msgid ""
"Dampens audio using a low-pass filter above this frequency, in Hz. To "
"disable the dampening effect entirely, set this to [code]20500[/code] as "
"this frequency is above the human hearing limit."
msgstr ""

#: doc/classes/AudioStreamPlayer3D.xml:57
#, fuzzy
msgid "Amount how much the filter affects the loudness, in decibels."
msgstr "滤波器对响度的影响程度,单位为dB。"

#: doc/classes/AudioStreamPlayer3D.xml:60
msgid ""
"Decides if audio should get quieter with distance linearly, quadratically, "
"logarithmically, or not be affected by distance, effectively disabling "
"attenuation."
msgstr ""
"决定音频是否应该得到更安静的距离线性,平方,对数,或不受影响的距离,有效地禁"
"用衰减。"

#: doc/classes/AudioStreamPlayer3D.xml:63
#, fuzzy
msgid ""
"If [code]true[/code], audio plays when the AudioStreamPlayer3D node is added "
"to scene tree."
msgstr "如果[code]true[/code],则在添加到场景树时播放音频。"

#: doc/classes/AudioStreamPlayer3D.xml:66
#, fuzzy
msgid "The bus on which this audio is playing."
msgstr "播放此音频的总线。"

#: doc/classes/AudioStreamPlayer3D.xml:69
msgid ""
"Decides in which step the [url=https://en.wikipedia.org/wiki/"
"Doppler_effect]Doppler effect[/url] should be calculated.\n"
"[b]Note:[/b] Only effective if the current [Camera]'s [member Camera."
"doppler_tracking] property is set to a value other than [constant Camera."
"DOPPLER_TRACKING_DISABLED]."
msgstr ""

#: doc/classes/AudioStreamPlayer3D.xml:73
msgid "The angle in which the audio reaches cameras undampened."
msgstr "音频到达摄像机的角度,不受衰减。"

#: doc/classes/AudioStreamPlayer3D.xml:76
msgid ""
"If [code]true[/code], the audio should be dampened according to the "
"direction of the sound."
msgstr "如果[code]true[/code],则应根据声音的方向对音频进行衰减。"

#: doc/classes/AudioStreamPlayer3D.xml:79
#, fuzzy
msgid ""
"Dampens audio if camera is outside of [member emission_angle_degrees] and "
"[member emission_angle_enabled] is set by this factor, in decibels."
msgstr ""
"如果摄像机在[membermission_angle_degrees]之外,并以此参数设置"
"[membermission_angle_enabled],则衰减音频,以dB为单位。"

#: doc/classes/AudioStreamPlayer3D.xml:82
#, fuzzy
msgid "Sets the absolute maximum of the soundlevel, in decibels."
msgstr "设置声级的绝对最大值,单位为dB。"

#: doc/classes/AudioStreamPlayer3D.xml:85
msgid ""
"Sets the distance from which the [member out_of_range_mode] takes effect. "
"Has no effect if set to 0."
msgstr "设置[member out_of_range_mode]生效的距离。设置为0时没有效果。"

#: doc/classes/AudioStreamPlayer3D.xml:88
msgid ""
"Decides if audio should pause when source is outside of [member "
"max_distance] range."
msgstr "决定当音源超出 [member max_distance] 范围时,是否应该暂停音频。"

#: doc/classes/AudioStreamPlayer3D.xml:97
#, fuzzy
msgid "The [AudioStream] resource to be played."
msgstr "要播放的[AudioStream]对象。"

#: doc/classes/AudioStreamPlayer3D.xml:100
#, fuzzy
msgid ""
"If [code]true[/code], the playback is paused. You can resume it by setting "
"[member stream_paused] to [code]false[/code]."
msgstr ""
"如果 [code]true[/code],则暂停播放。您可以通过将 [code]stream_paused[/code] "
"设置为 [code]false[/code] 来恢复播放。"

#: doc/classes/AudioStreamPlayer3D.xml:103
#, fuzzy
msgid "The base sound level unaffected by dampening, in decibels."
msgstr "未受阻尼影响的基本声级,单位为dB。"

#: doc/classes/AudioStreamPlayer3D.xml:106
msgid ""
"The factor for the attenuation effect. Higher values make the sound audible "
"over a larger distance."
msgstr ""

#: doc/classes/AudioStreamPlayer3D.xml:118
msgid "Linear dampening of loudness according to distance."
msgstr "根据距离对响度进行线性衰减。"

#: doc/classes/AudioStreamPlayer3D.xml:121
msgid "Squared dampening of loudness according to distance."
msgstr "根据距离对响度进行平方衰减。"

#: doc/classes/AudioStreamPlayer3D.xml:124
msgid "Logarithmic dampening of loudness according to distance."
msgstr "根据距离对数降低响度。"

#: doc/classes/AudioStreamPlayer3D.xml:127
msgid ""
"No dampening of loudness according to distance. The sound will still be "
"heard positionally, unlike an [AudioStreamPlayer]."
msgstr ""

#: doc/classes/AudioStreamPlayer3D.xml:130
msgid ""
"Mix this audio in, even when it's out of range. This increases CPU usage, "
"but keeps the sound playing at the correct position if the camera leaves and "
"enters the [AudioStreamPlayer3D]'s [member max_distance] radius."
msgstr ""

#: doc/classes/AudioStreamPlayer3D.xml:133
msgid ""
"Pause this audio when it gets out of range. This decreases CPU usage, but "
"will cause the sound to restart if the camera leaves and enters the "
"[AudioStreamPlayer3D]'s [member max_distance] radius."
msgstr ""

#: doc/classes/AudioStreamPlayer3D.xml:136
msgid "Disables doppler tracking."
msgstr "禁用多普勒跟踪。"

#: doc/classes/AudioStreamPlayer3D.xml:139
#, fuzzy
msgid "Executes doppler tracking in idle step (every rendered frame)."
msgstr "以空闲步骤执行多普勒跟踪。"

#: doc/classes/AudioStreamPlayer3D.xml:142
#, fuzzy
msgid ""
"Executes doppler tracking in physics step (every simulated physics frame)."
msgstr "在物理运算步骤中执行doppler(多普勒)跟踪。"

#: doc/classes/AudioStreamRandomPitch.xml:4
msgid "Plays audio with random pitch shifting."
msgstr "播放随机音高变化的音频。"

#: doc/classes/AudioStreamRandomPitch.xml:7
msgid "Randomly varies pitch on each start."
msgstr "每次开始时随机变换音高。"

#: doc/classes/AudioStreamRandomPitch.xml:15
msgid "The current [AudioStream]."
msgstr "当前的[AudioStream]。"

#: doc/classes/AudioStreamRandomPitch.xml:18
msgid "The intensity of random pitch variation."
msgstr "随机音调变化的强度。"

#: doc/classes/AudioStreamSample.xml:4
msgid "Stores audio data loaded from WAV files."
msgstr "存储从WAV文件加载的音频数据。"

#: doc/classes/AudioStreamSample.xml:7
#, fuzzy
msgid ""
"AudioStreamSample stores sound samples loaded from WAV files. To play the "
"stored sound, use an [AudioStreamPlayer] (for non-positional audio) or "
"[AudioStreamPlayer2D]/[AudioStreamPlayer3D] (for positional audio). The "
"sound can be looped.\n"
"This class can also be used to store dynamically-generated PCM audio data. "
"See also [AudioStreamGenerator] for procedural audio generation."
msgstr ""
"AudioStreamSample存储从WAV文件加载的声音样本。要播放存储的声音,请使用"
"[AudioStreamPlayer](用于非定位音频)或[AudioStreamPlayer2D]/"
"[AudioStreamPlayer3D](用于定位音频)。声音可以被循环播放。\n"
"这个类也可以用来存储动态生成的PCM音频数据。"

#: doc/classes/AudioStreamSample.xml:17
msgid ""
"Saves the AudioStreamSample as a WAV file to [code]path[/code]. Samples with "
"IMA ADPCM format can't be saved.\n"
"[b]Note:[/b] A [code].wav[/code] extension is automatically appended to "
"[code]path[/code] if it is missing."
msgstr ""
"将AudioStreamSample作为WAV文件保存到[code] path [/code]。无法保存IMA ADPCM格"
"式的样本。\n"
"[b]注意:[/b]如果缺少[code] .wav [/code]扩展名,则会自动将其附加到"
"[code]path[/code]。"

#: doc/classes/AudioStreamSample.xml:24
msgid ""
"Contains the audio data in bytes.\n"
"[b]Note:[/b] This property expects signed PCM8 data. To convert unsigned "
"PCM8 to signed PCM8, subtract 128 from each byte."
msgstr ""
"包含以字节为单位的音频数据。\n"
"[b]注意:[/b]此属性需要有符号的 PCM8数据。要将无符号的 PCM8转换为有符号的 "
"PCM8,需要从每个字节中减去128。"

#: doc/classes/AudioStreamSample.xml:28
msgid "Audio format. See [enum Format] constants for values."
msgstr "音频格式。参见[enum Format]常量的值。"

#: doc/classes/AudioStreamSample.xml:31
msgid ""
"The loop start point (in number of samples, relative to the beginning of the "
"sample). This information will be imported automatically from the WAV file "
"if present."
msgstr ""
"循环起始点(相对于样本开始的样本数)。如果存在此信息,将自动从 WAV 文件导入。"

#: doc/classes/AudioStreamSample.xml:34
msgid ""
"The loop end point (in number of samples, relative to the beginning of the "
"sample). This information will be imported automatically from the WAV file "
"if present."
msgstr ""
"循环结束点(相对于样本开始的样本数)。如果存在此信息,将自动从 WAV 文件导入。"

#: doc/classes/AudioStreamSample.xml:37
msgid ""
"The loop mode. This information will be imported automatically from the WAV "
"file if present. See [enum LoopMode] constants for values."
msgstr ""
"循环模式。该信息将自动从WAV文件中导入(如果存在)。有关值,请参见[enum "
"LoopMode]常量。"

#: doc/classes/AudioStreamSample.xml:40
msgid ""
"The sample rate for mixing this audio. Higher values require more storage "
"space, but result in better quality.\n"
"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
"[code]48000[/code].\n"
"According to the [url=https://en.wikipedia.org/wiki/Nyquist"
"%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/url], "
"there is no quality difference to human hearing when going past 40,000 Hz "
"(since most humans can only hear up to ~20,000 Hz, often less). If you are "
"using lower-pitched sounds such as voices, lower sample rates such as "
"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
"quality."
msgstr ""

#: doc/classes/AudioStreamSample.xml:45
msgid "If [code]true[/code], audio is stereo."
msgstr "如果[code]true[/code],音频为立体声。"

#: doc/classes/AudioStreamSample.xml:50
msgid "8-bit audio codec."
msgstr "8位音频编解码器。"

#: doc/classes/AudioStreamSample.xml:53
msgid "16-bit audio codec."
msgstr "16位音频编解码器。"

#: doc/classes/AudioStreamSample.xml:56
msgid "Audio is compressed using IMA ADPCM."
msgstr "音频使用 IMA ADPCM 进行压缩。"

#: doc/classes/AudioStreamSample.xml:59
msgid "Audio does not loop."
msgstr "音频不循环。"

#: doc/classes/AudioStreamSample.xml:62
msgid ""
"Audio loops the data between [member loop_begin] and [member loop_end], "
"playing forward only."
msgstr ""
"音频循环播放 [member loop_begin] 和 [member loop_end] 之间的数据,只向前播"
"放。"

#: doc/classes/AudioStreamSample.xml:65
msgid ""
"Audio loops the data between [member loop_begin] and [member loop_end], "
"playing back and forth."
msgstr ""
"音频在 [member loop_begin] 和 [member loop_end] 之间循环数据,来回播放。"

#: doc/classes/AudioStreamSample.xml:68
msgid ""
"Audio loops the data between [member loop_begin] and [member loop_end], "
"playing backward only."
msgstr ""
"音频在 [member loop_begin] 和 [member loop_end] 之间循环数据,仅向后播放。"

#: doc/classes/BackBufferCopy.xml:4
msgid ""
"Copies a region of the screen (or the whole screen) to a buffer so it can be "
"accessed in your shader scripts through the "
"[code]texture(SCREEN_TEXTURE, ...)[/code] function."
msgstr ""
"将屏幕的某个区域(或整个屏幕)复制到缓冲区,以便可以通过[code] "
"texture(SCREEN_TEXTURE,...)[/code]函数在着色器脚本中对其进行访问。"

#: doc/classes/BackBufferCopy.xml:7
#, fuzzy
msgid ""
"Node for back-buffering the currently-displayed screen. The region defined "
"in the BackBufferCopy node is buffered with the content of the screen it "
"covers, or the entire screen according to the copy mode set. Use the "
"[code]texture(SCREEN_TEXTURE, ...)[/code] function in your shader scripts to "
"access the buffer.\n"
"[b]Note:[/b] Since this node inherits from [Node2D] (and not [Control]), "
"anchors and margins won't apply to child [Control]-derived nodes. This can "
"be problematic when resizing the window. To avoid this, add [Control]-"
"derived nodes as [i]siblings[/i] to the BackBufferCopy node instead of "
"adding them as children."
msgstr ""
"用于对当前显示的屏幕进行反缓冲的节点。在BackBufferCopy节点中定义的区域将用它"
"所覆盖的屏幕内容进行缓冲,或者根据设置的复制模式对整个屏幕进行缓冲。在你的着"
"色器脚本中使用[code]texture(SCREEN_TEXTURE,...)[/code]函数来访问缓冲区。\n"
"[b]注意:[/b]由于该节点继承自 [Node2D] (而非[Control]),因此锚点和边距将不会"
"应用于[Control]派生的子节点。这在调整窗口大小时可能会有问题。为了避免这种情"
"况,请将 [Control] 派生节点作为 [i] siblings[/i] 添加到 BackBufferCopy 节点,"
"而不是将它们作为子节点添加。"

#: doc/classes/BackBufferCopy.xml:16
msgid "Buffer mode. See [enum CopyMode] constants."
msgstr "缓冲区模式。参见 [enum CopyMode] 常量。"

#: doc/classes/BackBufferCopy.xml:19
msgid ""
"The area covered by the BackBufferCopy. Only used if [member copy_mode] is "
"[constant COPY_MODE_RECT]."
msgstr ""
"BackBufferCopy 覆盖的区域。只有当 [member copy_mode] 是 [constant "
"COPY_MODE_RECT] 时才使用。"

#: doc/classes/BackBufferCopy.xml:24
msgid ""
"Disables the buffering mode. This means the BackBufferCopy node will "
"directly use the portion of screen it covers."
msgstr ""
"禁用缓冲模式。这意味着 BackBufferCopy 节点将直接使用它所覆盖的屏幕部分。"

#: doc/classes/BackBufferCopy.xml:27
msgid "BackBufferCopy buffers a rectangular region."
msgstr "BackBufferCopy 缓冲一个矩形区域。"

#: doc/classes/BackBufferCopy.xml:30
msgid "BackBufferCopy buffers the entire screen."
msgstr "BackBufferCopy可以缓冲整个屏幕。"

#: doc/classes/BakedLightmap.xml:4
msgid "Prerendered indirect light map for a scene."
msgstr ""

#: doc/classes/BakedLightmap.xml:7
msgid ""
"Baked lightmaps are an alternative workflow for adding indirect (or baked) "
"lighting to a scene. Unlike the [GIProbe] approach, baked lightmaps work "
"fine on low-end PCs and mobile devices as they consume almost no resources "
"in run-time.\n"
"[b]Note:[/b] Due to how lightmaps work, most properties only have a visible "
"effect once lightmaps are baked again."
msgstr ""

#: doc/classes/BakedLightmap.xml:11
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/3d/baked_lightmaps.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/using_gridmaps.html"

#: doc/classes/BakedLightmap.xml:19
msgid ""
"Bakes the lightmap, scanning from the given [code]from_node[/code] root and "
"saves the resulting [BakedLightmapData] in [code]data_save_path[/code]. If "
"no save path is provided it will try to match the path from the current "
"[member light_data]."
msgstr ""

#: doc/classes/BakedLightmap.xml:25
msgid ""
"When enabled, the lightmapper will merge the textures for all meshes into a "
"single large layered texture. Not supported in GLES2."
msgstr ""

#: doc/classes/BakedLightmap.xml:28
msgid ""
"Maximum size of each lightmap layer, only used when [member atlas_generate] "
"is enabled."
msgstr ""

#: doc/classes/BakedLightmap.xml:31
msgid ""
"Raycasting bias used during baking to avoid floating point precision issues."
msgstr ""

#: doc/classes/BakedLightmap.xml:34
msgid ""
"The energy multiplier for each bounce. Higher values will make indirect "
"lighting brighter. A value of [code]1.0[/code] represents physically "
"accurate behavior, but higher values can be used to make indirect lighting "
"propagate more visibly when using a low number of bounces. This can be used "
"to speed up bake times by lowering the number of [member bounces] then "
"increasing [member bounce_indirect_energy]. Unlike [member BakedLightmapData."
"energy], this property does not affect direct lighting emitted by light "
"nodes, emissive materials and the environment.\n"
"[b]Note:[/b] [member bounce_indirect_energy] only has an effect if [member "
"bounces] is set to a value greater than or equal to [code]1[/code]."
msgstr ""

#: doc/classes/BakedLightmap.xml:38
msgid ""
"Number of light bounces that are taken into account during baking. See also "
"[member bounce_indirect_energy]."
msgstr ""

#: doc/classes/BakedLightmap.xml:41
msgid "Grid size used for real-time capture information on dynamic objects."
msgstr ""

#: doc/classes/BakedLightmap.xml:44
msgid ""
"When enabled, an octree containing the scene's lighting information will be "
"computed. This octree will then be used to light dynamic objects in the "
"scene."
msgstr ""

#: doc/classes/BakedLightmap.xml:47
msgid ""
"Bias value to reduce the amount of light proagation in the captured octree."
msgstr ""

#: doc/classes/BakedLightmap.xml:50
msgid "Bake quality of the capture data."
msgstr ""

#: doc/classes/BakedLightmap.xml:53
msgid ""
"If a baked mesh doesn't have a UV2 size hint, this value will be used to "
"roughly compute a suitable lightmap size."
msgstr ""

#: doc/classes/BakedLightmap.xml:56
msgid ""
"The environment color when [member environment_mode] is set to [constant "
"ENVIRONMENT_MODE_CUSTOM_COLOR]."
msgstr ""

#: doc/classes/BakedLightmap.xml:59
msgid ""
"The energy scaling factor when when [member environment_mode] is set to "
"[constant ENVIRONMENT_MODE_CUSTOM_COLOR] or [constant "
"ENVIRONMENT_MODE_CUSTOM_SKY]."
msgstr ""

#: doc/classes/BakedLightmap.xml:62
#, fuzzy
msgid ""
"The [Sky] resource to use when [member environment_mode] is set o [constant "
"ENVIRONMENT_MODE_CUSTOM_SKY]."
msgstr "当[member overlay]设置为[constant OVERLAY_POSITION]时使用的背景。"

#: doc/classes/BakedLightmap.xml:65
#, fuzzy
msgid "The rotation of the baked custom sky."
msgstr "编辑场景的根。"

#: doc/classes/BakedLightmap.xml:68
msgid ""
"Minimum ambient light for all the lightmap texels. This doesn't take into "
"account any occlusion from the scene's geometry, it simply ensures a minimum "
"amount of light on all the lightmap texels. Can be used for artistic control "
"on shadow color."
msgstr ""

#: doc/classes/BakedLightmap.xml:71
msgid "Decides which environment to use during baking."
msgstr ""

#: doc/classes/BakedLightmap.xml:74
msgid ""
"Size of the baked lightmap. Only meshes inside this region will be included "
"in the baked lightmap, also used as the bounds of the captured region for "
"dynamic lighting."
msgstr ""

#: doc/classes/BakedLightmap.xml:77
msgid ""
"Deprecated, in previous versions it determined the location where lightmaps "
"were be saved."
msgstr ""

#: doc/classes/BakedLightmap.xml:80
#, fuzzy
msgid "The calculated light data."
msgstr "胶囊的高度。"

#: doc/classes/BakedLightmap.xml:83
msgid ""
"Determines the amount of samples per texel used in indrect light baking. The "
"amount of samples for each quality level can be configured in the project "
"settings."
msgstr ""

#: doc/classes/BakedLightmap.xml:86
msgid ""
"Store full color values in the lightmap textures. When disabled, lightmap "
"textures will store a single brightness channel. Can be disabled to reduce "
"disk usage if the scene contains only white lights or you don't mind losing "
"color information in indirect lighting."
msgstr ""

#: doc/classes/BakedLightmap.xml:89
msgid ""
"When enabled, a lightmap denoiser will be used to reduce the noise inherent "
"to Monte Carlo based global illumination."
msgstr ""

#: doc/classes/BakedLightmap.xml:92
msgid ""
"If [code]true[/code], stores the lightmap textures in a high dynamic range "
"format (EXR). If [code]false[/code], stores the lightmap texture in a low "
"dynamic range PNG image. This can be set to [code]false[/code] to reduce "
"disk usage, but light values over 1.0 will be clamped and you may see "
"banding caused by the reduced precision.\n"
"[b]Note:[/b] Setting [member use_hdr] to [code]true[/code] will decrease "
"lightmap banding even when using the GLES2 backend or if [member "
"ProjectSettings.rendering/quality/depth/hdr] is [code]false[/code]."
msgstr ""

#: doc/classes/BakedLightmap.xml:98
msgid "The lowest bake quality mode. Fastest to calculate."
msgstr ""

#: doc/classes/BakedLightmap.xml:101
#, fuzzy
msgid "The default bake quality mode."
msgstr "默认的文本字体。"

#: doc/classes/BakedLightmap.xml:104
msgid "A higher bake quality mode. Takes longer to calculate."
msgstr ""

#: doc/classes/BakedLightmap.xml:107
msgid "The highest bake quality mode. Takes the longest to calculate."
msgstr ""

#: doc/classes/BakedLightmap.xml:110
#, fuzzy
msgid "Baking was successful."
msgstr "连接成功。"

#: doc/classes/BakedLightmap.xml:113
msgid ""
"Returns if no viable save path is found. This can happen where an [member "
"image_path] is not specified or when the save location is invalid."
msgstr ""

#: doc/classes/BakedLightmap.xml:116 doc/classes/SpatialMaterial.xml:622
msgid "Currently unused."
msgstr "当前未使用."

#: doc/classes/BakedLightmap.xml:119
#, fuzzy
msgid "Returns when the baker cannot save per-mesh textures to file."
msgstr "返回分配给图块的形状数量。"

#: doc/classes/BakedLightmap.xml:122
#, fuzzy
msgid "The size of the generated lightmaps is too large."
msgstr "生成平面的大小。"

#: doc/classes/BakedLightmap.xml:125
msgid "Some mesh contains UV2 values outside the [code][0,1][/code] range."
msgstr ""

#: doc/classes/BakedLightmap.xml:128
#, fuzzy
msgid "Returns if user cancels baking."
msgstr "返回取消按钮。"

#: doc/classes/BakedLightmap.xml:133
msgid "No environment is used during baking."
msgstr ""

#: doc/classes/BakedLightmap.xml:136
msgid "The baked environment is automatically picked from the current scene."
msgstr ""

#: doc/classes/BakedLightmap.xml:139
msgid "A custom sky is used as environment during baking."
msgstr ""

#: doc/classes/BakedLightmap.xml:142
#, fuzzy
msgid "A custom solid color is used as environment during baking."
msgstr "自定义的[World2D],可以作为2D环境源。"

#: doc/classes/BakedLightmapData.xml:56
msgid ""
"Global energy multiplier for baked and dynamic capture objects. This can be "
"changed at run-time without having to bake lightmaps again.\n"
"To adjust only the energy of indirect lighting (without affecting direct "
"lighting or emissive materials), adjust [member BakedLightmap."
"bounce_indirect_energy] and bake lightmaps again."
msgstr ""

#: doc/classes/BakedLightmapData.xml:60
msgid ""
"Controls whether dynamic capture objects receive environment lighting or not."
msgstr ""

#: doc/classes/BaseButton.xml:4
msgid "Base class for different kinds of buttons."
msgstr "不同类型按钮的基类。"

#: doc/classes/BaseButton.xml:7
msgid ""
"BaseButton is the abstract base class for buttons, so it shouldn't be used "
"directly (it doesn't display anything). Other types of buttons inherit from "
"it."
msgstr ""
"BaseButton是按钮的抽象基类,所以不应该直接使用它(它不显示任何东西)。其他类"
"型的按钮都继承自它。"

#: doc/classes/BaseButton.xml:15
msgid ""
"Called when the button is pressed. If you need to know the button's pressed "
"state (and [member toggle_mode] is active), use [method _toggled] instead."
msgstr ""
"当按钮被按下时调用。如果你需要知道按钮被按下的状态(并且 [member toggle_mode] "
"is active]是活动状态),请使用[method _toggled]代替。"

#: doc/classes/BaseButton.xml:22
msgid ""
"Called when the button is toggled (only if [member toggle_mode] is active)."
msgstr "当按钮被切换时调用(仅当 [member toggle_mode] 处于活动状态时)。"

#: doc/classes/BaseButton.xml:28
msgid ""
"Returns the visual state used to draw the button. This is useful mainly when "
"implementing your own draw code by either overriding _draw() or connecting "
"to \"draw\" signal. The visual state of the button is defined by the [enum "
"DrawMode] enum."
msgstr ""
"返回用于绘制按钮的视觉状态。当您通过覆盖_draw()或连接到 \"draw \"信号来实现您"
"自己的绘制代码时,这很有用。按钮的视觉状态由[enum DrawMode]枚举定义。"

#: doc/classes/BaseButton.xml:34
msgid ""
"Returns [code]true[/code] if the mouse has entered the button and has not "
"left it yet."
msgstr "如果鼠标已进入按钮,且尚未离开,则返回[code]true[/code]。"

#: doc/classes/BaseButton.xml:41
msgid ""
"Changes the [member pressed] state of the button, without emitting [signal "
"toggled]. Use when you just want to change the state of the button without "
"sending the pressed event (e.g. when initializing scene). Only works if "
"[member toggle_mode] is [code]true[/code].\n"
"[b]Note:[/b] This method doesn't unpress other buttons in its button [member "
"group]."
msgstr ""

#: doc/classes/BaseButton.xml:48
msgid ""
"Determines when the button is considered clicked, one of the [enum "
"ActionMode] constants."
msgstr "确定按钮何时被认为被点击,是 [enum ActionMode] 常量之一。"

#: doc/classes/BaseButton.xml:51
msgid ""
"Binary mask to choose which mouse buttons this button will respond to.\n"
"To allow both left-click and right-click, use [code]BUTTON_MASK_LEFT | "
"BUTTON_MASK_RIGHT[/code]."
msgstr ""
"二进制掩码,用于选择该按钮将响应的鼠标按钮。\n"
"要同时允许左键和右键,请使用 [code]BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT[/"
"code] 。"

#: doc/classes/BaseButton.xml:55
msgid ""
"If [code]true[/code], the button is in disabled state and can't be clicked "
"or toggled."
msgstr "如果[code]true[/code],则该按钮处于禁用状态,无法点击或切换。"

#: doc/classes/BaseButton.xml:58
msgid ""
"[i]Deprecated.[/i] This property has been deprecated due to redundancy and "
"will be removed in Godot 4.0. This property no longer has any effect when "
"set. Please use [member Control.focus_mode] instead."
msgstr ""

#: doc/classes/BaseButton.xml:62
msgid "[ButtonGroup] associated to the button."
msgstr "与按钮相关联的[ButtonGroup]。"

#: doc/classes/BaseButton.xml:65
msgid ""
"If [code]true[/code], the button stays pressed when moving the cursor "
"outside the button while pressing it.\n"
"[b]Note:[/b] This property only affects the button's visual appearance. "
"Signals will be emitted at the same moment regardless of this property's "
"value."
msgstr ""
"如果[code]true[/code],当按下按钮时将光标移到按钮外时,按钮会保持按下状态。\n"
"[b]注意:[/b]该属性只影响按钮的视觉外观。无论该属性的值是多少,信号都会在同一"
"时刻发出。"

#: doc/classes/BaseButton.xml:69
msgid ""
"If [code]true[/code], the button's state is pressed. Means the button is "
"pressed down or toggled (if [member toggle_mode] is active). Only works if "
"[member toggle_mode] is [code]true[/code].\n"
"[b]Note:[/b] Setting [member pressed] will result in [signal toggled] to be "
"emitted. If you want to change the pressed state without emitting that "
"signal, use [method set_pressed_no_signal]."
msgstr ""

#: doc/classes/BaseButton.xml:73
msgid "[ShortCut] associated to the button."
msgstr "与按钮相关联的[ShortCut]。"

#: doc/classes/BaseButton.xml:76
msgid ""
"If [code]true[/code], the button will add information about its shortcut in "
"the tooltip."
msgstr "如果[code]true[/code],按钮将在工具提示中添加其快捷方式的信息。"

#: doc/classes/BaseButton.xml:79
msgid ""
"If [code]true[/code], the button is in toggle mode. Makes the button flip "
"state between pressed and unpressed each time its area is clicked."
msgstr ""
"如果[code]true[/code],则按钮处于切换模式。使按钮在每次点击其区域时,在按下和"
"未按下之间转换状态。"

#: doc/classes/BaseButton.xml:85
msgid "Emitted when the button starts being held down."
msgstr "当按钮开始被按下时发出。"

#: doc/classes/BaseButton.xml:90
msgid "Emitted when the button stops being held down."
msgstr "当按钮停止按下时发出。"

#: doc/classes/BaseButton.xml:95
msgid ""
"Emitted when the button is toggled or pressed. This is on [signal "
"button_down] if [member action_mode] is [constant ACTION_MODE_BUTTON_PRESS] "
"and on [signal button_up] otherwise.\n"
"If you need to know the button's pressed state (and [member toggle_mode] is "
"active), use [signal toggled] instead."
msgstr ""
"当按钮被切换或按下时发出。如果 [member action_mode] 是 [constant "
"ACTION_MODE_BUTTON_PRESS],则在 [signal button_down] 上,否则在 [signal "
"button_up] 上。\n"
"如果您需要知道按钮的按压状态(并且 [member toggle_mode] 是活动的),请使用"
"[signal toggled]代替。"

#: doc/classes/BaseButton.xml:102
msgid ""
"Emitted when the button was just toggled between pressed and normal states "
"(only if [member toggle_mode] is active). The new state is contained in the "
"[code]button_pressed[/code] argument."
msgstr ""
"当按钮刚刚在按下和正常状态之间切换时发出(仅当[member toggle_mode]处于活动状态"
"时)。新状态包含在[code]button_pressed[/code]参数中。"

#: doc/classes/BaseButton.xml:108
msgid ""
"The normal state (i.e. not pressed, not hovered, not toggled and enabled) of "
"buttons."
msgstr "按钮的正常状态(即没有按下、没有悬停、没有切换和启用)。"

#: doc/classes/BaseButton.xml:111
msgid "The state of buttons are pressed."
msgstr "按钮被按下的状态。"

#: doc/classes/BaseButton.xml:114
msgid "The state of buttons are hovered."
msgstr "按钮的状态为悬停。"

#: doc/classes/BaseButton.xml:117
msgid "The state of buttons are disabled."
msgstr "按钮的状态为禁用。"

#: doc/classes/BaseButton.xml:120
msgid "The state of buttons are both hovered and pressed."
msgstr "按钮的状态既是悬停的,也是按下的。"

#: doc/classes/BaseButton.xml:123
msgid "Require just a press to consider the button clicked."
msgstr "只需要按一下就可以认为按钮被点击了。"

#: doc/classes/BaseButton.xml:126
msgid ""
"Require a press and a subsequent release before considering the button "
"clicked."
msgstr "要求按下后再释放,才算点击了按钮。"

#: doc/classes/Basis.xml:4
msgid "3×3 matrix datatype."
msgstr "3×3矩阵数据类型。"

#: doc/classes/Basis.xml:7
msgid ""
"3×3 matrix used for 3D rotation and scale. Almost always used as an "
"orthogonal basis for a Transform.\n"
"Contains 3 vector fields X, Y and Z as its columns, which are typically "
"interpreted as the local basis vectors of a transformation. For such use, it "
"is composed of a scaling and a rotation matrix, in that order (M = R.S).\n"
"Can also be accessed as array of 3D vectors. These vectors are normally "
"orthogonal to each other, but are not necessarily normalized (due to "
"scaling).\n"
"For more information, read the \"Matrices and transforms\" documentation "
"article."
msgstr ""
"用于三维旋转和缩放的3×3矩阵。几乎总是用作变换的正交基础。\n"
"包含3个向量场X,Y和Z作为其列,通常被解释为变换的局部基础向量。对于这种用途,"
"它由一个缩放矩阵和一个旋转矩阵组成,依次为(M=R.S)。\n"
"也可以作为三维向量的数组来访问。这些向量通常是相互正交的,但不一定是归一化的"
"(由于缩放)。\n"
"更多信息,请阅读 \"矩阵和变换\" 文档文章。"

#: doc/classes/Basis.xml:14 doc/classes/Transform.xml:12
#: doc/classes/Transform2D.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/math/matrices_and_transforms."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/math/"
"matrices_and_transforms.html"

#: doc/classes/Basis.xml:15 doc/classes/Transform.xml:13
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/3d/using_transforms.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/using_transforms.html"

#: doc/classes/Basis.xml:16 doc/classes/Line2D.xml:11
#: doc/classes/Transform.xml:14 doc/classes/Transform2D.xml:13
#: doc/classes/Vector2.xml:15 doc/classes/Vector3.xml:15
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/584"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Basis.xml:18 doc/classes/CylinderShape.xml:12
#: doc/classes/Dictionary.xml:88 doc/classes/DynamicFont.xml:18
#: doc/classes/DynamicFontData.xml:10 doc/classes/File.xml:29
#: doc/classes/Input.xml:12 doc/classes/InputEvent.xml:13
#: doc/classes/InputEventAction.xml:12 doc/classes/InputEventMouseMotion.xml:12
#: doc/classes/KinematicBody.xml:15 doc/classes/RayCast.xml:15
#: doc/classes/StaticBody.xml:13 doc/classes/SurfaceTool.xml:22
#: doc/classes/TextureButton.xml:12 doc/classes/TextureRect.xml:11
#: doc/classes/Thread.xml:13 doc/classes/VBoxContainer.xml:10
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/676"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Basis.xml:19 doc/classes/Line2D.xml:12
#: doc/classes/Transform.xml:16 doc/classes/Transform2D.xml:14
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/583"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Basis.xml:26
msgid "Constructs a pure rotation basis matrix from the given quaternion."
msgstr "根据给定的四元数构造一个纯旋转基矩阵。"

#: doc/classes/Basis.xml:33
msgid ""
"Constructs a pure rotation basis matrix from the given Euler angles (in the "
"YXZ convention: when *composing*, first Y, then X, and Z last), given in the "
"vector format as (X angle, Y angle, Z angle).\n"
"Consider using the [Quat] constructor instead, which uses a quaternion "
"instead of Euler angles."
msgstr ""
"根据给定的欧拉角构造一个纯旋转基础矩阵(按照 YXZ 惯例:当*合成时,先 Y,然后 "
"X,最后 Z),向量格式为(X 角,Y 角,Z 角)。\n"
"可以考虑使用[Quat]构造函数代替,它使用四元组代替欧拉角。"

#: doc/classes/Basis.xml:42
msgid ""
"Constructs a pure rotation basis matrix, rotated around the given "
"[code]axis[/code] by [code]phi[/code], in radians. The axis must be a "
"normalized vector."
msgstr ""
"构造一个纯旋转基阵,以弧度为单位,围绕给定的 [code]axis[/code] 旋转 "
"[code]phi[/code] 个弧度。轴必须是归一化向量。"

#: doc/classes/Basis.xml:51
msgid "Constructs a basis matrix from 3 axis vectors (matrix columns)."
msgstr "从3轴向量(矩阵列)构造一个基础矩阵。"

#: doc/classes/Basis.xml:57
msgid ""
"Returns the determinant of the basis matrix. If the basis is uniformly "
"scaled, its determinant is the square of the scale.\n"
"A negative determinant means the basis has a negative scale. A zero "
"determinant means the basis isn't invertible, and is usually considered "
"invalid."
msgstr ""
"返回基数矩阵的行列式。如果基数是均匀缩放的,它的行列式是缩放的平方。\n"
"负的行列式意味着基数的比例是负的。负的行列式意味着基数不可逆,通常被认为无"
"效。"

#: doc/classes/Basis.xml:64
msgid ""
"Returns the basis's rotation in the form of Euler angles (in the YXZ "
"convention: when decomposing, first Z, then X, and Y last). The returned "
"vector contains the rotation angles in the format (X angle, Y angle, Z "
"angle).\n"
"Consider using the [method get_rotation_quat] method instead, which returns "
"a [Quat] quaternion instead of Euler angles."
msgstr ""
"以欧拉角的形式返回基础的旋转角度(按照 YXZ 惯例:分解时,先 Z,再 X,最后 "
"Y)。返回的向量包含格式为(X角,Y角,Z角)的旋转角。\n"
"可以考虑使用[get_rotation_quat]方法代替,该方法返回的是[Quat]四元组而不是欧拉"
"角。"

#: doc/classes/Basis.xml:71
msgid ""
"This function considers a discretization of rotations into 24 points on unit "
"sphere, lying along the vectors (x,y,z) with each component being either -1, "
"0, or 1, and returns the index of the point best representing the "
"orientation of the object. It is mainly used by the [GridMap] editor. For "
"further details, refer to the Godot source code."
msgstr ""
"这个函数考虑将单位球面上的旋转分解成24个点,沿向量(x,y,z)放置,每个分量为-1、"
"0或1,并返回最能代表物体方向的点的索引。它主要由 [GridMap] 编辑器使用。更多细"
"节请参考Godot源码。"

#: doc/classes/Basis.xml:77
msgid ""
"Returns the basis's rotation in the form of a quaternion. See [method "
"get_euler] if you need Euler angles, but keep in mind quaternions should "
"generally be preferred to Euler angles."
msgstr ""
"以四元数的形式返回基础的旋转。如果你需要欧拉角,请参见 [get_euler] 方法,但通"
"常首选四元数而不是欧拉角。"

#: doc/classes/Basis.xml:83
msgid ""
"Assuming that the matrix is the combination of a rotation and scaling, "
"return the absolute value of scaling factors along each axis."
msgstr "假设矩阵是旋转和缩放的组合,返回沿各轴缩放系数的绝对值。"

#: doc/classes/Basis.xml:89
msgid "Returns the inverse of the matrix."
msgstr "返回矩阵的逆值。"

#: doc/classes/Basis.xml:97
#, fuzzy
msgid ""
"Returns [code]true[/code] if this basis and [code]b[/code] are approximately "
"equal, by calling [code]is_equal_approx[/code] on each component.\n"
"[b]Note:[/b] For complicated reasons, the epsilon argument is always "
"discarded. Don't use the epsilon argument, it does nothing."
msgstr ""
"通过对每个分量调用[code]is_equal_approx[/code],如果这个基础和[code]b[/code]"
"近似相等,返回[code]true[/code]。"

#: doc/classes/Basis.xml:104
msgid ""
"Returns the orthonormalized version of the matrix (useful to call from time "
"to time to avoid rounding error for orthogonal matrices). This performs a "
"Gram-Schmidt orthonormalization on the basis of the matrix."
msgstr ""
"返回矩阵的正交归一化版本(对于正交矩阵来说,偶尔调用以避免四舍五入错误是有用"
"的)。这将在矩阵的基础上执行 Gram-Schmidt 正交化。"

#: doc/classes/Basis.xml:112
msgid ""
"Introduce an additional rotation around the given axis by phi (radians). The "
"axis must be a normalized vector."
msgstr ""
"围绕给定轴线引入一个额外的旋转phi(弧度)。该轴必须是一个归一化的向量。"

#: doc/classes/Basis.xml:119
msgid ""
"Introduce an additional scaling specified by the given 3D scaling factor."
msgstr "引入一个由给定的3D缩放因子指定的附加缩放。"

#: doc/classes/Basis.xml:127
msgid ""
"Assuming that the matrix is a proper rotation matrix, slerp performs a "
"spherical-linear interpolation with another rotation matrix."
msgstr ""
"假设该矩阵是一个合适的旋转矩阵,slerp与另一个旋转矩阵进行球面直线插值。"

#: doc/classes/Basis.xml:134
msgid "Transposed dot product with the X axis of the matrix."
msgstr "矩阵X轴的转置点积。"

#: doc/classes/Basis.xml:141
msgid "Transposed dot product with the Y axis of the matrix."
msgstr "与矩阵Y轴的转置点积。"

#: doc/classes/Basis.xml:148
msgid "Transposed dot product with the Z axis of the matrix."
msgstr "与矩阵Z轴的转置点积。"

#: doc/classes/Basis.xml:154
msgid "Returns the transposed version of the matrix."
msgstr "返回矩阵的转置版本。"

#: doc/classes/Basis.xml:161
msgid "Returns a vector transformed (multiplied) by the matrix."
msgstr "返回一个被矩阵转换(乘法)的向量。"

#: doc/classes/Basis.xml:168
msgid ""
"Returns a vector transformed (multiplied) by the transposed basis matrix.\n"
"[b]Note:[/b] This results in a multiplication by the inverse of the matrix "
"only if it represents a rotation-reflection."
msgstr ""
"返回一个由转置基数矩阵变换(乘法)的向量。\n"
"[b]注意:[/b]只有当矩阵代表旋转反射时,才会产生矩阵的反相乘法。"

#: doc/classes/Basis.xml:175 doc/classes/Transform2D.xml:150
msgid ""
"The basis matrix's X vector (column 0). Equivalent to array index [code]0[/"
"code]."
msgstr "基本矩阵的X向量(第0列)。等效于数组索引[code] 0 [/code]。"

#: doc/classes/Basis.xml:178 doc/classes/Transform2D.xml:153
msgid ""
"The basis matrix's Y vector (column 1). Equivalent to array index [code]1[/"
"code]."
msgstr "基础矩阵的Y向量(第1列)。相当于数组索引[code]1[/code]。"

#: doc/classes/Basis.xml:181
msgid ""
"The basis matrix's Z vector (column 2). Equivalent to array index [code]2[/"
"code]."
msgstr "基础矩阵的Z向量(第2列)。相当于数组索引[code]2[/code]。"

#: doc/classes/Basis.xml:186
msgid ""
"The identity basis, with no rotation or scaling applied.\n"
"This is identical to calling [code]Basis()[/code] without any parameters. "
"This constant can be used to make your code clearer, and for consistency "
"with C#."
msgstr ""
"无旋转或缩放的单位基底。\n"
"这与调用[code]Basis()[/code]而不使用任何参数是一样的。这个常量可以用来让你的"
"代码更清晰,并与C#保持一致。"

#: doc/classes/Basis.xml:190
msgid ""
"The basis that will flip something along the X axis when used in a "
"transformation."
msgstr "在变换中使用时,会沿X轴翻转某物的基础。"

#: doc/classes/Basis.xml:193
msgid ""
"The basis that will flip something along the Y axis when used in a "
"transformation."
msgstr "在变换中使用时,会沿Y轴翻转某物的基础。"

#: doc/classes/Basis.xml:196
msgid ""
"The basis that will flip something along the Z axis when used in a "
"transformation."
msgstr "在变换中使用时,会沿Z轴翻转某物的基础。"

#: doc/classes/BitMap.xml:4
msgid "Boolean matrix."
msgstr "布尔矩阵."

#: doc/classes/BitMap.xml:7
msgid ""
"A two-dimensional array of boolean values, can be used to efficiently store "
"a binary matrix (every matrix element takes only one bit) and query the "
"values using natural cartesian coordinates."
msgstr ""
"布尔值的二维数组,可以用来有效地存储一个二进制矩阵(每个矩阵元素只占一个"
"位),并使用自然的笛卡尔坐标查询数值。"

#: doc/classes/BitMap.xml:16
msgid ""
"Creates a bitmap with the specified size, filled with [code]false[/code]."
msgstr "创建一个指定尺寸的位图,用[code]false[/code]填充。"

#: doc/classes/BitMap.xml:24
msgid ""
"Creates a bitmap that matches the given image dimensions, every element of "
"the bitmap is set to [code]false[/code] if the alpha value of the image at "
"that position is equal to [code]threshold[/code] or less, and [code]true[/"
"code] in other case."
msgstr ""
"创建一个与给定图像尺寸相匹配的位图,如果图像在该位置的alpha值等于"
"[code]threshold[/code]或更小,则位图的每个元素都设置为[code]false[/code],其"
"他情况下为[code]true[/code]。"

#: doc/classes/BitMap.xml:31
msgid "Returns bitmap's value at the specified position."
msgstr "返回位图在指定位置的值。"

#: doc/classes/BitMap.xml:37
msgid "Returns bitmap's dimensions."
msgstr "返回位图的尺寸。"

#: doc/classes/BitMap.xml:43
msgid ""
"Returns the amount of bitmap elements that are set to [code]true[/code]."
msgstr "返回设置为[code]true[/code]的位图元素的数量。"

#: doc/classes/BitMap.xml:51
msgid ""
"Applies morphological dilation to the bitmap. The first argument is the "
"dilation amount, Rect2 is the area where the dilation will be applied."
msgstr ""

#: doc/classes/BitMap.xml:66
msgid ""
"Sets the bitmap's element at the specified position, to the specified value."
msgstr "将位图中指定位置的元素设置为指定值。"

#: doc/classes/BitMap.xml:74
msgid "Sets a rectangular portion of the bitmap to the specified value."
msgstr "将位图的矩形部分设置为指定值。"

#: doc/classes/BitmapFont.xml:4
msgid ""
"Renders text using fonts under the [url=https://www.angelcode.com/products/"
"bmfont/]BMFont[/url] format.\n"
"Handles files with the [code].fnt[/code] extension."
msgstr ""
"使用[url=https://www.angelcode.com/products/bmfont/]BMFont[/url]格式的字体来"
"渲染文本。\n"
"处理扩展名为[code].fnt[/code]的文件。"

#: doc/classes/BitmapFont.xml:8
msgid ""
"Renders text using [code]*.fnt[/code] fonts containing texture atlases. "
"Supports distance fields. For using vector font files like TTF directly, see "
"[DynamicFont]."
msgstr ""
"使用[code]*.fnt[/code]包含纹理图库的字体来渲染文本。支持距离字段。关于直接使"
"用TTF等矢量字体文件,请参见[DynamicFont]。"

#: doc/classes/BitmapFont.xml:21
msgid ""
"Adds a character to the font, where [code]character[/code] is the Unicode "
"value, [code]texture[/code] is the texture index, [code]rect[/code] is the "
"region in the texture (in pixels!), [code]align[/code] is the (optional) "
"alignment for the character and [code]advance[/code] is the (optional) "
"advance."
msgstr ""
"添加一个字符到字体中,其中[code]character[/code]是Unicode值,[code]texture[/"
"code]是纹理索引,[code]rect[/code]是纹理中的区域(以像素为单位!),"
"[code]align[/code]是字符的对齐方式(可选),[code]advance[/code]是前进方式"
"(可选)。"

#: doc/classes/BitmapFont.xml:30
msgid ""
"Adds a kerning pair to the [BitmapFont] as a difference. Kerning pairs are "
"special cases where a typeface advance is determined by the next character."
msgstr ""
"在[BitmapFont]中添加一个字距对作为差值。字距对是一种特殊的情况,在这种情况"
"下,字体的前进是由下一个字符决定的。"

#: doc/classes/BitmapFont.xml:37
msgid "Adds a texture to the [BitmapFont]."
msgstr "为[BitmapFont]添加一个纹理。"

#: doc/classes/BitmapFont.xml:43
msgid "Clears all the font data and settings."
msgstr "清除所有字体数据和设置。"

#: doc/classes/BitmapFont.xml:50
msgid ""
"Creates a BitmapFont from the [code]*.fnt[/code] file at [code]path[/code]."
msgstr "从 [code]*.fnt[/code] 文件的 [code]path[/code] 处创建一个 BitmapFont。"

#: doc/classes/BitmapFont.xml:58
msgid "Returns a kerning pair as a difference."
msgstr "返回字距对作为差异。"

#: doc/classes/BitmapFont.xml:65
msgid "Returns the font atlas texture at index [code]idx[/code]."
msgstr "返回位于索引[code]idx[/code]处的字体Atlas纹理。"

#: doc/classes/BitmapFont.xml:71
msgid "Returns the number of textures in the BitmapFont atlas."
msgstr "返回BitmapFont图谱中纹理的数量。"

#: doc/classes/BitmapFont.xml:77
msgid "Ascent (number of pixels above the baseline)."
msgstr "上升(基线以上的像素数)。"

#: doc/classes/BitmapFont.xml:80
msgid "If [code]true[/code], distance field hint is enabled."
msgstr "如果[code]true[/code],则启用距离字段提示。"

#: doc/classes/BitmapFont.xml:83
msgid "The fallback font."
msgstr "备用字体。"

#: doc/classes/BitmapFont.xml:86
msgid "Total font height (ascent plus descent) in pixels."
msgstr "字体总高度(上升加下降),单位为像素。"

#: doc/classes/Bone2D.xml:4
msgid "Joint used with [Skeleton2D] to control and animate other nodes."
msgstr "与[Skeleton2D]一起使用的关节,用于控制其他节点并使其具有动画效果。"

#: doc/classes/Bone2D.xml:7
msgid ""
"Use a hierarchy of [code]Bone2D[/code] bound to a [Skeleton2D] to control, "
"and animate other [Node2D] nodes.\n"
"You can use [code]Bone2D[/code] and [code]Skeleton2D[/code] nodes to animate "
"2D meshes created with the Polygon 2D 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 ""
"使用绑定到[Skeleton2D]的[code]Bone2D[/code]的层次结构来控制,并对其他[Node2D]"
"节点进行动画。\n"
"您可以使用[code]Bone2D[/code]和[code]Skeleton2D[/code]节点对使用Polygon 2D UV"
"编辑器创建的2D网格进行动画制作。\n"
"每个骨骼都有一个[member rest]变换,你可以用[method apply_rest]来重置。这些休"
"息姿势是相对于骨的父节点而言的。\n"
"如果在编辑器中,你可以使用菜单选项设置整个骨架的休息姿势,从代码中,你需要遍"
"历骨骼来设置它们各自的休息姿势。"

#: doc/classes/Bone2D.xml:18
msgid "Stores the node's current transforms in [member rest]."
msgstr "将节点当前的变换存储在[member rest]中。"

#: doc/classes/Bone2D.xml:24
msgid ""
"Returns the node's index as part of the entire skeleton. See [Skeleton2D]."
msgstr "返回节点的索引,作为整个骨架的一部分。参见[Skeleton2D]。"

#: doc/classes/Bone2D.xml:30
msgid ""
"Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have "
"a parent, or its rest pose relative to its parent."
msgstr ""
"如果节点没有父节点,返回节点的[member rest] [code]Transform2D[/code],或者返"
"回它相对于父节点的静止姿势。"

#: doc/classes/Bone2D.xml:36
msgid ""
"Length of the bone's representation drawn in the editor's viewport in pixels."
msgstr "在编辑器的视口中绘制的骨骼的长度,单位为像素。"

#: doc/classes/Bone2D.xml:39
msgid ""
"Rest transform of the bone. You can reset the node's transforms to this "
"value using [method apply_rest]."
msgstr ""
"骨骼的静止变换。您可以使用[method apply_rest]将节点的变换重置为这个值。"

#: doc/classes/BoneAttachment.xml:4
msgid "A node that will attach to a bone."
msgstr "一个会附着在骨骼上的节点。"

#: doc/classes/BoneAttachment.xml:7
#, fuzzy
msgid ""
"This node must be the child of a [Skeleton] node. You can then select a bone "
"for this node to attach to. The BoneAttachment node will copy the transform "
"of the selected bone."
msgstr ""
"此节点必须是[Skeleton3D]节点的子节点。然后,您可以为这个节点选择一个骨骼来附"
"着。BoneAttachment3D 节点将复制所选骨骼的变形。"

#: doc/classes/BoneAttachment.xml:15
msgid "The name of the attached bone."
msgstr "附着骨骼的名称。"

#: doc/classes/bool.xml:4
msgid "Boolean built-in type."
msgstr "布尔型内置型。"

#: doc/classes/bool.xml:7
#, fuzzy
msgid ""
"Boolean is a built-in type. There are two boolean values: [code]true[/code] "
"and [code]false[/code]. You can think of it as a switch with on or off (1 or "
"0) setting. Booleans are used in programming for logic in condition "
"statements, like [code]if[/code] statements.\n"
"Booleans can be directly used in [code]if[/code] statements. The code below "
"demonstrates this on the [code]if can_shoot:[/code] line. You don't need to "
"use [code]== true[/code], you only need [code]if can_shoot:[/code]. "
"Similarly, use [code]if not can_shoot:[/code] rather than [code]== false[/"
"code].\n"
"[codeblock]\n"
"var can_shoot = true\n"
"\n"
"func shoot():\n"
"    if can_shoot:\n"
"        pass # Perform shooting actions here.\n"
"[/codeblock]\n"
"The following code will only create a bullet if both conditions are met: "
"action \"shoot\" is pressed and if [code]can_shoot[/code] is [code]true[/"
"code].\n"
"[b]Note:[/b] [code]Input.is_action_pressed(\"shoot\")[/code] is also a "
"boolean that is [code]true[/code] when \"shoot\" is pressed and [code]false[/"
"code] when \"shoot\" isn't pressed.\n"
"[codeblock]\n"
"var can_shoot = true\n"
"\n"
"func shoot():\n"
"    if can_shoot and Input.is_action_pressed(\"shoot\"):\n"
"        create_bullet()\n"
"[/codeblock]\n"
"The following code will set [code]can_shoot[/code] to [code]false[/code] and "
"start a timer. This will prevent player from shooting until the timer runs "
"out. Next [code]can_shoot[/code] will be set to [code]true[/code] again "
"allowing player to shoot once again.\n"
"[codeblock]\n"
"var can_shoot = true\n"
"onready var cool_down = $CoolDownTimer\n"
"\n"
"func shoot():\n"
"    if can_shoot and Input.is_action_pressed(\"shoot\"):\n"
"        create_bullet()\n"
"        can_shoot = false\n"
"        cool_down.start()\n"
"\n"
"func _on_CoolDownTimer_timeout():\n"
"    can_shoot = true\n"
"[/codeblock]"
msgstr ""
"布尔型是一个内置类型。有两个布尔值。[code]true[/code]和[code]false[/code]。你"
"可以把它想象成一个开关,有开或关(1或0)的设置。布尔运算在编程中用于条件语句"
"中的逻辑,比如[code]if[/code]语句。\n"
"布尔运算可以直接用于[code]if[/code]语句中。下面的代码在[code]if can_shoot:[/"
"code]行中演示了这一点。你不需要使用[code]==true[/code],你只需要[code]if "
"can_shoot:[/code]。同样,使用 [code]if not can_shoot:[/code] 而不是 [code]== "
"false[/code]。\n"
"[codeblock]\n"
"var can_shoot = true\n"
"\n"
"func shoot():\n"
"    if can_shoot:\n"
"        pass # Perform shooting actions here.\n"
"[/codeblock]\n"
"The following code will only create a bullet if both conditions are met: "
"action \"shoot\" is pressed and if [code]can_shoot[/code] is [code]true[/"
"code].\n"
"[b]Note:[/b] [code]Input.is_action_pressed(\"shoot\")[/code] is also a "
"boolean that is [code]true[/code] when \"shoot\" is pressed and [code]false[/"
"code] when \"shoot\" isn't pressed.\n"
"[codeblock]\n"
"var can_shoot = true\n"
"\n"
"func shoot():\n"
"    if can_shoot and Input.is_action_pressed(\"shoot\"):\n"
"        create_bullet()\n"
"[/codeblock]\n"
"The following code will set [code]can_shoot[/code] to [code]false[/code] and "
"start a timer. This will prevent player from shooting until the timer runs "
"out. Next [code]can_shoot[/code] will be set to [code]true[/code] again "
"allowing player to shoot once again.\n"
"[codeblock]\n"
"var can_shoot = true\n"
"onready var cool_down = $CoolDownTimer\n"
"\n"
"func shoot():\n"
"    if can_shoot and Input.is_action_pressed(\"shoot\"):\n"
"        create_bullet()\n"
"        can_shoot = false\n"
"        cool_down.start()\n"
"\n"
"func _on_CoolDownTimer_timeout():\n"
"    can_shoot = true\n"
"[/codeblock]"

#: doc/classes/bool.xml:47
msgid ""
"Cast an [int] value to a boolean value, this method will return [code]false[/"
"code] if [code]0[/code] is passed in, and [code]true[/code] for all other "
"ints."
msgstr ""
"将一个[int]值转换为一个布尔值,如果传入[code]0[/code],本方法将返回"
"[code]false[/code],对于所有其他int,本方法将返回[code]true[/code]。"

#: doc/classes/bool.xml:54
msgid ""
"Cast a [float] value to a boolean value, this method will return "
"[code]false[/code] if [code]0.0[/code] is passed in, and [code]true[/code] "
"for all other floats."
msgstr ""
"将一个[float]值转换为一个布尔值,如果传入[code]0.0[/code],本方法将返回"
"[code]false[/code],对于其他所有的float,本方法将返回[code]true[/code]。"

#: doc/classes/bool.xml:61
msgid ""
"Cast a [String] value to a boolean value, this method will return "
"[code]false[/code] if [code]\"\"[/code] is passed in, and [code]true[/code] "
"for all non-empty strings.\n"
"Examples: [code]bool(\"False\")[/code] returns [code]true[/code], "
"[code]bool(\"\")[/code] returns [code]false[/code]."
msgstr ""
"将一个[String]值转换为布尔值,如果传入[code]\"\"[/code],本方法将返回"
"[code]false[/code],对于所有非空字符串,本方法将返回[code]true[/code]。\n"
"示例。[code]bool(\"False\")[/code] returns [code]true[/code],"
"[code]bool(\"\")[/code] returns [code]false[/code]。"

#: doc/classes/BoxContainer.xml:4
msgid "Base class for box containers."
msgstr "盒子容器的基类。"

#: doc/classes/BoxContainer.xml:7
#, fuzzy
msgid ""
"Arranges child controls vertically or horizontally, and rearranges the "
"controls automatically when their minimum size changes."
msgstr "垂直或水平排列子[Control]节点,并在其最小尺寸更改时自动重新排列它们。"

#: doc/classes/BoxContainer.xml:16
#, fuzzy
msgid ""
"Adds a control to the box as a spacer. If [code]true[/code], [code]begin[/"
"code] will insert the spacer control in front of other children."
msgstr ""
"在方框中添加一个 [Control] 节点作为间隔。如果 [code]begin[/code] 是 "
"[code]true[/code],它将在所有其他子节点前插入 [Control] 节点。"

#: doc/classes/BoxContainer.xml:22
#, fuzzy
msgid ""
"The alignment of the container's children (must be one of [constant "
"ALIGN_BEGIN], [constant ALIGN_CENTER] or [constant ALIGN_END])."
msgstr ""
"容器子代的对齐方式(必须是[constant ALIGN_BEGIN]、[constant ALIGN_CENTER]或"
"[constant ALIGN_END]中的一个)。"

#: doc/classes/BoxContainer.xml:28
msgid "Aligns children with the beginning of the container."
msgstr "将子项与容器的开端对齐。"

#: doc/classes/BoxContainer.xml:31
msgid "Aligns children with the center of the container."
msgstr "将子项与容器的中心对齐。"

#: doc/classes/BoxContainer.xml:34
msgid "Aligns children with the end of the container."
msgstr "将子项与容器的末端对齐。"

#: doc/classes/BoxShape.xml:4
msgid "Box shape resource."
msgstr "盒形资源。"

#: doc/classes/BoxShape.xml:7
#, fuzzy
msgid "3D box shape that can be a child of a [PhysicsBody] or [Area]."
msgstr "3D盒子形状可以是[PhysicsBody3D]或[Area3D]的子级。"

#: doc/classes/BoxShape.xml:10 doc/classes/CapsuleShape.xml:10
#: doc/classes/ConcavePolygonShape.xml:11 doc/classes/ConvexPolygonShape.xml:10
#: doc/classes/CylinderShape.xml:11 doc/classes/ProjectSettings.xml:13
#: doc/classes/RigidBody.xml:16 doc/classes/SphereShape.xml:10
#: doc/classes/StaticBody.xml:11
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/675"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/BoxShape.xml:11 doc/classes/CollisionShape.xml:11
#: modules/gridmap/doc_classes/GridMap.xml:16 doc/classes/KinematicBody.xml:13
#: doc/classes/Mesh.xml:11 doc/classes/MeshInstance.xml:11
#: doc/classes/MeshLibrary.xml:10
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/126"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/BoxShape.xml:18
msgid ""
"The box's half extents. The width, height and depth of this shape is twice "
"the half extents."
msgstr "盒子的一半范围。这种形状的宽度,高度和深度是一半范围的两倍。"

#: doc/classes/Button.xml:4
msgid "Standard themed Button."
msgstr "标准主题按钮。"

#: doc/classes/Button.xml:7
#, fuzzy
msgid ""
"Button is the standard themed button. It can contain text and an icon, and "
"will display them according to the current [Theme].\n"
"[b]Example of creating a button and assigning an action when pressed by code:"
"[/b]\n"
"[codeblock]\n"
"func _ready():\n"
"    var button = Button.new()\n"
"    button.text = \"Click me\"\n"
"    button.connect(\"pressed\", self, \"_button_pressed\")\n"
"    add_child(button)\n"
"\n"
"func _button_pressed():\n"
"    print(\"Hello world!\")\n"
"[/codeblock]\n"
"Buttons (like all Control nodes) can also be created in the editor, but some "
"situations may require creating them from code.\n"
"See also [BaseButton] which contains common properties and methods "
"associated with this node.\n"
"[b]Note:[/b] Buttons do not interpret touch input and therefore don't "
"support multitouch, since mouse emulation can only press one button at a "
"given time. Use [TouchScreenButton] for buttons that trigger gameplay "
"movement or actions, as [TouchScreenButton] supports multitouch."
msgstr ""
"按钮是标准主题按钮。它可以包含文本和图标,并将根据当前的[主题]显示它们。\n"
"[b]创建按钮并在被代码按下时分配动作的示例:[/b]\n"
"[codeblock]\n"
"func _ready():\n"
"    var button = Button.new()\n"
"    button.text = \"Click me\"\n"
"    button.connect(\"pressed\", self, \"_button_pressed\")\n"
"    add_child(button)\n"
"\n"
"func _button_pressed():\n"
"    print(\"Hello world!\")\n"
"[/codeblock]\n"
"也可以在编辑器中创建按钮(如所有Control节点),但是某些情况下可能需要通过代码"
"创建它们。"

#: doc/classes/Button.xml:25 doc/classes/Dictionary.xml:89
#: doc/classes/GridContainer.xml:12 doc/classes/OS.xml:10
#: doc/classes/PoolStringArray.xml:11 doc/classes/ProjectSettings.xml:15
#: doc/classes/ResourceLoader.xml:11 doc/classes/RichTextLabel.xml:17
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/677"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Button.xml:31
msgid ""
"Text alignment policy for the button's text, use one of the [enum TextAlign] "
"constants."
msgstr "按钮文本的文本对齐策略,使用[enum TextAlign]常量之一。"

#: doc/classes/Button.xml:34
msgid ""
"When this property is enabled, text that is too large to fit the button is "
"clipped, when disabled the Button will always be wide enough to hold the "
"text."
msgstr ""
"当此属性被启用时,过大而无法容纳按钮的文本会被剪掉,当被禁用时,按钮将始终有"
"足够的宽度来容纳文本。"

#: doc/classes/Button.xml:37
msgid ""
"When enabled, the button's icon will expand/shrink to fit the button's size "
"while keeping its aspect."
msgstr "启用后,按钮的图标将展开/收缩以适应按钮的大小,同时保持其外观。"

#: doc/classes/Button.xml:40
msgid "Flat buttons don't display decoration."
msgstr "平面按钮不显示装饰。"

#: doc/classes/Button.xml:43
msgid ""
"Button's icon, if text is present the icon will be placed before the text."
msgstr "按钮的图标,如果有文字,图标将放在文字之前。"

#: doc/classes/Button.xml:46 doc/classes/LinkButton.xml:18
msgid "The button's text that will be displayed inside the button's area."
msgstr "按钮的文字,将显示在按钮的区域内。"

#: doc/classes/Button.xml:51
msgid "Align the text to the left."
msgstr "将文本向左对齐。"

#: doc/classes/Button.xml:54
msgid "Align the text to the center."
msgstr "将文本居中对齐。。"

#: doc/classes/Button.xml:57
msgid "Align the text to the right."
msgstr "将文本向右对齐。"

#: doc/classes/Button.xml:62
msgid "[StyleBox] used when the [Button] is disabled."
msgstr "当[Button]被禁用时,使用[StyleBox]。"

#: doc/classes/Button.xml:65
msgid ""
"[StyleBox] used when the [Button] is focused. It is displayed over the "
"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
"visual effect."
msgstr ""
"当[Button]获得焦点时使用的[StyleBox]。它显示在当前的[StyleBox]之上,所以使用"
"[StyleBoxEmpty]只是禁用焦点视觉效果。"

#: doc/classes/Button.xml:68
msgid "[Font] of the [Button]'s text."
msgstr "[Button]文本的[Font]。"

#: doc/classes/Button.xml:71
msgid "Default text [Color] of the [Button]."
msgstr "[Button]的默认文本[Color]。"

#: doc/classes/Button.xml:74
msgid "Text [Color] used when the [Button] is disabled."
msgstr "禁用[Button]时使用的文本[Color]。"

#: doc/classes/Button.xml:77
msgid "Text [Color] used when the [Button] is being hovered."
msgstr "悬停[Button]时使用的文本[Color]。"

#: doc/classes/Button.xml:80
msgid "Text [Color] used when the [Button] is being pressed."
msgstr "正在按下 [Button] 时使用的文本 [Color] 。"

#: doc/classes/Button.xml:83
msgid "[StyleBox] used when the [Button] is being hovered."
msgstr "悬停[Button]时使用的[StyleBox]。"

#: doc/classes/Button.xml:86
msgid "The horizontal space between [Button]'s icon and text."
msgstr "[Button]的图标和文本之间的水平间距。"

#: doc/classes/Button.xml:89
msgid "Default [StyleBox] for the [Button]."
msgstr "[Button]的默认[StyleBox]。"

#: doc/classes/Button.xml:92
msgid "[StyleBox] used when the [Button] is being pressed."
msgstr "按下[Button]时使用的[StyleBox]。"

#: doc/classes/ButtonGroup.xml:4
msgid "Group of Buttons."
msgstr "按钮组。"

#: doc/classes/ButtonGroup.xml:7
msgid ""
"Group of [Button]. All direct and indirect children buttons become radios. "
"Only one allows being pressed.\n"
"[member BaseButton.toggle_mode] should be [code]true[/code]."
msgstr ""
"[按钮]组。所有直接和间接的子按钮都成为 radios。只有一个允许被按下。\n"
"[member BaseButton.toggle_mode]应该是[code]true[/code]。"

#: doc/classes/ButtonGroup.xml:16
msgid ""
"Returns an [Array] of [Button]s who have this as their [ButtonGroup] (see "
"[member BaseButton.group])."
msgstr ""
"返回一个[Button]的[Array],这些[Button]的[ButtonGroup]都有这个功能(参见"
"[member BaseButton.group])。"

#: doc/classes/ButtonGroup.xml:22
msgid "Returns the current pressed button."
msgstr "返回当前按下的按钮。"

#: doc/classes/ButtonGroup.xml:33
#, fuzzy
msgid "Emitted when one of the buttons of the group is pressed."
msgstr "当该控制器上的一个按钮被按下时触发。"

#: doc/classes/Camera.xml:4
msgid "Camera node, displays from a point of view."
msgstr "摄像机节点,从一个角度显示。"

#: doc/classes/Camera.xml:7
#, fuzzy
msgid ""
"Camera is a special node that displays what is visible from its current "
"location. Cameras register themselves in the nearest [Viewport] node (when "
"ascending the tree). Only one camera can be active per viewport. If no "
"viewport is available ascending the tree, the camera will register in the "
"global viewport. In other words, a camera just provides 3D display "
"capabilities to a [Viewport], and, without one, a scene registered in that "
"[Viewport] (or higher viewports) can't be displayed."
msgstr ""
"[Camera3D]是一个特殊节点,显示从其当前位置可见的内容。摄像机将自己注册在最近"
"的[Viewport]节点中(升序场景树)。每个视口只能激活一个摄像机。如果场景树上没"
"有可用的视区,则摄影机将在全局视口中注册。换句话说,相机仅向[视口]提供3D显示"
"功能,而没有一个相机,则无法显示在[Viewport](或更高视口)中注册的场景。"

#: doc/classes/Camera.xml:17
msgid ""
"If this is the current camera, remove it from being current. If "
"[code]enable_next[/code] is [code]true[/code], request to make the next "
"camera current, if any."
msgstr ""
"如果这是当前摄像机,则将其从当前摄像机中移除。如果[code]enable_next[/code]是"
"[code]true[/code],请求使下一个摄像机成为当前摄像机(如果有)。"

#: doc/classes/Camera.xml:23
#, fuzzy
msgid "Returns the camera's RID from the [VisualServer]."
msgstr "从[RenderingServer]中返回摄像机的RID。"

#: doc/classes/Camera.xml:29
msgid ""
"Returns the transform of the camera plus the vertical ([member v_offset]) "
"and horizontal ([member h_offset]) offsets; and any other adjustments made "
"to the position and orientation of the camera by subclassed cameras such as "
"[ClippedCamera], [InterpolatedCamera] and [ARVRCamera]."
msgstr ""

#: doc/classes/Camera.xml:36
msgid ""
"Returns [code]true[/code] if the given [code]layer[/code] in the [member "
"cull_mask] is enabled, [code]false[/code] otherwise."
msgstr ""
"如果[成员cull_mask]中给定的[code]layer[/code]被启用,返回[code]true[/code],"
"否则返回[code]false[/code]。"

#: doc/classes/Camera.xml:42
#, fuzzy
msgid ""
"Returns the camera's frustum planes in world space units as an array of "
"[Plane]s in the following order: near, far, left, top, right, bottom. Not to "
"be confused with [member frustum_offset]."
msgstr ""
"以世界空间为单位,以[Plane]数组的形式返回相机的平截头体平面,顺序为:近、远、"
"左、上、右、下。不要与 [member frustum_offset] 混淆。"

#: doc/classes/Camera.xml:49
msgid ""
"Returns [code]true[/code] if the given position is behind the camera.\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]。\n"
"[b]注意:[/b] 返回[code]false[/code]的位置可能仍然在摄像机的视野之外。"

#: doc/classes/Camera.xml:56
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 "
"to become current once it's added."
msgstr ""
"使此摄像机成为[Viewport]的当前摄像机(见类的说明)。如果摄像机节点在场景树之"
"外,一旦添加,它将尝试成为当前摄像机。"

#: doc/classes/Camera.xml:63
msgid ""
"Returns a normal vector from the screen point location directed along the "
"camera. Orthogonal cameras are normalized. Perspective cameras account for "
"perspective, screen width/height, etc."
msgstr ""
"返回从屏幕点位置沿摄像机方向的法向量。正交摄像机会被归一化。透视摄像机考虑到"
"透视、屏幕宽度/高度等因素。"

#: doc/classes/Camera.xml:71
#, fuzzy
msgid ""
"Returns the 3D point in world space that maps to the given 2D coordinate in "
"the [Viewport] rectangle on a plane that is the given [code]z_depth[/code] "
"distance into the scene away from the camera."
msgstr ""
"返回世界空间中的 3D 点,该点在 [Viewport] 矩形中映射到给定 2D 坐标的平面上,"
"该平面的深度为给定 [code]z_depth[/code] 的距离到场景中与相机的距离。"

#: doc/classes/Camera.xml:78
#, fuzzy
msgid ""
"Returns a normal vector in world space, that is the result of projecting a "
"point on the [Viewport] rectangle by the camera projection. This is useful "
"for casting rays in the form of (origin, normal) for object intersection or "
"picking."
msgstr ""
"返回世界空间中的法线向量,即通过摄像机投影在[Viewport]矩形上的一个点的结果。"
"这对于以(原点,法线)的形式投射光线以进行物体交汇或选取很有用。"

#: doc/classes/Camera.xml:85
#, fuzzy
msgid ""
"Returns a 3D position in world space, that is the result of projecting a "
"point on the [Viewport] rectangle by the camera projection. This is useful "
"for casting rays in the form of (origin, normal) for object intersection or "
"picking."
msgstr ""
"返回世界空间中的3D位置,即通过摄像机投影在[Viewport]矩形上的一个点的结果。这"
"对于以(原点、法线)形式投射光线以进行物体交汇或选取很有用。"

#: doc/classes/Camera.xml:93
msgid ""
"Enables or disables the given [code]layer[/code] in the [member cull_mask]."
msgstr "启用或禁用[member cull_mask]中给定的[code]layer[/code]。"

#: doc/classes/Camera.xml:103
#, fuzzy
msgid ""
"Sets the camera projection to frustum mode (see [constant "
"PROJECTION_FRUSTUM]), by specifying a [code]size[/code], an [code]offset[/"
"code], and the [code]z_near[/code] and [code]z_far[/code] clip planes in "
"world space units."
msgstr ""
"通过指定 [code]size[/code]、[code]offset[/code],以及 [code]z_near[/code] 和 "
"[code]z_far[/code] 剪辑平面(以世界空间为单位),将摄像机投影设置为 frustum "
"模式(请参阅 [constant PROJECTION_FRUSTUM])。"

#: doc/classes/Camera.xml:112
#, fuzzy
msgid ""
"Sets the camera projection to orthogonal mode (see [constant "
"PROJECTION_ORTHOGONAL]), by specifying a [code]size[/code], and the "
"[code]z_near[/code] and [code]z_far[/code] clip planes in world space units. "
"(As a hint, 2D games often use this projection, with values specified in "
"pixels.)"
msgstr ""
"通过指定 [code] size[/code] 和 [code]z_near[/code] 和 [code]z_far[/code] 剪切"
"平面(以世界空间为单位),将摄像机投影设置为正交模式(参见 [constant "
"PROJECTION_ORTHOGONAL])。(提示一下,2D游戏经常使用这种投影,数值以像素为单"
"位。)"

#: doc/classes/Camera.xml:121
#, fuzzy
msgid ""
"Sets the camera projection to perspective mode (see [constant "
"PROJECTION_PERSPECTIVE]), by specifying a [code]fov[/code] (field of view) "
"angle in degrees, and the [code]z_near[/code] and [code]z_far[/code] clip "
"planes in world space units."
msgstr ""
"通过指定以角度为单位的 [code]fov[/code] (视场角),以及以世界空间为单位的 "
"[code]z_near[/code] 和 [code]z_far[/code] 剪辑平面,将摄像机的投影设置为透视"
"模式 (参见 [constant PROJECTION_PERSPECTIVE])。"

#: doc/classes/Camera.xml:128
msgid ""
"Returns the 2D coordinate in the [Viewport] rectangle that maps to the given "
"3D point in world space.\n"
"[b]Note:[/b] When using this to position GUI elements over a 3D viewport, "
"use [method is_position_behind] to prevent them from appearing if the 3D "
"point is behind the camera:\n"
"[codeblock]\n"
"# This code block is part of a script that inherits from Spatial.\n"
"# `control` is a reference to a node inheriting from Control.\n"
"control.visible = not get_viewport().get_camera()."
"is_position_behind(global_transform.origin)\n"
"control.rect_position = get_viewport().get_camera()."
"unproject_position(global_transform.origin)\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Camera.xml:141
msgid ""
"The culling mask that describes which 3D render layers are rendered by this "
"camera."
msgstr "描述此摄像机渲染哪些 3D 渲染层的剔除掩码。"

#: doc/classes/Camera.xml:144
msgid ""
"If [code]true[/code], the ancestor [Viewport] is currently using this camera."
msgstr "如果[code]true[/code],则说明祖级的[Viewport]当前正在使用这个摄像头。"

#: doc/classes/Camera.xml:147
msgid ""
"If not [constant DOPPLER_TRACKING_DISABLED], this camera will simulate the "
"[url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] for "
"objects changed in particular [code]_process[/code] methods. The Doppler "
"effect is only simulated for [AudioStreamPlayer3D] nodes that have [member "
"AudioStreamPlayer3D.doppler_tracking] set to a value other than [constant "
"AudioStreamPlayer3D.DOPPLER_TRACKING_DISABLED].\n"
"[b]Note:[/b] To toggle the Doppler effect preview in the editor, use the "
"Perspective menu in the top-left corner of the 3D viewport and toggle "
"[b]Enable Doppler[/b]."
msgstr ""

#: doc/classes/Camera.xml:151
msgid "The [Environment] to use for this camera."
msgstr "此摄像机要使用的[Environment]。"

#: doc/classes/Camera.xml:154
msgid ""
"The distance to the far culling boundary for this camera relative to its "
"local Z axis."
msgstr "该摄像机相对于其本地Z轴的远裁边界的距离。"

#: doc/classes/Camera.xml:157
#, fuzzy
msgid ""
"The camera's field of view angle (in degrees). Only applicable in "
"perspective mode. Since [member keep_aspect] locks one axis, [code]fov[/"
"code] sets the other axis' field of view angle.\n"
"For reference, the default vertical field of view value ([code]70.0[/code]) "
"is equivalent to a horizontal FOV of:\n"
"- ~86.07 degrees in a 4:3 viewport\n"
"- ~96.50 degrees in a 16:10 viewport\n"
"- ~102.45 degrees in a 16:9 viewport\n"
"- ~117.06 degrees in a 21:9 viewport"
msgstr ""
"摄像机的视场角(度)。仅适用于透视模式。由于[member keep_aspect]锁定一个轴,"
"[code]fov[/code]设置另一个轴的视场角。\n"
"作为参考,默认的垂直视场角值([code]75.0[/code])相当于水平视场角。\n"
"- 在4:3的视口中,约91.31度\n"
"- ~101.67度,在16:10的视口中\n"
"- ~107.51度,在16:9的视口中\n"
"- ~121.63度,在21:9的视口中"

#: doc/classes/Camera.xml:165
msgid ""
"The camera's frustum offset. This can be changed from the default to create "
"\"tilted frustum\" effects such as [url=https://zdoom.org/wiki/Y-shearing]Y-"
"shearing[/url]."
msgstr ""
"摄像机的机身偏移。可以更改默认值,以创建 \"倾斜frustum \"效果,如"
"[url=https://zdoom.org/wiki/Y-shearing]Y-shearing[/url]。"

#: doc/classes/Camera.xml:168
msgid "The horizontal (X) offset of the camera viewport."
msgstr "摄像机视窗的水平(X)偏移量。"

#: doc/classes/Camera.xml:171
msgid ""
"The axis to lock during [member fov]/[member size] adjustments. Can be "
"either [constant KEEP_WIDTH] or [constant KEEP_HEIGHT]."
msgstr ""
"在[member fov]/[member size]调整时要锁定的轴。可以是[constant KEEP_WIDTH]或"
"[constant KEEP_HEIGHT]。"

#: doc/classes/Camera.xml:174
msgid ""
"The distance to the near culling boundary for this camera relative to its "
"local Z axis."
msgstr "该摄像机相对于其本地Z轴到近裁边界的距离。"

#: doc/classes/Camera.xml:177
msgid ""
"The camera's projection mode. In [constant PROJECTION_PERSPECTIVE] mode, "
"objects' Z distance from the camera's local space scales their perceived "
"size."
msgstr ""
"摄像机的投影模式。在[constant PROJECTION_PERSPECTIVE]模式下,物体与摄像机局部"
"空间的Z距离会影响其感知的大小。"

#: doc/classes/Camera.xml:180
msgid ""
"The camera's size measured as 1/2 the width or height. Only applicable in "
"orthogonal mode. Since [member keep_aspect] locks on axis, [code]size[/code] "
"sets the other axis' size length."
msgstr ""
"摄像机的尺寸,以1/2的宽度或高度测量。仅适用于正交模式。由于[member "
"keep_aspect]锁定在轴上,因此[code]size[/code]设置其他轴的尺寸长度。"

#: doc/classes/Camera.xml:183
msgid "The vertical (Y) offset of the camera viewport."
msgstr "摄像机视窗的垂直(Y)偏移量。"

#: doc/classes/Camera.xml:188
msgid ""
"Perspective projection. Objects on the screen becomes smaller when they are "
"far away."
msgstr "透视投影。物体距离相机屏幕越远显示就越小。"

#: doc/classes/Camera.xml:191
msgid ""
"Orthogonal projection, also known as orthographic projection. Objects remain "
"the same size on the screen no matter how far away they are."
msgstr "正交投影,又称正交投影。物体无论距离多远,在屏幕上都保持相同的大小。"

#: doc/classes/Camera.xml:194
msgid ""
"Frustum projection. This mode allows adjusting [member frustum_offset] to "
"create \"tilted frustum\" effects."
msgstr ""
"Frustum投影。通过该模式可以调整[member frustum_offset]来创建 \"tilted "
"frustum \"效果。"

#: doc/classes/Camera.xml:197
msgid ""
"Preserves the horizontal aspect ratio; also known as Vert- scaling. This is "
"usually the best option for projects running in portrait mode, as taller "
"aspect ratios will benefit from a wider vertical FOV."
msgstr ""
"保留水平长宽比,也称为Vert-缩放。这通常是在纵向模式下运行的项目的最佳选择,因"
"为较高的纵横比将从更宽的垂直视场中受益。"

#: doc/classes/Camera.xml:200
msgid ""
"Preserves the vertical aspect ratio; also known as Hor+ scaling. This is "
"usually the best option for projects running in landscape mode, as wider "
"aspect ratios will automatically benefit from a wider horizontal FOV."
msgstr ""
"保留垂直长宽比,也称为 Hor+ 缩放。这通常是在横向模式下运行的项目的最佳选择,"
"因为较宽的纵横比会自动从较宽的水平视场中受益。"

#: doc/classes/Camera.xml:203
msgid ""
"Disables [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
"url] simulation (default)."
msgstr ""
"禁用[url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler_effect[/url]模"
"拟(默认)。"

#: doc/classes/Camera.xml:206
msgid ""
"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
"url] by tracking positions of objects that are changed in [code]_process[/"
"code]. Changes in the relative velocity of this camera compared to those "
"objects affect how Audio is perceived (changing the Audio's [code]pitch "
"shift[/code])."
msgstr ""
"通过跟踪在[code]_process[/code]中改变的物体位置来模拟[url=https://en."
"wikipedia.org/wiki/Doppler_effect]Doppler_effect[/url]。与这些物体相比,该摄"
"像机的相对速度的变化会影响音频的感知方式(改变音频的[code]pitch shift[/"
"code])。"

#: doc/classes/Camera.xml:209
msgid ""
"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
"url] by tracking positions of objects that are changed in "
"[code]_physics_process[/code]. Changes in the relative velocity of this "
"camera compared to those objects affect how Audio is perceived (changing the "
"Audio's [code]pitch shift[/code])."
msgstr ""
"通过跟踪在[code]_process[/code]中改变的物体位置来模拟[url=https://en."
"wikipedia.org/wiki/Doppler_effect]Doppler_effect[/url]。与这些物体相比,该摄"
"像机的相对速度的变化会影响音频的感知方式(改变音频的[code]pitch shift[/"
"code])。"

#: doc/classes/Camera2D.xml:4
msgid "Camera node for 2D scenes."
msgstr "二维场景的相机节点。"

#: doc/classes/Camera2D.xml:7
#, fuzzy
msgid ""
"Camera node for 2D scenes. It forces the screen (current layer) to scroll "
"following this node. This makes it easier (and faster) to program scrollable "
"scenes than manually changing the position of [CanvasItem]-based nodes.\n"
"This node is intended to be a simple helper to get things going quickly, but "
"more functionality may be desired to change how the camera works. To make "
"your own custom camera node, inherit it from [Node2D] and change the "
"transform of the canvas by setting [member Viewport.canvas_transform] in "
"[Viewport] (you can obtain the current [Viewport] by using [method Node."
"get_viewport]).\n"
"Note that the [Camera2D] node's [code]position[/code] doesn't represent the "
"actual position of the screen, which may differ due to applied smoothing or "
"limits. You can use [method get_camera_screen_center] to get the real "
"position."
msgstr ""
"二维场景的相机节点。它强制屏幕(当前层)跟随这个节点滚动。这使得对可滚动场景"
"进行编程比手动改变基于[CanvasItem]节点的位置更容易(也更快)。\n"
"这个节点的目的是作为一个简单的帮手,让事情快速进行,可能会发生需要更多的功能"
"来改变摄像机的工作方式。要制作自己的自定义相机节点,请继承[Node2D],并通过设"
"置[Viewport]中的[member Viewport.canvas_transform]来改变画布的变换(您可以通"
"过[method Node.get_viewport]获得当前的[Viewport])。\n"
"注意,[Camera2D]节点的[code]position[/code]并不代表屏幕的实际位置,它可能会因"
"为应用的平滑或限制而有所不同。你可以使用[method get_camera_screen_center]来获"
"取真实位置。"

#: doc/classes/Camera2D.xml:13 doc/classes/TileMap.xml:13
#: doc/classes/TileSet.xml:13
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/112"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Camera2D.xml:14 doc/classes/Environment.xml:18
#: doc/classes/WorldEnvironment.xml:14
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/110"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Camera2D.xml:20
msgid "Aligns the camera to the tracked node."
msgstr "将摄像机与跟踪的节点对齐。"

#: doc/classes/Camera2D.xml:26
msgid ""
"Removes any [Camera2D] from the ancestor [Viewport]'s internal currently-"
"assigned camera."
msgstr "从父级[Viewport]的内部当前分配的摄像机中删除任何[Camera2D]。"

#: doc/classes/Camera2D.xml:32
msgid "Forces the camera to update scroll immediately."
msgstr "强制摄像机立即更新滚动。"

#: doc/classes/Camera2D.xml:38
msgid "Returns the camera position."
msgstr "返回摄像机的位置。"

#: doc/classes/Camera2D.xml:44
msgid ""
"Returns the location of the [Camera2D]'s screen-center, relative to the "
"origin."
msgstr "返回[Camera2D]的屏幕中心相对于原点的位置。"

#: doc/classes/Camera2D.xml:51
msgid ""
"Returns the specified margin. See also [member drag_margin_bottom], [member "
"drag_margin_top], [member drag_margin_left], and [member drag_margin_right]."
msgstr ""
"返回指定的边距。另请参见[member drag_margin_bottom],[member "
"drag_margin_top],[member drag_margin_left]和[member drag_margin_right]。"

#: doc/classes/Camera2D.xml:58
msgid ""
"Returns the specified camera limit. See also [member limit_bottom], [member "
"limit_top], [member limit_left], and [member limit_right]."
msgstr ""
"返回指定的相机限制。请参阅 [member limit_bottom]、[member limit_top]、"
"[member limit_left]和[member limit_right]。"

#: doc/classes/Camera2D.xml:64
msgid ""
"Make this the current 2D camera for the scene (viewport and layer), in case "
"there are many cameras in the scene."
msgstr "使之成为场景(视口和图层)的当前2D摄像机,以防场景中有很多摄像机。"

#: doc/classes/Camera2D.xml:70
msgid ""
"Sets the camera's position immediately to its current smoothing "
"destination.\n"
"This has no effect if smoothing is disabled."
msgstr ""
"将相机的位置立即设置为其当前平滑的目标位置。\n"
"如果禁用了平滑功能,则没有效果。"

#: doc/classes/Camera2D.xml:79
msgid ""
"Sets the specified margin. See also [member drag_margin_bottom], [member "
"drag_margin_top], [member drag_margin_left], and [member drag_margin_right]."
msgstr ""
"设置指定的边距。另请参阅 [member drag_margin_bottom]、[member "
"drag_margin_top]、[member drag_margin_left]和 [member drag_margin_right]。"

#: doc/classes/Camera2D.xml:87
msgid ""
"Sets the specified camera limit. See also [member limit_bottom], [member "
"limit_top], [member limit_left], and [member limit_right]."
msgstr ""
"设置指定的摄像机限制。另请参阅 [member limit_bottom]、[member limit_top]、"
"[member limit_left]和[member limit_right]。"

#: doc/classes/Camera2D.xml:93
msgid "The Camera2D's anchor point. See [enum AnchorMode] constants."
msgstr "Camera2D的锚点。参见[enum AnchorMode]常量。"

#: doc/classes/Camera2D.xml:96
msgid ""
"If [code]true[/code], the camera is the active camera for the current scene. "
"Only one camera can be current, so setting a different camera [code]current[/"
"code] will disable this one."
msgstr ""
"如果 [code]true[/code],摄像机是当前场景的活动摄像机。当前只能有一台摄像机,"
"所以设置不同的摄像机[code]current[/code]将禁用这台摄像机。"

#: doc/classes/Camera2D.xml:99
msgid ""
"The custom [Viewport] node attached to the [Camera2D]. If [code]null[/code] "
"or not a [Viewport], uses the default viewport instead."
msgstr ""
"连接到[Camera2D]的自定义[Viewport]节点。如果[code]null[/code]或不是"
"[Viewport],则使用默认的 Viewpor。"

#: doc/classes/Camera2D.xml:102
msgid ""
"Bottom margin needed to drag the camera. A value of [code]1[/code] makes the "
"camera move only when reaching the edge of the screen."
msgstr ""
"拖动摄像机所需的底边距。值为[code]1[/code]时,摄像机仅在到达屏幕边缘时才会移"
"动。"

#: doc/classes/Camera2D.xml:105
msgid ""
"If [code]true[/code], the camera only moves when reaching the horizontal "
"drag margins. If [code]false[/code], the camera moves horizontally "
"regardless of margins."
msgstr ""
"如果 [code]true[/code],摄像机仅在达到水平拖动边距时才移动。如果[code]false[/"
"code],相机会水平移动而不管边距。"

#: doc/classes/Camera2D.xml:108
msgid ""
"Left margin needed to drag the camera. A value of [code]1[/code] makes the "
"camera move only when reaching the edge of the screen."
msgstr ""
"拖动摄像机所需的左边缘。值为[code]1[/code]时,摄像机仅在到达屏幕边缘时才会移"
"动。"

#: doc/classes/Camera2D.xml:111
msgid ""
"Right margin needed to drag the camera. A value of [code]1[/code] makes the "
"camera move only when reaching the edge of the screen."
msgstr ""
"拖动摄像机所需的右边缘。值为[code]1[/code]时,摄像机仅在到达屏幕边缘时才会移"
"动。"

#: doc/classes/Camera2D.xml:114
msgid ""
"Top margin needed to drag the camera. A value of [code]1[/code] makes the "
"camera move only when reaching the edge of the screen."
msgstr ""
"拖动摄像机所需的上边距。值为[code]1[/code]时,摄像机仅在到达屏幕边缘时才会移"
"动。"

#: doc/classes/Camera2D.xml:117
msgid ""
"If [code]true[/code], the camera only moves when reaching the vertical drag "
"margins. If [code]false[/code], the camera moves vertically regardless of "
"margins."
msgstr ""
"如果 [code]true[/code],摄像机仅在达到垂直拖动边距时才移动。如果[code]false[/"
"code],相机会垂直移动而不管边距。"

#: doc/classes/Camera2D.xml:120
msgid ""
"If [code]true[/code], draws the camera's drag margin rectangle in the editor."
msgstr "如果[code]true[/code],在编辑器中绘制摄像机的拖动边距矩形。"

#: doc/classes/Camera2D.xml:123
msgid ""
"If [code]true[/code], draws the camera's limits rectangle in the editor."
msgstr "如果[code]true[/code],在编辑器中绘制摄像机的极限矩形。"

#: doc/classes/Camera2D.xml:126
msgid ""
"If [code]true[/code], draws the camera's screen rectangle in the editor."
msgstr "如果[code]true[/code],在编辑器中绘制摄像机的画面矩形。"

#: doc/classes/Camera2D.xml:129
msgid ""
"Bottom scroll limit in pixels. The camera stops moving when reaching this "
"value."
msgstr "以像素为单位的底部滚动限制。当达到这个值时,相机停止移动。"

#: doc/classes/Camera2D.xml:132
msgid ""
"Left scroll limit in pixels. The camera stops moving when reaching this "
"value."
msgstr "以像素为单位的左滚动限制。当达到这个值时,相机停止移动。"

#: doc/classes/Camera2D.xml:135
msgid ""
"Right scroll limit in pixels. The camera stops moving when reaching this "
"value."
msgstr "以像素为单位的右滚动限制。当达到这个值时,相机停止移动。"

#: doc/classes/Camera2D.xml:138
msgid ""
"If [code]true[/code], the camera smoothly stops when reaches its limits.\n"
"This has no effect if smoothing is disabled.\n"
"[b]Note:[/b] To immediately update the camera's position to be within limits "
"without smoothing, even with this setting enabled, invoke [method "
"reset_smoothing]."
msgstr ""

#: doc/classes/Camera2D.xml:143
msgid ""
"Top scroll limit in pixels. The camera stops moving when reaching this value."
msgstr "以像素为单位的顶部滚动限制。达到此值时,摄像机停止移动。"

#: doc/classes/Camera2D.xml:146
msgid ""
"The camera's offset, useful for looking around or camera shake animations."
msgstr "摄像机的偏移量,对于环顾四周或摄像机晃动动画非常有用。"

#: doc/classes/Camera2D.xml:149
msgid ""
"The horizontal offset of the camera, relative to the drag margins.\n"
"[b]Note:[/b] Offset H is used only to force offset relative to margins. It's "
"not updated in any way if drag margins are enabled and can be used to set "
"initial offset."
msgstr ""
"摄像机的水平偏移,相对于拖动边距。\n"
"[b]注:[/b] 偏移量 H 仅用于强制执行相对于边距的偏移,如果启用拖动边距,它不会"
"以任何方式更新,并可用于设置初始偏移量。如果启用了拖动边距,它不会以任何方式"
"更新,可以用来设置初始偏移。"

#: doc/classes/Camera2D.xml:153
msgid ""
"The vertical offset of the camera, relative to the drag margins.\n"
"[b]Note:[/b] Used the same as [member offset_h]."
msgstr ""
"摄像机相对于拖动边距的垂直偏移。\n"
"[b]注:[/b] 与[member offset_h]使用相同。"

#: doc/classes/Camera2D.xml:157
msgid "The camera's process callback. See [enum Camera2DProcessMode]."
msgstr "摄像机的过程回调。请参见[enum Camera2DProcessMode]。"

#: doc/classes/Camera2D.xml:160
msgid "If [code]true[/code], the camera rotates with the target."
msgstr "如果[code]true[/code],则摄像机随目标旋转。"

#: doc/classes/Camera2D.xml:163
msgid ""
"If [code]true[/code], the camera smoothly moves towards the target at "
"[member smoothing_speed]."
msgstr ""
"如果[code]true[/code],摄像机以[member smoothing_speed]的速度平滑地朝目标移"
"动。"

#: doc/classes/Camera2D.xml:166
msgid ""
"Speed in pixels per second of the camera's smoothing effect when [member "
"smoothing_enabled] is [code]true[/code]."
msgstr ""
"当[member smoothing_enabled]为[code]true[/code]时,相机平滑效果的速度,以每秒"
"像素为单位。"

#: doc/classes/Camera2D.xml:169
msgid ""
"The camera's zoom relative to the viewport. Values larger than "
"[code]Vector2(1, 1)[/code] zoom out and smaller values zoom in. For an "
"example, use [code]Vector2(0.5, 0.5)[/code] for a 2× zoom-in, and "
"[code]Vector2(4, 4)[/code] for a 4× zoom-out."
msgstr ""
"相机相对于视口的缩放比例。大于[code] Vector2(1,1)[/code]的值会缩小内容,而"
"较小的值会起到放大镜的作用。例如,将[code] Vector2(0.5,0.5)[/code]放大2"
"倍,然后将[code] Vector2(4,4)[/code]用于4倍缩小。"

#: doc/classes/Camera2D.xml:174
msgid ""
"The camera's position is fixed so that the top-left corner is always at the "
"origin."
msgstr "摄像机的位置是固定的,所以左上角总是在原点。"

#: doc/classes/Camera2D.xml:177
msgid ""
"The camera's position takes into account vertical/horizontal offsets and the "
"screen size."
msgstr "摄像机的位置要考虑垂直/水平偏移和屏幕尺寸。"

#: doc/classes/Camera2D.xml:180 doc/classes/ClippedCamera.xml:89
msgid "The camera updates with the [code]_physics_process[/code] callback."
msgstr "摄像机通过 [code]_physics_process[/code] 回调进行更新。"

#: doc/classes/Camera2D.xml:183 doc/classes/ClippedCamera.xml:92
msgid "The camera updates with the [code]_process[/code] callback."
msgstr "摄像机通过 [code]_process[/code] 回调进行更新。"

#: doc/classes/CameraFeed.xml:4
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device."
msgstr "通过相机源,您可以访问连接到设备的单个物理相机。"

#: doc/classes/CameraFeed.xml:7
#, fuzzy
msgid ""
"A camera feed gives you access to a single physical camera attached to your "
"device. When enabled, Godot will start capturing frames from the camera "
"which can then be used.\n"
"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
"textures and need to be combined in a shader. Godot does this automatically "
"for you if you set the environment to show the camera image in the "
"background."
msgstr ""
"通过相机源,您可以访问连接到设备的单个物理相机。启用后,Godot 将开始从相机捕"
"获帧,然后可以使用。另请参阅 [CameraServer]。\n"
"[b]注意:[/b]很多相机会返回YCbCr图像,这些图像被分成两个纹理,需要在着色器中"
"组合。如果您将环境设置为在背景中显示相机图像,Godot 会自动为您执行此操作。"

#: doc/classes/CameraFeed.xml:16
#, fuzzy
msgid "Returns the unique ID for this feed."
msgstr "返回该对等体的IP。"

#: doc/classes/CameraFeed.xml:22
#, fuzzy
msgid "Returns the camera's name."
msgstr "返回项的名称。"

#: doc/classes/CameraFeed.xml:28
#, fuzzy
msgid "Returns the position of camera on the device."
msgstr "返回给定ID处的位置追踪器。"

#: doc/classes/CameraFeed.xml:34
#, fuzzy
msgid "If [code]true[/code], the feed is active."
msgstr "如果[code]true[/code],则暂停视频。"

#: doc/classes/CameraFeed.xml:37
#, fuzzy
msgid "The transform applied to the camera's image."
msgstr "返回应用于该项导航网格的转换。"

#: doc/classes/CameraFeed.xml:42
#, fuzzy
msgid "No image set for the feed."
msgstr "没有关于已编辑属性的提示。"

#: doc/classes/CameraFeed.xml:45
msgid "Feed supplies RGB images."
msgstr ""

#: doc/classes/CameraFeed.xml:48
msgid "Feed supplies YCbCr images that need to be converted to RGB."
msgstr ""

#: doc/classes/CameraFeed.xml:51
msgid ""
"Feed supplies separate Y and CbCr images that need to be combined and "
"converted to RGB."
msgstr ""

#: doc/classes/CameraFeed.xml:54
#, fuzzy
msgid "Unspecified position."
msgstr "拖拽的位置。"

#: doc/classes/CameraFeed.xml:57
msgid "Camera is mounted at the front of the device."
msgstr ""

#: doc/classes/CameraFeed.xml:60
msgid "Camera is mounted at the back of the device."
msgstr ""

#: doc/classes/CameraServer.xml:4
msgid "Server keeping track of different cameras accessible in Godot."
msgstr "服务器跟踪Godot中可访问的不同摄像头。"

#: doc/classes/CameraServer.xml:7
#, fuzzy
msgid ""
"The [CameraServer] keeps track of different cameras accessible in Godot. "
"These are external cameras such as webcams or the cameras on your phone.\n"
"It is notably used to provide AR modules with a video feed from the camera."
msgstr ""
"[CameraServer]跟踪Godot中可访问的不同摄像头。这些是外部摄像头,如网络摄像头或"
"手机上的摄像头。\n"
"值得注意的是,它用于为AR模块提供来自摄像头的视频源。\n"
"[b]注意:[/b]这个类目前只在macOS和iOS上实现。在其他平台上,将无法使用"
"[CameraFeed]。"

#: doc/classes/CameraServer.xml:17
#, fuzzy
msgid "Adds a camera feed to the camera server."
msgstr "将摄像机[code]feed[/code]添加到摄像机服务器。"

#: doc/classes/CameraServer.xml:23
msgid "Returns an array of [CameraFeed]s."
msgstr "返回一个[CameraFeed]的数组。"

#: doc/classes/CameraServer.xml:30
#, fuzzy
msgid "Returns the [CameraFeed] with this id."
msgstr "返回此信号的名称。"

#: doc/classes/CameraServer.xml:36
msgid "Returns the number of [CameraFeed]s registered."
msgstr "返回注册的[CameraFeed]的数量。"

#: doc/classes/CameraServer.xml:43
#, fuzzy
msgid "Removes a [CameraFeed]."
msgstr "纹理由[CameraFeed]提供。"

#: doc/classes/CameraServer.xml:51
#, fuzzy
msgid "Emitted when a [CameraFeed] is added (e.g. webcam is plugged in)."
msgstr "当添加[CameraFeed]时发出(例如,插入了网络摄像头)。"

#: doc/classes/CameraServer.xml:57
#, fuzzy
msgid "Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged)."
msgstr "当[CameraFeed]被移除时发出(例如,网络摄像头被拔掉)。"

#: doc/classes/CameraServer.xml:63
msgid "The RGBA camera image."
msgstr "RGBA相机的图像。"

#: doc/classes/CameraServer.xml:66
#, fuzzy
msgid "The YCbCr camera image."
msgstr "CbCr分量相机的图像。"

#: doc/classes/CameraServer.xml:69
msgid "The Y component camera image."
msgstr "Y分量相机的图像。"

#: doc/classes/CameraServer.xml:72
msgid "The CbCr component camera image."
msgstr "CbCr分量相机的图像。"

#: doc/classes/CameraTexture.xml:4
msgid "Texture provided by a [CameraFeed]."
msgstr "纹理由[CameraFeed]提供。"

#: doc/classes/CameraTexture.xml:7
msgid ""
"This texture gives access to the camera texture provided by a [CameraFeed].\n"
"[b]Note:[/b] Many cameras supply YCbCr images which need to be converted in "
"a shader."
msgstr ""
"该纹理可以访问[CameraFeed]提供的相机纹理。\n"
"[b]注意:[/b]许多相机提供需要在着色器中转换的YCbCr图像。"

#: doc/classes/CameraTexture.xml:16
msgid "The ID of the [CameraFeed] for which we want to display the image."
msgstr "我们要显示图像的[CameraFeed]的ID。"

#: doc/classes/CameraTexture.xml:19
msgid ""
"Convenience property that gives access to the active property of the "
"[CameraFeed]."
msgstr "给予访问[CameraFeed]的活动属性的便利属性。"

#: doc/classes/CameraTexture.xml:23
msgid ""
"Which image within the [CameraFeed] we want access to, important if the "
"camera image is split in a Y and CbCr component."
msgstr ""
"我们要访问[CameraFeed]中的哪个图像,如果相机图像被分割成Y和CbCr组件,这一点很"
"重要。"

#: doc/classes/CanvasItem.xml:4
msgid "Base class of anything 2D."
msgstr "基础类的任何2D。"

#: doc/classes/CanvasItem.xml:7
msgid ""
"Base class of anything 2D. Canvas items are laid out in a tree; children "
"inherit and extend their parent's transform. [CanvasItem] is extended by "
"[Control] for anything GUI-related, and by [Node2D] for anything related to "
"the 2D engine.\n"
"Any [CanvasItem] can draw. For this, [method update] must be called, then "
"[constant NOTIFICATION_DRAW] will be received on idle time to request "
"redraw. Because of this, canvas items don't need to be redrawn on every "
"frame, improving the performance significantly. Several functions for "
"drawing on the [CanvasItem] are provided (see [code]draw_*[/code] "
"functions). However, they can only be used inside the [method Object."
"_notification], signal or [method _draw] virtual functions.\n"
"Canvas items are drawn in tree order. By default, children are on top of "
"their parents so a root [CanvasItem] will be drawn behind everything. This "
"behavior can be changed on a per-item basis.\n"
"A [CanvasItem] can also be hidden, which will also hide its children. It "
"provides many ways to change parameters such as modulation (for itself and "
"its children) and self modulation (only for itself), as well as its blend "
"mode.\n"
"Ultimately, a transform notification can be requested, which will notify the "
"node that its global position changed in case the parent tree changed.\n"
"[b]Note:[/b] Unless otherwise specified, all methods that have angle "
"parameters must have angles specified as [i]radians[/i]. To convert degrees "
"to radians, use [method @GDScript.deg2rad]."
msgstr ""
"任何2D的基类。Canvas项目以树状排列;子类继承并扩展其父类的变换。[CanvasItem]"
"由[Control]扩展为任何GUI相关的东西,由[Node2D]扩展为任何2D引擎相关的东西。\n"
"任何[CanvasItem]都可以绘制。为此,必须调用 [method update],然后在空闲时接收 "
"[constant NOTIFICATION_DRAW] 来请求重绘。正因为如此,画布项不需要每一帧都重"
"绘,大大提升了性能。提供了几个用于在 [CanvasItem] 上绘图的函数(参见"
"[code]draw_*[/code]函数)。但是,它们只能在 [method Object._notification]、信"
"号或 [method _draw] 虚拟函数内部使用。\n"
"画布项目是按树状顺序绘制的。默认情况下,子项目在其父项目的顶部,因此根"
"[CanvasItem]将被画在所有项目的后面。这种行为可以在每个项目的基础上进行更"
"改。\n"
"一个 [CanvasItem] 也可以被隐藏,这也将隐藏其子项目。它提供了许多方法来改变参"
"数,如调制(对它自己和它的子项目)和自调制(只对它自己),以及它的混合模"
"式。\n"
"最终,可以请求一个变换通知,它将在父树改变的情况下通知节点它的全局位置发生了"
"变化。\n"
"[b]注意:[/b]除非另有说明,所有具有角度参数的方法必须将角度指定为 "
"[i]radians[/i]。要将度数转换为弧度,请使用 [method @GDScript.deg2rad]。"

#: doc/classes/CanvasItem.xml:15 doc/classes/CanvasLayer.xml:10
#: doc/classes/InputEvent.xml:11 doc/classes/Viewport.xml:15
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/2d/2d_transforms.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/2d/2d_transforms.html"

#: doc/classes/CanvasItem.xml:16 doc/classes/Control.xml:18
#: doc/classes/Node2D.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/2d/custom_drawing_in_2d.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/2d/custom_drawing_in_2d."
"html"

#: doc/classes/CanvasItem.xml:23
msgid ""
"Overridable function called by the engine (if defined) to draw the canvas "
"item."
msgstr "引擎调用的可覆盖函数(如果定义了)来绘制画布项目。"

#: doc/classes/CanvasItem.xml:37
msgid ""
"Draws an arc between the given angles. The larger the value of "
"[code]point_count[/code], the smoother the curve."
msgstr ""
"在给定的角度之间画一条弧线。[code]point_count[/code]的值越大,曲线越平滑。"

#: doc/classes/CanvasItem.xml:48
msgid ""
"Draws a string character using a custom font. Returns the advance, depending "
"on the character width and kerning with an optional next character."
msgstr ""
"使用自定义字体绘制一个字符串字符。根据字符的宽度和角化,返回一个可选的下一个"
"字符的提前量。"

#: doc/classes/CanvasItem.xml:57
msgid "Draws a colored circle."
msgstr "画一个彩色的圆。"

#: doc/classes/CanvasItem.xml:69
msgid "Draws a colored polygon of any amount of points, convex or concave."
msgstr "绘制任意数量点的彩色多边形,凸或凹。"

#: doc/classes/CanvasItem.xml:80
#, fuzzy
msgid ""
"Draws a line from a 2D point to another, with a given color and width. It "
"can be optionally antialiased."
msgstr "用给定的颜色和宽度,从一个2D点画一条线到另一个点。"

#: doc/classes/CanvasItem.xml:91
msgid ""
"Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for "
"related documentation."
msgstr ""
"使用所提供的纹理以2D方式绘制一个[Mesh]。相关文档请参见[MeshInstance2D]。"

#: doc/classes/CanvasItem.xml:101
msgid ""
"Draws multiple, parallel lines with a uniform [code]color[/code].\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""

#: doc/classes/CanvasItem.xml:112
#, fuzzy
msgid ""
"Draws multiple, parallel lines with a uniform [code]width[/code] and segment-"
"by-segment coloring. Colors assigned to line segments match by index between "
"[code]points[/code] and [code]colors[/code].\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently "
"not implemented and have no effect."
msgstr ""
"以统一的[code]width[/code]和逐段着色的方式绘制多条平行线。分配给线段的颜色与"
"[code]points[/code]和[code]colors[/code]之间的索引相匹配。"

#: doc/classes/CanvasItem.xml:122
msgid ""
"Draws a [MultiMesh] in 2D with the provided texture. See "
"[MultiMeshInstance2D] for related documentation."
msgstr ""
"用所提供的纹理以 2D 方式绘制 [MultiMesh]。相关文档请参考"
"[MultiMeshInstance2D]。"

#: doc/classes/CanvasItem.xml:134
msgid "Draws a polygon of any amount of points, convex or concave."
msgstr "绘制任意数量的点的多边形,凸或凹。"

#: doc/classes/CanvasItem.xml:144
#, fuzzy
msgid ""
"Draws interconnected line segments with a uniform [code]color[/code] and "
"[code]width[/code] and optional antialiasing."
msgstr "绘制具有统一[code]colors[/code]和[code]width[/code]的相互连接的线段。"

#: doc/classes/CanvasItem.xml:154
#, fuzzy
msgid ""
"Draws interconnected line segments with a uniform [code]width[/code], "
"segment-by-segment coloring, and optional antialiasing. Colors assigned to "
"line segments match by index between [code]points[/code] and [code]colors[/"
"code]."
msgstr ""
"绘制具有统一[code]width[/code]和逐段着色的相互连接的线段。分配给线段的颜色与"
"[code]点[/code]和[code]colors[/code]之间的索引匹配。"

#: doc/classes/CanvasItem.xml:166
#, fuzzy
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
"for a triangle and 4 points for a quad."
msgstr ""
"绘制一个自定义基元。1点为一个点,2点为一条线,3点为一个三角形,4点为一个四边"
"形。"

#: doc/classes/CanvasItem.xml:177
#, fuzzy
msgid ""
"Draws a rectangle. If [code]filled[/code] is [code]true[/code], the "
"rectangle will be filled with the [code]color[/code] specified. If "
"[code]filled[/code] is [code]false[/code], the rectangle will be drawn as a "
"stroke with the [code]color[/code] and [code]width[/code] specified. If "
"[code]antialiased[/code] is [code]true[/code], the lines will be "
"antialiased.\n"
"[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are only "
"effective if [code]filled[/code] is [code]false[/code]."
msgstr ""
"绘制一个矩形。如果[code]fill[/code]是[code]true[/code],则用指定的"
"[code]color[/code]填充矩形。如果[code]fill[/code]是[code]false[/code],则以指"
"定的[code]color[/code]和[code]width[/code]来绘制矩形。\n"
"[b]注意:[/b] [code]width[/code]只有在[code]filled[/code]为[code]false[/code]"
"时才有效。"

#: doc/classes/CanvasItem.xml:187
msgid ""
"Sets a custom transform for drawing via components. Anything drawn "
"afterwards will be transformed by this."
msgstr "设置通过组件进行绘图的自定义变换。之后绘制的任何东西都将被转换。"

#: doc/classes/CanvasItem.xml:194
msgid ""
"Sets a custom transform for drawing via matrix. Anything drawn afterwards "
"will be transformed by this."
msgstr "设置通过矩阵绘制时的自定义变换。之后绘制的任何东西都将被转换。"

#: doc/classes/CanvasItem.xml:205
#, fuzzy
msgid ""
"Draws [code]text[/code] using the specified [code]font[/code] at the "
"[code]position[/code] (bottom-left corner using the baseline of the font). "
"The text will have its color multiplied by [code]modulate[/code]. If "
"[code]clip_w[/code] is greater than or equal to 0, the text will be clipped "
"if it exceeds the specified width.\n"
"[b]Example using the default project font:[/b]\n"
"[codeblock]\n"
"# If using this method in a script that redraws constantly, move the\n"
"# `default_font` declaration to a member variable assigned in `_ready()`\n"
"# so the Control is only created once.\n"
"var default_font = Control.new().get_font(\"font\")\n"
"draw_string(default_font, Vector2(64, 64), \"Hello world\")\n"
"[/codeblock]\n"
"See also [method Font.draw]."
msgstr ""
"在[code]position[/code](左上角)使用指定的[code]font[/code]绘制[code]text[/"
"code]。文本的颜色将乘以 [code]modulate[/code]。如果 [code]clip_w[/code] 大于"
"或等于0,如果文本超过指定的宽度,则会被剪切。\n"
"[b]使用默认项目字体的示例:[/b]。\n"
"[codeblock]\n"
"# If using this method in a script that redraws constantly, move the\n"
"# `default_font` declaration to a member variable assigned in `_ready()`\n"
"# so the Control is only created once.\n"
"var default_font = Control.new().get_font(\"font\")\n"
"draw_string(default_font, Vector2(64, 64), \"Hello world\")\n"
"[/codeblock]\n"
"参见[method Font.draw]。"

#: doc/classes/CanvasItem.xml:222
msgid "Draws a styled rectangle."
msgstr "绘制一个样式矩形。"

#: doc/classes/CanvasItem.xml:232
msgid "Draws a texture at a given position."
msgstr "在给定的位置绘制纹理。"

#: doc/classes/CanvasItem.xml:244
msgid ""
"Draws a textured rectangle at a given position, optionally modulated by a "
"color. If [code]transpose[/code] is [code]true[/code], the texture will have "
"its X and Y coordinates swapped."
msgstr ""
"在给定的位置上绘制一个纹理矩形,可以选择用颜色调制。如果 [code]transpose[/"
"code] 是 [code]true[/code],纹理的 X 和 Y 坐标将被调换。"

#: doc/classes/CanvasItem.xml:257
msgid ""
"Draws a textured rectangle region at a given position, optionally modulated "
"by a color. If [code]transpose[/code] is [code]true[/code], the texture will "
"have its X and Y coordinates swapped."
msgstr ""
"在给定的位置绘制纹理矩形区域,可选择用颜色调制。如果 [code]transpose[/code] "
"是 [code]true[/code],纹理的 X 和 Y 坐标将被调换。"

#: doc/classes/CanvasItem.xml:263 doc/classes/Spatial.xml:19
msgid ""
"Forces the transform to update. Transform changes in physics are not instant "
"for performance reasons. Transforms are accumulated and then set. Use this "
"if you need an up-to-date transform when doing physics operations."
msgstr ""
"强制更新变换。由于性能原因,物理学中的变换变化不是即时的。变换是累积后再设置"
"的。如果您在进行物理操作时需要最新的变换,请使用此功能。"

#: doc/classes/CanvasItem.xml:269
msgid "Returns the [RID] of the [World2D] canvas where this item is in."
msgstr "返回此项目所在的[World2D]画布的[RID]。"

#: doc/classes/CanvasItem.xml:275
#, fuzzy
msgid "Returns the canvas item RID used by [VisualServer] for this item."
msgstr "返回[RenderingServer]为该项目使用的canvas项目RID。"

#: doc/classes/CanvasItem.xml:281
msgid "Returns the transform matrix of this item's canvas."
msgstr "返回此项目画布的变换矩阵。"

#: doc/classes/CanvasItem.xml:287
msgid "Returns the global position of the mouse."
msgstr "返回鼠标的全局位置。"

#: doc/classes/CanvasItem.xml:293
msgid "Returns the global transform matrix of this item."
msgstr "返回此项目的全局变换矩阵。"

#: doc/classes/CanvasItem.xml:299
msgid ""
"Returns the global transform matrix of this item in relation to the canvas."
msgstr "返回此项目相对于画布的全局变换矩阵。"

#: doc/classes/CanvasItem.xml:305
msgid "Returns the mouse position relative to this item's position."
msgstr "返回鼠标相对于此项的位置的位置。"

#: doc/classes/CanvasItem.xml:311
msgid "Returns the transform matrix of this item."
msgstr "返回此项目的变换矩阵。"

#: doc/classes/CanvasItem.xml:317
msgid "Returns the viewport's boundaries as a [Rect2]."
msgstr "以[Rect2]形式返回视口的边界。"

#: doc/classes/CanvasItem.xml:323
msgid "Returns this item's transform in relation to the viewport."
msgstr "返回这个项目相对于视窗的变换。"

#: doc/classes/CanvasItem.xml:329
msgid "Returns the [World2D] where this item is in."
msgstr "返回此物品所在的[World2D]。"

#: doc/classes/CanvasItem.xml:335
msgid "Hide the [CanvasItem] if it's currently visible."
msgstr "如果[CanvasItem]当前可见,则隐藏它。"

#: doc/classes/CanvasItem.xml:341
msgid ""
"Returns [code]true[/code] if local transform notifications are communicated "
"to children."
msgstr "如果将本地转换通知传达给子级,则返回[code] true [/code]。"

#: doc/classes/CanvasItem.xml:347
msgid ""
"Returns [code]true[/code] if the node is set as top-level. See [method "
"set_as_toplevel]."
msgstr ""
"如果节点设置为顶层,则返回[code] true [/code]。参见[方法set_as_toplevel]。"

#: doc/classes/CanvasItem.xml:353
msgid ""
"Returns [code]true[/code] if global transform notifications are communicated "
"to children."
msgstr "如果将全局转换通知传达给子级,则返回[code] true [/code]。"

#: doc/classes/CanvasItem.xml:359 doc/classes/Spatial.xml:89
msgid ""
"Returns [code]true[/code] if the node is present in the [SceneTree], its "
"[member visible] property is [code]true[/code] and all its antecedents are "
"also visible. If any antecedent is hidden, this node will not be visible in "
"the scene tree."
msgstr ""
"如果该节点位于[SceneTree]中,并且其[member visible]属性为[code] true [/"
"code],并且其所有前提均可见,则返回[code] true [/code]。如果任何先决条件被隐"
"藏,则该节点在场景树中将不可见。"

#: doc/classes/CanvasItem.xml:366
msgid "Assigns [code]screen_point[/code] as this node's new local transform."
msgstr "分配[code] screen_point [/code]作为该节点的新本地转换。"

#: doc/classes/CanvasItem.xml:373
msgid ""
"Transformations issued by [code]event[/code]'s inputs are applied in local "
"space instead of global space."
msgstr "[code] event [/code]的输入发出的转换将在局部空间而不是全局空间中应用。"

#: doc/classes/CanvasItem.xml:380
msgid ""
"If [code]enable[/code] is [code]true[/code], the node won't inherit its "
"transform from parent canvas items."
msgstr ""
"如果[code] enable [/code]为[code] true [/code],则该节点将不会从父画布项目继"
"承其变换。"

#: doc/classes/CanvasItem.xml:387
msgid ""
"If [code]enable[/code] is [code]true[/code], children will be updated with "
"local transform data."
msgstr ""
"如果[code] enable [/code]为[code] true [/code],则将使用局部变换数据更新子"
"项。"

#: doc/classes/CanvasItem.xml:394
msgid ""
"If [code]enable[/code] is [code]true[/code], children will be updated with "
"global transform data."
msgstr ""
"如果[code] enable [/code]为[code] true [/code],则将使用全局变换数据更新子"
"项。"

#: doc/classes/CanvasItem.xml:400
msgid ""
"Show the [CanvasItem] if it's currently hidden. For controls that inherit "
"[Popup], the correct way to make them visible is to call one of the multiple "
"[code]popup*()[/code] functions instead."
msgstr ""
"如果[CanvasItem]当前是隐藏的,则显示它。对于继承[Popup]的控件,使其可见的正确"
"方法是调用多个[code]popup*()[/code]函数中的一个来代替。"

#: doc/classes/CanvasItem.xml:406
msgid ""
"Queue the [CanvasItem] for update. [constant NOTIFICATION_DRAW] will be "
"called on idle time to request redraw."
msgstr ""
"将[CanvasItem]排队等待更新。在空闲时间将调用[constant NOTIFICATION_DRAW]以请"
"求重绘。"

#: doc/classes/CanvasItem.xml:412
msgid ""
"The rendering layers in which this [CanvasItem] responds to [Light2D] nodes."
msgstr "此[CanvasItem]在其中响应[Light2D]节点的渲染层。"

#: doc/classes/CanvasItem.xml:415
msgid "The material applied to textures on this [CanvasItem]."
msgstr "在此[CanvasItem]上应用于纹理的材质。"

#: doc/classes/CanvasItem.xml:418
msgid "The color applied to textures on this [CanvasItem]."
msgstr "应用于此[CanvasItem]上纹理的颜色。"

#: doc/classes/CanvasItem.xml:421
msgid ""
"The color applied to textures on this [CanvasItem]. This is not inherited by "
"children [CanvasItem]s."
msgstr "应用于此[CanvasItem]上纹理的颜色。子节点[CanvasItem]不能继承这个颜色。"

#: doc/classes/CanvasItem.xml:424
msgid "If [code]true[/code], the object draws behind its parent."
msgstr "如果[code]true[/code],则对象在其父对象后面绘制。"

#: doc/classes/CanvasItem.xml:427
msgid "If [code]true[/code], the object draws on top of its parent."
msgstr "如果[code]true[/code],则对象在其父对象的顶部绘制。"

#: doc/classes/CanvasItem.xml:430
msgid ""
"If [code]true[/code], the parent [CanvasItem]'s [member material] property "
"is used as this one's material."
msgstr ""
"如果[code] true [/code],则将父级[CanvasItem]的[member material]属性用作此项"
"的材质。"

#: doc/classes/CanvasItem.xml:433
msgid ""
"If [code]true[/code], this [CanvasItem] is drawn. The node is only visible "
"if all of its antecedents are visible as well (in other words, [method "
"is_visible_in_tree] must return [code]true[/code]).\n"
"[b]Note:[/b] For controls that inherit [Popup], the correct way to make them "
"visible is to call one of the multiple [code]popup*()[/code] functions "
"instead."
msgstr ""
"如果[code]true[/code],这个[CanvasItem]被绘制。只有当它的所有父节点也可见时,"
"该节点才是可见的(换句话说,[method is_visible_in_tree]必须返回[code]true[/"
"code])。\n"
"[b]注意:[/b]对于继承了[Popup]的控件,使其可见的正确方法是调用多个"
"[code]popup*()[/code]函数之一。"

#: doc/classes/CanvasItem.xml:440
msgid ""
"Emitted when the [CanvasItem] must redraw. This can only be connected "
"realtime, as deferred will not allow drawing."
msgstr "当[CanvasItem]必须重绘时发出。这只能是实时连接,因为延迟将不允许绘制。"

#: doc/classes/CanvasItem.xml:445
msgid "Emitted when becoming hidden."
msgstr "当隐藏时发出。"

#: doc/classes/CanvasItem.xml:450
msgid ""
"Emitted when the item's [Rect2] boundaries (position or size) have changed, "
"or when an action is taking place that may have impacted these boundaries (e."
"g. changing [member Sprite.texture])."
msgstr ""

#: doc/classes/CanvasItem.xml:455
msgid "Emitted when the visibility (hidden/visible) changes."
msgstr "当可见性(隐藏/可见)更改时发出。"

#: doc/classes/CanvasItem.xml:461 doc/classes/CanvasItemMaterial.xml:39
msgid ""
"Mix blending mode. Colors are assumed to be independent of the alpha "
"(opacity) value."
msgstr "混合混合模式。假设颜色与alpha(不透明度)值无关。"

#: doc/classes/CanvasItem.xml:464 doc/classes/CanvasItemMaterial.xml:42
msgid "Additive blending mode."
msgstr "加法混合模式。"

#: doc/classes/CanvasItem.xml:467 doc/classes/CanvasItemMaterial.xml:45
msgid "Subtractive blending mode."
msgstr "减法混合模式。"

#: doc/classes/CanvasItem.xml:470 doc/classes/CanvasItemMaterial.xml:48
msgid "Multiplicative blending mode."
msgstr "乘法混合模式。"

#: doc/classes/CanvasItem.xml:473 doc/classes/CanvasItemMaterial.xml:51
msgid ""
"Mix blending mode. Colors are assumed to be premultiplied by the alpha "
"(opacity) value."
msgstr "混合混合模式。假定颜色已预先乘以alpha(不透明度)值。"

#: doc/classes/CanvasItem.xml:476
msgid ""
"Disables blending mode. Colors including alpha are written as-is. Only "
"applicable for render targets with a transparent background. No lighting "
"will be applied."
msgstr ""

#: doc/classes/CanvasItem.xml:479
msgid ""
"The [CanvasItem]'s transform has changed. This notification is only received "
"if enabled by [method set_notify_transform] or [method "
"set_notify_local_transform]."
msgstr ""
"[CanvasItem]的变换已更改。仅当[method set_notify_transform]或[method "
"set_notify_local_transform]启用时,才会收到此通知。"

#: doc/classes/CanvasItem.xml:482
msgid "The [CanvasItem] is requested to draw."
msgstr "要求绘制[CanvasItem]。"

#: doc/classes/CanvasItem.xml:485
msgid "The [CanvasItem]'s visibility has changed."
msgstr "[CanvasItem]的可见性已更改。"

#: doc/classes/CanvasItem.xml:488
msgid "The [CanvasItem] has entered the canvas."
msgstr "[CanvasItem]已进入画布。"

#: doc/classes/CanvasItem.xml:491
msgid "The [CanvasItem] has exited the canvas."
msgstr "[CanvasItem]已退出画布。"

#: doc/classes/CanvasItemMaterial.xml:4
msgid "A material for [CanvasItem]s."
msgstr "[CanvasItem]的材质。"

#: doc/classes/CanvasItemMaterial.xml:7
msgid ""
"[CanvasItemMaterial]s provide a means of modifying the textures associated "
"with a CanvasItem. They specialize in describing blend and lighting "
"behaviors for textures. Use a [ShaderMaterial] to more fully customize a "
"material's interactions with a [CanvasItem]."
msgstr ""
"[CanvasItemMaterial]提供了一种修改与CanvasItem相关联的纹理的方法。他们专注于"
"描述纹理的混合和照明行为。使用[ShaderMaterial]可以更全面地自定义材质与"
"[CanvasItem]的交互。"

#: doc/classes/CanvasItemMaterial.xml:15
msgid ""
"The manner in which a material's rendering is applied to underlying textures."
msgstr "将材质的渲染应用于基础纹理的方式。"

#: doc/classes/CanvasItemMaterial.xml:18
msgid "The manner in which material reacts to lighting."
msgstr "材质对照明的反应方式。"

#: doc/classes/CanvasItemMaterial.xml:21
#, fuzzy
msgid ""
"The number of columns in the spritesheet assigned as [Texture] for a "
"[Particles2D] or [CPUParticles2D].\n"
"[b]Note:[/b] This property is only used and visible in the editor if [member "
"particles_animation] is [code]true[/code]."
msgstr ""
"Spritesheet中为[GPUParticles2D]或[CPUParticles2D]分配为[Texture2D]的列数。\n"
"[b]注意:[/b]仅当[memberparticles_animation]为[code] true [/code]时,此属性才"
"在编辑器中使用和可见。"

#: doc/classes/CanvasItemMaterial.xml:25
msgid ""
"If [code]true[/code], the particles animation will loop.\n"
"[b]Note:[/b] This property is only used and visible in the editor if [member "
"particles_animation] is [code]true[/code]."
msgstr ""
"如果[code]true[/code],粒子动画将循环播放。\n"
"[b]注意:[/b]只有当[member particles_animation]为[code]true[/code]时,该属性才"
"会在编辑器中使用并可见。"

#: doc/classes/CanvasItemMaterial.xml:29
#, fuzzy
msgid ""
"The number of rows in the spritesheet assigned as [Texture] for a "
"[Particles2D] or [CPUParticles2D].\n"
"[b]Note:[/b] This property is only used and visible in the editor if [member "
"particles_animation] is [code]true[/code]."
msgstr ""
"Spritesheet中为[GPUParticles2D]或[CPUParticles2D]分配为[Texture2D]的行数。\n"
"[b]注意:[/b]仅当[member particle_animation]为[code] true [/code]时,此属性才"
"在编辑器中使用和可见。"

#: doc/classes/CanvasItemMaterial.xml:33
#, fuzzy
msgid ""
"If [code]true[/code], enable spritesheet-based animation features when "
"assigned to [Particles2D] and [CPUParticles2D] nodes. The [member "
"ParticlesMaterial.anim_speed] or [member CPUParticles2D.anim_speed] should "
"also be set to a positive value for the animation to play.\n"
"This property (and other [code]particles_anim_*[/code] properties that "
"depend on it) has no effect on other types of nodes."
msgstr ""
"如果[code]true[/code],当分配给[GPUParticles2D]和[CPUParticles2D]节点时,启用"
"基于spritesheet的动画功能。[member ParticlesMaterial.anim_speed]或[member "
"CPUParticles2D.anim_speed]也应设置为正值,才能播放动画。\n"
"这个属性(以及其他依赖于它的[code]particles_anim_*[/code]属性)对其他类型的节"
"点没有影响。"

#: doc/classes/CanvasItemMaterial.xml:54
msgid ""
"Render the material using both light and non-light sensitive material "
"properties."
msgstr "使用光敏和非光敏材料属性渲染材质。"

#: doc/classes/CanvasItemMaterial.xml:57
msgid "Render the material as if there were no light."
msgstr "将材质渲染成没有光的样子。"

#: doc/classes/CanvasItemMaterial.xml:60
msgid "Render the material as if there were only light."
msgstr "将材质渲染成只有光的样子。"

#: doc/classes/CanvasLayer.xml:4
msgid "Canvas drawing layer."
msgstr "画布绘图层。"

#: doc/classes/CanvasLayer.xml:7
msgid ""
"Canvas drawing layer. [CanvasItem] nodes that are direct or indirect "
"children of a [CanvasLayer] will be drawn in that layer. The layer is a "
"numeric index that defines the draw order. The default 2D scene renders with "
"index 0, so a [CanvasLayer] with index -1 will be drawn below, and one with "
"index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or "
"above), or backgrounds (in layer -1 or below)."
msgstr ""
"画布绘图层。 [CanvasLayer]的直接或间接子级的[CanvasItem]节点将在该层中绘制。"
"该层是定义绘制顺序的数字索引。默认的2D场景的索引为0,因此将在下面绘制索引为-1"
"的[CanvasLayer],在上面绘制索引为1的[CanvasLayer]。这对于HUD(在1+层或更高层"
"中)或背景(在-1层或更低层中)非常有用。"

#: doc/classes/CanvasLayer.xml:11
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/2d/canvas_layers.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/2d/canvas_layers.html"

#: doc/classes/CanvasLayer.xml:18
msgid "Returns the RID of the canvas used by this layer."
msgstr "返回此层使用的画布的RID。"

#: doc/classes/CanvasLayer.xml:24
msgid ""
"The custom [Viewport] node assigned to the [CanvasLayer]. If [code]null[/"
"code], uses the default viewport instead."
msgstr ""
"分配给[CanvasLayer]的自定义[Viewport]节点。如果[code]null[/code],则使用默认"
"的视口。"

#: doc/classes/CanvasLayer.xml:27
msgid ""
"Sets the layer to follow the viewport in order to simulate a pseudo 3D "
"effect."
msgstr "将图层设置为跟随视口,以模拟伪3D效果。"

#: doc/classes/CanvasLayer.xml:30
msgid ""
"Scales the layer when using [member follow_viewport_enable]. Layers moving "
"into the foreground should have increasing scales, while layers moving into "
"the background should have decreasing scales."
msgstr ""
"使用[member follow_viewport_enable]时,对图层进行缩放。移动到前景的图层应该有"
"增加的比例,而移动到背景的图层应该有减少的比例。"

#: doc/classes/CanvasLayer.xml:33
msgid "Layer index for draw order. Lower values are drawn first."
msgstr "绘制顺序的图层索引。首先绘制较低的值。"

#: doc/classes/CanvasLayer.xml:36
msgid "The layer's base offset."
msgstr "图层的基本偏移量。"

#: doc/classes/CanvasLayer.xml:39
msgid "The layer's rotation in radians."
msgstr "图层的旋转度(以弧度为单位)。"

#: doc/classes/CanvasLayer.xml:42
msgid "The layer's rotation in degrees."
msgstr "图层的旋转度数。"

#: doc/classes/CanvasLayer.xml:45
msgid "The layer's scale."
msgstr "图层的比例。"

#: doc/classes/CanvasLayer.xml:48
msgid "The layer's transform."
msgstr "图层的变换。"

#: doc/classes/CanvasModulate.xml:4
msgid "Tint the entire canvas."
msgstr "给整个画布上色。"

#: doc/classes/CanvasModulate.xml:7
msgid ""
"[CanvasModulate] tints the canvas elements using its assigned [member color]."
msgstr "[CanvasModulate]使用其分配的[member color]对画布元素进行着色。"

#: doc/classes/CanvasModulate.xml:15
msgid "The tint color to apply."
msgstr "要应用的色调颜色。"

#: doc/classes/CapsuleMesh.xml:4 doc/classes/CapsuleMesh.xml:7
msgid "Class representing a capsule-shaped [PrimitiveMesh]."
msgstr "表示胶囊状[PrimitiveMesh]的类。"

#: doc/classes/CapsuleMesh.xml:15
msgid ""
"Height of the middle cylindrical part of the capsule (without the "
"hemispherical ends).\n"
"[b]Note:[/b] The capsule's total height is equal to [member mid_height] + 2 "
"* [member radius]."
msgstr ""

#: doc/classes/CapsuleMesh.xml:19
msgid "Number of radial segments on the capsule mesh."
msgstr "胶囊网格上的径向线段数。"

#: doc/classes/CapsuleMesh.xml:22
msgid "Radius of the capsule mesh."
msgstr "胶囊网格的半径。"

#: doc/classes/CapsuleMesh.xml:25
msgid "Number of rings along the height of the capsule."
msgstr "沿胶囊高度的环数。"

#: doc/classes/CapsuleShape.xml:4 doc/classes/CapsuleShape.xml:7
msgid "Capsule shape for collisions."
msgstr "胶囊的碰撞形状。"

#: doc/classes/CapsuleShape.xml:16 doc/classes/CapsuleShape2D.xml:15
msgid "The capsule's height."
msgstr "胶囊的高度。"

#: doc/classes/CapsuleShape.xml:19 doc/classes/CapsuleShape2D.xml:18
msgid "The capsule's radius."
msgstr "胶囊的半径。"

#: doc/classes/CapsuleShape2D.xml:4 doc/classes/CapsuleShape2D.xml:7
msgid "Capsule shape for 2D collisions."
msgstr "2D碰撞的胶囊形状。"

#: doc/classes/CenterContainer.xml:4
msgid "Keeps children controls centered."
msgstr "使子级控件居中。"

#: doc/classes/CenterContainer.xml:7
msgid ""
"CenterContainer keeps children controls centered. This container keeps all "
"children to their minimum size, in the center."
msgstr "CenterContainer使子节点居中。该容器将所有子节点保持在最小尺寸的中间。"

#: doc/classes/CenterContainer.xml:15
msgid ""
"If [code]true[/code], centers children relative to the [CenterContainer]'s "
"top left corner."
msgstr "如果[code]true[/code],将子节点相对于[CenterContainer]的左上角居中。"

#: doc/classes/CharFXTransform.xml:4
msgid ""
"Controls how an individual character will be displayed in a [RichTextEffect]."
msgstr "控制单个字符在[RichTextEffect]中的显示方式。"

#: doc/classes/CharFXTransform.xml:7
msgid ""
"By setting various properties on this object, you can control how individual "
"characters will be displayed in a [RichTextEffect]."
msgstr ""
"通过在此对象上设置各种属性,可以控制单个字符在[RichTextEffect]中的显示方式。"

#: doc/classes/CharFXTransform.xml:10 doc/classes/RichTextEffect.xml:16
#: doc/classes/RichTextLabel.xml:15
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/gui/bbcode_in_richtextlabel."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/gui/"
"bbcode_in_richtextlabel.html"

#: doc/classes/CharFXTransform.xml:11 doc/classes/RichTextEffect.xml:17
msgid ""
"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"
msgstr ""
"https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project"

#: doc/classes/CharFXTransform.xml:17 doc/classes/CharFXTransform.xml:45
msgid ""
"The index of the current character (starting from 0). Setting this property "
"won't affect drawing."
msgstr "当前字符的索引(从0开始)。设置此属性不会影响图形。"

#: doc/classes/CharFXTransform.xml:20
msgid ""
"The Unicode codepoint the character will use. This only affects non-"
"whitespace characters. [method @GDScript.ord] can be useful here. For "
"example, the following will replace all characters with asterisks:\n"
"[codeblock]\n"
"# `char_fx` is the CharFXTransform parameter from `_process_custom_fx()`.\n"
"# See the RichTextEffect documentation for details.\n"
"char_fx.character = ord(\"*\")\n"
"[/codeblock]"
msgstr ""
"字符将使用的Unicode代码点。这只会影响非空白字符。 [method @ GDScript.ord]在这"
"里可能很有用。例如,以下将用星号替换所有字符:\n"
"[codeblock]\n"
"# `char_fx` is the CharFXTransform parameter from `_process_custom_fx()`.\n"
"# See the RichTextEffect documentation for details.\n"
"char_fx.character = ord(\"*\")\n"
"[/codeblock]"

#: doc/classes/CharFXTransform.xml:28
msgid "The color the character will be drawn with."
msgstr "绘制角色所用的颜色。"

#: doc/classes/CharFXTransform.xml:31
msgid ""
"The time elapsed since the [RichTextLabel] was added to the scene tree (in "
"seconds). Time stops when the project is paused, unless the "
"[RichTextLabel]'s [member Node.pause_mode] is set to [constant Node."
"PAUSE_MODE_PROCESS].\n"
"[b]Note:[/b] Time still passes while the [RichTextLabel] is hidden."
msgstr ""
"自从[RichTextLabel]添加到场景树以来经过的时间(以秒为单位)。除非项目"
"[RichTextLabel]的[member Node.pause_mode]设置为[constant Node."
"PAUSE_MODE_PROCESS],否则暂停项目时,时间将停止。\n"
"[b]注意:[/b]当[RichTextLabel]被隐藏,时间仍然流逝。"

#: doc/classes/CharFXTransform.xml:35
msgid ""
"Contains the arguments passed in the opening BBCode tag. By default, "
"arguments are strings; if their contents match a type such as [bool], [int] "
"or [float], they will be converted automatically. Color codes in the form "
"[code]#rrggbb[/code] or [code]#rgb[/code] will be converted to an opaque "
"[Color]. String arguments may not contain spaces, even if they're quoted. If "
"present, quotes will also be present in the final string.\n"
"For example, the opening BBCode tag [code][example foo=hello bar=true baz=42 "
"color=#ffffff][/code] will map to the following [Dictionary]:\n"
"[codeblock]\n"
"{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, "
"1)}\n"
"[/codeblock]"
msgstr ""
"包含在开头的BBCode标记中传递的参数。默认情况下,参数是字符串。如果它们的内容"
"与[bool],[int]或[float]之类的类型匹配,它们将被自动转换。格式为[code] "
"#rrggbb [/code]或[code] #rgb [/code]的颜色代码将转换为不透明的[颜色]。字符串"
"参数即使使用引号也不能包含空格。如果存在,引号也将出现在最终字符串中。\n"
"例如,开头的BBCode标签[code] [example foo = hello bar = true baz = 42 color ="
"#ffffff] [/code]将映射到以下[Dictionary]:\n"
"[codeblock]\n"
"{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, "
"1)}\n"
"[/codeblock]"

#: doc/classes/CharFXTransform.xml:42
msgid "The position offset the character will be drawn with (in pixels)."
msgstr "绘制字符的位置偏移量(以像素为单位)。"

#: doc/classes/CharFXTransform.xml:48
msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], "
"the character will be hidden. Characters around hidden characters will "
"reflow to take the space of hidden characters. If this is not desired, set "
"their [member color] to [code]Color(1, 1, 1, 0)[/code] instead."
msgstr ""
"如果[code]true[/code],将绘制字符。如果[code]false[/code],则隐藏字符。隐藏字"
"符周围的字符将回流以占用隐藏字符的空间。如果不希望这样做,可以将它们的"
"[member color]设置为[code]Color(1, 1, 1, 0)[/code]。"

#: doc/classes/CheckBox.xml:4
msgid "Binary choice user interface widget. See also [CheckButton]."
msgstr "二元选择(有或无)用户界面小部件。另请参见[CheckButton]。"

#: doc/classes/CheckBox.xml:7
#, fuzzy
msgid ""
"A checkbox allows the user to make a binary choice (choosing only one of two "
"possible options). It's similar to [CheckButton] in functionality, but it "
"has a different appearance. To follow established UX patterns, it's "
"recommended to use CheckBox when toggling it has [b]no[/b] immediate effect "
"on something. For instance, it should be used when toggling it will only do "
"something once a confirmation button is pressed.\n"
"See also [BaseButton] which contains common properties and methods "
"associated with this node."
msgstr ""
"复选框允许用户进行二元选择(在两个可能的选项中只选择一个)。它的功能与"
"[CheckButton]类似,但它的外观不同。为了遵循既定的UX模式,建议在切换CheckBox对"
"某件事情有[b]no[/b]立竿见影的效果时使用它。例如,当切换它只有在按下确认按钮后"
"才会做某事时,就应该使用它。"

#: doc/classes/CheckBox.xml:22
msgid "The vertical offset used when rendering the check icons (in pixels)."
msgstr "呈现复选图标时使用的垂直偏移量(以像素为单位)。"

#: doc/classes/CheckBox.xml:25
msgid "The check icon to display when the [CheckBox] is checked."
msgstr "选中[CheckBox]时显示的复选图标。"

#: doc/classes/CheckBox.xml:30
msgid ""
"The [StyleBox] to display as a background when the [CheckBox] is disabled."
msgstr "当[CheckBox]被禁用时,作为背景显示的[StyleBox]。"

#: doc/classes/CheckBox.xml:33
msgid ""
"The [StyleBox] to display as a background when the [CheckBox] is focused."
msgstr "当[CheckBox]被聚焦时,作为背景显示的[StyleBox]。"

#: doc/classes/CheckBox.xml:36
msgid "The [Font] to use for the [CheckBox] text."
msgstr "用于[CheckBox]文本的[Font]。"

#: doc/classes/CheckBox.xml:39
msgid "The [CheckBox] text's font color."
msgstr "[CheckBox]文本的字体颜色。"

#: doc/classes/CheckBox.xml:42
msgid "The [CheckBox] text's font color when it's disabled."
msgstr "[CheckBox]文本被禁用时的字体颜色。"

#: doc/classes/CheckBox.xml:45
msgid "The [CheckBox] text's font color when it's hovered."
msgstr "[CheckBox]文本在悬停时的字体颜色。"

#: doc/classes/CheckBox.xml:48
msgid "The [CheckBox] text's font color when it's hovered and pressed."
msgstr "当[CheckBox]文本被悬停和按下时的字体颜色。"

#: doc/classes/CheckBox.xml:51
msgid "The [CheckBox] text's font color when it's pressed."
msgstr "文本被按下时的字体颜色。"

#: doc/classes/CheckBox.xml:54
msgid ""
"The [StyleBox] to display as a background when the [CheckBox] is hovered."
msgstr "当[CheckBox]被悬停时作为背景显示的[StyleBox]。"

#: doc/classes/CheckBox.xml:57
msgid ""
"The [StyleBox] to display as a background when the [CheckBox] is hovered and "
"pressed."
msgstr "当[CheckBox]被悬停和按下时,作为背景显示的[StyleBox]。"

#: doc/classes/CheckBox.xml:60
msgid "The separation between the check icon and the text (in pixels)."
msgstr "复选图标和文本之间的分隔(以像素为单位)。"

#: doc/classes/CheckBox.xml:63 doc/classes/CheckButton.xml:58
msgid "The [StyleBox] to display as a background."
msgstr "[StyleBox]显示为背景。"

#: doc/classes/CheckBox.xml:66
msgid ""
"The [StyleBox] to display as a background when the [CheckBox] is pressed."
msgstr "按下[CheckBox]时,[StyleBox]显示为背景。"

#: doc/classes/CheckBox.xml:69
msgid ""
"If the [CheckBox] is configured as a radio button, the icon to display when "
"the [CheckBox] is checked."
msgstr "如果将[CheckBox]配置为单选按钮,则选中[CheckBox]时显示的图标。"

#: doc/classes/CheckBox.xml:74
msgid ""
"If the [CheckBox] is configured as a radio button, the icon to display when "
"the [CheckBox] is unchecked."
msgstr "如果将[CheckBox]配置为单选按钮,则取消选中[CheckBox]时显示的图标。"

#: doc/classes/CheckBox.xml:79
msgid "The check icon to display when the [CheckBox] is unchecked."
msgstr "未选中[CheckBox]时显示的复选图标。"

#: doc/classes/CheckButton.xml:4
msgid "Checkable button. See also [CheckBox]."
msgstr "可检查的按钮。另请参见[CheckBox]。"

#: doc/classes/CheckButton.xml:7
#, fuzzy
msgid ""
"CheckButton is a toggle button displayed as a check field. It's similar to "
"[CheckBox] in functionality, but it has a different appearance. To follow "
"established UX patterns, it's recommended to use CheckButton when toggling "
"it has an [b]immediate[/b] effect on something. For instance, it should be "
"used if toggling it enables/disables a setting without requiring the user to "
"press a confirmation button.\n"
"See also [BaseButton] which contains common properties and methods "
"associated with this node."
msgstr ""
"CheckButton是显示为检查字段的切换按钮。它在功能上类似于[CheckBox],但是外观不"
"同。要遵循已建立的UX模式,建议在切换时对按钮使用[b]immediate[/b]效果时使用"
"CheckButton。例如,如果切换它启用/禁用设置而无需用户按下确认按钮,则应使用"
"它。"

#: doc/classes/CheckButton.xml:22
msgid "The vertical offset used when rendering the toggle icons (in pixels)."
msgstr "渲染切换图标时使用的垂直偏移量(以像素为单位)。"

#: doc/classes/CheckButton.xml:25
msgid ""
"The [StyleBox] to display as a background when the [CheckButton] is disabled."
msgstr "当[CheckButton]被禁用时,作为背景显示的[StyleBox]。"

#: doc/classes/CheckButton.xml:28
msgid ""
"The [StyleBox] to display as a background when the [CheckButton] is focused."
msgstr "当[CheckButton]被聚焦时作为背景显示的[StyleBox]。"

#: doc/classes/CheckButton.xml:31
msgid "The [Font] to use for the [CheckButton] text."
msgstr "用于[CheckButton]文本的[Font]。"

#: doc/classes/CheckButton.xml:34
msgid "The [CheckButton] text's font color."
msgstr "[CheckButton]文本的字体颜色。"

#: doc/classes/CheckButton.xml:37
msgid "The [CheckButton] text's font color when it's disabled."
msgstr "[CheckButton]文本在禁用时的字体颜色。"

#: doc/classes/CheckButton.xml:40
msgid "The [CheckButton] text's font color when it's hovered."
msgstr "悬停时[CheckButton]文本的字体颜色。"

#: doc/classes/CheckButton.xml:43
msgid "The [CheckButton] text's font color when it's hovered and pressed."
msgstr "当[CheckButton]被悬停和按下时,其文本的字体颜色。"

#: doc/classes/CheckButton.xml:46
msgid "The [CheckButton] text's font color when it's pressed."
msgstr "按下[CheckButton]时文本的字体颜色。"

#: doc/classes/CheckButton.xml:49
msgid ""
"The [StyleBox] to display as a background when the [CheckButton] is hovered."
msgstr "当[CheckButton]被悬停时作为背景显示的[StyleBox]。"

#: doc/classes/CheckButton.xml:52
msgid ""
"The [StyleBox] to display as a background when the [CheckButton] is hovered "
"and pressed."
msgstr "当[CheckButton]被悬停和按下时作为背景显示的[StyleBox]。"

#: doc/classes/CheckButton.xml:55
msgid "The separation between the toggle icon and the text (in pixels)."
msgstr "切换图标和文本之间的分隔(以像素为单位)。"

#: doc/classes/CheckButton.xml:61
msgid "The icon to display when the [CheckButton] is unchecked."
msgstr "未选中[CheckButton]时显示的图标。"

#: doc/classes/CheckButton.xml:64
msgid "The icon to display when the [CheckButton] is unchecked and disabled."
msgstr "未选中和禁用[CheckButton]时显示的图标。"

#: doc/classes/CheckButton.xml:67
msgid "The icon to display when the [CheckButton] is checked."
msgstr "选中[CheckButton]时显示的图标。"

#: doc/classes/CheckButton.xml:70
msgid "The icon to display when the [CheckButton] is checked and disabled."
msgstr "选中并禁用[CheckButton]时显示的图标。"

#: doc/classes/CheckButton.xml:73
msgid ""
"The [StyleBox] to display as a background when the [CheckButton] is pressed."
msgstr "当[CheckButton]被按下时作为背景显示的[StyleBox]。"

#: doc/classes/CircleShape2D.xml:4
msgid "Circular shape for 2D collisions."
msgstr "用于2D碰撞的圆形。"

#: doc/classes/CircleShape2D.xml:7
msgid ""
"Circular shape for 2D collisions. This shape is useful for modeling balls or "
"small characters and its collision detection with everything else is very "
"fast."
msgstr ""
"用于2D碰撞的圆形形状。这种形状对塑造球或小角色很有用,它与其他东西的碰撞检测"
"非常快。"

#: doc/classes/CircleShape2D.xml:15
msgid "The circle's radius."
msgstr "圆的半径。"

#: doc/classes/ClassDB.xml:4
msgid "Class information repository."
msgstr "类信息存储库。"

#: doc/classes/ClassDB.xml:7
msgid "Provides access to metadata stored for every available class."
msgstr "提供对为每个可用类存储的元数据的访问。"

#: doc/classes/ClassDB.xml:16
msgid ""
"Returns [code]true[/code] if you can instance objects from the specified "
"[code]class[/code], [code]false[/code] in other case."
msgstr ""
"如果可以实例化指定[code]class[/code]中的对象,则返回[code] true [/code],否则"
"返回[code] false [/code]。"

#: doc/classes/ClassDB.xml:23
msgid "Returns whether the specified [code]class[/code] is available or not."
msgstr "返回指定的[code] class [/code]是否可用。"

#: doc/classes/ClassDB.xml:30
msgid ""
"Returns a category associated with the class for use in documentation and "
"the Asset Library. Debug mode required."
msgstr "返回与该类关联的类别,以用于文档和资产库。需要调试模式。"

#: doc/classes/ClassDB.xml:39
#, fuzzy
msgid ""
"Returns an array with all the keys in [code]enum[/code] of [code]class[/"
"code] or its ancestry."
msgstr ""
"返回一个数组,其中带有 [code] class [/code] 的所有整数常量或其祖先的名称。"

#: doc/classes/ClassDB.xml:47
#, fuzzy
msgid ""
"Returns an array with all the enums of [code]class[/code] or its ancestry."
msgstr ""
"返回一个数组,其中带有 [code] class [/code] 的所有整数常量或其祖先的名称。"

#: doc/classes/ClassDB.xml:55
msgid ""
"Returns the value of the integer constant [code]name[/code] of [code]class[/"
"code] or its ancestry. Always returns 0 when the constant could not be found."
msgstr ""
"返回[code] class [/code]的整数常量[code] name [/code]或其父级的值。找不到常量"
"时,始终返回0。"

#: doc/classes/ClassDB.xml:64
#, fuzzy
msgid ""
"Returns which enum the integer constant [code]name[/code] of [code]class[/"
"code] or its ancestry belongs to."
msgstr ""
"返回[code] class [/code]的整数常量[code] name [/code]或其父级的值。找不到常量"
"时,始终返回0。"

#: doc/classes/ClassDB.xml:72
msgid ""
"Returns an array with the names all the integer constants of [code]class[/"
"code] or its ancestry."
msgstr ""
"返回一个数组,其中带有 [code] class [/code] 的所有整数常量或其祖先的名称。"

#: doc/classes/ClassDB.xml:80
#, fuzzy
msgid ""
"Returns an array with all the methods of [code]class[/code] or its ancestry "
"if [code]no_inheritance[/code] is [code]false[/code]. Every element of the "
"array is a [Dictionary] with the following keys: [code]args[/code], "
"[code]default_args[/code], [code]flags[/code], [code]id[/code], [code]name[/"
"code], [code]return: (class_name, hint, hint_string, name, type, usage)[/"
"code].\n"
"[b]Note:[/b] In exported release builds the debug info is not available, so "
"the returned dictionaries will contain only method names."
msgstr ""
"如果[code] no_inheritance [/code]为[code] false [/code],则返回具有[code] "
"class [/code]或其父级的所有方法的数组。数组的每个元素都是带有以下键的"
"[Dictionary]:[code] args [/code],[code] default_args [/code],[code] flags "
"[/code],[code] id [/code],[code]name[/code],[code]return: (class_name, "
"hint, hint_string, name, type, usage)[/code]。"

#: doc/classes/ClassDB.xml:89
msgid ""
"Returns the value of [code]property[/code] of [code]class[/code] or its "
"ancestry."
msgstr "返回[code] class [/code]的[code] property [/code]的值或其父级。"

#: doc/classes/ClassDB.xml:97
msgid ""
"Returns an array with all the properties of [code]class[/code] or its "
"ancestry if [code]no_inheritance[/code] is [code]false[/code]."
msgstr ""
"如果[code] no_inheritance [/code]为[code] false [/code],则返回具有[code] "
"class [/code]或其父级所有属性的数组。"

#: doc/classes/ClassDB.xml:105
msgid ""
"Returns the [code]signal[/code] data of [code]class[/code] or its ancestry. "
"The returned value is a [Dictionary] with the following keys: [code]args[/"
"code], [code]default_args[/code], [code]flags[/code], [code]id[/code], "
"[code]name[/code], [code]return: (class_name, hint, hint_string, name, type, "
"usage)[/code]."
msgstr ""
"返回[code]signal[/code][code]class[/code]或其父级的数据。返回值是带有以下键"
"的 [Dictionary]: [code]args[/code], [code]default_args[/code], [code]flags[/"
"code], [code]id[/code], [code]name[/code], [code]return:(class_name, hint, "
"hint_string, name, type, usage)[/code]。"

#: doc/classes/ClassDB.xml:113
msgid ""
"Returns an array with all the signals of [code]class[/code] or its ancestry "
"if [code]no_inheritance[/code] is [code]false[/code]. Every element of the "
"array is a [Dictionary] as described in [method class_get_signal]."
msgstr ""
"如果[code] no_inheritance [/code]为[code] false [/code],则返回具有[code] "
"class [/code]或其父级的所有信号的数组。数组的每个元素都是[Dictionary],如"
"[[method class_get_signal]中所述。"

#: doc/classes/ClassDB.xml:122
#, fuzzy
msgid ""
"Returns whether [code]class[/code] or its ancestry has an enum called "
"[code]name[/code] or not."
msgstr ""
"返回[code] class [/code]或其父级是否有一个称为[code] signal [/code]的信号。"

#: doc/classes/ClassDB.xml:130
msgid ""
"Returns whether [code]class[/code] or its ancestry has an integer constant "
"called [code]name[/code] or not."
msgstr ""
"返回[code] class [/code]或其父级是否具有称为[code] name [/code]的整数常量。"

#: doc/classes/ClassDB.xml:139
msgid ""
"Returns whether [code]class[/code] (or its ancestry if [code]no_inheritance[/"
"code] is [code]false[/code]) has a method called [code]method[/code] or not."
msgstr ""
"返回[code] class [/code](如果[code] no_inheritance [/code]为[code] false [/"
"code],则返回其父级)是否具有称为[code]method[/code]的方法。"

#: doc/classes/ClassDB.xml:147
msgid ""
"Returns whether [code]class[/code] or its ancestry has a signal called "
"[code]signal[/code] or not."
msgstr ""
"返回[code] class [/code]或其父级是否有一个称为[code] signal [/code]的信号。"

#: doc/classes/ClassDB.xml:156
msgid ""
"Sets [code]property[/code] value of [code]class[/code] to [code]value[/code]."
msgstr ""
"将[code]class[/code]的[code]property[/code]值设置为[code]value[/code]。"

#: doc/classes/ClassDB.xml:162
msgid "Returns the names of all the classes available."
msgstr "返回所有可用类的名称。"

#: doc/classes/ClassDB.xml:169
msgid ""
"Returns the names of all the classes that directly or indirectly inherit "
"from [code]class[/code]."
msgstr "返回直接或间接继承自[code] class [/code]的所有类的名称。"

#: doc/classes/ClassDB.xml:176
msgid "Returns the parent class of [code]class[/code]."
msgstr "返回[code] class [/code]的父类。"

#: doc/classes/ClassDB.xml:183
msgid "Creates an instance of [code]class[/code]."
msgstr "创建[code] class [/code]的实例。"

#: doc/classes/ClassDB.xml:190
msgid "Returns whether this [code]class[/code] is enabled or not."
msgstr "返回是否启用此[code] class [/code]。"

#: doc/classes/ClassDB.xml:198
msgid ""
"Returns whether [code]inherits[/code] is an ancestor of [code]class[/code] "
"or not."
msgstr "返回[code]inherits[/code]是否是[code] class [/code]的祖先。"

#: doc/classes/ClippedCamera.xml:4
#, fuzzy
msgid "A [Camera] that includes collision."
msgstr "包含碰撞的[Camera3D]。"

#: doc/classes/ClippedCamera.xml:7
#, fuzzy
msgid ""
"This node extends [Camera] to add collisions with [Area] and/or "
"[PhysicsBody] nodes. The camera cannot move through colliding objects."
msgstr ""
"该节点扩展了[Camera3D]以添加与[Area3D]和/或[PhysicsBody3D]节点的碰撞。相机无"
"法在碰撞的物体之间移动。"

#: doc/classes/ClippedCamera.xml:16
msgid ""
"Adds a collision exception so the camera does not collide with the specified "
"node."
msgstr "添加碰撞异常,以使摄影机不会与指定的节点碰撞。"

#: doc/classes/ClippedCamera.xml:23
msgid ""
"Adds a collision exception so the camera does not collide with the specified "
"[RID]."
msgstr "添加碰撞例外,以使相机不会与指定的[RID]碰撞。"

#: doc/classes/ClippedCamera.xml:29
msgid "Removes all collision exceptions."
msgstr "删除所有碰撞异常。"

#: doc/classes/ClippedCamera.xml:35
msgid "Returns the distance the camera has been offset due to a collision."
msgstr "返回相机由于碰撞而偏移的距离。"

#: doc/classes/ClippedCamera.xml:42
msgid ""
"Returns [code]true[/code] if the specified bit index is on.\n"
"[b]Note:[/b] Bit indices range from 0-19."
msgstr ""
"如果指定的位索引打开,则返回[code] true [/code]。\n"
"[b]注意:[/b]位索引的范围是0-19。"

#: doc/classes/ClippedCamera.xml:50
msgid "Removes a collision exception with the specified node."
msgstr "删除与指定节点的冲突异常。"

#: doc/classes/ClippedCamera.xml:57
msgid "Removes a collision exception with the specified [RID]."
msgstr "删除具有指定[RID]的碰撞异常。"

#: doc/classes/ClippedCamera.xml:65
msgid ""
"Sets the specified bit index to the [code]value[/code].\n"
"[b]Note:[/b] Bit indices range from 0-19."
msgstr ""
"将指定的位索引设置为[code]value[/code]。\n"
"[b]注意:[/b]位索引的范围是0-19。"

#: doc/classes/ClippedCamera.xml:72
#, fuzzy
msgid "If [code]true[/code], the camera stops on contact with [Area]s."
msgstr "如果[code]true[/code],摄像机与[Area3D]s接触时停止。"

#: doc/classes/ClippedCamera.xml:75
#, fuzzy
msgid "If [code]true[/code], the camera stops on contact with [PhysicsBody]s."
msgstr "如果[code]true[/code],摄像机在接触[PhysicsBody3D]时停止。"

#: doc/classes/ClippedCamera.xml:78
msgid ""
"The camera's collision mask. Only objects in at least one collision layer "
"matching the mask will be detected. See [url=https://docs.godotengine.org/"
"en/3.4/tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""

#: doc/classes/ClippedCamera.xml:81
msgid ""
"The camera's collision margin. The camera can't get closer than this "
"distance to a colliding object."
msgstr "摄像机的碰撞距离。摄像机与碰撞物体的距离不能超过这个距离。"

#: doc/classes/ClippedCamera.xml:84
msgid "The camera's process callback. See [enum ProcessMode]."
msgstr "摄像机的过程回调。请参见[enum ProcessMode]。"

#: doc/classes/CollisionObject.xml:4
msgid "Base node for collision objects."
msgstr "碰撞对象的基础节点。"

#: doc/classes/CollisionObject.xml:7
#, fuzzy
msgid ""
"CollisionObject is the base class for physics objects. It can hold any "
"number of collision [Shape]s. Each shape must be assigned to a [i]shape "
"owner[/i]. The CollisionObject can have any number of shape owners. Shape "
"owners are not nodes and do not appear in the editor, but are accessible "
"through code using the [code]shape_owner_*[/code] methods."
msgstr ""
"CollisionObject3D是物理对象的基类。它可以容纳任意数量的碰撞[Shape3D]。每个形"
"状必须分配给[i]shape owner[/i]。 CollisionObject3D可以具有任意数量的形状所有"
"者。形状所有者不是节点,也不显示在编辑器中,但是可以使用[code] shape_owner _ "
"* [/code]方法通过代码进行访问。"

#: doc/classes/CollisionObject.xml:20
#, fuzzy
msgid ""
"Receives unhandled [InputEvent]s. [code]position[/code] is the location in "
"world space of the mouse pointer on the surface of the shape with index "
"[code]shape_idx[/code] and [code]normal[/code] is the normal vector of the "
"surface at that point. Connect to the [signal input_event] signal to easily "
"pick up these events."
msgstr ""
"接受未处理的[InputEvent]。 [code] click_position [/code]是世界空间中的被单击"
"位置,[code] click_normal [/code]是从[Shape3D]的被单击表面开始的法线向量,位"
"于[code] shape_idx [/code]。连接到[code] input_event [/code]信号即可轻松接收"
"这些事件。"

#: doc/classes/CollisionObject.xml:27 doc/classes/CollisionObject2D.xml:25
msgid ""
"Creates a new shape owner for the given object. Returns [code]owner_id[/"
"code] of the new owner for future reference."
msgstr ""
"为给定对象创建一个新的形状拥有者。返回[code]owner_id[/code]的新所有者,供将来"
"引用。"

#: doc/classes/CollisionObject.xml:34 doc/classes/CollisionObject2D.xml:32
#, fuzzy
msgid ""
"Returns whether or not the specified [code]bit[/code] of the [member "
"collision_layer] is set."
msgstr "返回指定的[code] class [/code]是否可用。"

#: doc/classes/CollisionObject.xml:41 doc/classes/CollisionObject2D.xml:39
#, fuzzy
msgid ""
"Returns whether or not the specified [code]bit[/code] of the [member "
"collision_mask] is set."
msgstr "如果指定碰撞遮罩bit位被设置,返回[code]true[/code]。"

#: doc/classes/CollisionObject.xml:47 doc/classes/CollisionObject2D.xml:45
msgid "Returns the object's [RID]."
msgstr "返回对象的[RID]。"

#: doc/classes/CollisionObject.xml:53 doc/classes/CollisionObject2D.xml:58
msgid ""
"Returns an [Array] of [code]owner_id[/code] identifiers. You can use these "
"ids in other methods that take [code]owner_id[/code] as an argument."
msgstr ""
"返回一个[code]owner_id[/code]标识符的[Array]。你可以在其他使用"
"[code]owner_id[/code]作为参数的方法中使用这些id。"

#: doc/classes/CollisionObject.xml:60 doc/classes/CollisionObject2D.xml:65
msgid "If [code]true[/code], the shape owner and its shapes are disabled."
msgstr "如果[code]true[/code],则禁用形状所有者及其形状。"

#: doc/classes/CollisionObject.xml:67 doc/classes/CollisionObject2D.xml:79
msgid "Removes the given shape owner."
msgstr "移除给定形状的所有者。"

#: doc/classes/CollisionObject.xml:75 doc/classes/CollisionObject2D.xml:87
msgid ""
"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
"code] in the the [member collision_layer].\n"
"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
"code] in the the [member collision_layer]."
msgstr ""

#: doc/classes/CollisionObject.xml:84 doc/classes/CollisionObject2D.xml:96
msgid ""
"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
"code] in the the [member collision_mask].\n"
"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
"code] in the the [member collision_mask]."
msgstr ""

#: doc/classes/CollisionObject.xml:92 doc/classes/CollisionObject2D.xml:104
msgid "Returns the [code]owner_id[/code] of the given shape."
msgstr "返回指定形状的[code]owner_id[/code]。"

#: doc/classes/CollisionObject.xml:100
#, fuzzy
msgid "Adds a [Shape] to the shape owner."
msgstr "给形状所有者添加一个[Shape2D]。"

#: doc/classes/CollisionObject.xml:107 doc/classes/CollisionObject2D.xml:119
msgid "Removes all shapes from the shape owner."
msgstr "移除形状所有者的所有形状。"

#: doc/classes/CollisionObject.xml:114 doc/classes/CollisionObject2D.xml:126
msgid "Returns the parent object of the given shape owner."
msgstr "返回给定形状所有者的父对象。"

#: doc/classes/CollisionObject.xml:122
#, fuzzy
msgid "Returns the [Shape] with the given id from the given shape owner."
msgstr "从给定的形状所有者那里返回给定id的[Shape2D]。"

#: doc/classes/CollisionObject.xml:129 doc/classes/CollisionObject2D.xml:141
msgid "Returns the number of shapes the given shape owner contains."
msgstr "返回给定形状所有者包含的形状数量。"

#: doc/classes/CollisionObject.xml:137
#, fuzzy
msgid ""
"Returns the child index of the [Shape] with the given id from the given "
"shape owner."
msgstr "从给定的形状所有者那里返回给定id的[Shape2D]的子索引。"

#: doc/classes/CollisionObject.xml:144
msgid "Returns the shape owner's [Transform]."
msgstr "返回形状所有者的[Transform]。"

#: doc/classes/CollisionObject.xml:152 doc/classes/CollisionObject2D.xml:164
msgid "Removes a shape from the given shape owner."
msgstr "从给定的形状所有者中删除一个形状。"

#: doc/classes/CollisionObject.xml:160 doc/classes/CollisionObject2D.xml:172
msgid "If [code]true[/code], disables the given shape owner."
msgstr "如果[code]true[/code],则禁用给定的形状所有者。"

#: doc/classes/CollisionObject.xml:168
msgid "Sets the [Transform] of the given shape owner."
msgstr "设置给定形状所有者的[Transform]。"

#: doc/classes/CollisionObject.xml:174
#, fuzzy
msgid ""
"The physics layers this CollisionObject3D is in. Collision objects can exist "
"in one or more of 32 different layers. See also [member collision_mask].\n"
"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
"object B scans, or object B is in any layers that object A scans. See "
"[url=https://docs.godotengine.org/en/latest/tutorials/physics/"
"physics_introduction.html#collision-layers-and-masks]Collision layers and "
"masks[/url] in the documentation for more information."
msgstr ""
"区域的物理层。可碰撞的物体可以存在于32个不同层中的任何一层。如果物体A在物体B"
"扫描的任何一层中,或者物体B在物体A扫描的任何一层中,则检测到接触。也请参见"
"[member collision_mask]。"

#: doc/classes/CollisionObject.xml:178
#, fuzzy
msgid ""
"The physics layers this CollisionObject3D scans. Collision objects can scan "
"one or more of 32 different layers. See also [member collision_layer].\n"
"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
"object B scans, or object B is in any layers that object A scans. See "
"[url=https://docs.godotengine.org/en/latest/tutorials/physics/"
"physics_introduction.html#collision-layers-and-masks]Collision layers and "
"masks[/url] in the documentation for more information."
msgstr ""
"区域的物理层。可碰撞的物体可以存在于32个不同层中的任何一层。如果物体A在物体B"
"扫描的任何一层中,或者物体B在物体A扫描的任何一层中,则检测到接触。也请参见"
"[member collision_mask]。"

#: doc/classes/CollisionObject.xml:182
#, fuzzy
msgid ""
"If [code]true[/code], the [CollisionObject] will continue to receive input "
"events as the mouse is dragged across its shapes."
msgstr ""
"如果[code] true [/code],则当鼠标在其形状上拖动时,[CollisionObject3D]将继续"
"接收输入事件。"

#: doc/classes/CollisionObject.xml:185
#, fuzzy
msgid ""
"If [code]true[/code], the [CollisionObject]'s shapes will respond to "
"[RayCast]s."
msgstr "如果[code]true[/code],[CollisionObject3D]的形状将响应于[RayCast3D]。"

#: doc/classes/CollisionObject.xml:196
#, fuzzy
msgid ""
"Emitted when the object receives an unhandled [InputEvent]. [code]position[/"
"code] is the location in world space of the mouse pointer on the surface of "
"the shape with index [code]shape_idx[/code] and [code]normal[/code] is the "
"normal vector of the surface at that point."
msgstr ""
"接受未处理的[InputEvent]。 [code] click_position [/code]是世界空间中的被单击"
"位置,[code] click_normal [/code]是从[Shape3D]的被单击表面开始的法线向量,位"
"于[code] shape_idx [/code]。连接到[code] input_event [/code]信号即可轻松接收"
"这些事件。"

#: doc/classes/CollisionObject.xml:201
msgid "Emitted when the mouse pointer enters any of this object's shapes."
msgstr "当鼠标指针进入此对象的任何形状时触发。"

#: doc/classes/CollisionObject.xml:206
msgid "Emitted when the mouse pointer exits all this object's shapes."
msgstr "当鼠标指针退出此对象的所有形状时发出。"

#: doc/classes/CollisionObject2D.xml:4
msgid "Base node for 2D collision objects."
msgstr "二维碰撞对象的基础节点。"

#: doc/classes/CollisionObject2D.xml:7
msgid ""
"CollisionObject2D is the base class for 2D physics objects. It can hold any "
"number of 2D collision [Shape2D]s. Each shape must be assigned to a [i]shape "
"owner[/i]. The CollisionObject2D can have any number of shape owners. Shape "
"owners are not nodes and do not appear in the editor, but are accessible "
"through code using the [code]shape_owner_*[/code] methods."
msgstr ""
"CollisionObject2D是2D物理对象的基础类。它可以容纳任意数量的2D碰撞[Shape2D]。"
"每个形状必须分配给一个[i]shape owner[/i]。CollisionObject2D可以拥有任意数量的"
"形状拥有者。形状所有者不是节点,也不会出现在编辑器中,但可以通过代码使用"
"[code]shape_owner_*[/code]方法访问。"

#: doc/classes/CollisionObject2D.xml:18
msgid ""
"Accepts unhandled [InputEvent]s. Requires [member input_pickable] to be "
"[code]true[/code]. [code]shape_idx[/code] is the child index of the clicked "
"[Shape2D]. Connect to the [code]input_event[/code] signal to easily pick up "
"these events."
msgstr ""
"接受未处理的[InputEvent]。要求[member input_pickable]为[code] true [/code]。 "
"[code] shape_idx [/code]被点击的[Shape2D]的子索引。连接到[code] input_event "
"[/code]信号即可轻松接收这些事件。"

#: doc/classes/CollisionObject2D.xml:52
msgid ""
"Returns the [code]one_way_collision_margin[/code] of the shape owner "
"identified by given [code]owner_id[/code]."
msgstr ""
"返回由给定的[code] owner_id [/code]标识的形状所有者的[code] "
"one_way_collision_margin [/code]。"

#: doc/classes/CollisionObject2D.xml:72
msgid ""
"Returns [code]true[/code] if collisions for the shape owner originating from "
"this [CollisionObject2D] will not be reported to collided with "
"[CollisionObject2D]s."
msgstr ""
"返回[code]true[/code],如果源于这个[CollisionObject2D]的形状所有者的碰撞不会"
"被报告给[CollisionObject2D]s。"

#: doc/classes/CollisionObject2D.xml:112
msgid "Adds a [Shape2D] to the shape owner."
msgstr "给形状所有者添加一个[Shape2D]。"

#: doc/classes/CollisionObject2D.xml:134
msgid "Returns the [Shape2D] with the given id from the given shape owner."
msgstr "从给定的形状所有者那里返回给定id的[Shape2D]。"

#: doc/classes/CollisionObject2D.xml:149
msgid ""
"Returns the child index of the [Shape2D] with the given id from the given "
"shape owner."
msgstr "从给定的形状所有者那里返回给定id的[Shape2D]的子索引。"

#: doc/classes/CollisionObject2D.xml:156
msgid "Returns the shape owner's [Transform2D]."
msgstr "返回形状所有者的[Transform2D]。"

#: doc/classes/CollisionObject2D.xml:180
msgid ""
"If [code]enable[/code] is [code]true[/code], collisions for the shape owner "
"originating from this [CollisionObject2D] will not be reported to collided "
"with [CollisionObject2D]s."
msgstr ""
"如果[code]enable[/code]为[code]true[/code],则源自这个[CollisionObject2D]的形"
"状所有者的碰撞将不会被报告给[CollisionObject2D]。"

#: doc/classes/CollisionObject2D.xml:188
msgid ""
"Sets the [code]one_way_collision_margin[/code] of the shape owner identified "
"by given [code]owner_id[/code] to [code]margin[/code] pixels."
msgstr ""
"将由给定的[code] owner_id [/code]标识的形状所有者的[code] "
"one_way_collision_margin [/code]设置为[code] margin [/code]像素。"

#: doc/classes/CollisionObject2D.xml:196
msgid "Sets the [Transform2D] of the given shape owner."
msgstr "设置给定形状所有者的[Transform2D]。"

#: doc/classes/CollisionObject2D.xml:202
#, fuzzy
msgid ""
"The physics layers this CollisionObject2D is in. Collision objects can exist "
"in one or more of 32 different layers. See also [member collision_mask].\n"
"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
"object B scans, or object B is in any layers that object A scans. See "
"[url=https://docs.godotengine.org/en/latest/tutorials/physics/"
"physics_introduction.html#collision-layers-and-masks]Collision layers and "
"masks[/url] in the documentation for more information."
msgstr ""
"区域的物理层。可碰撞的物体可以存在于32个不同层中的任何一层。如果物体A在物体B"
"扫描的任何一层中,或者物体B在物体A扫描的任何一层中,则检测到接触。也请参见"
"[member collision_mask]。"

#: doc/classes/CollisionObject2D.xml:206
#, fuzzy
msgid ""
"The physics layers this CollisionObject2D scans. Collision objects can scan "
"one or more of 32 different layers. See also [member collision_layer].\n"
"[b]Note:[/b] A contact is detected if object A is in any of the layers that "
"object B scans, or object B is in any layers that object A scans. See "
"[url=https://docs.godotengine.org/en/latest/tutorials/physics/"
"physics_introduction.html#collision-layers-and-masks]Collision layers and "
"masks[/url] in the documentation for more information."
msgstr ""
"区域的物理层。可碰撞的物体可以存在于32个不同层中的任何一层。如果物体A在物体B"
"扫描的任何一层中,或者物体B在物体A扫描的任何一层中,则检测到接触。也请参见"
"[member collision_mask]。"

#: doc/classes/CollisionObject2D.xml:210
msgid ""
"If [code]true[/code], this object is pickable. A pickable object can detect "
"the mouse pointer entering/leaving, and if the mouse is inside it, report "
"input events. Requires at least one [code]collision_layer[/code] bit to be "
"set."
msgstr ""
"如果[code]true[/code],这个对象是可拾取的。一个可拾取的对象可以检测鼠标指针的"
"进入/离开,如果鼠标在里面,就报告输入事件。要求至少有一个 "
"[code]collision_layer[/code] 位被设置。"

#: doc/classes/CollisionObject2D.xml:219
msgid ""
"Emitted when an input event occurs. Requires [member input_pickable] to be "
"[code]true[/code] and at least one [code]collision_layer[/code] bit to be "
"set. See [method _input_event] for details."
msgstr ""
"在发生输入事件时发出。要求[member input_pickable]为[code] true [/code],并且"
"至少要设置一个[code] collision_layer [/code]位。有关详细信息,请参见"
"[method_input_event]。"

#: doc/classes/CollisionObject2D.xml:224
msgid ""
"Emitted when the mouse pointer enters any of this object's shapes. Requires "
"[member input_pickable] to be [code]true[/code] and at least one "
"[code]collision_layer[/code] bit to be set."
msgstr ""
"当鼠标指针进入此对象的任何形状时触发。要求[member input_pickable]为[code] "
"true [/code],并且至少要设置一个[code] collision_layer [/code]位。"

#: doc/classes/CollisionObject2D.xml:229
msgid ""
"Emitted when the mouse pointer exits all this object's shapes. Requires "
"[member input_pickable] to be [code]true[/code] and at least one "
"[code]collision_layer[/code] bit to be set."
msgstr ""
"当鼠标指针退出此对象的所有形状时发出。要求[member input_pickable]为[code] "
"true [/code],并且至少要设置一个[code] collision_layer [/code]位。"

#: doc/classes/CollisionPolygon.xml:4
msgid "Editor-only class for defining a collision polygon in 3D space."
msgstr "仅限编辑器的类,用于在3D空间中定义碰撞多边形。"

#: doc/classes/CollisionPolygon.xml:7
#, fuzzy
msgid ""
"Allows editing a collision polygon's vertices on a selected plane. Can also "
"set a depth perpendicular to that plane. This class is only available in the "
"editor. It will not appear in the scene tree at run-time. Creates a [Shape] "
"for gameplay. Properties modified during gameplay will have no effect."
msgstr ""
"允许在选定平面上编辑碰撞多边形的顶点。也可以设置垂直于该平面的深度。此类仅在"
"编辑器中可用。运行时它不会出现在场景树中。为游戏创建一个[Shape3D]。在游戏过程"
"中修改的属性将无效。"

#: doc/classes/CollisionPolygon.xml:15
msgid ""
"Length that the resulting collision extends in either direction "
"perpendicular to its polygon."
msgstr "产生的碰撞在垂直于其多边形的任一方向上延伸的长度。"

#: doc/classes/CollisionPolygon.xml:18
msgid "If [code]true[/code], no collision will be produced."
msgstr "如果[code]true[/code],将不会产生碰撞。"

#: doc/classes/CollisionPolygon.xml:21
msgid ""
"The collision margin for the generated [Shape]. See [member Shape.margin] "
"for more details."
msgstr ""

#: doc/classes/CollisionPolygon.xml:24
msgid ""
"Array of vertices which define the polygon.\n"
"[b]Note:[/b] The returned value is a copy of the original. Methods which "
"mutate the size or properties of the return value will not impact the "
"original polygon. To change properties of the polygon, assign it to a "
"temporary variable and make changes before reassigning the [code]polygon[/"
"code] member."
msgstr ""
"定义多边形的顶点数组。\n"
"[b]注意:[/b]返回的值是原始值的副本。改变返回值的大小或属性的方法不会影响原始"
"多边形。要更改多边形的属性,请将其分配给临时变量并进行更改,然后再重新分配"
"[code] polygon [/code]成员。"

#: doc/classes/CollisionPolygon2D.xml:4
msgid "Defines a 2D collision polygon."
msgstr "定义2D碰撞多边形。"

#: doc/classes/CollisionPolygon2D.xml:7
msgid ""
"Provides a 2D collision polygon to a [CollisionObject2D] parent. Polygons "
"can be drawn in the editor or specified by a list of vertices."
msgstr ""
"为[CollisionObject2D]父级提供2D碰撞多边形。多边形可以在编辑器中绘制,也可以由"
"顶点列表指定。"

#: doc/classes/CollisionPolygon2D.xml:15
msgid "Collision build mode. Use one of the [enum BuildMode] constants."
msgstr "碰撞构建模式。使用[enum BuildMode]常量之一。"

#: doc/classes/CollisionPolygon2D.xml:18
msgid "If [code]true[/code], no collisions will be detected."
msgstr "如果[code]true[/code],将不会检测到碰撞。"

#: doc/classes/CollisionPolygon2D.xml:21
msgid ""
"If [code]true[/code], only edges that face up, relative to "
"[CollisionPolygon2D]'s rotation, will collide with other objects."
msgstr ""
"如果[code]true[/code],相对于[CollisionPolygon2D]的旋转而言,只有面朝上的边缘"
"才会与其他对象发生碰撞。"

#: doc/classes/CollisionPolygon2D.xml:24
msgid ""
"The margin used for one-way collision (in pixels). Higher values will make "
"the shape thicker, and work better for colliders that enter the polygon at a "
"high velocity."
msgstr ""
"用于单向碰撞的边距(以像素为单位)。较高的值将使形状更厚,并且对于以高速进入"
"多边形的对撞机来说效果更好。"

#: doc/classes/CollisionPolygon2D.xml:27
#, fuzzy
msgid ""
"The polygon's list of vertices. The final point will be connected to the "
"first. The returned value is a clone of the [PoolVector2Array], not a "
"reference."
msgstr ""
"多边形的顶点列表。最终点将连接到第一个点。返回的值是[PackedVector2Array]的克"
"隆,而不是引用。"

#: doc/classes/CollisionPolygon2D.xml:32
msgid "Collisions will include the polygon and its contained area."
msgstr "碰撞将包括多边形及其包含的区域。"

#: doc/classes/CollisionPolygon2D.xml:35
msgid "Collisions will only include the polygon edges."
msgstr "碰撞将仅包括多边形边缘。"

#: doc/classes/CollisionShape.xml:4
msgid "Node that represents collision shape data in 3D space."
msgstr "表示3D空间中的碰撞形状数据的节点。"

#: doc/classes/CollisionShape.xml:7
#, fuzzy
msgid ""
"Editor facility for creating and editing collision shapes in 3D space. You "
"can use this node to represent all sorts of collision shapes, for example, "
"add this to an [Area] to give it a detection shape, or add it to a "
"[PhysicsBody] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-"
"only helper to create shapes, use [method CollisionObject."
"shape_owner_get_shape] to get the actual shape."
msgstr ""
"编辑器功能,用于在3D空间中创建和编辑碰撞形状。您可以使用此节点表示各种碰撞形"
"状,例如,将其添加到[Area3D]中以提供检测形状,或将其添加到[PhysicsBody3D]中以"
"创建实体。 [b]要点[/b]:这是一个仅用于编辑器的创建形状的助手,请使用[method "
"CollisionObject3D.shape_owner_get_shape]获取实际形状。"

#: doc/classes/CollisionShape.xml:10 doc/classes/CollisionShape2D.xml:10
#: doc/classes/Physics2DDirectBodyState.xml:10
#: doc/classes/Physics2DDirectSpaceState.xml:10 doc/classes/PhysicsBody.xml:10
#: doc/classes/PhysicsBody2D.xml:10 doc/classes/PhysicsDirectBodyState.xml:10
#: doc/classes/PhysicsDirectSpaceState.xml:10 doc/classes/RigidBody.xml:14
#: doc/classes/Shape.xml:10 doc/classes/Shape2D.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/physics/"
"physics_introduction.html"

#: doc/classes/CollisionShape.xml:19
#, fuzzy
msgid ""
"Sets the collision shape's shape to the addition of all its convexed "
"[MeshInstance] siblings geometry."
msgstr "设置碰撞形状的形状为其所有凸出的[MeshInstance3D]兄弟姐妹几何形状的和。"

#: doc/classes/CollisionShape.xml:26
msgid ""
"If this method exists within a script it will be called whenever the shape "
"resource has been modified."
msgstr "如果脚本中存在此方法,则只要修改形状资源,就会调用该方法。"

#: doc/classes/CollisionShape.xml:32
msgid "A disabled collision shape has no effect in the world."
msgstr "禁用的碰撞形状对世界没有任何影响。"

#: doc/classes/CollisionShape.xml:35 doc/classes/CollisionShape2D.xml:28
msgid "The actual shape owned by this collision shape."
msgstr "该碰撞形状拥有的实际形状。"

#: doc/classes/CollisionShape2D.xml:4
msgid "Node that represents collision shape data in 2D space."
msgstr "表示2D空间中的碰撞形状数据的节点。"

#: doc/classes/CollisionShape2D.xml:7
msgid ""
"Editor facility for creating and editing collision shapes in 2D space. You "
"can use this node to represent all sorts of collision shapes, for example, "
"add this to an [Area2D] to give it a detection shape, or add it to a "
"[PhysicsBody2D] to create a solid object. [b]IMPORTANT[/b]: this is an "
"Editor-only helper to create shapes, use [method CollisionObject2D."
"shape_owner_get_shape] to get the actual shape."
msgstr ""
"编辑器功能,用于在2D空间中创建和编辑碰撞形状。您可以使用此节点表示各种碰撞形"
"状,例如,将其添加到[Area2D]以提供检测形状,或将其添加到[PhysicsBody2D]以创建"
"实体。 [b]重要事项[/b]:这是创建形状的仅编辑器助手,请使用[method "
"CollisionObject2D.shape_owner_get_shape]获取实际形状。"

#: doc/classes/CollisionShape2D.xml:13 doc/classes/KinematicBody2D.xml:14
#: doc/classes/RectangleShape2D.xml:11 doc/classes/TileMap.xml:17
#: doc/classes/TileSet.xml:17
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/113"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/CollisionShape2D.xml:19
#, fuzzy
msgid ""
"A disabled collision shape has no effect in the world. This property should "
"be changed with [method Object.set_deferred]."
msgstr "禁用的碰撞形状对世界没有任何影响。"

#: doc/classes/CollisionShape2D.xml:22
msgid ""
"Sets whether this collision shape should only detect collision on one side "
"(top or bottom)."
msgstr "设置此碰撞形状是否仅应检测到一侧(顶部或底部)的碰撞。"

#: doc/classes/CollisionShape2D.xml:25
msgid ""
"The margin used for one-way collision (in pixels). Higher values will make "
"the shape thicker, and work better for colliders that enter the shape at a "
"high velocity."
msgstr ""
"用于单向碰撞的边距(以像素为单位)。较高的值将使形状更厚,并且对于高速进入形"
"状的对撞机来说效果更好。"

#: doc/classes/Color.xml:4
msgid "Color in RGBA format using floats on the range of 0 to 1."
msgstr "RGBA格式的颜色使用0到1范围内的浮点数。"

#: doc/classes/Color.xml:7
#, fuzzy
msgid ""
"A color represented by red, green, blue, and alpha (RGBA) components. The "
"alpha component is often used for transparency. Values are in floating-point "
"and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) "
"may accept values greater than 1 (overbright or HDR colors).\n"
"You can also create a color from standardized color names by using [method "
"@GDScript.ColorN] or directly using the color constants defined here. The "
"standardized color set is based on the [url=https://en.wikipedia.org/wiki/"
"X11_color_names]X11 color names[/url].\n"
"If you want to supply values in a range of 0 to 255, you should use [method "
"@GDScript.Color8].\n"
"[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/"
"code] if it's 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 ""
"由红、绿、蓝、阿尔法(RGBA)分量表示的一种颜色。alpha分量通常用于透明度。一些"
"属性(如CanvasItem.modulate)可以接受大于1的值(过亮或HDR颜色)。\n"
"您也可以通过使用[method @GDScript.ColorN]或直接使用这里定义的颜色常量,从标准"
"化颜色名称中创建颜色。标准化颜色集是基于[url=https://en.wikipedia.org/wiki/"
"X11_color_names]X11 color names[/url]的。\n"
"如果你想提供0到255范围内的值,你应该使用[method @GDScript.Color8]。\n"
"[b]注意:[/b] 在布尔上下文中,如果一个Color等于[code]Color(0, 0, 0, 1)[/code]"
"(不透明的黑色),那么它将评估为[code]false[/code]。否则,一个Color将始终评估为"
"[code]true[/code]。"

#: doc/classes/Color.xml:14 doc/classes/ColorPickerButton.xml:13
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/517"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Color.xml:15 doc/classes/ColorPicker.xml:11
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/146"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Color.xml:16 doc/classes/ColorPickerButton.xml:12
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/133"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Color.xml:23
msgid ""
"Constructs a color from an HTML hexadecimal color string in ARGB or RGB "
"format. See also [method @GDScript.ColorN].\n"
"[codeblock]\n"
"# Each of the following creates the same color RGBA(178, 217, 10, 255).\n"
"var c1 = Color(\"#ffb2d90a\") # ARGB format with \"#\".\n"
"var c2 = Color(\"ffb2d90a\") # ARGB format.\n"
"var c3 = Color(\"#b2d90a\") # RGB format with \"#\".\n"
"var c4 = Color(\"b2d90a\") # RGB format.\n"
"[/codeblock]"
msgstr ""
"从HTML十六进制颜色字符串构造ARGB或RGB格式的颜色。另请参见[method @ GDScript."
"ColorN]。\n"
"[codeblock]\n"
"# Each of the following creates the same color RGBA(178, 217, 10, 255).\n"
"var c1 = Color(\"#ffb2d90a\") # ARGB format with \"#\".\n"
"var c2 = Color(\"ffb2d90a\") # ARGB format.\n"
"var c3 = Color(\"#b2d90a\") # RGB format with \"#\".\n"
"var c4 = Color(\"b2d90a\") # RGB format.\n"
"[/codeblock]"

#: doc/classes/Color.xml:37
#, fuzzy
msgid ""
"Constructs a color from a 32-bit integer in RGBA format (each byte "
"represents a color channel).\n"
"[codeblock]\n"
"var c = Color(274) # Similar to Color(0.0, 0.0, 0.004, 0.07)\n"
"[/codeblock]"
msgstr ""
"从一个32位整数中构造一个颜色(每个字节代表RGBA配置文件的一个组成部分)。\n"
"[codeblock]\n"
"var c = Color(274) # Equivalent to RGBA(0, 0, 1, 18)\n"
"[/codeblock]"

#: doc/classes/Color.xml:49
#, fuzzy
msgid ""
"Constructs a color from RGB values, typically between 0 and 1. Alpha will be "
"1.\n"
"[codeblock]\n"
"var color = Color(0.2, 1.0, 0.7) # Similar to Color8(51, 255, 178, 255)\n"
"[/codeblock]"
msgstr ""
"使用0和1之间的值从RGB配置文件中构建颜色。 阿尔法将始终为1。\n"
"[codeblock]\n"
"var c = Color(0.2, 1.0, 0.7) # Equivalent to RGBA(51, 255, 178, 255)\n"
"[/codeblock]"

#: doc/classes/Color.xml:62
#, fuzzy
msgid ""
"Constructs a color from RGBA values, typically between 0 and 1.\n"
"[codeblock]\n"
"var color = Color(0.2, 1.0, 0.7, 0.8) # Similar to Color8(51, 255, 178, "
"204)\n"
"[/codeblock]"
msgstr ""
"使用0和1之间的值从RGBA配置文件中构建颜色。\n"
"[codeblock]\n"
"var c = Color(0.2, 1.0, 0.7, 0.8) # Equivalent to RGBA(51, 255, 178, 204)\n"
"[/codeblock]"

#: doc/classes/Color.xml:72
msgid ""
"Returns a new color resulting from blending this color over another. If the "
"color is opaque, the result is also opaque. The second color may have a "
"range of alpha values.\n"
"[codeblock]\n"
"var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50%\n"
"var fg = Color(1.0, 0.0, 0.0, 0.5) # Red with alpha of 50%\n"
"var blended_color = bg.blend(fg) # Brown with alpha of 75%\n"
"[/codeblock]"
msgstr ""
"返回将此颜色混合到另一个颜色上的新颜色。如果颜色是不透明的,结果也是不透明"
"的。第二种颜色可以有一定范围的alpha值。\n"
"[codeblock]\n"
"var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50%\n"
"var fg = Color(1.0, 0.0, 0.0, 0.5) # Red with alpha of 50%\n"
"var blended_color = bg.blend(fg) # Brown with alpha of 75%\n"
"[/codeblock]"

#: doc/classes/Color.xml:83
msgid ""
"Returns the most contrasting color.\n"
"[codeblock]\n"
"var c = Color(0.3, 0.4, 0.9)\n"
"var contrasted_color = c.contrasted() # Equivalent to RGBA(204, 229, 102, "
"255)\n"
"[/codeblock]"
msgstr ""
"返回对比度最高的颜色。\n"
"[codeblock]\n"
"var c = Color(0.3, 0.4, 0.9)\n"
"var contrasted_color = c.contrasted() # Equivalent to RGBA(204, 229, 102, "
"255)\n"
"[/codeblock]"

#: doc/classes/Color.xml:94
msgid ""
"Returns a new color resulting from making this color darker by the specified "
"percentage (ratio from 0 to 1).\n"
"[codeblock]\n"
"var green = Color(0.0, 1.0, 0.0)\n"
"var darkgreen = green.darkened(0.2) # 20% darker than regular green\n"
"[/codeblock]"
msgstr ""
"返回一个新的颜色,这个颜色按指定的百分比(比例从0到1)变暗。\n"
"[codeblock]\n"
"var green = Color(0.0, 1.0, 0.0)\n"
"var darkgreen = green.darkened(0.2) # 20% darker than regular green\n"
"[/codeblock]"

#: doc/classes/Color.xml:108
msgid ""
"Constructs a color from an HSV profile. [code]h[/code], [code]s[/code], and "
"[code]v[/code] are values between 0 and 1.\n"
"[codeblock]\n"
"var c = Color.from_hsv(0.58, 0.5, 0.79, 0.8) # Equivalent to HSV(210, 50, "
"79, 0.8) or Color8(100, 151, 201, 0.8)\n"
"[/codeblock]"
msgstr ""
"从 HSV 配置文件中构建一个颜色。[code]h[/code]、[code]s[/code]和[code]v[/code]"
"是0和1之间的值。\n"
"[codeblock]\n"
"var c = Color.from_hsv(0.58, 0.5, 0.79, 0.8) # Equivalent to HSV(210, 50, "
"79, 0.8) or Color8(100, 151, 201, 0.8)\n"
"[/codeblock]"

#: doc/classes/Color.xml:117
#, fuzzy
msgid ""
"Returns the color's grayscale representation.\n"
"The gray value is calculated as [code](r + g + b) / 3[/code].\n"
"[codeblock]\n"
"var c = Color(0.2, 0.45, 0.82)\n"
"var gray = c.gray() # A value of 0.466667\n"
"[/codeblock]"
msgstr ""
"返回反色[code](1-r,1-g,1-b,a)[/code]。\n"
"[codeblock]\n"
"var c = Color(0.3, 0.4, 0.9)\n"
"var inverted_color = c.inverted() # A color of an RGBA(178, 153, 26, 255)\n"
"[/codeblock]"

#: doc/classes/Color.xml:128
#, fuzzy
msgid ""
"Returns the inverted color [code](1 - r, 1 - g, 1 - b, a)[/code].\n"
"[codeblock]\n"
"var color = Color(0.3, 0.4, 0.9)\n"
"var inverted_color = color.inverted() # Equivalent to Color(0.7, 0.6, 0.1)\n"
"[/codeblock]"
msgstr ""
"返回反色[code](1-r,1-g,1-b,a)[/code]。\n"
"[codeblock]\n"
"var c = Color(0.3, 0.4, 0.9)\n"
"var inverted_color = c.inverted() # A color of an RGBA(178, 153, 26, 255)\n"
"[/codeblock]"

#: doc/classes/Color.xml:139
msgid ""
"Returns [code]true[/code] if this color and [code]color[/code] are "
"approximately equal, by running [method @GDScript.is_equal_approx] on each "
"component."
msgstr ""
"通过在每个组件上运行[方法@GDScript.is_equal_approx],如果这个颜色和"
"[code]color[/code]近似相等,返回[code]true[/code]。"

#: doc/classes/Color.xml:146
msgid ""
"Returns a new color resulting from making this color lighter by the "
"specified percentage (ratio from 0 to 1).\n"
"[codeblock]\n"
"var green = Color(0.0, 1.0, 0.0)\n"
"var lightgreen = green.lightened(0.2) # 20% lighter than regular green\n"
"[/codeblock]"
msgstr ""
"返回将此颜色按指定百分比(比例从0到1)变浅后产生的新颜色。\n"
"[codeblock]\n"
"var green = Color(0.0, 1.0, 0.0)\n"
"var lightgreen = green.lightened(0.2) # 20% lighter than regular green\n"
"[/codeblock]"

#: doc/classes/Color.xml:158
#, fuzzy
msgid ""
"Returns the linear interpolation with another color. The interpolation "
"factor [code]weight[/code] is between 0 and 1.\n"
"[codeblock]\n"
"var c1 = Color(1.0, 0.0, 0.0)\n"
"var c2 = Color(0.0, 1.0, 0.0)\n"
"var li_c = c1.linear_interpolate(c2, 0.5) # Equivalent to Color(0.5, 0.5, "
"0.0)\n"
"[/codeblock]"
msgstr ""
"返回另一种颜色的线性插值。插值因子[code]t[/code]在0和1之间。\n"
"[codeblock]\n"
"var c1 = Color(1.0, 0.0, 0.0)\n"
"var c2 = Color(0.0, 1.0, 0.0)\n"
"var li_c = c1.lerp(c2, 0.5) # A color of an RGBA(128, 128, 0, 255)\n"
"[/codeblock]"

#: doc/classes/Color.xml:169
#, fuzzy
msgid ""
"Returns the color converted to a 32-bit integer in ABGR format (each byte "
"represents a color channel). ABGR is the reversed version of the default "
"format.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
"print(color.to_abgr32()) # Prints 4281565439\n"
"[/codeblock]"
msgstr ""
"以 ABGR 格式返回颜色的 32 位整数(每个字节代表 ABGR 配置文件的一个组成部"
"分)。ABGR是默认格式的反转版本。\n"
"[codeblock]\n"
"var c = Color(1, 0.5, 0.2)\n"
"print(c.to_abgr32()) # Prints 4281565439\n"
"[/codeblock]"

#: doc/classes/Color.xml:179
#, fuzzy
msgid ""
"Returns the color converted to a 64-bit integer in ABGR format (each word "
"represents a color channel). ABGR is the reversed version of the default "
"format.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
"print(color.to_abgr64()) # Prints -225178692812801\n"
"[/codeblock]"
msgstr ""
"以 ABGR 格式返回颜色的 64 位整数(每个字代表 ABGR 配置文件的一个组件)。ABGR"
"是默认格式的反转版本。\n"
"[codeblock]\n"
"var c = Color(1, 0.5, 0.2)\n"
"print(c.to_abgr64()) # Prints -225178692812801\n"
"[/codeblock]"

#: doc/classes/Color.xml:189
#, fuzzy
msgid ""
"Returns the color converted to a 32-bit integer in ARGB format (each byte "
"represents a color channel). ARGB is more compatible with DirectX.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
"print(color.to_argb32()) # Prints 4294934323\n"
"[/codeblock]"
msgstr ""
"以ARGB格式返回颜色的32位整数(每个字节代表ARGB配置文件的一个组成部分)。ARGB"
"与DirectX更兼容。\n"
"[codeblock]\n"
"var c = Color(1, 0.5, 0.2)\n"
"print(c.to_argb32()) # Prints 4294934323\n"
"[/codeblock]"

#: doc/classes/Color.xml:199
#, fuzzy
msgid ""
"Returns the color converted to a 64-bit integer in ARGB format (each word "
"represents a color channel). ARGB is more compatible with DirectX.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
"print(color.to_argb64()) # Prints -2147470541\n"
"[/codeblock]"
msgstr ""
"以ARGB格式返回颜色的64位整数(每个字代表ARGB配置文件的一个组成部分)。ARGB与"
"DirectX更兼容。\n"
"[codeblock]\n"
"var c = Color(1, 0.5, 0.2)\n"
"print(c.to_argb64()) # Prints -2147470541\n"
"[/codeblock]"

#: doc/classes/Color.xml:210
msgid ""
"Returns the color's HTML hexadecimal color string in ARGB format (ex: "
"[code]ff34f822[/code]).\n"
"Setting [code]with_alpha[/code] to [code]false[/code] excludes alpha from "
"the hexadecimal string.\n"
"[codeblock]\n"
"var c = Color(1, 1, 1, 0.5)\n"
"var s1 = c.to_html() # Returns \"7fffffff\"\n"
"var s2 = c.to_html(false) # Returns \"ffffff\"\n"
"[/codeblock]"
msgstr ""
"返回ARGB格式的HTML十六进制颜色字符串(例如:[code]ff34f822[/code])。\n"
"将[code]with_alpha[/code]设置为[code]false[/code]将十六进制字符串中的alpha排"
"除在外。\n"
"[codeblock]\n"
"var c = Color(1, 1, 1, 0.5)\n"
"var s1 = c.to_html() # Returns \"7fffffff\"\n"
"var s2 = c.to_html(false) # Returns \"ffffff\"\n"
"[/codeblock]"

#: doc/classes/Color.xml:222
#, fuzzy
msgid ""
"Returns the color converted to a 32-bit integer in RGBA format (each byte "
"represents a color channel). RGBA is Godot's default format.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
"print(color.to_rgba32()) # Prints 4286526463\n"
"[/codeblock]"
msgstr ""
"以RGBA格式返回颜色的32位整数(每个字节代表RGBA配置文件的一个组成部分)。RGBA"
"是Godot的默认格式。\n"
"[codeblock]\n"
"var c = Color(1, 0.5, 0.2)\n"
"print(c.to_rgba32()) # Prints 4286526463\n"
"[/codeblock]"

#: doc/classes/Color.xml:232
#, fuzzy
msgid ""
"Returns the color converted to a 64-bit integer in RGBA format (each word "
"represents a color channel). RGBA is Godot's default format.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
"print(color.to_rgba64()) # Prints -140736629309441\n"
"[/codeblock]"
msgstr ""
"以RGBA格式返回颜色的64位整数(每个字代表RGBA配置文件的一个组成部分)。RGBA是"
"Godot的默认格式。\n"
"[codeblock]\n"
"var c = Color(1, 0.5, 0.2)\n"
"print(c.to_rgba64()) # Prints -140736629309441\n"
"[/codeblock]"

#: doc/classes/Color.xml:242
msgid ""
"The color's alpha (transparency) component, typically on the range of 0 to 1."
msgstr "颜色的alpha(透明度)分量,通常在0到1的范围内。"

#: doc/classes/Color.xml:245
msgid "Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1."
msgstr "[member a]的包装程序,使用的范围是0到255,而不是0到1。"

#: doc/classes/Color.xml:248
msgid "The color's blue component, typically on the range of 0 to 1."
msgstr "颜色的蓝色分量,一般在0到1的范围内。"

#: doc/classes/Color.xml:251
msgid "Wrapper for [member b] that uses the range 0 to 255 instead of 0 to 1."
msgstr "[member b]的封装器,使用0到255的范围,而不是0到1。"

#: doc/classes/Color.xml:254
msgid "The color's green component, typically on the range of 0 to 1."
msgstr "颜色的绿色分量,一般在0到1的范围内。"

#: doc/classes/Color.xml:257
msgid "Wrapper for [member g] that uses the range 0 to 255 instead of 0 to 1."
msgstr "[member g]的封装器,使用范围0到255而不是0到1。"

#: doc/classes/Color.xml:260
msgid "The HSV hue of this color, on the range 0 to 1."
msgstr "这个颜色的HSV色相,范围是0到1。"

#: doc/classes/Color.xml:263
msgid "The color's red component, typically on the range of 0 to 1."
msgstr "颜色的红色分量,通常在0到1的范围内。"

#: doc/classes/Color.xml:266
msgid "Wrapper for [member r] that uses the range 0 to 255 instead of 0 to 1."
msgstr "[member r]的封装器,使用0到255的范围而不是0到1。"

#: doc/classes/Color.xml:269
msgid "The HSV saturation of this color, on the range 0 to 1."
msgstr "该颜色的HSV饱和度,范围为0到1。"

#: doc/classes/Color.xml:272
msgid "The HSV value (brightness) of this color, on the range 0 to 1."
msgstr "该颜色的HSV值(亮度),范围为0至1。"

#: doc/classes/Color.xml:277
msgid "Alice blue color."
msgstr "爱丽丝蓝。"

#: doc/classes/Color.xml:280
msgid "Antique white color."
msgstr "古色古香的白色。"

#: doc/classes/Color.xml:283
msgid "Aqua color."
msgstr "水色."

#: doc/classes/Color.xml:286
msgid "Aquamarine color."
msgstr "海蓝色."

#: doc/classes/Color.xml:289
msgid "Azure color."
msgstr "天蓝色."

#: doc/classes/Color.xml:292
msgid "Beige color."
msgstr "米黄色."

#: doc/classes/Color.xml:295
msgid "Bisque color."
msgstr "橘黄色."

#: doc/classes/Color.xml:298
msgid "Black color."
msgstr "黑色."

#: doc/classes/Color.xml:301
msgid "Blanche almond color."
msgstr "布兰奇杏仁色。"

#: doc/classes/Color.xml:304
msgid "Blue color."
msgstr "蓝色."

#: doc/classes/Color.xml:307
msgid "Blue violet color."
msgstr "蓝紫色的颜色。"

#: doc/classes/Color.xml:310
msgid "Brown color."
msgstr "棕色."

#: doc/classes/Color.xml:313
msgid "Burly wood color."
msgstr "癭木色。"

#: doc/classes/Color.xml:316
msgid "Cadet blue color."
msgstr "军校学生的蓝色。"

#: doc/classes/Color.xml:319
msgid "Chartreuse color."
msgstr "黄褐色."

#: doc/classes/Color.xml:322
msgid "Chocolate color."
msgstr "巧克力色."

#: doc/classes/Color.xml:325
msgid "Coral color."
msgstr "珊瑚色."

#: doc/classes/Color.xml:328
msgid "Cornflower color."
msgstr "矢车菊花色。"

#: doc/classes/Color.xml:331
msgid "Corn silk color."
msgstr "玉米丝色。"

#: doc/classes/Color.xml:334
msgid "Crimson color."
msgstr "绯红的颜色。"

#: doc/classes/Color.xml:337
msgid "Cyan color."
msgstr "青色。"

#: doc/classes/Color.xml:340
msgid "Dark blue color."
msgstr "深蓝色。"

#: doc/classes/Color.xml:343
msgid "Dark cyan color."
msgstr "深青色。"

#: doc/classes/Color.xml:346
msgid "Dark goldenrod color."
msgstr "深色菊科植物的颜色。"

#: doc/classes/Color.xml:349
msgid "Dark gray color."
msgstr "深灰色。"

#: doc/classes/Color.xml:352
msgid "Dark green color."
msgstr "深绿色。"

#: doc/classes/Color.xml:355
msgid "Dark khaki color."
msgstr "深卡其色。"

#: doc/classes/Color.xml:358
msgid "Dark magenta color."
msgstr "深洋红色。"

#: doc/classes/Color.xml:361
msgid "Dark olive green color."
msgstr "深橄榄绿色。"

#: doc/classes/Color.xml:364
msgid "Dark orange color."
msgstr "深橙色。"

#: doc/classes/Color.xml:367
msgid "Dark orchid color."
msgstr "深色的兰花色。"

#: doc/classes/Color.xml:370
msgid "Dark red color."
msgstr "深红色。"

#: doc/classes/Color.xml:373
msgid "Dark salmon color."
msgstr "深鲑鱼色。"

#: doc/classes/Color.xml:376
msgid "Dark sea green color."
msgstr "深海绿色。"

#: doc/classes/Color.xml:379
msgid "Dark slate blue color."
msgstr "深板蓝的颜色。"

#: doc/classes/Color.xml:382
msgid "Dark slate gray color."
msgstr "暗石板灰色。"

#: doc/classes/Color.xml:385
msgid "Dark turquoise color."
msgstr "深绿松石色。"

#: doc/classes/Color.xml:388
msgid "Dark violet color."
msgstr "深紫罗兰色。"

#: doc/classes/Color.xml:391
msgid "Deep pink color."
msgstr "深粉色。"

#: doc/classes/Color.xml:394
msgid "Deep sky blue color."
msgstr "深邃的天蓝色。"

#: doc/classes/Color.xml:397
msgid "Dim gray color."
msgstr "暗灰色。"

#: doc/classes/Color.xml:400
msgid "Dodger blue color."
msgstr "道奇蓝色。"

#: doc/classes/Color.xml:403
msgid "Firebrick color."
msgstr "火砖的颜色。"

#: doc/classes/Color.xml:406
msgid "Floral white color."
msgstr "花白色。"

#: doc/classes/Color.xml:409
msgid "Forest green color."
msgstr "森林绿色。"

#: doc/classes/Color.xml:412
msgid "Fuchsia color."
msgstr "紫红色的颜色。"

#: doc/classes/Color.xml:415
msgid "Gainsboro color."
msgstr "庚斯伯勒颜色。"

#: doc/classes/Color.xml:418
msgid "Ghost white color."
msgstr "幽灵白颜色。"

#: doc/classes/Color.xml:421
msgid "Gold color."
msgstr "金色。"

#: doc/classes/Color.xml:424
msgid "Goldenrod color."
msgstr "金黄的颜色。"

#: doc/classes/Color.xml:427
msgid "Gray color."
msgstr "灰色。"

#: doc/classes/Color.xml:430
msgid "Green color."
msgstr "绿色。"

#: doc/classes/Color.xml:433
msgid "Green yellow color."
msgstr "绿黄色。"

#: doc/classes/Color.xml:436
msgid "Honeydew color."
msgstr "蜜露色。"

#: doc/classes/Color.xml:439
msgid "Hot pink color."
msgstr "炙热的粉红色。"

#: doc/classes/Color.xml:442
msgid "Indian red color."
msgstr "印度红色。"

#: doc/classes/Color.xml:445
msgid "Indigo color."
msgstr "靛青色。"

#: doc/classes/Color.xml:448
msgid "Ivory color."
msgstr "象牙色。"

#: doc/classes/Color.xml:451
msgid "Khaki color."
msgstr "卡其色。"

#: doc/classes/Color.xml:454
msgid "Lavender color."
msgstr "薰衣草色。"

#: doc/classes/Color.xml:457
msgid "Lavender blush color."
msgstr "薰衣草腮红的颜色。"

#: doc/classes/Color.xml:460
msgid "Lawn green color."
msgstr "草坪绿色。"

#: doc/classes/Color.xml:463
msgid "Lemon chiffon color."
msgstr "柠檬雪纺色。"

#: doc/classes/Color.xml:466
msgid "Light blue color."
msgstr "浅蓝色。"

#: doc/classes/Color.xml:469
msgid "Light coral color."
msgstr "浅珊瑚色。"

#: doc/classes/Color.xml:472
msgid "Light cyan color."
msgstr "淡青色。"

#: doc/classes/Color.xml:475
msgid "Light goldenrod color."
msgstr "淡淡的金黄色。"

#: doc/classes/Color.xml:478
msgid "Light gray color."
msgstr "浅灰色。"

#: doc/classes/Color.xml:481
msgid "Light green color."
msgstr "浅绿色。"

#: doc/classes/Color.xml:484
msgid "Light pink color."
msgstr "浅粉色。"

#: doc/classes/Color.xml:487
msgid "Light salmon color."
msgstr "浅鲑鱼色。"

#: doc/classes/Color.xml:490
msgid "Light sea green color."
msgstr "浅海绿色。"

#: doc/classes/Color.xml:493
msgid "Light sky blue color."
msgstr "浅天蓝色。"

#: doc/classes/Color.xml:496
msgid "Light slate gray color."
msgstr "浅板岩灰色。"

#: doc/classes/Color.xml:499
msgid "Light steel blue color."
msgstr "浅钢蓝色。"

#: doc/classes/Color.xml:502
msgid "Light yellow color."
msgstr "浅黄色。"

#: doc/classes/Color.xml:505
msgid "Lime color."
msgstr "青柠色。"

#: doc/classes/Color.xml:508
msgid "Lime green color."
msgstr "石灰绿色。"

#: doc/classes/Color.xml:511
msgid "Linen color."
msgstr "亚麻色。"

#: doc/classes/Color.xml:514
msgid "Magenta color."
msgstr "洋红色。"

#: doc/classes/Color.xml:517
msgid "Maroon color."
msgstr "栗色。"

#: doc/classes/Color.xml:520
msgid "Medium aquamarine color."
msgstr "中等海蓝宝石色。"

#: doc/classes/Color.xml:523
msgid "Medium blue color."
msgstr "中蓝色。"

#: doc/classes/Color.xml:526
msgid "Medium orchid color."
msgstr "中等兰色。"

#: doc/classes/Color.xml:529
msgid "Medium purple color."
msgstr "中等紫色。"

#: doc/classes/Color.xml:532
msgid "Medium sea green color."
msgstr "中海绿色。"

#: doc/classes/Color.xml:535
msgid "Medium slate blue color."
msgstr "中等板岩蓝色。"

#: doc/classes/Color.xml:538
msgid "Medium spring green color."
msgstr "中等春天绿色。"

#: doc/classes/Color.xml:541
msgid "Medium turquoise color."
msgstr "中等绿松石色。"

#: doc/classes/Color.xml:544
msgid "Medium violet red color."
msgstr "中等紫红色。"

#: doc/classes/Color.xml:547
msgid "Midnight blue color."
msgstr "午夜蓝色。"

#: doc/classes/Color.xml:550
msgid "Mint cream color."
msgstr "薄荷奶油色。"

#: doc/classes/Color.xml:553
msgid "Misty rose color."
msgstr "朦胧的玫瑰色。"

#: doc/classes/Color.xml:556
msgid "Moccasin color."
msgstr "鹿皮鞋颜色。"

#: doc/classes/Color.xml:559
msgid "Navajo white color."
msgstr "那瓦伙族人白。"

#: doc/classes/Color.xml:562
msgid "Navy blue color."
msgstr "藏青色。"

#: doc/classes/Color.xml:565
msgid "Old lace color."
msgstr "旧蕾丝颜色。"

#: doc/classes/Color.xml:568
msgid "Olive color."
msgstr "橄榄色。"

#: doc/classes/Color.xml:571
msgid "Olive drab color."
msgstr "暗淡橄榄色。"

#: doc/classes/Color.xml:574
msgid "Orange color."
msgstr "橙色。"

#: doc/classes/Color.xml:577
msgid "Orange red color."
msgstr "橘红色。"

#: doc/classes/Color.xml:580
msgid "Orchid color."
msgstr "兰花色。"

#: doc/classes/Color.xml:583
msgid "Pale goldenrod color."
msgstr "淡金色。"

#: doc/classes/Color.xml:586
msgid "Pale green color."
msgstr "淡绿色。"

#: doc/classes/Color.xml:589
msgid "Pale turquoise color."
msgstr "淡绿松石色。"

#: doc/classes/Color.xml:592
msgid "Pale violet red color."
msgstr "淡紫红色。"

#: doc/classes/Color.xml:595
msgid "Papaya whip color."
msgstr "木瓜鞭色。"

#: doc/classes/Color.xml:598
msgid "Peach puff color."
msgstr "桃花粉。"

#: doc/classes/Color.xml:601
msgid "Peru color."
msgstr "秘鲁色。"

#: doc/classes/Color.xml:604
msgid "Pink color."
msgstr "粉红色。"

#: doc/classes/Color.xml:607
msgid "Plum color."
msgstr "梅花色。"

#: doc/classes/Color.xml:610
msgid "Powder blue color."
msgstr "浅蓝色。"

#: doc/classes/Color.xml:613
msgid "Purple color."
msgstr "紫色。"

#: doc/classes/Color.xml:616
msgid "Rebecca purple color."
msgstr "丽贝卡紫色。"

#: doc/classes/Color.xml:619
msgid "Red color."
msgstr "红色。"

#: doc/classes/Color.xml:622
msgid "Rosy brown color."
msgstr "玫瑰棕。"

#: doc/classes/Color.xml:625
msgid "Royal blue color."
msgstr "宝蓝色。"

#: doc/classes/Color.xml:628
msgid "Saddle brown color."
msgstr "鞍棕色。"

#: doc/classes/Color.xml:631
msgid "Salmon color."
msgstr "鲑鱼色。"

#: doc/classes/Color.xml:634
msgid "Sandy brown color."
msgstr "沙褐色。"

#: doc/classes/Color.xml:637
msgid "Sea green color."
msgstr "海绿色。"

#: doc/classes/Color.xml:640
msgid "Seashell color."
msgstr "贝壳色。"

#: doc/classes/Color.xml:643
msgid "Sienna color."
msgstr "西恩娜色。"

#: doc/classes/Color.xml:646
msgid "Silver color."
msgstr "银色。"

#: doc/classes/Color.xml:649
msgid "Sky blue color."
msgstr "天蓝色。"

#: doc/classes/Color.xml:652
msgid "Slate blue color."
msgstr "石板蓝色。"

#: doc/classes/Color.xml:655
msgid "Slate gray color."
msgstr "石板灰。"

#: doc/classes/Color.xml:658
msgid "Snow color."
msgstr "雪白。"

#: doc/classes/Color.xml:661
msgid "Spring green color."
msgstr "春绿。"

#: doc/classes/Color.xml:664
msgid "Steel blue color."
msgstr "钢蓝色。"

#: doc/classes/Color.xml:667
msgid "Tan color."
msgstr "棕褐色。"

#: doc/classes/Color.xml:670
msgid "Teal color."
msgstr "青色。"

#: doc/classes/Color.xml:673
msgid "Thistle color."
msgstr "蓟色。"

#: doc/classes/Color.xml:676
msgid "Tomato color."
msgstr "番茄色。"

#: doc/classes/Color.xml:679
msgid "Transparent color (white with no alpha)."
msgstr "透明色(白色,无alpha)。"

#: doc/classes/Color.xml:682
msgid "Turquoise color."
msgstr "松石绿。"

#: doc/classes/Color.xml:685
msgid "Violet color."
msgstr "紫罗兰色。"

#: doc/classes/Color.xml:688
msgid "Web gray color."
msgstr "网格灰。"

#: doc/classes/Color.xml:691
msgid "Web green color."
msgstr "网络绿。"

#: doc/classes/Color.xml:694
msgid "Web maroon color."
msgstr "网络栗。"

#: doc/classes/Color.xml:697
msgid "Web purple color."
msgstr "网络紫。"

#: doc/classes/Color.xml:700
msgid "Wheat color."
msgstr "小麦色。"

#: doc/classes/Color.xml:703
msgid "White color."
msgstr "白色。"

#: doc/classes/Color.xml:706
msgid "White smoke color."
msgstr "白烟色。"

#: doc/classes/Color.xml:709
msgid "Yellow color."
msgstr "黄色。"

#: doc/classes/Color.xml:712
msgid "Yellow green color."
msgstr "黄绿色。"

#: doc/classes/ColorPicker.xml:4
msgid "Color picker control."
msgstr "选色器控制。"

#: doc/classes/ColorPicker.xml:7
msgid ""
"Displays a color picker widget. Useful for selecting a color from an RGB/"
"RGBA colorspace.\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 pop-up."
msgstr ""

#: doc/classes/ColorPicker.xml:18
#, fuzzy
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"
"[b]Note:[/b] The presets list is only for [i]this[/i] color picker."
msgstr ""
"将指定的颜色添加到颜色预设列表中。预设的颜色会显示在颜色选择器中,用户可以选"
"择它们。\n"
"[b]注意:[/b]预设列表仅适用于[i]this[/i]颜色选择器。"

#: doc/classes/ColorPicker.xml:26
msgid ""
"Removes the given color from the list of color presets of this color picker."
msgstr "从这个颜色选择器的颜色预设列表中删除给定的颜色。"

#: doc/classes/ColorPicker.xml:32
msgid "Returns the list of colors in the presets of the color picker."
msgstr "返回颜色选择器预设中的颜色列表。"

#: doc/classes/ColorPicker.xml:38 doc/classes/ColorPickerButton.xml:31
msgid "The currently selected color."
msgstr "当前选择的颜色。"

#: doc/classes/ColorPicker.xml:41
msgid ""
"If [code]true[/code], the color will apply only after the user releases the "
"mouse button, otherwise it will apply immediately even in mouse motion event "
"(which can cause performance issues)."
msgstr ""
"如果[code]true[/code],只有在用户松开鼠标按钮后才会应用颜色,否则即使在鼠标移"
"动事件中也会立即应用(会造成性能问题)。"

#: doc/classes/ColorPicker.xml:44
msgid "If [code]true[/code], shows an alpha channel slider (transparency)."
msgstr "如果[code]true[/code],显示alpha通道滑块(透明度)。"

#: doc/classes/ColorPicker.xml:47
msgid ""
"If [code]true[/code], allows editing the color with Hue/Saturation/Value "
"sliders.\n"
"[b]Note:[/b] Cannot be enabled if raw mode is on."
msgstr ""
"如果[code]true[/code],则允许使用“色相/饱和度/值”滑块编辑颜色。\n"
"[b]注意:[/b]如果启用了原始模式,则无法启用。"

#: doc/classes/ColorPicker.xml:51
msgid "If [code]true[/code], the \"add preset\" button is enabled."
msgstr "如果[code]true[/code],则启用 \"添加预置 \"按钮。"

#: doc/classes/ColorPicker.xml:54
msgid "If [code]true[/code], saved color presets are visible."
msgstr "如果[code]true[/code],则保存的颜色预设可见。"

#: doc/classes/ColorPicker.xml:57
msgid ""
"If [code]true[/code], allows the color R, G, B component values to go beyond "
"1.0, which can be used for certain special operations that require it (like "
"tinting without darkening or rendering sprites in HDR).\n"
"[b]Note:[/b] Cannot be enabled if HSV mode is on."
msgstr ""
"如果[code] true [/code],则允许颜色R,G,B分量值超过1.0,该值可用于需要它的某"
"些特殊操作(例如着色而不会使HDR变暗或渲染精灵)。\n"
"[b]注意:[/b]如果启用了HSV模式,则无法启用。"

#: doc/classes/ColorPicker.xml:65
msgid "Emitted when the color is changed."
msgstr "更改颜色时发出。"

#: doc/classes/ColorPicker.xml:71
msgid "Emitted when a preset is added."
msgstr "添加预设时发出。"

#: doc/classes/ColorPicker.xml:77
msgid "Emitted when a preset is removed."
msgstr "删除预设时发出。"

#: doc/classes/ColorPicker.xml:85
msgid "The icon for the \"Add Preset\" button."
msgstr "添加预设 \"按钮的图标。"

#: doc/classes/ColorPicker.xml:88
msgid "Custom texture for the hue selection slider on the right."
msgstr "右侧的色相选择滑块的自定义纹理。"

#: doc/classes/ColorPicker.xml:93
msgid "The width of the hue selection slider."
msgstr "色相选择滑块的宽度。"

#: doc/classes/ColorPicker.xml:98
msgid "The margin around the [ColorPicker]."
msgstr "[ColorPicker]周围的边距。"

#: doc/classes/ColorPicker.xml:101
msgid ""
"The indicator used to signalize that the color value is outside the 0-1 "
"range."
msgstr "该指示器用于指示颜色值在0-1范围之外。"

#: doc/classes/ColorPicker.xml:106
msgid "The icon for the screen color picker button."
msgstr "屏幕颜色选择器按钮的图标。"

#: doc/classes/ColorPicker.xml:109
msgid "The height of the saturation-value selection box."
msgstr "饱和值选择框的高度。"

#: doc/classes/ColorPicker.xml:112
msgid "The width of the saturation-value selection box."
msgstr "饱和度选择框的宽度。"

#: doc/classes/ColorPickerButton.xml:4
msgid "Button that pops out a [ColorPicker]."
msgstr "弹出[ColorPicker]的按钮。"

#: doc/classes/ColorPickerButton.xml:7
msgid ""
"Encapsulates a [ColorPicker] making it accessible by pressing a button. "
"Pressing the button will toggle the [ColorPicker] 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."
"rect_min_size] to a big enough value to give the button enough space."
msgstr ""

#: doc/classes/ColorPickerButton.xml:19
msgid "Returns the [ColorPicker] that this node toggles."
msgstr "返回此节点切换的[ColorPicker]。"

#: doc/classes/ColorPickerButton.xml:25
msgid ""
"Returns the control's [PopupPanel] which allows you to connect to popup "
"signals. This allows you to handle events when the ColorPicker is shown or "
"hidden."
msgstr ""
"返回控件的[PopupPanel],允许您连接到弹出信号。这使您可以在显示或隐藏"
"ColorPicker时处理事件。"

#: doc/classes/ColorPickerButton.xml:34
msgid ""
"If [code]true[/code], the alpha channel in the displayed [ColorPicker] will "
"be visible."
msgstr "如果[code]true[/code],则显示的[ColorPicker]中的alpha通道将可见。"

#: doc/classes/ColorPickerButton.xml:42
msgid "Emitted when the color changes."
msgstr "颜色改变时发出。"

#: doc/classes/ColorPickerButton.xml:47
msgid ""
"Emitted when the [ColorPicker] is created (the button is pressed for the "
"first time)."
msgstr "创建[ColorPicker]时(第一次按下按钮)发出。"

#: doc/classes/ColorPickerButton.xml:52
msgid "Emitted when the [ColorPicker] is closed."
msgstr "当[ColorPicker]关闭时发出。"

#: doc/classes/ColorPickerButton.xml:60
msgid "The background of the color preview rect on the button."
msgstr "颜色预览的背景将在按钮上显示。"

#: doc/classes/ColorPickerButton.xml:63
msgid "[StyleBox] used when the [ColorPickerButton] is disabled."
msgstr "当[ColorPickerButton]被禁用时使用的[StyleBox]。"

#: doc/classes/ColorPickerButton.xml:66
msgid ""
"[StyleBox] used when the [ColorPickerButton] is focused. It is displayed "
"over the current [StyleBox], so using [StyleBoxEmpty] will just disable the "
"focus visual effect."
msgstr ""
"当[ColorPickerButton]获得焦点时使用的[StyleBox]。它显示在当前的[StyleBox]上,"
"所以使用[StyleBoxEmpty]只是禁用焦点视觉效果。"

#: doc/classes/ColorPickerButton.xml:69
msgid "[Font] of the [ColorPickerButton]'s text."
msgstr "[ColorPickerButton]文本的[Font]。"

#: doc/classes/ColorPickerButton.xml:72
msgid "Default text [Color] of the [ColorPickerButton]."
msgstr "[ColorPickerButton]的默认文本[Color]。"

#: doc/classes/ColorPickerButton.xml:75
msgid "Text [Color] used when the [ColorPickerButton] is disabled."
msgstr "禁用[ColorPickerButton]时使用的文本[Color]。"

#: doc/classes/ColorPickerButton.xml:78
msgid "Text [Color] used when the [ColorPickerButton] is being hovered."
msgstr "悬停[ColorPickerButton]时使用的文本[Color]。"

#: doc/classes/ColorPickerButton.xml:81
msgid "Text [Color] used when the [ColorPickerButton] is being pressed."
msgstr "按下[ColorPickerButton]时使用的文本[Color]。"

#: doc/classes/ColorPickerButton.xml:84
msgid "[StyleBox] used when the [ColorPickerButton] is being hovered."
msgstr "悬停[ColorPickerButton]时使用的[StyleBox]。"

#: doc/classes/ColorPickerButton.xml:87
msgid "The horizontal space between [ColorPickerButton]'s icon and text."
msgstr "[ColorPickerButton]的图标和文本之间的水平间距。"

#: doc/classes/ColorPickerButton.xml:90
msgid "Default [StyleBox] for the [ColorPickerButton]."
msgstr "[ColorPickerButton]的默认[StyleBox]。"

#: doc/classes/ColorPickerButton.xml:93
msgid "[StyleBox] used when the [ColorPickerButton] is being pressed."
msgstr "按下[ColorPickerButton]时使用的[StyleBox]。"

#: doc/classes/ColorRect.xml:4
msgid "Colored rectangle."
msgstr "彩色矩形。"

#: doc/classes/ColorRect.xml:7
msgid ""
"Displays a rectangle filled with a solid [member color]. If you need to "
"display the border alone, consider using [ReferenceRect] instead."
msgstr ""

#: doc/classes/ColorRect.xml:16
msgid ""
"The fill color.\n"
"[codeblock]\n"
"$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.\n"
"[/codeblock]"
msgstr ""
"填充颜色。\n"
"[codeblock]\n"
"$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.\n"
"[/codeblock]"

#: doc/classes/ConcavePolygonShape.xml:4
msgid "Concave polygon shape."
msgstr "凹面多边形形状。"

#: doc/classes/ConcavePolygonShape.xml:7
#, fuzzy
msgid ""
"Concave polygon shape resource, which can be set into a [PhysicsBody] or "
"area. This shape is created by feeding a list of triangles.\n"
"[b]Note:[/b] When used for collision, [ConcavePolygonShape] is intended to "
"work with static [PhysicsBody] nodes like [StaticBody] and will not work "
"with [KinematicBody] or [RigidBody] with a mode other than Static."
msgstr ""
"凹面多边形资源,可以将其设置为[PhysicsBody3D]或区域。通过输入一系列三角形来创"
"建此形状。\n"
"注意:[ConcavePolygonShape3D]用于碰撞时,旨在与诸如[StaticBody3D]之类的静态"
"[PhysicsBody3D]节点一起使用,而不适用于除静态以外的其他模式的"
"[KinematicBody3D]或[RigidBody3D]节点。"

#: doc/classes/ConcavePolygonShape.xml:17
msgid "Returns the faces (an array of triangles)."
msgstr "返回面(三角形数组)。"

#: doc/classes/ConcavePolygonShape.xml:24
msgid "Sets the faces (an array of triangles)."
msgstr "设置面(三角形数组)。"

#: doc/classes/ConcavePolygonShape2D.xml:4
msgid "Concave polygon 2D shape resource for physics."
msgstr "凹面多边形2D形状资源用于物理。"

#: doc/classes/ConcavePolygonShape2D.xml:7
msgid ""
"Concave polygon 2D shape resource for physics. It is made out of segments "
"and is optimal for complex polygonal concave collisions. However, it is not "
"advised to use for [RigidBody2D] nodes. A CollisionPolygon2D in convex "
"decomposition mode (solids) or several convex objects are advised for that "
"instead. Otherwise, a concave polygon 2D shape is better for static "
"collisions.\n"
"The main difference between a [ConvexPolygonShape2D] and a "
"[ConcavePolygonShape2D] is that a concave polygon assumes it is concave and "
"uses a more complex method of collision detection, and a convex one forces "
"itself to be convex in order to speed up collision detection."
msgstr ""
"凹面多边形2D形状资源用于物理。它是由线段组成的,是复杂的多边形凹面碰撞的最佳"
"选择。但是,建议不要将其用于[RigidBody2D]节点。建议使用凸分解模式(实体)或多"
"个凸对象的CollisionPolygon2D代替。否则,凹多边形2D形状更适合静态碰撞。\n"
"[ConvexPolygonShape2D]和[ConcavePolygonShape2D]之间的主要区别在于,凹面多边形"
"假定其为凹面,并使用更复杂的碰撞检测方法,而凸面多边形则将自身强制变为凸面,"
"以加快碰撞检测的速度。"

#: doc/classes/ConcavePolygonShape2D.xml:16
msgid ""
"The array of points that make up the [ConcavePolygonShape2D]'s line segments."
msgstr "组成[ConcavePolygonShape2D]线段的点的数组。"

#: doc/classes/ConeTwistJoint.xml:4
#, fuzzy
msgid "A twist joint between two 3D PhysicsBodies."
msgstr "两个3D实体之间的扭曲关节。"

#: doc/classes/ConeTwistJoint.xml:7
#, fuzzy
msgid ""
"The joint can rotate the bodies across an axis defined by the local x-axes "
"of the [Joint].\n"
"The twist axis is initiated as the X axis of the [Joint].\n"
"Once the Bodies swing, the twist axis is calculated as the middle of the x-"
"axes of the Joint in the local space of the two Bodies. See also "
"[Generic6DOFJoint]."
msgstr ""
"关节可以使实体沿由[Joint3D]的局部x轴定义的轴旋转。\n"
"扭曲轴作为[Joint3D]的X轴启动。\n"
"身体摆动后,将扭曲轴计算为在两个身体的局部空间中的Joint3D的x轴的中间。"

#: doc/classes/ConeTwistJoint.xml:30 doc/classes/ConeTwistJoint.xml:62
#: doc/classes/PhysicsServer.xml:1076
msgid ""
"The speed with which the swing or twist will take place.\n"
"The higher, the faster."
msgstr ""
"摆动或扭转的速度。\n"
"越高,速度越快。"

#: doc/classes/ConeTwistJoint.xml:34 doc/classes/ConeTwistJoint.xml:69
#: doc/classes/PhysicsServer.xml:1083
msgid ""
"Defines, how fast the swing- and twist-speed-difference on both sides gets "
"synced."
msgstr "定义两侧的摆动速度和扭转速度差异同步的速度。"

#: doc/classes/ConeTwistJoint.xml:37 doc/classes/ConeTwistJoint.xml:66
msgid ""
"The ease with which the joint starts to twist. If it's too low, it takes "
"more force to start twisting the joint."
msgstr "关节开始扭曲的难易程度。如果太低,则需要更多的力才能开始扭转关节。"

#: doc/classes/ConeTwistJoint.xml:40 doc/classes/ConeTwistJoint.xml:52
#: doc/classes/PhysicsServer.xml:1066
#, fuzzy
msgid ""
"Swing is rotation from side to side, around the axis perpendicular to the "
"twist axis.\n"
"The swing span defines, how much rotation will not get corrected along the "
"swing axis.\n"
"Could be defined as looseness in the [ConeTwistJoint].\n"
"If below 0.05, this behavior is locked."
msgstr ""
"摆动是围绕垂直于扭曲轴的轴从一侧到另一侧旋转。\n"
"摆动跨度定义了沿摆动轴不会校正多少旋转。\n"
"可以在[ConeTwistJoint3D]中定义为松动。\n"
"如果低于0.05,则此行为将被锁定。"

#: doc/classes/ConeTwistJoint.xml:46 doc/classes/ConeTwistJoint.xml:58
#: doc/classes/PhysicsServer.xml:1072
msgid ""
"Twist is the rotation around the twist axis, this value defined how far the "
"joint can twist.\n"
"Twist is locked if below 0.05."
msgstr ""
"扭曲是绕扭曲轴的旋转,此值定义了关节可以扭曲多远。\n"
"如果低于0.05,则扭曲被锁定。"

#: doc/classes/ConeTwistJoint.xml:72 doc/classes/Generic6DOFJoint.xml:384
#: doc/classes/HingeJoint.xml:99 doc/classes/Light.xml:124
#: doc/classes/SliderJoint.xml:165
msgid "Represents the size of the [enum Param] enum."
msgstr "表示[enum Param]枚举的大小。"

#: doc/classes/ConfigFile.xml:4
msgid "Helper class to handle INI-style files."
msgstr "用于处理INI样式文件的Helper类。"

#: doc/classes/ConfigFile.xml:7
#, fuzzy
msgid ""
"This helper class can be used to store [Variant] values on the filesystem "
"using INI-style formatting. The stored values are identified by a section "
"and a key:\n"
"[codeblock]\n"
"[section]\n"
"some_key=42\n"
"string_example=\"Hello World!\"\n"
"a_vector=Vector3( 1, 0, 2 )\n"
"[/codeblock]\n"
"The stored data can be saved to or parsed from a file, though ConfigFile "
"objects can also be used directly without accessing the filesystem.\n"
"The following example shows how to create a simple [ConfigFile] and save it "
"on disk:\n"
"[codeblock]\n"
"# Create new ConfigFile object.\n"
"var config = ConfigFile.new()\n"
"\n"
"# Store some values.\n"
"config.set_value(\"Player1\", \"player_name\", \"Steve\")\n"
"config.set_value(\"Player1\", \"best_score\", 10)\n"
"config.set_value(\"Player2\", \"player_name\", \"V3geta\")\n"
"config.set_value(\"Player2\", \"best_score\", 9001)\n"
"\n"
"# Save it to a file (overwrite if already exists).\n"
"config.save(\"user://scores.cfg\")\n"
"[/codeblock]\n"
"This example shows how the above file could be loaded:\n"
"[codeblock]\n"
"var score_data = {}\n"
"var config = ConfigFile.new()\n"
"\n"
"# Load data from a file.\n"
"var err = config.load(\"user://scores.cfg\")\n"
"\n"
"# If the file didn't load, ignore it.\n"
"if err != OK:\n"
"    return\n"
"\n"
"# Iterate over all sections.\n"
"for player in config.get_sections():\n"
"    # Fetch the data for each section.\n"
"    var player_name = config.get_value(player, \"player_name\")\n"
"    var player_score = config.get_value(player, \"best_score\")\n"
"    score_data[player_name] = player_score\n"
"[/codeblock]\n"
"Any operation that mutates the ConfigFile such as [method set_value], "
"[method clear], or [method erase_section], only changes what is loaded in "
"memory. If you want to write the change to a file, you have to save the "
"changes with [method save], [method save_encrypted], or [method "
"save_encrypted_pass].\n"
"Keep in mind that section and property names can't contain spaces. Anything "
"after a space will be ignored on save and on load.\n"
"ConfigFiles can also contain manually written comment lines starting with a "
"semicolon ([code];[/code]). Those lines will be ignored when parsing the "
"file. Note that comments will be lost when saving the ConfigFile. This can "
"still be useful for dedicated server configuration files, which are "
"typically never overwritten without explicit user action.\n"
"[b]Note:[/b] The file extension given to a ConfigFile does not have any "
"impact on its formatting or behavior. By convention, the [code].cfg[/code] "
"extension is used here, but any other extension such as [code].ini[/code] is "
"also valid. Since neither [code].cfg[/code] nor [code].ini[/code] are "
"standardized, Godot's ConfigFile formatting may differ from files written by "
"other programs."
msgstr ""
"该帮助程序类可用于使用INI样式格式在文件系统上存储[Variant]值。存储的值由一个"
"部分和一个键标识:\n"
"[codeblock]\n"
"[section]\n"
"some_key=42\n"
"string_example=\"Hello World3D!\"\n"
"a_vector=Vector3( 1, 0, 2 )\n"
"[/codeblock]\n"
"The stored data can be saved to or parsed from a file, though ConfigFile "
"objects can also be used directly without accessing the filesystem.\n"
"The following example shows how to parse an INI-style file from the system, "
"read its contents and store new values in it:\n"
"[codeblock]\n"
"var config = ConfigFile.new()\n"
"var err = config.load(\"user://settings.cfg\")\n"
"if err == OK: # If not, something went wrong with the file loading\n"
"    # Look for the display/width pair, and default to 1024 if missing\n"
"    var screen_width = config.get_value(\"display\", \"width\", 1024)\n"
"    # Store a variable if and only if it hasn't been defined yet\n"
"    if not config.has_section_key(\"audio\", \"mute\"):\n"
"        config.set_value(\"audio\", \"mute\", false)\n"
"    # Save the changes by overwriting the previous file\n"
"    config.save(\"user://settings.cfg\")\n"
"[/codeblock]\n"
"请记住,部分和属性名称不能包含空格。在保存和加载时,空格后的所有内容都将被忽"
"略。\n"
"ConfigFiles还可以包含以分号([code]; [/code])开头的手动编写的注释行。解析文"
"件时,这些行将被忽略。请注意,保存ConfigFile时,注释将丢失。这对于专用的服务"
"器配置文件仍然很有用,这些文件通常在没有明确的用户操作的情况下永远不会被覆"
"盖。"

#: doc/classes/ConfigFile.xml:59
#, fuzzy
msgid "Removes the entire contents of the config."
msgstr "返回图块的纹理偏移量。"

#: doc/classes/ConfigFile.xml:66
msgid ""
"Deletes the specified section along with all the key-value pairs inside. "
"Raises an error if the section does not exist."
msgstr "删除指定的部分以及内部的所有键值对。如果该节不存在,则会引发错误。"

#: doc/classes/ConfigFile.xml:74
msgid ""
"Deletes the specified key in a section. Raises an error if either the "
"section or the key do not exist."
msgstr "删除部分中的指定键。如果该部分或键不存在,则会引发错误。"

#: doc/classes/ConfigFile.xml:81
msgid ""
"Returns an array of all defined key identifiers in the specified section. "
"Raises an error and returns an empty array if the section does not exist."
msgstr ""
"返回指定部分中所有已定义键标识符的数组。如果该部分不存在,则会引发错误并返回"
"一个空数组。"

#: doc/classes/ConfigFile.xml:87
msgid "Returns an array of all defined section identifiers."
msgstr "返回所有已定义节标识符的数组。"

#: doc/classes/ConfigFile.xml:96
msgid ""
"Returns the current value for the specified section and key. If either the "
"section or the key do not exist, the method returns the fallback "
"[code]default[/code] value. If [code]default[/code] is not specified or set "
"to [code]null[/code], an error is also raised."
msgstr ""
"返回指定部分和键的当前值。如果节或键不存在,本方法返回后备值[code]default[/"
"code]。如果没有指定[code]default[/code]或者设置为[code]null[/code],也会引发"
"一个错误。"

#: doc/classes/ConfigFile.xml:103
msgid "Returns [code]true[/code] if the specified section exists."
msgstr "如果指定的部分存在,则返回[code] true [/code]。"

#: doc/classes/ConfigFile.xml:111
msgid "Returns [code]true[/code] if the specified section-key pair exists."
msgstr "如果指定的段键对存在,则返回[code] true [/code]。"

#: doc/classes/ConfigFile.xml:118
msgid ""
"Loads the config file specified as a parameter. The file's contents are "
"parsed and loaded in the [ConfigFile] object which the method was called "
"on.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"加载指定为参数的配置文件。解析文件的内容并将其加载到调用该方法的[ConfigFile]"
"对象中。\n"
"返回[enum Error]代码常量之一(成功时返回[code] OK [/code])。"

#: doc/classes/ConfigFile.xml:127
msgid ""
"Loads the encrypted config file specified as a parameter, using the provided "
"[code]key[/code] to decrypt it. The file's contents are parsed and loaded in "
"the [ConfigFile] object which the method was called on.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"加载指定为参数的加密配置文件,使用提供的[code]key[/code]对其解密。解析文件的"
"内容并将其加载到调用该方法的[ConfigFile]对象中。\n"
"返回[enum Error]代码常量之一(成功时返回[code] OK [/code])。"

#: doc/classes/ConfigFile.xml:136
msgid ""
"Loads the encrypted config file specified as a parameter, using the provided "
"[code]password[/code] to decrypt it. The file's contents are parsed and "
"loaded in the [ConfigFile] object which the method was called on.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"加载作为参数的加密配置文件,使用提供的[code]password[/code]解密。该文件的内容"
"被解析并加载到调用该方法的 [ConfigFile] 对象中。\n"
"返回[enum Error]代码常量之一(成功时返回[code]OK[/code])。"

#: doc/classes/ConfigFile.xml:144
#, fuzzy
msgid ""
"Parses the passed string as the contents of a config file. The string is "
"parsed and loaded in the ConfigFile object which the method was called on.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"将传入的字符串解析为配置文件的内容。该字符串被解析并加载到调用该方法的"
"ConfigFile对象中。\n"
"返回[enum Error]代码常量之一(成功时返回[code]OK[/code])。"

#: doc/classes/ConfigFile.xml:152
msgid ""
"Saves the contents of the [ConfigFile] object to the file specified as a "
"parameter. The output file uses an INI-style structure.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"将[ConfigFile]对象的内容保存到指定为参数的文件中。输出文件使用INI样式的结"
"构。\n"
"返回[enum Error]代码常量之一(成功时返回[code] OK [/code])。"

#: doc/classes/ConfigFile.xml:161
msgid ""
"Saves the contents of the [ConfigFile] object to the AES-256 encrypted file "
"specified as a parameter, using the provided [code]key[/code] to encrypt it. "
"The output file uses an INI-style structure.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"使用提供的[code]key[/code]将[ConfigFile]对象的内容保存到作为参数指定的AES-256"
"加密文件中。输出文件使用INI样式的结构。\n"
"返回[enum Error]代码常量之一(成功时返回[code] OK [/code])。"

#: doc/classes/ConfigFile.xml:170
msgid ""
"Saves the contents of the [ConfigFile] object to the AES-256 encrypted file "
"specified as a parameter, using the provided [code]password[/code] to "
"encrypt it. The output file uses an INI-style structure.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"将[ConfigFile]对象的内容保存到作为参数指定的AES-256加密文件中,使用提供的"
"[code]password[/code]进行加密。输出文件使用 INI 风格的结构。\n"
"返回 [enum Error] 代码常量之一 (成功时返回 [code]OK[/code])。"

#: doc/classes/ConfigFile.xml:180
msgid ""
"Assigns a value to the specified key of the specified section. If either the "
"section or the key do not exist, they are created. Passing a [code]null[/"
"code] value deletes the specified key if it exists, and deletes the section "
"if it ends up empty once the key has been removed."
msgstr ""
"为指定章节的指定键赋值。如果节或键不存在,则创建它们。如果指定的键存在,传递"
"一个[code]null[/code]的值就会删除指定的键,如果键被删除后,键最终是空的,就会"
"删除节。"

#: doc/classes/ConfirmationDialog.xml:4
msgid "Dialog for confirmation of actions."
msgstr "确认动作的对话框。"

#: doc/classes/ConfirmationDialog.xml:7
msgid ""
"Dialog for confirmation of actions. This dialog inherits from "
"[AcceptDialog], but has by default an OK and Cancel button (in host OS "
"order).\n"
"To get cancel action, you can use:\n"
"[codeblock]\n"
"get_cancel().connect(\"pressed\", self, \"cancelled\")\n"
"[/codeblock]."
msgstr ""
"用于确认操作的对话框。这个对话框继承自[AcceptDialog],但默认有一个确定和取消"
"按钮(按主机操作系统顺序)。\n"
"要获得取消操作,你可以使用\n"
"[codeblock]\n"
"get_cancel().connect(\"pressed\", self, \"cancelled\")\n"
"[/codeblock]."

#: doc/classes/ConfirmationDialog.xml:19
msgid "Returns the cancel button."
msgstr "返回取消按钮。"

#: doc/classes/Container.xml:4
msgid "Base node for containers."
msgstr "容器的基本节点。"

#: doc/classes/Container.xml:7
msgid ""
"Base node for containers. A [Container] contains other controls and "
"automatically arranges them in a certain way.\n"
"A Control can inherit this to create custom container classes."
msgstr ""
"容器的基础节点。一个[Container]包含其他控件,并自动以某种方式排列它们。\n"
"一个控件可以继承这一点来创建自定义的容器类。"

#: doc/classes/Container.xml:18
msgid ""
"Fit a child control in a given rect. This is mainly a helper for creating "
"custom container classes."
msgstr "在给定的矩形中安装子控件。这主要是用于创建自定义容器类的帮助器。"

#: doc/classes/Container.xml:24
msgid ""
"Queue resort of the contained children. This is called automatically anyway, "
"but can be called upon request."
msgstr "收容孩子排队等候。无论如何,这都是自动调用的,但是可以根据要求调用。"

#: doc/classes/Container.xml:31
msgid "Emitted when sorting the children is needed."
msgstr "需要对孩子进行排序时发出。"

#: doc/classes/Container.xml:37
msgid ""
"Notification for when sorting the children, it must be obeyed immediately."
msgstr "整理孩子的通知,必须立即服从。"

#: doc/classes/Control.xml:4
msgid ""
"All user interface nodes inherit from Control. A control's anchors and "
"margins adapt its position and size relative to its parent."
msgstr ""
"所有用户界面节点都从Control继承。控件的锚点和边距相对于其父级调整其位置和大"
"小。"

#: doc/classes/Control.xml:7
#, fuzzy
msgid ""
"Base class for all UI-related nodes. [Control] features a bounding rectangle "
"that defines its extents, an anchor position relative to its parent control "
"or the current viewport, and margins that represent an offset to the anchor. "
"The margins update automatically when the node, any of its parents, or the "
"screen size change.\n"
"For more information on Godot's UI system, anchors, margins, and containers, "
"see the related tutorials in the manual. To build flexible UIs, you'll need "
"a mix of UI elements that inherit from [Control] and [Container] nodes.\n"
"[b]User Interface nodes and input[/b]\n"
"Godot sends input events to the scene's root node first, by calling [method "
"Node._input]. [method Node._input] forwards the event down the node tree to "
"the nodes under the mouse cursor, or on keyboard focus. To do so, it calls "
"[method MainLoop._input_event]. Call [method accept_event] so no other node "
"receives the event. Once you accept an input, it becomes handled so [method "
"Node._unhandled_input] will not process it.\n"
"Only one [Control] node can be in keyboard focus. Only the node in focus "
"will receive keyboard events. To get the focus, call [method grab_focus]. "
"[Control] nodes lose focus when another node grabs it, or if you hide the "
"node in focus.\n"
"Sets [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] to tell a "
"[Control] node to ignore mouse or touch events. You'll need it if you place "
"an icon on top of a button.\n"
"[Theme] resources change the Control's appearance. If you change the [Theme] "
"on a [Control] node, it affects all of its children. To override some of the "
"theme's parameters, call one of the [code]add_*_override[/code] methods, "
"like [method add_font_override]. You can override the theme with the "
"inspector.\n"
"[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you "
"can't access their values using [method Object.get] and [method Object.set]. "
"Instead, use [method get_color], [method get_constant], [method get_font], "
"[method get_icon], [method get_stylebox], and the [code]add_*_override[/"
"code] methods provided by this class."
msgstr ""
"所有与UI相关的节点的基类。 [Control]具有定义其范围的边界矩形,相对于其父控件"
"或当前视口的锚点位置以及表示锚点偏移的边距。当节点,它的任何父节点或屏幕尺寸"
"更改时,边距会自动更新。\n"
"有关Godot的UI系统,锚点,边距和容器的更多信息,请参见手册中的相关教程。要构建"
"灵活的UI,您需要混合使用从[Control]和[Container]节点继承的UI元素。\n"
"[b]用户界面节点和输入[/b]\n"
"Godot首先通过调用[method Node._input]将输入事件发送到场景的根节点。 [method "
"Node._input]将事件从节点树向下转发到鼠标光标下方或键盘焦点上的节点。为此,它"
"调用[code] MainLoop._input_event [/code]。\n"
"[b] FIXME:[/b] DisplayServer拆分和输入重构后不再有效。\n"
"调用[method accept_event],因此没有其他节点接收该事件。接受输入后,将对其进行"
"处理,因此[method Node._unhandled_input]将不会对其进行处理。\n"
"键盘焦点中只能有一个[Control]节点。仅焦点所在的节点将接收键盘事件。要获得焦"
"点,请调用[methodgrap_focus]。当另一个节点抓住[Control]节点或将其隐藏在焦点中"
"时,该节点将失去焦点。\n"
"将[member mouse_filter]设置为[constant MOUSE_FILTER_IGNORE],以通知[Control]"
"节点忽略鼠标或触摸事件。如果将图标放在按钮顶部,则将需要它。\n"
"[Theme]资源会更改控件的外观。如果更改[Control]节点上的[Theme],它将影响其所有"
"子级。要覆盖某些主题的参数,请调用[code] add_theme _ * _ override [/code]方法"
"之一,例如[method add_theme_font_override]。您可以使用检查器覆盖主题。"

#: doc/classes/Control.xml:17
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/gui/index.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/gui/index.html"

#: doc/classes/Control.xml:19
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/gui/control_node_gallery.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/gui/index.html"

#: doc/classes/Control.xml:20
#, fuzzy
msgid "https://github.com/godotengine/godot-demo-projects/tree/master/gui"
msgstr ""
"https://github.com/godotengine/godot-demo-projects/tree/master/audio/"
"generator"

#: doc/classes/Control.xml:26
msgid ""
"Virtual method to be implemented by the user. Returns whether [method "
"_gui_input] should not be called for children controls outside this "
"control's rectangle. Input will be clipped to the Rect of this [Control]. "
"Similar to [member rect_clip_content], but doesn't affect visibility.\n"
"If not overridden, defaults to [code]false[/code]."
msgstr ""
"用户要实现的虚拟方法。返回是否应为该控件矩形之外的子控件调用[method "
"_gui_input]。输入将被剪切到此[Control]的Rect上。与[member rect_clip_content]"
"相似,但不影响可见性。\n"
"如果未覆盖,则默认为[code]假[/code]。"

#: doc/classes/Control.xml:33
msgid ""
"Virtual method to be implemented by the user. Returns the minimum size for "
"this control. Alternative to [member rect_min_size] for controlling minimum "
"size via code. The actual minimum size will be the max value of these two "
"(in each axis separately).\n"
"If not overridden, defaults to [constant Vector2.ZERO]."
msgstr ""
"用户要实现的虚拟方法。返回此控件的最小大小。 [member rect_min_size]的替代方"
"法,用于通过代码控制最小大小。实际的最小尺寸将是这两个的最大值(分别在每个轴"
"上)。\n"
"如果未覆盖,则默认为[constant Vector2.ZERO]。"

#: doc/classes/Control.xml:41
#, fuzzy
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"
"Example: clicking a control.\n"
"[codeblock]\n"
"func _gui_input(event):\n"
"    if event is InputEventMouseButton:\n"
"        if event.button_index == BUTTON_LEFT and event.pressed:\n"
"            print(\"I've been clicked D:\")\n"
"[/codeblock]\n"
"The event won't trigger if:\n"
"* clicking outside the control (see [method has_point]);\n"
"* control has [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n"
"* control is obstructed by another [Control] on top of it, which doesn't "
"have [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n"
"* control's parent has [member mouse_filter] set to [constant "
"MOUSE_FILTER_STOP] or has accepted the event;\n"
"* it happens outside the parent's rectangle and the parent has either "
"[member rect_clip_content] or [method _clips_input] enabled.\n"
"[b]Note:[/b] Event position is relative to the control origin."
msgstr ""
"用户要实现的虚拟方法。使用此方法来处理和接受UI元素上的输入。参见[方法"
"accept_event]。\n"
"示例:单击一个控件。\n"
"[codeblock]\n"
"func _gui_input(event):\n"
"    if event is InputEventMouseButton:\n"
"        if event.button_index == BUTTON_LEFT and event.pressed:\n"
"            print(\"I've been clicked D:\")\n"
"[/codeblock]\n"
"在以下情况下,该事件不会触发:\n"
"*在控件外部单击(请参阅[method has_point]);\n"
"*控件的[member mouse_filter]设置为[constant MOUSE_FILTER_IGNORE];\n"
"*控件被其顶部的另一个[Control]阻塞,该控件没有将[member mouse_filter]设置为"
"[constant MOUSE_FILTER_IGNORE];\n"
"*控件的父级已将[member mouse_filter]设置为[constant MOUSE_FILTER_STOP]或已接"
"受该事件;\n"
"*它发生在父级矩形的外部,并且父级启用了[member rect_clip_content]或[method "
"_clips_input]。"

#: doc/classes/Control.xml:62
#, fuzzy
msgid ""
"Virtual method to be implemented by the user. Returns a [Control] node that "
"should be used as a tooltip instead of the default one. The [code]for_text[/"
"code] includes the contents of the [member hint_tooltip] property.\n"
"The returned node must be of type [Control] or Control-derived. It can have "
"child nodes of any type. It is freed when the tooltip disappears, so make "
"sure you always provide a new instance (if you want to use a pre-existing "
"node from your scene tree, you can duplicate it and pass the duplicated "
"instance). When [code]null[/code] or a non-Control node is returned, the "
"default tooltip will be used instead.\n"
"The returned node will be added as child to a [PopupPanel], so you should "
"only provide the contents of that panel. That [PopupPanel] can be themed "
"using [method Theme.set_stylebox] for the type [code]\"TooltipPanel\"[/code] "
"(see [member hint_tooltip] for an example).\n"
"[b]Note:[/b] The tooltip is shrunk to minimal size. If you want to ensure "
"it's fully visible, you might want to set its [member rect_min_size] to some "
"non-zero value.\n"
"Example of usage with a custom-constructed node:\n"
"[codeblock]\n"
"func _make_custom_tooltip(for_text):\n"
"    var label = Label.new()\n"
"    label.text = for_text\n"
"    return label\n"
"[/codeblock]\n"
"Example of usage with a custom scene instance:\n"
"[codeblock]\n"
"func _make_custom_tooltip(for_text):\n"
"    var tooltip = preload(\"res://SomeTooltipScene.tscn\").instance()\n"
"    tooltip.get_node(\"Label\").text = for_text\n"
"    return tooltip\n"
"[/codeblock]"
msgstr ""
"用户要实现的虚拟方法。返回一个[Control]节点,该节点应用作工具提示,而不是默认"
"提示。使用[code] for_text [/code]参数来确定工具提示应包含的文本(可能是"
"[member hint_tooltip]的内容)。\n"
"返回的节点必须是[Control]类型或Control-derieved类型。它可以具有任何类型的子节"
"点。当工具提示消失时,它会被释放,因此请确保您始终提供一个新实例,而不是例如"
"场景中的节点。当返回[code] null [/code]或非Control节点时,将使用默认的工具提"
"示。\n"
"[b]注意:[/b]工具提示会缩小到最小尺寸。如果要确保它是完全可见的,则可能需要将"
"其[member rect_min_size]设置为一些非零值。\n"
"自定义构造的节点的用法示例:\n"
"[codeblock]\n"
"func _make_custom_tooltip(for_text):\n"
"    var label = Label.new()\n"
"    label.text = for_text\n"
"    return label\n"
"[/codeblock]\n"
"Example of usage with custom scene instance:\n"
"[codeblock]\n"
"func _make_custom_tooltip(for_text):\n"
"    var tooltip = preload(\"SomeTooltipScene.tscn\").instance()\n"
"    tooltip.get_node(\"Label\").text = for_text\n"
"    return tooltip\n"
"[/codeblock]"

#: doc/classes/Control.xml:85
msgid ""
"Marks an input event as handled. Once you accept an input event, it stops "
"propagating, even to nodes listening to [method Node._unhandled_input] or "
"[method Node._unhandled_key_input]."
msgstr ""
"将输入事件标记为已处理。一旦接受输入事件,它就会停止传播,甚至传播到正在侦听"
"[method Node._unhandled_input]或[method Node._unhandled_key_input]的节点。"

#: doc/classes/Control.xml:93
msgid ""
"Creates a local override for a theme [Color] with the specified [code]name[/"
"code]. Local overrides always take precedence when fetching theme items for "
"the control. An override cannot be removed, but it can be overridden with "
"the corresponding default value.\n"
"See also [method get_color].\n"
"[b]Example of overriding a label's color and resetting it later:[/b]\n"
"[codeblock]\n"
"# Given the child Label node \"MyLabel\", override its font color with a "
"custom value.\n"
"$MyLabel.add_color_override(\"font_color\", Color(1, 0.5, 0))\n"
"# Reset the font color of the child label.\n"
"$MyLabel.add_color_override(\"font_color\", get_color(\"font_color\", \"Label"
"\"))\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Control.xml:109
msgid ""
"Creates a local override for a theme constant with the specified [code]name[/"
"code]. Local overrides always take precedence when fetching theme items for "
"the control. An override cannot be removed, but it can be overridden with "
"the corresponding default value.\n"
"See also [method get_constant]."
msgstr ""

#: doc/classes/Control.xml:118
msgid ""
"Creates a local override for a theme [Font] with the specified [code]name[/"
"code]. Local overrides always take precedence when fetching theme items for "
"the control. An override can be removed by assigning it a [code]null[/code] "
"value.\n"
"See also [method get_font]."
msgstr ""

#: doc/classes/Control.xml:127
msgid ""
"Creates a local override for a theme icon with the specified [code]name[/"
"code]. Local overrides always take precedence when fetching theme items for "
"the control. An override can be removed by assigning it a [code]null[/code] "
"value.\n"
"See also [method get_icon]."
msgstr ""

#: doc/classes/Control.xml:136
msgid ""
"Creates a local override for a theme shader with the specified [code]name[/"
"code]. Local overrides always take precedence when fetching theme items for "
"the control. An override can be removed by assigning it a [code]null[/code] "
"value."
msgstr ""

#: doc/classes/Control.xml:144
msgid ""
"Creates a local override for a theme [StyleBox] with the specified "
"[code]name[/code]. Local overrides always take precedence when fetching "
"theme items for the control. An override can be removed by assigning it a "
"[code]null[/code] value.\n"
"See also [method get_stylebox].\n"
"[b]Example of modifying a property in a StyleBox by duplicating it:[/b]\n"
"[codeblock]\n"
"# The snippet below assumes the child node MyButton has a StyleBoxFlat "
"assigned.\n"
"# Resources are shared across instances, so we need to duplicate it\n"
"# to avoid modifying the appearance of all other buttons.\n"
"var new_stylebox_normal = $MyButton.get_stylebox(\"normal\").duplicate()\n"
"new_stylebox_normal.border_width_top = 3\n"
"new_stylebox_normal.border_color = Color(0, 1, 0.5)\n"
"$MyButton.add_stylebox_override(\"normal\", new_stylebox_normal)\n"
"# Remove the stylebox override.\n"
"$MyButton.add_stylebox_override(\"normal\", null)\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Control.xml:165
msgid ""
"Godot calls this method to test if [code]data[/code] from a control's "
"[method get_drag_data] can be dropped at [code]position[/code]. "
"[code]position[/code] is local to this control.\n"
"This method should only be used to test the data. Process the data in "
"[method drop_data].\n"
"[codeblock]\n"
"func can_drop_data(position, data):\n"
"    # Check position if it is relevant to you\n"
"    # Otherwise, just check data\n"
"    return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n"
"[/codeblock]"
msgstr ""
"Godot调用此方法来测试是否可以将控件的[method get_drag_data]的[code] data [/"
"code]放在[code]position[/code]处。 [code]position[/code]在此控件中是本地"
"的。\n"
"此方法仅应用于测试数据。处理[method drop_data]中的数据。\n"
"[codeblock]\n"
"func can_drop_data(position, data):\n"
"    # Check position if it is relevant to you\n"
"    # Otherwise, just check data\n"
"    return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n"
"[/codeblock]"

#: doc/classes/Control.xml:180
msgid ""
"Godot calls this method to pass you the [code]data[/code] from a control's "
"[method get_drag_data] result. Godot first calls [method can_drop_data] to "
"test if [code]data[/code] is allowed to drop at [code]position[/code] where "
"[code]position[/code] is local to this control.\n"
"[codeblock]\n"
"func can_drop_data(position, data):\n"
"    return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n"
"\n"
"func drop_data(position, data):\n"
"    color = data[\"color\"]\n"
"[/codeblock]"
msgstr ""
"Godot调用此方法以将控件的[method get_drag_data]结果中的[code] data [/code]传"
"递给您。 Godot首先调用[method can_drop_data]来测试是否允许[code] data [/code]"
"在[code] position [/code]处删除,其中[code] position [/code]对于此控件而言是"
"本地的。\n"
"[codeblock]\n"
"func can_drop_data(position, data):\n"
"    return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n"
"\n"
"func drop_data(position, data):\n"
"    color = data[\"color\"]\n"
"[/codeblock]"

#: doc/classes/Control.xml:193
msgid ""
"Finds the next (below in the tree) [Control] that can receive the focus."
msgstr ""

#: doc/classes/Control.xml:199
#, fuzzy
msgid ""
"Finds the previous (above in the tree) [Control] that can receive the focus."
msgstr "返回树中的前一个TreeItem树项,如果没有,则返回一个空对象。"

#: doc/classes/Control.xml:207
msgid ""
"Forces drag and bypasses [method get_drag_data] and [method "
"set_drag_preview] by passing [code]data[/code] and [code]preview[/code]. "
"Drag will start even if the mouse is neither over nor pressed on this "
"control.\n"
"The methods [method can_drop_data] and [method drop_data] must be "
"implemented on controls that want to receive drop data."
msgstr ""
"通过传递[code] data [/code]和[code] preview [/code]强制拖动并绕过[method "
"get_drag_data]和[method set_drag_preview]。即使鼠标既不在该控件上,也未在该控"
"件上按下,都将开始拖动。\n"
"方法[method can_drop_data]和[method drop_data]必须在要接收放置数据的控件上实"
"现。"

#: doc/classes/Control.xml:215
msgid ""
"Returns the anchor identified by [code]margin[/code] constant from [enum "
"Margin] enum. A getter method for [member anchor_bottom], [member "
"anchor_left], [member anchor_right] and [member anchor_top]."
msgstr ""
"从[enum Margin]枚举返回由[code] margin [/code]常量标识的锚。 [member "
"anchor_bottom],[member anchor_left],[member anchor_right]和[member "
"anchor_top]的获取方法。"

#: doc/classes/Control.xml:221
msgid ""
"Returns [member margin_left] and [member margin_top]. See also [member "
"rect_position]."
msgstr ""
"返回[member margin_left]和[member margin_top]。另请参见[member "
"rect_position]。"

#: doc/classes/Control.xml:229
msgid ""
"Returns a [Color] from the first matching [Theme] in the tree if that "
"[Theme] has a color item with the specified [code]name[/code] and "
"[code]theme_type[/code]. If [code]theme_type[/code] is omitted the class "
"name of the current control is used as the type. If the type is a class name "
"its parent classes are also checked, in order of inheritance.\n"
"For the current control its local overrides are considered first (see "
"[method add_color_override]), then its assigned [member theme]. After the "
"current control, each parent control and its assigned [member theme] are "
"considered; controls without a [member theme] assigned are skipped. If no "
"matching [Theme] is found in the tree, a custom project [Theme] (see [member "
"ProjectSettings.gui/theme/custom]) and the default [Theme] are used.\n"
"[codeblock]\n"
"func _ready():\n"
"    # Get the font color defined for the current Control's class, if it "
"exists.\n"
"    modulate = get_color(\"font_color\")\n"
"    # Get the font color defined for the Button class.\n"
"    modulate = get_color(\"font_color\", \"Button\")\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Control.xml:243
msgid ""
"Returns combined minimum size from [member rect_min_size] and [method "
"get_minimum_size]."
msgstr "返回[member rect_min_size]和[method get_minimum_size]的组合最小大小。"

#: doc/classes/Control.xml:251
msgid ""
"Returns a constant from the first matching [Theme] in the tree if that "
"[Theme] has a constant item with the specified [code]name[/code] and "
"[code]theme_type[/code].\n"
"See [method get_color] for details."
msgstr ""

#: doc/classes/Control.xml:259
msgid ""
"Returns the mouse cursor shape the control displays on mouse hover. See "
"[enum CursorShape]."
msgstr "返回控件在鼠标悬停时显示的鼠标指针形状。参见[enum CursorShape]。"

#: doc/classes/Control.xml:266
msgid ""
"Godot calls this method to get data that can be dragged and dropped onto "
"controls that expect drop data. Returns [code]null[/code] if there is no "
"data to drag. Controls that want to receive drop data should implement "
"[method can_drop_data] and [method drop_data]. [code]position[/code] is "
"local to this control. Drag may be forced with [method force_drag].\n"
"A preview that will follow the mouse that should represent the data can be "
"set with [method set_drag_preview]. A good time to set the preview is in "
"this method.\n"
"[codeblock]\n"
"func get_drag_data(position):\n"
"    var mydata = make_data()\n"
"    set_drag_preview(make_preview(mydata))\n"
"    return mydata\n"
"[/codeblock]"
msgstr ""
"Godot调用此方法来获取可以拖放到期望放置数据的控件上的数据。如果没有要拖动的数"
"据,则返回[code] null [/code]。想要接收放置数据的控件应实现[method "
"can_drop_data]和[method drop_data]。 [code]position[/code]在此控件中是本地"
"的。可以使用[method force_drag]强制拖动。\n"
"可以使用[method set_drag_preview]设置跟随鼠标的预览,该预览将代表数据。设置预"
"览的好时机就是这种方法。\n"
"[codeblock]\n"
"func get_drag_data(position):\n"
"    var mydata = make_data()\n"
"    set_drag_preview(make_preview(mydata))\n"
"    return mydata\n"
"[/codeblock]"

#: doc/classes/Control.xml:279
msgid "Returns [member margin_right] and [member margin_bottom]."
msgstr "返回[member margin_right]和[member margin_bottom]。"

#: doc/classes/Control.xml:286
msgid ""
"Returns the focus neighbour identified by [code]margin[/code] constant from "
"[enum Margin] enum. A getter method for [member focus_neighbour_bottom], "
"[member focus_neighbour_left], [member focus_neighbour_right] and [member "
"focus_neighbour_top]."
msgstr ""
"返回由[enum Margin]枚举的[code] margin [/code]常量标识的焦点邻居。 [member "
"focus_neighbour_bottom],[member focus_neighbour_left],[member "
"focus_neighbour_right]和[member focus_neighbour_top]的获取方法。"

#: doc/classes/Control.xml:292
msgid ""
"Returns the control that has the keyboard focus or [code]null[/code] if none."
msgstr "返回有键盘焦点的控件,如果没有,则返回[code]null[/code]。"

#: doc/classes/Control.xml:300
msgid ""
"Returns a [Font] from the first matching [Theme] in the tree if that [Theme] "
"has a font item with the specified [code]name[/code] and [code]theme_type[/"
"code].\n"
"See [method get_color] for details."
msgstr ""

#: doc/classes/Control.xml:307
msgid ""
"Returns the position and size of the control relative to the top-left corner "
"of the screen. See [member rect_position] and [member rect_size]."
msgstr ""
"返回控件相对于屏幕左上角的位置和大小。请参阅[member rect_position]和[member "
"rect_size]。"

#: doc/classes/Control.xml:315
msgid ""
"Returns an icon from the first matching [Theme] in the tree if that [Theme] "
"has an icon item with the specified [code]name[/code] and [code]theme_type[/"
"code].\n"
"See [method get_color] for details."
msgstr ""

#: doc/classes/Control.xml:323
msgid ""
"Returns the anchor identified by [code]margin[/code] constant from [enum "
"Margin] enum. A getter method for [member margin_bottom], [member "
"margin_left], [member margin_right] and [member margin_top]."
msgstr ""
"从[enum Margin]枚举返回由[code] margin [/code]常量标识的锚。 [member "
"margin_bottom],[member margin_left],[member margin_right]和[member "
"margin_top]的获取方法。"

#: doc/classes/Control.xml:329
msgid "Returns the minimum size for this control. See [member rect_min_size]."
msgstr "返回此控件的最小尺寸。参见[member rect_min_size]。"

#: doc/classes/Control.xml:335
msgid "Returns the width/height occupied in the parent control."
msgstr "返回父控件中占用的宽度/高度。"

#: doc/classes/Control.xml:341
msgid "Returns the parent control node."
msgstr "返回父控制节点。"

#: doc/classes/Control.xml:347
msgid ""
"Returns the position and size of the control relative to the top-left corner "
"of the parent Control. See [member rect_position] and [member rect_size]."
msgstr ""
"返回相对于父控件左上角的控件的位置和大小。请参阅[member rect_position]和"
"[member rect_size]。"

#: doc/classes/Control.xml:353
msgid "Returns the rotation (in radians)."
msgstr "返回旋转(以弧度为单位)。"

#: doc/classes/Control.xml:361
msgid ""
"Returns a [StyleBox] from the first matching [Theme] in the tree if that "
"[Theme] has a stylebox item with the specified [code]name[/code] and "
"[code]theme_type[/code].\n"
"See [method get_color] for details."
msgstr ""

#: doc/classes/Control.xml:368
msgid ""
"Returns the default font from the first matching [Theme] in the tree if that "
"[Theme] has a valid [member Theme.default_font] value.\n"
"See [method get_color] for details."
msgstr ""

#: doc/classes/Control.xml:376
msgid ""
"Returns the tooltip, which will appear when the cursor is resting over this "
"control. See [member hint_tooltip]."
msgstr ""
"返回工具提示,当光标停留在该控件上时将显示该工具提示。请参阅[member "
"hint_tooltip]。"

#: doc/classes/Control.xml:382
msgid ""
"Creates an [InputEventMouseButton] that attempts to click the control. If "
"the event is received, the control acquires focus.\n"
"[codeblock]\n"
"func _process(delta):\n"
"    grab_click_focus() #when clicking another Control node, this node will "
"be clicked instead\n"
"[/codeblock]"
msgstr ""
"创建一个[InputEventMouseButton],尝试点击控件。如果接收到该事件,控件就会获得"
"焦点。\n"
"[codeblock]\n"
"func _process(delta):\n"
"    grab_click_focus() #when clicking another Control node, this node will "
"be clicked instead\n"
"[/codeblock]"

#: doc/classes/Control.xml:392
msgid ""
"Steal the focus from another control and become the focused control (see "
"[member focus_mode])."
msgstr "从另一个控件中窃取焦点,并成为焦点控件(请参阅[member focus_mode])。"

#: doc/classes/Control.xml:400
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
"has a color item with the specified [code]name[/code] and [code]theme_type[/"
"code].\n"
"See [method get_color] for details."
msgstr ""
"如果可以实例化指定[code]class[/code]中的对象,则返回[code] true [/code],否则"
"返回[code] false [/code]。"

#: doc/classes/Control.xml:408
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a local override for a theme [Color] "
"with the specified [code]name[/code] in this [Control] node.\n"
"See [method add_color_override]."
msgstr ""
"如果给定[code]name[/code]的[Color]在这个[Control]节点中具有有效的覆盖,则返回"
"[code]true[/code]。"

#: doc/classes/Control.xml:417
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
"has a constant item with the specified [code]name[/code] and "
"[code]theme_type[/code].\n"
"See [method get_color] for details."
msgstr ""
"如果可以实例化指定[code]class[/code]中的对象,则返回[code] true [/code],否则"
"返回[code] false [/code]。"

#: doc/classes/Control.xml:425
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a local override for a theme constant "
"with the specified [code]name[/code] in this [Control] node.\n"
"See [method add_constant_override]."
msgstr ""
"如果由名称 [code]name[/code] 指定的设置存在,则返回 [code]true[/code],否则返"
"回 [code]false[/code]。"

#: doc/classes/Control.xml:432
msgid ""
"Returns [code]true[/code] if this is the current focused control. See "
"[member focus_mode]."
msgstr ""
"如果这是当前的焦点控件,则返回[code] true [/code]。参见[member focus_mode]。"

#: doc/classes/Control.xml:440
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
"has a font item with the specified [code]name[/code] and [code]theme_type[/"
"code].\n"
"See [method get_color] for details."
msgstr ""
"如果可以实例化指定[code]class[/code]中的对象,则返回[code] true [/code],否则"
"返回[code] false [/code]。"

#: doc/classes/Control.xml:448
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a local override for a theme [Font] "
"with the specified [code]name[/code] in this [Control] node.\n"
"See [method add_font_override]."
msgstr ""
"如果由名称 [code]name[/code] 指定的设置存在,则返回 [code]true[/code],否则返"
"回 [code]false[/code]。"

#: doc/classes/Control.xml:457
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
"has an icon item with the specified [code]name[/code] and [code]theme_type[/"
"code].\n"
"See [method get_color] for details."
msgstr ""
"如果可以实例化指定[code]class[/code]中的对象,则返回[code] true [/code],否则"
"返回[code] false [/code]。"

#: doc/classes/Control.xml:465
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a local override for a theme icon with "
"the specified [code]name[/code] in this [Control] node.\n"
"See [method add_icon_override]."
msgstr ""
"如果由名称 [code]name[/code] 指定的设置存在,则返回 [code]true[/code],否则返"
"回 [code]false[/code]。"

#: doc/classes/Control.xml:473
msgid ""
"Virtual method to be implemented by the user. Returns whether the given "
"[code]point[/code] is inside this control.\n"
"If not overridden, default behavior is checking if the point is within "
"control's Rect.\n"
"[b]Note:[/b] If you want to check if a point is inside the control, you can "
"use [code]get_rect().has_point(point)[/code]."
msgstr ""
"用户要实现的虚拟方法。返回给定的[code] point [/code]是否在此控件内。\n"
"如果未覆盖,则默认行为是检查该点是否在控件的Rect范围内。\n"
"[b]注意:[/b]如果要检查控件中是否有点,可以使用[code] get_rect()。"
"has_point(point)[/code]。"

#: doc/classes/Control.xml:482
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a local override for a theme shader "
"with the specified [code]name[/code] in this [Control] node.\n"
"See [method add_shader_override]."
msgstr ""
"如果由名称 [code]name[/code] 指定的设置存在,则返回 [code]true[/code],否则返"
"回 [code]false[/code]。"

#: doc/classes/Control.xml:491
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a matching [Theme] in the tree that "
"has a stylebox item with the specified [code]name[/code] and "
"[code]theme_type[/code].\n"
"See [method get_color] for details."
msgstr ""
"如果可以实例化指定[code]class[/code]中的对象,则返回[code] true [/code],否则"
"返回[code] false [/code]。"

#: doc/classes/Control.xml:499
#, fuzzy
msgid ""
"Returns [code]true[/code] if there is a local override for a theme "
"[StyleBox] with the specified [code]name[/code] in this [Control] node.\n"
"See [method add_stylebox_override]."
msgstr ""
"如果具有给定[code]name[/code]的[StyleBox]在此[Control]节点中具有有效的覆盖,"
"则返回[code] true [/code]。"

#: doc/classes/Control.xml:506
msgid ""
"Invalidates the size cache in this node and in parent nodes up to toplevel. "
"Intended to be used with [method get_minimum_size] when the return value is "
"changed. Setting [member rect_min_size] directly calls this method "
"automatically."
msgstr ""
"使此节点和父节点(直至最高级别)中的大小缓存无效。打算在更改返回值时与"
"[method get_minimum_size]一起使用。设置[member rect_min_size]直接直接自动调用"
"此方法。"

#: doc/classes/Control.xml:512
msgid ""
"Give up the focus. No other control will be able to receive keyboard input."
msgstr "放弃焦点。其他控件将无法接收键盘输入。"

#: doc/classes/Control.xml:522
msgid ""
"Sets the anchor identified by [code]margin[/code] constant from [enum "
"Margin] enum to value [code]anchor[/code]. A setter method for [member "
"anchor_bottom], [member anchor_left], [member anchor_right] and [member "
"anchor_top].\n"
"If [code]keep_margin[/code] is [code]true[/code], margins aren't updated "
"after this operation.\n"
"If [code]push_opposite_anchor[/code] is [code]true[/code] and the opposite "
"anchor overlaps this anchor, the opposite one will have its value "
"overridden. For example, when setting left anchor to 1 and the right anchor "
"has value of 0.5, the right anchor will also get value of 1. If "
"[code]push_opposite_anchor[/code] was [code]false[/code], the left anchor "
"would get value 0.5."
msgstr ""
"将由[enum Margin]枚举的[code] margin [/code]常量标识的锚设置为值[code] "
"anchor [/code]。用于[member anchor_bottom],[member anchor_left],[member "
"anchor_right]和[member anchor_top]的setter方法。\n"
"如果[code] keep_margin [/code]为[code] true [/code],则在执行此操作后不会更新"
"边距。\n"
"如果[code] push_opposite_anchor [/code]为[code] true [/code],并且相对的锚点"
"与该锚点重叠,则相对的锚点将覆盖其值。例如,当将左锚点设置为1且右锚点的值为"
"0.5时,右锚点的值也将为1。如果[code] push_opposite_anchor [/code]为[code] "
"false [/code],则左锚点将得到值0.5。"

#: doc/classes/Control.xml:534
msgid ""
"Works the same as [method set_anchor], but instead of [code]keep_margin[/"
"code] argument and automatic update of margin, it allows to set the margin "
"offset yourself (see [method set_margin])."
msgstr ""
"与[method set_anchor]的工作原理相同,但是它代替[code] keep_margin [/code]参数"
"和边距的自动更新,它允许您自己设置边距偏移量(请参阅[method set_margin])。"

#: doc/classes/Control.xml:543
msgid ""
"Sets both anchor preset and margin preset. See [method set_anchors_preset] "
"and [method set_margins_preset]."
msgstr ""
"设置锚定预设和边距预设。请参见[method set_anchors_preset]和[method "
"set_margins_preset]。"

#: doc/classes/Control.xml:551
#, fuzzy
msgid ""
"Sets the anchors to a [code]preset[/code] from [enum Control.LayoutPreset] "
"enum. This is the code equivalent to using the Layout menu in the 2D "
"editor.\n"
"If [code]keep_margins[/code] is [code]true[/code], control's position will "
"also be updated."
msgstr ""
"将锚设置为 [code] preset [/code] 从 [enum Control.LayoutPreset] 列举。这相当"
"于在 2D 编辑器中使用布局菜单。\n"
"如果 [code]keep_margins[/code] 是[code]true[/code],控制的位置也将更新。"

#: doc/classes/Control.xml:559
msgid ""
"Sets [member margin_left] and [member margin_top] at the same time. "
"Equivalent of changing [member rect_position]."
msgstr ""
"同时设置[member margin_left]和[member margin_top]。等效于更改[member "
"rect_position]。"

#: doc/classes/Control.xml:566
msgid ""
"Forwards the handling of this control's drag and drop to [code]target[/code] "
"control.\n"
"Forwarding can be implemented in the target control similar to the methods "
"[method get_drag_data], [method can_drop_data], and [method drop_data] but "
"with two differences:\n"
"1. The function name must be suffixed with [b]_fw[/b]\n"
"2. The function must take an extra argument that is the control doing the "
"forwarding\n"
"[codeblock]\n"
"# ThisControl.gd\n"
"extends Control\n"
"func _ready():\n"
"    set_drag_forwarding(target_control)\n"
"\n"
"# TargetControl.gd\n"
"extends Control\n"
"func can_drop_data_fw(position, data, from_control):\n"
"    return true\n"
"\n"
"func drop_data_fw(position, data, from_control):\n"
"    my_handle_data(data)\n"
"\n"
"func get_drag_data_fw(position, from_control):\n"
"    set_drag_preview(my_preview)\n"
"    return my_data()\n"
"[/codeblock]"
msgstr ""
"将此控件的拖放操作转发到[code] target [/code]控件。\n"
"可以在目标控件中实现转发,类似于方法[method get_drag_data],[method "
"can_drop_data]和[method drop_data],但有两个区别:\n"
"1.函数名称必须带有[b] _fw [/b]后缀\n"
"2.该函数必须接受一个额外的参数,即进行转发的控件\n"
"[codeblock]\n"
"# ThisControl.gd\n"
"extends Control\n"
"func _ready():\n"
"    set_drag_forwarding(target_control)\n"
"\n"
"# TargetControl.gd\n"
"extends Control\n"
"func can_drop_data_fw(position, data, from_control):\n"
"    return true\n"
"\n"
"func drop_data_fw(position, data, from_control):\n"
"    my_handle_data(data)\n"
"\n"
"func get_drag_data_fw(position, from_control):\n"
"    set_drag_preview(my_preview)\n"
"    return my_data()\n"
"[/codeblock]"

#: doc/classes/Control.xml:594
#, fuzzy
msgid ""
"Shows the given control at the mouse pointer. A good time to call this "
"method is in [method get_drag_data]. The control must not be in the scene "
"tree. You should not free the control, and you should not keep a reference "
"to the control beyond the duration of the drag. It will be deleted "
"automatically after the drag has ended.\n"
"[codeblock]\n"
"export (Color, RGBA) var color = Color(1, 0, 0, 1)\n"
"\n"
"func get_drag_data(position):\n"
"    # Use a control that is not in the tree\n"
"    var cpb = ColorPickerButton.new()\n"
"    cpb.color = color\n"
"    cpb.rect_size = Vector2(50, 50)\n"
"    set_drag_preview(cpb)\n"
"    return color\n"
"[/codeblock]"
msgstr ""
"在鼠标指针处显示给定的控件。调用此方法的好时机在[method get_drag_data]中。该"
"控件一定不能在场景树中。\n"
"[codeblock]\n"
"export (Color, RGBA) var color = Color(1, 0, 0, 1)\n"
"\n"
"func get_drag_data(position):\n"
"    # Use a control that is not in the tree\n"
"    var cpb = ColorPickerButton.new()\n"
"    cpb.color = color\n"
"    cpb.rect_size = Vector2(50, 50)\n"
"    set_drag_preview(cpb)\n"
"    return color\n"
"[/codeblock]"

#: doc/classes/Control.xml:612
msgid "Sets [member margin_right] and [member margin_bottom] at the same time."
msgstr "同时设置[member margin_right]和[member margin_bottom]。"

#: doc/classes/Control.xml:620
msgid ""
"Sets the anchor identified by [code]margin[/code] constant from [enum "
"Margin] enum to [Control] at [code]neighbor[/code] node path. A setter "
"method for [member focus_neighbour_bottom], [member focus_neighbour_left], "
"[member focus_neighbour_right] and [member focus_neighbour_top]."
msgstr ""
"设置由[code] margin [/code]常量标识的锚,从[enum Margin]枚举到[code] "
"neighbor [/code]节点路径处的[Control]。用于[member focus_neighbour_bottom],"
"[member focus_neighbour_left],[member focus_neighbour_right]和[member "
"focus_neighbour_top]的设置方法。"

#: doc/classes/Control.xml:628
msgid ""
"Sets the [member rect_global_position] to given [code]position[/code].\n"
"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
"updated instead of margins."
msgstr ""
"将[member rect_global_position]设置为给定的[code] position [/code]。\n"
"如果[code] keep_margins [/code]为[code] true [/code],则控件的锚点将被更新,"
"而不是边距。"

#: doc/classes/Control.xml:637
msgid ""
"Sets the margin identified by [code]margin[/code] constant from [enum "
"Margin] enum to given [code]offset[/code]. A setter method for [member "
"margin_bottom], [member margin_left], [member margin_right] and [member "
"margin_top]."
msgstr ""
"设置由[enum Margin]枚举到[code]offset[/code]的[code] margin [/code]常量所标识"
"的边距。用于[member margin_bottom],[member margin_left],[member "
"margin_right]和[member margin_top]的设置方法。"

#: doc/classes/Control.xml:646
#, fuzzy
msgid ""
"Sets the margins to a [code]preset[/code] from [enum Control.LayoutPreset] "
"enum. This is the code equivalent to using the Layout menu in the 2D "
"editor.\n"
"Use parameter [code]resize_mode[/code] with constants from [enum Control."
"LayoutPresetMode] to better determine the resulting size of the [Control]. "
"Constant size will be ignored if used with presets that change size, e.g. "
"[code]PRESET_LEFT_WIDE[/code].\n"
"Use parameter [code]margin[/code] to determine the gap between the [Control] "
"and the edges."
msgstr ""
"将[enum Control.LayoutPreset]枚举的边距设置为[code]preset[/code]。这等效于在"
"2D编辑器中使用“布局”菜单的代码。\n"
"将参数[code] resize_mode [/code]与[enum Control.LayoutPresetMode]中的常量一起"
"使用,可以更好地确定[Control]的结果大小。如果将恒定大小与更改大小的预设一起使"
"用,例如[code] PRESET_LEFT_WIDE [/code]。\n"
"使用参数[code] margin [/code]确定[Control]和边缘之间的间隙。"

#: doc/classes/Control.xml:656
msgid ""
"Sets the [member rect_position] to given [code]position[/code].\n"
"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
"updated instead of margins."
msgstr ""
"将[member rect_position]设置为给定的[code] position [/code]。\n"
"如果[code] keep_margins [/code]为[code] true [/code],则控件的锚点将被更新,"
"而不是边距。"

#: doc/classes/Control.xml:664
msgid "Sets the rotation (in radians)."
msgstr "设置旋转度(以弧度为单位)。"

#: doc/classes/Control.xml:672
msgid ""
"Sets the size (see [member rect_size]).\n"
"If [code]keep_margins[/code] is [code]true[/code], control's anchors will be "
"updated instead of margins."
msgstr ""
"设置控件的大小(参见[member rect_size])。\n"
"如果[code]keep_margins[/code]是[code]true[/code],则会更新控件的锚点而不是页"
"边距。"

#: doc/classes/Control.xml:680
msgid ""
"Displays a control as modal. Control must be a subwindow. Modal controls "
"capture the input signals until closed or the area outside them is accessed. "
"When a modal control loses focus, or the ESC key is pressed, they "
"automatically hide. Modal controls are used extensively for popup dialogs "
"and menus.\n"
"If [code]exclusive[/code] is [code]true[/code], other controls will not "
"receive input and clicking outside this control will not close it."
msgstr ""

#: doc/classes/Control.xml:688
msgid ""
"Moves the mouse cursor to [code]to_position[/code], relative to [member "
"rect_position] of this [Control]."
msgstr ""
"将鼠标光标移动到[code]to_position[/code],相对于这个[控件]的[member "
"rect_position]。"

#: doc/classes/Control.xml:694
msgid ""
"Anchors the bottom edge of the node to the origin, the center, or the end of "
"its parent control. It changes how the bottom margin updates when the node "
"moves or changes size. You can use one of the [enum Anchor] constants for "
"convenience."
msgstr ""
"将节点的底部边缘锚定到其父控件的原点,中心或末端。当节点移动或更改大小时,它"
"会更改底部边距的更新方式。为了方便起见,可以使用[enum Anchor]常量之一。"

#: doc/classes/Control.xml:697
msgid ""
"Anchors the left edge of the node to the origin, the center or the end of "
"its parent control. It changes how the left margin updates when the node "
"moves or changes size. You can use one of the [enum Anchor] constants for "
"convenience."
msgstr ""
"将节点的左边缘锚定到其父控件的原点,中心或末端。当节点移动或更改大小时,它会"
"更改左侧边距的更新方式。为了方便起见,可以使用[enum Anchor]常量之一。"

#: doc/classes/Control.xml:700
msgid ""
"Anchors the right edge of the node to the origin, the center or the end of "
"its parent control. It changes how the right margin updates when the node "
"moves or changes size. You can use one of the [enum Anchor] constants for "
"convenience."
msgstr ""
"将节点的右边缘锚定到其父控件的原点,中心或末端。当节点移动或更改大小时,它会"
"更改右边距的更新方式。为了方便起见,可以使用[enum Anchor]常量之一。"

#: doc/classes/Control.xml:703
#, fuzzy
msgid ""
"Anchors the top edge of the node to the origin, the center or the end of its "
"parent control. It changes how the top margin updates when the node moves or "
"changes size. You can use one of the [enum Anchor] constants for convenience."
msgstr ""
"将节点的顶部边缘锚定到其父控件的原点,中心或末端。它更改了节点移动或更改大小"
"时上边距的更新方式。为了方便起见,可以使用[enum Anchor]常量之一。"

#: doc/classes/Control.xml:706
msgid ""
"The focus access mode for the control (None, Click or All). Only one Control "
"can be focused at the same time, and it will receive keyboard signals."
msgstr ""
"控件的焦点访问模式(“无”,“单击”或“全部”)。只能同时集中一个控件,它将接收键"
"盘信号。"

#: doc/classes/Control.xml:709
msgid ""
"Tells Godot which node it should give keyboard focus to if the user presses "
"the down arrow on the keyboard or down on a gamepad by default. You can "
"change the key by editing the [code]ui_down[/code] input action. The node "
"must be a [Control]. If this property is not set, Godot will give focus to "
"the closest [Control] to the bottom of this one."
msgstr ""
"告诉Godot,默认情况下,如果用户按下键盘上的向下箭头或游戏手柄上的向下箭头,则"
"应将焦点对准哪个节点。您可以通过编辑[code] ui_down [/code]输入操作来更改键。"
"该节点必须是[Control]。如果未设置此属性,则Godot会将焦点放在该控件底部最接近"
"的[Control]。"

#: doc/classes/Control.xml:712
msgid ""
"Tells Godot which node it should give keyboard focus to if the user presses "
"the left arrow on the keyboard or left on a gamepad by default. You can "
"change the key by editing the [code]ui_left[/code] input action. The node "
"must be a [Control]. If this property is not set, Godot will give focus to "
"the closest [Control] to the left of this one."
msgstr ""
"告诉Godot,默认情况下,如果用户按下键盘上的向左箭头或游戏手柄上的向左键,应该"
"将焦点对准键盘上的哪个节点。您可以通过编辑[code] ui_left [/code]输入操作来更"
"改键。该节点必须是[Control]。如果未设置此属性,则Godot会将焦点放在该控件左侧"
"最接近的[Control]。"

#: doc/classes/Control.xml:715
#, fuzzy
msgid ""
"Tells Godot which node it should give keyboard focus to if the user presses "
"the right arrow on the keyboard or right on a gamepad by default. You can "
"change the key by editing the [code]ui_right[/code] input action. The node "
"must be a [Control]. If this property is not set, Godot will give focus to "
"the closest [Control] to the bottom of this one."
msgstr ""
"告诉Godot,默认情况下,如果用户按下键盘上的向右箭头或游戏手柄上的向右箭头,则"
"应将焦点对准哪个节点。您可以通过编辑[code] ui_right [/code]输入操作来更改键。"
"该节点必须是[Control]。如果未设置此属性,则Godot会将焦点放在该控件底部最接近"
"的[Control]。"

#: doc/classes/Control.xml:718
msgid ""
"Tells Godot which node it should give keyboard focus to if the user presses "
"the top arrow on the keyboard or top on a gamepad by default. You can change "
"the key by editing the [code]ui_top[/code] input action. The node must be a "
"[Control]. If this property is not set, Godot will give focus to the closest "
"[Control] to the bottom of this one."
msgstr ""
"告诉Godot默认情况下,如果用户按下键盘上的顶部箭头或游戏手柄上的顶部,则应该将"
"焦点对准键盘上的哪个节点。您可以通过编辑[code] ui_top [/code]输入操作来更改"
"键。该节点必须是[Control]。如果未设置此属性,则Godot会将焦点放在该控件底部最"
"接近的[Control]。"

#: doc/classes/Control.xml:721
#, fuzzy
msgid ""
"Tells Godot which node it should give keyboard focus to if the user presses "
"Tab on a keyboard by default. You can change the key by editing the "
"[code]ui_focus_next[/code] input action.\n"
"If this property is not set, Godot will select a \"best guess\" based on "
"surrounding nodes in the scene tree."
msgstr ""
"告诉Godot,如果用户默认情况下按键盘上的[kbd] Tab [/kbd],则应将焦点对准键盘上"
"的哪个节点。您可以通过编辑[code] ui_focus_next [/code]输入操作来更改键。\n"
"如果未设置此属性,则Godot将基于场景树中的周围节点选择“best guess”。"

#: doc/classes/Control.xml:725
#, fuzzy
msgid ""
"Tells Godot which node it should give keyboard focus to if the user presses "
"Shift+Tab on a keyboard by default. You can change the key by editing the "
"[code]ui_focus_prev[/code] input action.\n"
"If this property is not set, Godot will select a \"best guess\" based on "
"surrounding nodes in the scene tree."
msgstr ""
"告诉Godot,如果用户默认情况下按键盘上的[kbd] Shift + Tab [/kbd],则应将焦点对"
"准哪个节点。您可以通过编辑[code] ui_focus_prev [/code]输入操作来更改键。\n"
"如果未设置此属性,则Godot将基于场景树中的周围节点选择“best guess”。"

#: doc/classes/Control.xml:729
msgid ""
"Controls the direction on the horizontal axis in which the control should "
"grow if its horizontal minimum size is changed to be greater than its "
"current size, as the control always has to be at least the minimum size."
msgstr ""
"控制水平轴的方向,如果控件的水平最小尺寸更改为大于其当前尺寸,则控件应沿水平"
"轴增长,因为控件始终必须至少为最小尺寸。"

#: doc/classes/Control.xml:732
msgid ""
"Controls the direction on the vertical axis in which the control should grow "
"if its vertical minimum size is changed to be greater than its current size, "
"as the control always has to be at least the minimum size."
msgstr ""
"控制控件在垂直轴上的方向,如果控件的垂直最小尺寸更改为大于当前尺寸,则控件应"
"沿该方向增大,因为控件始终必须至少为最小尺寸。"

#: doc/classes/Control.xml:735
msgid ""
"Changes the tooltip text. The tooltip appears when the user's mouse cursor "
"stays idle over this control for a few moments, provided that the [member "
"mouse_filter] property is not [constant MOUSE_FILTER_IGNORE]. You can change "
"the time required for the tooltip to appear with [code]gui/timers/"
"tooltip_delay_sec[/code] option in Project Settings.\n"
"The tooltip popup will use either a default implementation, or a custom one "
"that you can provide by overriding [method _make_custom_tooltip]. The "
"default tooltip includes a [PopupPanel] and [Label] whose theme properties "
"can be customized using [Theme] methods with the [code]\"TooltipPanel\"[/"
"code] and [code]\"TooltipLabel\"[/code] respectively. For example:\n"
"[codeblock]\n"
"var style_box = StyleBoxFlat.new()\n"
"style_box.set_bg_color(Color(1, 1, 0))\n"
"style_box.set_border_width_all(2)\n"
"# We assume here that the `theme` property has been assigned a custom Theme "
"beforehand.\n"
"theme.set_stylebox(\"panel\", \"TooltipPanel\", style_box)\n"
"theme.set_color(\"font_color\", \"TooltipLabel\", Color(0, 1, 1))\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Control.xml:747
msgid ""
"Enables whether input should propagate when you close the control as modal.\n"
"If [code]false[/code], stops event handling at the viewport input event "
"handling. The viewport first hides the modal and after marks the input as "
"handled."
msgstr ""

#: doc/classes/Control.xml:751
msgid ""
"Distance between the node's bottom edge and its parent control, based on "
"[member anchor_bottom].\n"
"Margins are often controlled by one or multiple parent [Container] nodes, so "
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
"节点底边与其父控件之间的距离,基于[member anchor_bottom]。\n"
"边距通常由一个或多个父[Container]节点控制,因此,如果您的节点是[Container]的"
"直接子级,则不应手动修改它们。当您移动或调整节点大小时,边距会自动更新。"

#: doc/classes/Control.xml:755
msgid ""
"Distance between the node's left edge and its parent control, based on "
"[member anchor_left].\n"
"Margins are often controlled by one or multiple parent [Container] nodes, so "
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
"节点的左边缘与其父控件之间的距离,基于[member anchor_left]。\n"
"边距通常由一个或多个父[Container]节点控制,因此,如果您的节点是[Container]的"
"直接子级,则不应手动修改它们。当您移动或调整节点大小时,边距会自动更新。"

#: doc/classes/Control.xml:759
msgid ""
"Distance between the node's right edge and its parent control, based on "
"[member anchor_right].\n"
"Margins are often controlled by one or multiple parent [Container] nodes, so "
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
"节点的右边缘与其父控件之间的距离,基于[member anchor_right]。\n"
"边距通常由一个或多个父[Container]节点控制,因此,如果您的节点是[Container]的"
"直接子级,则不应手动修改它们。当您移动或调整节点大小时,边距会自动更新。"

#: doc/classes/Control.xml:763
msgid ""
"Distance between the node's top edge and its parent control, based on "
"[member anchor_top].\n"
"Margins are often controlled by one or multiple parent [Container] nodes, so "
"you should not modify them manually if your node is a direct child of a "
"[Container]. Margins update automatically when you move or resize the node."
msgstr ""
"节点的顶边与其父控件之间的距离,基于[member anchor_top]。\n"
"边距通常由一个或多个父 [Container] 节点控制,所以如果您的节点是 [Container] "
"的直接子节点,您不应该手动修改它们。当您移动或调整节点大小时,边距会自动更"
"新。"

#: doc/classes/Control.xml:767
msgid ""
"The default cursor shape for this control. Useful for Godot plugins and "
"applications or games that use the system's mouse cursors.\n"
"[b]Note:[/b] On Linux, shapes may vary depending on the cursor theme of the "
"system."
msgstr ""
"此控件的默认光标形状。对于Godot插件和使用系统鼠标光标的应用程序或游戏很有"
"用。\n"
"[b]注意:[/b]在Linux上,形状可能会有所不同,具体取决于系统的光标主题。"

#: doc/classes/Control.xml:771
msgid ""
"Controls whether the control will be able to receive mouse button input "
"events through [method _gui_input] and how these events should be handled. "
"Also controls whether the control can receive the [signal mouse_entered], "
"and [signal mouse_exited] signals. See the constants to learn what each does."
msgstr ""
"控制控件是否能够通过[method _gui_input]接收鼠标按钮输入事件,以及如何处理这些"
"事件。还控制控件是否能接收[signal mouse_entered]和[signal mouse_exited]信号。"
"参见常量来了解每个常量的作用。"

#: doc/classes/Control.xml:774
msgid ""
"Enables whether rendering of [CanvasItem] based children should be clipped "
"to this control's rectangle. If [code]true[/code], parts of a child which "
"would be visibly outside of this control's rectangle will not be rendered."
msgstr ""
"启用是否应将基于[CanvasItem]的子控件渲染到该控件的矩形上。如果[code]true[/"
"code],则不会渲染子控件中明显在矩形之外的部分。"

#: doc/classes/Control.xml:777
msgid ""
"The node's global position, relative to the world (usually to the top-left "
"corner of the window)."
msgstr "节点相对于世界的全局位置(通常是窗口的左上角)。"

#: doc/classes/Control.xml:780
msgid ""
"The minimum size of the node's bounding rectangle. If you set it to a value "
"greater than (0, 0), the node's bounding rectangle will always have at least "
"this size, even if its content is smaller. If it's set to (0, 0), the node "
"sizes automatically to fit its content, be it a texture or child nodes."
msgstr ""
"节点的边界矩形的最小尺寸。如果你将它设置为大于(0,0)的值,节点的边界矩形将始"
"终至少有这个大小,即使它的内容更小。如果设置为(0,0),节点的大小会自动适应其"
"内容,无论是纹理还是子节点。"

#: doc/classes/Control.xml:783
msgid ""
"By default, the node's pivot is its top-left corner. When you change its "
"[member rect_scale], it will scale around this pivot. Set this property to "
"[member rect_size] / 2 to center the pivot in the node's rectangle."
msgstr ""
"默认情况下,节点的轴是其左上角。当您更改其[member rect_scale]时,它将围绕此枢"
"轴进行缩放。将此属性设置为[member rect_size] / 2,以将枢轴在节点的矩形中居"
"中。"

#: doc/classes/Control.xml:786
msgid ""
"The node's position, relative to its parent. It corresponds to the "
"rectangle's top-left corner. The property is not affected by [member "
"rect_pivot_offset]."
msgstr ""
"节点相对于其父节点的位置。它对应于矩形的左上角。该属性不受[member "
"rect_pivot_offset]的影响。"

#: doc/classes/Control.xml:789
msgid ""
"The node's rotation around its pivot, in degrees. See [member "
"rect_pivot_offset] to change the pivot's position."
msgstr ""
"节点围绕其枢轴的旋转(以度为单位)。请参阅[member rect_pivot_offset]更改枢轴"
"的位置。"

#: doc/classes/Control.xml:792
#, fuzzy
msgid ""
"The node's scale, relative to its [member rect_size]. Change this property "
"to scale the node around its [member rect_pivot_offset]. The Control's "
"[member hint_tooltip] will also scale according to this value.\n"
"[b]Note:[/b] This property is mainly intended to be used for animation "
"purposes. Text inside the Control will look pixelated or blurry when the "
"Control is scaled. To support multiple resolutions in your project, use an "
"appropriate viewport stretch mode as described in the [url=https://docs."
"godotengine.org/en/3.4/tutorials/viewports/multiple_resolutions."
"html]documentation[/url] instead of scaling Controls individually.\n"
"[b]Note:[/b] If the Control node is a child of a [Container] node, the scale "
"will be reset to [code]Vector2(1, 1)[/code] when the scene is instanced. To "
"set the Control's scale when it's instanced, wait for one frame using "
"[code]yield(get_tree(), \"idle_frame\")[/code] then set its [member "
"rect_scale] property."
msgstr ""
"节点相对于其[member rect_size]的比例。更改此属性以围绕其[member "
"rect_pivot_offset]缩放节点。控件的[member hint_tooltip]也会根据此值进行缩"
"放。\n"
"[b]注意:[/b]此属性主要用于动画目的。缩放控件时,控件内的文本将看起来像素化或"
"模糊。要在您的项目中支持多种分辨率,请使用[url = https://docs.godotengine."
"org/zh_CN/latest/tutorials/viewports/multiple_resolutions."
"html]documentation[/ url]中所述的适当视口拉伸模式分别缩放控件。\n"
"[b]注意:[/b]如果控制节点是[Container]节点的子级,则在场景被实例化时,比例将"
"重置为[code] Vector2(1, 1)[/code]。要设置控件的缩放比例,请使用[code] yield "
"(get_tree(), \"idle_frame\")[/code]等待一帧,然后设置其[member rect_scale]属"
"性。"

#: doc/classes/Control.xml:797
msgid ""
"The size of the node's bounding rectangle, in pixels. [Container] nodes "
"update this property automatically."
msgstr "节点边界矩形的大小,以像素为单位。 [Container]节点会自动更新此属性。"

#: doc/classes/Control.xml:800
msgid ""
"Tells the parent [Container] nodes how they should resize and place the node "
"on the X axis. Use one of the [enum SizeFlags] constants to change the "
"flags. See the constants to learn what each does."
msgstr ""
"告诉父[Container]节点应如何调整尺寸并将其放置在X轴上。使用[enum SizeFlags]常"
"量之一更改标志。查看常量以了解每个常量的作用。"

#: doc/classes/Control.xml:803
msgid ""
"If the node and at least one of its neighbours uses the [constant "
"SIZE_EXPAND] size flag, the parent [Container] will let it take more or less "
"space depending on this property. If this node has a stretch ratio of 2 and "
"its neighbour a ratio of 1, this node will take two thirds of the available "
"space."
msgstr ""
"如果这个节点和它的至少一个相邻节点使用[constant SIZE_EXPAND]大小标志,父节点"
"[Container]将根据这个属性让它占用更多或更少的空间。如果这个节点的拉伸比为2,"
"而它的相邻节点的拉伸比为1,这个节点将占用三分之二的可用空间。"

#: doc/classes/Control.xml:806
msgid ""
"Tells the parent [Container] nodes how they should resize and place the node "
"on the Y axis. Use one of the [enum SizeFlags] constants to change the "
"flags. See the constants to learn what each does."
msgstr ""
"告诉父[Container]节点应如何调整尺寸并将其放置在X轴上。使用[enum SizeFlags]常"
"量之一更改标志。查看常量以了解每个常量的作用。"

#: doc/classes/Control.xml:809
msgid ""
"Changing this property replaces the current [Theme] resource this node and "
"all its [Control] children use."
msgstr "更改此属性将替换该节点及其所有[Control]子级使用的当前[Theme]资源。"

#: doc/classes/Control.xml:815
msgid "Emitted when the node gains keyboard focus."
msgstr "在节点获得键盘焦点时发出。"

#: doc/classes/Control.xml:820
msgid "Emitted when the node loses keyboard focus."
msgstr "当节点失去键盘焦点时发出。"

#: doc/classes/Control.xml:826
msgid "Emitted when the node receives an [InputEvent]."
msgstr "在节点收到[InputEvent]时发出。"

#: doc/classes/Control.xml:831
msgid "Emitted when the node's minimum size changes."
msgstr "当节点的最小大小更改时发出。"

#: doc/classes/Control.xml:836
#, fuzzy
msgid "Emitted when a modal [Control] is closed. See [method show_modal]."
msgstr "按下自定义按钮时发出。 参见[方法add_button]。"

#: doc/classes/Control.xml:841
msgid ""
"Emitted when the mouse enters the control's [code]Rect[/code] area, provided "
"its [member mouse_filter] lets the event reach it.\n"
"[b]Note:[/b] [signal mouse_entered] will not be emitted if the mouse enters "
"a child [Control] node before entering the parent's [code]Rect[/code] area, "
"at least until the mouse is moved to reach the parent's [code]Rect[/code] "
"area."
msgstr ""

#: doc/classes/Control.xml:847
msgid ""
"Emitted when the mouse leaves the control's [code]Rect[/code] area, provided "
"its [member mouse_filter] lets the event reach it.\n"
"[b]Note:[/b] [signal mouse_exited] will be emitted if the mouse enters a "
"child [Control] node, even if the mouse cursor is still inside the parent's "
"[code]Rect[/code] area."
msgstr ""

#: doc/classes/Control.xml:853
msgid "Emitted when the control changes size."
msgstr "当控件更改大小时发出。"

#: doc/classes/Control.xml:858
msgid ""
"Emitted when one of the size flags changes. See [member "
"size_flags_horizontal] and [member size_flags_vertical]."
msgstr ""
"当大小标志之一更改时发出。请参阅[member size_flags_horizontal]和[member "
"size_flags_vertical]。"

#: doc/classes/Control.xml:864
msgid "The node cannot grab focus. Use with [member focus_mode]."
msgstr "该节点无法获取焦点。与[member focus_mode]一起使用。"

#: doc/classes/Control.xml:867
msgid ""
"The node can only grab focus on mouse clicks. Use with [member focus_mode]."
msgstr "该节点只能抓住鼠标单击的焦点。与[member focus_mode]一起使用。"

#: doc/classes/Control.xml:870
msgid ""
"The node can grab focus on mouse click or using the arrows and the Tab keys "
"on the keyboard. Use with [member focus_mode]."
msgstr ""
"该节点可以集中精力于鼠标单击或使用键盘上的箭头和Tab键。与[member focus_mode]"
"一起使用。"

#: doc/classes/Control.xml:873
msgid ""
"Sent when the node changes size. Use [member rect_size] to get the new size."
msgstr "当节点更改大小时发送。使用[member rect_size]获取新大小。"

#: doc/classes/Control.xml:876
msgid "Sent when the mouse pointer enters the node."
msgstr "当鼠标指针进入节点时发送。"

#: doc/classes/Control.xml:879
msgid "Sent when the mouse pointer exits the node."
msgstr "当鼠标指针退出节点时发送。"

#: doc/classes/Control.xml:882
msgid "Sent when the node grabs focus."
msgstr "当节点获得焦点时发送。"

#: doc/classes/Control.xml:885
msgid "Sent when the node loses focus."
msgstr "当节点失去焦点时发送。"

#: doc/classes/Control.xml:888
#, fuzzy
msgid ""
"Sent when the node's [member theme] changes, right before Godot redraws the "
"control. Happens when you call one of the [code]add_*_override[/code] "
"methods."
msgstr ""
"当节点的[member theme]更改时发送,就在Godot重画控件之前。调用[code] "
"add_theme _ * _ override [/code]方法之一时发生。"

#: doc/classes/Control.xml:891
msgid "Sent when an open modal dialog closes. See [method show_modal]."
msgstr ""

#: doc/classes/Control.xml:894
msgid ""
"Sent when this node is inside a [ScrollContainer] which has begun being "
"scrolled."
msgstr "当此节点在已开始滚动的[ScrollContainer]内部时发送。"

#: doc/classes/Control.xml:897
msgid ""
"Sent when this node is inside a [ScrollContainer] which has stopped being "
"scrolled."
msgstr "当此节点在已停止滚动的[ScrollContainer]内部时发送。"

#: doc/classes/Control.xml:900
msgid ""
"Show the system's arrow mouse cursor when the user hovers the node. Use with "
"[member mouse_default_cursor_shape]."
msgstr ""
"当用户将节点悬停时,显示系统的箭头鼠标光标。与[member "
"mouse_default_cursor_shape]成员一起使用。"

#: doc/classes/Control.xml:903
msgid ""
"Show the system's I-beam mouse cursor when the user hovers the node. The I-"
"beam pointer has a shape similar to \"I\". It tells the user they can "
"highlight or insert text."
msgstr ""
"当用户将节点悬停时,显示系统的I型光束鼠标光标。工字梁指针的形状类似于“ I”。它"
"告诉用户他们可以突出显示或插入文本。"

#: doc/classes/Control.xml:906
msgid ""
"Show the system's pointing hand mouse cursor when the user hovers the node."
msgstr "当用户将节点悬停时,显示系统的手形鼠标光标。"

#: doc/classes/Control.xml:909
msgid "Show the system's cross mouse cursor when the user hovers the node."
msgstr "当用户将鼠标悬停在节点上时,显示系统的交叉鼠标光标。"

#: doc/classes/Control.xml:912
msgid ""
"Show the system's wait mouse cursor, often an hourglass, when the user "
"hovers the node."
msgstr "当用户悬停节点时,显示系统的等待鼠标光标,通常是一个沙漏。"

#: doc/classes/Control.xml:915
msgid ""
"Show the system's busy mouse cursor when the user hovers the node. Often an "
"hourglass."
msgstr "当用户悬停节点时,显示系统繁忙的鼠标光标。通常是一个沙漏。"

#: doc/classes/Control.xml:918
msgid ""
"Show the system's drag mouse cursor, often a closed fist or a cross symbol, "
"when the user hovers the node. It tells the user they're currently dragging "
"an item, like a node in the Scene dock."
msgstr ""
"当用户悬停在节点上时,显示系统的拖动鼠标光标,通常是一个闭合的拳头或十字符"
"号。它告诉用户他们当前正在拖动一个项目,就像场景码头中的节点一样。"

#: doc/classes/Control.xml:921
msgid ""
"Show the system's drop mouse cursor when the user hovers the node. It can be "
"an open hand. It tells the user they can drop an item they're currently "
"grabbing, like a node in the Scene dock."
msgstr ""
"当用户悬停节点时,显示系统的落地鼠标光标。它可以是一个张开的手。它告诉用户可"
"以放下一个他们当前正在抓取的物品,比如场景dock中的一个节点。"

#: doc/classes/Control.xml:924
msgid ""
"Show the system's forbidden mouse cursor when the user hovers the node. "
"Often a crossed circle."
msgstr "当用户悬停节点时,显示系统禁止的鼠标光标。通常是一个交叉的圆圈。"

#: doc/classes/Control.xml:927
msgid ""
"Show the system's vertical resize mouse cursor when the user hovers the "
"node. A double-headed vertical arrow. It tells the user they can resize the "
"window or the panel vertically."
msgstr ""
"当用户悬停节点时,显示系统的垂直调整鼠标光标。一个双头的垂直箭头。它告诉用户"
"可以垂直调整窗口或面板的大小。"

#: doc/classes/Control.xml:930
msgid ""
"Show the system's horizontal resize mouse cursor when the user hovers the "
"node. A double-headed horizontal arrow. It tells the user they can resize "
"the window or the panel horizontally."
msgstr ""
"当用户悬停节点时,显示系统的水平调整鼠标光标。一个双头的水平箭头。它告诉用户"
"可以水平调整窗口或面板的大小。"

#: doc/classes/Control.xml:933
msgid ""
"Show the system's window resize mouse cursor when the user hovers the node. "
"The cursor is a double-headed arrow that goes from the bottom left to the "
"top right. It tells the user they can resize the window or the panel both "
"horizontally and vertically."
msgstr ""
"当用户将节点悬停时,显示系统窗口调整大小的鼠标光标。光标是从左下角到右上角的"
"双向箭头。它告诉用户可以水平和垂直调整窗口或面板的大小。"

#: doc/classes/Control.xml:936
msgid ""
"Show the system's window resize mouse cursor when the user hovers the node. "
"The cursor is a double-headed arrow that goes from the top left to the "
"bottom right, the opposite of [constant CURSOR_BDIAGSIZE]. It tells the user "
"they can resize the window or the panel both horizontally and vertically."
msgstr ""
"当用户将节点悬停时,显示系统窗口调整大小的鼠标光标。光标是一个双向箭头,从左"
"上角到右下角,与[constant CURSOR_BDIAGSIZE]相反。它告诉用户可以水平和垂直调整"
"窗口或面板的大小。"

#: doc/classes/Control.xml:939
msgid ""
"Show the system's move mouse cursor when the user hovers the node. It shows "
"2 double-headed arrows at a 90 degree angle. It tells the user they can move "
"a UI element freely."
msgstr ""
"当用户将节点悬停时,显示系统的移动鼠标光标。它以90度角显示2个双向箭头。它告诉"
"用户他们可以自由移动UI元素。"

#: doc/classes/Control.xml:942
msgid ""
"Show the system's vertical split mouse cursor when the user hovers the node. "
"On Windows, it's the same as [constant CURSOR_VSIZE]."
msgstr ""
"当用户将节点悬停时,显示系统的垂直拆分鼠标光标。在Windows上,它与[constant "
"CURSOR_VSIZE]相同。"

#: doc/classes/Control.xml:945
msgid ""
"Show the system's horizontal split mouse cursor when the user hovers the "
"node. On Windows, it's the same as [constant CURSOR_HSIZE]."
msgstr ""
"当用户将节点悬停时,显示系统的水平拆分鼠标光标。在Windows上,它与[constant "
"CURSOR_HSIZE]相同。"

#: doc/classes/Control.xml:948
msgid ""
"Show the system's help mouse cursor when the user hovers the node, a "
"question mark."
msgstr "当用户将节点悬停在一个节点上时,显示系统的帮助鼠标光标,一个问号。"

#: doc/classes/Control.xml:951
msgid ""
"Snap all 4 anchors to the top-left of the parent control's bounds. Use with "
"[method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件边界的左上角。与[method set_anchors_preset]一起使"
"用。"

#: doc/classes/Control.xml:954
msgid ""
"Snap all 4 anchors to the top-right of the parent control's bounds. Use with "
"[method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件边界的右上角。与[method set_anchors_preset]一起使"
"用。"

#: doc/classes/Control.xml:957
msgid ""
"Snap all 4 anchors to the bottom-left of the parent control's bounds. Use "
"with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件的边界的左下角。与[method set_anchors_preset]一起"
"使用。"

#: doc/classes/Control.xml:960
msgid ""
"Snap all 4 anchors to the bottom-right of the parent control's bounds. Use "
"with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件的边界的右下角。与[method set_anchors_preset]一起"
"使用。"

#: doc/classes/Control.xml:963
msgid ""
"Snap all 4 anchors to the center of the left edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件边界的左边缘的中心。与[method set_anchors_preset]"
"一起使用。"

#: doc/classes/Control.xml:966
msgid ""
"Snap all 4 anchors to the center of the top edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件边界的上边缘的中心。与[method set_anchors_preset]"
"一起使用。"

#: doc/classes/Control.xml:969
msgid ""
"Snap all 4 anchors to the center of the right edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个锚点对齐到父控件边界右边缘的中心。与[method set_anchors_preset]一起"
"使用。"

#: doc/classes/Control.xml:972
msgid ""
"Snap all 4 anchors to the center of the bottom edge of the parent control's "
"bounds. Use with [method set_anchors_preset]."
msgstr ""
"将所有 4 个锚捕捉到父控制边界底部边缘的中心。使用[method "
"set_anchors_preset]。"

#: doc/classes/Control.xml:975
msgid ""
"Snap all 4 anchors to the center of the parent control's bounds. Use with "
"[method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件边界的中心。与[method set_anchors_preset]一起使"
"用。"

#: doc/classes/Control.xml:978
msgid ""
"Snap all 4 anchors to the left edge of the parent control. The left margin "
"becomes relative to the left edge and the top margin relative to the top "
"left corner of the node's parent. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件的左边缘。左边距相对于节点父节点的左边缘,而上边距"
"相对于节点父节点的左上角。与[method set_anchors_preset]一起使用。"

#: doc/classes/Control.xml:981
msgid ""
"Snap all 4 anchors to the top edge of the parent control. The left margin "
"becomes relative to the top left corner, the top margin relative to the top "
"edge, and the right margin relative to the top right corner of the node's "
"parent. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件的顶部边缘。左侧边距相对于节点父节点的左上角,顶部"
"边距相对于顶部的边缘,右侧边距相对于节点的父节点。与[method "
"set_anchors_preset]一起使用。"

#: doc/classes/Control.xml:984
msgid ""
"Snap all 4 anchors to the right edge of the parent control. The right margin "
"becomes relative to the right edge and the top margin relative to the top "
"right corner of the node's parent. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件的顶部边缘。左侧边距相对于节点父节点的左上角,顶部"
"边距相对于顶部的边缘,右侧边距相对于节点的父节点。与[method "
"set_anchors_preset]一起使用。"

#: doc/classes/Control.xml:987
msgid ""
"Snap all 4 anchors to the bottom edge of the parent control. The left margin "
"becomes relative to the bottom left corner, the bottom margin relative to "
"the bottom edge, and the right margin relative to the bottom right corner of "
"the node's parent. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件的底部边缘。左侧边距相对于节点父节点的左下角,底部"
"边距相对于底部的边缘,而右侧边距相对于节点的右下角。与[method "
"set_anchors_preset]一起使用。"

#: doc/classes/Control.xml:990
msgid ""
"Snap all 4 anchors to a vertical line that cuts the parent control in half. "
"Use with [method set_anchors_preset]."
msgstr ""
"将所有4个锚点对齐到一条垂直线,该垂直线将父控件切成两半。与[method "
"set_anchors_preset]一起使用。"

#: doc/classes/Control.xml:993
msgid ""
"Snap all 4 anchors to a horizontal line that cuts the parent control in "
"half. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个锚点对齐到一条水平线,该水平线将父控件切成两半。与[method "
"set_anchors_preset]一起使用。"

#: doc/classes/Control.xml:996
msgid ""
"Snap all 4 anchors to the respective corners of the parent control. Set all "
"4 margins to 0 after you applied this preset and the [Control] will fit its "
"parent control. This is equivalent to the \"Full Rect\" layout option in the "
"editor. Use with [method set_anchors_preset]."
msgstr ""
"将所有4个定位点对齐到父控件的各个角。应用此预设后,将所有4个页边距设置为0,"
"[Control]将适合其上级控件。这等效于编辑器中的“全角”布局选项。与[method "
"set_anchors_preset]一起使用。"

#: doc/classes/Control.xml:999
msgid "The control will be resized to its minimum size."
msgstr "控件将被调整为最小尺寸。"

#: doc/classes/Control.xml:1002
msgid "The control's width will not change."
msgstr "控件的宽度不会改变。"

#: doc/classes/Control.xml:1005
msgid "The control's height will not change."
msgstr "控件的高度不会改变。"

#: doc/classes/Control.xml:1008
msgid "The control's size will not change."
msgstr "控件的大小不会改变。"

#: doc/classes/Control.xml:1011
msgid ""
"Tells the parent [Container] to expand the bounds of this node to fill all "
"the available space without pushing any other node. Use with [member "
"size_flags_horizontal] and [member size_flags_vertical]."
msgstr ""
"告诉父[Container]扩展此节点的边界,以在不推其他节点的情况下填充所有可用空间。"
"使用[member size_flags_horizontal]和[member size_flags_vertical]。"

#: doc/classes/Control.xml:1014
msgid ""
"Tells the parent [Container] to let this node take all the available space "
"on the axis you flag. If multiple neighboring nodes are set to expand, "
"they'll share the space based on their stretch ratio. See [member "
"size_flags_stretch_ratio]. Use with [member size_flags_horizontal] and "
"[member size_flags_vertical]."
msgstr ""
"告诉父级[Container]让该节点占用您标记的轴上的所有可用空间。如果将多个相邻节点"
"设置为扩展,它们将根据其拉伸比共享空间。参见[member "
"size_flags_stretch_ratio]。与[member size_flags_horizontal]和[member "
"size_flags_vertical]一起使用。"

#: doc/classes/Control.xml:1017
msgid ""
"Sets the node's size flags to both fill and expand. See the 2 constants "
"above for more information."
msgstr ""
"将节点的大小标志设置为同时填充和扩展。有关更多信息,请参见上面的2个常量。"

#: doc/classes/Control.xml:1020
msgid ""
"Tells the parent [Container] to center the node in itself. It centers the "
"control based on its bounding box, so it doesn't work with the fill or "
"expand size flags. Use with [member size_flags_horizontal] and [member "
"size_flags_vertical]."
msgstr ""
"告诉父级[Container]使节点本身居中。它基于控件的边界框居中,因此它不适用于fill"
"或expand尺寸标志。与[member size_flags_horizontal]和[member "
"size_flags_vertical]一起使用。"

#: doc/classes/Control.xml:1023
msgid ""
"Tells the parent [Container] to align the node with its end, either the "
"bottom or the right edge. It doesn't work with the fill or expand size "
"flags. Use with [member size_flags_horizontal] and [member "
"size_flags_vertical]."
msgstr ""
"告诉父级[Container]将节点与其末端(底部或右侧)对齐。它不适用于fill或expand "
"size标志。与[member size_flags_horizontal]和[member size_flags_vertical]一起"
"使用。"

#: doc/classes/Control.xml:1026
msgid ""
"The control will receive mouse button input events through [method "
"_gui_input] if clicked on. And the control will receive the [signal "
"mouse_entered] and [signal mouse_exited] signals. These events are "
"automatically marked as handled, and they will not propagate further to "
"other controls. This also results in blocking signals in other controls."
msgstr ""
"如果单击,控件将通过[method_gui_input]接收鼠标按钮输入事件。并且控件将接收"
"[signal mouse_entered]和[signal mouse_exited]信号。这些事件将自动标记为已处"
"理,并且不会进一步传播到其他控件。这也会导致其他控件中的信号阻塞。"

#: doc/classes/Control.xml:1029
msgid ""
"The control will receive mouse button input events through [method "
"_gui_input] if clicked on. And the control will receive the [signal "
"mouse_entered] and [signal mouse_exited] signals. If this control does not "
"handle the event, the parent control (if any) will be considered, and so on "
"until there is no more parent control to potentially handle it. This also "
"allows signals to fire in other controls. Even if no control handled it at "
"all, the event will still be handled automatically, so unhandled input will "
"not be fired."
msgstr ""
"如果单击,控件将通过[method_gui_input]接收鼠标按钮输入事件。并且控件将接收"
"[signal mouse_entered]和[signal mouse_exited]信号。如果此控件未处理事件,则将"
"考虑父控件(如果有),依此类推,直到不再有可能处理它的父控件为止。这也允许信"
"号在其他控件中触发。即使根本没有控件处理过该事件,该事件仍将自动处理,因此不"
"会触发未处理的输入。"

#: doc/classes/Control.xml:1032
msgid ""
"The control will not receive mouse button input events through [method "
"_gui_input]. The control will also not receive the [signal mouse_entered] "
"nor [signal mouse_exited] signals. This will not block other controls from "
"receiving these events or firing the signals. Ignored events will not be "
"handled automatically."
msgstr ""
"控件将不会通过[method_gui_input]接收鼠标按钮输入事件。该控件也不会接收"
"[signal mouse_entered]或[signal mouse_exited]信号。这不会阻止其他控件接收这些"
"事件或触发信号。忽略的事件将不会自动处理。"

#: doc/classes/Control.xml:1035
msgid ""
"The control will grow to the left or top to make up if its minimum size is "
"changed to be greater than its current size on the respective axis."
msgstr ""
"如果控件的最小尺寸更改为大于其相应轴上的当前尺寸,则控件将向左或顶部增大以进"
"行组合。"

#: doc/classes/Control.xml:1038
msgid ""
"The control will grow to the right or bottom to make up if its minimum size "
"is changed to be greater than its current size on the respective axis."
msgstr ""
"如果控件的最小尺寸更改为大于其相应轴上的当前尺寸,则控件将向右或向下增大以进"
"行补偿。"

#: doc/classes/Control.xml:1041
msgid ""
"The control will grow in both directions equally to make up if its minimum "
"size is changed to be greater than its current size."
msgstr ""
"如果控件的最小大小更改为大于其当前大小,则控件将在两个方向上均等地增长以组成"
"该控件。"

#: doc/classes/Control.xml:1044
msgid ""
"Snaps one of the 4 anchor's sides to the origin of the node's [code]Rect[/"
"code], in the top left. Use it with one of the [code]anchor_*[/code] member "
"variables, like [member anchor_left]. To change all 4 anchors at once, use "
"[method set_anchors_preset]."
msgstr ""
"将4个锚点的一侧之一对齐到节点的[code] Rect [/code]的左上角。与[code] anchor "
"_ * [/code]成员变量之一一起使用,例如[member anchor_left]。要一次更改所有4个"
"锚点,请使用[method set_anchors_preset]。"

#: doc/classes/Control.xml:1047
msgid ""
"Snaps one of the 4 anchor's sides to the end of the node's [code]Rect[/"
"code], in the bottom right. Use it with one of the [code]anchor_*[/code] "
"member variables, like [member anchor_left]. To change all 4 anchors at "
"once, use [method set_anchors_preset]."
msgstr ""
"将4个锚点的一侧之一捕捉到右下角节点[code] Rect [/code]的末端。与[code] "
"anchor _ * [/code]成员变量之一一起使用,例如[member anchor_left]。要一次更改"
"所有4个锚点,请使用[method set_anchors_preset]。"

#: doc/classes/ConvexPolygonShape.xml:4
msgid "Convex polygon shape for 3D physics."
msgstr "用于3D物理的凸多边形形状。"

#: doc/classes/ConvexPolygonShape.xml:7
#, fuzzy
msgid ""
"Convex polygon shape resource, which can be added to a [PhysicsBody] or area."
msgstr "凸多边形形状资源,可以将其添加到[PhysicsBody3D]或区域中。"

#: doc/classes/ConvexPolygonShape.xml:16
msgid "The list of 3D points forming the convex polygon shape."
msgstr "形成凸多边形的3D点列表。"

#: doc/classes/ConvexPolygonShape2D.xml:4
msgid "Convex polygon shape for 2D physics."
msgstr "用于2D物理的凸多边形形状。"

#: doc/classes/ConvexPolygonShape2D.xml:7
msgid ""
"Convex polygon shape for 2D physics. A convex polygon, whatever its shape, "
"is internally decomposed into as many convex polygons as needed to ensure "
"all collision checks against it are always done on convex polygons (which "
"are faster to check).\n"
"The main difference between a [ConvexPolygonShape2D] and a "
"[ConcavePolygonShape2D] is that a concave polygon assumes it is concave and "
"uses a more complex method of collision detection, and a convex one forces "
"itself to be convex in order to speed up collision detection."
msgstr ""
"用于2D物理的凸多边形形状。凸多边形,无论其形状如何,都可以在内部分解为所需数"
"量的凸多边形,以确保始终对凸多边形执行所有针对它的碰撞检查(检查速度更"
"快)。\n"
"[ConvexPolygonShape2D]和[ConcavePolygonShape2D]之间的主要区别在于,凹面多边形"
"假定其为凹面,并使用更复杂的碰撞检测方法,而凸面多边形则将自身强制变为凸面,"
"以加快碰撞检测的速度。"

#: doc/classes/ConvexPolygonShape2D.xml:17
#, fuzzy
msgid ""
"Based on the set of points provided, this creates and assigns the [member "
"points] property using the convex hull algorithm. Removing all unneeded "
"points. See [method Geometry.convex_hull_2d] for details."
msgstr ""
"基于提供的点集,这将使用凸包算法创建并分配[member points]属性。删除所有不需要"
"的点。有关详细信息,请参见[method Geometry2D.convex_hull]。"

#: doc/classes/ConvexPolygonShape2D.xml:23
msgid ""
"The polygon's list of vertices. Can be in either clockwise or "
"counterclockwise order."
msgstr "多边形的顶点列表。可以按顺时针或逆时针顺序。"

#: doc/classes/CPUParticles.xml:4
msgid "CPU-based 3D particle emitter."
msgstr "基于CPU的3D粒子发射器。"

#: doc/classes/CPUParticles.xml:7
#, fuzzy
msgid ""
"CPU-based 3D particle node used to create a variety of particle systems and "
"effects.\n"
"See also [Particles], which provides the same functionality with hardware "
"acceleration, but may not run on older devices.\n"
"[b]Note:[/b] Unlike [Particles], the visibility rect is generated on-the-fly "
"and doesn't need to be configured by the user."
msgstr ""
"基于CPU的3D粒子节点,用于创建各种粒子系统和效果。\n"
"另请参阅[GPUParticles3D],它提供与硬件加速相同的功能,但可能无法在较旧的设备"
"上运行。"

#: doc/classes/CPUParticles.xml:18
#, fuzzy
msgid ""
"Sets this node's properties to match a given [Particles] node with an "
"assigned [ParticlesMaterial]."
msgstr ""
"设置此节点的属性,以使给定的[GPUParticles2D]节点与分配的[ParticlesMaterial]匹"
"配。"

#: doc/classes/CPUParticles.xml:25 doc/classes/CPUParticles2D.xml:26
msgid "Returns the base value of the parameter specified by [enum Parameter]."
msgstr "返回由[enum Parameter]指定的参数的基值。"

#: doc/classes/CPUParticles.xml:32 doc/classes/CPUParticles2D.xml:33
msgid "Returns the [Curve] of the parameter specified by [enum Parameter]."
msgstr "返回由[enum Parameter]指定的参数的[Curve]。"

#: doc/classes/CPUParticles.xml:39 doc/classes/CPUParticles2D.xml:40
msgid ""
"Returns the randomness factor of the parameter specified by [enum Parameter]."
msgstr "返回[enum Parameter]指定的参数的随机性系数。"

#: doc/classes/CPUParticles.xml:46 doc/classes/CPUParticles2D.xml:47
msgid ""
"Returns the enabled state of the given flag (see [enum Flags] for options)."
msgstr "返回给定标志的启用状态(有关选项,请参见[枚举标志])。"

#: doc/classes/CPUParticles.xml:52 doc/classes/CPUParticles2D.xml:53
msgid "Restarts the particle emitter."
msgstr "重新启动粒子发射器。"

#: doc/classes/CPUParticles.xml:60 doc/classes/CPUParticles2D.xml:61
msgid "Sets the base value of the parameter specified by [enum Parameter]."
msgstr "设置[enum Parameter]指定的参数的基值。"

#: doc/classes/CPUParticles.xml:68 doc/classes/CPUParticles2D.xml:69
msgid "Sets the [Curve] of the parameter specified by [enum Parameter]."
msgstr "设置[enum Parameter]指定的参数的[Curve]。"

#: doc/classes/CPUParticles.xml:76 doc/classes/CPUParticles2D.xml:77
msgid ""
"Sets the randomness factor of the parameter specified by [enum Parameter]."
msgstr "设置[enum Parameter]指定的参数的随机性因子。"

#: doc/classes/CPUParticles.xml:84 doc/classes/CPUParticles2D.xml:85
msgid "Enables or disables the given flag (see [enum Flags] for options)."
msgstr "启用或禁用给定标志(有关选项,请参见[枚举标志])。"

#: doc/classes/CPUParticles.xml:90 doc/classes/CPUParticles2D.xml:91
#: doc/classes/Particles.xml:47 doc/classes/Particles2D.xml:33
msgid ""
"The number of particles emitted in one emission cycle (corresponding to the "
"[member lifetime]).\n"
"[b]Note:[/b] Changing [member amount] will reset the particle emission, "
"therefore removing all particles that were already emitted before changing "
"[member amount]."
msgstr ""

#: doc/classes/CPUParticles.xml:94 doc/classes/CPUParticles2D.xml:95
msgid "Initial rotation applied to each particle, in degrees."
msgstr "应用于每个粒子的初始旋转(以度为单位)。"

#: doc/classes/CPUParticles.xml:97 doc/classes/CPUParticles2D.xml:98
msgid "Each particle's rotation will be animated along this [Curve]."
msgstr "每个粒子的旋转将沿此[Curve]进行动画处理。"

#: doc/classes/CPUParticles.xml:100 doc/classes/CPUParticles2D.xml:101
#: doc/classes/ParticlesMaterial.xml:84
msgid "Rotation randomness ratio."
msgstr "旋转随机率。"

#: doc/classes/CPUParticles.xml:103 doc/classes/CPUParticles2D.xml:104
msgid ""
"Initial angular velocity applied to each particle. Sets the speed of "
"rotation of the particle."
msgstr "应用于每个粒子的初始角速度。设置粒子的旋转速度。"

#: doc/classes/CPUParticles.xml:106 doc/classes/CPUParticles2D.xml:107
msgid "Each particle's angular velocity will vary along this [Curve]."
msgstr "每个粒子的角速度将沿此[Curve]变化。"

#: doc/classes/CPUParticles.xml:109 doc/classes/CPUParticles2D.xml:110
#: doc/classes/ParticlesMaterial.xml:94
msgid "Angular velocity randomness ratio."
msgstr "角速度随机率。"

#: doc/classes/CPUParticles.xml:112 doc/classes/CPUParticles2D.xml:113
#: doc/classes/ParticlesMaterial.xml:97
msgid "Particle animation offset."
msgstr "粒子动画偏移量。"

#: doc/classes/CPUParticles.xml:115 doc/classes/CPUParticles2D.xml:116
msgid "Each particle's animation offset will vary along this [Curve]."
msgstr "每个粒子的动画偏移将沿此[Curve]变化。"

#: doc/classes/CPUParticles.xml:118 doc/classes/CPUParticles2D.xml:119
#: doc/classes/ParticlesMaterial.xml:103
msgid "Animation offset randomness ratio."
msgstr "动画偏移随机率。"

#: doc/classes/CPUParticles.xml:121 doc/classes/CPUParticles2D.xml:122
#: doc/classes/ParticlesMaterial.xml:106
msgid "Particle animation speed."
msgstr "粒子动画速度。"

#: doc/classes/CPUParticles.xml:124 doc/classes/CPUParticles2D.xml:125
msgid "Each particle's animation speed will vary along this [Curve]."
msgstr "每个粒子的动画速度将沿此[曲线]变化。"

#: doc/classes/CPUParticles.xml:127 doc/classes/CPUParticles2D.xml:128
#: doc/classes/ParticlesMaterial.xml:112
msgid "Animation speed randomness ratio."
msgstr "动画速度随机率。"

#: doc/classes/CPUParticles.xml:130
#, fuzzy
msgid ""
"Each particle's initial color. To have particle display color in a "
"[SpatialMaterial] make sure to set [member SpatialMaterial."
"vertex_color_use_as_albedo] to [code]true[/code]."
msgstr ""
"每个粒子的初始颜色。如果[GPUParticles2D]的[code]texture[/code]被定义,它将乘"
"以这个颜色。要让粒子在[BaseMaterial3D]中显示颜色,请确保设置[member "
"BaseMaterial3D]。vertex_color_use_as_albedo] [code]true[/code]。"

#: doc/classes/CPUParticles.xml:133 doc/classes/ParticlesMaterial.xml:118
#, fuzzy
msgid ""
"Each particle's color will vary along this [GradientTexture] over its "
"lifetime (multiplied with [member color])."
msgstr "每个粒子的颜色将沿着这个[GradientTexture]变化。"

#: doc/classes/CPUParticles.xml:136 doc/classes/CPUParticles2D.xml:137
#: doc/classes/ParticlesMaterial.xml:121
msgid "The rate at which particles lose velocity."
msgstr "粒子失去速度的速率。"

#: doc/classes/CPUParticles.xml:139 doc/classes/CPUParticles2D.xml:140
msgid "Damping will vary along this [Curve]."
msgstr "阻尼将沿着这条[Gradient]变化。"

#: doc/classes/CPUParticles.xml:142 doc/classes/CPUParticles2D.xml:143
#: doc/classes/ParticlesMaterial.xml:127
msgid "Damping randomness ratio."
msgstr "阻尼随机率。"

#: doc/classes/CPUParticles.xml:145 doc/classes/CPUParticles2D.xml:146
#: doc/classes/ParticlesMaterial.xml:130
msgid "Unit vector specifying the particles' emission direction."
msgstr "指定粒子发射方向的单位向量。"

#: doc/classes/CPUParticles.xml:148 doc/classes/CPUParticles2D.xml:149
#: doc/classes/Particles.xml:51 doc/classes/Particles2D.xml:37
msgid "Particle draw order. Uses [enum DrawOrder] values."
msgstr "粒子绘制顺序。使用[enum DrawOrder]值。"

#: doc/classes/CPUParticles.xml:151
msgid ""
"The rectangle's extents if [member emission_shape] is set to [constant "
"EMISSION_SHAPE_BOX]."
msgstr ""
"如果[membermission_shape]设置为[constant EMISSION_SHAPE_BOX],则矩形的范围。"

#: doc/classes/CPUParticles.xml:154 doc/classes/CPUParticles2D.xml:152
msgid ""
"Sets the [Color]s to modulate particles by when using [constant "
"EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."
msgstr ""
"设置[Color]以使用[constant EMISSION_SHAPE_POINTS]或[constant "
"EMISSION_SHAPE_DIRECTED_POINTS]来调制粒子。"

#: doc/classes/CPUParticles.xml:157 doc/classes/CPUParticles2D.xml:155
msgid ""
"Sets the direction the particles will be emitted in when using [constant "
"EMISSION_SHAPE_DIRECTED_POINTS]."
msgstr "设置使用[constant EMISSION_SHAPE_DIRECTED_POINTS]时粒子发射的方向。"

#: doc/classes/CPUParticles.xml:160 doc/classes/CPUParticles2D.xml:158
msgid ""
"Sets the initial positions to spawn particles when using [constant "
"EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."
msgstr ""
"设置使用[constant EMISSION_SHAPE_POINTS]或[constant "
"EMISSION_SHAPE_DIRECTED_POINTS]时产生粒子的初始位置。"

#: doc/classes/CPUParticles.xml:163
#, fuzzy
msgid ""
"The axis for the ring shaped emitter when using [constant "
"EMISSION_SHAPE_RING]."
msgstr "设置使用[constant EMISSION_SHAPE_DIRECTED_POINTS]时粒子发射的方向。"

#: doc/classes/CPUParticles.xml:166
#, fuzzy
msgid ""
"The height for the ring shaped emitter when using [constant "
"EMISSION_SHAPE_RING]."
msgstr "设置使用[constant EMISSION_SHAPE_DIRECTED_POINTS]时粒子发射的方向。"

#: doc/classes/CPUParticles.xml:169
#, fuzzy
msgid ""
"The inner radius for the ring shaped emitter when using [constant "
"EMISSION_SHAPE_RING]."
msgstr "设置使用[constant EMISSION_SHAPE_DIRECTED_POINTS]时粒子发射的方向。"

#: doc/classes/CPUParticles.xml:172
#, fuzzy
msgid ""
"The radius for the ring shaped emitter when using [constant "
"EMISSION_SHAPE_RING]."
msgstr "设置使用[constant EMISSION_SHAPE_DIRECTED_POINTS]时粒子发射的方向。"

#: doc/classes/CPUParticles.xml:175 doc/classes/CPUParticles2D.xml:164
msgid ""
"Particles will be emitted inside this region. See [enum EmissionShape] for "
"possible values."
msgstr "粒子将在此区域内发射。有关可能的值,请参见[enum EmissionShape]。"

#: doc/classes/CPUParticles.xml:178
msgid ""
"The sphere's radius if [enum EmissionShape] is set to [constant "
"EMISSION_SHAPE_SPHERE]."
msgstr ""
"如果[enum EmissionShape]设置为[constant EMISSION_SHAPE_SPHERE],则球体的半"
"径。"

#: doc/classes/CPUParticles.xml:181 doc/classes/CPUParticles2D.xml:170
#: doc/classes/Particles.xml:69 doc/classes/Particles2D.xml:40
msgid "If [code]true[/code], particles are being emitted."
msgstr "如果[code]true[/code],则正在发射粒子。"

#: doc/classes/CPUParticles.xml:184 doc/classes/CPUParticles2D.xml:173
#: doc/classes/Particles2D.xml:43
msgid ""
"How rapidly particles in an emission cycle are emitted. If greater than "
"[code]0[/code], there will be a gap in emissions before the next cycle "
"begins."
msgstr ""
"粒子在一个发射周期中的发射速度有多快。如果大于[code] 0 [/code],则在下一个循"
"环开始之前会有排放量缺口。"

#: doc/classes/CPUParticles.xml:187
msgid ""
"The particle system's frame rate is fixed to a value. For instance, changing "
"the value to 2 will make the particles render at 2 frames per second. Note "
"this does not slow down the particle system itself."
msgstr ""
"粒子系统的帧速率固定为一个值。例如,将值更改为2将使粒子以每秒2帧的速度渲染。"
"请注意,这不会减慢粒子系统本身的速度。"

#: doc/classes/CPUParticles.xml:190 doc/classes/CPUParticles2D.xml:179
#: doc/classes/ParticlesMaterial.xml:166
msgid "Align Y axis of particle with the direction of its velocity."
msgstr "将粒子的Y轴与其速度方向对齐。"

#: doc/classes/CPUParticles.xml:193 doc/classes/ParticlesMaterial.xml:169
msgid "If [code]true[/code], particles will not move on the z axis."
msgstr "如果[code]true[/code],则粒子将不会在z轴上移动。"

#: doc/classes/CPUParticles.xml:196 doc/classes/ParticlesMaterial.xml:172
msgid "If [code]true[/code], particles rotate around Y axis by [member angle]."
msgstr "如果[code]true[/code],粒子绕Y轴旋转[member angle]。"

#: doc/classes/CPUParticles.xml:199
msgid ""
"Amount of [member spread] in Y/Z plane. A value of [code]1[/code] restricts "
"particles to X/Z plane."
msgstr ""
"Y / Z平面中的[成员传播]数量。值[code] 1 [/code]将粒子限制在X / Z平面上。"

#: doc/classes/CPUParticles.xml:202 doc/classes/CPUParticles2D.xml:182
#: doc/classes/Particles.xml:78 doc/classes/Particles2D.xml:49
msgid ""
"If [code]true[/code], results in fractional delta calculation which has a "
"smoother particles display effect."
msgstr ""
"如果[code]true[/code],将导致分数增量计算,该显示具有更平滑的粒子显示效果。"

#: doc/classes/CPUParticles.xml:205 doc/classes/CPUParticles2D.xml:185
#: doc/classes/ParticlesMaterial.xml:178
msgid "Gravity applied to every particle."
msgstr "重力作用于每个粒子。"

#: doc/classes/CPUParticles.xml:208 doc/classes/CPUParticles2D.xml:188
#: doc/classes/ParticlesMaterial.xml:181
msgid "Initial hue variation applied to each particle."
msgstr "初始色调变化应用于每个粒子。"

#: doc/classes/CPUParticles.xml:211 doc/classes/CPUParticles2D.xml:191
msgid "Each particle's hue will vary along this [Curve]."
msgstr "每个粒子的色相都将随之变化。"

#: doc/classes/CPUParticles.xml:214 doc/classes/CPUParticles2D.xml:194
#: doc/classes/ParticlesMaterial.xml:187
msgid "Hue variation randomness ratio."
msgstr "色相变化随机率。"

#: doc/classes/CPUParticles.xml:217 doc/classes/CPUParticles2D.xml:197
#: doc/classes/ParticlesMaterial.xml:190
msgid ""
"Initial velocity magnitude for each particle. Direction comes from [member "
"spread] and the node's orientation."
msgstr "每个粒子的初始速度大小。方向来自[member spread]和节点的方向。"

#: doc/classes/CPUParticles.xml:220 doc/classes/CPUParticles2D.xml:200
#: doc/classes/ParticlesMaterial.xml:193
msgid "Initial velocity randomness ratio."
msgstr "初始速度随机率。"

#: doc/classes/CPUParticles.xml:223 doc/classes/CPUParticles2D.xml:203
#: doc/classes/Particles.xml:81 doc/classes/Particles2D.xml:52
#, fuzzy
msgid "The amount of time each particle will exist (in seconds)."
msgstr "每个粒子将存在的时间量。"

#: doc/classes/CPUParticles.xml:226 doc/classes/CPUParticles2D.xml:206
#: doc/classes/ParticlesMaterial.xml:196
msgid "Particle lifetime randomness ratio."
msgstr "粒子寿命随机率。"

#: doc/classes/CPUParticles.xml:229 doc/classes/CPUParticles2D.xml:209
#: doc/classes/ParticlesMaterial.xml:199
msgid ""
"Linear acceleration applied to each particle in the direction of motion."
msgstr "沿运动方向施加到每个粒子的线性加速度。"

#: doc/classes/CPUParticles.xml:232 doc/classes/CPUParticles2D.xml:212
msgid "Each particle's linear acceleration will vary along this [Curve]."
msgstr "每个粒子的线性加速度将沿此[Curve]变化。"

#: doc/classes/CPUParticles.xml:235 doc/classes/CPUParticles2D.xml:215
#: doc/classes/ParticlesMaterial.xml:205
msgid "Linear acceleration randomness ratio."
msgstr "线性加速度随机率。"

#: doc/classes/CPUParticles.xml:238 doc/classes/CPUParticles2D.xml:218
#: doc/classes/Particles.xml:84 doc/classes/Particles2D.xml:55
msgid ""
"If [code]true[/code], particles use the parent node's coordinate space. If "
"[code]false[/code], they use global coordinates."
msgstr ""
"如果[code] true [/code],则粒子将使用父节点的坐标空间。如果[code]false[/"
"code],则使用全局坐标。"

#: doc/classes/CPUParticles.xml:241
msgid ""
"The [Mesh] used for each particle. If [code]null[/code], particles will be "
"spheres."
msgstr "每个粒子使用的[Mesh]。如果[code]null[/code],则粒子将是球形。"

#: doc/classes/CPUParticles.xml:244 doc/classes/CPUParticles2D.xml:225
#: doc/classes/Particles2D.xml:62
msgid ""
"If [code]true[/code], only one emission cycle occurs. If set [code]true[/"
"code] during a cycle, emission will stop at the cycle's end."
msgstr ""
"如果 [code] true [/code],则只发生一个排放周期。如果在周期内设置 [code]true "
"[/code],则排放将在周期结束时停止。"

#: doc/classes/CPUParticles.xml:247
msgid ""
"Orbital velocity applied to each particle. Makes the particles circle around "
"origin in the local XY plane. Specified in number of full rotations around "
"origin per second.\n"
"This property is only available when [member flag_disable_z] is [code]true[/"
"code]."
msgstr ""
"应用于每个粒子的轨道速度。使粒子在局部XY平面上绕原点旋转。用每秒绕原点旋转的"
"次数来表示。\n"
"只有当[member flag_disable_z]为[code]true[/code]时,此属性才可用。"

#: doc/classes/CPUParticles.xml:251 doc/classes/CPUParticles2D.xml:231
msgid "Each particle's orbital velocity will vary along this [Curve]."
msgstr "每个粒子的轨道速度将沿此[Curve]变化。"

#: doc/classes/CPUParticles.xml:254 doc/classes/CPUParticles2D.xml:234
#: doc/classes/ParticlesMaterial.xml:215
msgid "Orbital velocity randomness ratio."
msgstr "轨道速度随机率。"

#: doc/classes/CPUParticles.xml:257 doc/classes/CPUParticles2D.xml:237
#: doc/classes/Particles2D.xml:65
msgid "Particle system starts as if it had already run for this many seconds."
msgstr "粒子系统启动时就好像已经运行了这么多秒一样。"

#: doc/classes/CPUParticles.xml:260 doc/classes/CPUParticles2D.xml:240
#: doc/classes/ParticlesMaterial.xml:218
msgid ""
"Radial acceleration applied to each particle. Makes particle accelerate away "
"from origin."
msgstr "径向加速度应用于每个粒子。使粒子加速远离原点。"

#: doc/classes/CPUParticles.xml:263 doc/classes/CPUParticles2D.xml:243
msgid "Each particle's radial acceleration will vary along this [Curve]."
msgstr "每个粒子的径向加速度将沿此[Curve]变化。"

#: doc/classes/CPUParticles.xml:266 doc/classes/CPUParticles2D.xml:246
#: doc/classes/ParticlesMaterial.xml:224
msgid "Radial acceleration randomness ratio."
msgstr "径向加速度随机率。"

#: doc/classes/CPUParticles.xml:269 doc/classes/CPUParticles2D.xml:249
#: doc/classes/Particles2D.xml:71
msgid "Emission lifetime randomness ratio."
msgstr "发射寿命随机率。"

#: doc/classes/CPUParticles.xml:272 doc/classes/CPUParticles2D.xml:252
#: doc/classes/ParticlesMaterial.xml:227
msgid "Initial scale applied to each particle."
msgstr "初始比例应用于每个粒子。"

#: doc/classes/CPUParticles.xml:275 doc/classes/CPUParticles2D.xml:255
msgid "Each particle's scale will vary along this [Curve]."
msgstr "每个粒子的比例将随着[Curve]的变化而变化。"

#: doc/classes/CPUParticles.xml:278 doc/classes/CPUParticles2D.xml:258
#: doc/classes/ParticlesMaterial.xml:233
msgid "Scale randomness ratio."
msgstr "标度随机率。"

#: doc/classes/CPUParticles.xml:281 doc/classes/CPUParticles2D.xml:261
#: doc/classes/Particles2D.xml:74
msgid ""
"Particle system's running speed scaling ratio. A value of [code]0[/code] can "
"be used to pause the particles."
msgstr "粒子系统的运行速度缩放比例。值[code] 0 [/code]可用于暂停粒子。"

#: doc/classes/CPUParticles.xml:284
msgid ""
"Each particle's initial direction range from [code]+spread[/code] to [code]-"
"spread[/code] degrees. Applied to X/Z plane and Y/Z planes."
msgstr ""
"每个粒子的初始方向范围为[code]+spread[/code]至[code]-spread[/code]度。适用于"
"X/Z平面和Y/Z平面。"

#: doc/classes/CPUParticles.xml:287 doc/classes/CPUParticles2D.xml:267
#: doc/classes/ParticlesMaterial.xml:239
msgid ""
"Tangential acceleration applied to each particle. Tangential acceleration is "
"perpendicular to the particle's velocity giving the particles a swirling "
"motion."
msgstr ""
"切向加速度应用于每个粒子。切向加速度垂直于粒子的速度,使粒子产生涡旋运动。"

#: doc/classes/CPUParticles.xml:290 doc/classes/CPUParticles2D.xml:270
msgid "Each particle's tangential acceleration will vary along this [Curve]."
msgstr "每个粒子的切向加速度将沿此[Curve]变化。"

#: doc/classes/CPUParticles.xml:293 doc/classes/CPUParticles2D.xml:273
#: doc/classes/ParticlesMaterial.xml:245
msgid "Tangential acceleration randomness ratio."
msgstr "切向加速度随机率。"

#: doc/classes/CPUParticles.xml:298 doc/classes/CPUParticles2D.xml:281
#: doc/classes/Particles.xml:109 doc/classes/Particles2D.xml:86
msgid "Particles are drawn in the order emitted."
msgstr "粒子按发射顺序绘制。"

#: doc/classes/CPUParticles.xml:301 doc/classes/CPUParticles2D.xml:284
#: doc/classes/Particles.xml:112 doc/classes/Particles2D.xml:89
msgid "Particles are drawn in order of remaining lifetime."
msgstr "按照剩余寿命的顺序绘制粒子。"

#: doc/classes/CPUParticles.xml:304 doc/classes/Particles.xml:115
msgid "Particles are drawn in order of depth."
msgstr "粒子按深度顺序绘制。"

#: doc/classes/CPUParticles.xml:307 doc/classes/CPUParticles2D.xml:287
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set initial velocity properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置初始速度属性。"

#: doc/classes/CPUParticles.xml:310 doc/classes/CPUParticles2D.xml:290
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set angular velocity properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置角速度属性。"

#: doc/classes/CPUParticles.xml:313 doc/classes/CPUParticles2D.xml:293
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set orbital velocity properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用来设置轨道速度属性。"

#: doc/classes/CPUParticles.xml:316 doc/classes/CPUParticles2D.xml:296
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set linear acceleration properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置线性加速度属性。"

#: doc/classes/CPUParticles.xml:319 doc/classes/CPUParticles2D.xml:299
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set radial acceleration properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置径向加速度属性。"

#: doc/classes/CPUParticles.xml:322 doc/classes/CPUParticles2D.xml:302
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set tangential acceleration properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用可设置切向加速度属性。"

#: doc/classes/CPUParticles.xml:325 doc/classes/CPUParticles2D.xml:305
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set damping properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置阻尼属性。"

#: doc/classes/CPUParticles.xml:328 doc/classes/CPUParticles2D.xml:308
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set angle properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置角度属性。"

#: doc/classes/CPUParticles.xml:331 doc/classes/CPUParticles2D.xml:311
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set scale properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置比例尺属性。"

#: doc/classes/CPUParticles.xml:334 doc/classes/CPUParticles2D.xml:314
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set hue variation properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用来设置色调变化属性。"

#: doc/classes/CPUParticles.xml:337 doc/classes/CPUParticles2D.xml:317
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set animation speed properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置动画速度属性。"

#: doc/classes/CPUParticles.xml:340 doc/classes/CPUParticles2D.xml:320
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_curve] to set animation offset properties."
msgstr ""
"与[method set_param],[method set_param_randomness]和[method set_param_curve]"
"一起使用以设置动画偏移属性。"

#: doc/classes/CPUParticles.xml:343 doc/classes/CPUParticles2D.xml:323
#: doc/classes/ParticlesMaterial.xml:295
msgid "Represents the size of the [enum Parameter] enum."
msgstr "表示[enum Parameter]枚举的大小。"

#: doc/classes/CPUParticles.xml:346 doc/classes/CPUParticles2D.xml:326
msgid "Use with [method set_particle_flag] to set [member flag_align_y]."
msgstr "与[method set_particle_flag]一起使用来设置[member flag_align_y]。"

#: doc/classes/CPUParticles.xml:349
msgid "Use with [method set_particle_flag] to set [member flag_rotate_y]."
msgstr "与[method set_particle_flag]一起使用来设置[member flag_rotate_y]。"

#: doc/classes/CPUParticles.xml:352
msgid "Use with [method set_particle_flag] to set [member flag_disable_z]."
msgstr "与[method set_particle_flag]一起使用来设置[member flag_disable_z]。"

#: doc/classes/CPUParticles.xml:355 doc/classes/CPUParticles2D.xml:335
#: doc/classes/GeometryInstance.xml:109 doc/classes/ParticlesMaterial.xml:307
#: doc/classes/SpatialMaterial.xml:564
msgid "Represents the size of the [enum Flags] enum."
msgstr "表示[enum Flags]枚举的大小。"

#: doc/classes/CPUParticles.xml:358 doc/classes/CPUParticles2D.xml:338
#: doc/classes/ParticlesMaterial.xml:310
msgid "All particles will be emitted from a single point."
msgstr "所有粒子将从一个点发射。"

#: doc/classes/CPUParticles.xml:361 doc/classes/ParticlesMaterial.xml:313
msgid "Particles will be emitted in the volume of a sphere."
msgstr "粒子将在球体的体积中发射。"

#: doc/classes/CPUParticles.xml:364 doc/classes/ParticlesMaterial.xml:316
msgid "Particles will be emitted in the volume of a box."
msgstr "粒子将在盒子的体积中发射。"

#: doc/classes/CPUParticles.xml:367 doc/classes/CPUParticles2D.xml:347
msgid ""
"Particles will be emitted at a position chosen randomly among [member "
"emission_points]. Particle color will be modulated by [member "
"emission_colors]."
msgstr ""
"粒子将在[member emission_points]中随机选择的位置发射。粒子颜色将通过[member "
"emission_colors]进行调制。"

#: doc/classes/CPUParticles.xml:370 doc/classes/CPUParticles2D.xml:350
msgid ""
"Particles will be emitted at a position chosen randomly among [member "
"emission_points]. Particle velocity and rotation will be set based on "
"[member emission_normals]. Particle color will be modulated by [member "
"emission_colors]."
msgstr ""
"粒子将在[member emission_points]中随机选择的位置发射。粒子的速度和旋转将基于"
"[member emission_normals]进行设置。粒子颜色将通过[member emission_colors]进行"
"调制。"

#: doc/classes/CPUParticles.xml:373 doc/classes/ParticlesMaterial.xml:325
#, fuzzy
msgid "Particles will be emitted in a ring or cylinder."
msgstr "粒子将在矩形区域内发射。"

#: doc/classes/CPUParticles.xml:376 doc/classes/CPUParticles2D.xml:353
#: doc/classes/ParticlesMaterial.xml:328
msgid "Represents the size of the [enum EmissionShape] enum."
msgstr "表示[enum EmissionShape]枚举的大小。"

#: doc/classes/CPUParticles2D.xml:4
msgid "CPU-based 2D particle emitter."
msgstr "基于CPU的2D粒子发射器。"

#: doc/classes/CPUParticles2D.xml:7
#, fuzzy
msgid ""
"CPU-based 2D particle node used to create a variety of particle systems and "
"effects.\n"
"See also [Particles2D], which provides the same functionality with hardware "
"acceleration, but may not run on older devices.\n"
"[b]Note:[/b] Unlike [Particles2D], the visibility rect is generated on-the-"
"fly and doesn't need to be configured by the user."
msgstr ""
"基于CPU的2D粒子节点,用于创建各种粒子系统和效果。\n"
"另请参见[GPUParticles2D],它提供与硬件加速相同的功能,但可能无法在较旧的设备"
"上运行。"

#: doc/classes/CPUParticles2D.xml:12 doc/classes/Particles2D.xml:14
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/2d/particle_systems_2d.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/2d/particle_systems_2d."
"html"

#: doc/classes/CPUParticles2D.xml:19
#, fuzzy
msgid ""
"Sets this node's properties to match a given [Particles2D] node with an "
"assigned [ParticlesMaterial]."
msgstr ""
"设置此节点的属性,以使给定的[GPUParticles2D]节点与分配的[ParticlesMaterial]匹"
"配。"

#: doc/classes/CPUParticles2D.xml:131
msgid ""
"Each particle's initial color. If [member texture] is defined, it will be "
"multiplied by this color."
msgstr "每个粒子的初始颜色。如果定义了[成员纹理],它将乘以该颜色。"

#: doc/classes/CPUParticles2D.xml:134
#, fuzzy
msgid ""
"Each particle's color will vary along this [Gradient] (multiplied with "
"[member color])."
msgstr "每个粒子的颜色将沿着这个[GradientTexture]变化。"

#: doc/classes/CPUParticles2D.xml:161
msgid ""
"The rectangle's extents if [member emission_shape] is set to [constant "
"EMISSION_SHAPE_RECTANGLE]."
msgstr ""
"如果[membermission_shape]设置为[constant EMISSION_SHAPE_RECTANGLE],则矩形的"
"范围。"

#: doc/classes/CPUParticles2D.xml:167
msgid ""
"The sphere's radius if [member emission_shape] is set to [constant "
"EMISSION_SHAPE_SPHERE]."
msgstr ""
"如果[membermission_shape]设置为[constant EMISSION_SHAPE_SPHERE],则球体的半"
"径。"

#: doc/classes/CPUParticles2D.xml:176 doc/classes/Particles.xml:75
#: doc/classes/Particles2D.xml:46
msgid ""
"The particle system's frame rate is fixed to a value. For instance, changing "
"the value to 2 will make the particles render at 2 frames per second. Note "
"this does not slow down the simulation of the particle system itself."
msgstr ""
"粒子系统的帧速率固定为一个值。例如,将值更改为2将使粒子以每秒2帧的速度渲染。"
"注意,这不会减慢粒子系统本身的仿真速度。"

#: doc/classes/CPUParticles2D.xml:221 doc/classes/Particles2D.xml:58
msgid ""
"Normal map to be used for the [member texture] property.\n"
"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
"See [url=http://wiki.polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
"a comparison of normal map coordinates expected by popular engines."
msgstr ""
"用于[member texture]属性的法线贴图。\n"
"[b]注意:[/b] Godot希望法线贴图使用X +,Y-和Z +坐标。请参阅[url=http://wiki."
"polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url],以比"
"较流行引擎期望的法线地图坐标。"

#: doc/classes/CPUParticles2D.xml:228
msgid ""
"Orbital velocity applied to each particle. Makes the particles circle around "
"origin. Specified in number of full rotations around origin per second."
msgstr ""
"应用于每个粒子的轨道速度。使粒子围绕原点旋转。以每秒绕原点的完整旋转数指定。"

#: doc/classes/CPUParticles2D.xml:264 doc/classes/ParticlesMaterial.xml:236
msgid ""
"Each particle's initial direction range from [code]+spread[/code] to [code]-"
"spread[/code] degrees."
msgstr ""
"每个粒子的初始方向范围为[code]+spread[/code] 到 [code]-spread[/code]度。"

#: doc/classes/CPUParticles2D.xml:276 doc/classes/Particles2D.xml:77
msgid "Particle texture. If [code]null[/code], particles will be squares."
msgstr "粒子纹理。如果[code]null[/code],则粒子将为正方形。"

#: doc/classes/CPUParticles2D.xml:329 doc/classes/CPUParticles2D.xml:332
msgid "Present for consistency with 3D particle nodes, not used in 2D."
msgstr "为了与3D粒子节点保持一致而存在,在2D中不使用。"

#: doc/classes/CPUParticles2D.xml:341
msgid ""
"Particles will be emitted on the surface of a sphere flattened to two "
"dimensions."
msgstr "粒子将在展平为二维的球体表面上发射。"

#: doc/classes/CPUParticles2D.xml:344
msgid "Particles will be emitted in the area of a rectangle."
msgstr "粒子将在矩形区域内发射。"

#: doc/classes/Crypto.xml:4
msgid "Access to advanced cryptographic functionalities."
msgstr "访问高级加密功能。"

#: doc/classes/Crypto.xml:7
msgid ""
"The Crypto class allows you to access some more advanced cryptographic "
"functionalities in Godot.\n"
"For now, this includes generating cryptographically secure random bytes, RSA "
"keys and self-signed X509 certificates generation, asymmetric key encryption/"
"decryption, and signing/verification.\n"
"[codeblock]\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())\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() == decrypted)\n"
"[/codeblock]\n"
"[b]Note:[/b] Not available in HTML5 exports."
msgstr ""
"Crypto类允许您访问Godot中的一些更高级的加密功能。\n"
"目前,这包括生成加密安全的随机字节,RSA密钥和自签名X509证书生成,非对称密钥加"
"密/解密以及签名/验证。\n"
"[codeblock]\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())\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() == decrypted)\n"
"[/codeblock]\n"
"[b]注意:[/b]在HTML5导出中不可用。"

#: doc/classes/Crypto.xml:47
msgid ""
"Compares two [PoolByteArray]s for equality without leaking timing "
"information in order to prevent timing attacks.\n"
"See [url=https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-"
"string-comparison-with-double-hmac-strategy]this blog post[/url] for more "
"information."
msgstr ""

#: doc/classes/Crypto.xml:56
#, fuzzy
msgid ""
"Decrypt the given [code]ciphertext[/code] with the provided private "
"[code]key[/code].\n"
"[b]Note:[/b] The maximum size of accepted ciphertext is limited by the key "
"size."
msgstr ""
"用提供的私有[code]key[/code]解密给定的[code]ciphertext[/code]。\n"
"[b]注[/b]:可接受的密文的最大大小受密钥大小限制。"

#: doc/classes/Crypto.xml:65
#, fuzzy
msgid ""
"Encrypt the given [code]plaintext[/code] with the provided public [code]key[/"
"code].\n"
"[b]Note:[/b] The maximum size of accepted plaintext is limited by the key "
"size."
msgstr ""
"使用提供的公共[code]key[/code]对给定的[code]plaintext[/code]进行加密。\n"
"[b]注[/b]:可接受的明文的最大大小受密钥大小限制。"

#: doc/classes/Crypto.xml:73
#, fuzzy
msgid ""
"Generates a [PoolByteArray] of cryptographically secure random bytes with "
"given [code]size[/code]."
msgstr "生成具有给定[code]size[/code]的加密安全随机字节的[PackedByteArray]。"

#: doc/classes/Crypto.xml:80
msgid ""
"Generates an RSA [CryptoKey] that can be used for creating self-signed "
"certificates and passed to [method StreamPeerSSL.accept_stream]."
msgstr ""
"生成可用于创建自签名证书并传递给[method StreamPeerSSL.accept_stream]的RSA "
"[CryptoKey]。"

#: doc/classes/Crypto.xml:90
msgid ""
"Generates a self-signed [X509Certificate] from the given [CryptoKey] and "
"[code]issuer_name[/code]. The certificate validity will be defined by "
"[code]not_before[/code] and [code]not_after[/code] (first valid date and "
"last valid date). The [code]issuer_name[/code] must contain at least \"CN="
"\" (common name, i.e. the domain name), \"O=\" (organization, i.e. your "
"company name), \"C=\" (country, i.e. 2 lettered ISO-3166 code of the country "
"the organization is based in).\n"
"A small example to generate an RSA key and a X509 self-signed certificate.\n"
"[codeblock]\n"
"var crypto = Crypto.new()\n"
"# Generate 4096 bits RSA key.\n"
"var key = crypto.generate_rsa(4096)\n"
"# Generate self-signed certificate using the given key.\n"
"var cert = crypto.generate_self_signed_certificate(key, \"CN=example.com,O=A "
"Game Company,C=IT\")\n"
"[/codeblock]"
msgstr ""
"根据给定的[CryptoKey]和[code] issuer_name [/code]生成自签名的"
"[X509Certificate]。证书的有效性将由[code] not_before [/code]和[code] "
"not_after [/code](第一个有效日期和最后一个有效日期)定义。 [code] "
"issuer_name [/code]必须至少包含“ CN =“(通用名称,即域名),“ O =”(组织,即"
"您的公司名称),“ C =“(国家,即2个字母的ISO) -3166组织所在国家/地区的代"
"码)。\n"
"一个生成RSA密钥和X509自签名证书的小示例。\n"
"[codeblock]\n"
"var crypto = Crypto.new()\n"
"# Generate 4096 bits RSA key.\n"
"var key = crypto.generate_rsa(4096)\n"
"# Generate self-signed certificate using the given key.\n"
"var cert = crypto.generate_self_signed_certificate(key, \"CN=example.com,O=A "
"Game Company,C=IT\")\n"
"[/codeblock]"

#: doc/classes/Crypto.xml:107
msgid ""
"Generates an [url=https://en.wikipedia.org/wiki/HMAC]HMAC[/url] digest of "
"[code]msg[/code] using [code]key[/code]. The [code]hash_type[/code] "
"parameter is the hashing algorithm that is used for the inner and outer "
"hashes.\n"
"Currently, only [constant HashingContext.HASH_SHA256] and [constant "
"HashingContext.HASH_SHA1] are supported."
msgstr ""

#: doc/classes/Crypto.xml:117
msgid ""
"Sign a given [code]hash[/code] of type [code]hash_type[/code] with the "
"provided private [code]key[/code]."
msgstr ""
"使用提供的私有[code]key[/code]对类型为[code] hash_type [/code]的给定的[code] "
"hash [/code]进行签名。"

#: doc/classes/Crypto.xml:127
msgid ""
"Verify that a given [code]signature[/code] for [code]hash[/code] of type "
"[code]hash_type[/code] against the provided public [code]key[/code]."
msgstr ""
"对照提供的公共[code]key[/code]验证类型为[code] hash_type [/code]的"
"[code]hash_type[/code]的给定[code]签名[/code]。"

#: doc/classes/CryptoKey.xml:4
msgid "A cryptographic key (RSA)."
msgstr "加密密钥(RSA)。"

#: doc/classes/CryptoKey.xml:7
msgid ""
"The CryptoKey class represents a cryptographic key. Keys can be loaded and "
"saved like any other [Resource].\n"
"They can be used to generate a self-signed [X509Certificate] via [method "
"Crypto.generate_self_signed_certificate] and as private key in [method "
"StreamPeerSSL.accept_stream] along with the appropriate certificate.\n"
"[b]Note:[/b] Not available in HTML5 exports."
msgstr ""
"CryptoKey类表示加密密钥。可以像其他任何[Resource]一样加载和保存键。\n"
"它们可用于通过[method Crypto.generate_self_signed_certificate]生成自签名"
"[X509Certificate],并可作为[method StreamPeerSSL.accept_stream]中的私钥以及相"
"应的证书。\n"
"[b]注意:[/b]在HTML5导出中不可用。"

#: doc/classes/CryptoKey.xml:17
msgid ""
"Return [code]true[/code] if this CryptoKey only has the public part, and not "
"the private one."
msgstr ""
"如果此CryptoKey仅具有公共部分,而没有私有部分,则返回[code] true [/code]。"

#: doc/classes/CryptoKey.xml:25
#, fuzzy
msgid ""
"Loads a key from [code]path[/code]. If [code]public_only[/code] is "
"[code]true[/code], only the public key will be loaded.\n"
"[b]Note:[/b] [code]path[/code] should be a \"*.pub\" file if "
"[code]public_only[/code] is [code]true[/code], a \"*.key\" file otherwise."
msgstr ""
"从[code]path[/code]加载密钥。如果[code] public_only [/code]为[code] true [/"
"code],则仅会加载公共密钥。\n"
"[b]注释[/b]:如果[code] public_only [/code]为[code] true [/code],则[code] "
"path [/code]应为“ * .pub”文件,否则为“ * .key”文件。"

#: doc/classes/CryptoKey.xml:34
msgid ""
"Loads a key from the given [code]string[/code]. If [code]public_only[/code] "
"is [code]true[/code], only the public key will be loaded."
msgstr ""
"从给定的[code]string[/code]加载密钥。如果[code] public_only [/code]为[code] "
"true [/code],则仅会加载公共密钥。"

#: doc/classes/CryptoKey.xml:42
#, fuzzy
msgid ""
"Saves a key to the given [code]path[/code]. If [code]public_only[/code] is "
"[code]true[/code], only the public key will be saved.\n"
"[b]Note:[/b] [code]path[/code] should be a \"*.pub\" file if "
"[code]public_only[/code] is [code]true[/code], a \"*.key\" file otherwise."
msgstr ""
"将密钥保存到给定的[code]path[/code]。如果[code] public_only [/code]为[code] "
"true [/code],则仅会保存公钥。\n"
"[b]注意[/b]:如果[code] public_only [/code]为[code] true [/code],则[code] "
"path [/code]应为“ * .pub”文件,否则为“ * .key”文件。"

#: doc/classes/CryptoKey.xml:50
msgid ""
"Returns a string containing the key in PEM format. If [code]public_only[/"
"code] is [code]true[/code], only the public key will be included."
msgstr ""
"返回包含PEM格式的密钥的字符串。如果[code] public_only [/code]为[code] true [/"
"code],则仅包含公共密钥。"

#: modules/csg/doc_classes/CSGBox.xml:4
msgid "A CSG Box shape."
msgstr "CSG框形状。"

#: modules/csg/doc_classes/CSGBox.xml:7
msgid "This node allows you to create a box for use with the CSG system."
msgstr "该节点允许您创建一个与CSG系统一起使用的盒子。"

#: modules/csg/doc_classes/CSGBox.xml:15
msgid "Depth of the box measured from the center of the box."
msgstr "框的深度从框的中心开始测量。"

#: modules/csg/doc_classes/CSGBox.xml:18
msgid "Height of the box measured from the center of the box."
msgstr "盒子的高度从盒子的中心开始测量。"

#: modules/csg/doc_classes/CSGBox.xml:21
msgid "The material used to render the box."
msgstr "用于渲染盒子的材料。"

#: modules/csg/doc_classes/CSGBox.xml:24
msgid "Width of the box measured from the center of the box."
msgstr "盒子的宽度从盒子的中心开始测量。"

#: modules/csg/doc_classes/CSGCombiner.xml:4
msgid "A CSG node that allows you to combine other CSG modifiers."
msgstr "一个CSG节点,允许您组合其他CSG修改器。"

#: modules/csg/doc_classes/CSGCombiner.xml:7
#, fuzzy
msgid ""
"For complex arrangements of shapes, it is sometimes needed to add structure "
"to your CSG nodes. The CSGCombiner node allows you to create this structure. "
"The node encapsulates the result of the CSG operations of its children. In "
"this way, it is possible to do operations on one set of shapes that are "
"children of one CSGCombiner node, and a set of separate operations on a "
"second set of shapes that are children of a second CSGCombiner node, and "
"then do an operation that takes the two end results as its input to create "
"the final shape."
msgstr ""
"对于复杂的形状排列,有时需要将结构添加到CSG节点。 CSGCombiner3D节点允许您创建"
"此结构。节点封装其子节点的CSG操作结果。以此方式,可以对作为一个CSGCombiner3D"
"节点的子代的一组形状进行操作,对作为第二CSGCombiner3D节点的子代的第二组形状进"
"行一组单独操作,然后进行以下操作:将两个最终结果作为输入以创建最终形状。"

#: modules/csg/doc_classes/CSGCylinder.xml:4
msgid "A CSG Cylinder shape."
msgstr "CSG圆柱形状。"

#: modules/csg/doc_classes/CSGCylinder.xml:7
msgid ""
"This node allows you to create a cylinder (or cone) for use with the CSG "
"system."
msgstr "该节点允许您创建用于CSG系统的圆柱(或圆锥体)。"

#: modules/csg/doc_classes/CSGCylinder.xml:15
msgid ""
"If [code]true[/code] a cone is created, the [member radius] will only apply "
"to one side."
msgstr "如果创建了[code] true [/code]圆锥,则[member radius]将仅应用于一侧。"

#: modules/csg/doc_classes/CSGCylinder.xml:18
msgid "The height of the cylinder."
msgstr "圆柱体的高度。"

#: modules/csg/doc_classes/CSGCylinder.xml:21
msgid "The material used to render the cylinder."
msgstr "用于渲染圆柱体的材料。"

#: modules/csg/doc_classes/CSGCylinder.xml:24
msgid "The radius of the cylinder."
msgstr "圆柱体的半径。"

#: modules/csg/doc_classes/CSGCylinder.xml:27
msgid ""
"The number of sides of the cylinder, the higher this number the more detail "
"there will be in the cylinder."
msgstr "圆柱体的边数越多,圆柱体的细节越多。"

#: modules/csg/doc_classes/CSGCylinder.xml:30
msgid ""
"If [code]true[/code] the normals of the cylinder are set to give a smooth "
"effect making the cylinder seem rounded. If [code]false[/code] the cylinder "
"will have a flat shaded look."
msgstr ""
"如果[code] true [/code],则将圆柱体的法线设置为具有平滑效果,使圆柱体看起来是"
"圆形的。如果[code]false[/code],则圆柱体将具有平坦的阴影外观。"

#: modules/csg/doc_classes/CSGMesh.xml:4
msgid "A CSG Mesh shape that uses a mesh resource."
msgstr "使用网格资源的CSG网格形状。"

#: modules/csg/doc_classes/CSGMesh.xml:7
msgid ""
"This CSG node allows you to use any mesh resource as a CSG shape, provided "
"it is closed, does not self-intersect, does not contain internal faces and "
"has no edges that connect to more then two faces."
msgstr ""
"此CSG节点允许您将任何网格资源用作CSG形状,只要它是封闭的,不自相交,不包含内"
"部面并且没有连接到两个以上面的边即可。"

#: modules/csg/doc_classes/CSGMesh.xml:15
msgid "The [Material] used in drawing the CSG shape."
msgstr "用于绘制CSG形状的[Material]。"

#: modules/csg/doc_classes/CSGMesh.xml:18
msgid ""
"The [Mesh] resource to use as a CSG shape.\n"
"[b]Note:[/b] When using an [ArrayMesh], avoid meshes with vertex normals "
"unless a flat shader is required. By default, CSGMesh will ignore the mesh's "
"vertex normals and use a smooth shader calculated using the faces' normals. "
"If a flat shader is required, ensure that all faces' vertex normals are "
"parallel."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:4
msgid "Extrudes a 2D polygon shape to create a 3D mesh."
msgstr "拉伸2D多边形形状以创建3D网格。"

#: modules/csg/doc_classes/CSGPolygon.xml:7
msgid ""
"An array of 2D points is extruded to quickly and easily create a variety of "
"3D meshes."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:15
#, fuzzy
msgid ""
"When [member mode] is [constant MODE_DEPTH], the depth of the extrusion."
msgstr "[member mode]为[constant MODE_DEPTH]时的挤出深度。"

#: modules/csg/doc_classes/CSGPolygon.xml:18
msgid ""
"Material to use for the resulting mesh. The UV maps the top half of the "
"material to the extruded shape (U along the the length of the extrusions and "
"V around the outline of the [member polygon]), the bottom-left quarter to "
"the front end face, and the bottom-right quarter to the back end face."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:21
msgid "The [member mode] used to extrude the [member polygon]."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:24
msgid ""
"When [member mode] is [constant MODE_PATH], by default, the top half of the "
"[member material] is stretched along the entire length of the extruded "
"shape. If [code]false[/code] the top half of the material is repeated every "
"step of the extrusion."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:27
msgid ""
"When [member mode] is [constant MODE_PATH], the path interval or ratio of "
"path points to extrusions."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:30
msgid ""
"When [member mode] is [constant MODE_PATH], this will determine if the "
"interval should be by distance ([constant PATH_INTERVAL_DISTANCE]) or "
"subdivision fractions ([constant PATH_INTERVAL_SUBDIVIDE])."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:33
msgid ""
"When [member mode] is [constant MODE_PATH], if [code]true[/code] the ends of "
"the path are joined, by adding an extrusion between the last and first "
"points of the path."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:36
msgid ""
"When [member mode] is [constant MODE_PATH], if [code]true[/code] the "
"[Transform] of the [CSGPolygon] is used as the starting point for the "
"extrusions, not the [Transform] of the [member path_node]."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:39
msgid ""
"When [member mode] is [constant MODE_PATH], the location of the [Path] "
"object used to extrude the [member polygon]."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:42
msgid ""
"When [member mode] is [constant MODE_PATH], the [enum PathRotation] method "
"used to rotate the [member polygon] as it is extruded."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:45
msgid ""
"When [member mode] is [constant MODE_PATH], extrusions that are less than "
"this angle, will be merged together to reduce polygon count."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:48
msgid ""
"When [member mode] is [constant MODE_PATH], this is the distance along the "
"path, in meters, the texture coordinates will tile. When set to 0, texture "
"coordinates will match geometry exactly with no tiling."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:51
#, fuzzy
msgid "The point array that defines the 2D polygon that is extruded."
msgstr "点数组定义了我们将要拉伸的形状。"

#: modules/csg/doc_classes/CSGPolygon.xml:54
#, fuzzy
msgid "If [code]true[/code], applies smooth shading to the extrusions."
msgstr "如果[code]true[/code],隐藏指定索引的行。"

#: modules/csg/doc_classes/CSGPolygon.xml:57
msgid ""
"When [member mode] is [constant MODE_SPIN], the total number of degrees the "
"[member polygon] is rotated when extruding."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:60
#, fuzzy
msgid ""
"When [member mode] is [constant MODE_SPIN], the number of extrusions made."
msgstr "[member mode]为[constant MODE_SPIN]时的挤出次数。"

#: modules/csg/doc_classes/CSGPolygon.xml:65
msgid "The [member polygon] shape is extruded along the negative Z axis."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:68
#, fuzzy
msgid ""
"The [member polygon] shape is extruded by rotating it around the Y axis."
msgstr "通过绕轴旋转Shape3D可以将其拉伸。"

#: modules/csg/doc_classes/CSGPolygon.xml:71
#, fuzzy
msgid ""
"The [member polygon] shape is extruded along the [Path] specified in [member "
"path_node]."
msgstr "Shape3D沿由[member path_node]中设置的[Shape3D]设置的路径拉伸。"

#: modules/csg/doc_classes/CSGPolygon.xml:74
msgid ""
"The [member polygon] shape is not rotated.\n"
"[b]Note:[/b] Requires the path's Z coordinates to continually decrease to "
"ensure viable shapes."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:78
msgid ""
"The [member polygon] shape is rotated along the path, but it is not rotated "
"around the path axis.\n"
"[b]Note:[/b] Requires the path's Z coordinates to continually decrease to "
"ensure viable shapes."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:82
#, fuzzy
msgid ""
"The [member polygon] shape follows the path and its rotations around the "
"path axis."
msgstr "绕X轴旋转时所能产生的最大力。"

#: modules/csg/doc_classes/CSGPolygon.xml:85
msgid ""
"When [member mode] is set to [constant MODE_PATH], [member path_interval] "
"will determine the distance, in meters, each interval of the path will "
"extrude."
msgstr ""

#: modules/csg/doc_classes/CSGPolygon.xml:88
msgid ""
"When [member mode] is set to [constant MODE_PATH], [member path_interval] "
"will subdivide the polygons along the path."
msgstr ""

#: modules/csg/doc_classes/CSGPrimitive.xml:4
msgid "Base class for CSG primitives."
msgstr "CSG基元的基类。"

#: modules/csg/doc_classes/CSGPrimitive.xml:7
msgid ""
"Parent class for various CSG primitives. It contains code and functionality "
"that is common between them. It cannot be used directly. Instead use one of "
"the various classes that inherit from it."
msgstr ""
"各种CSG原语的父类。它包含它们之间通用的代码和功能。不能直接使用。而是使用从其"
"继承的各种类之一。"

#: modules/csg/doc_classes/CSGPrimitive.xml:15
msgid "Invert the faces of the mesh."
msgstr "反转网格的面。"

#: modules/csg/doc_classes/CSGShape.xml:4
msgid "The CSG base class."
msgstr "CSG基类。"

#: modules/csg/doc_classes/CSGShape.xml:7
msgid ""
"This is the CSG base class that provides CSG operation support to the "
"various CSG nodes in Godot."
msgstr "这是CSG基类,可为Godot中的各个CSG节点提供CSG操作支持。"

#: modules/csg/doc_classes/CSGShape.xml:16
#: modules/csg/doc_classes/CSGShape.xml:23 doc/classes/RayCast2D.xml:60
#: doc/classes/SoftBody.xml:30 doc/classes/SoftBody.xml:37
msgid "Returns an individual bit on the collision mask."
msgstr "返回碰撞遮罩上的单个的个体。"

#: modules/csg/doc_classes/CSGShape.xml:29
msgid ""
"Returns an [Array] with two elements, the first is the [Transform] of this "
"node and the second is the root [Mesh] of this node. Only works when this "
"node is the root shape."
msgstr ""
"返回带有两个元素的[Array],第一个是此节点的[Transform],第二个是此节点的根"
"[Mesh]。仅当此节点为根形时才有效。"

#: modules/csg/doc_classes/CSGShape.xml:35
msgid ""
"Returns [code]true[/code] if this is a root shape and is thus the object "
"that is rendered."
msgstr "如果这是根形状,因此是渲染的对象,则返回[code] true [/code]。"

#: modules/csg/doc_classes/CSGShape.xml:43 doc/classes/SoftBody.xml:66
msgid ""
"Sets individual bits on the layer mask. Use this if you only need to change "
"one layer's value."
msgstr "设置图层掩码上的各个位。如果只需要更改一层的值,请使用此选项。"

#: modules/csg/doc_classes/CSGShape.xml:51 doc/classes/SoftBody.xml:74
msgid ""
"Sets individual bits on the collision mask. Use this if you only need to "
"change one layer's value."
msgstr "设置碰撞掩码上的各个位。如果只需要更改一层的值,请使用此选项。"

#: modules/csg/doc_classes/CSGShape.xml:57
msgid ""
"Calculate tangents for the CSG shape which allows the use of normal maps. "
"This is only applied on the root shape, this setting is ignored on any child."
msgstr ""
"计算允许使用法线贴图的CSG形状的切线。这仅适用于根部形状,此设置将在所有子级上"
"均被忽略。"

#: modules/csg/doc_classes/CSGShape.xml:60
#, fuzzy
msgid ""
"The physics layers this area is in.\n"
"Collidable objects can exist in any of 32 different layers. These layers "
"work like a tagging system, and are not visual. A collidable can use these "
"layers to select with which objects it can collide, using the collision_mask "
"property.\n"
"A contact is detected if object A is in any of the layers that object B "
"scans, or object B is in any layer scanned by object A. See [url=https://"
"docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction."
"html#collision-layers-and-masks]Collision layers and masks[/url] in the "
"documentation for more information."
msgstr ""
"这个区域所处的物理层。\n"
"可碰撞的物体可以存在于32个不同的层中的任何一个。这些层的工作方式就像一个标签"
"系统,而不是可视化的。一个可碰撞对象可以使用这些层来选择它可以与哪些对象碰"
"撞,使用 collision_mask 属性。\n"
"如果对象A在对象B扫描的任何一个图层中,或者对象B在对象A扫描的任何一个图层中,"
"那么就会检测到一个接触。"

#: modules/csg/doc_classes/CSGShape.xml:65
msgid ""
"The physics layers this CSG shape scans for collisions. See [url=https://"
"docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction."
"html#collision-layers-and-masks]Collision layers and masks[/url] in the "
"documentation for more information."
msgstr ""

#: modules/csg/doc_classes/CSGShape.xml:68
msgid ""
"The operation that is performed on this shape. This is ignored for the first "
"CSG child node as the operation is between this node and the previous child "
"of this nodes parent."
msgstr ""
"在此形状上执行的操作。对于第一个CSG子节点,将忽略此操作,因为操作是在此节点与"
"该节点父级的上一个子级之间进行的。"

#: modules/csg/doc_classes/CSGShape.xml:71
msgid ""
"Snap makes the mesh snap to a given distance so that the faces of two meshes "
"can be perfectly aligned. A lower value results in greater precision but may "
"be harder to adjust."
msgstr ""
"捕捉使网格捕捉到给定的距离,以便两个网格的面可以完美对齐。较低的值会导致较高"
"的精度,但可能难以调整。"

#: modules/csg/doc_classes/CSGShape.xml:74
msgid ""
"Adds a collision shape to the physics engine for our CSG shape. This will "
"always act like a static body. Note that the collision shape is still active "
"even if the CSG shape itself is hidden."
msgstr ""
"为我们的CSG形状向物理引擎添加碰撞形状。这将始终像一个静态物体。请注意,即使"
"CSG形状本身被隐藏,碰撞形状仍处于活动状态。"

#: modules/csg/doc_classes/CSGShape.xml:79
msgid ""
"Geometry of both primitives is merged, intersecting geometry is removed."
msgstr "合并两个图元的几何,删除相交的几何。"

#: modules/csg/doc_classes/CSGShape.xml:82
msgid "Only intersecting geometry remains, the rest is removed."
msgstr "仅保留相交的几何,其余的将被删除。"

#: modules/csg/doc_classes/CSGShape.xml:85
msgid ""
"The second shape is subtracted from the first, leaving a dent with its shape."
msgstr "从第一个形状减去第二个形状,留下一个带有其形状的凹痕。"

#: modules/csg/doc_classes/CSGSphere.xml:4
msgid "A CSG Sphere shape."
msgstr "CSG球形形状。"

#: modules/csg/doc_classes/CSGSphere.xml:7
msgid "This node allows you to create a sphere for use with the CSG system."
msgstr "该节点允许您创建一个供CSG系统使用的球体。"

#: modules/csg/doc_classes/CSGSphere.xml:15
msgid "The material used to render the sphere."
msgstr "用于渲染球体的材料。"

#: modules/csg/doc_classes/CSGSphere.xml:18
msgid "Number of vertical slices for the sphere."
msgstr "球体的垂直切片数。"

#: modules/csg/doc_classes/CSGSphere.xml:21
msgid "Radius of the sphere."
msgstr "球体的半径。"

#: modules/csg/doc_classes/CSGSphere.xml:24
msgid "Number of horizontal slices for the sphere."
msgstr "球体的水平切片数。"

#: modules/csg/doc_classes/CSGSphere.xml:27
msgid ""
"If [code]true[/code] the normals of the sphere are set to give a smooth "
"effect making the sphere seem rounded. If [code]false[/code] the sphere will "
"have a flat shaded look."
msgstr ""
"如果[code] true [/code],则将圆柱体的法线设置为具有平滑效果,使圆柱体看起来是"
"圆形的。如果[code]false[/code],则圆柱体将具有平坦的阴影外观。"

#: modules/csg/doc_classes/CSGTorus.xml:4
msgid "A CSG Torus shape."
msgstr "CSG圆环形状。"

#: modules/csg/doc_classes/CSGTorus.xml:7
msgid "This node allows you to create a torus for use with the CSG system."
msgstr "该节点允许您创建用于CSG系统的环面。"

#: modules/csg/doc_classes/CSGTorus.xml:15
msgid "The inner radius of the torus."
msgstr "圆环的内半径。"

#: modules/csg/doc_classes/CSGTorus.xml:18
msgid "The material used to render the torus."
msgstr "用于渲染圆环的材料。"

#: modules/csg/doc_classes/CSGTorus.xml:21
msgid "The outer radius of the torus."
msgstr "圆环的外半径。"

#: modules/csg/doc_classes/CSGTorus.xml:24
msgid "The number of edges each ring of the torus is constructed of."
msgstr "构造每个圆环的边缘的数量。"

#: modules/csg/doc_classes/CSGTorus.xml:27
msgid "The number of slices the torus is constructed of."
msgstr "构成圆环的切片数。"

#: modules/csg/doc_classes/CSGTorus.xml:30
msgid ""
"If [code]true[/code] the normals of the torus are set to give a smooth "
"effect making the torus seem rounded. If [code]false[/code] the torus will "
"have a flat shaded look."
msgstr ""
"如果[code] true [/code]设置圆环的法线以提供平滑效果,则使圆环看起来是圆形的。"
"如果[code]false[/code],则圆环将具有平坦的阴影外观。"

#: modules/mono/doc_classes/CSharpScript.xml:4
msgid ""
"A script implemented in the C# programming language (Mono-enabled builds "
"only)."
msgstr "用C#编程语言实现的脚本(仅启用Mono的版本)。"

#: modules/mono/doc_classes/CSharpScript.xml:7
msgid ""
"This class represents a C# script. It is the C# equivalent of the [GDScript] "
"class and is only available in Mono-enabled Godot builds.\n"
"See also [GodotSharp]."
msgstr ""
"此类表示C#脚本。它与[GDScript]类的C#等效,并且仅在启用了Mono的Godot版本中可"
"用。\n"
"另请参见[GodotSharp]。"

#: modules/mono/doc_classes/CSharpScript.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/c_sharp/index."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/scripting/c_sharp/"
"index.html"

#: modules/mono/doc_classes/CSharpScript.xml:18
#: modules/gdnative/doc_classes/PluginScript.xml:13
msgid "Returns a new instance of the script."
msgstr "返回脚本的新实例。"

#: doc/classes/CubeMap.xml:4
msgid "A CubeMap is a 6-sided 3D texture."
msgstr ""

#: doc/classes/CubeMap.xml:7
msgid ""
"A 6-sided 3D texture typically used for faking reflections. It can be used "
"to make an object look as if it's reflecting its surroundings. This usually "
"delivers much better performance than other reflection methods."
msgstr ""

#: doc/classes/CubeMap.xml:15
#, fuzzy
msgid "Returns the [CubeMap]'s height."
msgstr "返回图像的高度。"

#: doc/classes/CubeMap.xml:22
#, fuzzy
msgid ""
"Returns an [Image] for a side of the [CubeMap] using one of the [enum Side] "
"constants."
msgstr "使用[enum BodyMode]常量之一设置body模式。"

#: doc/classes/CubeMap.xml:28
#, fuzzy
msgid "Returns the [CubeMap]'s width."
msgstr "返回图像的宽度。"

#: doc/classes/CubeMap.xml:36
#, fuzzy
msgid ""
"Sets an [Image] for a side of the [CubeMap] using one of the [enum Side] "
"constants."
msgstr "使用[enum BodyMode]常量之一设置body模式。"

#: doc/classes/CubeMap.xml:42
#, fuzzy
msgid ""
"The render flags for the [CubeMap]. See the [enum Flags] constants for "
"details."
msgstr ""
"选项卡容器中所有选项卡的对齐方式。有关详细信息,请参阅 [enum TabAlign] 常量。"

#: doc/classes/CubeMap.xml:45
msgid ""
"The lossy storage quality of the [CubeMap] if the storage mode is set to "
"[constant STORAGE_COMPRESS_LOSSY]."
msgstr ""

#: doc/classes/CubeMap.xml:48
#, fuzzy
msgid "The [CubeMap]'s storage mode. See [enum Storage] constants."
msgstr "Camera2D的锚点。参见[enum AnchorMode]常量。"

#: doc/classes/CubeMap.xml:53
msgid "Store the [CubeMap] without any compression."
msgstr ""

#: doc/classes/CubeMap.xml:56
msgid "Store the [CubeMap] with strong compression that reduces image quality."
msgstr ""

#: doc/classes/CubeMap.xml:59
msgid ""
"Store the [CubeMap] with moderate compression that doesn't reduce image "
"quality."
msgstr ""

#: doc/classes/CubeMap.xml:62
#, fuzzy
msgid "Identifier for the left face of the [CubeMap]."
msgstr "反转网格的面。"

#: doc/classes/CubeMap.xml:65
#, fuzzy
msgid "Identifier for the right face of the [CubeMap]."
msgstr "反转网格的面。"

#: doc/classes/CubeMap.xml:68
msgid "Identifier for the bottom face of the [CubeMap]."
msgstr ""

#: doc/classes/CubeMap.xml:71
#, fuzzy
msgid "Identifier for the top face of the [CubeMap]."
msgstr "反转网格的面。"

#: doc/classes/CubeMap.xml:74
#, fuzzy
msgid "Identifier for the front face of the [CubeMap]."
msgstr "反转网格的面。"

#: doc/classes/CubeMap.xml:77
#, fuzzy
msgid "Identifier for the back face of the [CubeMap]."
msgstr "反转网格的面。"

#: doc/classes/CubeMap.xml:80
msgid "Generate mipmaps, to enable smooth zooming out of the texture."
msgstr ""

#: doc/classes/CubeMap.xml:83
msgid "Repeat (instead of clamp to edge)."
msgstr ""

#: doc/classes/CubeMap.xml:86
msgid "Turn on magnifying filter, to enable smooth zooming in of the texture."
msgstr ""

#: doc/classes/CubeMap.xml:89
msgid "Default flags. Generate mipmaps, repeat, and filter are enabled."
msgstr ""

#: doc/classes/CubeMesh.xml:4
msgid "Generate an axis-aligned cuboid [PrimitiveMesh]."
msgstr "生成与轴对齐的长方体[PrimitiveMesh]。"

#: doc/classes/CubeMesh.xml:7
#, fuzzy
msgid ""
"Generate an axis-aligned cuboid [PrimitiveMesh].\n"
"The cube's UV layout is arranged in a 3×2 layout that allows texturing each "
"face individually. To apply the same texture on all faces, change the "
"material's UV property to [code]Vector3(3, 2, 1)[/code].\n"
"[b]Note:[/b] When using a large textured [CubeMesh] (e.g. as a floor), you "
"may stumble upon UV jittering issues depending on the camera angle. To solve "
"this, increase [member subdivide_depth], [member subdivide_height] and "
"[member subdivide_width] until you no longer notice UV jittering."
msgstr ""
"生成与轴对齐的长方体[PrimitiveMesh]。\n"
"多维数据集的UV布局以3×2布局进行排列,从而可以分别纹理化每个面。要在所有面上应"
"用相同的纹理,请将材质的UV属性更改为[code] Vector3(3,2,1)[/code]。"

#: doc/classes/CubeMesh.xml:17
msgid "Size of the cuboid mesh."
msgstr "长方体网格的大小。"

#: doc/classes/CubeMesh.xml:20
msgid "Number of extra edge loops inserted along the Z axis."
msgstr "沿Z轴插入的额外边缘环的数量。"

#: doc/classes/CubeMesh.xml:23
msgid "Number of extra edge loops inserted along the Y axis."
msgstr "沿Y轴插入的额外边缘环的数量。"

#: doc/classes/CubeMesh.xml:26
msgid "Number of extra edge loops inserted along the X axis."
msgstr "沿X轴插入的额外边缘环的数量。"

#: doc/classes/CullInstance.xml:4
msgid "Parent of all nodes that can be culled by the Portal system."
msgstr ""

#: doc/classes/CullInstance.xml:7
msgid ""
"Provides common functionality to nodes that can be culled by the [Portal] "
"system.\n"
"[code]Static[/code] and [code]Dynamic[/code] objects are the most "
"efficiently managed objects in the system, but there are some caveats. They "
"are expected to be present initially when [Room]s are converted using the "
"[RoomManager] [code]rooms_convert[/code] function, and their lifetime should "
"be the same as the game level (i.e. present until you call "
"[code]rooms_clear[/code] on the [RoomManager]. Although you shouldn't "
"create / delete these objects during gameplay, you can manage their "
"visibility with the standard [code]hide[/code] and [code]show[/code] "
"commands.\n"
"[code]Roaming[/code] objects on the other hand, require extra processing to "
"keep track of which [Room] they are within. This enables them to be culled "
"effectively, wherever they are.\n"
"[code]Global[/code] objects are not culled by the portal system, and use "
"view frustum culling only.\n"
"Objects that are not [code]Static[/code] or [code]Dynamic[/code] can be "
"freely created and deleted during the lifetime of the game level."
msgstr ""

#: doc/classes/CullInstance.xml:19
msgid ""
"When set to [code]0[/code], [CullInstance]s will be autoplaced in the [Room] "
"with the highest priority.\n"
"When set to a value other than [code]0[/code], the system will attempt to "
"autoplace in a [Room] with the [code]autoplace_priority[/code], if it is "
"present.\n"
"This can be used to control autoplacement of building exteriors in an outer "
"[RoomGroup]."
msgstr ""

#: doc/classes/CullInstance.xml:24
msgid ""
"When a manual bound has not been explicitly specified for a [Room], the "
"convex hull bound will be estimated from the geometry of the objects within "
"the room. This setting determines whether the geometry of an object is "
"included in this estimate of the room bound.\n"
"[b]Note:[/b] This setting is only relevant when the object is set to "
"[code]PORTAL_MODE_STATIC[/code] or [code]PORTAL_MODE_DYNAMIC[/code], and for "
"[Portal]s."
msgstr ""

#: doc/classes/CullInstance.xml:28
msgid ""
"When using [Room]s and [Portal]s, this specifies how the [CullInstance] is "
"processed in the system."
msgstr ""

#: doc/classes/CullInstance.xml:33
msgid ""
"Use for instances within [Room]s that will [b]not move[/b] - e.g. walls, "
"floors.\n"
"[b]Note:[/b] If you attempt to delete a [code]PORTAL_MODE_STATIC[/code] "
"instance while the room graph is loaded (converted), it will unload the room "
"graph and deactivate portal culling. This is because the [b]room graph[/b] "
"data has been invalidated. You will need to reconvert the rooms using the "
"[RoomManager] to activate the system again."
msgstr ""

#: doc/classes/CullInstance.xml:37
msgid ""
"Use for instances within rooms that will move but [b]not change room[/b] - e."
"g. moving platforms.\n"
"[b]Note:[/b] If you attempt to delete a [code]PORTAL_MODE_DYNAMIC[/code] "
"instance while the room graph is loaded (converted), it will unload the room "
"graph and deactivate portal culling. This is because the [b]room graph[/b] "
"data has been invalidated. You will need to reconvert the rooms using the "
"[RoomManager] to activate the system again."
msgstr ""

#: doc/classes/CullInstance.xml:41
msgid "Use for instances that will move [b]between[/b] [Room]s - e.g. players."
msgstr ""

#: doc/classes/CullInstance.xml:44
msgid ""
"Use for instances that will be frustum culled only - e.g. first person "
"weapon, debug."
msgstr ""

#: doc/classes/CullInstance.xml:47
msgid ""
"Use for instances that will not be shown at all - e.g. [b]manual room "
"bounds[/b] (specified by prefix [i]'Bound_'[/i])."
msgstr ""

#: doc/classes/Curve.xml:4
msgid "A mathematic curve."
msgstr "一条数学曲线。"

#: doc/classes/Curve.xml:7
msgid ""
"A curve that can be saved and re-used for other objects. By default, it "
"ranges between [code]0[/code] and [code]1[/code] on the Y axis and positions "
"points relative to the [code]0.5[/code] Y position."
msgstr ""
"可以保存并重新用于其他对象的曲线。默认情况下,它在Y轴上的范围在[code] 0 [/"
"code]和[code] 1 [/code]之间,并且位置点相对于[code] 0.5 [/code] Y位置。"

#: doc/classes/Curve.xml:20
msgid ""
"Adds a point to the curve. For each side, if the [code]*_mode[/code] is "
"[constant TANGENT_LINEAR], the [code]*_tangent[/code] angle (in degrees) "
"uses the slope of the curve halfway to the adjacent point. Allows custom "
"assignments to the [code]*_tangent[/code] angle if [code]*_mode[/code] is "
"set to [constant TANGENT_FREE]."
msgstr ""
"在曲线上添加一个点。对于每一侧,如果[code] * _ mode [/code]为[constant "
"TANGENT_LINEAR],则[code] * _ tangent [/code]角度(以度为单位)将使用曲线到邻"
"近点的一半的斜率。如果[code] * _ mode [/code]设置为[constant TANGENT_FREE],"
"则允许自定义分配给[code] * _ tangent [/code]角度。"

#: doc/classes/Curve.xml:26
msgid "Recomputes the baked cache of points for the curve."
msgstr "重新计算曲线的烘焙点缓存。"

#: doc/classes/Curve.xml:32
msgid ""
"Removes points that are closer than [code]CMP_EPSILON[/code] (0.00001) units "
"to their neighbor on the curve."
msgstr ""
"删除比曲线上的相邻点近[code] CMP_EPSILON [/code](0.00001)个单位的点。"

#: doc/classes/Curve.xml:38 doc/classes/Curve2D.xml:27
#: doc/classes/Curve3D.xml:27
msgid "Removes all points from the curve."
msgstr "从曲线中删除所有点。"

#: doc/classes/Curve.xml:44 doc/classes/Curve2D.xml:61
#: doc/classes/Curve3D.xml:74
msgid "Returns the number of points describing the curve."
msgstr "返回描述曲线的点数。"

#: doc/classes/Curve.xml:51
msgid ""
"Returns the left [enum TangentMode] for the point at [code]index[/code]."
msgstr "返回[code] index [/code]处的点的左侧[enum TangentMode]。"

#: doc/classes/Curve.xml:58
msgid ""
"Returns the left tangent angle (in degrees) for the point at [code]index[/"
"code]."
msgstr "返回[code] index [/code]处的点的左切线角(以度为单位)。"

#: doc/classes/Curve.xml:65
msgid "Returns the curve coordinates for the point at [code]index[/code]."
msgstr "返回[code] index [/code]处该点的曲线坐标。"

#: doc/classes/Curve.xml:72
msgid ""
"Returns the right [enum TangentMode] for the point at [code]index[/code]."
msgstr "返回在[code] index [/code]处的点的右[enum TangentMode]。"

#: doc/classes/Curve.xml:79
msgid ""
"Returns the right tangent angle (in degrees) for the point at [code]index[/"
"code]."
msgstr "返回[code] index [/code]处的点的左切线角(以度为单位)。"

#: doc/classes/Curve.xml:86
msgid ""
"Returns the Y value for the point that would exist at the X position "
"[code]offset[/code] along the curve."
msgstr "返回沿曲线的X位置[code]offset[/code]处将存在的点的Y值。"

#: doc/classes/Curve.xml:93
msgid ""
"Returns the Y value for the point that would exist at the X position "
"[code]offset[/code] along the curve using the baked cache. Bakes the curve's "
"points if not already baked."
msgstr ""
"使用烘焙的缓存返回沿曲线的X位置[code] offset [/code]处将存在的点的Y值。如果尚"
"未烘焙曲线的点,则将其烘焙。"

#: doc/classes/Curve.xml:100
msgid "Removes the point at [code]index[/code] from the curve."
msgstr "从曲线中删除[code] index [/code]处的点。"

#: doc/classes/Curve.xml:108
msgid ""
"Sets the left [enum TangentMode] for the point at [code]index[/code] to "
"[code]mode[/code]."
msgstr ""
"将[code]index[/code]处的点的左侧[enum TangentMode]设置为[code] mode [/code]。"

#: doc/classes/Curve.xml:116
msgid ""
"Sets the left tangent angle for the point at [code]index[/code] to "
"[code]tangent[/code]."
msgstr "将点的左切线角度设置为 [code]index [/code] 至 [code]tangent [/code]。"

#: doc/classes/Curve.xml:124
msgid "Sets the offset from [code]0.5[/code]."
msgstr "设置相对于[code] 0.5 [/code]的偏移量。"

#: doc/classes/Curve.xml:132
msgid ""
"Sets the right [enum TangentMode] for the point at [code]index[/code] to "
"[code]mode[/code]."
msgstr ""
"将[code]index[/code]上的点的右侧[enum TangentMode]设置为[code] mode [/code]。"

#: doc/classes/Curve.xml:140
msgid ""
"Sets the right tangent angle for the point at [code]index[/code] to "
"[code]tangent[/code]."
msgstr "设置[code]index[/code]至[code]tangent[/code]处的点的右切线角。"

#: doc/classes/Curve.xml:148
msgid ""
"Assigns the vertical position [code]y[/code] to the point at [code]index[/"
"code]."
msgstr "将垂直位置[code] y [/code]分配给[code] index [/code]处的点。"

#: doc/classes/Curve.xml:154
msgid "The number of points to include in the baked (i.e. cached) curve data."
msgstr "烘焙(即缓存)曲线数据中包含的点的数量。"

#: doc/classes/Curve.xml:157
msgid "The maximum value the curve can reach."
msgstr "曲线能达到的最大值。"

#: doc/classes/Curve.xml:160
msgid "The minimum value the curve can reach."
msgstr "曲线能达到的最小值。"

#: doc/classes/Curve.xml:166
msgid "Emitted when [member max_value] or [member min_value] is changed."
msgstr "更改[成员的最大值]或[成员的最小值]时发出。"

#: doc/classes/Curve.xml:172
msgid "The tangent on this side of the point is user-defined."
msgstr "点这边的切线是用户自定义的。"

#: doc/classes/Curve.xml:175
msgid ""
"The curve calculates the tangent on this side of the point as the slope "
"halfway towards the adjacent point."
msgstr "曲线计算点的这一侧的切线,作为向相邻点的一半的斜率。"

#: doc/classes/Curve.xml:178
msgid "The total number of available tangent modes."
msgstr "可用切线模式的总数。"

#: doc/classes/Curve2D.xml:4
msgid "Describes a Bézier curve in 2D space."
msgstr "描述二维空间的贝兹尔曲线。"

#: doc/classes/Curve2D.xml:7
msgid ""
"This class describes a Bézier curve in 2D space. It is mainly used to give a "
"shape to a [Path2D], but can be manually sampled for other purposes.\n"
"It keeps a cache of precalculated points along the curve, to speed up "
"further calculations."
msgstr ""
"该类描述了二维空间中的贝兹尔曲线。它主要用于给[Path2D]一个形状,但也可以手动"
"采样用于其他目的。\n"
"它保留了沿曲线的预计算点的缓存,以加快进一步的计算。"

#: doc/classes/Curve2D.xml:20 doc/classes/Curve3D.xml:20
msgid ""
"Adds a point to a curve at [code]position[/code], with control points "
"[code]in[/code] and [code]out[/code].\n"
"If [code]at_position[/code] is given, the point is inserted before the point "
"number [code]at_position[/code], moving that point (and every point after) "
"after the inserted point. If [code]at_position[/code] is not given, or is an "
"illegal value ([code]at_position <0[/code] or [code]at_position >= [method "
"get_point_count][/code]), the point will be appended at the end of the point "
"list."
msgstr ""
"在曲线的 [code] position[/code] 上添加一个点,控制点 [code] in[/code] 和 "
"[code] out[/code]。\n"
"如果给定了 [code]at_position[/code],这个点会被插入到点号 [code]at_position[/"
"code] 之前,并将这个点(以及之后的每一个点)移到被插入点之后。如果"
"[code]at_position[/code]没有给定,或者是一个非法值([code]at_position <0[/"
"code]或[code]at_position >= [method get_point_count][/code]),该点将被追加在"
"点列表的最后。"

#: doc/classes/Curve2D.xml:33 doc/classes/Curve3D.xml:33
msgid ""
"Returns the total length of the curve, based on the cached points. Given "
"enough density (see [member bake_interval]), it should be approximate enough."
msgstr ""
"根据缓存的点,返回曲线的总长度。给予足够的密度(参见[member bake_interval]),"
"它应该是足够近似的。"

#: doc/classes/Curve2D.xml:39
#, fuzzy
msgid "Returns the cache of points as a [PoolVector2Array]."
msgstr "以[PackedVector2Array]的形式返回点的缓存。"

#: doc/classes/Curve2D.xml:46
msgid ""
"Returns the closest offset to [code]to_point[/code]. This offset is meant to "
"be used in [method interpolate_baked].\n"
"[code]to_point[/code] must be in this curve's local space."
msgstr ""
"返回与 [code]to_point[/code] 最近的偏移量。这个偏移量在 [method "
"interpolate_baked] 中使用。\n"
"[code]to_point[/code] 必须在这条曲线的局部空间中。"

#: doc/classes/Curve2D.xml:54 doc/classes/Curve3D.xml:67
#, fuzzy
msgid ""
"Returns the closest baked point (in curve's local space) to [code]to_point[/"
"code].\n"
"[code]to_point[/code] must be in this curve's local space."
msgstr ""
"返回距离 [code]to_point[/code] 最近的点 (在曲线的局部空间)。\n"
"[code]to_point[/code] 必须在这条曲线的局部空间中。"

#: doc/classes/Curve2D.xml:68
#, fuzzy
msgid ""
"Returns the position of the control point leading to the vertex [code]idx[/"
"code]. The returned position is relative to the vertex [code]idx[/code]. If "
"the index is out of bounds, the function sends an error to the console, and "
"returns [code](0, 0)[/code]."
msgstr ""
"返回指向顶点[code]idx[/code]的控制点的位置。如果索引超出边界,函数会向控制台"
"发送一个错误信息,并返回[code](0,0)[/code]。"

#: doc/classes/Curve2D.xml:75
#, fuzzy
msgid ""
"Returns the position of the control point leading out of the vertex "
"[code]idx[/code]. The returned position is relative to the vertex [code]idx[/"
"code]. If the index is out of bounds, the function sends an error to the "
"console, and returns [code](0, 0)[/code]."
msgstr ""
"返回指向顶点[code]idx[/code]的控制点的位置。如果索引超出边界,函数会向控制台"
"发送一个错误信息,并返回[code](0,0)[/code]。"

#: doc/classes/Curve2D.xml:82
msgid ""
"Returns the position of the vertex [code]idx[/code]. If the index is out of "
"bounds, the function sends an error to the console, and returns [code](0, 0)"
"[/code]."
msgstr ""
"返回顶点的位置[code]idx[/code]。如果索引超出边界,函数会向控制台发送一个错误"
"信息,并返回[code](0,0)[/code]。"

#: doc/classes/Curve2D.xml:90
msgid ""
"Returns the position between the vertex [code]idx[/code] and the vertex "
"[code]idx + 1[/code], where [code]t[/code] controls if the point is the "
"first vertex ([code]t = 0.0[/code]), the last vertex ([code]t = 1.0[/code]), "
"or in between. Values of [code]t[/code] outside the range ([code]0.0 >= t "
"<=1[/code]) give strange, but predictable results.\n"
"If [code]idx[/code] is out of bounds it is truncated to the first or last "
"vertex, and [code]t[/code] is ignored. If the curve has no points, the "
"function sends an error to the console, and returns [code](0, 0)[/code]."
msgstr ""
"返回顶点 [code]idx[/code] 和顶点 [code]idx + 1[/code] 之间的位置,其中 "
"[code]t[/code] 控制该点是第一个顶点 ([code]t = 0.0[/code])、最后一个顶点 "
"([code]t = 1.0[/code]),还是介于两者之间。范围外的[code]t[/code]的值"
"([code]0.0 >= t <=1[/code])会产生奇怪但可预测的结果。\n"
"如果[code]idx[/code]超出边界,则截断到第一个或最后一个顶点,而[code]t[/code]"
"则被忽略。如果曲线没有点,函数会向控制台发送一个错误,并返回 [code](0,0)[/"
"code]。"

#: doc/classes/Curve2D.xml:99
msgid ""
"Returns a point within the curve at position [code]offset[/code], where "
"[code]offset[/code] is measured as a pixel distance along the curve.\n"
"To do that, it finds the two cached points where the [code]offset[/code] "
"lies between, then interpolates the values. This interpolation is cubic if "
"[code]cubic[/code] is set to [code]true[/code], or linear if set to "
"[code]false[/code].\n"
"Cubic interpolation tends to follow the curves better, but linear is faster "
"(and often, precise enough)."
msgstr ""
"返回曲线中位于 [code]offset[/code] 位置的一个点,其中 [code]offset[/code] 是"
"沿曲线的像素距离。\n"
"为此,它找到 [code]offset[/code] 所在的两个缓存点,然后对其进行插值。如果将 "
"[code]cubic[/code] 设置为 [code]true[/code] 则为立方插值,如果设置为 [code] "
"false[/code] 则为线性插值。\n"
"立方内插往往能更好地跟随曲线,但线性内插速度更快(而且通常足够精确)。"

#: doc/classes/Curve2D.xml:108 doc/classes/Curve3D.xml:138
msgid ""
"Returns the position at the vertex [code]fofs[/code]. It calls [method "
"interpolate] using the integer part of [code]fofs[/code] as [code]idx[/"
"code], and its fractional part as [code]t[/code]."
msgstr ""
"返回顶点 [code]fofs[/code] 的位置。它使用 [code]fofs[/code] 的整数部分作为 "
"[code]idx[/code] 和分数部分作为 [code]t[/code] 调用 [方法插值]。"

#: doc/classes/Curve2D.xml:115 doc/classes/Curve3D.xml:145
msgid ""
"Deletes the point [code]idx[/code] from the curve. Sends an error to the "
"console if [code]idx[/code] is out of bounds."
msgstr ""
"从曲线上删除点 [code]idx[/code] 。如果 [code]idx[/code] 越界,会向控制台发送"
"错误信息。"

#: doc/classes/Curve2D.xml:123 doc/classes/Curve3D.xml:153
#, fuzzy
msgid ""
"Sets the position of the control point leading to the vertex [code]idx[/"
"code]. If the index is out of bounds, the function sends an error to the "
"console. The position is relative to the vertex."
msgstr ""
"设置通往顶点 [code]idx[/code] 的控制点的位置。如果索引超出范围,函数会向控制"
"台发送一个错误信息。"

#: doc/classes/Curve2D.xml:131 doc/classes/Curve3D.xml:161
#, fuzzy
msgid ""
"Sets the position of the control point leading out of the vertex [code]idx[/"
"code]. If the index is out of bounds, the function sends an error to the "
"console. The position is relative to the vertex."
msgstr ""
"设置从顶点[code]idx[/code]引出的控制点的位置。如果索引超出范围,函数会向控制"
"台发送一个错误信息。"

#: doc/classes/Curve2D.xml:139 doc/classes/Curve3D.xml:169
msgid ""
"Sets the position for the vertex [code]idx[/code]. If the index is out of "
"bounds, the function sends an error to the console."
msgstr ""
"设置顶点[code]idx[/code]的位置。如果索引超出范围,函数会向控制台发送一个错误"
"信息。"

#: doc/classes/Curve2D.xml:147 doc/classes/Curve3D.xml:186
msgid ""
"Returns a list of points along the curve, with a curvature controlled point "
"density. That is, the curvier parts will have more points than the "
"straighter parts.\n"
"This approximation makes straight segments between each point, then "
"subdivides those segments until the resulting shape is similar enough.\n"
"[code]max_stages[/code] controls how many subdivisions a curve segment may "
"face before it is considered approximate enough. Each subdivision splits the "
"segment in half, so the default 5 stages may mean up to 32 subdivisions per "
"curve segment. Increase with care!\n"
"[code]tolerance_degrees[/code] controls how many degrees the midpoint of a "
"segment may deviate from the real curve, before the segment has to be "
"subdivided."
msgstr ""
"返回沿曲线的点的列表,点的密度由曲率控制。也就是说,曲线部分比直线部分有更多"
"的点。\n"
"这个近似值在每个点之间做了直段,然后将这些直段细分,直到得到的形状足够相"
"似。\n"
"[code]max_stages[/code] 控制一个曲线段在被认为足够近似之前可能面临多少次细"
"分。每一次细分都会将曲线段分成两半,所以默认的 5 个阶段意味着每条曲线段最多可"
"以细分 32 次。请谨慎增加!\n"
"[code]tolerance_degrees[/code] 控制一个曲线段的中点与实际曲线的偏差多少度才会"
"被细分。"

#: doc/classes/Curve2D.xml:156
msgid ""
"The distance in pixels between two adjacent cached points. Changing it "
"forces the cache to be recomputed the next time the [method "
"get_baked_points] or [method get_baked_length] function is called. The "
"smaller the distance, the more points in the cache and the more memory it "
"will consume, so use with care."
msgstr ""
"相邻两个缓存点之间的距离,以像素为单位。改变它将迫使缓存在下次调用[method "
"get_baked_points]或[method get_baked_length]函数时重新计算。距离越小,缓存中"
"的点越多,占用的内存也越多,所以使用时要注意。"

#: doc/classes/Curve3D.xml:4
msgid "Describes a Bézier curve in 3D space."
msgstr "描述二维空间的贝兹尔曲线。"

#: doc/classes/Curve3D.xml:7
#, fuzzy
msgid ""
"This class describes a Bézier curve in 3D space. It is mainly used to give a "
"shape to a [Path], but can be manually sampled for other purposes.\n"
"It keeps a cache of precalculated points along the curve, to speed up "
"further calculations."
msgstr ""
"该类描述了二维空间中的贝兹尔曲线。它主要用于给[Path2D]一个形状,但也可以手动"
"采样用于其他目的。\n"
"它保留了沿曲线的预计算点的缓存,以加快进一步的计算。"

#: doc/classes/Curve3D.xml:39
#, fuzzy
msgid "Returns the cache of points as a [PoolVector3Array]."
msgstr "以[PackedVector2Array]的形式返回点的缓存。"

#: doc/classes/Curve3D.xml:45
#, fuzzy
msgid "Returns the cache of tilts as a [PoolRealArray]."
msgstr "以[PackedFloat32Array]的形式返回倾斜的缓存。"

#: doc/classes/Curve3D.xml:51
#, fuzzy
msgid ""
"Returns the cache of up vectors as a [PoolVector3Array].\n"
"If [member up_vector_enabled] is [code]false[/code], the cache will be empty."
msgstr ""
"返回作为[PackedVector3Array]的up向量缓存。\n"
"如果[member up_vector_enabled]为[code]false[/code],则缓存为空。"

#: doc/classes/Curve3D.xml:59
msgid ""
"Returns the closest offset to [code]to_point[/code]. This offset is meant to "
"be used in [method interpolate_baked] or [method "
"interpolate_baked_up_vector].\n"
"[code]to_point[/code] must be in this curve's local space."
msgstr ""
"返回离 [code]to_point[/code] 最近的偏移量。这个偏移量可以用在 [method "
"interpolate_baked] 或 [method interpolate_baked_up_vector] 中。\n"
"[code]to_point[/code] 必须在这条曲线的局部空间中。"

#: doc/classes/Curve3D.xml:81
#, fuzzy
msgid ""
"Returns the position of the control point leading to the vertex [code]idx[/"
"code]. The returned position is relative to the vertex [code]idx[/code]. If "
"the index is out of bounds, the function sends an error to the console, and "
"returns [code](0, 0, 0)[/code]."
msgstr ""
"返回从顶点[code]idx[/code]引出的控制点的位置。如果索引超出边界,函数向控制台"
"发送一个错误信息,并返回[code](0,0,0)[/code]。"

#: doc/classes/Curve3D.xml:88
#, fuzzy
msgid ""
"Returns the position of the control point leading out of the vertex "
"[code]idx[/code]. The returned position is relative to the vertex [code]idx[/"
"code]. If the index is out of bounds, the function sends an error to the "
"console, and returns [code](0, 0, 0)[/code]."
msgstr ""
"返回从顶点[code]idx[/code]引出的控制点的位置。如果索引超出边界,函数向控制台"
"发送一个错误信息,并返回[code](0,0,0)[/code]。"

#: doc/classes/Curve3D.xml:95
msgid ""
"Returns the position of the vertex [code]idx[/code]. If the index is out of "
"bounds, the function sends an error to the console, and returns [code](0, 0, "
"0)[/code]."
msgstr ""
"返回顶点的位置[code]idx[/code]。如果索引超出边界,函数会向控制台发送一个错误"
"信息,并返回[code](0,0,0)[/code]。"

#: doc/classes/Curve3D.xml:102
msgid ""
"Returns the tilt angle in radians for the point [code]idx[/code]. If the "
"index is out of bounds, the function sends an error to the console, and "
"returns [code]0[/code]."
msgstr ""
"返回 [code]idx[/code] 点的倾斜角,单位为弧度。如果指数超出范围,函数将向控制"
"台发送错误信息,并返回 [code]0[/code]。"

#: doc/classes/Curve3D.xml:110
msgid ""
"Returns the position between the vertex [code]idx[/code] and the vertex "
"[code]idx + 1[/code], where [code]t[/code] controls if the point is the "
"first vertex ([code]t = 0.0[/code]), the last vertex ([code]t = 1.0[/code]), "
"or in between. Values of [code]t[/code] outside the range ([code]0.0 >= t "
"<=1[/code]) give strange, but predictable results.\n"
"If [code]idx[/code] is out of bounds it is truncated to the first or last "
"vertex, and [code]t[/code] is ignored. If the curve has no points, the "
"function sends an error to the console, and returns [code](0, 0, 0)[/code]."
msgstr ""
"返回顶点 [code]idx[/code] 和顶点 [code]idx + 1[/code] 之间的位置,其中 "
"[code]t[/code] 控制该点是第一个顶点 ([code]t = 0.0[/code])、最后一个顶点 "
"([code]t = 1.0[/code]),还是介于两者之间。范围外的[code]t[/code]的值"
"([code]0.0 >= t <=1[/code])会产生奇怪但可预测的结果。\n"
"如果[code]idx[/code]超出边界,则截断到第一个或最后一个顶点,而[code]t[/code]"
"则被忽略。如果曲线没有点,函数会向控制台发送一个错误,并返回 [code](0, 0, 0)"
"[/code]。"

#: doc/classes/Curve3D.xml:119
#, fuzzy
msgid ""
"Returns a point within the curve at position [code]offset[/code], where "
"[code]offset[/code] is measured as a distance in 3D units along the curve.\n"
"To do that, it finds the two cached points where the [code]offset[/code] "
"lies between, then interpolates the values. This interpolation is cubic if "
"[code]cubic[/code] is set to [code]true[/code], or linear if set to "
"[code]false[/code].\n"
"Cubic interpolation tends to follow the curves better, but linear is faster "
"(and often, precise enough)."
msgstr ""
"返回曲线中位于 [code]offset[/code] 位置的一个点,其中 [code]offset[/code] 是"
"沿曲线的像素距离。\n"
"为此,它找到 [code]offset[/code] 所在的两个缓存点,然后对其进行插值。如果将 "
"[code]cubic[/code] 设置为 [code]true[/code] 则为立方插值,如果设置为 [code] "
"false[/code] 则为线性插值。\n"
"立方内插往往能更好地跟随曲线,但线性内插速度更快(而且通常足够精确)。"

#: doc/classes/Curve3D.xml:129
msgid ""
"Returns an up vector within the curve at position [code]offset[/code], where "
"[code]offset[/code] is measured as a distance in 3D units along the curve.\n"
"To do that, it finds the two cached up vectors where the [code]offset[/code] "
"lies between, then interpolates the values. If [code]apply_tilt[/code] is "
"[code]true[/code], an interpolated tilt is applied to the interpolated up "
"vector.\n"
"If the curve has no up vectors, the function sends an error to the console, "
"and returns [code](0, 1, 0)[/code]."
msgstr ""
"返回位于 [code]offset[/code] 位置的曲线内的向上向量,其中 [code]offset[/"
"code] 是以三维单位测量的曲线距离。\n"
"为此,它会找到 [code]offset[/code] 所在的两个缓存向上向量,然后对其进行插值。"
"如果 [code]apply_tilt[/code] 是 [code]true[/code],内插后的倾斜会被应用到内插"
"的向上向量上。\n"
"如果曲线没有向上向量,函数会向控制台发送一个错误,并返回[code](0,1,0)[/"
"code]。"

#: doc/classes/Curve3D.xml:177
#, fuzzy
msgid ""
"Sets the tilt angle in radians for the point [code]idx[/code]. If the index "
"is out of bounds, the function sends an error to the console.\n"
"The tilt controls the rotation along the look-at axis an object traveling "
"the path would have. In the case of a curve controlling a [PathFollow], this "
"tilt is an offset over the natural tilt the [PathFollow] calculates."
msgstr ""
"设置 [code]idx[/code] 点的倾斜角,单位为弧度。如果索引超出范围,函数会向控制"
"台发送一个错误信息。\n"
"倾斜度控制着沿着路径上移动的物体的视线轴的旋转。如果是控制 [PathFollow3D] 的"
"曲线,这个倾斜度是 [PathFollow3D] 计算的自然倾斜度的偏移。"

#: doc/classes/Curve3D.xml:195
msgid ""
"The distance in meters between two adjacent cached points. Changing it "
"forces the cache to be recomputed the next time the [method "
"get_baked_points] or [method get_baked_length] function is called. The "
"smaller the distance, the more points in the cache and the more memory it "
"will consume, so use with care."
msgstr ""
"相邻两个缓存点之间的距离,单位为米。改变它将迫使缓存在下次调用[method "
"get_baked_points]或[method get_baked_length]函数时重新计算。距离越小,缓存中"
"的点越多,占用的内存也越多,所以使用时要注意。"

#: doc/classes/Curve3D.xml:198
#, fuzzy
msgid ""
"If [code]true[/code], the curve will bake up vectors used for orientation. "
"This is used when [member PathFollow.rotation_mode] is set to [constant "
"PathFollow.ROTATION_ORIENTED]. Changing it forces the cache to be recomputed."
msgstr ""
"如果[code]true[/code],曲线将烘焙出用于定向的向量。当[member PathFollow3D."
"rotation_mode]被设置为[constant PathFollow3D.ROTATION_ORIENTED]时,就会使用这"
"个功能。改变它将强制重新计算缓存。"

#: doc/classes/CurveTexture.xml:4
msgid "A texture that shows a curve."
msgstr "一种显示曲线的纹理。"

#: doc/classes/CurveTexture.xml:7
msgid ""
"Renders a given [Curve] provided to it. Simplifies the task of drawing "
"curves and/or saving them as image files."
msgstr "渲染提供给它的[曲线]。简化了绘制曲线和/或保存为图像文件的任务。"

#: doc/classes/CurveTexture.xml:15
msgid "The [code]curve[/code] rendered onto the texture."
msgstr "渲染到纹理上的[code]curve[/code]。"

#: doc/classes/CurveTexture.xml:18
msgid "The width of the texture."
msgstr "纹理的宽度。"

#: doc/classes/CylinderMesh.xml:4
msgid "Class representing a cylindrical [PrimitiveMesh]."
msgstr "表示圆柱形[PrimitiveMesh]的类。"

#: doc/classes/CylinderMesh.xml:7
#, fuzzy
msgid ""
"Class representing a cylindrical [PrimitiveMesh]. This class can be used to "
"create cones by setting either the [member top_radius] or [member "
"bottom_radius] properties to [code]0.0[/code]."
msgstr ""
"表示圆柱形[PrimitiveMesh]的类。该类可以通过设置[member top_radius]或[member "
"bottom_radius]属性为0.0来创建圆锥体。"

#: doc/classes/CylinderMesh.xml:15
msgid ""
"Bottom radius of the cylinder. If set to [code]0.0[/code], the bottom faces "
"will not be generated, resulting in a conic shape."
msgstr ""

#: doc/classes/CylinderMesh.xml:18
msgid "Full height of the cylinder."
msgstr "缸体的全高。"

#: doc/classes/CylinderMesh.xml:21
msgid ""
"Number of radial segments on the cylinder. Higher values result in a more "
"detailed cylinder/cone at the cost of performance."
msgstr ""

#: doc/classes/CylinderMesh.xml:24
msgid ""
"Number of edge rings along the height of the cylinder. Changing [member "
"rings] does not have any visual impact unless a shader or procedural mesh "
"tool is used to alter the vertex data. Higher values result in more "
"subdivisions, which can be used to create smoother-looking effects with "
"shaders or procedural mesh tools (at the cost of performance). When not "
"altering the vertex data using a shader or procedural mesh tool, [member "
"rings] should be kept to its default value."
msgstr ""

#: doc/classes/CylinderMesh.xml:27
msgid ""
"Top radius of the cylinder. If set to [code]0.0[/code], the top faces will "
"not be generated, resulting in a conic shape."
msgstr ""

#: doc/classes/CylinderShape.xml:4 doc/classes/CylinderShape.xml:7
msgid "Cylinder shape for collisions."
msgstr "碰撞用的圆柱体形状。"

#: doc/classes/CylinderShape.xml:18
msgid "The cylinder's height."
msgstr "圆柱体的高度。"

#: doc/classes/CylinderShape.xml:21
msgid "The cylinder's radius."
msgstr "圆柱体的半径。"

#: doc/classes/DampedSpringJoint2D.xml:4
msgid "Damped spring constraint for 2D physics."
msgstr "二维物理学的阻尼弹簧约束。"

#: doc/classes/DampedSpringJoint2D.xml:7
msgid ""
"Damped spring constraint for 2D physics. This resembles a spring joint that "
"always wants to go back to a given length."
msgstr "二维物理学的阻尼弹簧约束。这类似于一个总是想回到给定长度的弹簧关节。"

#: doc/classes/DampedSpringJoint2D.xml:15
msgid ""
"The spring joint's damping ratio. A value between [code]0[/code] and "
"[code]1[/code]. When the two bodies move into different directions the "
"system tries to align them to the spring axis again. A high [code]damping[/"
"code] value forces the attached bodies to align faster."
msgstr ""
"彈簧節的阻尼比。值在[code]0[/code]和[code]1[/code]之间。当两个机构移动到不同"
"的方向时,系统会尝试将它们再次对准弹簧轴。高的[code]damping[/code]值迫使连接"
"的机构更快地对齐。"

#: doc/classes/DampedSpringJoint2D.xml:18
msgid ""
"The spring joint's maximum length. The two attached bodies cannot stretch it "
"past this value."
msgstr "弹簧接头的最大长度。两个连接体不能超过这个值。"

#: doc/classes/DampedSpringJoint2D.xml:21
msgid ""
"When the bodies attached to the spring joint move they stretch or squash it. "
"The joint always tries to resize towards this length."
msgstr ""
"当连接到弹簧关节的机构移动时,它们会拉伸或挤压它。关节总是尝试向这个长度调"
"整。"

#: doc/classes/DampedSpringJoint2D.xml:24
msgid ""
"The higher the value, the less the bodies attached to the joint will deform "
"it. The joint applies an opposing force to the bodies, the product of the "
"stiffness multiplied by the size difference from its resting length."
msgstr ""
"该值越大,连接在关节上的机构变形越小。关节对各机构施加一个相反的力,即刚度乘"
"以与其静止长度的大小差的乘积。"

#: doc/classes/Dictionary.xml:4
msgid "Dictionary type."
msgstr "字典类型。"

#: doc/classes/Dictionary.xml:7
#, fuzzy
msgid ""
"Dictionary type. Associative container which contains values referenced by "
"unique keys. Dictionaries are composed of pairs of keys (which must be "
"unique) and values. Dictionaries will preserve the insertion order when "
"adding elements, even though this may not be reflected when printing the "
"dictionary. In other programming languages, this data structure is sometimes "
"referred to as a hash map or associative array.\n"
"You can define a dictionary by placing a comma-separated list of [code]key: "
"value[/code] pairs in curly braces [code]{}[/code].\n"
"Erasing elements while iterating over them [b]is not supported[/b] and will "
"result in undefined behavior.\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"
"Creating a dictionary:\n"
"[codeblock]\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"
"[/codeblock]\n"
"You can access a dictionary's values by referencing the appropriate 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"
"[codeblock]\n"
"export(string, \"White\", \"Yellow\", \"Orange\") var my_color\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"
"[/codeblock]\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"
"[codeblock]\n"
"my_dict = {\"First Array\": [1, 2, 3, 4]} # Assigns an Array to a String "
"key.\n"
"[/codeblock]\n"
"To add a key to an existing dictionary, access it like an existing key and "
"assign to it:\n"
"[codeblock]\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"
"[/codeblock]\n"
"Finally, dictionaries can contain different types of keys and values in the "
"same dictionary:\n"
"[codeblock]\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"
"[/codeblock]\n"
"[b]Note:[/b] Unlike [Array]s, you can't compare dictionaries directly:\n"
"[codeblock]\n"
"array1 = [1, 2, 3]\n"
"array2 = [1, 2, 3]\n"
"\n"
"func compare_arrays():\n"
"    print(array1 == array2) # Will print true.\n"
"\n"
"var dict1 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"var dict2 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"\n"
"func compare_dictionaries():\n"
"    print(dict1 == dict2) # Will NOT print true.\n"
"[/codeblock]\n"
"You need to first calculate the dictionary's hash with [method hash] before "
"you can compare them:\n"
"[codeblock]\n"
"var dict1 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"var dict2 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"\n"
"func compare_dictionaries():\n"
"    print(dict1.hash() == dict2.hash()) # Will print true.\n"
"[/codeblock]\n"
"[b]Note:[/b] When declaring a dictionary with [code]const[/code], the "
"dictionary itself can still be mutated by defining the values of individual "
"keys. Using [code]const[/code] will only prevent assigning the constant with "
"another value after it was initialized."
msgstr ""
"字典类型。关联容器,包含由唯一键引用的值。字典由键(必须是唯一的)和值对组"
"成。当添加元素时,字典将保留插入顺序,即使在打印字典时可能不会反映出来。在其"
"他编程语言中,这种数据结构有时被称为哈希图或关联数组。\n"
"您可以通过在大括号[code]{}[/code]中放置一个以逗号分隔的[code]key: value[/"
"code]对的列表来定义一个字典。\n"
"不支持在迭代元素[b]时擦除元素[/b],并且会导致未定义的行为。\n"
"[b]注意:[/b] 字典总是通过引用传递的。要获得一个可以独立于原始字典进行修改的字"
"典副本,请使用[方法 duplicate]。\n"
"创建一个字典。\n"
"[codeblock]\n"
"var my_dir = {} # Creates an empty dictionary.\n"
"var points_dir = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n"
"var another_dir = {\n"
"    key1: value1,\n"
"    key2: value2,\n"
"    key3: value3,\n"
"}\n"
"[/codeblock]\n"
"You can access a dictionary's values by referencing the appropriate key. In "
"the above example, [code]points_dir[\"White\"][/code] will return [code]50[/"
"code]. You can also write [code]points_dir.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"
"[codeblock]\n"
"export(String, \"White\", \"Yellow\", \"Orange\") var my_color\n"
"var points_dir = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n"
"\n"
"func _ready():\n"
"    # We can't use dot syntax here as `my_color` is a variable.\n"
"    var points = points_dir[my_color]\n"
"[/codeblock]\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"
"[codeblock]\n"
"my_dir = {\"First Array\": [1, 2, 3, 4]} # Assigns an Array to a String "
"key.\n"
"[/codeblock]\n"
"To add a key to an existing dictionary, access it like an existing key and "
"assign to it:\n"
"[codeblock]\n"
"var points_dir = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n"
"points_dir[\"Blue\"] = 150 # Add \"Blue\" as a key and assign 150 as its "
"value.\n"
"[/codeblock]\n"
"Finally, dictionaries can contain different types of keys and values in the "
"same dictionary:\n"
"[codeblock]\n"
"# This is a valid dictionary.\n"
"# To access the string \"Nested value\" below, use `my_dir.sub_dir.sub_key` "
"or `my_dir[\"sub_dir\"][\"sub_key\"]`.\n"
"# Indexing styles can be mixed and matched depending on your needs.\n"
"var my_dir = {\n"
"    \"String Key\": 5,\n"
"    4: [1, 2, 3],\n"
"    7: \"Hello\",\n"
"    \"sub_dir\": {\"sub_key\": \"Nested value\"},\n"
"}\n"
"[/codeblock]\n"
"[b]Note:[/b] Unlike [Array]s, you can't compare dictionaries directly:\n"
"[codeblock]\n"
"array1 = [1, 2, 3]\n"
"array2 = [1, 2, 3]\n"
"\n"
"func compare_arrays():\n"
"    print(array1 == array2) # Will print true.\n"
"\n"
"dir1 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"dir2 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"\n"
"func compare_dictionaries():\n"
"    print(dir1 == dir2) # Will NOT print true.\n"
"[/codeblock]\n"
"You need to first calculate the dictionary's hash with [method hash] before "
"you can compare them:\n"
"[codeblock]\n"
"dir1 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"dir2 = {\"a\": 1, \"b\": 2, \"c\": 3}\n"
"\n"
"func compare_dictionaries():\n"
"    print(dir1.hash() == dir2.hash()) # Will print true.\n"
"[/codeblock]"

#: doc/classes/Dictionary.xml:87
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/gdscript/"
"gdscript_basics.html#dictionary"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/scripting/gdscript/"
"gdscript_basics.html#dictionary"

#: doc/classes/Dictionary.xml:94
msgid "Clear the dictionary, removing all key/value pairs."
msgstr "清除字典,删除所有键/值对。"

#: doc/classes/Dictionary.xml:101
msgid ""
"Creates a copy of the dictionary, and returns it. The [code]deep[/code] "
"parameter causes inner dictionaries and arrays to be copied recursively, but "
"does not apply to objects."
msgstr ""
"创建一个字典的副本,并返回它。[code]deep[/code] 参数使内部字典和数组被递归复"
"制,但不适用于对象。"

#: doc/classes/Dictionary.xml:107
msgid "Returns [code]true[/code] if the dictionary is empty."
msgstr "如果字典为空,返回[code]true[/code]。"

#: doc/classes/Dictionary.xml:114
#, fuzzy
msgid ""
"Erase a dictionary key/value pair by key. Returns [code]true[/code] if the "
"given key was present in the dictionary, [code]false[/code] otherwise.\n"
"[b]Note:[/b] Don't erase elements while iterating over the dictionary. You "
"can iterate over the [method keys] array instead."
msgstr ""
"按键擦除字典中的键/值对。如果给定的键存在于字典中,返回 [code]true[/code],否"
"则返回 [code]false[/code]。遍历字典时不擦除元素。"

#: doc/classes/Dictionary.xml:123
msgid ""
"Returns the current value for the specified key in the [Dictionary]. If the "
"key does not exist, the method returns the value of the optional default "
"argument, or [code]null[/code] if it is omitted."
msgstr ""
"返回[字典]中指定键的当前值。如果键不存在,则该方法返回可选默认参数的值;如果"
"省略,则返回[code] null [/code]。"

#: doc/classes/Dictionary.xml:130
msgid ""
"Returns [code]true[/code] if the dictionary has a given key.\n"
"[b]Note:[/b] This is equivalent to using the [code]in[/code] operator as "
"follows:\n"
"[codeblock]\n"
"# Will evaluate to `true`.\n"
"if \"godot\" in {\"godot\": \"engine\"}:\n"
"    pass\n"
"[/codeblock]\n"
"This method (like the [code]in[/code] operator) will evaluate to [code]true[/"
"code] as long as the key exists, even if the associated value is [code]null[/"
"code]."
msgstr ""
"如果字典有一个给定的键,返回[code]true[/code]。\n"
"[b]注:[/b] 这相当于使用[code]in[/code]运算符,如下所示。\n"
"[codeblock]\n"
"# Will evaluate to `true`.\n"
"if \"godot\" in {\"godot\": \"engine\"}:\n"
"    pass\n"
"[/codeblock]\n"
"只要键存在,即使相关的值是[code]null[/code],这个方法(就像[code]in[/code]运"
"算符一样)也会评估为[code]true[/code]。"

#: doc/classes/Dictionary.xml:144
#, fuzzy
msgid ""
"Returns [code]true[/code] if the dictionary has all the keys in the given "
"array."
msgstr "如果字典中的所有键都在给定的数组中,返回[code]true[/code]。"

#: doc/classes/Dictionary.xml:150
msgid ""
"Returns a hashed integer value representing the dictionary contents. This "
"can be used to compare dictionaries by value:\n"
"[codeblock]\n"
"var dict1 = {0: 10}\n"
"var dict2 = {0: 10}\n"
"# The line below prints `true`, whereas it would have printed `false` if "
"both variables were compared directly.\n"
"print(dict1.hash() == dict2.hash())\n"
"[/codeblock]\n"
"[b]Note:[/b] Dictionaries with the same keys/values but in a different order "
"will have a different hash."
msgstr ""
"返回一个代表字典内容的哈希整数值。这可以用来比较字典的值。\n"
"[codeblock]\n"
"var dict1 = {0: 10}\n"
"var dict2 = {0: 10}\n"
"# The line below prints `true`, whereas it would have printed `false` if "
"both variables were compared directly.\n"
"print(dict1.hash() == dict2.hash())\n"
"[/codeblock]\n"
"[b]注意:[/b]具有相同键/值但顺序不同的字典将有不同的哈希值。"

#: doc/classes/Dictionary.xml:163
msgid "Returns the list of keys in the [Dictionary]."
msgstr "返回[Dictionary]中的键列表。"

#: doc/classes/Dictionary.xml:169
#, fuzzy
msgid "Returns the number of keys in the dictionary."
msgstr "返回目录里文件的数量。"

#: doc/classes/Dictionary.xml:175
msgid "Returns the list of values in the [Dictionary]."
msgstr "返回[Dictionary]中的值列表。"

#: doc/classes/DirectionalLight.xml:4
msgid "Directional light from a distance, as from the Sun."
msgstr "来自远处的方向光,如来自太阳的光。"

#: doc/classes/DirectionalLight.xml:7
#, fuzzy
msgid ""
"A directional light is a type of [Light] node that models an infinite number "
"of parallel rays covering the entire scene. It is used for lights with "
"strong intensity that are located far away from the scene to model sunlight "
"or moonlight. The worldspace location of the DirectionalLight transform "
"(origin) is ignored. Only the basis is used to determine light direction."
msgstr ""
"方向灯是一种[Light3D]节点,它可以模拟覆盖整个场景的无限数量的平行光线。它用于"
"离场景较远的具有强烈强度的灯光,以模拟太阳光或月光。DirectionalLight3D变换"
"(原点)的世界空间位置被忽略。只有基础被用来确定光的方向。"

#: doc/classes/DirectionalLight.xml:10 doc/classes/Light.xml:10
#: doc/classes/OmniLight.xml:11 doc/classes/SpotLight.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/lights_and_shadows.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/lights_and_shadows."
"html"

#: doc/classes/DirectionalLight.xml:16
msgid ""
"Amount of extra bias for shadow splits that are far away. If self-shadowing "
"occurs only on the splits far away, increasing this value can fix them."
msgstr ""

#: doc/classes/DirectionalLight.xml:19
msgid ""
"If [code]true[/code], shadow detail is sacrificed in exchange for smoother "
"transitions between splits."
msgstr ""
"如果[code]true[/code],则会牺牲阴影细节,以换取更平滑的分割之间的过渡。"

#: doc/classes/DirectionalLight.xml:22
msgid ""
"Optimizes shadow rendering for detail versus movement. See [enum "
"ShadowDepthRange]."
msgstr "优化阴影渲染的细节与运动。参见[enum ShadowDepthRange]。"

#: doc/classes/DirectionalLight.xml:25
msgid "The maximum distance for shadow splits."
msgstr "阴影分割的最大距离。"

#: doc/classes/DirectionalLight.xml:28
msgid "The light's shadow rendering algorithm. See [enum ShadowMode]."
msgstr "灯光的阴影渲染算法。参见[enum ShadowMode]。"

#: doc/classes/DirectionalLight.xml:31
msgid ""
"Can be used to fix special cases of self shadowing when objects are "
"perpendicular to the light."
msgstr ""

#: doc/classes/DirectionalLight.xml:34
msgid ""
"The distance from camera to shadow split 1. Relative to [member "
"directional_shadow_max_distance]. Only used when [member "
"directional_shadow_mode] is [code]SHADOW_PARALLEL_2_SPLITS[/code] or "
"[code]SHADOW_PARALLEL_4_SPLITS[/code]."
msgstr ""
"摄像机到影子分割1的距离。相对于[member directional_shadow_max_distance]。只有"
"当[member directional_shadow_mode]是[code]SHADOW_PARALLEL_2_SPLITS[/code]或"
"[code]SHADOW_PARALLEL_4_SPLITS[/code]时才使用。"

#: doc/classes/DirectionalLight.xml:37
msgid ""
"The distance from shadow split 1 to split 2. Relative to [member "
"directional_shadow_max_distance]. Only used when [member "
"directional_shadow_mode] is [code]SHADOW_PARALLEL_2_SPLITS[/code] or "
"[code]SHADOW_PARALLEL_4_SPLITS[/code]."
msgstr ""
"阴影分割1到分割2的距离。相对于[member directional_shadow_max_distance]。仅在"
"[member directional_shadow_mode]为[code] SHADOW_PARALLEL_2_SPLITS [/code]或"
"[code] SHADOW_PARALLEL_4_SPLITS [/code]时使用。"

#: doc/classes/DirectionalLight.xml:40
msgid ""
"The distance from shadow split 2 to split 3. Relative to [member "
"directional_shadow_max_distance]. Only used when [member "
"directional_shadow_mode] is [code]SHADOW_PARALLEL_4_SPLITS[/code]."
msgstr ""
"从影子分割2到分割3的距离。相对于[member directional_shadow_max_distance]。只"
"有当[member directional_shadow_mode]为[code]SHADOW_PARALLEL_4_SPLITS[/code]时"
"才使用。"

#: doc/classes/DirectionalLight.xml:46
msgid ""
"Renders the entire scene's shadow map from an orthogonal point of view. This "
"is the fastest directional shadow mode. May result in blurrier shadows on "
"close objects."
msgstr ""
"从正交的角度渲染整个场景的阴影图。这是最快的方向性阴影模式。可能会导致近距离"
"物体的阴影更模糊。"

#: doc/classes/DirectionalLight.xml:49
msgid ""
"Splits the view frustum in 2 areas, each with its own shadow map. This "
"shadow mode is a compromise between [constant SHADOW_ORTHOGONAL] and "
"[constant SHADOW_PARALLEL_4_SPLITS] in terms of performance."
msgstr ""
"将视图分割成2个区域,每个区域都有自己的阴影图。这个阴影模式是[constant "
"SHADOW_ORTHOGONAL]和[constant SHADOW_PARALLEL_4_SPLITS]在性能上的折中。"

#: doc/classes/DirectionalLight.xml:52
msgid ""
"Splits the view frustum in 4 areas, each with its own shadow map. This is "
"the slowest directional shadow mode."
msgstr ""
"将视图frustum分成4个区域,每个区域都有自己的阴影图。这是最慢的方向性阴影模"
"式。"

#: doc/classes/DirectionalLight.xml:55
msgid ""
"Keeps the shadow stable when the camera moves, at the cost of lower "
"effective shadow resolution."
msgstr "当摄像机移动时,保持影子稳定,但代价是降低有效影子分辨率。"

#: doc/classes/DirectionalLight.xml:58
msgid ""
"Tries to achieve maximum shadow resolution. May result in saw effect on "
"shadow edges. This mode typically works best in games where the camera will "
"often move at high speeds, such as most racing games."
msgstr ""
"尝试实现最大的阴影分辨率。可能导致阴影边缘出现锯齿效果。此模式通常在摄像机经"
"常高速移动的游戏中效果最好,例如大多数赛车游戏。"

#: doc/classes/Directory.xml:4
msgid "Type used to handle the filesystem."
msgstr "用于处理文件系统的类型。"

#: doc/classes/Directory.xml:7
#, fuzzy
msgid ""
"Directory type. It is used to manage directories and their content (not "
"restricted to the project folder).\n"
"When creating a new [Directory], its default opened directory will be "
"[code]res://[/code]. This may change in the future, so it is advised to "
"always use [method open] to initialize your [Directory] where you want to "
"operate, with explicit error checking.\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"
"[codeblock]\n"
"func dir_contents(path):\n"
"    var dir = Directory.new()\n"
"    if dir.open(path) == OK:\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"
"[/codeblock]"
msgstr ""
"目录类型。它用于管理目录及其内容(不限于项目文件夹)。\n"
"当创建一个新的[目录]时,必须使用[方法open]显式打开它,然后才能使用大多数方"
"法。然而,[method file_exists]和[method dir_exists]可以在不打开目录的情况下使"
"用。如果是这样,它们使用的是相对于[code]res://[/code]的路径。\n"
"下面是一个关于如何遍历一个目录中的文件的例子。\n"
"[codeblock]\n"
"func dir_contents(path):\n"
"    var dir = Directory.new()\n"
"    if dir.open(path) == OK:\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"
"[/codeblock]"

#: doc/classes/Directory.xml:28 doc/classes/File.xml:28
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/step_by_step/filesystem."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/step_by_step/"
"filesystem.html"

#: doc/classes/Directory.xml:35
msgid ""
"Changes the currently opened directory to the one passed as an argument. The "
"argument can be relative to the current directory (e.g. [code]newdir[/code] "
"or [code]../newdir[/code]), or an absolute path (e.g. [code]/tmp/newdir[/"
"code] or [code]res://somedir/newdir[/code]).\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"将当前打开的目录改为参数传递的目录。参数可以是相对于当前目录的(例如 "
"[code]newdir[/code] 或 [code].../newdir[/code]),也可以是绝对路径(例如 "
"[code]/tmp/newdir[/code] 或 [code]res://somedir/newdir[/code])。\n"
"返回 [enum Error] 代码常量之一 ([code]OK[/code] 成功时)。"

#: doc/classes/Directory.xml:44
msgid ""
"Copies the [code]from[/code] file to the [code]to[/code] destination. Both "
"arguments should be paths to files, either relative or absolute. If the "
"destination file exists and is not access-protected, it will be "
"overwritten.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"将 [code]from[/code] 文件复制到 [code]to[/code] 目标位置。两个参数都应该是相"
"对或绝对文件的路径。如果目标文件存在且没有访问保护,则会被覆盖。\n"
"返回[enum Error]代码常量之一(成功时返回[code]OK[/code])。"

#: doc/classes/Directory.xml:51
msgid ""
"Returns whether the current item processed with the last [method get_next] "
"call is a directory ([code].[/code] and [code]..[/code] are considered "
"directories)."
msgstr ""
"返回上一次[get_next]调用处理的当前项目是否为目录([code].[/code]和[code].[/"
"code]被认为是目录)。"

#: doc/classes/Directory.xml:58
#, fuzzy
msgid ""
"Returns whether the target directory exists. The argument can be relative to "
"the current directory, or an absolute path."
msgstr ""
"返回目标目录是否存在。该参数可以相对于当前目录,也可以是绝对路径。\n"
"如果未打开[Directory],则该路径是相对于[code] res:// [/code]的。"

#: doc/classes/Directory.xml:65
#, fuzzy
msgid ""
"Returns whether the target file exists. The argument can be relative to the "
"current directory, or an absolute path."
msgstr ""
"返回目标文件是否存在。参数可以是当前目录的相对路径,也可以是绝对路径。\n"
"如果 [Directory] 没有打开,则路径是相对于 [code]res://[/code] 。"

#: doc/classes/Directory.xml:71
msgid ""
"Returns the absolute path to the currently opened directory (e.g. "
"[code]res://folder[/code] or [code]C:\\tmp\\folder[/code])."
msgstr ""
"返回当前打开目录的绝对路径(例如[code]res://文件夹[/code]或[code]C:\\tmp\\文"
"件夹[/code])。"

#: doc/classes/Directory.xml:77
msgid ""
"Returns the currently opened directory's drive index. See [method get_drive] "
"to convert returned index to the name of the drive."
msgstr ""
"返回当前打开的目录的驱动器索引。请参见[method get_drive]将返回的索引转换为驱"
"动器的名称。"

#: doc/classes/Directory.xml:84
#, fuzzy
msgid ""
"On Windows, returns the name of the drive (partition) passed as an argument "
"(e.g. [code]C:[/code]). On other platforms, or if the requested drive does "
"not exist, the method returns an empty String."
msgstr ""
"在Windows上,返回作为参数传递的驱动器(分区)的名称(例如[code]C:[/code])。"
"在其他平台上,或者如果请求的驱动器不存在,该方法返回一个空字符串。"

#: doc/classes/Directory.xml:90
msgid ""
"On Windows, returns the number of drives (partitions) mounted on the current "
"filesystem. On other platforms, the method returns 0."
msgstr ""
"在Windows上,返回挂载在当前文件系统上的驱动器(分区)数量。在其他平台上,该方"
"法返回0。"

#: doc/classes/Directory.xml:96
msgid ""
"Returns the next element (file or directory) in the current directory "
"(including [code].[/code] and [code]..[/code], unless "
"[code]skip_navigational[/code] was given to [method list_dir_begin]).\n"
"The name of the file or directory is returned (and not its full path). Once "
"the stream has been fully processed, the method returns an empty String and "
"closes the stream automatically (i.e. [method list_dir_end] would not be "
"mandatory in such a case)."
msgstr ""
"返回当前目录中的下一个元素(文件或目录)(包括[code].[/code]和[code].[/"
"code],除非[code]skip_navigational[/code]被赋予[方法list_dir_begin])。\n"
"返回的是文件或目录的名称(而不是它的完整路径)。一旦流被完全处理,该方法返回"
"一个空的String,并自动关闭流(即在这种情况下,[方法list_dir_end]将不是强制性"
"的)。"

#: doc/classes/Directory.xml:103
msgid ""
"On UNIX desktop systems, returns the available space on the current "
"directory's disk. On other platforms, this information is not available and "
"the method returns 0 or -1."
msgstr ""
"在UNIX桌面系统上,返回当前目录磁盘上的可用空间。在其他平台上,此信息不可用,"
"该方法返回0或-1。"

#: doc/classes/Directory.xml:111
#, fuzzy
msgid ""
"Initializes the stream used to list all files and directories using the "
"[method get_next] function, closing the currently opened stream if needed. "
"Once the stream has been processed, it should typically be closed with "
"[method list_dir_end].\n"
"If [code]skip_navigational[/code] is [code]true[/code], [code].[/code] and "
"[code]..[/code] are filtered out.\n"
"If [code]skip_hidden[/code] is [code]true[/code], hidden files are filtered "
"out."
msgstr ""
"使用[method get_next]函数初始化用于列出所有文件和目录的流,并在需要时关闭当前"
"打开的流。处理完流后,通常应使用[method list_dir_end]将其关闭。\n"
"如果[code] skip_navigational [/code]is[code]true[/code],那么[code].[/code]和"
"[code] .. [/code]被过滤掉。\n"
"如果[code] skip_hidden [/code]为[code]true[/code],则隐藏文件将被过滤掉。"

#: doc/classes/Directory.xml:119
#, fuzzy
msgid ""
"Closes the current stream opened with [method list_dir_begin] (whether it "
"has been fully processed with [method get_next] does not matter)."
msgstr ""
"关闭用[method list_dir_begin]打开的当前流(是否已被[method get_next]完全处理并"
"不重要)。"

#: doc/classes/Directory.xml:126
msgid ""
"Creates a directory. The argument can be relative to the current directory, "
"or an absolute path. The target directory should be placed in an already "
"existing directory (to create the full path recursively, see [method "
"make_dir_recursive]).\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"创建一个目录。参数可以是当前目录的相对路径,也可以是绝对路径。目标目录应该放"
"置在一个已经存在的目录中(如果要递归创建完整的路径,请参见[make_dir_recursive "
"method])。\n"
"返回[enum Error]代码常量之一(成功时返回[code]OK[/code])。"

#: doc/classes/Directory.xml:134
msgid ""
"Creates a target directory and all necessary intermediate directories in its "
"path, by calling [method make_dir] recursively. The argument can be relative "
"to the current directory, or an absolute path.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"通过递归调用[make_dir]方法,创建一个目标目录和其路径中所有必要的中间目录。参"
"数可以是相对于当前目录的,也可以是绝对路径。\n"
"返回[enum Error]代码常量之一(成功时返回[code]OK[/code])。"

#: doc/classes/Directory.xml:142
msgid ""
"Opens an existing directory of the filesystem. The [code]path[/code] "
"argument can be within the project tree ([code]res://folder[/code]), the "
"user directory ([code]user://folder[/code]) or an absolute path of the user "
"filesystem (e.g. [code]/tmp/folder[/code] or [code]C:\\tmp\\folder[/code]).\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"打开文件系统的现有目录。 [code] path [/code]参数可以位于项目树([code] "
"res:// folder [/code]),用户目录([code] user:// folder [/code])或以下位"
"置的绝对路径内:用户文件系统(例如[code] / tmp / folder [/code]或[code] C:"
"\\ tmp \\ folder [/code])。\n"
"返回[enum Error]代码常量之一(成功时返回[code] OK [/code])。"

#: doc/classes/Directory.xml:150
msgid ""
"Deletes the target file or an empty directory. The argument can be relative "
"to the current directory, or an absolute path. If the target directory is "
"not empty, the operation will fail.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"删除目标文件或空目录。参数可以是相对于当前目录的,也可以是绝对路径。如果目标"
"目录不是空的,操作将失败。\n"
"返回[enum Error]代码常量之一(成功时返回[code]OK[/code])。"

#: doc/classes/Directory.xml:159
#, fuzzy
msgid ""
"Renames (move) the [code]from[/code] file or directory to the [code]to[/"
"code] destination. Both arguments should be paths to files or directories, "
"either relative or absolute. If the destination file or directory exists and "
"is not access-protected, it will be overwritten.\n"
"Returns one of the [enum Error] code constants ([code]OK[/code] on success)."
msgstr ""
"将[code]from[/code]文件重命名(移动)到[code]to[/code]目的地。两个参数都应该"
"是相对或绝对文件的路径。如果目标文件存在并且没有访问保护,它将被覆盖。\n"
"返回[enum Error]代码常量之一(成功时返回[code]OK[/code])。"

#: doc/classes/DTLSServer.xml:4
msgid "Helper class to implement a DTLS server."
msgstr "实现DTLS服务器的辅助类。"

#: doc/classes/DTLSServer.xml:7
msgid ""
"This class is used to store the state of a DTLS server. Upon [method setup] "
"it converts connected [PacketPeerUDP] to [PacketPeerDTLS] accepting them via "
"[method take_connection] as DTLS clients. Under the hood, this class is used "
"to store the DTLS state and cookies of the server. The reason of why the "
"state and cookies are needed is outside of the scope of this documentation.\n"
"Below a small example of how to use it:\n"
"[codeblock]\n"
"# server.gd\n"
"extends Node\n"
"\n"
"var dtls := DTLSServer.new()\n"
"var server := UDPServer.new()\n"
"var peers = []\n"
"\n"
"func _ready():\n"
"    server.listen(4242)\n"
"    var key = load(\"key.key\") # Your private key.\n"
"    var cert = load(\"cert.crt\") # Your X509 certificate.\n"
"    dtls.setup(key, cert)\n"
"\n"
"func _process(delta):\n"
"    while server.is_connection_available():\n"
"        var peer : PacketPeerUDP = server.take_connection()\n"
"        var dtls_peer : PacketPeerDTLS = dtls.take_connection(peer)\n"
"        if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:\n"
"            continue # It is normal that 50% of the connections fails due to "
"cookie exchange.\n"
"        print(\"Peer connected!\")\n"
"        peers.append(dtls_peer)\n"
"    for p in peers:\n"
"        p.poll() # Must poll to update the state.\n"
"        if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n"
"            while p.get_available_packet_count() > 0:\n"
"                print(\"Received message from client: %s\" % p.get_packet()."
"get_string_from_utf8())\n"
"                p.put_packet(\"Hello DTLS client\".to_utf8())\n"
"[/codeblock]\n"
"[codeblock]\n"
"# client.gd\n"
"extends Node\n"
"\n"
"var dtls := PacketPeerDTLS.new()\n"
"var udp := PacketPeerUDP.new()\n"
"var connected = false\n"
"\n"
"func _ready():\n"
"    udp.connect_to_host(\"127.0.0.1\", 4242)\n"
"    dtls.connect_to_peer(udp, false) # Use true in production for "
"certificate validation!\n"
"\n"
"func _process(delta):\n"
"    dtls.poll()\n"
"    if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n"
"        if !connected:\n"
"            # Try to contact server\n"
"            dtls.put_packet(\"The answer is... 42!\".to_utf8())\n"
"        while dtls.get_available_packet_count() > 0:\n"
"            print(\"Connected: %s\" % dtls.get_packet()."
"get_string_from_utf8())\n"
"            connected = true\n"
"[/codeblock]"
msgstr ""
"这个类用来存储DTLS服务器的状态。在[method setup]时,它将连接的[PacketPeerUDP]"
"转换为[PacketPeerDTLS],通过[method take_connection]接受它们作为DTLS客户端。"
"底下,这个类是用来存储服务器的DTLS状态和cookie的。为什么需要状态和cookie的原"
"因不在本文档的范围内。\n"
"下面以一个小例子来说明如何使用它。\n"
"[codeblock]\n"
"# server.gd\n"
"extends Node\n"
"\n"
"var dtls := DTLSServer.new()\n"
"var server := UDPServer.new()\n"
"var peers = []\n"
"\n"
"func _ready():\n"
"    server.listen(4242)\n"
"    var key = load(\"key.key\") # Your private key.\n"
"    var cert = load(\"cert.crt\") # Your X509 certificate.\n"
"    dtls.setup(key, cert)\n"
"\n"
"func _process(delta):\n"
"    while server.is_connection_available():\n"
"        var peer : PacketPeerUDP = server.take_connection()\n"
"        var dtls_peer : PacketPeerDTLS = dtls.take_connection(peer)\n"
"        if dtls_peer.get_status() != PacketPeerDTLS.STATUS_HANDSHAKING:\n"
"            continue # It is normal that 50% of the connections fails due to "
"cookie exchange.\n"
"        print(\"Peer connected!\")\n"
"        peers.append(dtls_peer)\n"
"    for p in peers:\n"
"        p.poll() # Must poll to update the state.\n"
"        if p.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n"
"            while p.get_available_packet_count() > 0:\n"
"                print(\"Received message from client: %s\" % p.get_packet()."
"get_string_from_utf8())\n"
"                p.put_packet(\"Hello DTLS client\".to_utf8())\n"
"[/codeblock]\n"
"[codeblock]\n"
"# client.gd\n"
"extends Node\n"
"\n"
"var dtls := PacketPeerDTLS.new()\n"
"var udp := PacketPeerUDP.new()\n"
"var connected = false\n"
"\n"
"func _ready():\n"
"    udp.connect_to_host(\"127.0.0.1\", 4242)\n"
"    dtls.connect_to_peer(udp, false) # Use true in production for "
"certificate validation!\n"
"\n"
"func _process(delta):\n"
"    dtls.poll()\n"
"    if dtls.get_status() == PacketPeerDTLS.STATUS_CONNECTED:\n"
"        if !connected:\n"
"            # Try to contact server\n"
"            dtls.put_packet(\"The answer is... 42!\".to_utf8())\n"
"        while dtls.get_available_packet_count() > 0:\n"
"            print(\"Connected: %s\" % dtls.get_packet()."
"get_string_from_utf8())\n"
"            connected = true\n"
"[/codeblock]"

#: doc/classes/DTLSServer.xml:70
msgid ""
"Setup the DTLS server to use the given [code]private_key[/code] and provide "
"the given [code]certificate[/code] to clients. You can pass the optional "
"[code]chain[/code] parameter to provide additional CA chain information "
"along with the certificate."
msgstr ""
"设置 DTLS 服务器使用给定的 [code]private_key[/code] 并向客户端提供给定的 "
"[code]certificate[/code] 。您可以传递可选的 [code]chain[/code] 参数,以便在提"
"供证书的同时提供额外的 CA 证书息。"

#: doc/classes/DTLSServer.xml:77
#, fuzzy
msgid ""
"Try to initiate the DTLS handshake with the given [code]udp_peer[/code] "
"which must be already connected (see [method PacketPeerUDP."
"connect_to_host]).\n"
"[b]Note:[/b] You must check that the state of the return PacketPeerUDP is "
"[constant PacketPeerDTLS.STATUS_HANDSHAKING], as it is normal that 50% of "
"the new connections will be invalid due to cookie exchange."
msgstr ""
"尝试与给定的 [code]udp_peer[/code] 启动 DTLS 握手,该 peer 必须已经连接(参"
"见 [method PacketPeerUDP.connect_to_host])。\n"
"[b]注意[/b]。你必须检查返回的PacketPeerUDP的状态是否为[常量PacketPeerDTLS."
"STATUS_HANDSHAKING],因为正常情况下,50%的新连接会因为cookie交换而无效。"

#: doc/classes/DynamicFont.xml:4
msgid "DynamicFont renders vector font files at runtime."
msgstr "DynamicFont在运行时渲染矢量字体文件。"

#: doc/classes/DynamicFont.xml:7
#, fuzzy
msgid ""
"DynamicFont renders vector font files dynamically at runtime instead of "
"using a prerendered texture atlas like [BitmapFont]. This trades the faster "
"loading time of [BitmapFont]s for the ability to change font parameters like "
"size and spacing during runtime. [DynamicFontData] is used for referencing "
"the font file paths. DynamicFont also supports defining one or more fallback "
"fonts, which will be used when displaying a character not supported by the "
"main font.\n"
"DynamicFont uses the [url=https://www.freetype.org/]FreeType[/url] library "
"for rasterization. Supported formats are TrueType ([code].ttf[/code]), "
"OpenType ([code].otf[/code]) and Web Open Font Format 1 ([code].woff[/"
"code]). Web Open Font Format 2 ([code].woff2[/code]) is [i]not[/i] "
"supported.\n"
"[codeblock]\n"
"var dynamic_font = DynamicFont.new()\n"
"dynamic_font.font_data = load(\"res://BarlowCondensed-Bold.ttf\")\n"
"dynamic_font.size = 64\n"
"$\"Label\".set(\"custom_fonts/font\", dynamic_font)\n"
"[/codeblock]\n"
"[b]Note:[/b] DynamicFont doesn't support features such as kerning, right-to-"
"left typesetting, ligatures, text shaping, variable fonts and optional font "
"features yet. If you wish to \"bake\" an optional font feature into a TTF "
"font file, you can use [url=https://fontforge.org/]FontForge[/url] to do so. "
"In FontForge, use [b]File > Generate Fonts[/b], click [b]Options[/b], choose "
"the desired features then generate the font."
msgstr ""
"DynamicFont在运行时动态地渲染矢量字体文件,如TTF或OTF,而不是像[BitmapFont]那"
"样使用预先渲染的纹理图集。这是以[BitmapFont]更快的加载时间来换取在运行时改变"
"字体参数的效果如大小和间距。[DynamicFontData]引用字体文件路径。DynamicFont还"
"支持定义一个或多个备用字体,当显示主字体不支持的字符时,将使用这些字体。\n"
"DynamicFont使用[url=https://www.freetype.org/]FreeType[/url]库进行光栅化。\n"
"[codeblock]\n"
"var dynamic_font = DynamicFont.new()\n"
"dynamic_font.font_data = load(\"res://BarlowCondensed-Bold.ttf\")\n"
"Dynamic_font.size = 64\n"
"$\"Label\".set(\"custom_fonts/font\", dynamic_font)\n"
"[/codeblock]\n"
"[b]注意:[/b] DynamicFont 还不支持从右到左排版、连字、文本塑形、可变字体和可"
"选字体功能等功能。如果你想把可选字体功能 \"烘焙\" 到TTF字体文件中,可以使用"
"[url=https://fontforge.org/]FontForge[/url]来实现。在FontForge中,使用[b]文件"
">生成字体[/b],点击[b]选项[/b],选择所需的特征,然后生成字体。"

#: doc/classes/DynamicFont.xml:25
msgid "Adds a fallback font."
msgstr "添加一个后备字体。"

#: doc/classes/DynamicFont.xml:31
msgid ""
"Returns a string containing all the characters available in the main and all "
"the fallback fonts.\n"
"If a given character is included in more than one font, it appears only once "
"in the returned string."
msgstr ""
"返回一个包含主字体和后备字体中所有可用字符的字符串。\n"
"如果多个字体中包含同一个字符,那么它在返回的字符串第一次出现的位置。"

#: doc/classes/DynamicFont.xml:39
msgid "Returns the fallback font at index [code]idx[/code]."
msgstr "返回位于索引[code]idx[/code]处的后备字体。"

#: doc/classes/DynamicFont.xml:45
msgid "Returns the number of fallback fonts."
msgstr "返回后备字体的数量。"

#: doc/classes/DynamicFont.xml:52
msgid ""
"Returns the spacing for the given [code]type[/code] (see [enum SpacingType])."
msgstr "返回给定[code]type[/code]的间距(参见[enum SpacingType])。"

#: doc/classes/DynamicFont.xml:59
msgid "Removes the fallback font at index [code]idx[/code]."
msgstr "移除位于索引[code]idx[/code]处的后备字体。"

#: doc/classes/DynamicFont.xml:67
msgid "Sets the fallback font at index [code]idx[/code]."
msgstr "设置索引[code]idx[/code]处的后备字体。"

#: doc/classes/DynamicFont.xml:75
msgid ""
"Sets the spacing for [code]type[/code] (see [enum SpacingType]) to "
"[code]value[/code] in pixels (not relative to the font size)."
msgstr ""
"给[code]type[/code]设置间距(参见[enum SpacingType])为[code]value[/code],单位"
"为像素(与字体大小无关)。"

#: doc/classes/DynamicFont.xml:81
msgid "Extra spacing at the bottom in pixels."
msgstr "底部的额外间距,单位为像素。"

#: doc/classes/DynamicFont.xml:84
msgid ""
"Extra spacing for each character in pixels.\n"
"This can be a negative number to make the distance between characters "
"smaller."
msgstr ""

#: doc/classes/DynamicFont.xml:88
msgid ""
"Extra spacing for the space character (in addition to [member "
"extra_spacing_char]) in pixels.\n"
"This can be a negative number to make the distance between words smaller."
msgstr ""

#: doc/classes/DynamicFont.xml:92
msgid "Extra spacing at the top in pixels."
msgstr "顶部的额外间距,单位为像素。"

#: doc/classes/DynamicFont.xml:95
msgid "The font data."
msgstr "字体数据。"

#: doc/classes/DynamicFont.xml:98
msgid ""
"The font outline's color.\n"
"[b]Note:[/b] It's recommended to leave this at the default value so that you "
"can adjust it in individual controls. For example, if the outline is made "
"black here, it won't be possible to change its color using a Label's font "
"outline modulate theme item."
msgstr ""
"字体轮廓的颜色。\n"
"[b]注意:[/b]建议将此值保留为默认值,以便您可以在各个控件中对其进行调整。例"
"如,如果在此处将轮廓设为黑色,则无法使用Label的字体轮廓调制主题项来更改其颜"
"色。"

#: doc/classes/DynamicFont.xml:102
msgid "The font outline's thickness in pixels (not relative to the font size)."
msgstr "字体轮廓的厚度,单位为像素(与字体大小无关)。"

#: doc/classes/DynamicFont.xml:105
msgid "The font size in pixels."
msgstr "字体大小,单位为像素。"

#: doc/classes/DynamicFont.xml:108
msgid ""
"If [code]true[/code], filtering is used. This makes the font blurry instead "
"of pixelated when scaling it if font oversampling is disabled or "
"ineffective. It's recommended to enable this when using the font in a "
"control whose size changes over time, unless a pixel art aesthetic is "
"desired."
msgstr ""

#: doc/classes/DynamicFont.xml:111
msgid ""
"If [code]true[/code], mipmapping is used. This improves the font's "
"appearance when downscaling it if font oversampling is disabled or "
"ineffective."
msgstr ""

#: doc/classes/DynamicFont.xml:116
msgid "Spacing at the top."
msgstr "顶部的间距。"

#: doc/classes/DynamicFont.xml:119
msgid "Spacing at the bottom."
msgstr "底部间距。"

#: doc/classes/DynamicFont.xml:122
msgid "Spacing for each character."
msgstr ""

#: doc/classes/DynamicFont.xml:125
msgid "Spacing for the space character."
msgstr ""

#: doc/classes/DynamicFontData.xml:4
msgid "Used with [DynamicFont] to describe the location of a font file."
msgstr "与[DynamicFont]一起使用,用于描述字体文件的位置。"

#: doc/classes/DynamicFontData.xml:7
msgid ""
"Used with [DynamicFont] to describe the location of a vector font file for "
"dynamic rendering at runtime."
msgstr "与[DynamicFont]一起使用,用于描述运行时动态渲染的矢量字体文件的位置。"

#: doc/classes/DynamicFontData.xml:16
msgid ""
"If [code]true[/code], the font is rendered with anti-aliasing. This property "
"applies both to the main font and its outline (if it has one)."
msgstr ""
"如果[code]true[/code],则字体会以抗锯齿方式呈现。此属性既适用于主字体,也适用"
"于其轮廓(如果有)。"

#: doc/classes/DynamicFontData.xml:19
msgid "The path to the vector font file."
msgstr "矢量字体文件的路径。"

#: doc/classes/DynamicFontData.xml:22
msgid "The font hinting mode used by FreeType. See [enum Hinting] for options."
msgstr "FreeType使用的字体提示模式。参见 [enum Hinting] 选项。"

#: doc/classes/DynamicFontData.xml:27
msgid "Disables font hinting (smoother but less crisp)."
msgstr "禁用字体提示(更平滑但不那么清晰)。"

#: doc/classes/DynamicFontData.xml:30
msgid "Use the light font hinting mode."
msgstr "使用浅色字体提示模式。"

#: doc/classes/DynamicFontData.xml:33
msgid "Use the default font hinting mode (crisper but less smooth)."
msgstr "使用默认的字体提示模式(更清晰但不太流畅)。"

#: doc/classes/EditorExportPlugin.xml:4
#, fuzzy
msgid "A script that is executed when exporting the project."
msgstr "导出项目时执行的脚本。"

#: doc/classes/EditorExportPlugin.xml:7
msgid ""
"Editor export plugins are automatically activated whenever the user exports "
"the project. Their most common use is to determine what files are being "
"included in the exported project. For each plugin, [method _export_begin] is "
"called at the beginning of the export process and then [method _export_file] "
"is called for each exported file."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:19
msgid ""
"Virtual method to be overridden by the user. It is called when the export "
"starts and provides all information about the export. [code]features[/code] "
"is the list of features for the export, [code]is_debug[/code] is [code]true[/"
"code] for debug builds, [code]path[/code] is the target path for the "
"exported project. [code]flags[/code] is only used when running a runnable "
"profile, e.g. when using native run on Android."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:25
msgid ""
"Virtual method to be overridden by the user. Called when the export is "
"finished."
msgstr "可以被用户重写的虚拟方法。在导出完成后被调用。"

#: doc/classes/EditorExportPlugin.xml:34
msgid ""
"Virtual method to be overridden by the user. Called for each exported file, "
"providing arguments that can be used to identify the file. [code]path[/code] "
"is the path of the file, [code]type[/code] is the [Resource] represented by "
"the file (e.g. [PackedScene]) and [code]features[/code] is the list of "
"features for the export.\n"
"Calling [method skip] inside this callback will make the file not included "
"in the export."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:44
msgid ""
"Adds a custom file to be exported. [code]path[/code] is the virtual path "
"that can be used to load the file, [code]file[/code] is the binary data of "
"the file. If [code]remap[/code] is [code]true[/code], file will not be "
"exported, but instead remapped to the given [code]path[/code]."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:51
#, fuzzy
msgid ""
"Adds an iOS bundle file from the given [code]path[/code] to the exported "
"project."
msgstr "将一个证书保存到给定的[code]path[/code],应是一个 \"*.crt \"文件。"

#: doc/classes/EditorExportPlugin.xml:58
msgid ""
"Adds a C++ code to the iOS export. The final code is created from the code "
"appended by each active export plugin."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:65
msgid ""
"Adds a dynamic library (*.dylib, *.framework) to Linking Phase in iOS's "
"Xcode project and embeds it into resulting binary.\n"
"[b]Note:[/b] For static libraries (*.a) works in same way as [method "
"add_ios_framework].\n"
"This method should not be used for System libraries as they are already "
"present on the device."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:74
msgid ""
"Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to "
"Linking Phase in iOS's Xcode project."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:81
#, fuzzy
msgid "Adds linker flags for the iOS export."
msgstr "在标签堆中添加一个换行标签。"

#: doc/classes/EditorExportPlugin.xml:88
msgid "Adds content for iOS Property List files."
msgstr ""

#: doc/classes/EditorExportPlugin.xml:95
#, fuzzy
msgid "Adds a static lib from the given [code]path[/code] to the iOS project."
msgstr "将一个证书保存到给定的[code]path[/code],应是一个 \"*.crt \"文件。"

#: doc/classes/EditorExportPlugin.xml:103
#, fuzzy
msgid ""
"Adds a shared object with the given [code]tags[/code] and destination "
"[code]path[/code]."
msgstr "添加具有指定[code]path[/code]和[code]weights[/code]的骨骼."

#: doc/classes/EditorExportPlugin.xml:109
msgid ""
"To be called inside [method _export_file]. Skips the current file, so it's "
"not included in the export."
msgstr ""

#: doc/classes/EditorFeatureProfile.xml:4
msgid ""
"An editor feature profile which can be used to disable specific features."
msgstr "编辑器功能配置文件,可用于禁用特定功能。"

#: doc/classes/EditorFeatureProfile.xml:7
msgid ""
"An editor feature profile can be used to disable specific features of the "
"Godot editor. When disabled, the features won't appear in the editor, which "
"makes the editor less cluttered. This is useful in education settings to "
"reduce confusion or when working in a team. For example, artists and level "
"designers could use a feature profile that disables the script editor to "
"avoid accidentally making changes to files they aren't supposed to edit.\n"
"To manage editor feature profiles visually, use [b]Editor > Manage Feature "
"Profiles...[/b] at the top of the editor window."
msgstr ""
"编辑器功能配置文件可以用来禁用Godot编辑器的特定功能。当禁用时,这些功能将不会"
"出现在编辑器中,从而使编辑器不那么混乱。这个设置使编辑器更简洁,在团队中工作"
"时。例如,游戏美术和关卡设计师可以使用禁用脚本编辑器的功能配置文件,以避免意"
"外地对他们不应该编辑的文件进行更改。\n"
"要可视化地管理编辑器功能配置文件,请使用编辑器窗口顶部的[b]编辑器 >打开\"编辑"
"器数据/设置\"文件夹..[/b]。"

#: doc/classes/EditorFeatureProfile.xml:17
msgid "Returns the specified [code]feature[/code]'s human-readable name."
msgstr "返回指定的[code]feature[/code]的可读名称。"

#: doc/classes/EditorFeatureProfile.xml:24
msgid ""
"Returns [code]true[/code] if the class specified by [code]class_name[/code] "
"is disabled. When disabled, the class won't appear in the Create New Node "
"dialog."
msgstr ""
"如果[code]class_name[/code]指定的类被禁用,返回[code]true[/code]。当类被禁用"
"时,该类将不会出现在创建新节点的对话框中。"

#: doc/classes/EditorFeatureProfile.xml:31
msgid ""
"Returns [code]true[/code] if editing for the class specified by "
"[code]class_name[/code] is disabled. When disabled, the class will still "
"appear in the Create New Node dialog but the inspector will be read-only "
"when selecting a node that extends the class."
msgstr ""
"如果[code]class_name[/code]指定的类的编辑被禁用,返回[code]true[/code]。禁用"
"时,类仍然会出现在 \"创建新节点 \"对话框中,但在选择继承的节点时,检查器将是"
"只读的。"

#: doc/classes/EditorFeatureProfile.xml:39
msgid ""
"Returns [code]true[/code] if [code]property[/code] is disabled in the class "
"specified by [code]class_name[/code]. When a property is disabled, it won't "
"appear in the inspector when selecting a node that extends the class "
"specified by [code]class_name[/code]."
msgstr ""
"如果[code]class_name[/code]指定的类中的[code]property[/code]被禁用,则返回"
"[code]true[/code]。当属性被禁用时,当[code]class_name[/code]类被指定为类的(继"
"承)父节点时,它将不会出现在检查器中。"

#: doc/classes/EditorFeatureProfile.xml:46
msgid ""
"Returns [code]true[/code] if the [code]feature[/code] is disabled. When a "
"feature is disabled, it will disappear from the editor entirely."
msgstr ""
"如果[code]feature[/code]被禁用,返回[code]true[/code]。当一个功能被禁用时,它"
"将从编辑器中完全消失。"

#: doc/classes/EditorFeatureProfile.xml:53
msgid ""
"Loads an editor feature profile from a file. The file must follow the JSON "
"format obtained by using the feature profile manager's [b]Export[/b] button "
"or the [method save_to_file] method."
msgstr ""
"从文件中加载一个编辑器功能配置文件。该文件必须遵循JSON格式,通过使用功能配置"
"文件管理器的[b]Export[/b]按钮或[method save_to_file]方法获得。"

#: doc/classes/EditorFeatureProfile.xml:60
msgid ""
"Saves the editor feature profile to a file in JSON format. It can then be "
"imported using the feature profile manager's [b]Import[/b] button or the "
"[method load_from_file] button."
msgstr ""
"将编辑器的功能配置保存到JSON格式的文件中。然后可以使用特征配置文件管理器的[b]"
"导入[/b]按钮或[method load_from_file]按钮导入它。"

#: doc/classes/EditorFeatureProfile.xml:68
msgid ""
"If [code]disable[/code] is [code]true[/code], disables the class specified "
"by [code]class_name[/code]. When disabled, the class won't appear in the "
"Create New Node dialog."
msgstr ""
"如果 [code]disable[/code] 是 [code]true[/code],则禁用 [code]class_name[/"
"code] 指定的类。被禁用时,该类不会出现在 \"创建新节点 \"对话框中。"

#: doc/classes/EditorFeatureProfile.xml:76
msgid ""
"If [code]disable[/code] is [code]true[/code], disables editing for the class "
"specified by [code]class_name[/code]. When disabled, the class will still "
"appear in the Create New Node dialog but the inspector will be read-only "
"when selecting a node that extends the class."
msgstr ""
"如果 [code]disable[/code] 为 [code]true[/code],则禁用 [code]class_name[/"
"code] 指定的类的编辑。禁用时,类仍然会出现在 \"创建新节点 \"对话框中,但在选"
"择继承的节点时,检查器将只读。"

#: doc/classes/EditorFeatureProfile.xml:85
msgid ""
"If [code]disable[/code] is [code]true[/code], disables editing for "
"[code]property[/code] in the class specified by [code]class_name[/code]. "
"When a property is disabled, it won't appear in the inspector when selecting "
"a node that extends the class specified by [code]class_name[/code]."
msgstr ""
"如果 [code]disable[/code] 是 [code]true[/code],则禁用 [code]class_name[/"
"code] 指定的类中的 [code]property[/code] 的编辑。当属性被禁用时,当选择继承 "
"[code]class_name[/code] 指定的类的节点时,它将不会出现在检查器中。"

#: doc/classes/EditorFeatureProfile.xml:93
msgid ""
"If [code]disable[/code] is [code]true[/code], disables the editor feature "
"specified in [code]feature[/code]. When a feature is disabled, it will "
"disappear from the editor entirely."
msgstr ""
"如果 [code]disable[/code] 为 [code]true[/code],则禁用 [code]feature[/code] "
"中指定的编辑器功能。当一个功能被禁用时,它将从编辑器中完全消失。"

#: doc/classes/EditorFeatureProfile.xml:99
msgid ""
"The 3D editor. If this feature is disabled, the 3D editor won't display but "
"3D nodes will still display in the Create New Node dialog."
msgstr ""
"3D编辑器。如果禁用此功能,3D编辑器将不显示,但3D节点仍将显示在 \"创建新节点 "
"\"对话框中。"

#: doc/classes/EditorFeatureProfile.xml:102
msgid ""
"The Script tab, which contains the script editor and class reference "
"browser. If this feature is disabled, the Script tab won't display."
msgstr ""
"脚本选项卡,它包含脚本编辑器和类引用浏览器。如果该功能被禁用,脚本选项卡将不"
"会显示。"

#: doc/classes/EditorFeatureProfile.xml:105
msgid ""
"The AssetLib tab. If this feature is disabled, the AssetLib tab won't "
"display."
msgstr "AssetLib选项卡。如果禁用此功能,则不会显示AssetLib选项卡。"

#: doc/classes/EditorFeatureProfile.xml:108
msgid ""
"Scene tree editing. If this feature is disabled, the Scene tree dock will "
"still be visible but will be read-only."
msgstr "场景树编辑。如果禁用此功能,场景树停靠点仍将可见,但将是只读的。"

#: doc/classes/EditorFeatureProfile.xml:111
msgid ""
"The Node dock. If this feature is disabled, signals and groups won't be "
"visible and modifiable from the editor."
msgstr "节点面板。如果此功能被禁用,信号和组将不可见,也不能从编辑器中修改。"

#: doc/classes/EditorFeatureProfile.xml:114
msgid ""
"The FileSystem dock. If this feature is disabled, the FileSystem dock won't "
"be visible."
msgstr "文件系统面板。如果禁用此功能,则文件系统面板将不可见。"

#: doc/classes/EditorFeatureProfile.xml:117
msgid ""
"The Import dock. If this feature is disabled, the Import dock won't be "
"visible."
msgstr "导入扩展面板。如果禁用此功能,则导入扩展面板将不可见。"

#: doc/classes/EditorFeatureProfile.xml:120 doc/classes/SpatialMaterial.xml:471
msgid "Represents the size of the [enum Feature] enum."
msgstr "表示[enum Feature]枚举的大小。"

#: doc/classes/EditorFileDialog.xml:4
msgid "A modified version of [FileDialog] used by the editor."
msgstr "编辑器使用的[FileDialog]的修改版。"

#: doc/classes/EditorFileDialog.xml:15
msgid ""
"Adds a comma-delimited file extension filter option to the "
"[EditorFileDialog] with an optional semi-colon-delimited label.\n"
"For example, [code]\"*.tscn, *.scn; Scenes\"[/code] results in filter text "
"\"Scenes (*.tscn, *.scn)\"."
msgstr ""
"在 [EditorFileDialog] 中添加一个以逗号分隔的文件扩展名过滤选项,可选择以分号"
"分隔的标签。\n"
"例如,[code]\"*.tscn, *.scn; Scenes\"[/code] 的结果是过滤器文本 \"Scenes (*."
"tscn, *.scn)\"。"

#: doc/classes/EditorFileDialog.xml:22
msgid "Removes all filters except for \"All Files (*)\"."
msgstr "删除除“All Files(*)”筛选器之外的所有筛选器。"

#: doc/classes/EditorFileDialog.xml:28
msgid "Returns the [code]VBoxContainer[/code] used to display the file system."
msgstr "返回用于显示文件系统的 [code]VBoxContainer[/code] 。"

#: doc/classes/EditorFileDialog.xml:34
msgid ""
"Notify the [EditorFileDialog] that its view of the data is no longer "
"accurate. Updates the view contents on next view update."
msgstr ""
"通知[EditorFileDialog]它的数据视图不再准确。在下次视图更新时更新视图内容。"

#: doc/classes/EditorFileDialog.xml:40
msgid ""
"The location from which the user may select a file, including [code]res://[/"
"code], [code]user://[/code], and the local file system."
msgstr ""
"用户可以选择文件的位置,包括[code]res://[/code]、[code]user://[/code]和本地文"
"件系统。"

#: doc/classes/EditorFileDialog.xml:43
msgid "The currently occupied directory."
msgstr "当前占用的目录。"

#: doc/classes/EditorFileDialog.xml:46
msgid "The currently selected file."
msgstr "当前选择的文件。"

#: doc/classes/EditorFileDialog.xml:49
msgid "The file system path in the address bar."
msgstr "地址栏中的文件系统路径。"

#: doc/classes/EditorFileDialog.xml:53
msgid ""
"If [code]true[/code], the [EditorFileDialog] will not warn the user before "
"overwriting files."
msgstr ""
"如果[code]true[/code],[EditorFileDialog]将不会在覆盖文件之前警告用户。"

#: doc/classes/EditorFileDialog.xml:56
msgid ""
"The view format in which the [EditorFileDialog] displays resources to the "
"user."
msgstr "[EditorFileDialog]向用户显示资源的视图格式。"

#: doc/classes/EditorFileDialog.xml:59
msgid ""
"The purpose of the [EditorFileDialog], which defines the allowed behaviors."
msgstr ""

#: doc/classes/EditorFileDialog.xml:63
msgid ""
"If [code]true[/code], hidden files and directories will be visible in the "
"[EditorFileDialog]."
msgstr "如果[code]true[/code],隐藏的文件和目录将在[EditorFileDialog]中可见。"

#: doc/classes/EditorFileDialog.xml:71
msgid "Emitted when a directory is selected."
msgstr "选择目录时触发。"

#: doc/classes/EditorFileDialog.xml:77
msgid "Emitted when a file is selected."
msgstr "选择文件时触发。"

#: doc/classes/EditorFileDialog.xml:83
msgid "Emitted when multiple files are selected."
msgstr "选择多个文件时触发。"

#: doc/classes/EditorFileDialog.xml:89
msgid ""
"The [EditorFileDialog] can select only one file. Accepting the window will "
"open the file."
msgstr "[EditorFileDialog] 仅可以选择一个文件,选择同意窗口将会打开这个文件。"

#: doc/classes/EditorFileDialog.xml:92
msgid ""
"The [EditorFileDialog] can select multiple files. Accepting the window will "
"open all files."
msgstr ""
"[EditorFileDialog] 可以选择多个文件,选择同意窗口将会打开所有选择的文件。"

#: doc/classes/EditorFileDialog.xml:95
msgid ""
"The [EditorFileDialog] can select only one directory. Accepting the window "
"will open the directory."
msgstr "[EditorFileDialog] 可以选择一个目录,选择同意窗口将会打开这个目录。"

#: doc/classes/EditorFileDialog.xml:98
msgid ""
"The [EditorFileDialog] can select a file or directory. Accepting the window "
"will open it."
msgstr ""
"[EditorFileDialog] 可以选择一个文件或者目录,选择同意窗口将会打开这个文件或目"
"录。"

#: doc/classes/EditorFileDialog.xml:101
msgid ""
"The [EditorFileDialog] can select only one file. Accepting the window will "
"save the file."
msgstr "[EditorFileDialog] 可以选择一个文件,选择同意窗口将会保存这个文件。"

#: doc/classes/EditorFileDialog.xml:104
msgid ""
"The [EditorFileDialog] can only view [code]res://[/code] directory contents."
msgstr "[EditorFileDialog] 只能查看 [code]res://[/code] 目录里的内容。"

#: doc/classes/EditorFileDialog.xml:107
msgid ""
"The [EditorFileDialog] can only view [code]user://[/code] directory contents."
msgstr "[EditorFileDialog] 只能查看[code]user://[/code] 目录里的内容。"

#: doc/classes/EditorFileDialog.xml:110
msgid "The [EditorFileDialog] can view the entire local file system."
msgstr "[EditorFileDialog] 可以查看整个本地文件系统。"

#: doc/classes/EditorFileDialog.xml:113
msgid "The [EditorFileDialog] displays resources as thumbnails."
msgstr "[EditorFileDialog] 以图标的形式显示资源。"

#: doc/classes/EditorFileDialog.xml:116
msgid "The [EditorFileDialog] displays resources as a list of filenames."
msgstr "[EditorFileDialog] 以文件名列表的形式显示资源。"

#: doc/classes/EditorFileSystem.xml:4
msgid "Resource filesystem, as the editor sees it."
msgstr "编辑器可以浏览的资源文件系统。"

#: doc/classes/EditorFileSystem.xml:7
msgid ""
"This object holds information of all resources in the filesystem, their "
"types, etc.\n"
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_resource_filesystem]."
msgstr ""
"这个对象(object)储存着文件系统里所有的资源的信息,类型和其他。\n"
"[b]Note:[/b] 这个类(class)不应该被直接实例化。应该使用下列方法(method)"
"[method EditorInterface.get_resource_filesystem]来读取单例(singleton)。"

#: doc/classes/EditorFileSystem.xml:17
msgid ""
"Returns the resource type of the file, given the full path. This returns a "
"string such as [code]\"Resource\"[/code] or [code]\"GDScript\"[/code], "
"[i]not[/i] a file extension such as [code]\".gd\"[/code]."
msgstr ""

#: doc/classes/EditorFileSystem.xml:23
msgid "Gets the root directory object."
msgstr "获取根目录对象。"

#: doc/classes/EditorFileSystem.xml:30
msgid "Returns a view into the filesystem at [code]path[/code]."
msgstr "返回在 [code]path[/code] 文件系统的视图。"

#: doc/classes/EditorFileSystem.xml:36
msgid "Returns the scan progress for 0 to 1 if the FS is being scanned."
msgstr "如果文件系统正在被扫描,返回扫描的进度,值为0-1。"

#: doc/classes/EditorFileSystem.xml:42
msgid "Returns [code]true[/code] of the filesystem is being scanned."
msgstr "返回 [code]true[/code] 如果文件系统已经被扫[/code]描完毕。"

#: doc/classes/EditorFileSystem.xml:48
msgid "Scan the filesystem for changes."
msgstr "扫描文件系统的改动。"

#: doc/classes/EditorFileSystem.xml:54
msgid "Check if the source of any imported resource changed."
msgstr "检查是否更改了已导入资源的来源。"

#: doc/classes/EditorFileSystem.xml:61
msgid ""
"Update a file information. Call this if an external program (not Godot) "
"modified the file."
msgstr "更新文件信息。如果外部程序(不是Godot)修改了该文件,则调用此函数。"

#: doc/classes/EditorFileSystem.xml:67
msgid "Scans the script files and updates the list of custom class names."
msgstr "扫描脚本文件并且更新自定义类(class)名称列表。"

#: doc/classes/EditorFileSystem.xml:74
msgid "Emitted if the filesystem changed."
msgstr "在文件系统更改的时候触发。"

#: doc/classes/EditorFileSystem.xml:80
#, fuzzy
msgid "Emitted if a resource is reimported."
msgstr "当资源被重新导入时,触发该信号。"

#: doc/classes/EditorFileSystem.xml:86
msgid ""
"Emitted if at least one resource is reloaded when the filesystem is scanned."
msgstr "如果在扫描文件系统的时候发现至少一个资源被重载那么触发信号。"

#: doc/classes/EditorFileSystem.xml:92
msgid "Emitted if the source of any imported file changed."
msgstr "如果导入文件的来源发生变化,则触发。"

#: doc/classes/EditorFileSystemDirectory.xml:4
msgid "A directory for the resource filesystem."
msgstr "资源文件系统的目录。"

#: doc/classes/EditorFileSystemDirectory.xml:7
msgid "A more generalized, low-level variation of the directory concept."
msgstr "目录概念的一个更概括的、低级的概念。"

#: doc/classes/EditorFileSystemDirectory.xml:16
msgid ""
"Returns the index of the directory with name [code]name[/code] or [code]-1[/"
"code] if not found."
msgstr ""
"返回目录的索引,包括名字 [code]name[/code],如果不存在则返回 [code]-1[/"
"code]。"

#: doc/classes/EditorFileSystemDirectory.xml:23
msgid ""
"Returns the index of the file with name [code]name[/code] or [code]-1[/code] "
"if not found."
msgstr ""
"返回文件的索引,包括名字 [code]name[/code],如果不存在则返回 [code]-1[/"
"code]。"

#: doc/classes/EditorFileSystemDirectory.xml:30
msgid "Returns the name of the file at index [code]idx[/code]."
msgstr "返回文件索引 [code]idx[/code] 寻找到的文件名。"

#: doc/classes/EditorFileSystemDirectory.xml:36
msgid "Returns the number of files in this directory."
msgstr "返回目录里文件的数量。"

#: doc/classes/EditorFileSystemDirectory.xml:43
msgid ""
"Returns [code]true[/code] if the file at index [code]idx[/code] imported "
"properly."
msgstr ""
"如果这个文件在索引 [code]idx[/code] 处成功导入,返回 [code]true[/code]。"

#: doc/classes/EditorFileSystemDirectory.xml:50
msgid "Returns the path to the file at index [code]idx[/code]."
msgstr "返回索引为[code]idx[/code] 文件的路径。"

#: doc/classes/EditorFileSystemDirectory.xml:57
msgid ""
"Returns the base class of the script class defined in the file at index "
"[code]idx[/code]. If the file doesn't define a script class using the "
"[code]class_name[/code] syntax, this will return an empty string."
msgstr ""
"返回这个文件中脚本类(script class)在索引处[code]idx[/code]定义的基类(base "
"class)。如果这个文件没有使用 [code]class_name[/code] 关键字定义脚本类,将返回"
"一个空字符串。"

#: doc/classes/EditorFileSystemDirectory.xml:64
msgid ""
"Returns the name of the script class defined in the file at index [code]idx[/"
"code]. If the file doesn't define a script class using the [code]class_name[/"
"code] syntax, this will return an empty string."
msgstr ""
"返回文件在索引 [code]idx[/code] 处定义的脚本类(class)。如果这个文件没有使"
"用 [code]class_name[/code] 定义脚本类(class),这将会返回一个空字符串。"

#: doc/classes/EditorFileSystemDirectory.xml:71
msgid ""
"Returns the resource type of the file at index [code]idx[/code]. This "
"returns a string such as [code]\"Resource\"[/code] or [code]\"GDScript\"[/"
"code], [i]not[/i] a file extension such as [code]\".gd\"[/code]."
msgstr ""

#: doc/classes/EditorFileSystemDirectory.xml:77
msgid "Returns the name of this directory."
msgstr "返回这个目录的名字。"

#: doc/classes/EditorFileSystemDirectory.xml:83
msgid ""
"Returns the parent directory for this directory or [code]null[/code] if "
"called on a directory at [code]res://[/code] or [code]user://[/code]."
msgstr ""
"返回这个目录的上层目录,如果在 [code]res://[/code] 或 [code]user://[/code] 调"
"用这个方法,将会返回 [code]null[/code]。"

#: doc/classes/EditorFileSystemDirectory.xml:89
msgid "Returns the path to this directory."
msgstr "返回这个目录的路径。"

#: doc/classes/EditorFileSystemDirectory.xml:96
msgid "Returns the subdirectory at index [code]idx[/code]."
msgstr "返回在索引 [code]idx[/code] 处的子目录。"

#: doc/classes/EditorFileSystemDirectory.xml:102
msgid "Returns the number of subdirectories in this directory."
msgstr "返回这个目录的子目录的数量。"

#: doc/classes/EditorImportPlugin.xml:4
msgid ""
"Registers a custom resource importer in the editor. Use the class to parse "
"any file and import it as a new resource type."
msgstr ""
"在编辑器中注册一个自定义资源导入器。使用该类来解析任何文件,并将其作为新的资"
"源类型导入。"

#: doc/classes/EditorImportPlugin.xml:7
#, fuzzy
msgid ""
"EditorImportPlugins provide a way to extend the editor's resource import "
"functionality. Use them to import resources from custom files or to provide "
"alternatives to the editor's existing importers. Register your "
"[EditorPlugin] with [method EditorPlugin.add_import_plugin].\n"
"EditorImportPlugins work by associating with specific file extensions and a "
"resource type. See [method get_recognized_extensions] and [method "
"get_resource_type]. They may optionally specify some import presets that "
"affect the import process. EditorImportPlugins are responsible for creating "
"the resources and saving them in the [code].import[/code] directory.\n"
"Below is an example EditorImportPlugin that imports a [Mesh] from a file "
"with the extension \".special\" or \".spec\":\n"
"[codeblock]\n"
"tool\n"
"extends EditorImportPlugin\n"
"\n"
"func get_importer_name():\n"
"    return \"my.special.plugin\"\n"
"\n"
"func get_visible_name():\n"
"    return \"Special Mesh\"\n"
"\n"
"func get_recognized_extensions():\n"
"    return [\"special\", \"spec\"]\n"
"\n"
"func get_save_extension():\n"
"    return \"mesh\"\n"
"\n"
"func get_resource_type():\n"
"    return \"Mesh\"\n"
"\n"
"func get_preset_count():\n"
"    return 1\n"
"\n"
"func get_preset_name(i):\n"
"    return \"Default\"\n"
"\n"
"func get_import_options(i):\n"
"    return [{\"name\": \"my_option\", \"default_value\": false}]\n"
"\n"
"func import(source_file, save_path, options, platform_variants, gen_files):\n"
"    var file = File.new()\n"
"    if file.open(source_file, File.READ) != OK:\n"
"        return FAILED\n"
"\n"
"    var mesh = Mesh.new()\n"
"    # Fill the Mesh with data read in \"file\", left as an exercise to the "
"reader\n"
"\n"
"    var filename = save_path + \".\" + get_save_extension()\n"
"    return ResourceSaver.save(filename, mesh)\n"
"[/codeblock]"
msgstr ""
"EditorImportPlugins提供了一种扩展编辑器资源导入功能的方法。使用它们从自定义文"
"件中导入资源,或提供编辑器现有导入器的替代方案。用[method EditorPlugin."
"add_import_plugin]注册你的[EditorPlugin]。\n"
"EditorImportPlugins通过与特定的文件扩展名和资源类型关联来工作。参见[method "
"get_recognized_extensions]和[method get_resource_type]。它们可以选择性地指定"
"一些影响导入过程的导入预设。EditorImportPlugins负责创建资源并将其保存在"
"[code].import[/code]目录下。\n"
"下面是一个从扩展名为\".special \"或\".spec \"的文件导入[Mesh]的"
"EditorImportPlugin示例。\n"
"[codeblock]\n"
"tool\n"
"extends EditorImportPlugin\n"
"\n"
"func get_importer_name():\n"
"    return \"my.special.plugin\"\n"
"\n"
"func get_visible_name():\n"
"    return \"Special Mesh Importer\"\n"
"\n"
"func get_recognized_extensions():\n"
"    return [\"special\", \"spec\"]\n"
"\n"
"func get_save_extension():\n"
"    return \"mesh\"\n"
"\n"
"func get_resource_type():\n"
"    return \"Mesh\"\n"
"\n"
"func get_preset_count():\n"
"    return 1\n"
"\n"
"func get_preset_name(i):\n"
"    return \"Default\"\n"
"\n"
"func get_import_options(i):\n"
"    return [{\"name\": \"my_option\", \"default_value\": false}]\n"
"\n"
"func import(source_file, save_path, options, platform_variants, gen_files):\n"
"    var file = File.new()\n"
"    if file.open(source_file, File.READ) != OK:\n"
"        return FAILED\n"
"\n"
"    var mesh = Mesh.new()\n"
"    # Fill the Mesh with data read in \"file\", left as an exercise to the "
"reader\n"
"\n"
"    var filename = save_path + \".\" + get_save_extension()\n"
"    ResourceSaver.save(filename, mesh)\n"
"    return OK\n"
"[/codeblock]"

#: doc/classes/EditorImportPlugin.xml:51 doc/classes/ResourceImporter.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/import_plugins."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/editor/"
"import_plugins.html"

#: doc/classes/EditorImportPlugin.xml:58
msgid ""
"Gets the options and default values for the preset at this index. Returns an "
"Array of Dictionaries with the following keys: [code]name[/code], "
"[code]default_value[/code], [code]property_hint[/code] (optional), "
"[code]hint_string[/code] (optional), [code]usage[/code] (optional)."
msgstr ""
"获取该索引下预设的选项和默认值。返回一个包含以下键名的Dictionaries数组。"
"[code]name[/code], [code]default_value[/code], [code]property_hint[/code](可"
"选), [code]hint_string[/code](可选), [code]use[/code](可选)。"

#: doc/classes/EditorImportPlugin.xml:64
#, fuzzy
msgid ""
"Gets the order of this importer to be run when importing resources. "
"Importers with [i]lower[/i] import orders will be called first, and higher "
"values will be called later. Use this to ensure the importer runs after the "
"dependencies are already imported. The default import order is [code]0[/"
"code] unless overridden by a specific importer. See [enum ResourceImporter."
"ImportOrder] for some predefined values."
msgstr ""
"获取导入资源时该导入器的运行顺序。更高的值将在更晚被调用。使用该值可确保导入"
"器在已导入依赖关系后运行。"

#: doc/classes/EditorImportPlugin.xml:70
msgid "Gets the unique name of the importer."
msgstr "获取导入者的唯一名称。"

#: doc/classes/EditorImportPlugin.xml:78
msgid ""
"This method can be overridden to hide specific import options if conditions "
"are met. This is mainly useful for hiding options that depend on others if "
"one of them is disabled. For example:\n"
"[codeblock]\n"
"func get_option_visibility(option, options):\n"
"    # Only show the lossy quality setting if the compression mode is set to "
"\"Lossy\".\n"
"    if option == \"compress/lossy_quality\" and options.has(\"compress/mode"
"\"):\n"
"        return int(options[\"compress/mode\"]) == COMPRESS_LOSSY\n"
"\n"
"    return true\n"
"[/codeblock]\n"
"Return [code]true[/code] to make all options always visible."
msgstr ""
"这个方法可以在满足条件的情况下重写隐藏特定的导入选项。这主要适用于隐藏依赖于"
"其他选项的选项,如果其中一个选项被禁用。例如:\n"
"[codeblock]\n"
"func get_option_visibility(option, options):\n"
"    # Only show the lossy quality setting if the compression mode is set to "
"\"Lossy\".\n"
"    if option == \"compress/lossy_quality\" and options.has(\"compress/mode"
"\"):\n"
"        return int(options[\"compress/mode\"]) == COMPRESS_LOSSY\n"
"\n"
"    return true\n"
"[/codeblock]\n"
"返回[code]true[/code],使所有选项始终可见。"

#: doc/classes/EditorImportPlugin.xml:93
msgid ""
"Gets the number of initial presets defined by the plugin. Use [method "
"get_import_options] to get the default options for the preset and [method "
"get_preset_name] to get the name of the preset."
msgstr ""
"获取插件定义的初始预置数量。使用[method get_import_options]获取预设的默认选"
"项,使用[method get_preset_name]获取预设的名称。"

#: doc/classes/EditorImportPlugin.xml:100
msgid "Gets the name of the options preset at this index."
msgstr "获取该索引处预设的选项名称。"

#: doc/classes/EditorImportPlugin.xml:106
msgid ""
"Gets the priority of this plugin for the recognized extension. Higher "
"priority plugins will be preferred. The default priority is [code]1.0[/code]."
msgstr ""
"获取该插件对识别的扩展的优先级。优先级越高的插件会被优先选择。默认的优先级是"
"[code]1.0[/code]。"

#: doc/classes/EditorImportPlugin.xml:112
msgid ""
"Gets the list of file extensions to associate with this loader (case-"
"insensitive). e.g. [code][\"obj\"][/code]."
msgstr ""
"获取与该加载器相关联的文件扩展名列表(不区分大小写),例如 [code][\"obj\"][/"
"code]。"

#: doc/classes/EditorImportPlugin.xml:118
msgid ""
"Gets the Godot resource type associated with this loader. e.g. [code]\"Mesh"
"\"[/code] or [code]\"Animation\"[/code]."
msgstr ""
"获取与此加载程序关联的Godot资源类型,例如 [code]\"Mesh\"[/code] 或 "
"[code]\"Animation\"[/code]。"

#: doc/classes/EditorImportPlugin.xml:124
msgid ""
"Gets the extension used to save this resource in the [code].import[/code] "
"directory."
msgstr "获取用于将此资源保存在 [code].import[/code] 目录中的扩展名。"

#: doc/classes/EditorImportPlugin.xml:130
msgid ""
"Gets the name to display in the import window. You should choose this name "
"as a continuation to \"Import as\", e.g. \"Import as Special Mesh\"."
msgstr ""

#: doc/classes/EditorImportPlugin.xml:141
msgid ""
"Imports [code]source_file[/code] into [code]save_path[/code] with the import "
"[code]options[/code] specified. The [code]platform_variants[/code] and "
"[code]gen_files[/code] arrays will be modified by this function.\n"
"This method must be overridden to do the actual importing work. See this "
"class' description for an example of overriding this method."
msgstr ""
"将 [code]sourc、e_file[/code] 导入到 [code]save_path[/code] 中,并指定导入 "
"[code] options[/code] 。[code]platform_variants[/code] 和 [code]gen_files[/"
"code] 数组将被此函数修改。\n"
"这个方法必须被重写才能完成实际的导入工作。参见本类的描述以了解如何重写该方"
"法。"

#: doc/classes/EditorInspector.xml:4
msgid "A tab used to edit properties of the selected node."
msgstr "用于编辑所选节点的属性的选项卡。"

#: doc/classes/EditorInspector.xml:7
#, fuzzy
msgid ""
"The editor inspector is by default located on the right-hand side of the "
"editor. It's used to edit the properties of the selected node. For example, "
"you can select a node such as [Sprite] then edit its transform through the "
"inspector tool. The editor inspector is an essential tool in the game "
"development workflow.\n"
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_inspector]."
msgstr ""
"编辑器检查器默认位于编辑器的右侧。它是用来编辑所选节点的属性的。例如,你可以"
"选择一个节点,如Sprite2D,然后通过检查器工具编辑它的变换。编辑器检查器是游戏"
"开发工作流程中的一个重要工具。\n"
"[b]注意:[/b] 这个类不应该被直接实例化。而是,使用[method EditorInterface."
"get_inspector]访问单例。"

#: doc/classes/EditorInspector.xml:16
msgid ""
"Refreshes the inspector.\n"
"[b]Note:[/b] To save on CPU resources, calling this method will do nothing "
"if the time specified in [code]docks/property_editor/auto_refresh_interval[/"
"code] editor setting hasn't passed yet since this method was last called. "
"(By default, this interval is set to 0.3 seconds.)"
msgstr ""
"重新刷新检查器。\n"
"[b]注意:[/b]为了节省CPU资源,如果[code]docks/property_editor/"
"auto_refresh_interval[/code]编辑器设置中指定的时间在上一次调用本方法后还没有"
"过去,那么调用本方法将不做任何操作。(默认情况下,这个时间间隔被设置为0.3秒)"

#: doc/classes/EditorInspector.xml:28
msgid ""
"Emitted when the Edit button of an [Object] has been pressed in the "
"inspector. This is mainly used in the remote scene tree inspector."
msgstr "在检查器中按下[Object]的编辑按钮时触发。主要用于远程场景树检查器中。"

#: doc/classes/EditorInspector.xml:34
msgid "Emitted when a property is edited in the inspector."
msgstr "在检查器中编辑属性时触发。"

#: doc/classes/EditorInspector.xml:40
msgid ""
"Emitted when a property is keyed in the inspector. Properties can be keyed "
"by clicking the \"key\" icon next to a property when the Animation panel is "
"toggled."
msgstr ""
"当属性在检查器中被键入时触发。当切换动画面板时,可通过点击属性旁边的 \"键 "
"\"图标对属性进行键控。"

#: doc/classes/EditorInspector.xml:46
msgid "Emitted when a property is selected in the inspector."
msgstr "在检查器中选择属性时触发。"

#: doc/classes/EditorInspector.xml:53
msgid ""
"Emitted when a boolean property is toggled in the inspector.\n"
"[b]Note:[/b] This signal is never emitted if the internal [code]autoclear[/"
"code] property enabled. Since this property is always enabled in the editor "
"inspector, this signal is never emitted by the editor itself."
msgstr ""
"在检查器中切换布尔属性时发出。\n"
"[b]注意:[/b]如果启用了内部[code]autoclear[/code]属性,则该信号永远不会触发。"
"由于该属性在编辑器检查器中始终处于启用状态,因此编辑器本身绝不会发出该信号。"

#: doc/classes/EditorInspector.xml:61
msgid "Emitted when a resource is selected in the inspector."
msgstr "在检查器中选择资源时触发。"

#: doc/classes/EditorInspector.xml:66
msgid ""
"Emitted when a property that requires a restart to be applied is edited in "
"the inspector. This is only used in the Project Settings and Editor Settings."
msgstr ""
"在检查器中编辑需要重启应用的属性时触发。仅在项目设置和编辑器设置中使用。"

#: doc/classes/EditorInspectorPlugin.xml:4
msgid "Plugin for adding custom property editors on inspector."
msgstr "用于在检查器上添加自定义属性编辑器的插件。"

#: doc/classes/EditorInspectorPlugin.xml:7
#, fuzzy
msgid ""
"These plugins allow adding custom property editors to [EditorInspector].\n"
"Plugins are registered via [method EditorPlugin.add_inspector_plugin].\n"
"When an object is edited, the [method can_handle] function is called and "
"must return [code]true[/code] if the object type is supported.\n"
"If supported, the function [method parse_begin] will be called, allowing to "
"place custom controls at the beginning of the class.\n"
"Subsequently, the [method parse_category] and [method parse_property] are "
"called for every category and property. They offer the ability to add custom "
"controls to the inspector too.\n"
"Finally, [method parse_end] will be called.\n"
"On each of these calls, the \"add\" functions can be called."
msgstr ""
"该插件允许在[EditorInspector]中添加自定义属性编辑器。\n"
"插件通过[Object EditorPlugin.add_inspector_plugin]方法注册。\n"
"当编辑对象时,调用[Object can_handle]函数,如果支持对象类型,必须返回"
"[code]true[/code]。\n"
"如果支持,将调用[Object parse_begin]函数,允许在类的开头放置自定义控件。\n"
"随后,[Object parse_category]和[Object parse_property]将被每个类别和属性被调"
"用。它们也提供了向检查器添加自定义控件的功能。\n"
"最后,[Object parse_end]将被调用。\n"
"在每个调用中,都可以调用“add”函数。"

#: doc/classes/EditorInspectorPlugin.xml:16
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/"
"inspector_plugins.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/editor/"
"import_plugins.html"

#: doc/classes/EditorInspectorPlugin.xml:23
#, fuzzy
msgid "Adds a custom control, which is not necessarily a property editor."
msgstr "添加一个自定义控件,不一定是属性编辑器。"

#: doc/classes/EditorInspectorPlugin.xml:31
#, fuzzy
msgid ""
"Adds a property editor for an individual property. The [code]editor[/code] "
"control must extend [EditorProperty]."
msgstr "添加一个属性编辑器,这个必须继承[EditorProperty]。"

#: doc/classes/EditorInspectorPlugin.xml:40
#, fuzzy
msgid ""
"Adds an editor that allows modifying multiple properties. The [code]editor[/"
"code] control must extend [EditorProperty]."
msgstr "添加一个允许修改多个属性的编辑器,它必须继承[EditorProperty]。"

#: doc/classes/EditorInspectorPlugin.xml:47
msgid "Returns [code]true[/code] if this object can be handled by this plugin."
msgstr "如果此插件可以处理此对象返回[code]true[/code]。"

#: doc/classes/EditorInspectorPlugin.xml:54
msgid "Called to allow adding controls at the beginning of the list."
msgstr "允许被调用在列表的开头添加控件。"

#: doc/classes/EditorInspectorPlugin.xml:62
msgid "Called to allow adding controls at the beginning of the category."
msgstr "允许被调用在类别的开头添加控件。"

#: doc/classes/EditorInspectorPlugin.xml:68
msgid "Called to allow adding controls at the end of the list."
msgstr "允许被调用在列表末尾添加控件。"

#: doc/classes/EditorInspectorPlugin.xml:80
msgid ""
"Called to allow adding property specific editors to the inspector. Usually "
"these inherit [EditorProperty]. Returning [code]true[/code] removes the "
"built-in editor for this property, otherwise allows to insert a custom "
"editor before the built-in one."
msgstr ""
"允许被调用在检查器中添加特定属性的编辑器。通常这些编辑器继承"
"[EditorProperty]。返回[code]true[/code]删除该属性的内置编辑器,否则允许在内置"
"编辑器之前插入一个自定义编辑器。"

#: doc/classes/EditorInterface.xml:4
msgid "Godot editor's interface."
msgstr "Godot编辑器的界面。"

#: doc/classes/EditorInterface.xml:7
msgid ""
"EditorInterface gives you control over Godot editor's window. It allows "
"customizing the window, saving and (re-)loading scenes, rendering mesh "
"previews, inspecting and editing resources and objects, and provides access "
"to [EditorSettings], [EditorFileSystem], [EditorResourcePreview], "
"[ScriptEditor], the editor viewport, and information about scenes.\n"
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorPlugin.get_editor_interface]."
msgstr ""
"EditorInterface让您可以控制Godot编辑器的窗口,它允许自定义窗口,保存和(重"
"新)加载场景,渲染网格预览,检查和编辑资源和对象。它允许自定义窗口,保存和"
"(重新)加载场景,渲染网格预览,检查和编辑资源和对象,并提供对"
"[EditorSettings]、[EditorFileSystem]、[EditorResourcePreview]、"
"[ScriptEditor]、编辑器视口和场景信息的访问。\n"
"[b]注意:[/b]这个类不应该直接实例化。相反,使用[method EditorPlugin."
"get_editor_interface]访问单例。"

#: doc/classes/EditorInterface.xml:17
msgid ""
"Edits the given [Node]. The node will be also selected if it's inside the "
"scene tree."
msgstr ""

#: doc/classes/EditorInterface.xml:24
msgid "Edits the given [Resource]."
msgstr "编辑给定的[Resource]。"

#: doc/classes/EditorInterface.xml:30
msgid ""
"Returns the main container of Godot editor's window. For example, you can "
"use it to retrieve the size of the container and place your controls "
"accordingly."
msgstr ""
"返回Godot编辑器窗口的主容器。例如,您可以用它来获取容器的大小,并据此放置您的"
"控件。"

#: doc/classes/EditorInterface.xml:36
msgid "Returns the current path being viewed in the [FileSystemDock]."
msgstr "返回在[FileSystemDock]中查看的当前路径。"

#: doc/classes/EditorInterface.xml:42
msgid "Returns the edited (current) scene's root [Node]."
msgstr "返回已编辑的(当前)场景的根节点[Node]。"

#: doc/classes/EditorInterface.xml:48
msgid ""
"Returns the actual scale of the editor UI ([code]1.0[/code] being 100% "
"scale). This can be used to adjust position and dimensions of the UI added "
"by plugins.\n"
"[b]Note:[/b] This value is set via the [code]interface/editor/display_scale[/"
"code] and [code]interface/editor/custom_display_scale[/code] editor "
"settings. Editor must be restarted for changes to be properly applied."
msgstr ""

#: doc/classes/EditorInterface.xml:55
msgid "Returns the editor's [EditorSettings] instance."
msgstr "返回编辑器的[EditorSettings]实例。"

#: doc/classes/EditorInterface.xml:61
msgid ""
"Returns the main editor control. Use this as a parent for main screens.\n"
"[b]Note:[/b] This returns the main editor control containing the whole "
"editor, not the 2D or 3D viewports specifically."
msgstr ""
"返回主编辑器控件。将其作为主屏幕的父屏幕。\n"
"[b]注意:[/b] 这将返回包含整个编辑器的主编辑器控件,而不是具体的2D或3D视窗。"

#: doc/classes/EditorInterface.xml:68
msgid "Returns the editor's [FileSystemDock] instance."
msgstr "返回编辑器的[FileSystemDock]实例。"

#: doc/classes/EditorInterface.xml:74
msgid "Returns the editor's [EditorInspector] instance."
msgstr "返回编辑器的[EditorInspector]实例。"

#: doc/classes/EditorInterface.xml:80
msgid "Returns an [Array] with the file paths of the currently opened scenes."
msgstr "返回包含当前打开的场景的文件路径的数组[Array]。"

#: doc/classes/EditorInterface.xml:86
msgid ""
"Returns the name of the scene that is being played. If no scene is currently "
"being played, returns an empty string."
msgstr "返回正在播放的场景名称。如果当前没有场景正在播放,返回一个空字符串。"

#: doc/classes/EditorInterface.xml:92
msgid "Returns the editor's [EditorFileSystem] instance."
msgstr "返回编辑器的[EditorFileSystem]实例。"

#: doc/classes/EditorInterface.xml:98
msgid "Returns the editor's [EditorResourcePreview] instance."
msgstr "返回编辑器的[EditorResourcePreview]实例。"

#: doc/classes/EditorInterface.xml:104
msgid "Returns the editor's [ScriptEditor] instance."
msgstr "返回编辑器的[ScriptEditor]实例。"

#: doc/classes/EditorInterface.xml:110
msgid ""
"Returns the path of the directory currently selected in the "
"[FileSystemDock]. If a file is selected, its base directory will be returned "
"using [method String.get_base_dir] instead."
msgstr ""
"返回当前在[FileSystemDock]中选择的目录的路径,如果选择了一个文件,将使用"
"[method String.get_base_dir]返回其基本目录。如果选择了一个文件,将使用"
"[method String.get_base_dir]返回它的基本目录。"

#: doc/classes/EditorInterface.xml:116
msgid "Returns the editor's [EditorSelection] instance."
msgstr "返回编辑器的[EditorSelection]实例。"

#: doc/classes/EditorInterface.xml:125
#, fuzzy
msgid ""
"Shows the given property on the given [code]object[/code] in the editor's "
"Inspector dock. If [code]inspector_only[/code] is [code]true[/code], plugins "
"will not attempt to edit [code]object[/code]."
msgstr "在编辑器的检查起面板中显示给定[code]object[/code]的属性。"

#: doc/classes/EditorInterface.xml:131
msgid ""
"Returns [code]true[/code] if a scene is currently being played, [code]false[/"
"code] otherwise. Paused scenes are considered as being played."
msgstr ""
"如果场景正在播放,返回[code]true[/code],否则返回[code]false[/code]。暂停的场"
"景将被视为正在播放。"

#: doc/classes/EditorInterface.xml:138
msgid ""
"Returns [code]true[/code] if the specified [code]plugin[/code] is enabled. "
"The plugin name is the same as its directory name."
msgstr ""
"如果指定的插件 [code]plugin[/code] 已启用时返回 [code]true[/code]。插件名称与"
"其目录名称一致。"

#: doc/classes/EditorInterface.xml:146
#, fuzzy
msgid ""
"Returns mesh previews rendered at the given size as an [Array] of [Texture]s."
msgstr "以[Texture2D]的数组[Array]形式返回以给定尺寸渲染的网格预览。"

#: doc/classes/EditorInterface.xml:153
msgid "Opens the scene at the given path."
msgstr "打开给定路径中的场景。"

#: doc/classes/EditorInterface.xml:159
msgid "Plays the currently active scene."
msgstr "播放当前活动的场景。"

#: doc/classes/EditorInterface.xml:166
msgid "Plays the scene specified by its filepath."
msgstr "播放文件路径所指定的场景。"

#: doc/classes/EditorInterface.xml:172
msgid "Plays the main scene."
msgstr "播放主场景。"

#: doc/classes/EditorInterface.xml:179
msgid "Reloads the scene at the given path."
msgstr "重新加载给定路径的场景。"

#: doc/classes/EditorInterface.xml:185
msgid ""
"Saves the scene. Returns either [code]OK[/code] or [code]ERR_CANT_CREATE[/"
"code] (see [@GlobalScope] constants)."
msgstr ""
"保存场景。返回 [code]OK[/code] 或 [code]ERR_CANT_CREATE[/code] (参见 "
"[@GlobalScope] 常量)。"

#: doc/classes/EditorInterface.xml:193
msgid "Saves the scene as a file at [code]path[/code]."
msgstr "将场景保存为[code]path[/code]处的文件。"

#: doc/classes/EditorInterface.xml:200
msgid ""
"Selects the file, with the path provided by [code]file[/code], in the "
"FileSystem dock."
msgstr "选择文件,路径由[code]file[/code]提供,在文件系统面板处。"

#: doc/classes/EditorInterface.xml:207
msgid ""
"Sets the editor's current main screen to the one specified in [code]name[/"
"code]. [code]name[/code] must match the text of the tab in question exactly "
"([code]2D[/code], [code]3D[/code], [code]Script[/code], [code]AssetLib[/"
"code])."
msgstr ""
"将编辑器的当前主界面设置为 [code]name[/code] 中指定的界面。[code]name[/code]"
"必须与相关选项卡的文本完全匹配([code]2D[/code], [code]3D[/code], "
"[code]Script[/code], [code]AssetLib[/code])。"

#: doc/classes/EditorInterface.xml:215
msgid ""
"Sets the enabled status of a plugin. The plugin name is the same as its "
"directory name."
msgstr "设置插件的启用状态。插件名称与其目录名称相同。"

#: doc/classes/EditorInterface.xml:221
msgid "Stops the scene that is currently playing."
msgstr "停止当前正在播放的场景。"

#: doc/classes/EditorInterface.xml:227
msgid ""
"If [code]true[/code], enables distraction-free mode which hides side docks "
"to increase the space available for the main view."
msgstr ""
"如果[code]true[/code],启用无分心模式,该模式隐藏了侧边底座,以增加主视图的可"
"用空间。"

#: doc/classes/EditorPlugin.xml:4
msgid "Used by the editor to extend its functionality."
msgstr "由编辑器用于扩展其功能。"

#: doc/classes/EditorPlugin.xml:7
msgid ""
"Plugins are used by the editor to extend functionality. The most common "
"types of plugins are those which edit a given node or resource type, import "
"plugins and export plugins. See also [EditorScript] to add functions to the "
"editor."
msgstr ""
"编辑器使用插件来扩展功能。最常见的插件类型是编辑给定的节点或资源类型、导入插"
"件和导出插件。另请参见[EditorScript]向编辑器添加函数。"

#: doc/classes/EditorPlugin.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/index.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/editor/index.html"

#: doc/classes/EditorPlugin.xml:18
msgid ""
"Adds a script at [code]path[/code] to the Autoload list as [code]name[/code]."
msgstr ""
"将 [code]path[/code] 处的脚本作为 [code]name[/code] 添加到自动加载列表中。"

#: doc/classes/EditorPlugin.xml:26
msgid ""
"Adds a control to the bottom panel (together with Output, Debug, Animation, "
"etc). Returns a reference to the button added. It's up to you to hide/show "
"the button when needed. When your plugin is deactivated, make sure to remove "
"your custom control with [method remove_control_from_bottom_panel] and free "
"it with [method Node.queue_free]."
msgstr ""
"将控件添加到底部面板(以及“输出”,“调试”,“动画”等)。返回对添加的按钮的引"
"用。您可以根据需要隐藏/显示按钮。停用插件后,请确保使用[method "
"remove_control_from_bottom_panel]删除自定义控件,并使用[method Node."
"queue_free]释放它。"

#: doc/classes/EditorPlugin.xml:34
msgid ""
"Adds a custom control to a container (see [enum CustomControlContainer]). "
"There are many locations where custom controls can be added in the editor "
"UI.\n"
"Please remember that you have to manage the visibility of your custom "
"controls yourself (and likely hide it after adding it).\n"
"When your plugin is deactivated, make sure to remove your custom control "
"with [method remove_control_from_container] and free it with [method Node."
"queue_free]."
msgstr ""
"将自定义控件添加到容器中(参见[enum CustomControlContainer])。在编辑器用户界"
"面中,有许多位置可以添加自定义控件,请记住,您必须自己管理您的自定义控件的可"
"见性(并且很可能在添加后隐藏它)。\n"
"请记住,您必须自己管理您的自定义控件的可见性(并且很可能在添加后隐藏它)。\n"
"当你的插件停用时,请确保使用[method remove_control_from_container]删除你的自"
"定义控件,并使用[method Node.queue_free]释放它。"

#: doc/classes/EditorPlugin.xml:44
msgid ""
"Adds the control to a specific dock slot (see [enum DockSlot] for options).\n"
"If the dock is repositioned and as long as the plugin is active, the editor "
"will save the dock position on further sessions.\n"
"When your plugin is deactivated, make sure to remove your custom control "
"with [method remove_control_from_docks] and free it with [method Node."
"queue_free]."
msgstr ""
"将控件添加到特定的停靠面板(有关选项,请参见[enum DockSlot])。\n"
"如果重新放置了停靠面板,并且只要插件处于活动状态,编辑器就会在以后的会话中保"
"存停靠面板的位置。\n"
"停用插件后,请确保使用[method remove_control_from_docks]删除自定义控件,并使"
"用[method Node.queue_free]释放它。"

#: doc/classes/EditorPlugin.xml:56
#, fuzzy
msgid ""
"Adds a custom type, which will appear in the list of nodes or resources. An "
"icon can be optionally passed.\n"
"When given node or resource is selected, the base type will be instanced "
"(ie, \"Spatial\", \"Control\", \"Resource\"), then the script will be loaded "
"and set to this object.\n"
"You can use the virtual method [method handles] to check if your custom "
"object is being edited by checking the script or using the [code]is[/code] "
"keyword.\n"
"During run-time, this will be a simple object with a script so this function "
"does not need to be called then."
msgstr ""
"添加自定义类型,该类型将出现在节点或资源列表中。可以选择传递图标。\n"
"选择给定的节点或资源后,将实例化基本类型(例如“ Node3D”,“ Control”,“ "
"Resource”),然后将脚本加载并设置为此对象。\n"
"您可以使用虚拟方法[method handles]通过检查脚本或使用[code] is [/code]关键字来"
"检查是否正在编辑您的自定义对象。\n"
"在运行时,这将是带有脚本的简单对象,因此无需再调用此函数。"

#: doc/classes/EditorPlugin.xml:66
msgid ""
"Registers a new [EditorExportPlugin]. Export plugins are used to perform "
"tasks when the project is being exported.\n"
"See [method add_inspector_plugin] for an example of how to register a plugin."
msgstr ""

#: doc/classes/EditorPlugin.xml:74
msgid ""
"Registers a new [EditorImportPlugin]. Import plugins are used to import "
"custom and unsupported assets as a custom [Resource] type.\n"
"[b]Note:[/b] If you want to import custom 3D asset formats use [method "
"add_scene_import_plugin] instead.\n"
"See [method add_inspector_plugin] for an example of how to register a plugin."
msgstr ""

#: doc/classes/EditorPlugin.xml:83
msgid ""
"Registers a new [EditorInspectorPlugin]. Inspector plugins are used to "
"extend [EditorInspector] and provide custom configuration tools for your "
"object's properties.\n"
"[b]Note:[/b] Always use [method remove_inspector_plugin] to remove the "
"registered [EditorInspectorPlugin] when your [EditorPlugin] is disabled to "
"prevent leaks and an unexpected behavior.\n"
"[codeblock]\n"
"const MyInspectorPlugin = preload(\"res://addons/your_addon/path/to/your/"
"script.gd\")\n"
"var inspector_plugin = MyInspectorPlugin.new()\n"
"\n"
"func _enter_tree():\n"
"    add_inspector_plugin(inspector_plugin)\n"
"\n"
"func _exit_tree():\n"
"    remove_inspector_plugin(inspector_plugin)\n"
"[/codeblock]"
msgstr ""

#: doc/classes/EditorPlugin.xml:101
msgid ""
"Registers a new [EditorSceneImporter]. Scene importers are used to import "
"custom 3D asset formats as scenes."
msgstr ""

#: doc/classes/EditorPlugin.xml:108
msgid ""
"Registers a new [EditorSpatialGizmoPlugin]. Gizmo plugins are used to add "
"custom gizmos to the 3D preview viewport for a [Spatial].\n"
"See [method add_inspector_plugin] for an example of how to register a plugin."
msgstr ""

#: doc/classes/EditorPlugin.xml:119
msgid ""
"Adds a custom menu item to [b]Project > Tools[/b] as [code]name[/code] that "
"calls [code]callback[/code] on an instance of [code]handler[/code] with a "
"parameter [code]ud[/code] when user activates it."
msgstr ""
"在[b]项目 > 工具[/b]中添加一个自定义菜单项,作为[code]name[/code],当用户激活"
"它时,该菜单项将调用[code]callback[/code]参数为[code]ud[/code]的"
"[code]handler[/code]实例。"

#: doc/classes/EditorPlugin.xml:127
msgid ""
"Adds a custom submenu under [b]Project > Tools >[/b] [code]name[/code]. "
"[code]submenu[/code] should be an object of class [PopupMenu]. This submenu "
"should be cleaned up using [code]remove_tool_menu_item(name)[/code]."
msgstr ""
"在[b]项目>工具> [/b] [code]name[/code]下添加自定义子菜单。 [code]submenu[/"
"code]应该是[PopupMenu]类的对象。此子菜单应使用[code] "
"remove_tool_menu_item(name)[/code]进行清理。"

#: doc/classes/EditorPlugin.xml:133
msgid ""
"This method is called when the editor is about to save the project, switch "
"to another tab, etc. It asks the plugin to apply any pending state changes "
"to ensure consistency.\n"
"This is used, for example, in shader editors to let the plugin know that it "
"must apply the shader code being written by the user to the object."
msgstr ""
"当编辑器将进行要保存项目、切换选项卡等操作时,将调用此方法。它要求插件应用任"
"何暂挂状态更改以确保一致性。\n"
"例如,在着色器编辑器中使用它来使插件将用户编写的着色代码应用于对象。"

#: doc/classes/EditorPlugin.xml:140
msgid ""
"This method is called when the editor is about to run the project. The "
"plugin can then perform required operations before the project runs.\n"
"This method must return a boolean. If this method returns [code]false[/"
"code], the project will not run. The run is aborted immediately, so this "
"also prevents all other plugins' [method build] methods from running."
msgstr ""

#: doc/classes/EditorPlugin.xml:147
msgid ""
"Clear all the state and reset the object being edited to zero. This ensures "
"your plugin does not keep editing a currently existing node, or a node from "
"the wrong scene."
msgstr ""
"清除所有状态,并将正在编辑的对象重置为零。这可以确保你的插件不会一直编辑一个"
"当前存在的节点,或者一个来自错误场景节点。"

#: doc/classes/EditorPlugin.xml:153
msgid ""
"Called by the engine when the user disables the [EditorPlugin] in the Plugin "
"tab of the project settings window."
msgstr "当用户在项目设置窗口的插件选项卡中禁用[EditorPlugin]时,由引擎调用。"

#: doc/classes/EditorPlugin.xml:160
msgid ""
"This function is used for plugins that edit specific object types (nodes or "
"resources). It requests the editor to edit the given object."
msgstr ""
"该函数用于编辑特定对象类型(节点或资源)的插件。它要求编辑器编辑给定的对象。"

#: doc/classes/EditorPlugin.xml:166
msgid ""
"Called by the engine when the user enables the [EditorPlugin] in the Plugin "
"tab of the project settings window."
msgstr "当用户在项目设置窗口的插件选项卡中启用[EditorPlugin]时,由引擎调用。"

#: doc/classes/EditorPlugin.xml:173
msgid ""
"Called by the engine when the 2D editor's viewport is updated. Use the "
"[code]overlay[/code] [Control] for drawing. You can update the viewport "
"manually by calling [method update_overlays].\n"
"[codeblock]\n"
"func forward_canvas_draw_over_viewport(overlay):\n"
"    # Draw a circle at cursor position.\n"
"    overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color."
"white)\n"
"\n"
"func forward_canvas_gui_input(event):\n"
"    if event is InputEventMouseMotion:\n"
"        # Redraw viewport when cursor is moved.\n"
"        update_overlays()\n"
"        return true\n"
"    return false\n"
"[/codeblock]"
msgstr ""

#: doc/classes/EditorPlugin.xml:192
msgid ""
"This method is the same as [method forward_canvas_draw_over_viewport], "
"except it draws on top of everything. Useful when you need an extra layer "
"that shows over anything else.\n"
"You need to enable calling of this method by using [method "
"set_force_draw_over_forwarding_enabled]."
msgstr ""

#: doc/classes/EditorPlugin.xml:200
msgid ""
"Called when there is a root node in the current edited scene, [method "
"handles] is implemented and an [InputEvent] happens in the 2D viewport. "
"Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] "
"consumes the [code]event[/code], otherwise forwards [code]event[/code] to "
"other Editor classes. Example:\n"
"[codeblock]\n"
"# Prevents the InputEvent to reach other Editor classes\n"
"func forward_canvas_gui_input(event):\n"
"    var forward = true\n"
"    return forward\n"
"[/codeblock]\n"
"Must [code]return false[/code] in order to forward the [InputEvent] to other "
"Editor classes. Example:\n"
"[codeblock]\n"
"# Consumes InputEventMouseMotion and forwards other InputEvent types\n"
"func forward_canvas_gui_input(event):\n"
"    var forward = false\n"
"    if event is InputEventMouseMotion:\n"
"        forward = true\n"
"    return forward\n"
"[/codeblock]"
msgstr ""
"当当前编辑场景中有一个根节点时被调用,[method handles]实现,在2D视口中发生按"
"键输入[InputEvent]。拦截按键输入[InputEvent],如果[code]return true[/code] "
"[EditorPlugin]消耗键值[code]event[/code],否则将键值[code]event[/code]转发给"
"其他Editor类。例子:\n"
"[codeblock]\n"
"# Prevents the InputEvent to reach other Editor classes\n"
"func forward_canvas_gui_input(event):\n"
"    var forward = true\n"
"    return forward\n"
"[/codeblock]\n"
"Must [code]return false[/code] in order to forward the [InputEvent] to other "
"Editor classes. Example:\n"
"[codeblock]\n"
"# Consumes InputEventMouseMotion and forwards other InputEvent types\n"
"func forward_canvas_gui_input(event):\n"
"    var forward = false\n"
"    if event is InputEventMouseMotion:\n"
"        forward = true\n"
"    return forward\n"
"[/codeblock]"

#: doc/classes/EditorPlugin.xml:222
msgid ""
"Called by the engine when the 3D editor's viewport is updated. Use the "
"[code]overlay[/code] [Control] for drawing. You can update the viewport "
"manually by calling [method update_overlays].\n"
"[codeblock]\n"
"func forward_spatial_draw_over_viewport(overlay):\n"
"    # Draw a circle at cursor position.\n"
"    overlay.draw_circle(overlay.get_local_mouse_position(), 64)\n"
"\n"
"func forward_spatial_gui_input(camera, event):\n"
"    if event is InputEventMouseMotion:\n"
"        # Redraw viewport when cursor is moved.\n"
"        update_overlays()\n"
"        return true\n"
"    return false\n"
"[/codeblock]"
msgstr ""

#: doc/classes/EditorPlugin.xml:241
msgid ""
"This method is the same as [method forward_spatial_draw_over_viewport], "
"except it draws on top of everything. Useful when you need an extra layer "
"that shows over anything else.\n"
"You need to enable calling of this method by using [method "
"set_force_draw_over_forwarding_enabled]."
msgstr ""

#: doc/classes/EditorPlugin.xml:250
msgid ""
"Called when there is a root node in the current edited scene, [method "
"handles] is implemented and an [InputEvent] happens in the 3D viewport. "
"Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] "
"consumes the [code]event[/code], otherwise forwards [code]event[/code] to "
"other Editor classes. Example:\n"
"[codeblock]\n"
"# Prevents the InputEvent to reach other Editor classes\n"
"func forward_spatial_gui_input(camera, event):\n"
"    var forward = true\n"
"    return forward\n"
"[/codeblock]\n"
"Must [code]return false[/code] in order to forward the [InputEvent] to other "
"Editor classes. Example:\n"
"[codeblock]\n"
"# Consumes InputEventMouseMotion and forwards other InputEvent types\n"
"func forward_spatial_gui_input(camera, event):\n"
"    var forward = false\n"
"    if event is InputEventMouseMotion:\n"
"        forward = true\n"
"    return forward\n"
"[/codeblock]"
msgstr ""
"在当前编辑的场景中存在根节点时调用,实现[方法句柄]并在3D视口中发生按键输入"
"[InputEvent]。拦截按键输入[InputEvent],如果[code]return true [/code],则"
"[EditorPlugin]会使用键值[code]event[/code],否则将键值[code]event[/code]转发"
"到其他Editor类。例子:\n"
"[codeblock]\n"
"# Prevents the InputEvent to reach other Editor classes\n"
"func forward_spatial_gui_input(camera, event):\n"
"    var forward = true\n"
"    return forward\n"
"[/codeblock]\n"
"Must [code]return false[/code] in order to forward the [InputEvent] to other "
"Editor classes. Example:\n"
"[codeblock]\n"
"# Consumes InputEventMouseMotion and forwards other InputEvent types\n"
"func forward_spatial_gui_input(camera, event):\n"
"    var forward = false\n"
"    if event is InputEventMouseMotion:\n"
"        forward = true\n"
"    return forward\n"
"[/codeblock]"

#: doc/classes/EditorPlugin.xml:271
msgid ""
"This is for editors that edit script-based objects. You can return a list of "
"breakpoints in the format ([code]script:line[/code]), for example: "
"[code]res://path_to_script.gd:25[/code]."
msgstr ""
"这是为编辑基于脚本的对象的编辑器。您可以返回格式中的断点列表([code]script:"
"line[/code]),例如:[code]res://path_to_script.gd:25[/code]。"

#: doc/classes/EditorPlugin.xml:277
msgid ""
"Returns the [EditorInterface] object that gives you control over Godot "
"editor's window and its functionalities."
msgstr ""
"返回[EditorInterface]对象,该对象使您可以控制Godot编辑器的窗口及其功能。"

#: doc/classes/EditorPlugin.xml:283
#, fuzzy
msgid ""
"Override this method in your plugin to return a [Texture] in order to give "
"it an icon.\n"
"For main screen plugins, this appears at the top of the screen, to the right "
"of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons.\n"
"Ideally, the plugin icon should be white with a transparent background and "
"16x16 pixels in size.\n"
"[codeblock]\n"
"func get_plugin_icon():\n"
"    # You can use a custom icon:\n"
"    return preload(\"res://addons/my_plugin/my_plugin_icon.svg\")\n"
"    # Or use a built-in icon:\n"
"    return get_editor_interface().get_base_control().get_icon(\"Node\", "
"\"EditorIcons\")\n"
"[/codeblock]"
msgstr ""
"在插件中重写此方法以返回[Texture2D]以为其提供图标。\n"
"对于主屏幕插件,它显示在屏幕顶部,在“ 2D”,“ 3D”,“脚本”和“ AssetLib”按钮的右"
"侧。\n"
"理想情况下,插件图标应为白色,透明背景,大小为16x16像素。\n"
"[codeblock]\n"
"func get_plugin_icon():\n"
"    # You can use a custom icon:\n"
"    return preload(\"res://addons/my_plugin/my_plugin_icon.svg\")\n"
"    # Or use a built-in icon:\n"
"    return get_editor_interface().get_base_control().get_icon(\"Node\", "
"\"EditorIcons\")\n"
"[/codeblock]"

#: doc/classes/EditorPlugin.xml:298
msgid ""
"Override this method in your plugin to provide the name of the plugin when "
"displayed in the Godot editor.\n"
"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"
"对于主屏幕插件,它显示在屏幕顶部,在“ 2D”,“ 3D”,“脚本”和“ AssetLib”按钮的右"
"侧。"

#: doc/classes/EditorPlugin.xml:305
msgid ""
"Gets the Editor's dialogue used for making scripts.\n"
"[b]Note:[/b] Users can configure it before use."
msgstr ""
"获取用于制作脚本的编辑器对话框。\n"
"[b]注意:[/b]用户可以在使用前对其进行配置。"

#: doc/classes/EditorPlugin.xml:312
msgid ""
"Gets the state of your plugin editor. This is used when saving the scene (so "
"state is kept when opening it again) and for switching tabs (so state can be "
"restored when the tab returns)."
msgstr ""
"获取插件编辑器的状态。这用于保存场景时(从而再次打开时,它的状态被保持)和切"
"换标签(从而状态能够当拉片返回恢复)时使用。"

#: doc/classes/EditorPlugin.xml:318
msgid ""
"Gets the undo/redo object. Most actions in the editor can be undoable, so "
"use this object to make sure this happens when it's worth it."
msgstr ""
"获取撤消/重做对象。编辑器中的大多数操作都是可以撤消的,因此请使用此对象来确保"
"在需要时执行此操作。"

#: doc/classes/EditorPlugin.xml:325
msgid ""
"Gets the GUI layout of the plugin. This is used to save the project's editor "
"layout when [method queue_save_layout] is called or the editor layout was "
"changed(For example changing the position of a dock)."
msgstr ""
"获取插件的GUI布局。当调用[method queue_save_layout]更改了编辑器布局(例如,更"
"改停靠点的位置)时或保存项目的编辑器布局。"

#: doc/classes/EditorPlugin.xml:332
msgid ""
"Implement this function if your plugin edits a specific type of object "
"(Resource or Node). If you return [code]true[/code], then you will get the "
"functions [method edit] and [method make_visible] called when the editor "
"requests them. If you have declared the methods [method "
"forward_canvas_gui_input] and [method forward_spatial_gui_input] these will "
"be called too."
msgstr ""
"如果您的插件编辑特定类型的对象(资源或节点),请实现此功能。如果返回[code] "
"true [/code],则当编辑器请求它们时,将获得调用[method edit]和[method "
"make_visible]的函数。如果您已经声明了方法[method forward_canvas_gui_input]和"
"[method forward_spatial_gui_input],这些方法也将被调用。"

#: doc/classes/EditorPlugin.xml:338
msgid ""
"Returns [code]true[/code] if this is a main screen editor plugin (it goes in "
"the workspace selector together with [b]2D[/b], [b]3D[/b], [b]Script[/b] and "
"[b]AssetLib[/b])."
msgstr ""
"如果这是一个主屏幕编辑插件,返回[code]true[/code](它与[b]2D[/b]、[b]3D[/b]、"
"[b]Script[/b]和[b]AssetLib[/b]一起放在工作区选择器中)。"

#: doc/classes/EditorPlugin.xml:344
msgid "Minimizes the bottom panel."
msgstr ""

#: doc/classes/EditorPlugin.xml:351
#, fuzzy
msgid "Makes a specific item in the bottom panel visible."
msgstr "将特定资源类型保存到文件。"

#: doc/classes/EditorPlugin.xml:358
msgid ""
"This function will be called when the editor is requested to become visible. "
"It is used for plugins that edit a specific object type.\n"
"Remember that you have to manage the visibility of all your editor controls "
"manually."
msgstr ""
"当编辑器被要求变为可见时,该函数将被调用。它用于编辑特定对象类型的插件。\n"
"记住,你必须手动管理所有编辑器控件的可见性。"

#: doc/classes/EditorPlugin.xml:365
msgid "Queue save the project's editor layout."
msgstr "排队保存项目的编辑器布局。"

#: doc/classes/EditorPlugin.xml:372
msgid "Removes an Autoload [code]name[/code] from the list."
msgstr "从列表中删除自动加载[code]name[/code]。"

#: doc/classes/EditorPlugin.xml:379
msgid ""
"Removes the control from the bottom panel. You have to manually [method Node."
"queue_free] the control."
msgstr "从底部面板上删除控件。您必须手动[method Node.queue_free]释放控件。"

#: doc/classes/EditorPlugin.xml:387
msgid ""
"Removes the control from the specified container. You have to manually "
"[method Node.queue_free] the control."
msgstr "从指定的容器中删除控件。您必须手动[method Node.queue_free]释放控件。"

#: doc/classes/EditorPlugin.xml:394
msgid ""
"Removes the control from the dock. You have to manually [method Node."
"queue_free] the control."
msgstr "从扩展面板中删除控件。您必须手动[method Node.queue_free]释放控件。"

#: doc/classes/EditorPlugin.xml:401
msgid "Removes a custom type added by [method add_custom_type]."
msgstr "删除由[method add_custom_type]添加的自定义类型。"

#: doc/classes/EditorPlugin.xml:408
#, fuzzy
msgid "Removes an export plugin registered by [method add_export_plugin]."
msgstr "删除由[method add_custom_type]添加的自定义类型。"

#: doc/classes/EditorPlugin.xml:415
#, fuzzy
msgid "Removes an import plugin registered by [method add_import_plugin]."
msgstr "删除由[method add_custom_type]添加的自定义类型。"

#: doc/classes/EditorPlugin.xml:422
#, fuzzy
msgid "Removes an inspector plugin registered by [method add_import_plugin]"
msgstr "删除由[method add_custom_type]添加的自定义类型。"

#: doc/classes/EditorPlugin.xml:429
#, fuzzy
msgid ""
"Removes a scene importer registered by [method add_scene_import_plugin]."
msgstr "删除由[method add_custom_type]添加的自定义类型。"

#: doc/classes/EditorPlugin.xml:436
#, fuzzy
msgid "Removes a gizmo plugin registered by [method add_spatial_gizmo_plugin]."
msgstr "删除由[method add_custom_type]添加的自定义类型。"

#: doc/classes/EditorPlugin.xml:443
msgid "Removes a menu [code]name[/code] from [b]Project > Tools[/b]."
msgstr "从[b]项目 > 工具[/b]中删除菜单[code]name[/code]。"

#: doc/classes/EditorPlugin.xml:449
msgid ""
"This method is called after the editor saves the project or when it's "
"closed. It asks the plugin to save edited external scenes/resources."
msgstr ""
"这个方法在编辑器保存项目后或关闭项目时被调用,它要求插件保存编辑的外部场景/资"
"源。"

#: doc/classes/EditorPlugin.xml:455
msgid ""
"Enables calling of [method forward_canvas_force_draw_over_viewport] for the "
"2D editor and [method forward_spatial_force_draw_over_viewport] for the 3D "
"editor when their viewports are updated. You need to call this method only "
"once and it will work permanently for this plugin."
msgstr ""

#: doc/classes/EditorPlugin.xml:461
msgid ""
"Use this method if you always want to receive inputs from 3D view screen "
"inside [method forward_spatial_gui_input]. It might be especially usable if "
"your plugin will want to use raycast in the scene."
msgstr ""
"如果你想在[method forward_spatial_gui_input]里面接收来自3D视图屏幕的输入,请"
"使用这个方法。如果你的插件想要在场景中使用光线广播,那么这个方法可能特别有"
"用。"

#: doc/classes/EditorPlugin.xml:468
msgid "Restore the state saved by [method get_state]."
msgstr "恢复[method get_state]保存的状态。"

#: doc/classes/EditorPlugin.xml:475
msgid "Restore the plugin GUI layout saved by [method get_window_layout]."
msgstr "恢复[method get_window_layout]保存的插件GUI布局。"

#: doc/classes/EditorPlugin.xml:481
msgid ""
"Updates the overlays of the 2D and 3D editor viewport. Causes methods "
"[method forward_canvas_draw_over_viewport], [method "
"forward_canvas_force_draw_over_viewport], [method "
"forward_spatial_draw_over_viewport] and [method "
"forward_spatial_force_draw_over_viewport] to be called."
msgstr ""

#: doc/classes/EditorPlugin.xml:489
msgid ""
"Emitted when user changes the workspace ([b]2D[/b], [b]3D[/b], [b]Script[/"
"b], [b]AssetLib[/b]). Also works with custom screens defined by plugins."
msgstr ""
"当用户改变工作空间([b]2D[/b], [b]3D[/b], [b]Script[/b], [b]AssetLib[/b])时触"
"发。也适用于由插件定义的自定义屏幕。"

#: doc/classes/EditorPlugin.xml:500
msgid ""
"Emitted when the scene is changed in the editor. The argument will return "
"the root node of the scene that has just become active. If this scene is new "
"and empty, the argument will be [code]null[/code]."
msgstr ""
"在编辑器中更改场景时触发。该参数将返回刚刚变为活动状态的场景的根节点。如果此"
"场景是新场景且为空,则参数将为[code] null [/code]。"

#: doc/classes/EditorPlugin.xml:506
msgid ""
"Emitted when user closes a scene. The argument is file path to a closed "
"scene."
msgstr "当用户关闭场景时触发。参数是关闭场景的文件路径。"

#: doc/classes/EditorPlugin.xml:552
msgid "Represents the size of the [enum DockSlot] enum."
msgstr "表示[enum DockSlot]枚举的大小。"

#: doc/classes/EditorProperty.xml:4
msgid "Custom control to edit properties for adding into the inspector."
msgstr "自定义控件属性添加到检查器中。"

#: doc/classes/EditorProperty.xml:7
msgid ""
"This control allows property editing for one or multiple properties into "
"[EditorInspector]. It is added via [EditorInspectorPlugin]."
msgstr ""
"该控件可以将一个或多个属性编辑到[EditorInspector]中。通过"
"[EditorInspectorPlugin]添加。"

#: doc/classes/EditorProperty.xml:16
msgid ""
"If any of the controls added can gain keyboard focus, add it here. This "
"ensures that focus will be restored if the inspector is refreshed."
msgstr ""
"如果添加的任何控件可以获得键盘焦点,将其添加到此处。这样可以确保在检查器被刷"
"新时恢复焦点。"

#: doc/classes/EditorProperty.xml:26
msgid ""
"If one or several properties have changed, this must be called. [code]field[/"
"code] is used in case your editor can modify fields separately (as an "
"example, Vector3.x). The [code]changing[/code] argument avoids the editor "
"requesting this property to be refreshed (leave as [code]false[/code] if "
"unsure)."
msgstr ""
"如果一个或几个属性发生了变化,必然会调用这个函数。[code]field[/code]是在你的"
"编辑器可以单独修改字段的情况下使用的(比如Vector3.x)。[code]changing[/code]"
"参数可以避免编辑器要求刷新这个属性(如果不确定的话,就用[code]false[/code])。"

#: doc/classes/EditorProperty.xml:32
msgid "Gets the edited object."
msgstr "获取编辑后的对象。"

#: doc/classes/EditorProperty.xml:38
msgid ""
"Gets the edited property. If your editor is for a single property (added via "
"[method EditorInspectorPlugin.parse_property]), then this will return the "
"property."
msgstr ""
"获取已编辑的属性。如果你的编辑器是针对单个属性的(通过[method "
"EditorInspectorPlugin.parse_property]添加),那么这将返回属性。"

#: doc/classes/EditorProperty.xml:44
msgid "Must be implemented to provide a custom tooltip to the property editor."
msgstr ""

#: doc/classes/EditorProperty.xml:51
msgid ""
"Puts the [code]editor[/code] control below the property label. The control "
"must be previously added using [method Node.add_child]."
msgstr ""

#: doc/classes/EditorProperty.xml:57
msgid "When this virtual function is called, you must update your editor."
msgstr "当这个虚拟函数被调用时,你必须更新你的编辑器。"

#: doc/classes/EditorProperty.xml:63
msgid ""
"Used by the inspector, set to [code]true[/code] when the property is "
"checkable."
msgstr "在检查面板使用,当属性可点击时,设置为[code]true[/code]。"

#: doc/classes/EditorProperty.xml:66
msgid ""
"Used by the inspector, set to [code]true[/code] when the property is checked."
msgstr "在检查面板使用,当属性为可选中时,设置属性为[code]true[/code]。"

#: doc/classes/EditorProperty.xml:69
#, fuzzy
msgid ""
"Used by the inspector, set to [code]true[/code] when the property is drawn "
"with the editor theme's warning color. This is used for editable children's "
"properties."
msgstr ""
"在检查面板使用,当属性必须用错误颜色绘制时,设置为[code]true[/code]。这用于可"
"编辑的子属性。"

#: doc/classes/EditorProperty.xml:72
msgid ""
"Used by the inspector, set to [code]true[/code] when the property can add "
"keys for animation."
msgstr "在检查面板使用,设置为[code]true[/code]时,该属性可以为动画添加键。"

#: doc/classes/EditorProperty.xml:75
msgid "Set this property to change the label (if you want to show one)."
msgstr "设置此属性可改变标签(如果你想显示标签)。"

#: doc/classes/EditorProperty.xml:78
msgid ""
"Used by the inspector, set to [code]true[/code] when the property is read-"
"only."
msgstr "在检查面板使用,当属性为只读时,设置为[code]true[/code]。"

#: doc/classes/EditorProperty.xml:86
msgid ""
"Emit it if you want multiple properties modified at the same time. Do not "
"use if added via [method EditorInspectorPlugin.parse_property]."
msgstr ""
"如果你想同时修改多个属性,请触发它。如果通过[method EditorInspectorPlugin."
"parse_property]添加,则不要使用。"

#: doc/classes/EditorProperty.xml:93
msgid "Used by sub-inspectors. Emit it if what was selected was an Object ID."
msgstr "由子检查员使用。如果选择的是对象ID,则触发。"

#: doc/classes/EditorProperty.xml:100
msgid ""
"Do not emit this manually, use the [method emit_changed] method instead."
msgstr "不要手动触发,使用[method emmit_changed]方法代替。"

#: doc/classes/EditorProperty.xml:107
msgid "Emitted when a property was checked. Used internally."
msgstr "检查属性时触发。在内部使用。"

#: doc/classes/EditorProperty.xml:113
msgid ""
"Emit it if you want to add this value as an animation key (check for keying "
"being enabled first)."
msgstr "如果您想将此值添加这个值为动画键,请触发它(首先检查是否启用了键控)。"

#: doc/classes/EditorProperty.xml:120
msgid "Emit it if you want to key a property with a single value."
msgstr "如果你想用一个单一的值来键入一个属性,请触发它。"

#: doc/classes/EditorProperty.xml:127
msgid ""
"If you want a sub-resource to be edited, emit this signal with the resource."
msgstr "如果你想编辑一个子资源,请将此信号与资源一起发出。"

#: doc/classes/EditorProperty.xml:134
msgid "Emitted when selected. Used internally."
msgstr "选择时触发。内部使用。"

#: doc/classes/EditorResourcePicker.xml:4
msgid "Godot editor's control for selecting [Resource] type properties."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:7
msgid ""
"This [Control] node is used in the editor's Inspector dock to allow editing "
"of [Resource] type properties. It provides options for creating, loading, "
"saving and converting resources. Can be used with [EditorInspectorPlugin] to "
"recreate the same behavior.\n"
"[b]Note:[/b] This [Control] does not include any editor for the resource, as "
"editing is controlled by the Inspector dock itself or sub-Inspectors."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:32
msgid ""
"Returns a list of all allowed types and subtypes corresponding to the "
"[member base_type]. If the [member base_type] is empty, an empty list is "
"returned."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:46
msgid ""
"This virtual method can be implemented to handle context menu items not "
"handled by default. See [method set_create_options]."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:53
msgid ""
"This virtual method is called when updating the context menu of "
"[EditorResourcePicker]. Implement this method to override the \"New ...\" "
"items with your own options. [code]menu_node[/code] is a reference to the "
"[PopupMenu] node.\n"
"[b]Note:[/b] Implement [method handle_menu_selected] to handle these custom "
"items."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:61
msgid ""
"Sets the toggle mode state for the main button. Works only if [member "
"toggle_mode] is set to [code]true[/code]."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:67
msgid ""
"The base type of allowed resource types. Can be a comma-separated list of "
"several options."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:70
#, fuzzy
msgid "If [code]true[/code], the value can be selected and edited."
msgstr "如果[code]true[/code],物体可以被光线探测到。"

#: doc/classes/EditorResourcePicker.xml:73
#, fuzzy
msgid "The edited resource value."
msgstr "要使用的[NavigationMesh]资源。"

#: doc/classes/EditorResourcePicker.xml:76
msgid ""
"If [code]true[/code], the main button with the resource preview works in the "
"toggle mode. Use [method set_toggle_pressed] to manually set the state."
msgstr ""

#: doc/classes/EditorResourcePicker.xml:83
#, fuzzy
msgid "Emitted when the value of the edited resource was changed."
msgstr "每当资源发生变化时就会发出。"

#: doc/classes/EditorResourcePicker.xml:89
#, fuzzy
msgid "Emitted when the resource value was set and user clicked to edit it."
msgstr "在检查器中选择资源时触发。"

#: doc/classes/EditorResourcePreview.xml:4
msgid "Helper to generate previews of resources or files."
msgstr "帮助生成资源或文件的预览。"

#: doc/classes/EditorResourcePreview.xml:7
msgid ""
"This object is used to generate previews for resources of files.\n"
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_resource_previewer]."
msgstr ""
"该对象用于生成文件资源的预览。\n"
"[b]注意:[/b]不应该直接实例化这个类,而是使用[method EditorInterface."
"get_resource_previewer]访问单例。而是,使用[method EditorInterface."
"get_resource_previewer]访问单例。"

#: doc/classes/EditorResourcePreview.xml:17
msgid "Create an own, custom preview generator."
msgstr "创建一个自定义的预览生成器。"

#: doc/classes/EditorResourcePreview.xml:24
msgid ""
"Check if the resource changed, if so, it will be invalidated and the "
"corresponding signal emitted."
msgstr "检查资源是否发生变化,如果发生变化,则无效,并发出相应的信号。"

#: doc/classes/EditorResourcePreview.xml:34
msgid ""
"Queue the [code]resource[/code] being edited for preview. Once the preview "
"is ready, the [code]receiver[/code]'s [code]receiver_func[/code] will be "
"called. The [code]receiver_func[/code] must take the following four "
"arguments: [String] path, [Texture] preview, [Texture] thumbnail_preview, "
"[Variant] userdata. [code]userdata[/code] can be anything, and will be "
"returned when [code]receiver_func[/code] is called.\n"
"[b]Note:[/b] If it was not possible to create the preview the "
"[code]receiver_func[/code] will still be called, but the preview will be "
"null."
msgstr ""

#: doc/classes/EditorResourcePreview.xml:45
msgid ""
"Queue a resource file located at [code]path[/code] for preview. Once the "
"preview is ready, the [code]receiver[/code]'s [code]receiver_func[/code] "
"will be called. The [code]receiver_func[/code] must take the following four "
"arguments: [String] path, [Texture] preview, [Texture] thumbnail_preview, "
"[Variant] userdata. [code]userdata[/code] can be anything, and will be "
"returned when [code]receiver_func[/code] is called.\n"
"[b]Note:[/b] If it was not possible to create the preview the "
"[code]receiver_func[/code] will still be called, but the preview will be "
"null."
msgstr ""

#: doc/classes/EditorResourcePreview.xml:53
msgid "Removes a custom preview generator."
msgstr "移除自定义预览生成器。"

#: doc/classes/EditorResourcePreview.xml:61
msgid ""
"Emitted if a preview was invalidated (changed). [code]path[/code] "
"corresponds to the path of the preview."
msgstr "预览无效(更改)时触发。[code]path[/code]对应的预览路径。"

#: doc/classes/EditorResourcePreviewGenerator.xml:4
msgid "Custom generator of previews."
msgstr "自定义的预览生成器。"

#: doc/classes/EditorResourcePreviewGenerator.xml:7
msgid ""
"Custom code to generate previews. Please check [code]file_dialog/"
"thumbnail_size[/code] in [EditorSettings] to find out the right size to do "
"previews at."
msgstr ""
"自定义代码来生成预览。请查看[EditorSettings]中的[code]file_dialog/"
"thumbnail_size[/code],找出适合做预览的尺寸。"

#: doc/classes/EditorResourcePreviewGenerator.xml:15
msgid ""
"If this function returns [code]true[/code], the generator will call [method "
"generate] or [method generate_from_path] for small previews as well.\n"
"By default, it returns [code]false[/code]."
msgstr ""
"如果该函数返回[code]true[/code],生成器将调用[method generate]或[method "
"generate_from_path]来进行小型预览。\n"
"默认情况下,它会返回[code]false[/code]。"

#: doc/classes/EditorResourcePreviewGenerator.xml:24
msgid ""
"Generate a preview from a given resource with the specified size. This must "
"always be implemented.\n"
"Returning an empty texture is an OK way to fail and let another generator "
"take care.\n"
"Care must be taken because this function is always called from a thread (not "
"the main thread)."
msgstr ""
"从指定大小的给定资源生成预览。这必须始终执行。\n"
"返回空纹理是失败的好方法,并让另一个生成器负责。\n"
"注意!,因为始终从线程(而不是主线程)调用此函数。"

#: doc/classes/EditorResourcePreviewGenerator.xml:34
msgid ""
"Generate a preview directly from a path with the specified size. "
"Implementing this is optional, as default code will load and call [method "
"generate].\n"
"Returning an empty texture is an OK way to fail and let another generator "
"take care.\n"
"Care must be taken because this function is always called from a thread (not "
"the main thread)."
msgstr ""
"直接从具有指定大小的路径生成预览。实现此操作是可选的,因为默认代码将加载并调"
"用[method generate]。\n"
"返回空纹理是失败的好方法,并让另一个生成器负责。\n"
"注意!,因为始终从线程(而不是主线程)调用此函数。"

#: doc/classes/EditorResourcePreviewGenerator.xml:42
msgid ""
"If this function returns [code]true[/code], the generator will automatically "
"generate the small previews from the normal preview texture generated by the "
"methods [method generate] or [method generate_from_path].\n"
"By default, it returns [code]false[/code]."
msgstr ""
"如果此函数返回[code] true [/code],则生成器将根据由[method generate]或"
"[method generate_from_path]方法生成的常规预览纹理自动生成较小的预览。\n"
"默认情况下,它返回[code] false [/code]。"

#: doc/classes/EditorResourcePreviewGenerator.xml:50
msgid ""
"Returns [code]true[/code] if your generator supports the resource of type "
"[code]type[/code]."
msgstr "如果你的生成器支持类型[code]type[/code]的资源,返回[code]true[/code]。"

#: doc/classes/EditorSceneImporter.xml:4
msgid "Imports scenes from third-parties' 3D files."
msgstr "从第三方的3D文件中导入场景。"

#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml:4
msgid "FBX 3D asset importer."
msgstr ""

#: modules/fbx/doc_classes/EditorSceneImporterFBX.xml:7
#, fuzzy
msgid ""
"This is an FBX 3D asset importer with full support for most FBX features.\n"
"If exporting a FBX scene from Autodesk Maya, use these FBX export settings:\n"
"[codeblock]\n"
"- Smoothing Groups\n"
"- Smooth Mesh\n"
"- Triangluate (for meshes with blend shapes)\n"
"- Bake Animation\n"
"- Resample All\n"
"- Deformed Models\n"
"- Skins\n"
"- Blend Shapes\n"
"- Curve Filters\n"
"- Constant Key Reducer\n"
"- Auto Tangents Only\n"
"- *Do not check* Constraints (as it will break the file)\n"
"- Can check Embed Media (embeds textures into the exported FBX file)\n"
"  - Note that when importing embedded media, the texture and mesh will be a "
"single immutable file.\n"
"  - You will have to re-export then re-import the FBX if the texture has "
"changed.\n"
"- Units: Centimeters\n"
"- Up Axis: Y\n"
"- Binary format in FBX 2017\n"
"[/codeblock]"
msgstr ""
"这是一个基于[url=http://assimp.org/]Assimp[/url]的FBX 3D资源导入器。它目前有"
"许多已知的限制,并且对静态网格效果最好。大多数动画网格无法正确导入。\n"
"如果从 Autodesk Maya 导出 FBX 场景,请使用这些 FBX 导出设置。\n"
"[codeblock]\n"
"- Smoothing Groups\n"
"- Smooth Mesh\n"
"- Triangluate (for meshes with blend shapes)\n"
"- Bake Animation\n"
"- Resample All\n"
"- Deformed Models\n"
"- Skins\n"
"- Blend Shapes\n"
"- Curve Filters\n"
"- Constant Key Reducer\n"
"- Auto Tangents Only\n"
"- *Do not check* Constraints (as it will break the file)\n"
"- Can check Embed Media (embeds textures into the exported FBX file)\n"
"  - Note that when importing embedded media, the texture and mesh will be a "
"single immutable file.\n"
"  - You will have to re-export then re-import the FBX if the texture has "
"changed.\n"
"- Units: Centimeters\n"
"- Up Axis: Y\n"
"- Binary format in FBX 2017\n"
"[/codeblock]"

#: doc/classes/EditorScenePostImport.xml:4
msgid "Post-processes scenes after import."
msgstr "导入后对场景进行后处理。"

#: doc/classes/EditorScenePostImport.xml:7
msgid ""
"Imported scenes can be automatically modified right after import by setting "
"their [b]Custom Script[/b] Import property to a [code]tool[/code] script "
"that inherits from this class.\n"
"The [method post_import] callback receives the imported scene's root node "
"and returns the modified version of the scene. Usage example:\n"
"[codeblock]\n"
"tool # Needed so it runs in editor\n"
"extends EditorScenePostImport\n"
"\n"
"# This sample changes all node names\n"
"\n"
"# Called right after the scene is imported and gets the root node\n"
"func post_import(scene):\n"
"    # Change all node names to \"modified_[oldnodename]\"\n"
"    iterate(scene)\n"
"    return scene # Remember to return the imported scene\n"
"\n"
"func iterate(node):\n"
"    if node != null:\n"
"        node.name = \"modified_\" + node.name\n"
"        for child in node.get_children():\n"
"            iterate(child)\n"
"[/codeblock]"
msgstr ""
"导入的场景可以在导入后立即自动修改,方法是将其 [b]自定义脚本[/b] 导入属性设置"
"为继承自该类的 [code]tool[/code] 脚本。\n"
"[method post_import]回调接收导入场景的根节点,并返回场景的修改版本。使用示"
"例。\n"
"[codeblock]\n"
"tool # Needed so it runs in editor\n"
"extends EditorScenePostImport\n"
"\n"
"# This sample changes all node names\n"
"\n"
"# Called right after the scene is imported and gets the root node\n"
"func post_import(scene):\n"
"    # Change all node names to \"modified_[oldnodename]\"\n"
"    iterate(scene)\n"
"    return scene # Remember to return the imported scene\n"
"\n"
"func iterate(node):\n"
"    if node != null:\n"
"        node.name = \"modified_\" + node.name\n"
"        for child in node.get_children():\n"
"            iterate(child)\n"
"[/codeblock]"

#: doc/classes/EditorScenePostImport.xml:29
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/workflow/assets/"
"importing_scenes.html#custom-script"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/workflow/assets/"
"importing_scenes.html#custom-script"

#: doc/classes/EditorScenePostImport.xml:35
msgid ""
"Returns the source file path which got imported (e.g. [code]res://scene.dae[/"
"code])."
msgstr "返回导入的源文件路径(如[code]res://scene.dae[/code])。"

#: doc/classes/EditorScenePostImport.xml:41
msgid "Returns the resource folder the imported scene file is located in."
msgstr "返回导入的场景文件所在的资源文件夹。"

#: doc/classes/EditorScenePostImport.xml:48
msgid ""
"Called after the scene was imported. This method must return the modified "
"version of the scene."
msgstr "在场景被导入后触发。本方法必须返回场景的修改版本。"

#: doc/classes/EditorScript.xml:4
msgid "Base script that can be used to add extension functions to the editor."
msgstr "可用于为编辑器添加扩展功能的基础脚本。"

#: doc/classes/EditorScript.xml:7
#, fuzzy
msgid ""
"Scripts extending this class and implementing its [method _run] method can "
"be executed from the Script Editor's [b]File > Run[/b] menu option (or by "
"pressing [code]Ctrl+Shift+X[/code]) while the editor is running. This is "
"useful for adding custom in-editor functionality to Godot. For more complex "
"additions, consider using [EditorPlugin]s instead.\n"
"[b]Note:[/b] Extending scripts need to have [code]tool[/code] mode enabled.\n"
"[b]Example script:[/b]\n"
"[codeblock]\n"
"tool\n"
"extends EditorScript\n"
"\n"
"func _run():\n"
"    print(\"Hello from the Godot Editor!\")\n"
"[/codeblock]\n"
"[b]Note:[/b] The script is run in the Editor context, which means the output "
"is visible in the console window started with the Editor (stdout) instead of "
"the usual Godot [b]Output[/b] dock."
msgstr ""
"可以通过脚本编辑器的[b] File> Run [/b]菜单选项(或通过按[kbd] Ctrl + Shift + "
"X [/kbd])来执行扩展此类并实现其[method _run]方法的脚本。这对于将自定义的编辑"
"器内功能添加到Godot很有用。对于更复杂的添加,请考虑改为使用[EditorPlugin]。\n"
"[b]注意:[/b]扩展脚本需要启用[code]tool[/code]模式。\n"
"[b]示例脚本:[/b]\n"
"[codeblock]\n"
"tool\n"
"extends EditorScript\n"
"\n"
"func _run():\n"
"    print(\"Hello from the Godot Editor!\")\n"
"[/codeblock]\n"
"[b]注意:[/b]该脚本在编辑器上下文中运行,这意味着输出在以编辑器(stdout)开始"
"的控制台窗口中可见,而不是通常的Godot [b] Output [/b]停靠栏。"

#: doc/classes/EditorScript.xml:25
msgid "This method is executed by the Editor when [b]File > Run[/b] is used."
msgstr "当使用[b]文件 > 运行[/b]时,此方法由编辑器执行。"

#: doc/classes/EditorScript.xml:32
msgid ""
"Adds [code]node[/code] as a child of the root node in the editor context.\n"
"[b]Warning:[/b] The implementation of this method is currently disabled."
msgstr ""
"将[code] node [/code]添加为编辑器上下文中根节点的子级。\n"
"[b]警告:[/b]此方法的实现前处于禁用状态。"

#: doc/classes/EditorScript.xml:39
msgid "Returns the [EditorInterface] singleton instance."
msgstr "返回[EditorInterface]单例的实例。"

#: doc/classes/EditorScript.xml:45
msgid "Returns the Editor's currently active scene."
msgstr "返回编辑器的当前活动场景。"

#: doc/classes/EditorScriptPicker.xml:4
msgid ""
"Godot editor's control for selecting the [code]script[/code] property of a "
"[Node]."
msgstr ""

#: doc/classes/EditorScriptPicker.xml:7
msgid ""
"Similar to [EditorResourcePicker] this [Control] node is used in the "
"editor's Inspector dock, but only to edit the [code]script[/code] property "
"of a [Node]. Default options for creating new resources of all possible "
"subtypes are replaced with dedicated buttons that open the \"Attach Node "
"Script\" dialog. Can be used with [EditorInspectorPlugin] to recreate the "
"same behavior.\n"
"[b]Note:[/b] You must set the [member script_owner] for the custom context "
"menu items to work."
msgstr ""

#: doc/classes/EditorScriptPicker.xml:16
msgid "The owner [Node] of the script property that holds the edited resource."
msgstr ""

#: doc/classes/EditorSelection.xml:4
msgid "Manages the SceneTree selection in the editor."
msgstr "管理编辑器中的SceneTree选择。"

#: doc/classes/EditorSelection.xml:7
msgid ""
"This object manages the SceneTree selection in the editor.\n"
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_selection]."
msgstr ""
"这个对象管理编辑器中的SceneTree选择。\n"
"[b]注意:[/b]这个类不应该直接实例化。相反,使用[method EditorInterface."
"get_selection]访问单例。"

#: doc/classes/EditorSelection.xml:17
msgid ""
"Adds a node to the selection.\n"
"[b]Note:[/b] The newly selected node will not be automatically edited in the "
"inspector. If you want to edit a node, use [method EditorInterface."
"edit_node]."
msgstr ""

#: doc/classes/EditorSelection.xml:24
msgid "Clear the selection."
msgstr "清除选中项。"

#: doc/classes/EditorSelection.xml:30
msgid "Gets the list of selected nodes."
msgstr "获取所选节点的列表。"

#: doc/classes/EditorSelection.xml:36
msgid ""
"Gets the list of selected nodes, optimized for transform operations (i.e. "
"moving them, rotating, etc). This list avoids situations where a node is "
"selected and also child/grandchild."
msgstr ""
"获取所选节点的列表,针对变换操作(如移动、旋转等)进行优化。这个列表避免了节"
"点被选中的情况,也避免了子/孙节点被选中的情况。"

#: doc/classes/EditorSelection.xml:43
msgid "Removes a node from the selection."
msgstr "从选择中删除一个节点。"

#: doc/classes/EditorSelection.xml:50
msgid "Emitted when the selection changes."
msgstr "更改选择时发出。"

#: doc/classes/EditorSettings.xml:4
msgid "Object that holds the project-independent editor settings."
msgstr "保存与项目无关的编辑器设置的对象。"

#: doc/classes/EditorSettings.xml:7
msgid ""
"Object that holds the project-independent editor settings. These settings "
"are generally visible in the [b]Editor > Editor Settings[/b] menu.\n"
"Property names use slash delimiters to distinguish sections. Setting values "
"can be of any [Variant] type. It's recommended to use [code]snake_case[/"
"code] for editor settings to be consistent with the Godot editor itself.\n"
"Accessing the settings can be done using the following methods, such as:\n"
"[codeblock]\n"
"# `settings.set(\"some/property\", value)` also works as this class "
"overrides `_set()` internally.\n"
"settings.set_setting(\"some/property\",value)\n"
"\n"
"# `settings.get(\"some/property\", value)` also works as this class "
"overrides `_get()` internally.\n"
"settings.get_setting(\"some/property\")\n"
"\n"
"var list_of_settings = settings.get_property_list()\n"
"[/codeblock]\n"
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_editor_settings]."
msgstr ""
"保存与项目无关的编辑器设置的对象。这些设置通常在 [b]编辑器 > 编辑器设置[/b] "
"菜单中可见。\n"
"属性名使用斜线分隔符来区分部分。设置值可以是任何 [Variant] 类型。建议使用"
"[code]snake_case[/code]进行编辑器设置,以便与Godot编辑器本身保持一致。\n"
"访问设置可以使用以下方法,例如。\n"
"[codeblock]\n"
"# `settings.set(\"some/property\", value)` also works as this class "
"overrides `_set()` internally.\n"
"settings.set_setting(\"some/property\",value)\n"
"\n"
"# `settings.get(\"some/property\", value)` also works as this class "
"overrides `_get()` internally.\n"
"settings.get_setting(\"some/property\")\n"
"\n"
"var list_of_settings = settings.get_property_list()\n"
"[/codeblock]\n"
"[b]注意:[/b]这个类不应该直接实例化,而是使用[method EditorInterface."
"get_editor_settings]访问单子。相反,使用[method EditorInterface."
"get_editor_settings]访问单例。"

#: doc/classes/EditorSettings.xml:28
msgid ""
"Adds a custom property info to a property. The dictionary must contain:\n"
"- [code]name[/code]: [String] (the name of the property)\n"
"- [code]type[/code]: [int] (see [enum Variant.Type])\n"
"- optionally [code]hint[/code]: [int] (see [enum PropertyHint]) and "
"[code]hint_string[/code]: [String]\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"editor_settings.set(\"category/property_name\", 0)\n"
"\n"
"var property_info = {\n"
"    \"name\": \"category/property_name\",\n"
"    \"type\": TYPE_INT,\n"
"    \"hint\": PROPERTY_HINT_ENUM,\n"
"    \"hint_string\": \"one,two,three\"\n"
"}\n"
"\n"
"editor_settings.add_property_info(property_info)\n"
"[/codeblock]"
msgstr ""
"将自定义属性信息添加到属性。该词典必须包含:\n"
"-[code]名称[/code]:[字符串](属性名称)\n"
"-[code]类型[/code]:[int](请参见[enum Variant.Type])\n"
"-(可选)[code]提示[/code]:[int](请参见[enum PropertyHint])和[code] "
"hint_string [/code]:[String]\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"editor_settings.set(\"category/property_name\", 0)\n"
"\n"
"var property_info = {\n"
"    \"name\": \"category/property_name\",\n"
"    \"type\": TYPE_INT,\n"
"    \"hint\": PROPERTY_HINT_ENUM,\n"
"    \"hint_string\": \"one,two,three\"\n"
"}\n"
"\n"
"editor_settings.add_property_info(property_info)\n"
"[/codeblock]"

#: doc/classes/EditorSettings.xml:51
msgid "Erases the setting whose name is specified by [code]property[/code]."
msgstr "删除名称为指定[code]property[/code]的设置。"

#: doc/classes/EditorSettings.xml:57
msgid "Returns the list of favorite files and directories for this project."
msgstr "返回本项目最收藏的文件和目录列表。"

#: doc/classes/EditorSettings.xml:66
msgid ""
"Returns project-specific metadata for the [code]section[/code] and "
"[code]key[/code] specified. If the metadata doesn't exist, [code]default[/"
"code] will be returned instead. See also [method set_project_metadata]."
msgstr ""
"返回指定的[code]section[/code]和[code]key[/code]的特定项目元数据。如果元数据"
"不存在,将返回[code]default[/code]。另请参阅 [method set_project_metadata]。"

#: doc/classes/EditorSettings.xml:72
msgid ""
"Returns the project-specific settings path. Projects all have a unique "
"subdirectory inside the settings path where project-specific settings are "
"saved."
msgstr ""
"返回项目特定设置的路径。项目在设置路径中都有一个唯一的子目录,保存项目的特定"
"设置。"

#: doc/classes/EditorSettings.xml:78
msgid ""
"Returns the list of recently visited folders in the file dialog for this "
"project."
msgstr "返回此项目文件对话框中最近访问的文件夹列表。"

#: doc/classes/EditorSettings.xml:85
msgid ""
"Returns the value of the setting specified by [code]name[/code]. This is "
"equivalent to using [method Object.get] on the EditorSettings instance."
msgstr ""
"返回 [code]name[/code] 指定的设置的值。这相当于在EditorSettings实例上使用"
"[method Object.get]。"

#: doc/classes/EditorSettings.xml:91
msgid ""
"Gets the global settings path for the engine. Inside this path, you can find "
"some standard paths such as:\n"
"[code]settings/tmp[/code] - Used for temporary storage of files\n"
"[code]settings/templates[/code] - Where export templates are located"
msgstr ""
"获取引擎的全局设置路径。在此路径内,您可以找到一些标准路径,例如:\n"
"[code] settings / tmp [/code]-用于文件的临时存储\n"
"[code]settings/templates[/code]-导出模板所在的位置"

#: doc/classes/EditorSettings.xml:100
msgid ""
"Returns [code]true[/code] if the setting specified by [code]name[/code] "
"exists, [code]false[/code] otherwise."
msgstr ""
"如果由名称 [code]name[/code] 指定的设置存在,则返回 [code]true[/code],否则返"
"回 [code]false[/code]。"

#: doc/classes/EditorSettings.xml:107
msgid ""
"Returns [code]true[/code] if the setting specified by [code]name[/code] can "
"have its value reverted to the default value, [code]false[/code] otherwise. "
"When this method returns [code]true[/code], a Revert button will display "
"next to the setting in the Editor Settings."
msgstr ""
"如果[code]name[/code]指定的设置可以将其值还原为默认值,则返回[code]true[/"
"code],否则返回[code]false[/code]。当此方法返回[code]true[/code]时,编辑器设"
"置中的设置旁边会显示一个还原按钮。"

#: doc/classes/EditorSettings.xml:114
msgid ""
"Returns the default value of the setting specified by [code]name[/code]. "
"This is the value that would be applied when clicking the Revert button in "
"the Editor Settings."
msgstr ""
"返回 [code]name[/code] 指定的设置的默认值。当点击编辑器设置中的 \"还原 \"按钮"
"时,该值将被应用。"

#: doc/classes/EditorSettings.xml:121
msgid "Sets the list of favorite files and directories for this project."
msgstr "设置此项目为收藏的文件和目录列表。"

#: doc/classes/EditorSettings.xml:130
msgid ""
"Sets the initial value of the setting specified by [code]name[/code] to "
"[code]value[/code]. This is used to provide a value for the Revert button in "
"the Editor Settings. If [code]update_current[/code] is true, the current "
"value of the setting will be set to [code]value[/code] as well."
msgstr ""
"将 [code]name[/code] 指定的设置的初始值设置为 [code]value[/code]。这用于为编"
"辑器设置中的 \"还原 \"按钮提供一个值。如果[code]update_current[/code]为真,则"
"设置的当前值也会被设置为[code]value[/code]。"

#: doc/classes/EditorSettings.xml:139
msgid ""
"Sets project-specific metadata with the [code]section[/code], [code]key[/"
"code] and [code]data[/code] specified. This metadata is stored outside the "
"project folder and therefore won't be checked into version control. See also "
"[method get_project_metadata]."
msgstr ""
"设置项目特定的元数据,并指定 [code]section[/code]、[code]key[/code] 和 "
"[code]data[/code]。这个元数据被保存在项目文件夹之外,因此不会被检查到版本控制"
"中。参见 [method get_project_metadata]。"

#: doc/classes/EditorSettings.xml:146
msgid ""
"Sets the list of recently visited folders in the file dialog for this "
"project."
msgstr "在文件对话框中设置本项目最近访问过的文件夹列表。"

#: doc/classes/EditorSettings.xml:154
msgid ""
"Sets the [code]value[/code] of the setting specified by [code]name[/code]. "
"This is equivalent to using [method Object.set] on the EditorSettings "
"instance."
msgstr ""
"设置 [code]name[/code] 指定的设置的 [code]value[/code]。这相当于在"
"EditorSettings实例上使用[method Object.set]。"

#: doc/classes/EditorSettings.xml:161
msgid "Emitted after any editor setting has changed."
msgstr "在编辑器设置改变后触发。"

#: doc/classes/EditorSettings.xml:167
msgid ""
"Emitted after any editor setting has changed. It's used by various editor "
"plugins to update their visuals on theme changes or logic on configuration "
"changes."
msgstr ""
"在编辑器设置改变后触发。它被各种编辑器插件用于在主题变化时更新其视觉效果或在"
"配置变化时更新逻辑。"

#: doc/classes/EditorSpatialGizmo.xml:4
#, fuzzy
msgid "Custom gizmo for editing Spatial objects."
msgstr "用于编辑Node3D对象的自定义小工具。"

#: doc/classes/EditorSpatialGizmo.xml:7
#, fuzzy
msgid ""
"Custom gizmo that is used for providing custom visualization and editing "
"(handles) for 3D Spatial objects. See [EditorSpatialGizmoPlugin] for more "
"information."
msgstr ""
"自定义小工具,用于为Node3D对象提供自定义可视化和编辑(句柄)。更多信息请参见"
"[EditorNode3DGizmoPlugin]。"

#: doc/classes/EditorSpatialGizmo.xml:16
msgid ""
"Adds the specified [code]segments[/code] to the gizmo's collision shape for "
"picking. Call this function during [method redraw]."
msgstr ""
"将指定的[code]segments[/code]添加到gizmo的碰撞形状中,以便挑选。在[method "
"redraw]时调用此函数。"

#: doc/classes/EditorSpatialGizmo.xml:23
msgid ""
"Adds collision triangles to the gizmo for picking. A [TriangleMesh] can be "
"generated from a regular [Mesh] too. Call this function during [method "
"redraw]."
msgstr ""
"将碰撞三角形添加到小工具中,供挑选。也可以从普通的[Mesh]生成[TriangleMesh]。"
"在[方法重绘]时调用此函数。"

#: doc/classes/EditorSpatialGizmo.xml:33
msgid ""
"Adds a list of handles (points) which can be used to deform the object being "
"edited.\n"
"There are virtual functions which will be called upon editing of these "
"handles. Call this function during [method redraw]."
msgstr ""
"添加一个句柄(点)列表,可以用来对编辑的对象进行变形。\n"
"有一些虚函数将在编辑这些句柄时被调用。在 [method redraw]时调用这个函数。"

#: doc/classes/EditorSpatialGizmo.xml:44
msgid ""
"Adds lines to the gizmo (as sets of 2 points), with a given material. The "
"lines are used for visualizing the gizmo. Call this function during [method "
"redraw]."
msgstr ""
"用给定的材料在小工具上添加线条到gizmo (作为2个点的集合)。线条用于可视化"
"gizmo。在[method redraw]时调用此函数。"

#: doc/classes/EditorSpatialGizmo.xml:54
msgid ""
"Adds a mesh to the gizmo with the specified [code]billboard[/code] state, "
"[code]skeleton[/code] and [code]material[/code]. If [code]billboard[/code] "
"is [code]true[/code], the mesh will rotate to always face the camera. Call "
"this function during [method redraw]."
msgstr ""
"以指定的 [code]billboard[/code] 状态、[code]skeleton[/code] 和 "
"[code]materia[/code] 添加网格到小工具。如果 [code]billboard[/code] 为 "
"[code]true[/code],则网格将旋转为始终面向摄像机。在 [method redraw] 时调用此"
"函数。"

#: doc/classes/EditorSpatialGizmo.xml:63
msgid ""
"Adds an unscaled billboard for visualization. Call this function during "
"[method redraw]."
msgstr "添加一个未缩放的广告牌以实现可视化。在[method redraw]时调用此函数。"

#: doc/classes/EditorSpatialGizmo.xml:69
msgid ""
"Removes everything in the gizmo including meshes, collisions and handles."
msgstr "移除小工具中的一切,包括网格、碰撞和句柄。"

#: doc/classes/EditorSpatialGizmo.xml:78
msgid ""
"Commit a handle being edited (handles must have been previously added by "
"[method add_handles]).\n"
"If the [code]cancel[/code] parameter is [code]true[/code], an option to "
"restore the edited value to the original is provided."
msgstr ""
"提交一个正在编辑的句柄(句柄必须是之前通过[method add_handles]添加的)。\n"
"如果[code]cancel[/code]参数是[code]true[/code],则提供了一个将编辑后的值恢复"
"到原始值的选项。"

#: doc/classes/EditorSpatialGizmo.xml:86
msgid ""
"Gets the name of an edited handle (handles must have been previously added "
"by [method add_handles]).\n"
"Handles can be named for reference to the user when editing."
msgstr ""
"获取已编辑的句柄的名称(句柄必须是之前通过[method add_handles]添加的)。\n"
"句柄的名称可以在编辑时被命名作为用户参考。"

#: doc/classes/EditorSpatialGizmo.xml:94
msgid ""
"Gets actual value of a handle. This value can be anything and used for "
"eventually undoing the motion when calling [method commit_handle]."
msgstr ""
"获取一个句柄的实际值,这个值可以是任何东西,用于在调用[method commit_handle]"
"时最终撤销动作。这个值可以是任何东西,用于在调用[method commit_handle]时最终"
"撤销动作。"

#: doc/classes/EditorSpatialGizmo.xml:100
#, fuzzy
msgid ""
"Returns the [EditorSpatialGizmoPlugin] that owns this gizmo. It's useful to "
"retrieve materials using [method EditorSpatialGizmoPlugin.get_material]."
msgstr ""
"返回拥有此gezmo的[EditorNode3DGizmoPlugin]。使用[method "
"EditorNode3DGizmoPlugin.get_material]检索材质很有用。"

#: doc/classes/EditorSpatialGizmo.xml:106
#, fuzzy
msgid "Returns the Spatial node associated with this gizmo."
msgstr "返回与此小工具相关联的Node3D节点。"

#: doc/classes/EditorSpatialGizmo.xml:113
msgid ""
"Returns [code]true[/code] if the handle at index [code]index[/code] is "
"highlighted by being hovered with the mouse."
msgstr ""
"如果鼠标悬停索引为 [code]index[/code] 的句柄高亮,则返回[code]true[/code]。"

#: doc/classes/EditorSpatialGizmo.xml:119
#, fuzzy
msgid ""
"This function is called when the [Spatial] this gizmo refers to changes (the "
"[method Spatial.update_gizmo] is called)."
msgstr ""
"当[Node3D]这个工具所指的变化时([method Node3D.update_gizmo]函数被调用)。"

#: doc/classes/EditorSpatialGizmo.xml:128
#, fuzzy
msgid ""
"This function is used when the user drags a gizmo handle (previously added "
"with [method add_handles]) in screen coordinates.\n"
"The [Camera] is also provided so screen coordinates can be converted to "
"raycasts."
msgstr ""
"当用户在屏幕坐标中拖动工具句柄(之前用[method add_handles]添加的)时,使用该"
"函数。\n"
"还提供了[Camera3D],这样屏幕坐标就可以转换为射线广播。"

#: doc/classes/EditorSpatialGizmo.xml:136
msgid ""
"Sets the gizmo's hidden state. If [code]true[/code], the gizmo will be "
"hidden. If [code]false[/code], it will be shown."
msgstr ""
"设置工具的隐藏状态。如果[code]true[/code],则小控件将被隐藏。如果"
"[code]false[/code],将显示它。"

#: doc/classes/EditorSpatialGizmo.xml:143
#, fuzzy
msgid ""
"Sets the reference [Spatial] node for the gizmo. [code]node[/code] must "
"inherit from [Spatial]."
msgstr "设置工具的参考[Node3D]节点。 [code] node [/code]必须继承自[Node3D]。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:4
#, fuzzy
msgid "Used by the editor to define Spatial gizmo types."
msgstr "编辑器使用它来定义Node3D 工具类型。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:7
#, fuzzy
msgid ""
"EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are "
"two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler "
"gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the "
"documentation for more info."
msgstr ""
"EditorNode3DGizmoPlugin允许您定义一种新的辅助工具类型。这样做的主要方法有两"
"种:扩展[EditorNode3DGizmoPlugin]以获得更简单的Gizmos,或创建新的"
"[EditorNode3DGizmo]类型。有关更多信息,请参见文档中的教程。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/spatial_gizmos."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/editor/"
"spatial_gizmos.html"

#: doc/classes/EditorSpatialGizmoPlugin.xml:18
msgid ""
"Adds a new material to the internal material list for the plugin. It can "
"then be accessed with [method get_material]. Should not be overridden."
msgstr ""
"将新材料添加到插件的内部插件列表中。然后可以使用[method get_material]访问它。"
"不会该被覆盖。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:24
msgid ""
"Override this method to define whether the gizmo can be hidden or not. "
"Returns [code]true[/code] if not overridden."
msgstr ""
"重写此方法以定义是否可以隐藏Gizmo。如果未覆盖,则返回[code] true [/code]。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:34
msgid ""
"Override this method to commit gizmo handles. Called for this plugin's "
"active gizmos."
msgstr "重写此方法以提交Gizmo句柄。调用此插件的活动辅助工具。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:41
#, fuzzy
msgid ""
"Override this method to return a custom [EditorSpatialGizmo] for the spatial "
"nodes of your choice, return [code]null[/code] for the rest of nodes. See "
"also [method has_gizmo]."
msgstr ""
"重写此方法可为您选择的空间节点返回自定义[EditorNode3DGizmo],为其余节点返回"
"[code] null [/code]。另请参见[method has_gizmo]。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:50
#, fuzzy
msgid ""
"Creates a handle material with its variants (selected and/or editable) and "
"adds them to the internal material list. They can then be accessed with "
"[method get_material] and used in [method EditorSpatialGizmo.add_handles]. "
"Should not be overridden.\n"
"You can optionally provide a texture to use instead of the default icon."
msgstr ""
"创建具有其变体(选定和/或可编辑)的句柄材质,并将其添加到内部材质列表中。然后"
"可以使用[method get_material]访问它们,并在[method EditorNode3DGizmo."
"add_handles]中使用它们。不应该被覆盖。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:61
#, fuzzy
msgid ""
"Creates an icon material with its variants (selected and/or editable) and "
"adds them to the internal material list. They can then be accessed with "
"[method get_material] and used in [method EditorSpatialGizmo."
"add_unscaled_billboard]. Should not be overridden."
msgstr ""
"创建一个图标材质及其变体,注,选定的和/或可编辑的,并将它们添加到内部材质列"
"表。然后可以用[method get_material]访问它们,并在[method EditorNode3DGizmo."
"add_unscaled_billboard]中使用。不应该被重写。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:72
#, fuzzy
msgid ""
"Creates an unshaded material with its variants (selected and/or editable) "
"and adds them to the internal material list. They can then be accessed with "
"[method get_material] and used in [method EditorSpatialGizmo.add_mesh] and "
"[method EditorSpatialGizmo.add_lines]. Should not be overridden."
msgstr ""
"创建具有其变体(选定和/或可编辑)的无阴影材质,并将其添加到内部材质列表中。然"
"后可以使用[method get_material]访问它们,并在[method EditorNode3DGizmo."
"add_mesh]和[method EditorNode3DGizmo.add_lines]中使用它们。不应该被覆盖。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:80
msgid ""
"Override this method to provide gizmo's handle names. Called for this "
"plugin's active gizmos."
msgstr "重写此方法以提供Gizmo的句柄名称。调用此插件的活动工具。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:88
msgid ""
"Gets actual value of a handle from gizmo. Called for this plugin's active "
"gizmos."
msgstr "从Gizmo获取句柄的实际值。调用此插件的活动工具。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:96
#, fuzzy
msgid ""
"Gets material from the internal list of materials. If an "
"[EditorSpatialGizmo] is provided, it will try to get the corresponding "
"variant (selected and/or editable)."
msgstr ""
"从内部物料清单中获取材质。如果提供了[EditorNode3DGizmo],它将尝试获取相应的变"
"体(已选择/或可编辑)。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:102
msgid ""
"Override this method to provide the name that will appear in the gizmo "
"visibility menu."
msgstr "重写此方法以提供将出现在工具可见性菜单中的名称。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:108
msgid ""
"Override this method to set the gizmo's priority. Higher values correspond "
"to higher priority. If a gizmo with higher priority conflicts with another "
"gizmo, only the gizmo with higher priority will be used.\n"
"All built-in editor gizmos return a priority of [code]-1[/code]. If not "
"overridden, this method will return [code]0[/code], which means custom "
"gizmos will automatically override built-in gizmos."
msgstr ""
"重写此方法可以设置工具的优先级。值越高,优先级越高。如果具有较高优先级的工具"
"与另一个工具发生冲突,则仅使用具有较高优先级的工具。\n"
"所有内置编辑器小控件均返回[code] -1 [/code]优先级。如果未重写,则此方法将返回"
"[code] 0 [/code],这意味着自定义控件将自动覆盖内置控件。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:116
#, fuzzy
msgid ""
"Override this method to define which Spatial nodes have a gizmo from this "
"plugin. Whenever a [Spatial] node is added to a scene this method is called, "
"if it returns [code]true[/code] the node gets a generic [EditorSpatialGizmo] "
"assigned and is added to this plugin's list of active gizmos."
msgstr ""
"重写此方法,以定义该插件中哪些Node3D节点具有Gizmo。每当将[Node3D]节点添加到场"
"景时,都会调用此方法,如果它返回[code] true [/code],则该节点将获得分配的通用"
"[EditorNode3DGizmo]并将其添加到此插件的活动工具列表中。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:124
msgid ""
"Gets whether a handle is highlighted or not. Called for this plugin's active "
"gizmos."
msgstr "获取句柄是否高亮显示。调用此插件的活动工具。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:130
#, fuzzy
msgid ""
"Override this method to define whether a Spatial with this gizmo should be "
"selectable even when the gizmo is hidden."
msgstr "重写此方法以定义是否应选择具有此工具的Node3D(即使工具已隐藏)。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:137
msgid ""
"Callback to redraw the provided gizmo. Called for this plugin's active "
"gizmos."
msgstr "回调以重新绘制提供的工具。调用此插件的活动工具。"

#: doc/classes/EditorSpatialGizmoPlugin.xml:147
msgid ""
"Update the value of a handle after it has been updated. Called for this "
"plugin's active gizmos."
msgstr "更新句柄后更新其值。调用此插件的活动工具。"

#: doc/classes/EditorSpinSlider.xml:4
#, fuzzy
msgid "Godot editor's control for editing numeric values."
msgstr "Godot编辑器的脚本编辑器。"

#: doc/classes/EditorSpinSlider.xml:7
msgid ""
"This [Control] node is used in the editor's Inspector dock to allow editing "
"of numeric values. Can be used with [EditorInspectorPlugin] to recreate the "
"same behavior."
msgstr ""

#: doc/classes/EditorVCSInterface.xml:4
msgid ""
"Version Control System (VCS) interface which reads and writes to the local "
"VCS in use."
msgstr "版本控制系统(VCS)接口,可对正在使用的本地VCS进行读写。"

#: doc/classes/EditorVCSInterface.xml:7
msgid ""
"Used by the editor to display VCS extracted information in the editor. The "
"implementation of this API is included in VCS addons, which are essentially "
"GDNative plugins that need to be put into the project folder. These VCS "
"addons are scripts which are attached (on demand) to the object instance of "
"[code]EditorVCSInterface[/code]. All the functions listed below, instead of "
"performing the task themselves, they call the internally defined functions "
"in the VCS addons to provide a plug-n-play experience."
msgstr ""
"由编辑器用来在编辑器中显示VCS提取的信息。这个API的实现包含在VCS附加组件中,这"
"些附加组件本质上是GDNative插件,需要放到项目文件夹中。这些VCS附加组件是脚本,"
"它们(按需)附加到[code]EditorVCSInterface[/code]的对象实例中。下面列出的所有"
"功能,它们不是自己执行任务,而是调用VCS附加组件中内部定义的功能,以提供现写现"
"用的体验。"

#: doc/classes/EditorVCSInterface.xml:16
msgid ""
"Creates a version commit if the addon is initialized, else returns without "
"doing anything. Uses the files which have been staged previously, with the "
"commit message set to a value as provided as in the argument."
msgstr ""
"如果add-on已经初始化,则创建一个版本提交,否则不做任何事情就返回。使用之前暂"
"存的文件,提交信息设置为参数中提供的值。"

#: doc/classes/EditorVCSInterface.xml:23
msgid ""
"Returns an [Array] of [Dictionary] objects containing the diff output from "
"the VCS in use, if a VCS addon is initialized, else returns an empty [Array] "
"object. The diff contents also consist of some contextual lines which "
"provide context to the observed line change in the file.\n"
"Each [Dictionary] object has the line diff contents under the keys:\n"
"- [code]\"content\"[/code] to store a [String] containing the line contents\n"
"- [code]\"status\"[/code] to store a [String] which contains [code]\"+\"[/"
"code] in case the content is a line addition but it stores a [code]\"-\"[/"
"code] in case of deletion and an empty string in the case the line content "
"is neither an addition nor a deletion.\n"
"- [code]\"new_line_number\"[/code] to store an integer containing the new "
"line number of the line content.\n"
"- [code]\"line_count\"[/code] to store an integer containing the number of "
"lines in the line content.\n"
"- [code]\"old_line_number\"[/code] to store an integer containing the old "
"line number of the line content.\n"
"- [code]\"offset\"[/code] to store the offset of the line change since the "
"first contextual line content."
msgstr ""
"如果VCS addon被初始化,返回一个[Array]的[Dictionary]对象,包含正在使用的VCS的"
"diff输出,否则返回一个空[Array]对象。diff内容还包括一些上下文,这些上下文行为"
"文件中观察到的行变化提供上下文。\n"
"每个[Dictionary]对象的键下都有行差内容。\n"
"- [code]\"content\"[/code]存储一个包含行内容的[String]。\n"
"- [code]\"status\"[/code]存储一个[String],如果内容是添加行,则包含[code]\"+"
"\"[/code],但如果是删除,则存储[code]\"-\"[/code],如果行内容既不是添加也不是"
"删除,则存储一个空字符串。\n"
"- [code]\"new_line_number\"[/code]存储一个包含行内容新行号的整数。\n"
"- [code]\"line_count\"[/code]存储一个整数,包含行内容的行数。\n"
"- [code]\"old_line_number\"[/code]存储包含行内容的旧行号的整数。\n"
"- [code]\"offset\"[/code]存储自第一个上下文行内容以来行变化的偏移量。"

#: doc/classes/EditorVCSInterface.xml:36
#, fuzzy
msgid ""
"Returns a [Dictionary] containing the path of the detected file change "
"mapped to an integer signifying what kind of change the corresponding file "
"has experienced.\n"
"The following integer values are being used to signify that the detected "
"file is:\n"
"- [code]0[/code]: New to the VCS working directory\n"
"- [code]1[/code]: Modified\n"
"- [code]2[/code]: Renamed\n"
"- [code]3[/code]: Deleted\n"
"- [code]4[/code]: Typechanged"
msgstr ""
"返回一个[Dictionary],其中包含检测到的文件变化的路径,并将其映射为一个整数,"
"表示相应文件经历了什么样的变化。\n"
"以下整数值被用来表示检测到的文件是。\n"
"- [code]0[/code]:新到VCS工作目录的文件\n"
"- [code]1[/code]:修改后\n"
"- [code]2[/code]:重新命名\n"
"- [code]3[/code]:已删除\n"
"- [code]4[/code]:类型已改变"

#: doc/classes/EditorVCSInterface.xml:48
msgid "Returns the project name of the VCS working directory."
msgstr "返回VCS工作目录的项目名称。"

#: doc/classes/EditorVCSInterface.xml:54
msgid ""
"Returns the name of the VCS if the VCS has been initialized, else return an "
"empty string."
msgstr "如果VCS已经初始化,返回VCS的名称,否则返回一个空字符串。"

#: doc/classes/EditorVCSInterface.xml:61
msgid ""
"Initializes the VCS addon if not already. Uses the argument value as the "
"path to the working directory of the project. Creates the initial commit if "
"required. Returns [code]true[/code] if no failure occurs, else returns "
"[code]false[/code]."
msgstr ""
"初始化VCS addon(如果还未初始化)。使用参数值作为项目工作目录的路径。如果需"
"要,创建初始提交。如果成功,返回[code]true[/code],否则返回[code]false[/"
"code]。"

#: doc/classes/EditorVCSInterface.xml:67
msgid ""
"Returns [code]true[/code] if the addon is ready to respond to function "
"calls, else returns [code]false[/code]."
msgstr ""
"如果addon准备好响应函数调用,返回[code]true[/code],否则返回[code]false[/"
"code]。"

#: doc/classes/EditorVCSInterface.xml:73
msgid ""
"Returns [code]true[/code] if the VCS addon has been initialized, else "
"returns [code]false[/code]."
msgstr ""
"如果VCS插件已经初始化,返回[code]true[/code],否则返回[code]false[/code]。"

#: doc/classes/EditorVCSInterface.xml:79
msgid ""
"Shuts down the VCS addon to allow cleanup code to run on call. Returns "
"[code]true[/code] is no failure occurs, else returns [code]false[/code]."
msgstr ""
"关闭VCS插件,允许清理代码去调用运行。如果没有失败,返回[code]true[/code],否"
"则返回[code]false[/code]。"

#: doc/classes/EditorVCSInterface.xml:86
msgid ""
"Stages the file which should be committed when [method EditorVCSInterface."
"commit] is called. Argument should contain the absolute path."
msgstr ""
"调用[method EditorVCSInterface.commit]时应提交的文件。参数应包含绝对路径。"

#: doc/classes/EditorVCSInterface.xml:93
msgid ""
"Unstages the file which was staged previously to be committed, so that it is "
"no longer committed when [method EditorVCSInterface.commit] is called. "
"Argument should contain the absolute path."
msgstr ""
"解除之前暂存的要提交的文件,以便在调用[method EditorVCSInterface.commit]时不"
"再提交。参数应包含绝对路径。"

#: doc/classes/EncodedObjectAsID.xml:4
msgid "Holds a reference to an [Object]'s instance ID."
msgstr "保存对[Object]实例ID的引用。"

#: doc/classes/EncodedObjectAsID.xml:7
msgid ""
"Utility class which holds a reference to the internal identifier of an "
"[Object] instance, as given by [method Object.get_instance_id]. This ID can "
"then be used to retrieve the object instance with [method @GDScript."
"instance_from_id].\n"
"This class is used internally by the editor inspector and script debugger, "
"but can also be used in plugins to pass and display objects as their IDs."
msgstr ""
"实用类,它拥有对[Object]实例的内部标识符的引用,该标识符由[method Object."
"get_instance_id]给出。这个ID可以通过[method @GDScript.instance_from_id]来检索"
"对象实例。\n"
"这个类在内部被编辑器检查器和脚本调试器使用,但也可以在插件中使用,以传递和显"
"示对象作为它们的ID。"

#: doc/classes/EncodedObjectAsID.xml:16
msgid ""
"The [Object] identifier stored in this [EncodedObjectAsID] instance. The "
"object instance can be retrieved with [method @GDScript.instance_from_id]."
msgstr ""
"存储在这个[EncodedObjectAsID]实例中的[对象]标识符。对象实例可以用[method "
"@GDScript.instance_from_id]检索。"

#: doc/classes/Engine.xml:4
msgid "Access to engine properties."
msgstr "进入引擎属性。"

#: doc/classes/Engine.xml:7
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]单例使您可以查询和修改项目的运行时参数,例如每秒帧数,时间范围等。"

#: doc/classes/Engine.xml:15
msgid ""
"Returns engine author information in a Dictionary.\n"
"[code]lead_developers[/code]    - Array of Strings, lead developer names\n"
"[code]founders[/code]           - Array of Strings, founder names\n"
"[code]project_managers[/code]   - Array of Strings, project manager names\n"
"[code]developers[/code]         - Array of Strings, developer names"
msgstr ""
"返回一个字典中的引擎作者信息。\n"
"[code]lead_developers[/code] - 字符串的数组,主要开发者的名字\n"
"[code]founders[/code] - 创始人姓名的字符串数组\n"
"[code]project_managers[/code] - 项目经理姓名的字符串数组\n"
"[code]developers[/code] - 开发者名称的字符串数组"

#: doc/classes/Engine.xml:25
msgid ""
"Returns an Array of copyright information Dictionaries.\n"
"[code]name[/code]    - String, component name\n"
"[code]parts[/code]   - Array of Dictionaries {[code]files[/code], "
"[code]copyright[/code], [code]license[/code]} describing subsections of the "
"component"
msgstr ""
"返回一个版权信息字典阵列。\n"
"[code]name[/code] - 字符串,组件名称。\n"
"[code]partic[/code] - 描述组件子部分的字典阵列{[code]files[/code], "
"[code]copyright[/code], [code]license[/code]}"

#: doc/classes/Engine.xml:33
#, fuzzy
msgid ""
"Returns a Dictionary of Arrays of donor names.\n"
"{[code]platinum_sponsors[/code], [code]gold_sponsors[/code], "
"[code]silver_sponsors[/code], [code]bronze_sponsors[/code], "
"[code]mini_sponsors[/code], [code]gold_donors[/code], [code]silver_donors[/"
"code], [code]bronze_donors[/code]}"
msgstr ""
"返回捐助者名称数组的字典。\n"
"{[code] platinum_sponsors [/code],[code] gold_sponsors [/code],[code] "
"mini_sponsors [/code],[code] gold_donors [/code],[code] silver_donors [/"
"code],[code] bronze_donors [/code]}"

#: doc/classes/Engine.xml:40
#, fuzzy
msgid ""
"Returns the total number of frames drawn. On headless platforms, or if the "
"render loop is disabled with [code]--disable-render-loop[/code] via command "
"line, [method get_frames_drawn] always returns [code]0[/code]. See [method "
"get_idle_frames]."
msgstr ""
"返回绘制的总帧数。如果通过命令行使用[code]--disable-render-loop[/code]禁用渲"
"染循环,则返回[code]0[/code]。参见[method get_idle_frames]。"

#: doc/classes/Engine.xml:46
msgid "Returns the frames per second of the running game."
msgstr "返回运行游戏的每秒帧数。"

#: doc/classes/Engine.xml:52
msgid ""
"Returns the total number of frames passed since engine initialization which "
"is advanced on each [b]idle frame[/b], regardless of whether the render loop "
"is enabled. See also [method get_frames_drawn] and [method "
"get_physics_frames].\n"
"[method get_idle_frames] can be used to run expensive logic less often "
"without relying on a [Timer]:\n"
"[codeblock]\n"
"func _process(_delta):\n"
"    if Engine.get_idle_frames() % 2 == 0:\n"
"        pass  # Run expensive logic only once every 2 idle (render) frames "
"here.\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Engine.xml:64
msgid ""
"Returns Dictionary of licenses used by Godot and included third party "
"components."
msgstr "返回Godot使用的Dictionary 字典列表,其中包括第三方组件。"

#: doc/classes/Engine.xml:70
msgid "Returns Godot license text."
msgstr "返回Godot许可证文本。"

#: doc/classes/Engine.xml:76
msgid "Returns the main loop object (see [MainLoop] and [SceneTree])."
msgstr "返回主循环对象(请参见[MainLoop]和[SceneTree])。"

#: doc/classes/Engine.xml:82
msgid ""
"Returns the total number of frames passed since engine initialization which "
"is advanced on each [b]physics frame[/b]. See also [method "
"get_idle_frames].\n"
"[method get_physics_frames] can be used to run expensive logic less often "
"without relying on a [Timer]:\n"
"[codeblock]\n"
"func _physics_process(_delta):\n"
"    if Engine.get_physics_frames() % 2 == 0:\n"
"        pass  # Run expensive logic only once every 2 physics frames here.\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Engine.xml:94
msgid ""
"Returns the fraction through the current physics tick we are at the time of "
"rendering the frame. This can be used to implement fixed timestep "
"interpolation."
msgstr "返回渲染框架时当前物理滴标记中的分数。这可用于实现固定的时间步插值。"

#: doc/classes/Engine.xml:101
#, fuzzy
msgid ""
"Returns a global singleton with given [code]name[/code]. Often used for "
"plugins, e.g. [code]GodotPayment[/code] on Android."
msgstr ""
"返回具有给定[code]name[/code]的全局单例。通常用于插件,例如GodotPayments。"

#: doc/classes/Engine.xml:107
msgid ""
"Returns the current engine version information in a Dictionary.\n"
"[code]major[/code]    - Holds the major version number as an int\n"
"[code]minor[/code]    - Holds the minor version number as an int\n"
"[code]patch[/code]    - Holds the patch version number as an int\n"
"[code]hex[/code]      - Holds the full version number encoded as a "
"hexadecimal int with one byte (2 places) per number (see example below)\n"
"[code]status[/code]   - Holds the status (e.g. \"beta\", \"rc1\", "
"\"rc2\", ... \"stable\") as a String\n"
"[code]build[/code]    - Holds the build name (e.g. \"custom_build\") as a "
"String\n"
"[code]hash[/code]     - Holds the full Git commit hash as a String\n"
"[code]year[/code]     - Holds the year the version was released in as an "
"int\n"
"[code]string[/code]   - [code]major[/code] + [code]minor[/code] + "
"[code]patch[/code] + [code]status[/code] + [code]build[/code] in a single "
"String\n"
"The [code]hex[/code] value is encoded as follows, from left to right: one "
"byte for the major, one byte for the minor, one byte for the patch version. "
"For example, \"3.1.12\" would be [code]0x03010C[/code]. [b]Note:[/b] It's "
"still an int internally, and printing it will give you its decimal "
"representation, which is not particularly meaningful. Use hexadecimal "
"literals for easy version comparisons from code:\n"
"[codeblock]\n"
"if Engine.get_version_info().hex >= 0x030200:\n"
"    # Do things specific to version 3.2 or later\n"
"else:\n"
"    # Do things specific to versions before 3.2\n"
"[/codeblock]"
msgstr ""
"在字典中返回当前的引擎版本信息。\n"
"[code]major[/code] - 将主要版本号作为一个int来保存。\n"
"[code]minor[/code] - 将小版本号作为一个int保存。\n"
"[code]patch[/code] - 将补丁版本号作为一个int来保存。\n"
"[code]hex[/code] - 保存以十六进制int编码的完整版本号,每个数字一个字节(2位)"
"(见下例)\n"
"[code]status[/code] - 以字符串形式保存状态 (例如 \"beta\", \"rc1\", "
"\"rc2\", ... \"stable\")\n"
"[code]build[/code] - 将build名称(例如 \"custom_build\")作为一个字符串保存。\n"
"[code]hash[/code] - 以字符串形式保存完整的 Git 提交哈希值。\n"
"[code]year[/code] - 将版本发布的年份作为一个int值来保存。\n"
"[code]string[/code] - [code]major[/code] + [code]minor[/code] + [code]patch[/"
"code] + [code]status[/code] + [code]build[/code]在一个字符串中。\n"
"[code]十六进制[/code]值的编码如下,从左到右:一个字节代表主要版本,一个字节代"
"表次要版本,一个字节代表补丁版本。例如,\"3.1.12 \"就是[code]0x03010C[/"
"code]。[b]注意:[/b]内部还是一个int,打印出来会给你它的十进制表示法,意义不是"
"特别大。使用十六进制的字数,方便从代码中进行版本比较。\n"
"[codeblock]\n"
"if Engine.get_version_info().hex >= 0x030200:\n"
"    # Do things specific to version 3.2 or later\n"
"else:\n"
"    # Do things specific to versions before 3.2\n"
"[/codeblock]"

#: doc/classes/Engine.xml:130
msgid ""
"Returns [code]true[/code] if a singleton with given [code]name[/code] exists "
"in global scope."
msgstr ""
"如果全局范围内存在具有给定[code]name[/code]的单例,则返回[code] true [/"
"code]。"

#: doc/classes/Engine.xml:136
msgid ""
"Returns [code]true[/code] if the game is inside the fixed process and "
"physics phase of the game loop."
msgstr "如果游戏在游戏循环的固定过程和物理阶段内,返回[code]true[/code]。"

#: doc/classes/Engine.xml:142
msgid ""
"If [code]true[/code], the script is currently running inside the editor. "
"This is useful for [code]tool[/code] scripts to conditionally draw editor "
"helpers, or prevent accidentally running \"game\" code that would affect the "
"scene state while in the editor:\n"
"[codeblock]\n"
"if Engine.editor_hint:\n"
"    draw_gizmos()\n"
"else:\n"
"    simulate_physics()\n"
"[/codeblock]\n"
"See [url=https://docs.godotengine.org/en/3.4/tutorials/misc/"
"running_code_in_the_editor.html]Running code in the editor[/url] in the "
"documentation for more information.\n"
"[b]Note:[/b] To detect whether the script is run from an editor [i]build[/i] "
"(e.g. when pressing [code]F5[/code]), use [method OS.has_feature] with the "
"[code]\"editor\"[/code] argument instead. [code]OS.has_feature(\"editor\")[/"
"code] will evaluate to [code]true[/code] both when the code is running in "
"the editor and when running the project from the editor, but it will "
"evaluate to [code]false[/code] when the code is run from an exported project."
msgstr ""

#: doc/classes/Engine.xml:153
msgid ""
"The number of fixed iterations per second. This controls how often physics "
"simulation and [method Node._physics_process] methods are run. This value "
"should generally always be set to [code]60[/code] or above, as Godot doesn't "
"interpolate the physics step. As a result, values lower than [code]60[/code] "
"will look stuttery. This value can be increased to make input more reactive "
"or work around tunneling issues, but keep in mind doing so will increase CPU "
"usage."
msgstr ""
"每秒钟固定的迭代次数。这控制了物理模拟和[method Node._physics_process]方法的"
"运行频率。这个值一般应始终设置为[code]60[/code]或以上,因为Godot不会对物理步"
"骤进行插值。因此,低于[code]60[/code]的值会显得很迟钝。这个值可以增加,以使输"
"入更灵敏或解决隧道问题,但请记住,这样做会增加CPU的使用。"

#: doc/classes/Engine.xml:156
#, fuzzy
msgid ""
"Controls how much physics ticks are synchronized with real time. For 0 or "
"less, the ticks are synchronized. Such values are recommended for network "
"games, where clock synchronization matters. Higher values cause higher "
"deviation of the in-game clock and real clock but smooth out framerate "
"jitters. The default value of 0.5 should be fine for most; values above 2 "
"could cause the game to react to dropped frames with a noticeable delay and "
"are not recommended.\n"
"[b]Note:[/b] For best results, when using a custom physics interpolation "
"solution, the physics jitter fix should be disabled by setting [member "
"physics_jitter_fix] to [code]0[/code]."
msgstr ""
"控制物理时钟与实时同步的程度。为0或更少,则是同步的。这样的值建议用于网络游"
"戏,因为时钟同步很重要。较高的数值会导致游戏中的时钟和真实时钟有较大的偏差,"
"但允许平滑帧率抖动。默认值0.5对大多数人来说应该是没有问题的;高于2的值可能会"
"导致游戏对掉帧的反应有明显的延迟,不建议使用。"

#: doc/classes/Engine.xml:160
msgid ""
"If [code]false[/code], stops printing error and warning messages to the "
"console and editor Output log. This can be used to hide error and warning "
"messages during unit test suite runs. This property is equivalent to the "
"[member ProjectSettings.application/run/disable_stderr] project setting.\n"
"[b]Warning:[/b] If you set this to [code]false[/code] anywhere in the "
"project, important error messages may be hidden even if they are emitted "
"from other scripts. If this is set to [code]false[/code] in a [code]@tool[/"
"code] script, this will also impact the editor itself. Do [i]not[/i] report "
"bugs before ensuring error messages are enabled (as they are by default).\n"
"[b]Note:[/b] This property does not impact the editor's Errors tab when "
"running a project from the editor."
msgstr ""

#: doc/classes/Engine.xml:165
msgid ""
"The desired frames per second. If the hardware cannot keep up, this setting "
"may not be respected. A value of 0 means no limit."
msgstr ""
"所需的每秒帧数。如果硬件无法跟上,则可能不遵守此设置。值为0表示没有限制。"

#: doc/classes/Engine.xml:168
msgid ""
"Controls how fast or slow the in-game clock ticks versus the real life one. "
"It defaults to 1.0. A value of 2.0 means the game moves twice as fast as "
"real life, whilst a value of 0.5 means the game moves at half the regular "
"speed."
msgstr ""
"控制游戏中的时钟与现实生活中的时钟的快慢。默认值为1.0。值为2.0意味着游戏的移"
"动速度是现实生活的两倍,而值为0.5意味着游戏的移动速度是常规速度的一半。"

#: doc/classes/Environment.xml:4
msgid ""
"Resource for environment nodes (like [WorldEnvironment]) that define "
"multiple rendering options."
msgstr "用于定义多个渲染选项的环境节点(如[WorldEnvironment])的资源。"

#: doc/classes/Environment.xml:7
#, fuzzy
msgid ""
"Resource for environment nodes (like [WorldEnvironment]) that define "
"multiple environment operations (such as background [Sky] or [Color], "
"ambient light, fog, depth-of-field...). These parameters affect the final "
"render of the scene. The order of these operations is:\n"
"- Depth of Field Blur\n"
"- Glow\n"
"- Tonemap (Auto Exposure)\n"
"- Adjustments\n"
"These effects will only apply when the [Viewport]'s intended usage is \"3D\" "
"or \"3D Without Effects\". This can be configured for the root Viewport with "
"[member ProjectSettings.rendering/quality/intended_usage/"
"framebuffer_allocation], or for specific Viewports via the [member Viewport."
"usage] property."
msgstr ""
"环境节点(如[WorldEnvironment])的资源,这些节点定义了多个环境操作(如背景"
"[Sky]或[Color]、环境光、雾、景深...)。这些参数会影响场景的最终渲染。这些操作"
"的顺序是\n"
"- 景深 模糊\n"
"- 辉光\n"
"- 色调地图(自动曝光\n"
"- 调整数"

#: doc/classes/Environment.xml:15 doc/classes/WorldEnvironment.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/"
"environment_and_post_processing.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/"
"environment_and_post_processing.html"

#: doc/classes/Environment.xml:16
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/high_dynamic_range.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/high_dynamic_range."
"html"

#: doc/classes/Environment.xml:17 doc/classes/Material.xml:10
#: doc/classes/Mesh.xml:10 doc/classes/MeshInstance.xml:10
#: doc/classes/WorldEnvironment.xml:13
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/123"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Environment.xml:26
msgid ""
"Returns [code]true[/code] if the glow level [code]idx[/code] is specified, "
"[code]false[/code] otherwise."
msgstr ""
"如果指定了发光等级[code]idx[/code],返回[code]true[/code],否则返回"
"[code]false[/code]。"

#: doc/classes/Environment.xml:34
msgid ""
"Enables or disables the glow level at index [code]idx[/code]. Each level "
"relies on the previous level. This means that enabling higher glow levels "
"will slow down the glow effect rendering, even if previous levels aren't "
"enabled."
msgstr ""
"启用或禁用索引[code]idx[/code]处的发光级别。每个级别都依赖于前一个级别。这意"
"味着启用较高的发光等级会减慢辉光效果的渲染速度,即使之前的等级没有启用。"

#: doc/classes/Environment.xml:40
msgid ""
"The global brightness value of the rendered scene. Effective only if "
"[code]adjustment_enabled[/code] is [code]true[/code]."
msgstr ""
"渲染场景的全局亮度值。只有当[code]adjust_enabled[/code]为[code]true[/code]时"
"才有效。"

#: doc/classes/Environment.xml:43
#, fuzzy
msgid ""
"Applies the provided [Texture] resource to affect the global color aspect of "
"the rendered scene. Effective only if [code]adjustment_enabled[/code] is "
"[code]true[/code]."
msgstr ""
"应用所提供的 [Texture2D] 资源来影响渲染场景的全局颜色。只有当"
"[code]adjusting_enabled[/code]是[code]true[/code]时才有效。"

#: doc/classes/Environment.xml:46
msgid ""
"The global contrast value of the rendered scene (default value is 1). "
"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
msgstr ""
"渲染场景的全局对比度值(默认值为1)。只有当[code]adjust_enabled[/code]为"
"[code]true[/code]时才有效。"

#: doc/classes/Environment.xml:49
msgid ""
"If [code]true[/code], enables the [code]adjustment_*[/code] properties "
"provided by this resource. If [code]false[/code], modifications to the "
"[code]adjustment_*[/code] properties will have no effect on the rendered "
"scene."
msgstr ""
"如果 [code]true[/code],则启用此资源提供的 [code]adjusting_*[/code] 属性。如"
"果[code]false[/code],对[code]adjustment_*[/code]属性的修改将不会对渲染的场景"
"产生影响。"

#: doc/classes/Environment.xml:52
msgid ""
"The global color saturation value of the rendered scene (default value is "
"1). Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
msgstr ""
"渲染场景的全局色彩饱和度值,默认值为1。只有在[code]adjustment_enabled[/code]"
"为[code]true[/code]时才有效。"

#: doc/classes/Environment.xml:55
msgid "The ambient light's [Color]."
msgstr "环境光的颜色。"

#: doc/classes/Environment.xml:58
msgid ""
"The ambient light's energy. The higher the value, the stronger the light."
msgstr "环境光的能量。值越高,光照越强。"

#: doc/classes/Environment.xml:61
msgid ""
"Defines the amount of light that the sky brings on the scene. A value of 0 "
"means that the sky's light emission has no effect on the scene illumination, "
"thus all ambient illumination is provided by the ambient light. On the "
"contrary, a value of 1 means that all the light that affects the scene is "
"provided by the sky, thus the ambient light parameter has no effect on the "
"scene."
msgstr ""
"定义天空给场景带来的光照量。值为 0 表示天空的发光对场景照明没有影响,因此所有"
"的环境照明都由环境光提供。相反,值为1表示所有影响场景的光线都由天空提供,因此"
"环境光参数对场景没有影响。"

#: doc/classes/Environment.xml:64
msgid ""
"If [code]true[/code], enables the tonemapping auto exposure mode of the "
"scene renderer. If [code]true[/code], the renderer will automatically "
"determine the exposure setting to adapt to the scene's illumination and the "
"observed light."
msgstr ""
"如果[code]true[/code],启用场景渲染器的色调映射自动曝光模式。如果[code]true[/"
"code],渲染器将自动确定曝光设置,以适应场景的照明和观察到的光线。"

#: doc/classes/Environment.xml:67
msgid "The maximum luminance value for the auto exposure."
msgstr "自动曝光的最大亮度值。"

#: doc/classes/Environment.xml:70
msgid "The minimum luminance value for the auto exposure."
msgstr "自动曝光的最小亮度值。"

#: doc/classes/Environment.xml:73
msgid ""
"The scale of the auto exposure effect. Affects the intensity of auto "
"exposure."
msgstr "自动曝光效果的比例。影响自动曝光的强度。"

#: doc/classes/Environment.xml:76
msgid ""
"The speed of the auto exposure effect. Affects the time needed for the "
"camera to perform auto exposure."
msgstr "自动曝光效果的速度。影响相机执行自动曝光所需的时间。"

#: doc/classes/Environment.xml:79
msgid "The ID of the camera feed to show in the background."
msgstr "在背景中显示的摄像机信号的ID。"

#: doc/classes/Environment.xml:82
msgid ""
"The maximum layer ID to display. Only effective when using the [constant "
"BG_CANVAS] background mode."
msgstr "要显示的最大图层ID。只有在使用 [constant BG_CANVAS] 背景模式时有效。"

#: doc/classes/Environment.xml:85
#, fuzzy
msgid ""
"The [Color] displayed for clear areas of the scene. Only effective when "
"using the [constant BG_COLOR] or [constant BG_COLOR_SKY] background modes)."
msgstr ""
"场景中清晰区域显示的[Color]。只有在使用 [constant BG_COLOR] 背景模式时有效。"

#: doc/classes/Environment.xml:88
msgid "The power of the light emitted by the background."
msgstr "背景发出的光的功率。"

#: doc/classes/Environment.xml:91
msgid "The background mode. See [enum BGMode] for possible values."
msgstr "背景模式。请参阅[enum BGMode]了解可能的值。"

#: doc/classes/Environment.xml:94
#, fuzzy
msgid "The [Sky] resource defined as background."
msgstr "使用天空资源作为背景。"

#: doc/classes/Environment.xml:97
#, fuzzy
msgid "The [Sky] resource's custom field of view."
msgstr "用于此[Environment]的[天空]资源。"

#: doc/classes/Environment.xml:100
#, fuzzy
msgid "The [Sky] resource's rotation expressed as a [Basis]."
msgstr "[Mesh]资源用作CSG形状。"

#: doc/classes/Environment.xml:103
#, fuzzy
msgid "The [Sky] resource's rotation expressed as Euler angles in radians."
msgstr "贴图的旋转(以弧度为单位)."

#: doc/classes/Environment.xml:106
#, fuzzy
msgid "The [Sky] resource's rotation expressed as Euler angles in degrees."
msgstr "贴图的旋转(以度数为单位)."

#: doc/classes/Environment.xml:109
#, fuzzy
msgid "The amount of far blur for the depth-of-field effect."
msgstr "效果中的声音数量。"

#: doc/classes/Environment.xml:112
msgid ""
"The distance from the camera where the far blur effect affects the rendering."
msgstr "远景模糊效果影响渲染的距离。"

#: doc/classes/Environment.xml:115
#, fuzzy
msgid "If [code]true[/code], enables the depth-of-field far blur effect."
msgstr "如果为[code]true[/code],启用指定的flag。"

#: doc/classes/Environment.xml:118
msgid ""
"The depth-of-field far blur's quality. Higher values can mitigate the "
"visible banding effect seen at higher strengths, but are much slower."
msgstr ""

#: doc/classes/Environment.xml:121
msgid "The length of the transition between the no-blur area and far blur."
msgstr "无模糊区域和远模糊区域之间的过渡长度。"

#: doc/classes/Environment.xml:124
#, fuzzy
msgid "The amount of near blur for the depth-of-field effect."
msgstr "效果中的声音数量。"

#: doc/classes/Environment.xml:127
msgid ""
"Distance from the camera where the near blur effect affects the rendering."
msgstr "近似模糊效果影响渲染的地方与摄像机的距离。"

#: doc/classes/Environment.xml:130
#, fuzzy
msgid "If [code]true[/code], enables the depth-of-field near blur effect."
msgstr "如果为[code]true[/code],启用指定的flag。"

#: doc/classes/Environment.xml:133
msgid ""
"The depth-of-field near blur's quality. Higher values can mitigate the "
"visible banding effect seen at higher strengths, but are much slower."
msgstr ""

#: doc/classes/Environment.xml:136
msgid "The length of the transition between the near blur and no-blur area."
msgstr "近模糊和无模糊区域之间的过渡长度。"

#: doc/classes/Environment.xml:139
msgid "The fog's [Color]."
msgstr "雾的[Color]。"

#: doc/classes/Environment.xml:142
msgid "The fog's depth starting distance from the camera."
msgstr "雾的深度开始距离相机的距离。"

#: doc/classes/Environment.xml:145
msgid ""
"The fog depth's intensity curve. A number of presets are available in the "
"[b]Inspector[/b] by right-clicking the curve."
msgstr ""
"雾深的强度曲线。在[b]检查器[/b]中,通过右键点击曲线,可以获得一些预设。"

#: doc/classes/Environment.xml:148
msgid ""
"If [code]true[/code], the depth fog effect is enabled. When enabled, fog "
"will appear in the distance (relative to the camera)."
msgstr ""
"如果为[code]true[/code],则启用深度雾效果。启用后,雾将出现在远处(相对于摄像"
"机)。"

#: doc/classes/Environment.xml:151
#, fuzzy
msgid ""
"The fog's depth end distance from the camera. If this value is set to 0, it "
"will be equal to the current camera's [member Camera.far] value."
msgstr ""
"雾的深度与相机的距离。如果此值被设置为0,则等于当前相机的[member Camera3D."
"far]值。"

#: doc/classes/Environment.xml:154
msgid ""
"If [code]true[/code], fog effects are enabled. [member fog_height_enabled] "
"and/or [member fog_depth_enabled] must be set to [code]true[/code] to "
"actually display fog."
msgstr ""
"如果[code]true[/code],则启用雾化效果。必须将[member fog_height_enabled]和/或"
"[member fog_depth_enabled]设置为[code]true[/code],才能实际显示雾气。"

#: doc/classes/Environment.xml:157
msgid ""
"The height fog's intensity. A number of presets are available in the "
"[b]Inspector[/b] by right-clicking the curve."
msgstr "高度雾的强度。在[b]检查器[/b]中,通过右键点击曲线。"

#: doc/classes/Environment.xml:160
msgid ""
"If [code]true[/code], the height fog effect is enabled. When enabled, fog "
"will appear in a defined height range, regardless of the distance from the "
"camera. This can be used to simulate \"deep water\" effects with a lower "
"performance cost compared to a dedicated shader."
msgstr ""
"如果为[code]true[/code],则启用高度雾化效果。启用后,无论与摄像机的距离有多"
"远,雾气都会出现在规定的高度范围内。这可以用来模拟 \"深水 \"效果,与专用着色"
"器相比,性能成本更低。"

#: doc/classes/Environment.xml:163
msgid ""
"The Y coordinate where the height fog will be the most intense. If this "
"value is greater than [member fog_height_min], fog will be displayed from "
"bottom to top. Otherwise, it will be displayed from top to bottom."
msgstr ""
"雾气高度最强的Y坐标。如果这个值大于[member fog_height_min],雾气将从下往上显"
"示。否则,将从上到下显示。"

#: doc/classes/Environment.xml:166
msgid ""
"The Y coordinate where the height fog will be the least intense. If this "
"value is greater than [member fog_height_max], fog will be displayed from "
"top to bottom. Otherwise, it will be displayed from bottom to top."
msgstr ""
"雾气高度最弱的Y坐标。如果这个值大于[member fog_height_max],雾气将从上到下显"
"示。否则,将从下往上显示。"

#: doc/classes/Environment.xml:169
#, fuzzy
msgid ""
"The intensity of the depth fog color transition when looking towards the "
"sun. The sun's direction is determined automatically using the "
"DirectionalLight node in the scene."
msgstr ""
"向太阳方向看去时,深度雾色过渡的强度。使用场景中的 DirectionalLight3D 节点自"
"动确定太阳的方向。"

#: doc/classes/Environment.xml:172
msgid "The depth fog's [Color] when looking towards the sun."
msgstr "朝太阳看时,深雾的[Color]。"

#: doc/classes/Environment.xml:175
msgid ""
"The intensity of the fog light transmittance effect. Amount of light that "
"the fog transmits."
msgstr "雾光透射效果的强弱。雾的透光量。"

#: doc/classes/Environment.xml:178
msgid ""
"Enables fog's light transmission effect. If [code]true[/code], light will be "
"more visible in the fog to simulate light scattering as in real life."
msgstr ""
"启用雾的透光效果。如果[code]true[/code],光线在雾中会更加明显,以模拟现实生活"
"中的光散射。"

#: doc/classes/Environment.xml:181
msgid ""
"Smooths out the blockiness created by sampling higher levels, at the cost of "
"performance.\n"
"[b]Note:[/b] When using the GLES2 renderer, this is only available if the "
"GPU supports the [code]GL_EXT_gpu_shader4[/code] extension."
msgstr ""

#: doc/classes/Environment.xml:185
msgid "The glow blending mode."
msgstr "混合发光模式。"

#: doc/classes/Environment.xml:188
msgid ""
"The bloom's intensity. If set to a value higher than [code]0[/code], this "
"will make glow visible in areas darker than the [member glow_hdr_threshold]."
msgstr ""
"bloom的强度。如果设置为大于[code] 0 [/code]的值,则将在比[member "
"glow_hdr_threshold]成员更暗的区域中显示辉光。 bloom:有时被称为光晕或辉光,是"
"一种用于视频游戏、演示和高动态范围渲染(HDRR)的计算机图形效果,用于再现真实世"
"界相机的成像工件。"

#: doc/classes/Environment.xml:191
msgid "If [code]true[/code], the glow effect is enabled."
msgstr "如果为[code]true[/code],则启用glow效果。"

#: doc/classes/Environment.xml:194
msgid ""
"The higher threshold of the HDR glow. Areas brighter than this threshold "
"will be clamped for the purposes of the glow effect."
msgstr ""
"HDR glow的较高阈值。比这个阈值更亮的区域将被限制,以达到glow效果的目的。"

#: doc/classes/Environment.xml:197
msgid "The bleed scale of the HDR glow."
msgstr "HDR glow的裁切规模。"

#: doc/classes/Environment.xml:200
msgid ""
"The lower threshold of the HDR glow. When using the GLES2 renderer (which "
"doesn't support HDR), this needs to be below [code]1.0[/code] for glow to be "
"visible. A value of [code]0.9[/code] works well in this case."
msgstr ""
"HDR glow的下限。当使用GLES2渲染器(不支持HDR)时,需要低于[code]1.0[/code]才"
"能看到glow。在这种情况下,值[code]0.9[/code]的效果很好。"

#: doc/classes/Environment.xml:203
msgid ""
"The glow intensity. When using the GLES2 renderer, this should be increased "
"to 1.5 to compensate for the lack of HDR rendering."
msgstr "发光强度。使用GLES2渲染器时,应将其增加到1.5以弥补HDR渲染的不足。"

#: doc/classes/Environment.xml:206
msgid ""
"If [code]true[/code], the 1st level of glow is enabled. This is the most "
"\"local\" level (least blurry)."
msgstr ""
"如果为[code]true[/code],则启用第1级glow。这是最 \"局部 \"的级别(最不模"
"糊)。"

#: doc/classes/Environment.xml:209
msgid "If [code]true[/code], the 2th level of glow is enabled."
msgstr "如果为[code]true[/code],则启用第2级glow。"

#: doc/classes/Environment.xml:212
msgid "If [code]true[/code], the 3th level of glow is enabled."
msgstr "如果[code]true[/code],则启用第3几glow。"

#: doc/classes/Environment.xml:215
msgid "If [code]true[/code], the 4th level of glow is enabled."
msgstr "如果[code]true[/code],则启用第四级glow。"

#: doc/classes/Environment.xml:218
msgid "If [code]true[/code], the 5th level of glow is enabled."
msgstr "如果[code]true[/code],则启用第五级glow。"

#: doc/classes/Environment.xml:221
msgid "If [code]true[/code], the 6th level of glow is enabled."
msgstr "如果[code]true[/code],则启用第六级glow。"

#: doc/classes/Environment.xml:224
msgid ""
"If [code]true[/code], the 7th level of glow is enabled. This is the most "
"\"global\" level (blurriest)."
msgstr ""
"如果[code]true[/code],则启用第七级glow。这是最 \"全局 \"的级别(最模糊)。"

#: doc/classes/Environment.xml:227
msgid ""
"The glow strength. When using the GLES2 renderer, this should be increased "
"to 1.3 to compensate for the lack of HDR rendering."
msgstr "辉光强度。当使用GLES2渲染器时,应将其提高到1.3,以弥补HDR渲染的不足。"

#: doc/classes/Environment.xml:230
msgid "The depth tolerance for screen-space reflections."
msgstr "屏幕空间反射的深度公差。"

#: doc/classes/Environment.xml:233
msgid ""
"If [code]true[/code], screen-space reflections are enabled. Screen-space "
"reflections are more accurate than reflections from [GIProbe]s or "
"[ReflectionProbe]s, but are slower and can't reflect surfaces occluded by "
"others."
msgstr ""
"如果[code]true[/code],启用屏幕空间反射。屏幕空间反射比[GIProbe]或"
"[ReflectionProbe]的反射更精确,但速度较慢,而且不能反射被其他物体遮挡的表面。"

#: doc/classes/Environment.xml:236
msgid ""
"The fade-in distance for screen-space reflections. Affects the area from the "
"reflected material to the screen-space reflection)."
msgstr "屏幕空间反射的淡入距离。影响从反射材料到屏幕空间反射的区域。"

#: doc/classes/Environment.xml:239
msgid ""
"The fade-out distance for screen-space reflections. Affects the area from "
"the screen-space reflection to the \"global\" reflection."
msgstr "屏幕空间反射的淡出距离。影响从屏幕空间反射到 \"全局 \"反射的区域。"

#: doc/classes/Environment.xml:242
msgid ""
"The maximum number of steps for screen-space reflections. Higher values are "
"slower."
msgstr "屏幕空间反射的最大步数。数值越高,速度越慢。"

#: doc/classes/Environment.xml:245
#, fuzzy
msgid ""
"If [code]true[/code], screen-space reflections will take the material "
"roughness into account."
msgstr "如果[code]true[/code],查询将考虑[Area2D]。"

#: doc/classes/Environment.xml:248
msgid ""
"The screen-space ambient occlusion intensity on materials that have an AO "
"texture defined. Values higher than [code]0[/code] will make the SSAO effect "
"visible in areas darkened by AO textures."
msgstr ""
"定义了AO纹理的材质的屏幕空间环境遮挡强度。高于[code]0[/code]的值将使SSAO效果"
"在AO纹理变暗的区域可见。"

#: doc/classes/Environment.xml:251
msgid ""
"The screen-space ambient occlusion bias. This should be kept high enough to "
"prevent \"smooth\" curves from being affected by ambient occlusion."
msgstr ""
"屏幕空间的环境遮挡偏差。该值应保持在足够高的水平,以防止 \"平滑 \"曲线受到环"
"境遮挡的影响。"

#: doc/classes/Environment.xml:254
msgid ""
"The screen-space ambient occlusion blur quality. See [enum SSAOBlur] for "
"possible values."
msgstr "屏幕空间环境遮挡质量。可能的值请参见[enum SSAOBlur]。"

#: doc/classes/Environment.xml:257
#, fuzzy
msgid "The screen-space ambient occlusion color."
msgstr "屏幕空间环境遮挡边缘锐度。"

#: doc/classes/Environment.xml:260
msgid "The screen-space ambient occlusion edge sharpness."
msgstr "屏幕空间环境遮挡边缘锐度。"

#: doc/classes/Environment.xml:263
msgid ""
"If [code]true[/code], the screen-space ambient occlusion effect is enabled. "
"This darkens objects' corners and cavities to simulate ambient light not "
"reaching the entire object as in real life. This works well for small, "
"dynamic objects, but baked lighting or ambient occlusion textures will do a "
"better job at displaying ambient occlusion on large static objects. This is "
"a costly effect and should be disabled first when running into performance "
"issues."
msgstr ""
"如果[code]true[/code],启用屏幕空间环境遮挡效果。这将使物体的角落和空洞变暗,"
"以模拟现实生活中环境光无法到达整个物体。这对于小型的动态物体来说效果很好,但"
"在大型静态物体上,烘焙的照明或环境遮挡纹理会更好地显示环境遮挡。这是一个昂贵"
"的效果,当遇到性能问题时,应该首先禁用。"

#: doc/classes/Environment.xml:266
msgid ""
"The primary screen-space ambient occlusion intensity. See also [member "
"ssao_radius]."
msgstr "主要的屏幕空间环境遮挡强度。参见[member ssao_radius]。"

#: doc/classes/Environment.xml:269
#, fuzzy
msgid ""
"The secondary screen-space ambient occlusion intensity. See also [member "
"ssao_radius2]."
msgstr "主要的屏幕空间环境遮挡强度。参见[member ssao_radius]。"

#: doc/classes/Environment.xml:272
msgid ""
"The screen-space ambient occlusion intensity in direct light. In real life, "
"ambient occlusion only applies to indirect light, which means its effects "
"can't be seen in direct light. Values higher than [code]0[/code] will make "
"the SSAO effect visible in direct light."
msgstr ""
"直射光下的屏幕空间环境遮挡强度。在现实生活中,环境遮挡只适用于间接光,也就是"
"说在直射光下无法看到其效果。高于[code]0[/code]的数值将使SSAO效果在直射光下可"
"见。"

#: doc/classes/Environment.xml:275
msgid ""
"The screen-space ambient occlusion quality. Higher qualities will make "
"better use of small objects for ambient occlusion, but are slower."
msgstr ""

#: doc/classes/Environment.xml:278
msgid "The primary screen-space ambient occlusion radius."
msgstr "主屏空间环境遮挡半径。"

#: doc/classes/Environment.xml:281
msgid ""
"The secondary screen-space ambient occlusion radius. If set to a value "
"higher than [code]0[/code], enables the secondary screen-space ambient "
"occlusion effect which can be used to improve the effect's appearance (at "
"the cost of performance)."
msgstr ""

#: doc/classes/Environment.xml:284
msgid "The default exposure used for tonemapping."
msgstr "用于色调映射的默认曝光。"

#: doc/classes/Environment.xml:287
msgid ""
"The tonemapping mode to use. Tonemapping is the process that \"converts\" "
"HDR values to be suitable for rendering on a LDR display. (Godot doesn't "
"support rendering on HDR displays yet.)"
msgstr ""
"要使用的色调映射模式。色调映射是“转换” HDR值以适合在LDR显示器上呈现的过程。 "
"(Godot尚不支持在HDR显示器上进行渲染。)"

#: doc/classes/Environment.xml:290
msgid ""
"The white reference value for tonemapping. Only effective if the [member "
"tonemap_mode] isn't set to [constant TONE_MAPPER_LINEAR]."
msgstr ""
"调色映射的白色参考值。只有当[member tonemap_mode]没有设置为[constant "
"TONE_MAPPER_LINEAR]时才有效。"

#: doc/classes/Environment.xml:295
msgid ""
"Keeps on screen every pixel drawn in the background. This is the fastest "
"background mode, but it can only be safely used in fully-interior scenes (no "
"visible sky or sky reflections). If enabled in a scene where the background "
"is visible, \"ghost trail\" artifacts will be visible when moving the camera."
msgstr ""
"在屏幕上保留背景中绘制的每个像素。这是最快的背景模式,但它只能在完全室内场景"
"(没有可见的天空或天空反射)中安全使用。如果在背景可见的场景中启用,当移动摄"
"像机时,\"鬼影踪迹 \"伪影将可见。"

#: doc/classes/Environment.xml:298
msgid ""
"Clears the background using the clear color defined in [member "
"ProjectSettings.rendering/environment/default_clear_color]."
msgstr ""
"使用[member ProjectSettings.rendering/environment/default_clear_color]中定义"
"的底色清除背景。"

#: doc/classes/Environment.xml:301
msgid "Clears the background using a custom clear color."
msgstr "使用自定义的底色清除背景。"

#: doc/classes/Environment.xml:304
msgid "Displays a user-defined sky in the background."
msgstr "在背景中显示用户自定义的天空。"

#: doc/classes/Environment.xml:307
msgid ""
"Clears the background using a custom clear color and allows defining a sky "
"for shading and reflection. This mode is slightly faster than [constant "
"BG_SKY] and should be preferred in scenes where reflections can be visible, "
"but the sky itself never is (e.g. top-down camera)."
msgstr ""

#: doc/classes/Environment.xml:310
msgid "Displays a [CanvasLayer] in the background."
msgstr "在背景中显示[CanvasLayer]。"

#: doc/classes/Environment.xml:313
msgid "Displays a camera feed in the background."
msgstr "在背景中显示相机信号。"

#: doc/classes/Environment.xml:316
msgid "Represents the size of the [enum BGMode] enum."
msgstr "表示[enum BGMode]枚举的大小。"

#: doc/classes/Environment.xml:319
msgid ""
"Additive glow blending mode. Mostly used for particles, glows (bloom), lens "
"flare, bright sources."
msgstr "添加glow混合模式。主要用于颗粒、辉光(光晕)、镜头眩光、亮源。"

#: doc/classes/Environment.xml:322
msgid ""
"Screen glow blending mode. Increases brightness, used frequently with bloom."
msgstr "屏幕光晕混合模式。增加亮度,经常与光晕一起使用。"

#: doc/classes/Environment.xml:325
msgid ""
"Soft light glow blending mode. Modifies contrast, exposes shadows and "
"highlights (vivid bloom)."
msgstr "柔和的光晕混合模式。修改对比度,曝光阴影和高光(高质量光晕)。"

#: doc/classes/Environment.xml:328
msgid ""
"Replace glow blending mode. Replaces all pixels' color by the glow value. "
"This can be used to simulate a full-screen blur effect by tweaking the glow "
"parameters to match the original image's brightness."
msgstr ""
"替换光晕混合模式。用glow值替换所有像素的颜色。这可以通过调整glow参数来模拟全"
"屏模糊效果,使其与原始图像的亮度相匹配。"

#: doc/classes/Environment.xml:331
msgid ""
"Linear tonemapper operator. Reads the linear data and passes it on "
"unmodified."
msgstr "线性音频映射器操作者。读取线性数据并不加修改地传递。"

#: doc/classes/Environment.xml:334
msgid ""
"Reinhardt tonemapper operator. Performs a variation on rendered pixels' "
"colors by this formula: [code]color = color / (1 + color)[/code]."
msgstr ""
"Reinhardt tonemapper运算器。通过这个公式对渲染像素的颜色进行变化。"
"[code]color = color / (1 + color)[/code]."

#: doc/classes/Environment.xml:337
msgid "Filmic tonemapper operator."
msgstr "胶片色调映射器运算符。"

#: doc/classes/Environment.xml:340
#, fuzzy
msgid ""
"Academy Color Encoding System tonemapper operator. Performs an aproximation "
"of the ACES tonemapping curve."
msgstr "ACES 映射运算符。"

#: doc/classes/Environment.xml:343
msgid ""
"High quality Academy Color Encoding System tonemapper operator that matches "
"the industry standard. Performs a more physically accurate curve fit which "
"better simulates how light works in the real world. The color of lights and "
"emissive materials will become lighter as the emissive energy increases, and "
"will eventually become white if the light is bright enough to saturate the "
"camera sensor."
msgstr ""

#: doc/classes/Environment.xml:346
msgid "Low depth-of-field blur quality (fastest)."
msgstr ""

#: doc/classes/Environment.xml:349
msgid "Medium depth-of-field blur quality."
msgstr ""

#: doc/classes/Environment.xml:352
msgid "High depth-of-field blur quality (slowest)."
msgstr ""

#: doc/classes/Environment.xml:355
msgid "No blur for the screen-space ambient occlusion effect (fastest)."
msgstr "屏幕空间环境遮挡效果不模糊(最快)。"

#: doc/classes/Environment.xml:358
msgid "1×1 blur for the screen-space ambient occlusion effect."
msgstr "1×1模糊的屏幕空间环境遮挡效果。"

#: doc/classes/Environment.xml:361
msgid "2×2 blur for the screen-space ambient occlusion effect."
msgstr "2×2模糊的屏幕空间环境遮挡效果。"

#: doc/classes/Environment.xml:364
#, fuzzy
msgid "3×3 blur for the screen-space ambient occlusion effect (slowest)."
msgstr "屏幕空间环境遮挡效果不模糊(最快)。"

#: doc/classes/Environment.xml:367
#, fuzzy
msgid "Low quality for the screen-space ambient occlusion effect (fastest)."
msgstr "屏幕空间环境遮挡效果不模糊(最快)。"

#: doc/classes/Environment.xml:370
#, fuzzy
msgid "Low quality for the screen-space ambient occlusion effect."
msgstr "1×1模糊的屏幕空间环境遮挡效果。"

#: doc/classes/Environment.xml:373
#, fuzzy
msgid "Low quality for the screen-space ambient occlusion effect (slowest)."
msgstr "屏幕空间环境遮挡效果不模糊(最快)。"

#: doc/classes/Expression.xml:4
msgid "A class that stores an expression you can execute."
msgstr "一个存储你可以执行的表达式的类。"

#: doc/classes/Expression.xml:7
msgid ""
"An expression can be made of any arithmetic operation, built-in math "
"function call, method call of a passed instance, or built-in type "
"construction call.\n"
"An example expression text using the built-in math functions could be "
"[code]sqrt(pow(3,2) + pow(4,2))[/code].\n"
"In the following example we use a [LineEdit] node to write our expression "
"and show the result.\n"
"[codeblock]\n"
"onready var expression = Expression.new()\n"
"\n"
"func _ready():\n"
"    $LineEdit.connect(\"text_entered\", self, \"_on_text_entered\")\n"
"\n"
"func _on_text_entered(command):\n"
"    var error = expression.parse(command, [])\n"
"    if error != OK:\n"
"        print(expression.get_error_text())\n"
"        return\n"
"    var result = expression.execute([], null, true)\n"
"    if not expression.has_execute_failed():\n"
"        $LineEdit.text = str(result)\n"
"[/codeblock]"
msgstr ""
"表达式可以由任何算术运算、内置数学函数调用、传递实例的方法调用或内置类型构造"
"调用组成。\n"
"一个使用内置数学函数的表达式文本示例可以是[code]sqrt(pow(3,2)+pow(4,2))[/"
"code]。\n"
"在下面的例子中,我们使用一个[LineEdit]节点来写我们的表达式并显示结果。\n"
"[codeblock]\n"
"onready var expression = Expression.new()\n"
"\n"
"func _ready():\n"
"    $LineEdit.connect(\"text_entered\", self, \"_on_text_entered\")\n"
"\n"
"func _on_text_entered(command):\n"
"    var error = expression.parse(command, [])\n"
"    if error != OK:\n"
"        print(expression.get_error_text())\n"
"        return\n"
"    var result = expression.execute([], null, true)\n"
"    if not expression.has_execute_failed():\n"
"        $LineEdit.text = str(result)\n"
"[/codeblock]"

#: doc/classes/Expression.xml:35
msgid ""
"Executes the expression that was previously parsed by [method parse] and "
"returns the result. Before you use the returned object, you should check if "
"the method failed by calling [method has_execute_failed].\n"
"If you defined input variables in [method parse], you can specify their "
"values in the inputs array, in the same order."
msgstr ""
"执行之前由[method parse]解析的表达式,并返回结果。在使用返回的对象之前,应该"
"通过调用 [method has_execute_failed] 来检查方法是否失败。\n"
"如果你在 [method parse] 中定义了输入变量,你可以在输入数组中以同样的顺序指定"
"它们的值。"

#: doc/classes/Expression.xml:42
msgid "Returns the error text if [method parse] has failed."
msgstr "如果[method parse]失败了,返回错误文本。"

#: doc/classes/Expression.xml:48
msgid "Returns [code]true[/code] if [method execute] has failed."
msgstr "如果[method execute]失败,返回[code]true[/code]。"

#: doc/classes/Expression.xml:56
msgid ""
"Parses the expression and returns an [enum Error] code.\n"
"You can optionally specify names of variables that may appear in the "
"expression with [code]input_names[/code], so that you can bind them when it "
"gets executed."
msgstr ""
"解析表达式并返回一个[enum Error]代码。\n"
"你可以选择用[code]input_names[/code]指定可能出现在表达式中的变量名称,这样你"
"就可以在表达式被执行时绑定它们。"

#: doc/classes/ExternalTexture.xml:4
msgid "Enable OpenGL ES external texture extension."
msgstr ""

#: doc/classes/ExternalTexture.xml:7
msgid ""
"Enable support for the OpenGL ES external texture extension as defined by "
"[url=https://www.khronos.org/registry/OpenGL/extensions/OES/"
"OES_EGL_image_external.txt]OES_EGL_image_external[/url].\n"
"[b]Note:[/b] This is only supported for Android platforms."
msgstr ""

#: doc/classes/ExternalTexture.xml:16
#, fuzzy
msgid "Returns the external texture name."
msgstr "返回图块的纹理。"

#: doc/classes/ExternalTexture.xml:23
#, fuzzy
msgid "External texture size."
msgstr "返回纹理尺寸。"

#: doc/classes/File.xml:4
msgid "Type to handle file reading and writing operations."
msgstr "用于处理文件读写操作的类型。"

#: doc/classes/File.xml:7
#, fuzzy
msgid ""
"File type. This is used to permanently store data into the user device's "
"file system and to read from it. This can be used to store game save data or "
"player configuration files, for example.\n"
"Here's a sample on how to write and read from a file:\n"
"[codeblock]\n"
"func save(content):\n"
"    var file = File.new()\n"
"    file.open(\"user://save_game.dat\", File.WRITE)\n"
"    file.store_string(content)\n"
"    file.close()\n"
"\n"
"func load():\n"
"    var file = File.new()\n"
"    file.open(\"user://save_game.dat\", File.READ)\n"
"    var content = file.get_as_text()\n"
"    file.close()\n"
"    return content\n"
"[/codeblock]\n"
"In the example above, the file will be saved in the user data folder as "
"specified in the [url=https://docs.godotengine.org/en/3.4/tutorials/io/"
"data_paths.html]Data paths[/url] documentation.\n"
"[b]Note:[/b] To access project resources once exported, it is recommended to "
"use [ResourceLoader] instead of the [File] API, as some files are converted "
"to engine-specific formats and their original source files might not be "
"present in the exported PCK package.\n"
"[b]Note:[/b] Files are automatically closed only if the process exits "
"\"normally\" (such as by clicking the window manager's close button or "
"pressing [b]Alt + F4[/b]). If you stop the project execution by pressing "
"[b]F8[/b] while the project is running, the file won't be closed as the game "
"process will be killed. You can work around this by calling [method flush] "
"at regular intervals."
msgstr ""
"文件类型。这是用来将数据永久地存储到用户设备的文件系统中,并从中读取。例如,"
"这可以用来存储游戏保存数据或玩家配置文件。\n"
"下面是一个关于如何写入和读出文件的例子。\n"
"[codeblock]\n"
"func save(content):\n"
"    var file = File.new()\n"
"    file.open(\"user://save_game.dat\", File.WRITE)\n"
"    file.store_string(content)\n"
"    file.close()\n"
"\n"
"func load():\n"
"    var file = File.new()\n"
"    file.open(\"user://save_game.dat\", File.READ)\n"
"    var content = file.get_as_text()\n"
"    file.close()\n"
"    return content\n"
"[/codeblock]\n"
"在上面的例子中,文件将被保存在[url=https://docs.godotengine.org/zh_CN/latest/"
"tutorials/io/data_paths.html]user://save_game.dat[/url]文件中指定的用户数据文"
"件夹中。"

#: doc/classes/File.xml:35
msgid ""
"Closes the currently opened file and prevents subsequent read/write "
"operations. Use [method flush] to persist the data to disk without closing "
"the file."
msgstr ""

#: doc/classes/File.xml:41
msgid ""
"Returns [code]true[/code] if the file cursor has already read past the end "
"of the file.\n"
"[b]Note:[/b] [code]eof_reached() == false[/code] cannot be used to check "
"whether there is more data available. To loop while there is more data "
"available, use:\n"
"[codeblock]\n"
"while file.get_position() < file.get_len():\n"
"    # Read data\n"
"[/codeblock]"
msgstr ""

#: doc/classes/File.xml:53
#, fuzzy
msgid ""
"Returns [code]true[/code] if the file exists in the given path.\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. See [method ResourceLoader.exists] for an "
"alternative approach that takes resource remapping into account."
msgstr ""
"如果文件存在于给定的路径中,返回[code]true[/code]。\n"
"[b]注意:[/b]许多资源类型被导入(例如纹理或声音文件),它们的源资产将不包括在"
"导出的游戏中,因为只使用导入的版本(在[code]res://.import[/code]文件夹)。为"
"了检查这些资源是否存在,同时考虑到重新映射到它们的导入位置,使用[method "
"ResourceLoader.exists]。通常,当你在编辑器中开发时,对导入的资源使用"
"[code]File.file_exists[/code]会起作用(源资产在[code]res://[/code]中存在,但"
"在导出时失败)。"

#: doc/classes/File.xml:60
msgid ""
"Writes the file's buffer to disk. Flushing is automatically performed when "
"the file is closed. This means you don't need to call [method flush] "
"manually before closing a file using [method close]. Still, calling [method "
"flush] can be used to ensure the data is safe even if the project crashes "
"instead of being closed gracefully.\n"
"[b]Note:[/b] Only call [method flush] when you actually need it. Otherwise, "
"it will decrease performance due to constant disk writes."
msgstr ""

#: doc/classes/File.xml:67
msgid ""
"Returns the next 16 bits from the file as an integer. See [method store_16] "
"for details on what values can be stored and retrieved this way."
msgstr ""
"以整数形式返回文件中的后16位。请参见[method store_16],以获取有关可以通过这种"
"方式存储和检索哪些值的详细信息。"

#: doc/classes/File.xml:73
msgid ""
"Returns the next 32 bits from the file as an integer. See [method store_32] "
"for details on what values can be stored and retrieved this way."
msgstr ""
"以整数形式返回文件中的后32位。请参阅[method store_32],以获取有关可以通过这种"
"方式存储和检索哪些值的详细信息。"

#: doc/classes/File.xml:79
msgid ""
"Returns the next 64 bits from the file as an integer. See [method store_64] "
"for details on what values can be stored and retrieved this way."
msgstr ""
"以整数形式返回文件中的后64位。请参阅[method store_64],以获取有关可以通过这种"
"方式存储和检索哪些值的详细信息。"

#: doc/classes/File.xml:85
msgid ""
"Returns the next 8 bits from the file as an integer. See [method store_8] "
"for details on what values can be stored and retrieved this way."
msgstr ""
"以整数形式返回文件的下一个8位。参见[method store_8],详细了解哪些值可以通过这"
"种方式存储和检索。"

#: doc/classes/File.xml:91
msgid ""
"Returns the whole file as a [String].\n"
"Text is interpreted as being UTF-8 encoded."
msgstr ""
"返回整个文件为一个[String]字符串。\n"
"文本将被转为UTF-8编码。"

#: doc/classes/File.xml:99
#, fuzzy
msgid "Returns next [code]len[/code] bytes of the file as a [PoolByteArray]."
msgstr "返回下一个文件的[code]len[/code]字节长度,类型为[PackedByteArray]。"

#: doc/classes/File.xml:106
msgid ""
"Returns the next value of the file in CSV (Comma-Separated Values) format. "
"You can pass a different delimiter [code]delim[/code] to use other than the "
"default [code]\",\"[/code] (comma). This delimiter must be one-character "
"long, and cannot be a double quotation mark.\n"
"Text is interpreted as being UTF-8 encoded. Text values must be enclosed in "
"double quotes if they include the delimiter character. Double quotes within "
"a text value can be escaped by doubling their occurrence.\n"
"For example, the following CSV lines are valid and will be properly parsed "
"as two strings each:\n"
"[codeblock]\n"
"Alice,\"Hello, Bob!\"\n"
"Bob,Alice! What a surprise!\n"
"Alice,\"I thought you'd reply with \"\"Hello, world\"\".\"\n"
"[/codeblock]\n"
"Note how the second line can omit the enclosing quotes as it does not "
"include the delimiter. However it [i]could[/i] very well use quotes, it was "
"only written without for demonstration purposes. The third line must use "
"[code]\"\"[/code] for each quotation mark that needs to be interpreted as "
"such instead of the end of a text value."
msgstr ""

#: doc/classes/File.xml:120
msgid "Returns the next 64 bits from the file as a floating-point number."
msgstr "将文件的下一个64位字节作为浮点数字返回。"

#: doc/classes/File.xml:126
msgid ""
"Returns the last error that happened when trying to perform operations. "
"Compare with the [code]ERR_FILE_*[/code] constants from [enum Error]."
msgstr ""
"返回试图执行操作时发生的最后一个错误。与[enum Error]中的[code]ERR_FILE_*[/"
"code]常量比较。"

#: doc/classes/File.xml:132
msgid "Returns the next 32 bits from the file as a floating-point number."
msgstr "将文件中的下一个32位字节作为浮点数字返回。"

#: doc/classes/File.xml:138
msgid "Returns the size of the file in bytes."
msgstr "返回文件的大小,以字节(bytes)形式。"

#: doc/classes/File.xml:144
msgid ""
"Returns the next line of the file as a [String].\n"
"Text is interpreted as being UTF-8 encoded."
msgstr ""
"返回文件的下一行为一个[String]。\n"
"文本将被转为UTF-8编码。"

#: doc/classes/File.xml:152
msgid ""
"Returns an MD5 String representing the file at the given path or an empty "
"[String] on failure."
msgstr "返回一个给定路径文件的MD5字符串,如果失败则返回一个空的[String]。"

#: doc/classes/File.xml:159
msgid ""
"Returns the last time the [code]file[/code] was modified in unix timestamp "
"format or returns a [String] \"ERROR IN [code]file[/code]\". This unix "
"timestamp can be converted to datetime by using [method OS."
"get_datetime_from_unix_time]."
msgstr ""
"返回unix格式的时间戳[code]file[/code]为文件的最后修改时间,或者返回一个[字符"
"串]\"ERROR IN [code]file[/code]\"。这个unix时间戳可以通过使用[method OS."
"get_datetime_from_unix_time]转换为数据时间。"

#: doc/classes/File.xml:165
msgid ""
"Returns a [String] saved in Pascal format from the file.\n"
"Text is interpreted as being UTF-8 encoded."
msgstr ""
"从文件中返回一个以Pascal格式保存的[string]。\n"
"文本将被转为UTF-8编码。"

#: doc/classes/File.xml:172
msgid "Returns the path as a [String] for the current open file."
msgstr "返回当前打开的文件的路径为[String]。"

#: doc/classes/File.xml:178
msgid "Returns the absolute path as a [String] for the current open file."
msgstr "返回当前打开的文件的绝对路径为[String]。"

#: doc/classes/File.xml:184
msgid "Returns the file cursor's position."
msgstr "返回文件光标的位置。"

#: doc/classes/File.xml:190
msgid "Returns the next bits from the file as a floating-point number."
msgstr "将下一个文件中的字节以浮点值形式返回。"

#: doc/classes/File.xml:197
msgid ""
"Returns a SHA-256 [String] representing the file at the given path or an "
"empty [String] on failure."
msgstr "返回一个给定路径的文件的MD5字符串,如果失败则返回一个空的[String]。"

#: doc/classes/File.xml:204
msgid ""
"Returns the next [Variant] value from the file. If [code]allow_objects[/"
"code] is [code]true[/code], decoding objects is allowed.\n"
"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
"Do not use this option if the serialized object comes from untrusted sources "
"to avoid potential security threats such as remote code execution."
msgstr ""
"返回文件中的下一个[Variant]值。如果[code]allow_objects[/code]是[code]true[/"
"code],允许对对象进行解码。\n"
"[b]警告:[/b] 反序列化的对象可能包含被执行的代码。如果序列化的对象来自不受信"
"任的来源,请不要使用这个选项,以避免潜在的安全威胁,如远程代码执行。"

#: doc/classes/File.xml:211
msgid "Returns [code]true[/code] if the file is currently opened."
msgstr "如果文件当前被打开,返回[code]true[/code]。"

#: doc/classes/File.xml:219
msgid "Opens the file for writing or reading, depending on the flags."
msgstr "打开文件进行写入或读取,取决于标志。"

#: doc/classes/File.xml:228
msgid ""
"Opens a compressed file for reading or writing.\n"
"[b]Note:[/b] [method open_compressed] can only read files that were saved by "
"Godot, not third-party compression formats. See [url=https://github.com/"
"godotengine/godot/issues/28999]GitHub issue #28999[/url] for a workaround."
msgstr ""

#: doc/classes/File.xml:238
msgid ""
"Opens an encrypted file in write or read mode. You need to pass a binary key "
"to encrypt/decrypt it.\n"
"[b]Note:[/b] The provided key must be 32 bytes long."
msgstr ""
"以写或读的模式打开一个加密文件。你需要传递一个二进制密钥来加密/解密它。\n"
"[b]注意:[/b] 提供的密钥必须是32字节长。"

#: doc/classes/File.xml:248
msgid ""
"Opens an encrypted file in write or read mode. You need to pass a password "
"to encrypt/decrypt it."
msgstr "以写或读的方式打开一个加密的文件。你需要传递一个密码来加密/解密它。"

#: doc/classes/File.xml:255
msgid ""
"Changes the file reading/writing cursor to the specified position (in bytes "
"from the beginning of the file)."
msgstr "将文件的读/写光标改变到指定的位置(从文件开始的字节数)。"

#: doc/classes/File.xml:262
msgid ""
"Changes the file reading/writing cursor to the specified position (in bytes "
"from the end of the file).\n"
"[b]Note:[/b] This is an offset, so you should use negative numbers or the "
"cursor will be at the end of the file."
msgstr ""
"将文件的读/写光标改变到指定的位置(从文件的末端算起,以字节为单位)。\n"
"[b]注意:[/b]这是一个偏移量,所以你应该使用负数,否则光标会在文件的末端。"

#: doc/classes/File.xml:270
msgid ""
"Stores an integer as 16 bits in the file.\n"
"[b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, "
"2^16 - 1][/code]. Any other value will overflow and wrap around.\n"
"To store a signed integer, use [method store_64] or store a signed integer "
"from the interval [code][-2^15, 2^15 - 1][/code] (i.e. keeping one bit for "
"the signedness) and compute its sign manually when reading. For example:\n"
"[codeblock]\n"
"const MAX_15B = 1 << 15\n"
"const MAX_16B = 1 << 16\n"
"\n"
"func unsigned16_to_signed(unsigned):\n"
"    return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n"
"\n"
"func _ready():\n"
"    var f = File.new()\n"
"    f.open(\"user://file.dat\", File.WRITE_READ)\n"
"    f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).\n"
"    f.store_16(121) # In bounds, will store 121.\n"
"    f.seek(0) # Go back to start to read the stored value.\n"
"    var read1 = f.get_16() # 65494\n"
"    var read2 = f.get_16() # 121\n"
"    var converted1 = unsigned16_to_signed(read1) # -42\n"
"    var converted2 = unsigned16_to_signed(read2) # 121\n"
"[/codeblock]"
msgstr ""
"将一个整数以16位存储在文件中。\n"
"[b]注意:[/b] [code]value[/code]应该位于[code][0, 2^16 - 1][/code]区间内。任"
"何其他的值都会溢出并绕过。\n"
"要存储一个有符号的整数,请使用[method store_64]或者从区间[code][-2^15, 2^15 "
"- 1][/code]中存储一个有符号的整数(即保留一个位作为有符号),在读取时手动计算"
"其符号。比如说\n"
"[codeblock]\n"
"const MAX_15B = 1 << 15\n"
"const MAX_16B = 1 << 16\n"
"\n"
"func unsigned16_to_signed(unsigned):\n"
"    return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n"
"\n"
"func _ready():\n"
"    var f = File.new()\n"
"    f.open(\"user://file.dat\", File.WRITE_READ)\n"
"    f.store_16(-42) # This wraps around and stores 65494 (2^16 - 42).\n"
"    f.store_16(121) # In bounds, will store 121.\n"
"    f.seek(0) # Go back to start to read the stored value.\n"
"    var read1 = f.get_16() # 65494\n"
"    var read2 = f.get_16() # 121\n"
"    var converted1 = unsigned16_to_signed(read1) # -42\n"
"    var converted2 = unsigned16_to_signed(read2) # 121\n"
"[/codeblock]"

#: doc/classes/File.xml:297
msgid ""
"Stores an integer as 32 bits in the file.\n"
"[b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, "
"2^32 - 1][/code]. Any other value will overflow and wrap around.\n"
"To store a signed integer, use [method store_64], or convert it manually "
"(see [method store_16] for an example)."
msgstr ""
"将一个整数作为32位存储在文件中。\n"
"[b]注意:[/b] [code]value[/code]应该位于[code][0, 2^32 - 1][/code]区间内。任"
"何其他的值都会溢出并绕过。\n"
"要存储一个有符号的整数,请使用[method store_64],或者手动转换(见[method "
"store_16]的例子)。"

#: doc/classes/File.xml:306
msgid ""
"Stores an integer as 64 bits in the file.\n"
"[b]Note:[/b] The [code]value[/code] must lie in the interval [code][-2^63, "
"2^63 - 1][/code] (i.e. be a valid [int] value)."
msgstr ""
"将一个整数作为64位存储在文件中。\n"
"[b]注意:[/b] [code]value[/code]必须位于[code][-2^63, 2^63 - 1][/code]的区间"
"内(即,是一个有效的[int]值)。"

#: doc/classes/File.xml:314
msgid ""
"Stores an integer as 8 bits in the file.\n"
"[b]Note:[/b] The [code]value[/code] should lie in the interval [code][0, 255]"
"[/code]. Any other value will overflow and wrap around.\n"
"To store a signed integer, use [method store_64], or convert it manually "
"(see [method store_16] for an example)."
msgstr ""
"将一个整数作为8位存储在文件中。\n"
"[b]注意:[/b] [code]value[/code]应该位于[code][0, 255][/code]的区间内。任何其"
"他的值都会溢出并绕过。\n"
"要存储一个有符号的整数,请使用[method store_64],或者手动转换(见[method "
"store_16]的例子)。"

#: doc/classes/File.xml:323
msgid "Stores the given array of bytes in the file."
msgstr "在文件中存储给定的字节数组。"

#: doc/classes/File.xml:331
#, fuzzy
msgid ""
"Store the given [PoolStringArray] in the file as a line formatted in the CSV "
"(Comma-Separated Values) format. You can pass a different delimiter "
"[code]delim[/code] to use other than the default [code]\",\"[/code] (comma). "
"This delimiter must be one-character long.\n"
"Text will be encoded as UTF-8."
msgstr ""
"将给定的[PackedStringArray]存储为以CSV(逗号分隔值)格式设置的行。您可以传递"
"其他定界符[code] delim [/code]以使用默认的[code]“,” [/code](逗号)以外的符"
"号。该定界符必须为一个字符长。\n"
"文本将被转为UTF-8编码。"

#: doc/classes/File.xml:339
msgid "Stores a floating-point number as 64 bits in the file."
msgstr "以64位长度将一个浮点数存储在文件中。"

#: doc/classes/File.xml:346
msgid "Stores a floating-point number as 32 bits in the file."
msgstr "以32位长度将一个浮点数存储在文件中。"

#: doc/classes/File.xml:353
msgid ""
"Appends [code]line[/code] to the file followed by a line return character "
"([code]\\n[/code]), encoding the text as UTF-8."
msgstr ""

#: doc/classes/File.xml:360
msgid ""
"Stores the given [String] as a line in the file in Pascal format (i.e. also "
"store the length of the string).\n"
"Text will be encoded as UTF-8."
msgstr ""
"将给定的[String]以Pascal格式存储在文件中(例如,也将字符串长度存储)。\n"
"文本将被编码为UTF-8。"

#: doc/classes/File.xml:368
msgid "Stores a floating-point number in the file."
msgstr "将浮点数存储在文件中。"

#: doc/classes/File.xml:375
msgid ""
"Appends [code]string[/code] to the file without a line return, encoding the "
"text as UTF-8."
msgstr ""

#: doc/classes/File.xml:383
msgid ""
"Stores any Variant value in the file. If [code]full_objects[/code] is "
"[code]true[/code], encoding objects is allowed (and can potentially include "
"code).\n"
"[b]Note:[/b] Not all properties are included. Only properties that are "
"configured with the [constant PROPERTY_USAGE_STORAGE] flag set will be "
"serialized. You can add a new usage flag to a property by overriding the "
"[method Object._get_property_list] method in your class. You can also check "
"how property usage is configured by calling [method Object."
"_get_property_list]. See [enum PropertyUsageFlags] for the possible usage "
"flags."
msgstr ""

#: doc/classes/File.xml:390
msgid ""
"If [code]true[/code], the file is read with big-endian [url=https://en."
"wikipedia.org/wiki/Endianness]endianness[/url]. If [code]false[/code], the "
"file is read with little-endian endianness. If in doubt, leave this to "
"[code]false[/code] as most files are written with little-endian endianness.\n"
"[b]Note:[/b] [member endian_swap] is only about the file format, not the CPU "
"type. The CPU endianness doesn't affect the default endianness for files "
"written.\n"
"[b]Note:[/b] This is always reset to [code]false[/code] whenever you open "
"the file. Therefore, you must set [member endian_swap] [i]after[/i] opening "
"the file, not before."
msgstr ""

#: doc/classes/File.xml:397
#, fuzzy
msgid ""
"Opens the file for read operations. The cursor is positioned at the "
"beginning of the file."
msgstr "将文件的读/写光标改变到指定的位置(从文件开始的字节数)。"

#: doc/classes/File.xml:400
#, fuzzy
msgid ""
"Opens the file for write operations. The file is created if it does not "
"exist, and truncated if it does."
msgstr "为写入,打开文件。如果文件不存在,就创建文件;如果文件存在,截断文件。"

#: doc/classes/File.xml:403
#, fuzzy
msgid ""
"Opens the file for read and write operations. Does not truncate the file. "
"The cursor is positioned at the beginning of the file."
msgstr "打开文件进行读写操作。不截断文件。"

#: doc/classes/File.xml:406
#, fuzzy
msgid ""
"Opens the file for read and write operations. The file is created if it does "
"not exist, and truncated if it does. The cursor is positioned at the "
"beginning of the file."
msgstr "写入或读取打开文件。如果文件不存在,则创建文件;如果存在,就打开文件。"

#: doc/classes/File.xml:409
msgid "Uses the [url=http://fastlz.org/]FastLZ[/url] compression method."
msgstr "使用[url=http://fastlz.org/]FastLZ[/url]压缩方法。"

#: doc/classes/File.xml:412
msgid ""
"Uses the [url=https://en.wikipedia.org/wiki/DEFLATE]DEFLATE[/url] "
"compression method."
msgstr "使用[url=https://en.wikipedia.org/wiki/DEFLATE]DEFLATE[/url]压缩方法。"

#: doc/classes/File.xml:415
msgid ""
"Uses the [url=https://facebook.github.io/zstd/]Zstandard[/url] compression "
"method."
msgstr "使用[url=https://facebook.github.io/zstd/]Zstandard[/url]压缩方法。"

#: doc/classes/File.xml:418
msgid "Uses the [url=https://www.gzip.org/]gzip[/url] compression method."
msgstr "使用[url=https://www.gzip.org/]gzip[/url]的压缩方法。"

#: doc/classes/FileDialog.xml:4
msgid "Dialog for selecting files or directories in the filesystem."
msgstr "用于选择文件系统中的文件或目录的对话框。"

#: doc/classes/FileDialog.xml:7
#, fuzzy
msgid ""
"FileDialog is a preset dialog used to choose files and directories in the "
"filesystem. It supports filter masks. The FileDialog automatically sets its "
"window title according to the [member 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]来禁用。"

#: doc/classes/FileDialog.xml:16
msgid ""
"Adds [code]filter[/code] as a custom filter; [code]filter[/code] should be "
"of the form [code]\"filename.extension ; Description\"[/code]. For example, "
"[code]\"*.png ; PNG Images\"[/code]."
msgstr ""
"添加[code] filter [/code]作为自定义过滤器; [code] filter [/code]的格式应为"
"[code]“ filename.extension; Description” [/code]。例如,[code]\"*.png ; PNG "
"Images\"[/code]。"

#: doc/classes/FileDialog.xml:22
msgid "Clear all the added filters in the dialog."
msgstr "清除对话框中所有添加的过滤器。"

#: doc/classes/FileDialog.xml:28
msgid "Clear currently selected items in the dialog."
msgstr "清除对话框中当前选择的项目。"

#: doc/classes/FileDialog.xml:34
msgid "Returns the LineEdit for the selected file."
msgstr "返回所选文件的LineEdit。"

#: doc/classes/FileDialog.xml:40
msgid ""
"Returns the vertical box container of the dialog, custom controls can be "
"added to it."
msgstr "返回对话框的垂直框容器,可以在其中添加自定义控件。"

#: doc/classes/FileDialog.xml:46
msgid "Invalidate and update the current dialog content list."
msgstr "使当前对话框内容列表无效并更新。"

#: doc/classes/FileDialog.xml:52
msgid ""
"The file system access scope. See enum [code]Access[/code] constants.\n"
"[b]Warning:[/b] Currently, in sandboxed environments such as HTML5 builds or "
"sandboxed macOS apps, FileDialog cannot access the host file system. See "
"[url=https://github.com/godotengine/godot-proposals/issues/1123]godot-"
"proposals#1123[/url]."
msgstr ""

#: doc/classes/FileDialog.xml:56
msgid "The current working directory of the file dialog."
msgstr "文件对话框的当前工作目录。"

#: doc/classes/FileDialog.xml:59
msgid "The currently selected file of the file dialog."
msgstr "文件对话框的当前选定的文件。"

#: doc/classes/FileDialog.xml:62
msgid "The currently selected file path of the file dialog."
msgstr "当前选择的文件对话框的文件路径。"

#: doc/classes/FileDialog.xml:66
#, fuzzy
msgid ""
"The available file type filters. For example, this shows only [code].png[/"
"code] and [code].gd[/code] files: [code]set_filters(PoolStringArray([\"*."
"png ; PNG Images\",\"*.gd ; GDScript Files\"]))[/code]."
msgstr ""
"可用的文件类型过滤器。例如,这只显示[code].png[/code]和[code].gd[/code]文件。"
"[code]set_filters(PackedStringArray([\"*.png ; PNG Images\", \"*.gd ; "
"GDScript Files\"])[/code]。"

#: doc/classes/FileDialog.xml:69
#, fuzzy
msgid ""
"The dialog's open or save mode, which affects the selection behavior. See "
"enum [code]Mode[/code] constants."
msgstr "对话框的打开或保存模式,影响选择行为。参见[enum FileMode]。"

#: doc/classes/FileDialog.xml:72
#, fuzzy
msgid ""
"If [code]true[/code], changing the [code]Mode[/code] property will set the "
"window title accordingly (e.g. setting mode to [constant MODE_OPEN_FILE] "
"will change the window title to \"Open a File\")."
msgstr ""
"如果[code]true[/code],改变[code]Mode[/code]属性将相应地设置窗口标题(例如,"
"将模式设置为[constant FILE_MODE_OPEN_FILE]将改变窗口标题为 \"打开一个文件"
"\")。"

#: doc/classes/FileDialog.xml:75
msgid "If [code]true[/code], the dialog will show hidden files."
msgstr "如果[code]true[/code],对话框将显示出隐藏文件。"

#: doc/classes/FileDialog.xml:83
msgid "Emitted when the user selects a directory."
msgstr "当用户选择一个目录时触发的。"

#: doc/classes/FileDialog.xml:89
msgid ""
"Emitted when the user selects a file by double-clicking it or pressing the "
"[b]OK[/b] button."
msgstr "当用户通过双击文件或按[b]OK[/b]按钮选择一个文件时触发。"

#: doc/classes/FileDialog.xml:95
msgid "Emitted when the user selects multiple files."
msgstr "当用户选择多个文件时触发。"

#: doc/classes/FileDialog.xml:101
msgid "The dialog allows selecting one, and only one file."
msgstr "该对话框只允许选择一个文件。"

#: doc/classes/FileDialog.xml:104
msgid "The dialog allows selecting multiple files."
msgstr "该对话框允许选择多个文件。"

#: doc/classes/FileDialog.xml:107
msgid ""
"The dialog only allows selecting a directory, disallowing the selection of "
"any file."
msgstr "该对话框只允许选择一个目录,不允许选择任何文件。"

#: doc/classes/FileDialog.xml:110
msgid "The dialog allows selecting one file or directory."
msgstr "该对话框允许选择一个文件或目录。"

#: doc/classes/FileDialog.xml:113
msgid "The dialog will warn when a file exists."
msgstr "当文件存在时,对话框会发出警告。"

#: doc/classes/FileDialog.xml:116
msgid ""
"The dialog only allows accessing files under the [Resource] path "
"([code]res://[/code])."
msgstr "该对话框只允许访问[资源]路径下的文件([code]res://[/code])。"

#: doc/classes/FileDialog.xml:119
msgid ""
"The dialog only allows accessing files under user data path ([code]user://[/"
"code])."
msgstr "该对话框只允许访问用户数据路径([code]user://[/code])下的文件。"

#: doc/classes/FileDialog.xml:122
msgid "The dialog allows accessing files on the whole file system."
msgstr "该对话框允许访问文件系统上的文件。"

#: doc/classes/FileDialog.xml:127
msgid "Custom icon for files."
msgstr "文件的自定义图标。"

#: doc/classes/FileDialog.xml:130
msgid "The color modulation applied to the file icon."
msgstr "应用于文件图标的颜色调制。"

#: doc/classes/FileDialog.xml:133
msgid ""
"The color tint for disabled files (when the [FileDialog] is used in open "
"folder mode)."
msgstr "禁用文件的色调(当[FileDialog]在打开文件夹模式下使用时)。"

#: doc/classes/FileDialog.xml:136
msgid "Custom icon for folders."
msgstr "文件夹的自定义图标。"

#: doc/classes/FileDialog.xml:139
msgid "The color modulation applied to the folder icon."
msgstr "应用于文件夹图标的颜色调制。"

#: doc/classes/FileDialog.xml:142
msgid "Custom icon for the parent folder arrow."
msgstr "父文件夹箭头的自定义图标。"

#: doc/classes/FileDialog.xml:145
msgid "Custom icon for the reload button."
msgstr "重新加载按钮的自定义图标。"

#: doc/classes/FileDialog.xml:148
msgid "Custom icon for the toggle hidden button."
msgstr "切换隐藏按钮的自定义图标。"

#: doc/classes/float.xml:4
msgid "Float built-in type."
msgstr "浮点数内置类型。"

#: doc/classes/float.xml:7
msgid ""
"The [float] built-in type is a 64-bit double-precision floating-point "
"number, equivalent to [code]double[/code] in C++. This type has 14 reliable "
"decimal digits of precision. The [float] type can be stored in [Variant], "
"which is the generic type used by the engine. The maximum value of [float] "
"is approximately [code]1.79769e308[/code], and the minimum is approximately "
"[code]-1.79769e308[/code].\n"
"Most methods and properties in the engine use 32-bit single-precision "
"floating-point numbers instead, equivalent to [code]float[/code] in C++, "
"which have 6 reliable decimal digits of precision. For data structures such "
"as [Vector2] and [Vector3], Godot uses 32-bit floating-point numbers.\n"
"Math done using the [float] type is not guaranteed to be exact or "
"deterministic, and will often result in small errors. You should usually use "
"the [method @GDScript.is_equal_approx] and [method @GDScript.is_zero_approx] "
"methods instead of [code]==[/code] to compare [float] values for equality."
msgstr ""

#: doc/classes/float.xml:12
msgid "https://en.wikipedia.org/wiki/Double-precision_floating-point_format"
msgstr ""

#: doc/classes/float.xml:13
msgid "https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
msgstr ""

#: doc/classes/float.xml:20
msgid ""
"Cast a [bool] value to a floating-point value, [code]float(true)[/code] will "
"be equal to 1.0 and [code]float(false)[/code] will be equal to 0.0."
msgstr ""
"将一个[bool]值投给一个浮点值,[code]float(true)[/code]将等于1.0,"
"[code]float(false)[/code]将等于0.0。"

#: doc/classes/float.xml:27
msgid ""
"Cast an [int] value to a floating-point value, [code]float(1)[/code] will be "
"equal to 1.0."
msgstr "将一个[int]值投给一个浮点值,[code]float(1)[/code]将等于1.0。"

#: doc/classes/float.xml:34
msgid ""
"Cast a [String] value to a floating-point value. This method accepts float "
"value strings like [code]\"1.23\"[/code] and exponential notation strings "
"for its parameter so calling [code]float(\"1e3\")[/code] will return 1000.0 "
"and calling [code]float(\"1e-3\")[/code] will return 0.001. Calling this "
"method with an invalid float string will return 0. This method stops parsing "
"at the first invalid character and will return the parsed result so far, so "
"calling [code]float(\"1a3\")[/code] will return 1 while calling "
"[code]float(\"1e3a2\")[/code] will return 1000.0."
msgstr ""
"将一个[String]值转换成一个浮点值。这个方法接受浮点数字符串,如"
"[code]\"1.23\"[/code]和指数符号字符串作为其参数,所以调用[code]float(\"1e3\")"
"[/code]将返回1000.0,调用[code]float(\"1e-3\")[/code]将返回0.001。用一个无效"
"的float字符串调用这个方法将返回0。该方法在第一个无效字符处停止解析,并将返回"
"到目前为止的解析结果,因此调用[code]float(\"1a3\")[/code]将返回1,而调用"
"[code]float(\"1e3a2\")[/code]将返回1000.0。"

#: doc/classes/Font.xml:4
msgid "Internationalized font and text drawing support."
msgstr "支持国际化的字体和文本绘制。"

#: doc/classes/Font.xml:7
msgid ""
"Font contains a Unicode-compatible character set, as well as the ability to "
"draw it with variable width, ascent, descent and kerning. For creating fonts "
"from TTF files (or other font formats), see the editor support for fonts.\n"
"[b]Note:[/b] If a [DynamicFont] doesn't contain a character used in a "
"string, the character in question will be replaced with codepoint "
"[code]0xfffd[/code] if it's available in the [DynamicFont]. If this "
"replacement character isn't available in the DynamicFont, the character will "
"be hidden without displaying any replacement character in the string.\n"
"[b]Note:[/b] If a [BitmapFont] doesn't contain a character used in a string, "
"the character in question will be hidden without displaying any replacement "
"character in the string.\n"
"[b]Note:[/b] Unicode characters after [code]0xffff[/code] (such as most "
"emoji) are [i]not[/i] supported on Windows. They will display as unknown "
"characters instead. This will be resolved in Godot 4.0."
msgstr ""

#: doc/classes/Font.xml:24
msgid ""
"Draw [code]string[/code] into a canvas item using the font at a given "
"position, with [code]modulate[/code] color, and optionally clipping the "
"width. [code]position[/code] specifies the baseline, not the top. To draw "
"from the top, [i]ascent[/i] must be added to the Y axis.\n"
"See also [method CanvasItem.draw_string]."
msgstr ""
"在给定位置使用字体将[code]string[/code]绘制到画布项目中,并使用[code] "
"modulate [/code]颜色,并可以选择裁剪宽度。 [code]position[/code]指定基线,而"
"不是顶部。要从顶部绘制,必须在[Y]轴上添加[i] ascent [/i]。\n"
"另请参见[method CanvasItem.draw_string]。"

#: doc/classes/Font.xml:37
msgid ""
"Draw character [code]char[/code] into a canvas item using the font at a "
"given position, with [code]modulate[/code] color, and optionally kerning if "
"[code]next[/code] is passed. clipping the width. [code]position[/code] "
"specifies the baseline, not the top. To draw from the top, [i]ascent[/i] "
"must be added to the Y axis. The width used by the character is returned, "
"making this function useful for drawing strings character by character."
msgstr ""
"使用给定位置的字体将字符[code]char[/code]绘制到画布项目中,使用"
"[code]modulate[/code]颜色,如果通过了[code]next[/code],还可以选择使用"
"kerning,剪切宽度。[code]position[/code]指定的是基线,而不是顶部。要从顶部绘"
"制,必须在Y轴上添加[i]ascent[/i]。字符所使用的宽度被返回,使这个函数在逐个字"
"符绘制字符串时非常有用。"

#: doc/classes/Font.xml:43
msgid "Returns the font ascent (number of pixels above the baseline)."
msgstr "返回字体的上升幅度(超出基线的像素数)。"

#: doc/classes/Font.xml:51
#, fuzzy
msgid ""
"Returns the size of a character, optionally taking kerning into account if "
"the next character is provided. Note that the height returned is the font "
"height (see [method get_height]) and has no relation to the glyph height."
msgstr "返回一个字符的大小,如果提供了下一个字符,则可选择考虑字符的间距。"

#: doc/classes/Font.xml:57
msgid "Returns the font descent (number of pixels below the baseline)."
msgstr "返回字体的减少量(低于基线的像素数)。"

#: doc/classes/Font.xml:63
msgid "Returns the total font height (ascent plus descent) in pixels."
msgstr "返回总体字体的高度(增加和减少),单位是像素。"

#: doc/classes/Font.xml:70
msgid ""
"Returns the size of a string, taking kerning and advance into account. Note "
"that the height returned is the font height (see [method get_height]) and "
"has no relation to the string."
msgstr ""

#: doc/classes/Font.xml:78
msgid ""
"Returns the size that the string would have with word wrapping enabled with "
"a fixed [code]width[/code]."
msgstr "返回字符串在启用了固定的[code]宽度width[/code]的字词包装后的大小。"

#: doc/classes/Font.xml:84
msgid "Returns [code]true[/code] if the font has an outline."
msgstr "如果字体有边框,返回[code]true[/code]。"

#: doc/classes/Font.xml:95
msgid ""
"After editing a font (changing size, ascent, char rects, etc.). Call this "
"function to propagate changes to controls that might use it."
msgstr ""
"在编辑一个字体后(改变大小、上升、字格char矩形等)。调用这个函数,将变化传播"
"给可能使用它的控件。"

#: doc/classes/FuncRef.xml:4
msgid "Reference to a function in an object."
msgstr "对一个对象中的一个函数的引用。"

#: doc/classes/FuncRef.xml:7
msgid ""
"In GDScript, functions are not [i]first-class objects[/i]. This means it is "
"impossible to store them directly as variables, return them from another "
"function, or pass them as arguments.\n"
"However, by creating a [FuncRef] using the [method @GDScript.funcref] "
"function, a reference to a function in a given object can be created, passed "
"around and called."
msgstr ""
"在GDScript中,函数不是[i]第一类对象[/i]。这意味着不可能将它们直接作为变量存"
"储,从另一个函数中返回,或将它们作为参数传递。\n"
"然而,通过使用[method @GDScript.funcref]函数创建一个[FuncRef],可以创建、传递"
"和调用给定对象中的一个函数的引用。"

#: doc/classes/FuncRef.xml:16
#, fuzzy
msgid ""
"Calls the referenced function previously set in [member function] or [method "
"@GDScript.funcref]."
msgstr ""
"调用之前由[method set_function]或[method @GDScript.funcref]设置的参考函数。"

#: doc/classes/FuncRef.xml:23
#, fuzzy
msgid ""
"Calls the referenced function previously set in [member function] or [method "
"@GDScript.funcref]. Contrarily to [method call_func], this method does not "
"support a variable number of arguments but expects all parameters to be "
"passed via a single [Array]."
msgstr ""
"调用先前由[method set_function]或[method @GDScript.funcref]设置的参考函数。与"
"[method call_func]不同,这个方法不支持可变的参数数量,而是所有的参数都通过一"
"个[Array]来传递。"

#: doc/classes/FuncRef.xml:29
msgid "Returns whether the object still exists and has the function assigned."
msgstr "返回该对象是否仍然存在并被分配了该函数。"

#: doc/classes/FuncRef.xml:36
msgid ""
"The object containing the referenced function. This object must be of a type "
"actually inheriting from [Object], not a built-in type such as [int], "
"[Vector2] or [Dictionary]."
msgstr ""
"包含被引用函数的对象。这个对象必须是实际继承自[Object]的类型,而不是像[int]、"
"[Vector2]或[Dictionary]这样的内置类型。"

#: doc/classes/FuncRef.xml:42
#, fuzzy
msgid "The name of the referenced function."
msgstr "获取当前动作的名称。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:4
msgid ""
"An external library containing functions or script classes to use in Godot."
msgstr "一个包含函数或脚本类的外部库,可以在Godot中使用。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:7
#, fuzzy
msgid ""
"A GDNative library can implement [NativeScript]s, global functions to call "
"with the [GDNative] class, or low-level engine extensions through interfaces "
"such as [ARVRInterfaceGDNative]. The library must be compiled for each "
"platform and architecture that the project will run on."
msgstr ""
"GDNative库可以实现[NativeScript],用[GDNative]类调用的全局函数,或通过"
"[XRInterfaceGDNative]等接口实现低级别的引擎扩展。该库必须为项目将要运行的每个"
"平台和架构进行编译。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/gdnative/gdnative-c-"
"example.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/gdnative/"
"gdnative-c-example.html"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/gdnative/gdnative-cpp-"
"example.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/gdnative/"
"gdnative-cpp-example.html"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:17
msgid ""
"Returns paths to all dependency libraries for the current platform and "
"architecture."
msgstr "返回当前平台和架构的所有依赖库的路径。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:23
msgid ""
"Returns the path to the dynamic library file for the current platform and "
"architecture."
msgstr "返回当前平台和架构的动态库文件的路径。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:29
msgid ""
"This resource in INI-style [ConfigFile] format, as in [code].gdnlib[/code] "
"files."
msgstr "该资源为INI风格的[ConfigFile]格式,如[code].gdnlib[/code]文件中。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:32
msgid ""
"If [code]true[/code], Godot loads only one copy of the library and each "
"script that references the library will share static data like static or "
"global variables.\n"
"If [code]false[/code], Godot loads a separate copy of the library into "
"memory for each script that references it."
msgstr ""
"如果[code]true[/code],Godot只加载一个库的副本,每个引用该库的脚本将共享静态"
"数据,如静态变量或全局变量。\n"
"如果[code]false[/code],Godot为每个引用它的脚本加载一个单独的库副本到内存。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:36
msgid ""
"If [code]true[/code], the editor will temporarily unload the library "
"whenever the user switches away from the editor window, allowing the user to "
"recompile the library without restarting Godot.\n"
"[b]Note:[/b] If the library defines tool scripts that run inside the editor, "
"[code]reloadable[/code] must be [code]false[/code]. Otherwise, the editor "
"will attempt to unload the tool scripts while they're in use and crash."
msgstr ""
"如果[code]true[/code],每当用户离开编辑器窗口时,编辑器会暂时卸载库,允许用户"
"重新编译库,而不需要重新启动Godot。\n"
"[b]注意:[/b] 如果库定义了在编辑器内运行的工具脚本,[code]reloadable[/code]必"
"须是[code]false[/code]。否则,编辑器会在工具脚本正在使用的时候尝试卸载它们时"
"而崩溃。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:40
msgid ""
"If [code]true[/code], Godot loads the library at startup rather than the "
"first time a script uses the library, calling [code]{prefix}"
"gdnative_singleton[/code] after initializing the library (where [code]"
"{prefix}[/code] is the value of [member symbol_prefix]). The library remains "
"loaded as long as Godot is running.\n"
"[b]Note:[/b] A singleton library cannot be [member reloadable]."
msgstr ""
"如果[code]true[/code],Godot会在启动时加载库,而不是在脚本第一次使用库时,在"
"初始化库后调用[code]{prefix}gdnative_singleton[/code](其中[code]{prefix}[/"
"code]是[member symbol_prefix]的值)。只要Godot在运行,该库就一直被加载。\n"
"[b]注意:[/b] 单例库不能是[member reloadable]。"

#: modules/gdnative/doc_classes/GDNativeLibrary.xml:44
msgid ""
"The prefix this library's entry point functions begin with. For example, a "
"GDNativeLibrary would declare its [code]gdnative_init[/code] function as "
"[code]godot_gdnative_init[/code] by default.\n"
"On platforms that require statically linking libraries (currently only iOS), "
"each library must have a different [code]symbol_prefix[/code]."
msgstr ""
"这个库的入口点函数开始的前缀。例如,一个 GDNativeLibrary 默认将其 "
"[code]gdnative_init[/code] 函数声明为 [code]godot_gdnative_init[/code] 。\n"
"在需要静态链接库的平台上(目前只有iOS),每个库必须有一个不同的"
"[code]symbol_prefix[/code]。"

#: modules/gdscript/doc_classes/GDScript.xml:4
msgid "A script implemented in the GDScript programming language."
msgstr "一个用GDScript编程语言实现的脚本。"

#: modules/gdscript/doc_classes/GDScript.xml:7
msgid ""
"A script implemented in the GDScript programming language. The script "
"extends the functionality of all objects that instance it.\n"
"[method new] creates a new instance of the script. [method Object."
"set_script] extends an existing object, if that object's class matches one "
"of the script's base classes."
msgstr ""
"用GDScript编程语言实现的脚本。该脚本扩展了实例化该对象的所有对象的功能。\n"
"[method new]创建脚本的新实例。如果该对象的类与脚本的基类之一匹配,则[method "
"Object.set_script]会扩展该对象。"

#: modules/gdscript/doc_classes/GDScript.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/gdscript/index."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/scripting/gdscript/"
"index.html"

#: modules/gdscript/doc_classes/GDScript.xml:17
msgid "Returns byte code for the script source code."
msgstr "返回脚本源代码的字节(byte)码。"

#: modules/gdscript/doc_classes/GDScript.xml:23
msgid ""
"Returns a new instance of the script.\n"
"For example:\n"
"[codeblock]\n"
"var MyClass = load(\"myclass.gd\")\n"
"var instance = MyClass.new()\n"
"assert(instance.get_script() == MyClass)\n"
"[/codeblock]"
msgstr ""
"返回该脚本的一个新实例化对象。\n"
"举例:\n"
"[codeblock]\n"
"var MyClass = load(\"myclass.gd\")\n"
"var instance = MyClass.new()\n"
"assert(instance.get_script() == MyClass)\n"
"[/codeblock]"

#: modules/gdscript/doc_classes/GDScriptFunctionState.xml:4
msgid "State of a function call after yielding."
msgstr "一个函数在调用后失效的状态。"

#: modules/gdscript/doc_classes/GDScriptFunctionState.xml:7
#, fuzzy
msgid ""
"Calling [method @GDScript.yield] within a function will cause that function "
"to yield and return its current state as an object of this type. The yielded "
"function call can then be resumed later by calling [method resume] on this "
"state object."
msgstr ""
"修正。从4.0版的GDScript重写开始,文档已经过时了。\n"
"在一个函数中调用[code]yield[/code]会使该函数失效并将其当前状态作为该类型的对"
"象返回。之后可以通过对这个状态对象调用[method resume]来恢复被失效的函数调用。"

#: modules/gdscript/doc_classes/GDScriptFunctionState.xml:16
msgid ""
"Check whether the function call may be resumed. This is not the case if the "
"function state was already resumed.\n"
"If [code]extended_check[/code] is enabled, it also checks if the associated "
"script and object still exist. The extended check is done in debug mode as "
"part of [method GDScriptFunctionState.resume], but you can use this if you "
"know you may be trying to resume without knowing for sure the object and/or "
"script have survived up to that point."
msgstr ""
"检查函数调用是否可以被恢复。如果函数状态已经被恢复,则不存在这种情况。\n"
"如果[code]extended_check[/code]被启用,它还会检查相关的脚本和对象是否仍然存"
"在。扩展检查是在调试模式下作为[method GDScriptFunctionState.resume]的一部分进"
"行的,但是如果你知道你可能在不确定对象和/或脚本已经存活到那个点的情况下尝试恢"
"复,你可以使用这个。"

#: modules/gdscript/doc_classes/GDScriptFunctionState.xml:24
#, fuzzy
msgid ""
"Resume execution of the yielded function call.\n"
"If handed an argument, return the argument from the [method @GDScript.yield] "
"call in the yielded function call. You can pass e.g. an [Array] to hand "
"multiple arguments.\n"
"This function returns what the resumed function call returns, possibly "
"another function state if yielded again."
msgstr ""
"继续执行失效的函数调用。\n"
"如果交出一个参数,则返回被交出的函数调用中的[code]yield[/code]调用的参数。你"
"可以传递例如一个[Array]来传递多个参数。\n"
"这个函数返回被恢复的函数调用所返回的东西,如果再次失效,可能是另一个函数状"
"态。"

#: doc/classes/Generic6DOFJoint.xml:4
msgid ""
"The generic 6-degrees-of-freedom joint can implement a variety of joint "
"types by locking certain axes' rotation or translation."
msgstr "通用的6度自由度关节可以通过锁定某些轴的旋转或平移来实现各种关节类型。"

#: doc/classes/Generic6DOFJoint.xml:7
msgid ""
"The first 3 DOF axes are linear axes, which represent translation of Bodies, "
"and the latter 3 DOF axes represent the angular motion. Each axis can be "
"either locked, or limited."
msgstr ""
"前3个DOF轴是线性轴,代表物体的平移,后3个DOF轴代表角运动。每个轴可以被锁定,"
"也可以被限制。"

#: doc/classes/Generic6DOFJoint.xml:93
msgid ""
"The amount of rotational damping across the X axis.\n"
"The lower, the longer an impulse from one side takes to travel to the other "
"side."
msgstr ""
"X轴上的旋转阻尼量。\n"
"越低,来自一侧的冲力到达另一侧的时间越长。"

#: doc/classes/Generic6DOFJoint.xml:97
msgid "If [code]true[/code], rotation across the X axis is limited."
msgstr "如果[code]true[/code],跨越X轴的旋转受到限制。"

#: doc/classes/Generic6DOFJoint.xml:100
msgid ""
"When rotating across the X axis, this error tolerance factor defines how "
"much the correction gets slowed down. The lower, the slower."
msgstr ""
"当在X轴上旋转时,这个误差容限系数定义了修正的速度被减慢的程度。值越低,旋转越"
"慢。"

#: doc/classes/Generic6DOFJoint.xml:103
msgid ""
"The maximum amount of force that can occur, when rotating around the X axis."
msgstr "绕X轴旋转时所能产生的最大力。"

#: doc/classes/Generic6DOFJoint.xml:106
msgid ""
"The minimum rotation in negative direction to break loose and rotate around "
"the X axis."
msgstr "负方向的最小旋转,以挣脱并围绕X轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:109
msgid ""
"The amount of rotational restitution across the X axis. The lower, the more "
"restitution occurs."
msgstr "X轴上的旋转恢复量。值越低,恢复量越大。"

#: doc/classes/Generic6DOFJoint.xml:112
msgid "The speed of all rotations across the X axis."
msgstr "跨越X轴的所有旋转的速度。"

#: doc/classes/Generic6DOFJoint.xml:115
msgid ""
"The minimum rotation in positive direction to break loose and rotate around "
"the X axis."
msgstr "正方向的最小旋转,以挣脱并绕X轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:118
msgid ""
"The amount of rotational damping across the Y axis. The lower, the more "
"dampening occurs."
msgstr "Y轴上的旋转阻尼量。值越低,旋转的阻尼就越大。"

#: doc/classes/Generic6DOFJoint.xml:121
msgid "If [code]true[/code], rotation across the Y axis is limited."
msgstr "如果[code]true[/code],跨越Y轴的旋转受到限制。"

#: doc/classes/Generic6DOFJoint.xml:124
msgid ""
"When rotating across the Y axis, this error tolerance factor defines how "
"much the correction gets slowed down. The lower, the slower."
msgstr ""
"当在Y轴上旋转时,这个误差容限系数定义了修正的速度被减慢的程度。值越低,旋转越"
"慢。"

#: doc/classes/Generic6DOFJoint.xml:127
msgid ""
"The maximum amount of force that can occur, when rotating around the Y axis."
msgstr "围绕Y轴旋转时,可能发生的最大力。"

#: doc/classes/Generic6DOFJoint.xml:130
msgid ""
"The minimum rotation in negative direction to break loose and rotate around "
"the Y axis."
msgstr "负方向的最小旋转,以挣脱并围绕Y轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:133
msgid ""
"The amount of rotational restitution across the Y axis. The lower, the more "
"restitution occurs."
msgstr "跨越Y轴的旋转恢复量。越低,发生的恢复量越大。"

#: doc/classes/Generic6DOFJoint.xml:136
msgid "The speed of all rotations across the Y axis."
msgstr "跨越Y轴的所有旋转的速度。"

#: doc/classes/Generic6DOFJoint.xml:139
msgid ""
"The minimum rotation in positive direction to break loose and rotate around "
"the Y axis."
msgstr "正方向的最小旋转,以挣脱并绕Y轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:142
msgid ""
"The amount of rotational damping across the Z axis. The lower, the more "
"dampening occurs."
msgstr "跨越Z轴的旋转阻尼量。值越低,阻尼就越多。"

#: doc/classes/Generic6DOFJoint.xml:145
msgid "If [code]true[/code], rotation across the Z axis is limited."
msgstr "如果[code]true[/code],跨越Z轴的旋转受到限制。"

#: doc/classes/Generic6DOFJoint.xml:148
msgid ""
"When rotating across the Z axis, this error tolerance factor defines how "
"much the correction gets slowed down. The lower, the slower."
msgstr ""
"当在Z轴上旋转时,这个误差容限系数定义了修正的速度被减慢的程度。值越低,旋转越"
"慢。"

#: doc/classes/Generic6DOFJoint.xml:151
msgid ""
"The maximum amount of force that can occur, when rotating around the Z axis."
msgstr "围绕Z轴旋转时,可能发生的最角度。"

#: doc/classes/Generic6DOFJoint.xml:154
msgid ""
"The minimum rotation in negative direction to break loose and rotate around "
"the Z axis."
msgstr "负方向的最小旋转,以挣脱并围绕Z轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:157
msgid ""
"The amount of rotational restitution across the Z axis. The lower, the more "
"restitution occurs."
msgstr "跨越Z轴的旋转恢复量。越低,发生的恢复量越大。"

#: doc/classes/Generic6DOFJoint.xml:160
msgid "The speed of all rotations across the Z axis."
msgstr "跨越Z轴的所有旋转的速度。"

#: doc/classes/Generic6DOFJoint.xml:163
msgid ""
"The minimum rotation in positive direction to break loose and rotate around "
"the Z axis."
msgstr "正方向的最小旋转,并绕Z轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:166
msgid "If [code]true[/code], a rotating motor at the X axis is enabled."
msgstr "如果为[code]true[/code],X轴的旋转电机被启用。"

#: doc/classes/Generic6DOFJoint.xml:169
msgid "Maximum acceleration for the motor at the X axis."
msgstr "在X轴旋转的最大加速度。"

#: doc/classes/Generic6DOFJoint.xml:172
msgid "Target speed for the motor at the X axis."
msgstr "X轴上电机的目标速度。"

#: doc/classes/Generic6DOFJoint.xml:175
msgid "If [code]true[/code], a rotating motor at the Y axis is enabled."
msgstr "如果[code]true[/code],启用Y轴上的旋转电机。"

#: doc/classes/Generic6DOFJoint.xml:178
msgid "Maximum acceleration for the motor at the Y axis."
msgstr "电机在X轴的最大加速度。"

#: doc/classes/Generic6DOFJoint.xml:181
msgid "Target speed for the motor at the Y axis."
msgstr "电机在Y轴的目标速度。"

#: doc/classes/Generic6DOFJoint.xml:184
msgid "If [code]true[/code], a rotating motor at the Z axis is enabled."
msgstr "如果[code]true[/code],则启用Z轴的旋转电机。"

#: doc/classes/Generic6DOFJoint.xml:187
msgid "Maximum acceleration for the motor at the Z axis."
msgstr "电机在Z轴的最大加速度。"

#: doc/classes/Generic6DOFJoint.xml:190
msgid "Target speed for the motor at the Z axis."
msgstr "Z轴上电机的目标速度。"

#: doc/classes/Generic6DOFJoint.xml:217
msgid "The amount of damping that happens at the X motion."
msgstr "发生在X运动的阻尼量。"

#: doc/classes/Generic6DOFJoint.xml:220
msgid "If [code]true[/code], the linear motion across the X axis is limited."
msgstr "如果[code]true[/code],整个X轴的线性运动受到限制。"

#: doc/classes/Generic6DOFJoint.xml:223
msgid "The minimum difference between the pivot points' X axis."
msgstr "枢轴点的X轴之间的最小差异。"

#: doc/classes/Generic6DOFJoint.xml:226
msgid ""
"The amount of restitution on the X axis movement. The lower, the more "
"momentum gets lost."
msgstr "X轴运动的恢复量。越低,动量损失越大。"

#: doc/classes/Generic6DOFJoint.xml:229
msgid ""
"A factor applied to the movement across the X axis. The lower, the slower "
"the movement."
msgstr "应用于X轴上移动的一个系数。值越低,移动的就越慢。"

#: doc/classes/Generic6DOFJoint.xml:232
msgid "The maximum difference between the pivot points' X axis."
msgstr "枢轴点的X轴之间的最小差异。"

#: doc/classes/Generic6DOFJoint.xml:235
msgid "The amount of damping that happens at the Y motion."
msgstr "发生在Y运动的阻尼量。"

#: doc/classes/Generic6DOFJoint.xml:238
msgid "If [code]true[/code], the linear motion across the Y axis is limited."
msgstr "如果[code]true[/code],限制跨越Y轴的线性运动。"

#: doc/classes/Generic6DOFJoint.xml:241
msgid "The minimum difference between the pivot points' Y axis."
msgstr "枢轴点的Y轴之间的最小差异。"

#: doc/classes/Generic6DOFJoint.xml:244
msgid ""
"The amount of restitution on the Y axis movement. The lower, the more "
"momentum gets lost."
msgstr "Y轴运动的恢复量。值越低,动量损失越大。"

#: doc/classes/Generic6DOFJoint.xml:247
msgid ""
"A factor applied to the movement across the Y axis. The lower, the slower "
"the movement."
msgstr "应用于Y轴上移动的一个系数。值越低,移动的就越慢。"

#: doc/classes/Generic6DOFJoint.xml:250
msgid "The maximum difference between the pivot points' Y axis."
msgstr "枢轴点的Y轴之间的最大差异。"

#: doc/classes/Generic6DOFJoint.xml:253
msgid "The amount of damping that happens at the Z motion."
msgstr "发生在Z运动的阻尼量。"

#: doc/classes/Generic6DOFJoint.xml:256
msgid "If [code]true[/code], the linear motion across the Z axis is limited."
msgstr "如果[code]true[/code],跨Z轴的线性运动受到限制。"

#: doc/classes/Generic6DOFJoint.xml:259
msgid "The minimum difference between the pivot points' Z axis."
msgstr "枢轴点的Z轴之间的最小差异。"

#: doc/classes/Generic6DOFJoint.xml:262
msgid ""
"The amount of restitution on the Z axis movement. The lower, the more "
"momentum gets lost."
msgstr "Y轴运动的恢复量。越低,动量损失越大。"

#: doc/classes/Generic6DOFJoint.xml:265
msgid ""
"A factor applied to the movement across the Z axis. The lower, the slower "
"the movement."
msgstr "适用于跨Z轴移动的一个系数。值越低,移动的就越慢。"

#: doc/classes/Generic6DOFJoint.xml:268
msgid "The maximum difference between the pivot points' Z axis."
msgstr "枢轴点的Z轴之间的最大差异。"

#: doc/classes/Generic6DOFJoint.xml:271
msgid ""
"If [code]true[/code], then there is a linear motor on the X axis. It will "
"attempt to reach the target velocity while staying within the force limits."
msgstr ""
"如果[code]true[/code],那么X轴上有一个线性马达。它将试图达到目标速度,同时保"
"持在力的限度内。"

#: doc/classes/Generic6DOFJoint.xml:274
msgid ""
"The maximum force the linear motor can apply on the X axis while trying to "
"reach the target velocity."
msgstr "当尝试达到目标速度时,线性马达可以在X轴上应用的最大力。"

#: doc/classes/Generic6DOFJoint.xml:277
msgid "The speed that the linear motor will attempt to reach on the X axis."
msgstr "线性马达在X轴上尝试达到的速度。"

#: doc/classes/Generic6DOFJoint.xml:280
msgid ""
"If [code]true[/code], then there is a linear motor on the Y axis. It will "
"attempt to reach the target velocity while staying within the force limits."
msgstr ""
"如果[code]true[/code],那么Y轴上有一个线性马达。它将尝试达到目标速度,同时保"
"持在力的限度内。"

#: doc/classes/Generic6DOFJoint.xml:283
msgid ""
"The maximum force the linear motor can apply on the Y axis while trying to "
"reach the target velocity."
msgstr "直线电机在试图达到目标速度时可施加在Y轴上的最大力。"

#: doc/classes/Generic6DOFJoint.xml:286
msgid "The speed that the linear motor will attempt to reach on the Y axis."
msgstr "线性马达在Y轴上将会达到的速度。"

#: doc/classes/Generic6DOFJoint.xml:289
msgid ""
"If [code]true[/code], then there is a linear motor on the Z axis. It will "
"attempt to reach the target velocity while staying within the force limits."
msgstr ""
"如果[code]true[/code],那么在Z轴上有一个线性马达。它将试图达到目标速度,同时"
"保持在力的限度内。"

#: doc/classes/Generic6DOFJoint.xml:292
msgid ""
"The maximum force the linear motor can apply on the Z axis while trying to "
"reach the target velocity."
msgstr "当试图达到目标速度时,线性马达可以在X轴上应用的最大力。"

#: doc/classes/Generic6DOFJoint.xml:295
msgid "The speed that the linear motor will attempt to reach on the Z axis."
msgstr "线性马达在Z轴上试图达到的速度。"

#: doc/classes/Generic6DOFJoint.xml:324 doc/classes/PhysicsServer.xml:1086
msgid "The minimum difference between the pivot points' axes."
msgstr "枢轴点之间的最小差异。"

#: doc/classes/Generic6DOFJoint.xml:327 doc/classes/PhysicsServer.xml:1089
msgid "The maximum difference between the pivot points' axes."
msgstr "枢轴点的轴之间的最大差异。"

#: doc/classes/Generic6DOFJoint.xml:330
msgid ""
"A factor applied to the movement across the axes. The lower, the slower the "
"movement."
msgstr "适用于跨轴移动的一个系数。值越低,移动的就越慢。"

#: doc/classes/Generic6DOFJoint.xml:333
msgid ""
"The amount of restitution on the axes' movement. The lower, the more "
"momentum gets lost."
msgstr "轴的运动的恢复量。值越低,动量损失越大。"

#: doc/classes/Generic6DOFJoint.xml:336 doc/classes/PhysicsServer.xml:1098
msgid ""
"The amount of damping that happens at the linear motion across the axes."
msgstr "发生在跨轴线性运动的阻尼量。"

#: doc/classes/Generic6DOFJoint.xml:339
msgid "The velocity the linear motor will try to reach."
msgstr "线性马达将尝试达到的速度。"

#: doc/classes/Generic6DOFJoint.xml:342
msgid ""
"The maximum force the linear motor will apply while trying to reach the "
"velocity target."
msgstr "线性马达在试图达到速度目标时将施加的最大力。"

#: doc/classes/Generic6DOFJoint.xml:351 doc/classes/PhysicsServer.xml:1107
msgid ""
"The minimum rotation in negative direction to break loose and rotate around "
"the axes."
msgstr "负方向的最小旋转,以脱离和绕轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:354 doc/classes/PhysicsServer.xml:1110
msgid ""
"The minimum rotation in positive direction to break loose and rotate around "
"the axes."
msgstr "正方向的最小旋转,以挣脱和绕轴旋转。"

#: doc/classes/Generic6DOFJoint.xml:357
msgid "The speed of all rotations across the axes."
msgstr "所有跨轴旋转的速度。"

#: doc/classes/Generic6DOFJoint.xml:360 doc/classes/PhysicsServer.xml:1116
msgid ""
"The amount of rotational damping across the axes. The lower, the more "
"dampening occurs."
msgstr "跨越Z轴的旋转阻尼量。值越低,发生的阻尼就越多。"

#: doc/classes/Generic6DOFJoint.xml:363 doc/classes/PhysicsServer.xml:1119
msgid ""
"The amount of rotational restitution across the axes. The lower, the more "
"restitution occurs."
msgstr "在各轴上的旋转恢复量。值越低,发生的恢复量越大。"

#: doc/classes/Generic6DOFJoint.xml:366 doc/classes/PhysicsServer.xml:1122
msgid ""
"The maximum amount of force that can occur, when rotating around the axes."
msgstr "围绕Z轴旋转时,可能发生的最大力。"

#: doc/classes/Generic6DOFJoint.xml:369
msgid ""
"When rotating across the axes, this error tolerance factor defines how much "
"the correction gets slowed down. The lower, the slower."
msgstr ""
"当跨轴旋转时,这个误差容限系数定义了修正的速度被减慢的程度。值越低,旋转越"
"慢。"

#: doc/classes/Generic6DOFJoint.xml:372 doc/classes/PhysicsServer.xml:1128
msgid "Target speed for the motor at the axes."
msgstr "轴上电机的目标速度。"

#: doc/classes/Generic6DOFJoint.xml:375 doc/classes/PhysicsServer.xml:1131
msgid "Maximum acceleration for the motor at the axes."
msgstr "马达在轴上的最大加速度。"

#: doc/classes/Generic6DOFJoint.xml:387
msgid "If enabled, linear motion is possible within the given limits."
msgstr "如果启用,在给定范围内可以进行线性运动。"

#: doc/classes/Generic6DOFJoint.xml:390
msgid "If enabled, rotational motion is possible within the given limits."
msgstr "如果启用,在给定的限度内可以进行旋转运动。"

#: doc/classes/Generic6DOFJoint.xml:397
msgid "If enabled, there is a rotational motor across these axes."
msgstr "如果启用,就有一个跨这些轴的旋转马达。"

#: doc/classes/Generic6DOFJoint.xml:400
msgid "If enabled, there is a linear motor across these axes."
msgstr "如果启用,有一个线性马达横跨这些轴。"

#: doc/classes/Generic6DOFJoint.xml:403 doc/classes/HingeJoint.xml:108
msgid "Represents the size of the [enum Flag] enum."
msgstr "表示[enum Flag]枚举的大小。"

#: doc/classes/Geometry.xml:4
#, fuzzy
msgid "Helper node to calculate generic geometry operations."
msgstr "帮助节点用于计算二维空间中的通用几何操作。"

#: doc/classes/Geometry.xml:7
#, fuzzy
msgid ""
"Geometry provides users with a set of helper functions to create geometric "
"shapes, compute intersections between shapes, and process various other "
"geometric operations."
msgstr ""
"Geometry2D为用户提供了一组辅助函数,用于创建几何图形,计算图形之间的交点,以"
"及处理其他各种几何操作。"

#: doc/classes/Geometry.xml:16
msgid ""
"Returns an array with 6 [Plane]s that describe the sides of a box centered "
"at the origin. The box size is defined by [code]extents[/code], which "
"represents one (positive) corner of the box (i.e. half its actual size)."
msgstr ""
"返回一个包含6个[Plane]的数组,描述以原点为中心的盒子的边。盒子的大小由"
"[code]extents[/code]定义,它代表盒子的一个(正)角(即其实际大小的一半)。"

#: doc/classes/Geometry.xml:27
msgid ""
"Returns an array of [Plane]s closely bounding a faceted capsule centered at "
"the origin with radius [code]radius[/code] and height [code]height[/code]. "
"The parameter [code]sides[/code] defines how many planes will be generated "
"for the side part of the capsule, whereas [code]lats[/code] gives the number "
"of latitudinal steps at the bottom and top of the capsule. The parameter "
"[code]axis[/code] describes the axis along which the capsule is oriented (0 "
"for X, 1 for Y, 2 for Z)."
msgstr ""
"返回一个[Plane]数组,该数组紧密地绑定着一个以原点为中心,半径为[code]radius[/"
"code],高度为[code]height[/code]的面状胶囊。参数[code]side[/code]定义了将为胶"
"囊的侧面部分生成多少个平面,而[code]lats[/code]则给出了胶囊底部和顶部的纬向阶"
"梯数。参数[code]axis[/code]描述了胶囊的方向轴(0为X,1为Y,2为Z)。"

#: doc/classes/Geometry.xml:37
msgid ""
"Returns an array of [Plane]s closely bounding a faceted cylinder centered at "
"the origin with radius [code]radius[/code] and height [code]height[/code]. "
"The parameter [code]sides[/code] defines how many planes will be generated "
"for the round part of the cylinder. The parameter [code]axis[/code] "
"describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 "
"for Z)."
msgstr ""
"返回一个[Plane]数组,该数组紧密绑定以原点为中心的切面圆柱体,其半径为"
"[code]radius[/code],高度为[code]height[/code]。参数[code]side[/code]定义了将"
"为圆柱体的圆形部分生成多少个平面。参数[code]axis[/code]描述了圆柱体的方向轴"
"(0代表X,1代表Y,2代表Z)。"

#: doc/classes/Geometry.xml:45
msgid ""
"Clips the polygon defined by the points in [code]points[/code] against the "
"[code]plane[/code] and returns the points of the clipped polygon."
msgstr ""
"将[code]point[/code]中的点所定义的多边形与[code]plane[/code]进行对比,并返回"
"被剪切的多边形的点。"

#: doc/classes/Geometry.xml:53
msgid ""
"Clips [code]polygon_a[/code] against [code]polygon_b[/code] and returns an "
"array of clipped polygons. This performs [constant OPERATION_DIFFERENCE] "
"between polygons. Returns an empty array if [code]polygon_b[/code] "
"completely overlaps [code]polygon_a[/code].\n"
"If [code]polygon_b[/code] is enclosed by [code]polygon_a[/code], returns an "
"outer polygon (boundary) and inner polygon (hole) which could be "
"distinguished by calling [method is_polygon_clockwise]."
msgstr ""
"将[code]polygon_a[/code]与[code]polygon_b[/code]进行对比,并返回一个被剪切的"
"多边形阵列。这在多边形之间执行[constant OPERATION_DIFFERENCE]。如果"
"[code]polygon_b[/code]与[code]polygon_a[/code]完全重合,则返回一个空数组。\n"
"如果[code]polygon_b[/code]被[code]polygon_a[/code]包围,返回一个外部多边形"
"(边界)和内部多边形(孔),可以通过调用[method is_polygon_clockwise]来区分。"

#: doc/classes/Geometry.xml:62
msgid ""
"Clips [code]polyline[/code] against [code]polygon[/code] and returns an "
"array of clipped polylines. This performs [constant OPERATION_DIFFERENCE] "
"between the polyline and the polygon. This operation can be thought of as "
"cutting a line with a closed shape."
msgstr ""
"将[code]polyline[/code]与[code]polygon[/code]相对应,并返回一个折线阵列。在折"
"线和多边形之间执行[constant OPERATION_DIFFERENCE]。这个操作可以被认为是用一个"
"封闭的形状切割一条线。"

#: doc/classes/Geometry.xml:69
msgid ""
"Given an array of [Vector2]s, returns the convex hull as a list of points in "
"counterclockwise order. The last point is the same as the first one."
msgstr ""
"给出一个[Vector2]s的数组,以逆时针的顺序返回凸面的点的列表。最后一个点与第一"
"个点相同。"

#: doc/classes/Geometry.xml:77
#, fuzzy
msgid ""
"Mutually excludes common area defined by intersection of [code]polygon_a[/"
"code] and [code]polygon_b[/code] (see [method intersect_polygons_2d]) and "
"returns an array of excluded polygons. This performs [constant "
"OPERATION_XOR] between polygons. In other words, returns all but common area "
"between polygons.\n"
"The operation may result in an outer polygon (boundary) and inner polygon "
"(hole) produced which could be distinguished by calling [method "
"is_polygon_clockwise]."
msgstr ""
"相互排除由[code]polygon_a[/code]和[code]polygon_b[/code](见[method "
"intersect_polygons])的交叉点定义的公共区域,并返回一个排除的多边形数组。这在"
"多边形之间执行了[constant OPERATION_XOR]。换句话说,返回多边形之间除公共区域"
"外的所有区域。\n"
"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),可以通过调用"
"[method is_polygon_clockwise]来区分。"

#: doc/classes/Geometry.xml:87
msgid ""
"Returns the 3D point on the 3D segment ([code]s1[/code], [code]s2[/code]) "
"that is closest to [code]point[/code]. The returned point will always be "
"inside the specified segment."
msgstr ""
"返回3D部份([code]s1[/code], [code]s2[/code])上离[code]point[/code]最近的3D"
"点。返回的点将总是在指定的部份内。"

#: doc/classes/Geometry.xml:96
msgid ""
"Returns the 2D point on the 2D segment ([code]s1[/code], [code]s2[/code]) "
"that is closest to [code]point[/code]. The returned point will always be "
"inside the specified segment."
msgstr ""
"返回2D段([code]s1[/code], [code]s2[/code])上最接近[code]point[/code]的2D"
"点。返回的点将总是在指定的线段内。"

#: doc/classes/Geometry.xml:105
msgid ""
"Returns the 3D point on the 3D line defined by ([code]s1[/code], [code]s2[/"
"code]) that is closest to [code]point[/code]. The returned point can be "
"inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. "
"somewhere on the line extending from the segment."
msgstr ""
"返回由([code]s1[/code], [code]s2[/code])定义的三维直线上最接近[code]point[/"
"code]的三维点。返回的点可以在线段内([code]s1[/code], [code]s2[/code]),也可"
"以在线段外,即在线段延伸的某处。"

#: doc/classes/Geometry.xml:114
msgid ""
"Returns the 2D point on the 2D line defined by ([code]s1[/code], [code]s2[/"
"code]) that is closest to [code]point[/code]. The returned point can be "
"inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. "
"somewhere on the line extending from the segment."
msgstr ""
"返回由([code]s1[/code], [code]s2[/code])定义的二维线上最接近[code]point[/"
"code]的二维点。返回的点可以在线段([code]s1[/code], [code]s2[/code])内,也可"
"以在线段外,即在从线段延伸出来的某处。"

#: doc/classes/Geometry.xml:124
#, fuzzy
msgid ""
"Given the two 3D segments ([code]p1[/code], [code]p2[/code]) and ([code]q1[/"
"code], [code]q2[/code]), finds those two points on the two segments that are "
"closest to each other. Returns a [PoolVector3Array] that contains this point "
"on ([code]p1[/code], [code]p2[/code]) as well the accompanying point on "
"([code]q1[/code], [code]q2[/code])."
msgstr ""
"给出两个3D线段([code]p1[/code], [code]p2[/code])和([code]q1[/code], "
"[code]q2[/code]),找到这两个线段上最接近的两个点。返回一个"
"[PackedVector2Array],其中包含([code]p1[/code], [code]p2[/code])上的这个点以"
"及([code]q1[/code], [code]q2[/code])上的伴随点。"

#: doc/classes/Geometry.xml:134
#, fuzzy
msgid ""
"Given the two 2D segments ([code]p1[/code], [code]q1[/code]) and ([code]p2[/"
"code], [code]q2[/code]), finds those two points on the two segments that are "
"closest to each other. Returns a [PoolVector2Array] that contains this point "
"on ([code]p1[/code], [code]q1[/code]) as well the accompanying point on "
"([code]p2[/code], [code]q2[/code])."
msgstr ""
"给出两个2D线段([code]p1[/code], [code]p2[/code])和([code]q1[/code], "
"[code]q2[/code]),找到这两个线段上最接近的两个点。返回一个"
"[PackedVector2Array],其中包含([code]p1[/code], [code]p2[/code])上的这个点以"
"及([code]q1[/code], [code]q2[/code])上的伴随点。"

#: doc/classes/Geometry.xml:141
msgid "Used internally by the engine."
msgstr "由引擎内部使用。"

#: doc/classes/Geometry.xml:149
msgid ""
"Intersects [code]polygon_a[/code] with [code]polygon_b[/code] and returns an "
"array of intersected polygons. This performs [constant "
"OPERATION_INTERSECTION] between polygons. In other words, returns common "
"area shared by polygons. Returns an empty array if no intersection occurs.\n"
"The operation may result in an outer polygon (boundary) and inner polygon "
"(hole) produced which could be distinguished by calling [method "
"is_polygon_clockwise]."
msgstr ""
"将[code]polygon_a[/code]与[code]polygon_b[/code]相交并返回相交的多边形数组。"
"这在多边形之间执行[constant OPERATION_INTERSECTION]。换句话说,返回多边形共享"
"的公共区域。如果没有发生相交,则返回一个空数组。\n"
"该操作可能导致产生外部多边形(边界)和内部多边形(孔),可以通过调用[method "
"is_polygon_clockwise]来区分。"

#: doc/classes/Geometry.xml:158
msgid ""
"Intersects [code]polyline[/code] with [code]polygon[/code] and returns an "
"array of intersected polylines. This performs [constant "
"OPERATION_INTERSECTION] between the polyline and the polygon. This operation "
"can be thought of as chopping a line with a closed shape."
msgstr ""
"将[code]polyline[/code]与[code]polygon[/code]相交,并返回相交的折线阵列。这在"
"折线和多边形之间执行了[constant OPERATION_INTERSECTION]。这个操作可以被认为是"
"用一个封闭的形状砍断一条线。"

#: doc/classes/Geometry.xml:167
msgid ""
"Returns [code]true[/code] if [code]point[/code] is inside the circle or if "
"it's located exactly [i]on[/i] the circle's boundary, otherwise returns "
"[code]false[/code]."
msgstr ""
"返回[code]true[/code]时,[code]point[/code]位于圆的内部或者[i]正好[/i]位于圆"
"的边界上,否则将返回[code]false[/code]。"

#: doc/classes/Geometry.xml:175
msgid ""
"Returns [code]true[/code] if [code]point[/code] is inside [code]polygon[/"
"code] or if it's located exactly [i]on[/i] polygon's boundary, otherwise "
"returns [code]false[/code]."
msgstr ""
"返回[code]true[/code]时,[code]point[/code]位于多边形[code]polygon[/code]的内"
"部或者[i]正好[/i]位于多边形的边界上,否则将返回[code]false[/code]。"

#: doc/classes/Geometry.xml:182
msgid ""
"Returns [code]true[/code] if [code]polygon[/code]'s vertices are ordered in "
"clockwise order, otherwise returns [code]false[/code]."
msgstr ""
"如果[code]多边形polygon[/code]的顶点按顺时针顺序排序,则返回[code] true [/"
"code],否则返回[code] false [/code]。"

#: doc/classes/Geometry.xml:192
msgid ""
"Checks if the two lines ([code]from_a[/code], [code]dir_a[/code]) and "
"([code]from_b[/code], [code]dir_b[/code]) intersect. If yes, return the "
"point of intersection as [Vector2]. If no intersection takes place, returns "
"an empty [Variant].\n"
"[b]Note:[/b] The lines are specified using direction vectors, not end points."
msgstr ""
"检查两行([code] from_a [/code],[code] dir_a [/code])和([code] from_b [/"
"code],[code] dir_b [/code])是否相交。如果是,则将相交点返回为[Vector2]。如"
"果没有交叉,则返回一个空的[Variant]。\n"
"[b]注意:[/b]线是使用方向向量而不是终点指定的。"

#: doc/classes/Geometry.xml:200
msgid ""
"Given an array of [Vector2]s representing tiles, builds an atlas. The "
"returned dictionary has two keys: [code]points[/code] is a vector of "
"[Vector2] that specifies the positions of each tile, [code]size[/code] "
"contains the overall size of the whole atlas as [Vector2]."
msgstr ""
"给定表示图块的[Vector2]数组,构建一个地图集。返回的字典有两个键:[code] "
"points [/code]是[Vector2]的向量,用于指定每个图块的位置,[code] size [/code]"
"包含整个图集的整体大小,作为[Vector2]。"

#: doc/classes/Geometry.xml:208
#, fuzzy
msgid ""
"Merges (combines) [code]polygon_a[/code] and [code]polygon_b[/code] and "
"returns an array of merged polygons. This performs [constant "
"OPERATION_UNION] between polygons.\n"
"The operation may result in an outer polygon (boundary) and multiple inner "
"polygons (holes) produced which could be distinguished by calling [method "
"is_polygon_clockwise]."
msgstr ""
"合并(结合)[code]polygon_a[/code]和[code]polygon_b[/code],并返回一个合并的"
"多边形数组。在多边形之间执行[constant OPERATION_UNION]。\n"
"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),可以通过调用"
"[method is_polygon_clockwise]来区分。"

#: doc/classes/Geometry.xml:218
#, fuzzy
msgid ""
"Inflates or deflates [code]polygon[/code] by [code]delta[/code] units "
"(pixels). If [code]delta[/code] is positive, makes the polygon grow outward. "
"If [code]delta[/code] is negative, shrinks the polygon inward. Returns an "
"array of polygons because inflating/deflating may result in multiple "
"discrete polygons. Returns an empty array if [code]delta[/code] is negative "
"and the absolute value of it approximately exceeds the minimum bounding "
"rectangle dimensions of the polygon.\n"
"Each polygon's vertices will be rounded as determined by [code]join_type[/"
"code], see [enum PolyJoinType].\n"
"The operation may result in an outer polygon (boundary) and inner polygon "
"(hole) produced which could be distinguished by calling [method "
"is_polygon_clockwise].\n"
"[b]Note:[/b] To translate the polygon's vertices specifically, use the "
"[method Transform2D.xform] method:\n"
"[codeblock]\n"
"var polygon = PoolVector2Array([Vector2(0, 0), Vector2(100, 0), Vector2(100, "
"100), Vector2(0, 100)])\n"
"var offset = Vector2(50, 50)\n"
"polygon = Transform2D(0, offset).xform(polygon)\n"
"print(polygon) # prints [Vector2(50, 50), Vector2(150, 50), Vector2(150, "
"150), Vector2(50, 150)]\n"
"[/codeblock]"
msgstr ""
"将[code]多边形polygon[/code]膨胀或缩小[code]delta[/code]单位(像素)。如果"
"[code]delta[/code]为正数,使多边形向外增长。如果[code]delta[/code]为负数,使"
"多边形向内收缩。返回一个多边形数组,因为充气/放气可能导致多个离散的多边形。如"
"果[code]delta[/code]为负数,并且其绝对值大约超过了多边形的最小边界矩形尺寸,"
"则返回一个空数组。\n"
"每个多边形的顶点将按照[code]join_type[/code]确定的方式进行圆角处理,见[enum "
"PolyJoinType]。\n"
"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),可以通过调用[方法"
"is_polygon_clockwise]来区分。\n"
"[b]注意:[/b]要具体翻译多边形的顶点,请使用[method Transform2D.xform]方法。\n"
"[codeblock]\n"
"var polygon = PackedVector2Array([Vector2(0, 0), Vector2(100, 0), "
"Vector2(100, 100), Vector2(0, 100)] )\n"
"var offset = Vector2(50, 50)\n"
"polygon = Transform2D(0, offset).xform(polygon)\n"
"print(polygon) #打印出[Vector2(50, 50), Vector2(150, 50), Vector2(150, 150), "
"Vector2(50, 150)] 。\n"
"[/codeblock]"

#: doc/classes/Geometry.xml:237
msgid ""
"Inflates or deflates [code]polyline[/code] by [code]delta[/code] units "
"(pixels), producing polygons. If [code]delta[/code] is positive, makes the "
"polyline grow outward. Returns an array of polygons because inflating/"
"deflating may result in multiple discrete polygons. If [code]delta[/code] is "
"negative, returns an empty array.\n"
"Each polygon's vertices will be rounded as determined by [code]join_type[/"
"code], see [enum PolyJoinType].\n"
"Each polygon's endpoints will be rounded as determined by [code]end_type[/"
"code], see [enum PolyEndType].\n"
"The operation may result in an outer polygon (boundary) and inner polygon "
"(hole) produced which could be distinguished by calling [method "
"is_polygon_clockwise]."
msgstr ""
"通过[code]delta[/code]单位(像素)对[code]多边形线polyline[/code]进行充气或放"
"气,产生多边形。如果[code]delta[/code]为正数,则使多段线向外增长。返回一个多"
"边形数组,因为充气/放气可能导致多个离散的多边形。如果[code]delta[/code]为负"
"数,返回一个空数组。\n"
"每个多边形的顶点将由[code]join_type[/code]决定,见[enum PolyJoinType]。\n"
"每个多边形的端点将由[code]end_type[/code]决定,见[enum PolyEndType]。\n"
"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),可以通过调用"
"[method is_polygon_clockwise]来区分。"

#: doc/classes/Geometry.xml:250
msgid ""
"Returns if [code]point[/code] is inside the triangle specified by [code]a[/"
"code], [code]b[/code] and [code]c[/code]."
msgstr ""
"如果[code]点point[/code]在[code]a[/code]、[code]b[/code]和[code]c[/code]所指"
"定的三角形内,则返回。"

#: doc/classes/Geometry.xml:261
msgid ""
"Tests if the 3D ray starting at [code]from[/code] with the direction of "
"[code]dir[/code] intersects the triangle specified by [code]a[/code], "
"[code]b[/code] and [code]c[/code]. If yes, returns the point of intersection "
"as [Vector3]. If no intersection takes place, an empty [Variant] is returned."
msgstr ""
"测试从[code]from[/code]开始,方向为[code]dir[/code]的3D射线是否与[code]a[/"
"code]、[code]b[/code]和[code]c[/code]指定的三角形相交。如果是,返回相交点为"
"[Vector3]。如果没有发生相交,将返回一个空的[Variant]。"

#: doc/classes/Geometry.xml:271
msgid ""
"Given the 2D segment ([code]segment_from[/code], [code]segment_to[/code]), "
"returns the position on the segment (as a number between 0 and 1) at which "
"the segment hits the circle that is located at position "
"[code]circle_position[/code] and has radius [code]circle_radius[/code]. If "
"the segment does not intersect the circle, -1 is returned (this is also the "
"case if the line extending the segment would intersect the circle, but the "
"segment does not)."
msgstr ""

#: doc/classes/Geometry.xml:280
#, fuzzy
msgid ""
"Given a convex hull defined though the [Plane]s in the array [code]planes[/"
"code], tests if the segment ([code]from[/code], [code]to[/code]) intersects "
"with that hull. If an intersection is found, returns a [PoolVector3Array] "
"containing the point the intersection and the hull's normal. If no "
"intersecion is found, an the returned array is empty."
msgstr ""
"给定一个通过数组[code] planes [/code]中的[Plane]定义的凸包,测试线段"
"([code]from[/code],[code]to[/code])是否与该包相交。如果找到相交点,则返回"
"一个[PackedVector3Array],其中包含相交点和船体的法线。如果找不到相交,则返回"
"的数组为空。"

#: doc/classes/Geometry.xml:290
#, fuzzy
msgid ""
"Checks if the segment ([code]from[/code], [code]to[/code]) intersects the "
"cylinder with height [code]height[/code] that is centered at the origin and "
"has radius [code]radius[/code]. If no, returns an empty [PoolVector3Array]. "
"If an intersection takes place, the returned array contains the point of "
"intersection and the cylinder's normal at the point of intersection."
msgstr ""
"检查线段([code]from[/code],[code]to[/code])是否与高度[code]height[/code]的"
"圆柱体相交,圆柱体以原点为中心,半径为[code]radius[/code]。如果没有,返回一个"
"空的[PackedVector3Array]。如果发生了相交,返回的数组包含相交点和圆柱体在相交"
"点的法线。"

#: doc/classes/Geometry.xml:300
msgid ""
"Checks if the two segments ([code]from_a[/code], [code]to_a[/code]) and "
"([code]from_b[/code], [code]to_b[/code]) intersect. If yes, return the point "
"of intersection as [Vector2]. If no intersection takes place, returns an "
"empty [Variant]."
msgstr ""
"检查两段([code]from_a[/code], [code]to_a[/code])和([code]from_b[/code], "
"[code]to_b[/code])是否相交。如果是,返回相交点为[Vector2]。如果没有发生相"
"交,返回一个空的[Variant]。"

#: doc/classes/Geometry.xml:310
#, fuzzy
msgid ""
"Checks if the segment ([code]from[/code], [code]to[/code]) intersects the "
"sphere that is located at [code]sphere_position[/code] and has radius "
"[code]sphere_radius[/code]. If no, returns an empty [PoolVector3Array]. If "
"yes, returns a [PoolVector3Array] containing the point of intersection and "
"the sphere's normal at the point of intersection."
msgstr ""
"检查线段([code]from[/code],[code]to[/code])是否与位于"
"[code]sphere_position[/code]、半径为[code]sphere_radius[/code]的球体相交。如"
"果没有,返回一个空的[PackedVector3Array]。如果是,返回一个包含交点和交点处球"
"体法线的 [PackedVector3Array]。"

#: doc/classes/Geometry.xml:321
msgid ""
"Tests if the segment ([code]from[/code], [code]to[/code]) intersects the "
"triangle [code]a[/code], [code]b[/code], [code]c[/code]. If yes, returns the "
"point of intersection as [Vector3]. If no intersection takes place, an empty "
"[Variant] is returned."
msgstr ""
"测试段([code]from[/code],[code]to[/code])是否与三角形[code]a[/code],"
"[code]b[/code],[code]c[/code]相交。如果是,返回相交点为[Vector3]。如果没有发"
"生相交,则返回一个空的[Variant]。"

#: doc/classes/Geometry.xml:328
#, fuzzy
msgid ""
"Triangulates the area specified by discrete set of [code]points[/code] such "
"that no point is inside the circumcircle of any resulting triangle. Returns "
"a [PoolIntArray] where each triangle consists of three consecutive point "
"indices into [code]points[/code] (i.e. the returned array will have [code]n "
"* 3[/code] elements, with [code]n[/code] being the number of found "
"triangles). If the triangulation did not succeed, an empty [PoolIntArray] is "
"returned."
msgstr ""
"对由离散的[code]points[/code]集合指定的区域进行三角化,使得没有一个点位于任何"
"结果的三角形的圆周内。返回一个[PackedInt32Array],其中每个三角形由"
"[code]points[/code]的三个连续的点索引组成(即返回的数组将有[code]n * 3[/code]"
"个元素,其中[code]n[/code]是找到的三角形的数量)。如果三角化没有成功,将返回"
"一个空的[PackedInt32Array]。"

#: doc/classes/Geometry.xml:335
#, fuzzy
msgid ""
"Triangulates the polygon specified by the points in [code]polygon[/code]. "
"Returns a [PoolIntArray] where each triangle consists of three consecutive "
"point indices into [code]polygon[/code] (i.e. the returned array will have "
"[code]n * 3[/code] elements, with [code]n[/code] being the number of found "
"triangles). If the triangulation did not succeed, an empty [PoolIntArray] is "
"returned."
msgstr ""
"对[code]多边形polygon[/code]中的点指定的多边形进行三角化。返回一个"
"[PackedInt32Array],其中每个三角形由[code]polygon[/code]中三个连续的点索引组"
"成(即返回的数组将有[code]n * 3[/code]个元素,[code]n[/code]是找到的三角形的"
"数量)。如果三角化没有成功,将返回一个空的[PackedInt32Array]。"

#: doc/classes/Geometry.xml:341
msgid ""
"Create regions where either subject or clip polygons (or both) are filled."
msgstr "创建区域,其中主体或剪辑多边形(或两者)被填充。"

#: doc/classes/Geometry.xml:344
msgid ""
"Create regions where subject polygons are filled except where clip polygons "
"are filled."
msgstr "创建主体多边形被填充的区域,但剪辑多边形被填充的区域除外。"

#: doc/classes/Geometry.xml:347
msgid "Create regions where both subject and clip polygons are filled."
msgstr "创建主体和剪辑多边形都被填充的区域。"

#: doc/classes/Geometry.xml:350
msgid ""
"Create regions where either subject or clip polygons are filled but not "
"where both are filled."
msgstr "创建主体或剪辑多边形被填充的区域,但不是两者都被填充的区域。"

#: doc/classes/Geometry.xml:353
msgid ""
"Squaring is applied uniformally at all convex edge joins at [code]1 * delta[/"
"code]."
msgstr "在[code]1 * delta[/code]的所有凸边连接处均匀地应用平方。"

#: doc/classes/Geometry.xml:356
msgid ""
"While flattened paths can never perfectly trace an arc, they are "
"approximated by a series of arc chords."
msgstr ""
"虽然扁平化路径不可能完美地追踪一个弧线,但它们可以通过一系列弧弦来近似。"

#: doc/classes/Geometry.xml:359
msgid ""
"There's a necessary limit to mitered joins since offsetting edges that join "
"at very acute angles will produce excessively long and narrow \"spikes\". "
"For any given edge join, when miter offsetting would exceed that maximum "
"distance, \"square\" joining is applied."
msgstr ""
"对斜接有一个必要的限制,因为以非常尖锐的角度连接的边缘偏移会产生过长和过窄的 "
"\"尖刺\"。对于任何给定的边缘连接,当斜接偏移会超过最大距离时,就采用 \"方形 "
"\"连接。"

#: doc/classes/Geometry.xml:362
msgid ""
"Endpoints are joined using the [enum PolyJoinType] value and the path filled "
"as a polygon."
msgstr "端点使用[enum PolyJoinType]值连接,路径被填充为多边形。"

#: doc/classes/Geometry.xml:365
msgid ""
"Endpoints are joined using the [enum PolyJoinType] value and the path filled "
"as a polyline."
msgstr "端点使用[enum PolyJoinType]值连接,路径被填充为多边形线。"

#: doc/classes/Geometry.xml:368
msgid "Endpoints are squared off with no extension."
msgstr "端点是方形的,没有延伸。"

#: doc/classes/Geometry.xml:371
msgid "Endpoints are squared off and extended by [code]delta[/code] units."
msgstr "端点被平方化并扩展了[code]delta[/code]单位。"

#: doc/classes/Geometry.xml:374
msgid "Endpoints are rounded off and extended by [code]delta[/code] units."
msgstr "端点被四舍五入,并以[code]delta[/code]为单位进行扩展。"

#: doc/classes/GeometryInstance.xml:4
msgid "Base node for geometry-based visual instances."
msgstr "基于几何图形的视觉实例的基础节点。"

#: doc/classes/GeometryInstance.xml:7
msgid ""
"Base node for geometry-based visual instances. Shares some common "
"functionality like visibility and custom materials."
msgstr ""
"基于几何图形的视觉实例的基础节点。分享一些共同的机制,如可见性和自定义材料。"

#: doc/classes/GeometryInstance.xml:16
#, fuzzy
msgid ""
"Returns the [enum GeometryInstance.Flags] that have been set for this object."
msgstr "返回已经为特定实例设置的自定义数据。"

#: doc/classes/GeometryInstance.xml:23
msgid ""
"Overrides the bounding box of this node with a custom one. To remove it, set "
"an [AABB] with all fields set to zero."
msgstr ""
"用一个自定义的包围盒覆盖这个节点的包围盒。设置一个[AABB],去删除它,所有字段"
"设置为零。"

#: doc/classes/GeometryInstance.xml:31
#, fuzzy
msgid ""
"Sets the [enum GeometryInstance.Flags] specified. See [enum GeometryInstance."
"Flags] for options."
msgstr ""
"设置给定的[enum InstanceFlags]标志。更多细节请参见[enum InstanceFlags]。"

#: doc/classes/GeometryInstance.xml:37
msgid ""
"The selected shadow casting flag. See [enum ShadowCastingSetting] for "
"possible values."
msgstr ""
"选择的阴影投射标志。转到 [enum ShadowCastingSetting] 来查看该属性可能的值。"

#: doc/classes/GeometryInstance.xml:40
#, fuzzy
msgid ""
"The extra distance added to the GeometryInstance's bounding box ([AABB]) to "
"increase its cull box."
msgstr "添加到GeometryInstance3D的包围盒([AABB])的额外距离,以增加其剔除盒。"

#: doc/classes/GeometryInstance.xml:43
msgid ""
"When disabled, the mesh will be taken into account when computing indirect "
"lighting, but the resulting lightmap will not be saved. Useful for emissive "
"only materials or shadow casters."
msgstr ""

#: doc/classes/GeometryInstance.xml:46
msgid ""
"Scale factor for the generated baked lightmap. Useful for adding detail to "
"certain mesh instances."
msgstr ""

#: doc/classes/GeometryInstance.xml:49
#, fuzzy
msgid ""
"The GeometryInstance's max LOD distance.\n"
"[b]Note:[/b] This property currently has no effect."
msgstr ""
"GeometryInstance3D的最大LOD距离。\n"
"[b]注意:[/b] 这个属性目前没有任何作用。"

#: doc/classes/GeometryInstance.xml:53
#, fuzzy
msgid ""
"The GeometryInstance's max LOD margin.\n"
"[b]Note:[/b] This property currently has no effect."
msgstr ""
"GeometryInstance3D的最大LOD距离。\n"
"[b]注意:[/b] 这个属性目前没有任何作用。"

#: doc/classes/GeometryInstance.xml:57
#, fuzzy
msgid ""
"The GeometryInstance's min LOD distance.\n"
"[b]Note:[/b] This property currently has no effect."
msgstr ""
"GeometryInstance3D的最大LOD距离。\n"
"[b]注意:[/b] 这个属性目前没有任何作用。"

#: doc/classes/GeometryInstance.xml:61
#, fuzzy
msgid ""
"The GeometryInstance's min LOD margin.\n"
"[b]Note:[/b] This property currently has no effect."
msgstr ""
"GeometryInstance3D的最小LOD值。\n"
"[b]注意:[/b] 这个属性目前没有任何作用。"

#: doc/classes/GeometryInstance.xml:65
msgid ""
"The material override for the whole geometry.\n"
"If a material is assigned to this property, it will be used instead of any "
"material set in any material slot of the mesh."
msgstr ""
"整个几何体的材质覆盖。\n"
"如果一个材料被分配给这个属性,它将会被用来代替在网格的任何材料槽中设置的任何"
"材料。"

#: doc/classes/GeometryInstance.xml:69
msgid ""
"If [code]true[/code], this GeometryInstance will be used when baking lights "
"using a [GIProbe] or [BakedLightmap]."
msgstr ""

#: doc/classes/GeometryInstance.xml:74
msgid "The generated lightmap texture will have the original size."
msgstr ""

#: doc/classes/GeometryInstance.xml:77
msgid "The generated lightmap texture will be twice as large, on each axis."
msgstr ""

#: doc/classes/GeometryInstance.xml:80
msgid "The generated lightmap texture will be 4 times as large, on each axis."
msgstr ""

#: doc/classes/GeometryInstance.xml:83
msgid "The generated lightmap texture will be 8 times as large, on each axis."
msgstr ""

#: doc/classes/GeometryInstance.xml:88
msgid "Will not cast any shadows."
msgstr "将不会投射任何阴影。"

#: doc/classes/GeometryInstance.xml:91
#, fuzzy
msgid ""
"Will cast shadows from all visible faces in the GeometryInstance.\n"
"Will take culling into account, so faces not being rendered will not be "
"taken into account when shadow casting."
msgstr ""
"将从GeometryInstance3D的所有可见面投射阴影。\n"
"将考虑剔除,所以在投射阴影时,没有被渲染的面将不会被考虑在内。"

#: doc/classes/GeometryInstance.xml:95
#, fuzzy
msgid ""
"Will cast shadows from all visible faces in the GeometryInstance.\n"
"Will not take culling into account, so all faces will be taken into account "
"when shadow casting."
msgstr ""
"将从GeometryInstance3D的所有可见面投射阴影。\n"
"不会考虑剔除,所以在投射阴影时,所有的面都会被考虑在内。"

#: doc/classes/GeometryInstance.xml:99
msgid ""
"Will only show the shadows casted from this object.\n"
"In other words, the actual mesh will not be visible, only the shadows casted "
"from the mesh will be."
msgstr ""
"只显示从这个物体投射出来的阴影。\n"
"换句话说,实际的网格将不可见,只有网格投影可见。"

#: doc/classes/GeometryInstance.xml:103
msgid ""
"Will allow the GeometryInstance to be used when baking lights using a "
"[GIProbe] or [BakedLightmap]."
msgstr ""

#: doc/classes/GeometryInstance.xml:106
msgid ""
"Unused in this class, exposed for consistency with [enum VisualServer."
"InstanceFlags]."
msgstr ""

#: doc/classes/GIProbe.xml:4
msgid "Real-time global illumination (GI) probe."
msgstr "实时全局光照(GI)探测。"

#: doc/classes/GIProbe.xml:7
#, fuzzy
msgid ""
"[GIProbe]s are used to provide high-quality real-time indirect light to "
"scenes. They precompute the effect of objects that emit light and the effect "
"of static geometry to simulate the behavior of complex light in real-time. "
"[GIProbe]s need to be baked before using, however, once baked, dynamic "
"objects will receive light from them. Further, lights can be fully dynamic "
"or baked.\n"
"Having [GIProbe]s in a scene can be expensive, the quality of the probe can "
"be turned down in exchange for better performance in the [ProjectSettings] "
"using [member ProjectSettings.rendering/quality/voxel_cone_tracing/"
"high_quality].\n"
"[b]Note:[/b] Meshes should have sufficiently thick walls to avoid light "
"leaks (avoid one-sided walls). For interior levels, enclose your level "
"geometry in a sufficiently large box and bridge the loops to close the "
"mesh.\n"
"[b]Note:[/b] Due to a renderer limitation, emissive [ShaderMaterial]s cannot "
"emit light when used in a [GIProbe]. Only emissive [SpatialMaterial]s can "
"emit light in a [GIProbe]."
msgstr ""
"[GIProbe]用于为场景提供高质量的实时间接光。它们预先计算发光对象的效果和静态几"
"何图形的效果,以实时模拟复杂光的行为。 [GIProbe]必须先烘烤才能使用,但是一旦"
"烘烤,动态物体就会从它们那里接收光。此外,灯光可以是完全动态的或烘烤的。\n"
"在场景中使用[GIProbe]可能会很昂贵(占用较多资源),可以使用[member "
"ProjectSettings.rendering / quality / gi_probes / quality]降低探针的质量,以"
"换取[ProjectSettings]中更好的性能。"

#: doc/classes/GIProbe.xml:13
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/3d/gi_probes.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/3d/gi_probes.html"

#: doc/classes/GIProbe.xml:22
#, fuzzy
msgid ""
"Bakes the effect from all [GeometryInstance]s marked with [member "
"GeometryInstance.use_in_baked_light] and [Light]s marked with either "
"[constant Light.BAKE_INDIRECT] or [constant Light.BAKE_ALL]. If "
"[code]create_visual_debug[/code] is [code]true[/code], after baking the "
"light, this will generate a [MultiMesh] that has a cube representing each "
"solid cell with each cube colored to the cell's albedo color. This can be "
"used to visualize the [GIProbe]'s data and debug any issues that may be "
"occurring."
msgstr ""
"从所有标有[constant GeometryInstance3D.GI_MODE_BAKED]的[GeometryInstance3D]和"
"标有[constant Light3D.BAKE_DYNAMIC]或[constant Light3D.BAKE_STATIC]的"
"[Light3D]烘烤效果。如果[code]create_visual_debug[/code]是[code]true[/code],"
"在烘烤光线之后,这将生成一个[MultiMesh],其中有一个立方体代表每个实体单元,每"
"个立方体的颜色与该单元的反照率颜色一致。这可以用来可视化[GIProbe]的数据并调试"
"任何可能发生的问题。"

#: doc/classes/GIProbe.xml:28
msgid "Calls [method bake] with [code]create_visual_debug[/code] enabled."
msgstr "在启用 [code]create_visual_debug[/code] 的情况下调用 [method bake] 。"

#: doc/classes/GIProbe.xml:34
msgid ""
"Offsets the lookup of the light contribution from the [GIProbe]. This can be "
"used to avoid self-shadowing, but may introduce light leaking at higher "
"values. This and [member normal_bias] should be played around with to "
"minimize self-shadowing and light leaking.\n"
"[b]Note:[/b] [code]bias[/code] should usually be above 1.0 as that is the "
"size of the voxels."
msgstr ""

#: doc/classes/GIProbe.xml:38
msgid ""
"[i]Deprecated.[/i] This property has been deprecated due to known bugs and "
"no longer has any effect when enabled."
msgstr ""

#: doc/classes/GIProbe.xml:41
msgid "The [GIProbeData] resource that holds the data for this [GIProbe]."
msgstr "持有此[GIProbe]的数据的[GIProbeData]资源。"

#: doc/classes/GIProbe.xml:44
msgid ""
"The maximum brightness that the [GIProbe] will recognize. Brightness will be "
"scaled within this range."
msgstr ""

#: doc/classes/GIProbe.xml:47
msgid ""
"Energy multiplier. Makes the lighting contribution from the [GIProbe] "
"brighter."
msgstr ""

#: doc/classes/GIProbe.xml:50
msgid ""
"The size of the area covered by the [GIProbe]. If you make the extents "
"larger without increasing the subdivisions with [member subdiv], the size of "
"each cell will increase and result in lower detailed lighting."
msgstr ""
"[GIProbe]所覆盖区域的大小。如果你让外延变大,而没有用[member subdiv]增加细"
"分,每个单元的大小将增加,并导致低细节照明。"

#: doc/classes/GIProbe.xml:53
#, fuzzy
msgid ""
"If [code]true[/code], ignores the sky contribution when calculating lighting."
msgstr "如果 [code]true[/code],则包含光标的行会突出显示。"

#: doc/classes/GIProbe.xml:56
#, fuzzy
msgid ""
"Offsets the lookup into the [GIProbe] based on the object's normal "
"direction. Can be used to reduce some self-shadowing artifacts."
msgstr "法线偏移,用于抵消物体法线的阴影查找。可以用来修复自阴影的伪影。"

#: doc/classes/GIProbe.xml:59
msgid ""
"How much light propagates through the probe internally. A higher value "
"allows light to spread further."
msgstr ""

#: doc/classes/GIProbe.xml:62
msgid ""
"Number of times to subdivide the grid that the [GIProbe] operates on. A "
"higher number results in finer detail and thus higher visual quality, while "
"lower numbers result in better performance."
msgstr ""
"对 [GIProbe] 所操作的网格进行细分的次数。数字越大,细节就越精细,因而视觉质量"
"就越高,而数字越小,性能就越好。"

#: doc/classes/GIProbe.xml:67
msgid ""
"Use 64 subdivisions. This is the lowest quality setting, but the fastest. "
"Use it if you can, but especially use it on lower-end hardware."
msgstr ""
"使用64分区,这是最低的质量设置,但也是最快的。如果你能使用它,特别是在低端硬"
"件上使用它。"

#: doc/classes/GIProbe.xml:70
msgid "Use 128 subdivisions. This is the default quality setting."
msgstr "使用128个分区。这是默认的质量设置。"

#: doc/classes/GIProbe.xml:73
msgid "Use 256 subdivisions."
msgstr "使用256个分区。"

#: doc/classes/GIProbe.xml:76
msgid ""
"Use 512 subdivisions. This is the highest quality setting, but the slowest. "
"On lower-end hardware this could cause the GPU to stall."
msgstr ""
"使用512个分区。这是最高的质量设置,但也是最慢的。在低端硬件上,这可能会导致"
"GPU停顿。"

#: doc/classes/GIProbe.xml:79
msgid "Represents the size of the [enum Subdiv] enum."
msgstr "代表 [enum Subdiv] 举的大小。"

#: modules/gltf/doc_classes/GLTFLight.xml:13
msgid ""
"The [Color] of the light. Defaults to white. A black color causes the light "
"to have no effect."
msgstr ""

#: modules/gltf/doc_classes/GLTFLight.xml:16
msgid ""
"The inner angle of the cone in a spotlight. Must be less than or equal to "
"the outer cone angle.\n"
"Within this angle, the light is at full brightness. Between the inner and "
"outer cone angles, there is a transition from full brightness to zero "
"brightness. When creating a Godot [SpotLight], the ratio between the inner "
"and outer cone angles is used to calculate the attenuation of the light."
msgstr ""

#: modules/gltf/doc_classes/GLTFLight.xml:20
msgid ""
"The intensity of the light. This is expressed in candelas (lumens per "
"steradian) for point and spot lights, and lux (lumens per m²) for "
"directional lights. When creating a Godot light, this value is converted to "
"a unitless multiplier."
msgstr ""

#: modules/gltf/doc_classes/GLTFLight.xml:23
msgid ""
"The outer angle of the cone in a spotlight. Must be greater than or equal to "
"the inner angle.\n"
"At this angle, the light drops off to zero brightness. Between the inner and "
"outer cone angles, there is a transition from full brightness to zero "
"brightness. If this angle is a half turn, then the spotlight emits in all "
"directions. When creating a Godot [SpotLight], the outer cone angle is used "
"as the angle of the spotlight."
msgstr ""

#: modules/gltf/doc_classes/GLTFLight.xml:27
msgid ""
"The range of the light, beyond which the light has no effect. GLTF lights "
"with no range defined behave like physical lights (which have infinite "
"range). When creating a Godot light, the range is clamped to 4096."
msgstr ""

#: modules/gltf/doc_classes/GLTFLight.xml:30
msgid ""
"The type of the light. The values accepted by Godot are \"point\", \"spot\", "
"and \"directional\", which correspond to Godot's [OmniLight], [SpotLight], "
"and [DirectionalLight] respectively."
msgstr ""

#: modules/mono/doc_classes/GodotSharp.xml:4
msgid "Bridge between Godot and the Mono runtime (Mono-enabled builds only)."
msgstr "Godot和Mono运行时之间的桥梁(仅支持Mono的构建)。"

#: modules/mono/doc_classes/GodotSharp.xml:7
msgid ""
"This class is a bridge between Godot and the Mono runtime. It exposes "
"several low-level operations and is only available in Mono-enabled Godot "
"builds.\n"
"See also [CSharpScript]."
msgstr ""
"该类是连接Godot和Mono运行时的桥梁。它暴露了一些低级别的操作,只在支持Mono的"
"Godot构建中可用。\n"
"另见 [CSharpScript] 。"

#: modules/mono/doc_classes/GodotSharp.xml:17
msgid "Attaches the current thread to the Mono runtime."
msgstr "将当前线程连接到Mono运行时。"

#: modules/mono/doc_classes/GodotSharp.xml:24
msgid "Detaches the current thread from the Mono runtime."
msgstr "将当前线程从Mono运行时中分离出来。"

#: modules/mono/doc_classes/GodotSharp.xml:31
msgid ""
"Returns the current MonoDomain ID.\n"
"[b]Note:[/b] The Mono runtime must be initialized for this method to work "
"(use [method is_runtime_initialized] to check). If the Mono runtime isn't "
"initialized at the time this method is called, the engine will crash."
msgstr ""
"返回当前的MonoDomain ID。\n"
"[b]注意:[/b] Mono运行时必须被初始化,这个方法才能工作(使用 [method "
"is_runtime_initialized] 来检查)。如果在调用这个方法的时候,Mono运行时没有被"
"初始化,引擎将崩溃。"

#: modules/mono/doc_classes/GodotSharp.xml:39
msgid ""
"Returns the scripts MonoDomain's ID. This will be the same MonoDomain ID as "
"[method get_domain_id], unless the scripts domain isn't loaded.\n"
"[b]Note:[/b] The Mono runtime must be initialized for this method to work "
"(use [method is_runtime_initialized] to check). If the Mono runtime isn't "
"initialized at the time this method is called, the engine will crash."
msgstr ""
"返回scripts MonoDomain的ID。这将是与 [method get_domain_id] 相同的MonoDomain "
"ID,除非scripts domain没有被加载。\n"
"[b]注意:[/b] Mono运行时必须被初始化,这个方法才能工作(使用 [method "
"is_runtime_initialized] 来检查)。如果在调用这个方法的时候,Mono运行时没有被"
"初始化,引擎将会崩溃。"

#: modules/mono/doc_classes/GodotSharp.xml:49
msgid ""
"Returns [code]true[/code] if the domain is being finalized, [code]false[/"
"code] otherwise."
msgstr ""
"如果域正在被最终确定,返回 [code]true[/code] ,否则返回 [code]false[/code] 。"

#: modules/mono/doc_classes/GodotSharp.xml:56
msgid ""
"Returns [code]true[/code] if the Mono runtime is initialized, [code]false[/"
"code] otherwise."
msgstr ""
"如果Mono运行时被初始化,返回 [code]true[/code] ,否则返回 [code]false[/"
"code] 。"

#: modules/mono/doc_classes/GodotSharp.xml:63
msgid ""
"Returns [code]true[/code] if the Mono runtime is shutting down, [code]false[/"
"code] otherwise."
msgstr ""
"如果Mono运行时正在关闭,返回 [code]true[/code] ,否则返回 [code]false[/"
"code] 。"

#: modules/mono/doc_classes/GodotSharp.xml:70
msgid ""
"Returns [code]true[/code] if the scripts domain is loaded, [code]false[/"
"code] otherwise."
msgstr ""
"如果脚本域被加载,返回 [code]true[/code] ,否则返回 [code]false[/code] 。"

#: doc/classes/Gradient.xml:4
msgid ""
"A color interpolator resource which can be used to generate colors between "
"user-defined color points."
msgstr "一个颜色插值器资源,可用于在用户定义的颜色点之间生成颜色。"

#: doc/classes/Gradient.xml:7
msgid ""
"Given a set of colors, this resource will interpolate them in order. This "
"means that if you have color 1, color 2 and color 3, the ramp will "
"interpolate from color 1 to color 2 and from color 2 to color 3. The ramp "
"will initially have 2 colors (black and white), one (black) at ramp lower "
"offset 0 and the other (white) at the ramp higher offset 1."
msgstr ""
"给定一组颜色,这个资源将按顺序插值。这意味着,如果你有颜色1、颜色2和颜色3,斜"
"坡将从颜色1插到颜色2,从颜色2插到颜色3。斜坡最初会有两种颜色(黑色和白色),"
"一种(黑色)在斜坡低偏移量0处,另一种(白色)在斜坡高偏移量1处。"

#: doc/classes/Gradient.xml:17
msgid ""
"Adds the specified color to the end of the ramp, with the specified offset."
msgstr "将指定的颜色添加到坡道的末端,并有指定的偏移量。"

#: doc/classes/Gradient.xml:24
msgid "Returns the color of the ramp color at index [code]point[/code]."
msgstr "返回索引[code]point[/code]处斜坡颜色的颜色。"

#: doc/classes/Gradient.xml:31
msgid "Returns the offset of the ramp color at index [code]point[/code]."
msgstr "返回索引[code]point[/code]处的斜面颜色的偏移。"

#: doc/classes/Gradient.xml:37
msgid "Returns the number of colors in the ramp."
msgstr "返回斜面中的颜色数量。"

#: doc/classes/Gradient.xml:44
msgid "Returns the interpolated color specified by [code]offset[/code]."
msgstr "返回由偏移[code]offset[/code]指定的插值颜色。"

#: doc/classes/Gradient.xml:51
#, fuzzy
msgid "Removes the color at the index [code]point[/code]."
msgstr "移除索引[code]offset[/code]偏移处的颜色。"

#: doc/classes/Gradient.xml:59
msgid "Sets the color of the ramp color at index [code]point[/code]."
msgstr "设置索引[code]point[/code]处的坡道色的颜色。"

#: doc/classes/Gradient.xml:67
msgid "Sets the offset for the ramp color at index [code]point[/code]."
msgstr "为索引[code]point[/code]处的斜面颜色设置偏移。"

#: doc/classes/Gradient.xml:73
#, fuzzy
msgid "Gradient's colors returned as a [PoolColorArray]."
msgstr "渐变的颜色以[PackedColorArray]的形式返回。"

#: doc/classes/Gradient.xml:76
#, fuzzy
msgid "Gradient's offsets returned as a [PoolRealArray]."
msgstr "渐变的偏移量以[PackedFloat32Array]形式返回。"

#: doc/classes/GradientTexture.xml:4
msgid "Gradient-filled texture."
msgstr "渐变填充纹理。"

#: doc/classes/GradientTexture.xml:7
msgid ""
"GradientTexture uses a [Gradient] to fill the texture data. The gradient "
"will be filled from left to right using colors obtained from the gradient. "
"This means the texture does not necessarily represent an exact copy of the "
"gradient, but instead an interpolation of samples obtained from the gradient "
"at fixed steps (see [member width])."
msgstr ""
"渐变材质GradientTexture使用一个[Gradient数据。梯度将使用从梯度获得的颜色从左"
"到右填充。这意味着纹理不一定代表梯度的精确拷贝,而是以固定的步长从梯度中获得"
"的样本插值(见[member width])。"

#: doc/classes/GradientTexture.xml:15
msgid "The [Gradient] that will be used to fill the texture."
msgstr "将用于填充纹理的[Gradient]。"

#: doc/classes/GradientTexture.xml:18
msgid "The number of color samples that will be obtained from the [Gradient]."
msgstr "将从[Gradient]中获得的颜色样本的数量。"

#: doc/classes/GraphEdit.xml:4
msgid ""
"GraphEdit is an area capable of showing various GraphNodes. It manages "
"connection events between them."
msgstr ""
"图形编辑GraphEdit是一个能够显示各种图形节点GraphNodes的区域。它管理着它们之间"
"的连接事件。"

#: doc/classes/GraphEdit.xml:7
msgid ""
"GraphEdit manages the showing of GraphNodes it contains, as well as "
"connections and disconnections between them. Signals are sent for each of "
"these two events. Disconnection between GraphNode slots is disabled by "
"default.\n"
"It is greatly advised to enable low-processor usage mode (see [member OS."
"low_processor_usage_mode]) when using GraphEdits."
msgstr ""
"图形编辑GraphEdit管理它所包含的图形节点GraphNodes的显示,以及它们之间的连接和"
"断开。这两个事件中的每一个都会发送信号。默认情况下,图形节点GraphNode插槽之间"
"的断开连接是禁用的。\n"
"在使用图形编辑GraphEdits时,我们强烈建议启用低处理器使用模式(见[member OS."
"low_processor_usage_mode])。"

#: doc/classes/GraphEdit.xml:18
msgid ""
"Makes possible the connection between two different slot types. The type is "
"defined with the [method GraphNode.set_slot] method."
msgstr ""
"使得两个不同插槽型之间的连接成为可能。该类型是通过[method GraphNode.set_slot]"
"方法定义的。"

#: doc/classes/GraphEdit.xml:25
msgid ""
"Makes possible to disconnect nodes when dragging from the slot at the left "
"if it has the specified type."
msgstr "使得从左边的槽中拖动节点时,如果它有指定的类型,可以断开节点的连接。"

#: doc/classes/GraphEdit.xml:32
msgid ""
"Makes possible to disconnect nodes when dragging from the slot at the right "
"if it has the specified type."
msgstr "使得从右边的槽中拖动节点时,如果它有指定的类型,可以断开节点的连接。"

#: doc/classes/GraphEdit.xml:38
msgid "Removes all connections between nodes."
msgstr "移除节点之间的所有连接。"

#: doc/classes/GraphEdit.xml:48
msgid ""
"Create a connection between the [code]from_port[/code] slot of the "
"[code]from[/code] GraphNode and the [code]to_port[/code] slot of the "
"[code]to[/code] GraphNode. If the connection already exists, no connection "
"is created."
msgstr ""
"在[code]from[/code]图形节点GraphNode的[code]from_port[/code]槽和[code]to[/"
"code]图形节点GraphNode的[code]to_port[/code]槽之间创建一个连接。如果该连接已"
"经存在,则不创建连接。"

#: doc/classes/GraphEdit.xml:58
msgid ""
"Removes the connection between the [code]from_port[/code] slot of the "
"[code]from[/code] GraphNode and the [code]to_port[/code] slot of the "
"[code]to[/code] GraphNode. If the connection does not exist, no connection "
"is removed."
msgstr ""
"删除[code] from [/code] 图形节点GraphNode1的[code] from_port [/code]插槽与"
"[code] to [/code] 图形节点GraphNode2的[code] to_port [/code]插槽之间的连接。"
"如果连接不存在,则不会删除任何连接。"

#: doc/classes/GraphEdit.xml:64
msgid ""
"Returns an Array containing the list of connections. A connection consists "
"in a structure of the form [code]{ from_port: 0, from: \"GraphNode name 0\", "
"to_port: 1, to: \"GraphNode name 1\" }[/code]."
msgstr ""
"返回一个包含连接列表的数组。一个连接包括一个结构,其形式为[code]"
"{ from_port:0, from: \"GraphNode name 0\", to_port:1, to:\"GraphNode name "
"1\" }[/code]."

#: doc/classes/GraphEdit.xml:70
#, fuzzy
msgid ""
"Gets the [HBoxContainer] that contains the zooming and grid snap controls in "
"the top left of the graph.\n"
"Warning: The intended usage of this function is to allow you to reposition "
"or add your own custom controls to the container. This is an internal "
"control and as such should not be freed. If you wish to hide this or any of "
"its children, use their [member CanvasItem.visible] property instead."
msgstr ""
"获取包含图形左上方的缩放和网格快照控制的[HBoxContainer]。\n"
"警告。这个函数的预期用途是允许你重新定位或添加你自己的自定义控件到容器中。这"
"是一个内部控件,因此不应该被释放。如果你想隐藏它或它的任何子控件,请使用它们"
"的 [member CanvasItem.visible] 属性。"

#: doc/classes/GraphEdit.xml:81
msgid ""
"Returns [code]true[/code] if the [code]from_port[/code] slot of the "
"[code]from[/code] GraphNode is connected to the [code]to_port[/code] slot of "
"the [code]to[/code] GraphNode."
msgstr ""
"如果[code]from[/code] 图形节点GraphNode1的[code]from_port[/code]槽与"
"[code]to[/code]图形节点GraphNode2的[code]to_port[/code]槽相连,则返回"
"[code]true[/code]。"

#: doc/classes/GraphEdit.xml:89
msgid "Returns whether it's possible to connect slots of the specified types."
msgstr "返回是否有可能连接指定类型的插槽。"

#: doc/classes/GraphEdit.xml:97
msgid ""
"Makes it not possible to connect between two different slot types. The type "
"is defined with the [method GraphNode.set_slot] method."
msgstr ""
"使得两个不同槽型之间的连接成为不可能。该类型是通过[method GraphNode.set_slot]"
"方法定义的。"

#: doc/classes/GraphEdit.xml:104
msgid ""
"Removes the possibility to disconnect nodes when dragging from the slot at "
"the left if it has the specified type."
msgstr "当节点具有指定的类型,可以从左边的槽中拖动时删除断开节点的功能。"

#: doc/classes/GraphEdit.xml:111
msgid ""
"Removes the possibility to disconnect nodes when dragging from the slot at "
"the right if it has the specified type."
msgstr "当节点具有指定的类型,可以从左边的槽中拖动时删除断开节点的功能。"

#: doc/classes/GraphEdit.xml:122
msgid ""
"Sets the coloration of the connection between [code]from[/code]'s "
"[code]from_port[/code] and [code]to[/code]'s [code]to_port[/code] with the "
"color provided in the [code]activity[/code] theme property."
msgstr ""
"将[code]from[/code]的[code]from_port[/code]和[code]to[/code]的[code]to_port[/"
"code]之间的连接的颜色纹理设置为当前正在使用[code]activity[/code]的主题中的颜"
"色。"

#: doc/classes/GraphEdit.xml:129
msgid "Sets the specified [code]node[/code] as the one selected."
msgstr "选中一个特定的节点[code]node[/code]."

#: doc/classes/GraphEdit.xml:136
#, fuzzy
msgid "If [code]true[/code], the minimap is visible."
msgstr "如果[code]true[/code],按钮的形状是可见的。"

#: doc/classes/GraphEdit.xml:139
#, fuzzy
msgid "The opacity of the minimap rectangle."
msgstr "选择的矩形的轮廓颜色。"

#: doc/classes/GraphEdit.xml:142
msgid ""
"The size of the minimap rectangle. The map itself is based on the size of "
"the grid area and is scaled to fit this rectangle."
msgstr ""

#: doc/classes/GraphEdit.xml:146
msgid ""
"If [code]true[/code], enables disconnection of existing connections in the "
"GraphEdit by dragging the right end."
msgstr ""
"如果[code]true[/code],通过拖动右端,可以断开图形编辑GraphEdit中现有的连接。"

#: doc/classes/GraphEdit.xml:149
msgid "The scroll offset."
msgstr "滚动偏移量。"

#: doc/classes/GraphEdit.xml:152
msgid ""
"If [code]true[/code], makes a label with the current zoom level visible. The "
"zoom value is displayed in percents."
msgstr ""

#: doc/classes/GraphEdit.xml:155
msgid "The snapping distance in pixels."
msgstr "吸附距离(以像素为单位)。"

#: doc/classes/GraphEdit.xml:158
msgid "If [code]true[/code], enables snapping."
msgstr "如果为[code]true[/code],启用自动吸附。"

#: doc/classes/GraphEdit.xml:161
msgid "The current zoom value."
msgstr "当前缩放值。"

#: doc/classes/GraphEdit.xml:164
#, fuzzy
msgid "The upper zoom limit."
msgstr "当前缩放值。"

#: doc/classes/GraphEdit.xml:167
#, fuzzy
msgid "The lower zoom limit."
msgstr "触发的信号。"

#: doc/classes/GraphEdit.xml:170
msgid "The step of each zoom level."
msgstr ""

#: doc/classes/GraphEdit.xml:176
msgid "Emitted at the beginning of a GraphNode movement."
msgstr "在图形节点GraphNode移动开始时发出。"

#: doc/classes/GraphEdit.xml:181
msgid "Emitted at the end of a GraphNode movement."
msgstr "在图形节点GraphNode移动结束时发出。"

#: doc/classes/GraphEdit.xml:189
msgid ""
"Emitted when user dragging connection from input port into empty space of "
"the graph."
msgstr "当用户连接输入端口到图形的空位时发出。"

#: doc/classes/GraphEdit.xml:198
msgid ""
"Emitted to the GraphEdit when the connection between the [code]from_slot[/"
"code] slot of the [code]from[/code] GraphNode and the [code]to_slot[/code] "
"slot of the [code]to[/code] GraphNode is attempted to be created."
msgstr ""
"当试图创建[code]来自from [/code]图形节点GraphNode1的[code]from_slot[/code]槽"
"和[code] to [/code]图形节点GraphNode2的[code]to_slot[/code]槽之间的连接时,会"
"向图形编辑GraphEdit发出。"

#: doc/classes/GraphEdit.xml:206
msgid ""
"Emitted when user dragging connection from output port into empty space of "
"the graph."
msgstr "当用户将输出端口连接到图形的空位时发出。"

#: doc/classes/GraphEdit.xml:211
#, fuzzy
msgid "Emitted when the user presses [code]Ctrl + C[/code]."
msgstr "当用户按下[kbd]Ctrl + C[/kbd]时发出。"

#: doc/classes/GraphEdit.xml:216
msgid "Emitted when a GraphNode is attempted to be removed from the GraphEdit."
msgstr "当试图从图形编辑GraphEdit中删除一个图形节点GraphNode时发出。"

#: doc/classes/GraphEdit.xml:225
msgid ""
"Emitted to the GraphEdit when the connection between [code]from_slot[/code] "
"slot of [code]from[/code] GraphNode and [code]to_slot[/code] slot of "
"[code]to[/code] GraphNode is attempted to be removed."
msgstr ""
"当试图移除 [code]from[/code] 图形节点GraphNode1的 [code]from_slot[/code]槽和"
"[code]to[/code] 图形节点GraphNode 的[code]to_slot[/code] 槽之间的连接时,会发"
"送到图形编辑GraphEdit。"

#: doc/classes/GraphEdit.xml:230
msgid ""
"Emitted when a GraphNode is attempted to be duplicated in the GraphEdit."
msgstr "当图形节点GraphNode试图在图形编辑GraphEdit中被复制时发出的。"

#: doc/classes/GraphEdit.xml:236
msgid "Emitted when a GraphNode is selected."
msgstr "当图形节点GraphNode被选择时发出。"

#: doc/classes/GraphEdit.xml:246
#, fuzzy
msgid "Emitted when the user presses [code]Ctrl + V[/code]."
msgstr "当用户按下[kbd]Ctrl + V[/kbd]时发出。"

#: doc/classes/GraphEdit.xml:252
msgid ""
"Emitted when a popup is requested. Happens on right-clicking in the "
"GraphEdit. [code]position[/code] is the position of the mouse pointer when "
"the signal is sent."
msgstr ""
"当请求弹出窗口时发出。在图形编辑GraphEdit中右键单击时发生。坐标"
"[code]position[/code] 是发送信号时鼠标指针的位置。"

#: doc/classes/GraphEdit.xml:258
msgid ""
"Emitted when the scroll offset is changed by the user. It will not be "
"emitted when changed in code."
msgstr "当用户改变滚动偏移量时发出。在代码中改变滚动偏移量时,它不会被触发。"

#: doc/classes/GraphEdit.xml:272
msgid "The background drawn under the grid."
msgstr "绘制在网格下方的背景。"

#: doc/classes/GraphEdit.xml:275
msgid "Color of major grid lines."
msgstr "主网格线条颜色。"

#: doc/classes/GraphEdit.xml:278
msgid "Color of minor grid lines."
msgstr "次要网格线的颜色。"

#: doc/classes/GraphEdit.xml:283
msgid "The icon for the zoom out button."
msgstr "缩小按钮的图标。"

#: doc/classes/GraphEdit.xml:286
msgid "The icon for the zoom in button."
msgstr "放大按钮的图标。"

#: doc/classes/GraphEdit.xml:289
msgid ""
"The horizontal range within which a port can be grabbed (on both sides)."
msgstr "一个端口可以被抓取的水平范围(两侧)。"

#: doc/classes/GraphEdit.xml:292
msgid "The vertical range within which a port can be grabbed (on both sides)."
msgstr "一个端口可以被抓取的垂直范围(两侧)。"

#: doc/classes/GraphEdit.xml:295
msgid "The icon for the zoom reset button."
msgstr "缩放重置按钮的图标。"

#: doc/classes/GraphEdit.xml:298
msgid "The fill color of the selection rectangle."
msgstr "选定的矩形的填充颜色。"

#: doc/classes/GraphEdit.xml:301
msgid "The outline color of the selection rectangle."
msgstr "选择的矩形的轮廓颜色。"

#: doc/classes/GraphEdit.xml:304
msgid "The icon for the snap toggle button."
msgstr "吸附动按钮的图标。"

#: doc/classes/GraphNode.xml:4
msgid ""
"A GraphNode is a container with potentially several input and output slots "
"allowing connections between GraphNodes. Slots can have different, "
"incompatible types."
msgstr ""
"图形节点GraphNode是一个允许多个图形节点GraphNode之间连接的输入和输出槽容器。"
"槽位可以有不同的、不兼容的类型。"

#: doc/classes/GraphNode.xml:7
#, fuzzy
msgid ""
"A GraphNode is a container. Each GraphNode can have several input and output "
"slots, sometimes referred to as ports, allowing connections between "
"GraphNodes. To add a slot to GraphNode, add any [Control]-derived child node "
"to it.\n"
"After adding at least one child to GraphNode new sections will be "
"automatically created in the Inspector called 'Slot'. When 'Slot' is "
"expanded you will see list with index number for each slot. You can click on "
"each of them to expand further.\n"
"In the Inspector you can enable (show) or disable (hide) slots. By default, "
"all slots are disabled so you may not see any slots on your GraphNode "
"initially. You can assign a type to each slot. Only slots of the same type "
"will be able to connect to each other. You can also assign colors to slots. "
"A tuple of input and output slots is defined for each GUI element included "
"in the GraphNode. Input connections are on the left and output connections "
"are on the right side of GraphNode. Only enabled slots are counted as "
"connections."
msgstr ""
"图形节点GraphNode是一个容器。每个图形节点GraphNode可以有几个输入和输出槽,有"
"时被称为端口,允许图形节点GraphNode之间的连接。要在图形节点GraphNode上添加一"
"个槽,需要向它添加任何控件派生的子节点。\n"
"在为图形节点GraphNode添加至少一个子节点后,将在检查器中自动创建名为 \"插槽 "
"\"的新部分。当 \"插槽\"被展开时,你会看到带有每个槽的索引号的列表。你可以点击"
"它们来进一步展开。\n"
"在检查器中,你可以启用(显示)或禁用(隐藏)插槽。默认情况下,所有槽都是禁用"
"的,所以你最初可能看不到图形节点GraphNode上的任何槽。你可以给每个插槽指定一个"
"类型。只有相同类型的插槽才能够相互连接。你还可以给插槽指定颜色。为图形节点"
"GraphNode中的每个GUI元素定义了一个输入和输出槽的元组。输入连接在图形节点"
"GraphNode的左边,输出连接在右边。只有启用的插槽才被算作连接。"

#: doc/classes/GraphNode.xml:17
msgid "Disables all input and output slots of the GraphNode."
msgstr "禁用GraphNode的所有输入和输出槽。"

#: doc/classes/GraphNode.xml:24
msgid "Disables input and output slot whose index is [code]idx[/code]."
msgstr "禁用索引为[code]idx[/code]的输入和输出槽。"

#: doc/classes/GraphNode.xml:31
#, fuzzy
msgid "Returns the [Color] of the input connection [code]idx[/code]."
msgstr "返回输入连接[code]idx[/code]的颜色。"

#: doc/classes/GraphNode.xml:37
msgid ""
"Returns the number of enabled input slots (connections) to the GraphNode."
msgstr "返回图形节点GraphNode的启用输入槽(连接)的数量。"

#: doc/classes/GraphNode.xml:44
msgid "Returns the position of the input connection [code]idx[/code]."
msgstr "返回输入连接[code]idx[/code]的位置。"

#: doc/classes/GraphNode.xml:51
msgid "Returns the type of the input connection [code]idx[/code]."
msgstr "返回输入连接的类型[code]idx[/code]。"

#: doc/classes/GraphNode.xml:58
#, fuzzy
msgid "Returns the [Color] of the output connection [code]idx[/code]."
msgstr "返回输出连接[code]idx[/code]的颜色。"

#: doc/classes/GraphNode.xml:64
msgid ""
"Returns the number of enabled output slots (connections) of the GraphNode."
msgstr "返回图形节点GraphNode的启用输出槽(连接)的数量。"

#: doc/classes/GraphNode.xml:71
msgid "Returns the position of the output connection [code]idx[/code]."
msgstr "返回输出连接[code]idx[/code]的位置。"

#: doc/classes/GraphNode.xml:78
msgid "Returns the type of the output connection [code]idx[/code]."
msgstr "返回输出连接的类型[code]idx[/code]。"

#: doc/classes/GraphNode.xml:85
#, fuzzy
msgid "Returns the left (input) [Color] of the slot [code]idx[/code]."
msgstr "返回[code]idx[/code]处节点的类型。"

#: doc/classes/GraphNode.xml:92
#, fuzzy
msgid "Returns the right (output) [Color] of the slot [code]idx[/code]."
msgstr "返回[code]idx[/code]处节点的类型。"

#: doc/classes/GraphNode.xml:99
#, fuzzy
msgid "Returns the left (input) type of the slot [code]idx[/code]."
msgstr "返回[code]idx[/code]处节点的类型。"

#: doc/classes/GraphNode.xml:106
#, fuzzy
msgid "Returns the right (output) type of the slot [code]idx[/code]."
msgstr "返回[code]idx[/code]处节点的类型。"

#: doc/classes/GraphNode.xml:113
#, fuzzy
msgid ""
"Returns [code]true[/code] if left (input) side of the slot [code]idx[/code] "
"is enabled."
msgstr "如果启用了索引[code]idx[/code]处的轨迹,则返回[code]true[/code]。"

#: doc/classes/GraphNode.xml:120
#, fuzzy
msgid ""
"Returns [code]true[/code] if right (output) side of the slot [code]idx[/"
"code] is enabled."
msgstr "如果启用了索引[code]idx[/code]处的轨迹,则返回[code]true[/code]。"

#: doc/classes/GraphNode.xml:135
#, fuzzy
msgid ""
"Sets properties of the slot with ID [code]idx[/code].\n"
"If [code]enable_left[/code]/[code]right[/code], a port will appear and the "
"slot will be able to be connected from this side.\n"
"[code]type_left[/code]/[code]right[/code] is an arbitrary type of the port. "
"Only ports with the same type values can be connected.\n"
"[code]color_left[/code]/[code]right[/code] is the tint of the port's icon on "
"this side.\n"
"[code]custom_left[/code]/[code]right[/code] is a custom texture for this "
"side's port.\n"
"[b]Note:[/b] This method only sets properties of the slot. To create the "
"slot, add a [Control]-derived child to the GraphNode.\n"
"Individual properties can be set using one of the [code]set_slot_*[/code] "
"methods. You must enable at least one side of the slot to do so."
msgstr ""
"设置ID为[code]idx[/code]的插槽的属性。\n"
"如果[code]enable_left[/code]/[code]right[/code],就会出现一个端口,插槽就可以"
"从这一侧连接。\n"
"[code]type_left[/code]/[code]right[/code]是端口的一个任意类型。只有具有相同类"
"型值的端口才能被连接。\n"
"[code]color_left[/code]/[code]right[/code] 是端口在这一侧的图标的色调。\n"
"[code]custom_left[/code]/[code]right[/code]是这一侧的端口的自定义纹理。\n"
"[b]注意:[/b] 这个方法只设置槽的属性。要创建槽,需要在GraphNode上添加一个控件"
"派生的子节点。"

#: doc/classes/GraphNode.xml:149
#, fuzzy
msgid ""
"Sets the [Color] of the left (input) side of the slot [code]idx[/code] to "
"[code]color_left[/code]."
msgstr "将索引为[code]idx[/code]的片段的偏移量设置为[code]ofs[/code]。"

#: doc/classes/GraphNode.xml:157
#, fuzzy
msgid ""
"Sets the [Color] of the right (output) side of the slot [code]idx[/code] to "
"[code]color_right[/code]."
msgstr "将索引为[code]idx[/code]的片段的偏移量设置为[code]ofs[/code]。"

#: doc/classes/GraphNode.xml:165
#, fuzzy
msgid ""
"Toggles the left (input) side of the slot [code]idx[/code]. If "
"[code]enable_left[/code] is [code]true[/code], a port will appear on the "
"left side and the slot will be able to be connected from this side."
msgstr ""
"返回[code]idx[/code]处的节点的路径。\n"
"如果[code]for_parent[/code]是[code]true[/code],则返回[code]idx[/code]节点的"
"父节点的路径。"

#: doc/classes/GraphNode.xml:173
msgid ""
"Toggles the right (output) side of the slot [code]idx[/code]. If "
"[code]enable_right[/code] is [code]true[/code], a port will appear on the "
"right side and the slot will be able to be connected from this side."
msgstr ""

#: doc/classes/GraphNode.xml:181
#, fuzzy
msgid ""
"Sets the left (input) type of the slot [code]idx[/code] to [code]type_left[/"
"code]."
msgstr "将点的左切线角度设置为 [code]index [/code] 至 [code]tangent [/code]。"

#: doc/classes/GraphNode.xml:189
#, fuzzy
msgid ""
"Sets the right (output) type of the slot [code]idx[/code] to "
"[code]type_right[/code]."
msgstr "设置[code]index[/code]至[code]tangent[/code]处的点的右切线角。"

#: doc/classes/GraphNode.xml:195
msgid "If [code]true[/code], the GraphNode is a comment node."
msgstr "如果启用[code]true[/code],则GraphNode就是一个注释节点。"

#: doc/classes/GraphNode.xml:198
msgid ""
"The offset of the GraphNode, relative to the scroll offset of the "
"[GraphEdit].\n"
"[b]Note:[/b] You cannot use position directly, as [GraphEdit] is a "
"[Container]."
msgstr ""
"图形节点GraphNode的偏移量,与[GraphEdit]的滚动偏移量相关。\n"
"[b]注意:[/b]由于[GraphEdit]是[Container容器],因此不能直接使用位置。"

#: doc/classes/GraphNode.xml:202
msgid "Sets the overlay shown above the GraphNode. See [enum Overlay]."
msgstr "设置在图形节点GraphNode上方显示的叠加层。参见[enum Overlay]。"

#: doc/classes/GraphNode.xml:205
msgid ""
"If [code]true[/code], the user can resize the GraphNode.\n"
"[b]Note:[/b] Dragging the handle will only emit the [signal resize_request] "
"signal, the GraphNode needs to be resized manually."
msgstr ""
"如果[code]true[/code],用户可以调整图形节点GraphNode的大小。\n"
"[b]注意:[/b]拖动手柄只会发出[resize_request]信号,图形节点GraphNode需要手动"
"调整大小。"

#: doc/classes/GraphNode.xml:209
msgid "If [code]true[/code], the GraphNode is selected."
msgstr "如果[code]true[/code],图形节点GraphNode被选中。"

#: doc/classes/GraphNode.xml:212
msgid ""
"If [code]true[/code], the close button will be visible.\n"
"[b]Note:[/b] Pressing it will only emit the [signal close_request] signal, "
"the GraphNode needs to be removed manually."
msgstr ""
"如果[code]true[/code],则关闭按钮将可见。\n"
"[b]注意:[/b]按下它只会发出[signal close_request]信号,需要手动删除图形节点"
"GraphNode。"

#: doc/classes/GraphNode.xml:216
msgid "The text displayed in the GraphNode's title bar."
msgstr "显示在图形节点GraphNode标题栏中的文本。"

#: doc/classes/GraphNode.xml:222
msgid ""
"Emitted when the GraphNode is requested to be closed. Happens on clicking "
"the close button (see [member show_close])."
msgstr ""
"当图形节点GraphNode被请求关闭时发出。在点击关闭按钮时发生(见[member "
"show_close])。"

#: doc/classes/GraphNode.xml:229
msgid "Emitted when the GraphNode is dragged."
msgstr "当图形节点GraphNode被拖动时发出。"

#: doc/classes/GraphNode.xml:234
msgid "Emitted when the GraphNode is moved."
msgstr "当图形节点GraphNode被移动时触发。"

#: doc/classes/GraphNode.xml:239
msgid ""
"Emitted when the GraphNode is requested to be displayed over other ones. "
"Happens on focusing (clicking into) the GraphNode."
msgstr ""
"当图形节点GraphNode被要求显示在其他节点之上时触发。在GraphNode获得焦点时触"
"发,即鼠标点击进入。"

#: doc/classes/GraphNode.xml:245
msgid ""
"Emitted when the GraphNode is requested to be resized. Happens on dragging "
"the resizer handle (see [member resizable])."
msgstr ""
"当图形节点GraphNode被要求调整大小时发出。在拖动调整器手柄时发生(见[member "
"resizable])。"

#: doc/classes/GraphNode.xml:251
#, fuzzy
msgid "Emitted when any GraphNode's slot is updated."
msgstr "当图形节点GraphNode被选择时发出。"

#: doc/classes/GraphNode.xml:257
msgid "No overlay is shown."
msgstr "没有显示覆盖层。"

#: doc/classes/GraphNode.xml:260
msgid "Show overlay set in the [code]breakpoint[/code] theme property."
msgstr "显示在[code]breakpoint[/code]主题属性中设置的覆盖层。"

#: doc/classes/GraphNode.xml:263
msgid "Show overlay set in the [code]position[/code] theme property."
msgstr "显示在主题坐标[code] position [/code]属性中设置的叠加层。"

#: doc/classes/GraphNode.xml:268
msgid ""
"The background used when [member overlay] is set to [constant "
"OVERLAY_BREAKPOINT]."
msgstr "当[member overlay]被设置为[constant OVERLAY_BREAKPOINT]时使用的背景。"

#: doc/classes/GraphNode.xml:271
msgid ""
"The icon for the close button, visible when [member show_close] is enabled."
msgstr "关闭按钮的图标会在启用[member show_close]时可见。"

#: doc/classes/GraphNode.xml:274
msgid "The color modulation applied to the close button icon."
msgstr "应用于关闭按钮图标的颜色调制(modulation)。"

#: doc/classes/GraphNode.xml:277 doc/classes/WindowDialog.xml:40
msgid "The vertical offset of the close button."
msgstr "关闭按钮的垂直偏移量。"

#: doc/classes/GraphNode.xml:280
msgid "The [StyleBox] used when [member comment] is enabled."
msgstr "当启用[member comment]时使用的[StyleBox]。"

#: doc/classes/GraphNode.xml:283
msgid ""
"The [StyleBox] used when [member comment] is enabled and the [GraphNode] is "
"focused."
msgstr "当[member comment]被启用,且[GraphNode]获得焦点时使用的[StyleBox]。"

#: doc/classes/GraphNode.xml:290
msgid "The default background for [GraphNode]."
msgstr "[GraphNode]的默认背景。"

#: doc/classes/GraphNode.xml:293
msgid "The icon used for representing ports."
msgstr "该图标用于表示端口。"

#: doc/classes/GraphNode.xml:296
msgid "Horizontal offset for the ports."
msgstr "端口的水平偏移量。"

#: doc/classes/GraphNode.xml:299
msgid ""
"The background used when [member overlay] is set to [constant "
"OVERLAY_POSITION]."
msgstr "当[member overlay]设置为[constant OVERLAY_POSITION]时使用的背景。"

#: doc/classes/GraphNode.xml:302
msgid "The icon used for resizer, visible when [member resizable] is enabled."
msgstr "用于调整大小的图标,在 [member resizable]被启用时可见。"

#: doc/classes/GraphNode.xml:305
msgid "The color modulation applied to the resizer icon."
msgstr "应用于调整尺寸大小图标的颜色调制。"

#: doc/classes/GraphNode.xml:308
msgid "The background used when the [GraphNode] is selected."
msgstr "[GraphNode]被选中时使用的背景。"

#: doc/classes/GraphNode.xml:311
msgid "The vertical distance between ports."
msgstr "端口之间的垂直距离。"

#: doc/classes/GraphNode.xml:314
msgid "Color of the title text."
msgstr "标题文字的颜色。"

#: doc/classes/GraphNode.xml:317
msgid "Font used for the title text."
msgstr "对标题文本应用的字体。"

#: doc/classes/GraphNode.xml:320
msgid "Vertical offset of the title text."
msgstr "标题文本的垂直偏移量。"

#: doc/classes/GridContainer.xml:4
#, fuzzy
msgid ""
"Grid container used to arrange Control-derived children in a grid like "
"layout."
msgstr "网格容器(Grid container)用于在类似网格的布局中安排元素。"

#: doc/classes/GridContainer.xml:7
#, fuzzy
msgid ""
"GridContainer will arrange its Control-derived children in a grid like "
"structure, the grid columns are specified using the [member columns] "
"property and the number of rows will be equal to the number of children in "
"the container divided by the number of columns. For example, if the "
"container has 5 children, and 2 columns, there will be 3 rows in the "
"container.\n"
"Notice that grid layout will preserve the columns and rows for every size of "
"the container, and that empty columns will be expanded automatically.\n"
"[b]Note:[/b] GridContainer only works with child nodes inheriting from "
"Control. It won't rearrange child nodes inheriting from Node2D."
msgstr ""
"网格容器将其子项排列在类似网格的结构中,网格列使用 [member columns] 属性指"
"定,行数等于容器中的子项数除以列数。例如,如果容器有 5 个子项和 2 列,则容器"
"中有 3 行。\n"
"请注意,网格布局将为容器的每个大小保留列和行,并且空列将自动展开。"

#: doc/classes/GridContainer.xml:18
#, fuzzy
msgid ""
"The number of columns in the [GridContainer]. If modified, [GridContainer] "
"reorders its Control-derived children to accommodate the new layout."
msgstr ""
"在[GridContainer]中的列的数量。如果修改,[GridContainer]会重新排列它的子节"
"点,以适应新的布局。"

#: doc/classes/GridContainer.xml:26
msgid "The horizontal separation of children nodes."
msgstr "子节点的水平分隔量。"

#: doc/classes/GridContainer.xml:29
msgid "The vertical separation of children nodes."
msgstr "子节点的垂直分隔量。"

#: modules/gridmap/doc_classes/GridMap.xml:4
msgid "Node for 3D tile-based maps."
msgstr "基于3D贴图格地图(3D tile-based maps)的节点。"

#: modules/gridmap/doc_classes/GridMap.xml:7
#, fuzzy
msgid ""
"GridMap lets you place meshes on a grid interactively. It works both from "
"the editor and from scripts, which can help you create in-game level "
"editors.\n"
"GridMaps use a [MeshLibrary] which contains a list of tiles. Each tile is a "
"mesh with materials plus optional collision and navigation shapes.\n"
"A GridMap contains a collection of cells. Each grid cell refers to a tile in "
"the [MeshLibrary]. All cells in the map have the same dimensions.\n"
"Internally, a GridMap is split into a sparse collection of octants for "
"efficient rendering and physics processing. Every octant has the same "
"dimensions and can contain several cells.\n"
"[b]Note:[/b] GridMap doesn't extend [VisualInstance] and therefore can't be "
"hidden or cull masked based on [member VisualInstance.layers]. If you make a "
"light not affect the first layer, the whole GridMap won't be lit by the "
"light in question."
msgstr ""
"GridMap可以让你交互式地将网格放在一个网格上。它既可以从编辑器中工作,也可以从"
"脚本中工作,这可以帮助你在游戏中创建关卡编辑器。\n"
"GridMaps使用一个[MeshLibrary],其中包含了一个贴图格的列表。每一个瓦片都是一个"
"带有材质的网格,加上可选的碰撞和导航形状。\n"
"一个GridMap包含一个单元格的集合。每个网格单元指的是[MeshLibrary]中的一个贴图"
"格。地图中的所有单元都有相同的尺寸。\n"
"在内部,一个GridMap被分割成一个稀疏的八边形集合,以便有效地进行渲染和物理处"
"理。每个八角形都有相同的尺寸,可以包含多个单元。"

#: modules/gridmap/doc_classes/GridMap.xml:14
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/3d/using_gridmaps.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/using_gridmaps.html"

#: modules/gridmap/doc_classes/GridMap.xml:22
msgid "Clear all cells."
msgstr "清除所有单元格。"

#: modules/gridmap/doc_classes/GridMap.xml:39
msgid ""
"Returns an array of [ArrayMesh]es and [Transform] references of all bake "
"meshes that exist within the current GridMap."
msgstr ""

#: modules/gridmap/doc_classes/GridMap.xml:48
#, fuzzy
msgid ""
"The [MeshLibrary] item index located at the grid-based X, Y and Z "
"coordinates. If the cell is empty, [constant INVALID_CELL_ITEM] will be "
"returned."
msgstr ""
"位于给定网格坐标的[MeshLibrary]项的索引。如果该单元格是空的,将返回[constant "
"INVALID_CELL_ITEM]。"

#: modules/gridmap/doc_classes/GridMap.xml:57
#, fuzzy
msgid ""
"The orientation of the cell at the grid-based X, Y and Z coordinates. -1 is "
"returned if the cell is empty."
msgstr "给定网格坐标处的单元格方向。如果单元格为空,则返回 [code]-1[/code]。"

#: modules/gridmap/doc_classes/GridMap.xml:64
msgid "Returns an individual bit on the [member collision_layer]."
msgstr "返回[member collision_layer]上的一个单独像素点。"

#: modules/gridmap/doc_classes/GridMap.xml:71
msgid "Returns an individual bit on the [member collision_mask]."
msgstr "返回[member collision_mask]上的一个独立像素。"

#: modules/gridmap/doc_classes/GridMap.xml:77
msgid ""
"Returns an array of [Transform] and [Mesh] references corresponding to the "
"non-empty cells in the grid. The transforms are specified in world space."
msgstr ""
"返回对应于网格中非空单元格的 [Transform] 和 [Mesh] 引用数组。变换在世界空间中"
"指定。"

#: modules/gridmap/doc_classes/GridMap.xml:83
msgid ""
"Returns an array of [Vector3] with the non-empty cell coordinates in the "
"grid map."
msgstr "返回一个包含网格中非空单元格坐标的 [Vector3] 数组。"

#: modules/gridmap/doc_classes/GridMap.xml:99
msgid ""
"Returns the position of a grid cell in the GridMap's local coordinate space."
msgstr "返回一个网格单元在GridMap本地坐标空间中的位置。"

#: modules/gridmap/doc_classes/GridMap.xml:116
#, fuzzy
msgid ""
"Sets the mesh index for the cell referenced by its grid-based X, Y and Z "
"coordinates.\n"
"A negative item index such as [constant INVALID_CELL_ITEM] will clear the "
"cell.\n"
"Optionally, the item's orientation can be passed. For valid orientation "
"values, see [method Basis.get_orthogonal_index]."
msgstr ""
"设置以网格坐标为参考的单元格的网格索引。\n"
"一个负的项目索引,例如[constant INVALID_CELL_ITEM]会清除该单元。\n"
"或者,可以传递项目的方向。关于有效的方向值,请参阅[method Basis."
"get_orthogonal_index]。"

#: modules/gridmap/doc_classes/GridMap.xml:135
msgid "Sets an individual bit on the [member collision_layer]."
msgstr "在[member collision_layer]上设置独立像素。"

#: modules/gridmap/doc_classes/GridMap.xml:143
msgid "Sets an individual bit on the [member collision_mask]."
msgstr "在[member collision_mask]上设置独立像素。"

#: modules/gridmap/doc_classes/GridMap.xml:150
msgid ""
"Returns the coordinates of the grid cell containing the given point.\n"
"[code]pos[/code] should be in the GridMap's local coordinate space."
msgstr ""
"返回包含给定点的网格单元的坐标。\n"
"[code]pos[/code]应该在GridMap的本地坐标空间中。"

#: modules/gridmap/doc_classes/GridMap.xml:157
msgid "If [code]true[/code], grid items are centered on the X axis."
msgstr "如果[code]true[/code],则网格项以X轴为中心。"

#: modules/gridmap/doc_classes/GridMap.xml:160
msgid "If [code]true[/code], grid items are centered on the Y axis."
msgstr "如果为 [code]true[/code],则网格项以 Y 轴为中心。"

#: modules/gridmap/doc_classes/GridMap.xml:163
msgid "If [code]true[/code], grid items are centered on the Z axis."
msgstr "如果为 [code]true[/code],则网格项以 Z 轴为中心。"

#: modules/gridmap/doc_classes/GridMap.xml:166
msgid ""
"The size of each octant measured in number of cells. This applies to all "
"three axis."
msgstr "每个八分圆的大小以单元格的数量衡量。这适用于三个轴(XYZ)。"

#: modules/gridmap/doc_classes/GridMap.xml:169
msgid ""
"The scale of the cell items.\n"
"This does not affect the size of the grid cells themselves, only the items "
"in them. This can be used to make cell items overlap their neighbors."
msgstr ""
"单元格项目的比例。\n"
"这不会影响网格单元本身的大小,只会影响其中的项目。这可用于使单元格项目与其邻"
"居重叠。"

#: modules/gridmap/doc_classes/GridMap.xml:173
msgid ""
"The dimensions of the grid's cells.\n"
"This does not affect the size of the meshes. See [member cell_scale]."
msgstr ""
"网格单元的尺寸。\n"
"这并不影响网格的尺寸大小。参见[member cell_scale]。"

#: modules/gridmap/doc_classes/GridMap.xml:177
msgid ""
"The physics layers this GridMap is in.\n"
"GridMaps act as static bodies, meaning they aren't affected by gravity or "
"other forces. They only affect other physics bodies that collide with them."
msgstr ""
"这个GridMap所处的物理层。\n"
"Gridmap作为静态体,意味着它们不会受到重力或是其他力的影响。它们只会受到其他与"
"它们碰撞的物理体的影响。"

#: modules/gridmap/doc_classes/GridMap.xml:181
msgid ""
"The physics layers this GridMap detects collisions in. See [url=https://docs."
"godotengine.org/en/3.4/tutorials/physics/physics_introduction.html#collision-"
"layers-and-masks]Collision layers and masks[/url] in the documentation for "
"more information."
msgstr ""

#: modules/gridmap/doc_classes/GridMap.xml:184
msgid "The assigned [MeshLibrary]."
msgstr "指定的[MeshLibrary]。"

#: modules/gridmap/doc_classes/GridMap.xml:187
msgid ""
"Controls whether this GridMap will be baked in a [BakedLightmap] or not."
msgstr ""

#: modules/gridmap/doc_classes/GridMap.xml:194
msgid "Emitted when [member cell_size] changes."
msgstr "当 [member cell_size] 改变时触发。"

#: modules/gridmap/doc_classes/GridMap.xml:200
msgid ""
"Invalid cell item that can be used in [method set_cell_item] to clear cells "
"(or represent an empty cell in [method get_cell_item])."
msgstr ""
"可以在 [method set_cell_item] 中清除单元格(或在 [method get_cell_item] 中重"
"新代表一个空的单元格)的无效单元格。"

#: doc/classes/GrooveJoint2D.xml:4
msgid "Groove constraint for 2D physics."
msgstr "2D物理的沟槽约束。"

#: doc/classes/GrooveJoint2D.xml:7
msgid ""
"Groove constraint for 2D physics. This is useful for making a body \"slide\" "
"through a segment placed in another."
msgstr ""
"2D物理的沟槽约束。这对于使一个物体“滑过”放置在另一个物体上的区段很有用。"

#: doc/classes/GrooveJoint2D.xml:15
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 "
"groove)."
msgstr ""
"这个物体B的初始锚点位置,由关键的原点和沿关节Y轴(沿着沟槽)的局部偏移 "
"[member initial_offset] 定义。"

#: doc/classes/GrooveJoint2D.xml:18
msgid ""
"The groove's length. The groove is from the joint's origin towards [member "
"length] along the joint's local Y axis."
msgstr "沟槽的长度。沟槽是从关键原点沿着关节局部Y轴朝向 [member length] 。"

#: doc/classes/HashingContext.xml:4
msgid "Context to compute cryptographic hashes over multiple iterations."
msgstr "在多次迭代中计算加密散列的上下文。"

#: doc/classes/HashingContext.xml:7
msgid ""
"The HashingContext class provides an interface for computing cryptographic "
"hashes over multiple iterations. This is useful for example when 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"
"[codeblock]\n"
"const CHUNK_SIZE = 1024\n"
"\n"
"func hash_file(path):\n"
"    var ctx = HashingContext.new()\n"
"    var file = File.new()\n"
"    # Start a SHA-256 context.\n"
"    ctx.start(HashingContext.HASH_SHA256)\n"
"    # Check that file exists.\n"
"    if not file.file_exists(path):\n"
"        return\n"
"    # Open the file to hash.\n"
"    file.open(path, File.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"
"[/codeblock]\n"
"[b]Note:[/b] Not available in HTML5 exports."
msgstr ""
"HashingContext类提供了一个接口,用于计算多次迭代的加密哈希值。例如,当计算大"
"文件的哈希值(你不必在内存中加载它们)、网络流和一般的数据流(你不必持有缓冲"
"区)时,这很有用。\n"
"[enum HashType]枚举显示了支持的哈希算法。\n"
"[codeblock]\n"
"const CHUNK_SIZE = 1024\n"
"\n"
"func hash_file(path):\n"
"    var ctx = HashingContext.new()\n"
"    var file = File.new()\n"
"    # 开始一个 SHA-256 context.\n"
"    ctx.start(HashingContext.HASH_SHA256)\n"
"    # 检查文件是否存在.\n"
"    if not file.file_exists(path):\n"
"        return\n"
"    # 打开文件的哈希.\n"
"    file.open(path, File.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"
"[/codeblock]\n"
"[b]注意:[/b] 这在导出为HTML5时是不可用的。"

#: doc/classes/HashingContext.xml:38
msgid "Closes the current context, and return the computed hash."
msgstr "关闭当前context,并返回计算出的哈希值。"

#: doc/classes/HashingContext.xml:45
msgid ""
"Starts a new hash computation of the given [code]type[/code] (e.g. [constant "
"HASH_SHA256] to start computation of a SHA-256)."
msgstr ""
"开始对给定的 [code] type[/code] (例如 [恒定HASH_SHA256] 进行新的哈希计算, "
"以开始计算 SHA-256) 。"

#: doc/classes/HashingContext.xml:52
msgid "Updates the computation with the given [code]chunk[/code] of data."
msgstr "使用给定的 [code]chunk[/code] 数据更新计算。"

#: doc/classes/HashingContext.xml:58
msgid "Hashing algorithm: MD5."
msgstr "哈希算法:MD5。"

#: doc/classes/HashingContext.xml:61
msgid "Hashing algorithm: SHA-1."
msgstr "哈希算法。SHA-1。"

#: doc/classes/HashingContext.xml:64
msgid "Hashing algorithm: SHA-256."
msgstr "哈希算法。SHA-256。"

#: doc/classes/HBoxContainer.xml:4
msgid "Horizontal box container."
msgstr "水平盒容器。"

#: doc/classes/HBoxContainer.xml:7
msgid "Horizontal box container. See [BoxContainer]."
msgstr "水平的容器。参见[BoxContainer]。"

#: doc/classes/HBoxContainer.xml:17
msgid "The horizontal space between the [HBoxContainer]'s elements."
msgstr "[HBoxContainer]的元素之间的水平空间。"

#: doc/classes/HeightMapShape.xml:4
#, fuzzy
msgid "Height map shape for 3D physics."
msgstr "三维物理的高度图形状(仅限子弹)。"

#: doc/classes/HeightMapShape.xml:7
#, fuzzy
msgid ""
"Height map shape resource, which can be added to a [PhysicsBody] or [Area]."
msgstr "高度图形状资源,它可以被添加到[PhysicsBody3D]或[Area3D]。"

#: doc/classes/HeightMapShape.xml:15
msgid ""
"Height map data, pool array must be of [member map_width] * [member "
"map_depth] size."
msgstr ""
"高度图数据,池数组的大小必须是 [member map_width] * [member map_depth] 。"

#: doc/classes/HeightMapShape.xml:18
msgid ""
"Depth of the height map data. Changing this will resize the [member "
"map_data]."
msgstr "高度图数据的深度。更改此设置将调整 [member map_data] 的大小。"

#: doc/classes/HeightMapShape.xml:21
msgid ""
"Width of the height map data. Changing this will resize the [member "
"map_data]."
msgstr "高度图数据的宽度。更改此设置将调整 [member map_data] 的大小。"

#: doc/classes/HingeJoint.xml:4
#, fuzzy
msgid "A hinge between two 3D PhysicsBodies."
msgstr "两个 3D 实体之间的铰链。"

#: doc/classes/HingeJoint.xml:7
#, fuzzy
msgid ""
"A HingeJoint normally uses the Z axis of body A as the hinge axis, another "
"axis can be specified when adding it manually though. See also "
"[Generic6DOFJoint]."
msgstr ""
"HingeJoint3D 通常使用主体 A 的 Z 轴作为铰链轴,但手动添加时可以指定其他轴。"

#: doc/classes/HingeJoint.xml:16 doc/classes/SpriteBase3D.xml:21
msgid "Returns the value of the specified flag."
msgstr "返回指定标志的值。"

#: doc/classes/HingeJoint.xml:23 doc/classes/ParticlesMaterial.xml:25
#: doc/classes/PinJoint.xml:16
msgid "Returns the value of the specified parameter."
msgstr "返回指定参数的值。"

#: doc/classes/HingeJoint.xml:31
msgid "If [code]true[/code], enables the specified flag."
msgstr "如果为[code]true[/code],启用指定的flag。"

#: doc/classes/HingeJoint.xml:39 doc/classes/PinJoint.xml:24
msgid "Sets the value of the specified parameter."
msgstr "设置指定参数的值。"

#: doc/classes/HingeJoint.xml:45 doc/classes/HingeJoint.xml:85
#: doc/classes/PhysicsServer.xml:977
msgid ""
"The speed with which the rotation across the axis perpendicular to the hinge "
"gets corrected."
msgstr "垂直于铰链的轴线上的旋转得到纠正的速度。"

#: doc/classes/HingeJoint.xml:48 doc/classes/HingeJoint.xml:102
msgid ""
"If [code]true[/code], the hinges maximum and minimum rotation, defined by "
"[member angular_limit/lower] and [member angular_limit/upper] has effects."
msgstr ""
"如果为[code]true[/code],则会对由[member angular_limit/lower]和[member "
"angular_limit/upper]定义的铰链最大和最小旋转量产生影响。"

#: doc/classes/HingeJoint.xml:51 doc/classes/HingeJoint.xml:82
msgid ""
"The minimum rotation. Only active if [member angular_limit/enable] is "
"[code]true[/code]."
msgstr ""
"最小的旋转量。只有在[member angular_limit/enable]为[code]true[/code]时才有"
"效。"

#: doc/classes/HingeJoint.xml:54 doc/classes/HingeJoint.xml:90
#: doc/classes/PhysicsServer.xml:982
msgid "The lower this value, the more the rotation gets slowed down."
msgstr "该值越低,旋转速度越慢。"

#: doc/classes/HingeJoint.xml:59 doc/classes/HingeJoint.xml:79
msgid ""
"The maximum rotation. Only active if [member angular_limit/enable] is "
"[code]true[/code]."
msgstr ""
"最大的旋转量。只有在[member angular_limit/enable]为[code]true[/code]时才有"
"效。"

#: doc/classes/HingeJoint.xml:62 doc/classes/HingeJoint.xml:105
msgid "When activated, a motor turns the hinge."
msgstr "激活后,电机会使铰链转动。"

#: doc/classes/HingeJoint.xml:65 doc/classes/HingeJoint.xml:96
#: doc/classes/PhysicsServer.xml:988
msgid "Maximum acceleration for the motor."
msgstr "马达的最大加速度。"

#: doc/classes/HingeJoint.xml:68 doc/classes/HingeJoint.xml:93
#: doc/classes/PhysicsServer.xml:985
msgid "Target speed for the motor."
msgstr "目标马达的目标速度。"

#: doc/classes/HingeJoint.xml:71 doc/classes/HingeJoint.xml:76
#: doc/classes/PhysicsServer.xml:968
msgid ""
"The speed with which the two bodies get pulled together when they move in "
"different directions."
msgstr "两个物体向不同方向移动时被拉回到一起的速度。"

#: doc/classes/HMACContext.xml:4
msgid "Used to create an HMAC for a message using a key."
msgstr ""

#: doc/classes/HMACContext.xml:7
msgid ""
"The HMACContext class is useful for advanced HMAC use cases, such as "
"streaming the message as it supports creating the message over time rather "
"than providing it all at once.\n"
"[codeblock]\n"
"extends Node\n"
"var ctx = HMACContext.new()\n"
"\n"
"func _ready():\n"
"    var key = \"supersecret\".to_utf8()\n"
"    var err = ctx.start(HashingContext.HASH_SHA256, key)\n"
"    assert(err == OK)\n"
"    var msg1 = \"this is \".to_utf8()\n"
"    var msg2 = \"vewy vewy secret\".to_utf8()\n"
"    err = ctx.update(msg1)\n"
"    assert(err == OK)\n"
"    err = ctx.update(msg2)\n"
"    assert(err == OK)\n"
"    var hmac = ctx.finish()\n"
"    print(hmac.hex_encode())\n"
"[/codeblock]\n"
"And in C# we can use the following.\n"
"[codeblock]\n"
"using Godot;\n"
"using System;\n"
"using System.Diagnostics;\n"
"\n"
"public class CryptoNode : Node\n"
"{\n"
"    private HMACContext ctx = new HMACContext();\n"
"    public override void _Ready()\n"
"    {\n"
"        PoolByteArray key = String(\"supersecret\").to_utf8();\n"
"        Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n"
"        GD.Assert(err == OK);\n"
"        PoolByteArray msg1 = String(\"this is \").to_utf8();\n"
"        PoolByteArray msg2 = String(\"vewy vew secret\").to_utf8();\n"
"        err = ctx.Update(msg1);\n"
"        GD.Assert(err == OK);\n"
"        err = ctx.Update(msg2);\n"
"        GD.Assert(err == OK);\n"
"        PoolByteArray hmac = ctx.Finish();\n"
"        GD.Print(hmac.HexEncode());\n"
"    }\n"
"}\n"
"[/codeblock]\n"
"[b]Note:[/b] Not available in HTML5 exports."
msgstr ""

#: doc/classes/HMACContext.xml:58
msgid ""
"Returns the resulting HMAC. If the HMAC failed, an empty [PoolByteArray] is "
"returned."
msgstr ""

#: doc/classes/HMACContext.xml:66
msgid ""
"Initializes the HMACContext. This method cannot be called again on the same "
"HMACContext until [method finish] has been called."
msgstr ""

#: doc/classes/HMACContext.xml:73
msgid ""
"Updates the message to be HMACed. This can be called multiple times before "
"[method finish] is called to append [code]data[/code] to the message, but "
"cannot be called until [method start] has been called."
msgstr ""

#: doc/classes/HScrollBar.xml:4
msgid "Horizontal scroll bar."
msgstr "水平滚动条。"

#: doc/classes/HScrollBar.xml:7
msgid ""
"Horizontal version of [ScrollBar], which goes from left (min) to right (max)."
msgstr "[ScrollBar] 的水平版本,滚动条从左(最小)到右(最大)。"

#: doc/classes/HScrollBar.xml:17
msgid ""
"Icon used as a button to scroll the [ScrollBar] left. Supports custom step "
"using the [member ScrollBar.custom_step] property."
msgstr ""
"作为按钮使用的图标,它用于使[ScrollBar]向左滚动。滚动步长由[member ScrollBar."
"custom_step] 属性值自定义。"

#: doc/classes/HScrollBar.xml:20 doc/classes/VScrollBar.xml:24
msgid "Displayed when the mouse cursor hovers over the decrement button."
msgstr "当鼠标指针悬停在递减按钮上时显示。"

#: doc/classes/HScrollBar.xml:23 doc/classes/VScrollBar.xml:27
#, fuzzy
msgid "Displayed when the decrement button is being pressed."
msgstr "当标题按钮被按下时使用的[StyleBox]。"

#: doc/classes/HScrollBar.xml:26 doc/classes/VScrollBar.xml:30
msgid ""
"Used as texture for the grabber, the draggable element representing current "
"scroll."
msgstr "用作拖动条的纹理,表示当前的可拖动元素。"

#: doc/classes/HScrollBar.xml:29 doc/classes/VScrollBar.xml:33
msgid "Used when the mouse hovers over the grabber."
msgstr "当鼠标悬停在拖动条上时使用。"

#: doc/classes/HScrollBar.xml:32 doc/classes/VScrollBar.xml:36
msgid "Used when the grabber is being dragged."
msgstr "在拖动条被拖动时使用。"

#: doc/classes/HScrollBar.xml:35
msgid ""
"Icon used as a button to scroll the [ScrollBar] right. Supports custom step "
"using the [member ScrollBar.custom_step] property."
msgstr ""
"作为按钮使用的图标,它用于使[ScrollBar]向右滚动。滚动步长由[member ScrollBar."
"custom_step] 属性值自定义。"

#: doc/classes/HScrollBar.xml:38 doc/classes/VScrollBar.xml:42
msgid "Displayed when the mouse cursor hovers over the increment button."
msgstr "当鼠标指针悬停在增量按钮上时显示。"

#: doc/classes/HScrollBar.xml:41 doc/classes/VScrollBar.xml:45
#, fuzzy
msgid "Displayed when the increment button is being pressed."
msgstr "当标题按钮被按下时使用的[StyleBox]。"

#: doc/classes/HScrollBar.xml:44 doc/classes/VScrollBar.xml:48
msgid "Used as background of this [ScrollBar]."
msgstr "用作此[ScrollBar]的背景。"

#: doc/classes/HScrollBar.xml:47 doc/classes/VScrollBar.xml:51
msgid "Used as background when the [ScrollBar] has the GUI focus."
msgstr "当 [ScrollBar] 具有 GUI 焦点时用作背景。"

#: doc/classes/HSeparator.xml:4
msgid "Horizontal separator."
msgstr "水平分隔符。"

#: doc/classes/HSeparator.xml:7
msgid ""
"Horizontal separator. See [Separator]. Even though it looks horizontal, it "
"is used to separate objects vertically."
msgstr ""
"水平分离器。见[Separator]。尽管它看起来是水平的,但被用于垂直分隔对象。"

#: doc/classes/HSeparator.xml:17
msgid ""
"The height of the area covered by the separator. Effectively works like a "
"minimum height."
msgstr "分隔符覆盖区域的高度。如同最小高度一样有效地工作。"

#: doc/classes/HSeparator.xml:20
msgid "The style for the separator line. Works best with [StyleBoxLine]."
msgstr "分隔符的样式。与[StyleBoxLine]配合使用效果更佳。"

#: doc/classes/HSlider.xml:4
msgid "Horizontal slider."
msgstr "水平滑条。"

#: doc/classes/HSlider.xml:7
msgid ""
"Horizontal slider. See [Slider]. This one goes from left (min) to right "
"(max).\n"
"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
"signals are part of the [Range] class which this class inherits from."
msgstr ""

#: doc/classes/HSlider.xml:18 doc/classes/VSlider.xml:22
msgid "The texture for the grabber (the draggable element)."
msgstr "用作拖动条的纹理(可拖动的元素)。"

#: doc/classes/HSlider.xml:21
msgid "The background of the area to the left of the grabber."
msgstr "抓取器左侧区域的背景。"

#: doc/classes/HSlider.xml:26 doc/classes/VSlider.xml:30
msgid "The texture for the grabber when it's disabled."
msgstr "抓取器禁用时的材质。"

#: doc/classes/HSlider.xml:29 doc/classes/VSlider.xml:33
msgid "The texture for the grabber when it's focused."
msgstr "抓取器获得焦点时的材质。"

#: doc/classes/HSlider.xml:32
msgid ""
"The background for the whole slider. Determines the height of the "
"[code]grabber_area[/code]."
msgstr "整个滑块的背景。受[code]grabber_area[/code]高度的影响。"

#: doc/classes/HSlider.xml:35 doc/classes/VSlider.xml:39
msgid ""
"The texture for the ticks, visible when [member Slider.tick_count] is "
"greater than 0."
msgstr "刻度的纹理。当[member Slider.tick_count]大于0时可见。"

#: doc/classes/HSplitContainer.xml:4
msgid "Horizontal split container."
msgstr "水平拆分容器。"

#: doc/classes/HSplitContainer.xml:7
msgid ""
"Horizontal split container. See [SplitContainer]. This goes from left to "
"right."
msgstr "水平拆分容器。参见[SplitContainer]。从左到右。"

#: doc/classes/HSplitContainer.xml:17 doc/classes/VSplitContainer.xml:17
msgid ""
"Boolean value. If 1 ([code]true[/code]), the grabber will hide automatically "
"when it isn't under the cursor. If 0 ([code]false[/code]), it's always "
"visible."
msgstr ""
"布尔值。如果1 ([code]true[/code]),抓取器将在不在光标下时自动隐藏。如果0 "
"([code]false[/code]),抓取器总是可见。"

#: doc/classes/HSplitContainer.xml:22 doc/classes/VSplitContainer.xml:22
msgid "The icon used for the grabber drawn in the middle area."
msgstr "在中间区域绘制的抓取图标。"

#: doc/classes/HSplitContainer.xml:25 doc/classes/VSplitContainer.xml:25
msgid "The space between sides of the container."
msgstr "容器两侧之间的空间。"

#: doc/classes/HTTPClient.xml:4
#, fuzzy
msgid "Low-level hyper-text transfer protocol client."
msgstr "超文本传输协议客户端。"

#: doc/classes/HTTPClient.xml:7
#, fuzzy
msgid ""
"Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used "
"to make HTTP requests to download web content, upload files and other data "
"or to communicate with various services, among other use cases. [b]See the "
"[HTTPRequest] node for a higher-level alternative.[/b]\n"
"[b]Note:[/b] This client only needs to connect to a host once (see [method "
"connect_to_host]) to send multiple requests. Because of this, methods that "
"take URLs usually take just the part after the host instead of the full URL, "
"as the client is already connected to a host. See [method request] for a "
"full example and to get started.\n"
"A [HTTPClient] should be reused between multiple requests or to connect to "
"different hosts instead of creating one client per request. Supports SSL and "
"SSL server certificate verification. HTTP status codes in the 2xx range "
"indicate success, 3xx redirection (i.e. \"try again, but over here\"), 4xx "
"something was wrong with the request, and 5xx something went wrong on the "
"server's side.\n"
"For more information on HTTP, see https://developer.mozilla.org/en-US/docs/"
"Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools."
"ietf.org/html/rfc2616).\n"
"[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, "
"keep in mind the remote server may not allow requests from foreign origins "
"due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/"
"url]. If you host the server in question, you should modify its backend to "
"allow requests from foreign origins by adding the [code]Access-Control-Allow-"
"Origin: *[/code] HTTP header.\n"
"[b]Note:[/b] SSL/TLS support is currently limited to TLS 1.0, TLS 1.1, and "
"TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an "
"error.\n"
"[b]Warning:[/b] SSL/TLS certificate revocation and certificate pinning are "
"currently not supported. Revoked certificates are accepted as long as they "
"are otherwise valid. If this is a concern, you may want to use automatically "
"managed certificates with a short validity period."
msgstr ""
"超文本传输协议客户端(有时称为“用户代理”),可用于发出 HTTP 请求以下载 web 内"
"容、上传文件和其他数据或与各种服务通信,以及其他用例。请参阅 [HTTPRequest] 以"
"获取更高级别的替代方案。\n"
"[b]注意:[/b] 此客户端只需连接到主机一次(请参阅 [method connect_to_host])即"
"可发送多个请求。因此,采用 URL 的方法通常只采用主机后面的部分,而不是完整的 "
"URL,因为客户机已经连接到主机。请参阅 [method request] 以获取完整的示例并开始"
"使用。\n"
"[HTTPClient] 应该在多个请求之间重用,或者连接到不同的主机,而不是每个请求创建"
"一个客户端。支持 SSL 以及 SSL 服务器证书验证。2xx 范围内的 HTTP 状态码表示成"
"功,3xx 重定向(即“重试,但在这里”),4xx 请求出错,5xx 服务器端出错。\n"
"有关 HTTP 的更多信息请参阅 https://developer.mozilla.org/en-US/docs/Web/HTTP "
"(或者通过阅读 RFC 2616 追根溯源:https://tools.ietf.org/html/rfc2616)。\n"
"[b]注意:[/b] 当执行从导出到 HTML5 的项目发出的 HTTP 请求时,请记住,远程服务"
"器可能由于 [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/"
"url] 的关系而禁止来自站外的请求。如果服务器是你自己搭建的,可以通过添加 "
"[code]Access-Control-Allow-Origin: *[/code] HTTP 报头来允许站外请求。"

#: doc/classes/HTTPClient.xml:16
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/networking/http_client_class."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/networking/"
"http_client_class.html"

#: doc/classes/HTTPClient.xml:17 doc/classes/HTTPRequest.xml:75
#: doc/classes/StreamPeerSSL.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/networking/ssl_certificates."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/networking/"
"ssl_certificates.html"

#: doc/classes/HTTPClient.xml:23
msgid "Closes the current connection, allowing reuse of this [HTTPClient]."
msgstr "关闭当前连接,允许重用此[HTTPClient]。"

#: doc/classes/HTTPClient.xml:33
msgid ""
"Connects to a host. This needs to be done before any requests are sent.\n"
"The host should not have http:// prepended but will strip the protocol "
"identifier if provided.\n"
"If no [code]port[/code] is specified (or [code]-1[/code] is used), it is "
"automatically set to 80 for HTTP and 443 for HTTPS (if [code]use_ssl[/code] "
"is enabled).\n"
"[code]verify_host[/code] will check the SSL identity of the host if set to "
"[code]true[/code]."
msgstr ""
"连接到主机。需要在发送任何请求前执行。\n"
"主机不应该带有 http:// 前缀,如果有的话协议标识符会被剥离。\n"
"如果未指定 [code]port[/code](或者使用的是 [code]-1[/code]),默认 HTTP 会使"
"用 80,HTTPS(启用了 [code]use_ssl[/code])会使用 443。\n"
"[code]verify_host[/code] 设为 [code]true[/code] 时会检查主机的 SSL 身份。"

#: doc/classes/HTTPClient.xml:42
msgid ""
"Returns the response's body length.\n"
"[b]Note:[/b] Some Web servers may not send a body length. In this case, the "
"value returned will be [code]-1[/code]. If using chunked transfer encoding, "
"the body length will also be [code]-1[/code]."
msgstr ""
"返回响应体长度。\n"
"[b]注意:[/b] 部分 Web 服务器可能不发送响应体长度,此时返回值将为 [code]-1[/"
"code]。如果使用分块传输编码,响应体的长度也将为 [code]-1[/code]。"

#: doc/classes/HTTPClient.xml:49
msgid "Returns the response's HTTP status code."
msgstr "返回响应的 HTTP 状态码。"

#: doc/classes/HTTPClient.xml:55
msgid "Returns the response headers."
msgstr "返回响应报头。"

#: doc/classes/HTTPClient.xml:61
msgid ""
"Returns all response headers as a Dictionary of structure [code]{ \"key\": "
"\"value1; value2\" }[/code] where the case-sensitivity of the keys and "
"values is kept like the server delivers it. A value is a simple String, this "
"string can have more than one value where \"; \" is used as separator.\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"{\n"
"    \"content-length\": 12,\n"
"    \"Content-Type\": \"application/json; charset=UTF-8\",\n"
"}\n"
"[/codeblock]"
msgstr ""
"返回所有响应报头,是 [code]{ \"报头字段名称\": \"字段取值1; 字段取值2\" }[/"
"code] 格式的字典,字典的键和值均保持服务器所发送的大小写。字段取值为简单的 "
"String,该字符串可能包含多个值,使用“; ”分隔。\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"{\n"
"    \"content-length\": 12,\n"
"    \"Content-Type\": \"application/json; charset=UTF-8\",\n"
"}\n"
"[/codeblock]"

#: doc/classes/HTTPClient.xml:74
msgid ""
"Returns a [enum Status] constant. Need to call [method poll] in order to get "
"status updates."
msgstr "返回 [enum Status] 常量。需要调用 [method poll]]才能更新状态。"

#: doc/classes/HTTPClient.xml:80
msgid "If [code]true[/code], this [HTTPClient] has a response available."
msgstr "为 [code]true[/code] 时,则该 [TTPClient] 有可用的响应。"

#: doc/classes/HTTPClient.xml:86
msgid "If [code]true[/code], this [HTTPClient] has a response that is chunked."
msgstr "为 [code]true[/code] 时,则该 [HTTPClient] 有分块的响应。"

#: doc/classes/HTTPClient.xml:92
msgid ""
"This needs to be called in order to have any request processed. Check "
"results with [method get_status]."
msgstr "调用此方法才能对请求进行处理。使用 [method get_status] 获取检查。"

#: doc/classes/HTTPClient.xml:99
msgid ""
"Generates a GET/POST application/x-www-form-urlencoded style query string "
"from a provided dictionary, e.g.:\n"
"[codeblock]\n"
"var fields = {\"username\": \"user\", \"password\": \"pass\"}\n"
"var query_string = http_client.query_string_from_dict(fields)\n"
"# Returns \"username=user&password=pass\"\n"
"[/codeblock]\n"
"Furthermore, if a key has a [code]null[/code] value, only the key itself is "
"added, without equal sign and value. If the value is an array, for each "
"value in it a pair with the same key is added.\n"
"[codeblock]\n"
"var fields = {\"single\": 123, \"not_valued\": null, \"multiple\": [22, 33, "
"44]}\n"
"var query_string = http_client.query_string_from_dict(fields)\n"
"# Returns \"single=123&not_valued&multiple=22&multiple=33&multiple=44\"\n"
"[/codeblock]"
msgstr ""
"根据所提供的字典生成 GET/POST application/x-www-form-urlencoded 风格的请求字"
"符串,例如:\n"
"[codeblock]\n"
"var fields = {\"username\": \"user\", \"password\": \"pass\"}\n"
"var query_string = http_client.query_string_from_dict(fields)\n"
"# 返回 \"username=user&password=pass\"\n"
"[/codeblock]\n"
"此外,如果字典中的某个键对应 [code]null[/code] 值,那个只会加入该键本身,没有"
"等号和值。如果值是数组,会为每个元素添加一组使用相同的键的条目。\n"
"[codeblock]\n"
"var fields = {\"single\": 123, \"not_valued\": null, \"multiple\": [22, 33, "
"44]}\n"
"var query_string = http_client.query_string_from_dict(fields)\n"
"# 返回 \"single=123&not_valued&multiple=22&multiple=33&multiple=44\"\n"
"[/codeblock]"

#: doc/classes/HTTPClient.xml:116
msgid "Reads one chunk from the response."
msgstr "从响应中读取一块数据。"

#: doc/classes/HTTPClient.xml:126
#, fuzzy
msgid ""
"Sends a request to the connected host.\n"
"The URL parameter is usually just the part after the host, so for "
"[code]http://somehost.com/index.php[/code], it is [code]/index.php[/code]. "
"When sending requests to an HTTP proxy server, it should be an absolute URL. "
"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also "
"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the "
"authority component ([code]host:port[/code]).\n"
"Headers are HTTP request headers. For available HTTP methods, see [enum "
"Method].\n"
"To create a POST request with query strings to push to the server, do:\n"
"[codeblock]\n"
"var fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n"
"var query_string = http_client.query_string_from_dict(fields)\n"
"var headers = [\"Content-Type: application/x-www-form-urlencoded\", "
"\"Content-Length: \" + str(query_string.length())]\n"
"var result = http_client.request(http_client.METHOD_POST, \"/index.php\", "
"headers, query_string)\n"
"[/codeblock]\n"
"[b]Note:[/b] The [code]request_data[/code] parameter is ignored if "
"[code]method[/code] is [constant HTTPClient.METHOD_GET]. This is because GET "
"methods can't contain request data. As a workaround, you can pass request "
"data as a query string in the URL. See [method String.http_escape] for an "
"example."
msgstr ""
"向连接的服务器发送请求。URL 参数仅为主机名后面的部分,即请求 [code]http://"
"somehost.com/index.php[/code] 应该填写 [code]index.php[/code]。\n"
"Headers 参数是 HTTP 请求的报头。HTTP 方法可以查看 [enum Method]。\n"
"如果要创建向服务器发送查询字符串的 POST 请求,应该这样做:\n"
"[codeblock]\n"
"var fields = {\"username\" : \"user\", \"password\" : \"pass\"}\n"
"var query_string = http_client.query_string_from_dict(fields)\n"
"var headers = [\"Content-Type: application/x-www-form-urlencoded\", "
"\"Content-Length: \" + str(query_string.length())]\n"
"var result = http_client.request(http_client.METHOD_POST, \"index.php\", "
"headers, query_string)\n"
"[/codeblock]"

#: doc/classes/HTTPClient.xml:146
#, fuzzy
msgid ""
"Sends a raw request to the connected host.\n"
"The URL parameter is usually just the part after the host, so for "
"[code]http://somehost.com/index.php[/code], it is [code]/index.php[/code]. "
"When sending requests to an HTTP proxy server, it should be an absolute URL. "
"For [constant HTTPClient.METHOD_OPTIONS] requests, [code]*[/code] is also "
"allowed. For [constant HTTPClient.METHOD_CONNECT] requests, it should be the "
"authority component ([code]host:port[/code]).\n"
"Headers are HTTP request headers. For available HTTP methods, see [enum "
"Method].\n"
"Sends the body data raw, as a byte array and does not encode it in any way."
msgstr ""
"向连接的服务器发送原始请求。URL 参数仅为主机名后面的部分,即请求 "
"[code]http://somehost.com/index.php[/code] 应该填写 [code]index.php[/"
"code]。\n"
"Headers 参数是 HTTP 请求的报头。HTTP 方法可以查看 [enum Method]。\n"
"发送原始的请求体数据,类型为字节数组,不会再做任何形式的编码。"

#: doc/classes/HTTPClient.xml:155
msgid ""
"If [code]true[/code], execution will block until all data is read from the "
"response."
msgstr "为 [code]true[/code] 时,执行会阻塞至从响应中读取所有数据为止。"

#: doc/classes/HTTPClient.xml:158
msgid "The connection to use for this client."
msgstr "该客户端所使用的连接。"

#: doc/classes/HTTPClient.xml:161
msgid ""
"The size of the buffer used and maximum bytes to read per iteration. See "
"[method read_response_body_chunk]."
msgstr ""
"使用的缓冲区大小,即每次迭代读取的最大字节数。见 [method "
"read_response_body_chunk]。"

#: doc/classes/HTTPClient.xml:166
msgid ""
"HTTP GET method. The GET method requests a representation of the specified "
"resource. Requests using GET should only retrieve data."
msgstr ""
"HTTP GET 方法。GET 方法用于请求指定资源的某种表示。使用 GET 的请求应该只进行"
"数据的获取。"

#: doc/classes/HTTPClient.xml:169
msgid ""
"HTTP HEAD method. The HEAD method asks for a response identical to that of a "
"GET request, but without the response body. This is useful to request "
"metadata like HTTP headers or to check if a resource exists."
msgstr ""
"HTTP HEAD 方法。HEAD 方法请求的是和 GET 请求一样的相应,但不包含响应体。用来"
"请求元数据很方便,比如可以通过请求 HTTP 报头来判断资源是否存在。"

#: doc/classes/HTTPClient.xml:172
msgid ""
"HTTP POST method. The POST method is used to submit an entity to the "
"specified resource, often causing a change in state or side effects on the "
"server. This is often used for forms and submitting data or uploading files."
msgstr ""
"HTTP POST 方法。POST 方法用于将实体提交给指定的资源,经常会造成服务器端状态的"
"更改或者其它副作用。常用于提交表单和其它数据,或者上传文件。"

#: doc/classes/HTTPClient.xml:175
msgid ""
"HTTP PUT method. The PUT method asks to replace all current representations "
"of the target resource with the request payload. (You can think of POST as "
"\"create or update\" and PUT as \"update\", although many services tend to "
"not make a clear distinction or change their meaning)."
msgstr ""
"HTTP PUT 方法。PUT 方法的目的是使用请求负载替换目标资源的所有当前表示。(可以"
"把 POST 理解为“创建或更新”,把 PUT 理解为“更小”,不过很多服务在这两者的含义之"
"间并不作明显的区别)。"

#: doc/classes/HTTPClient.xml:178
msgid ""
"HTTP DELETE method. The DELETE method requests to delete the specified "
"resource."
msgstr "HTTP DELETE 方法。DELETE 方法请求删除指定的资源。"

#: doc/classes/HTTPClient.xml:181
msgid ""
"HTTP OPTIONS method. The OPTIONS method asks for a description of the "
"communication options for the target resource. Rarely used."
msgstr ""
"HTTP OPTIONS 方法。OPTIONS 方法的目的是获取目标资源的通讯选项。很少使用。"

#: doc/classes/HTTPClient.xml:184
msgid ""
"HTTP TRACE method. The TRACE method performs a message loop-back test along "
"the path to the target resource. Returns the entire HTTP request received in "
"the response body. Rarely used."
msgstr ""
"HTTP TRACE 方法。TRACE 方法会沿目标资源的路径做消息回环测试。返回的响应体中会"
"包含完整的 HTTP 请求。很少使用。"

#: doc/classes/HTTPClient.xml:187
msgid ""
"HTTP CONNECT method. The CONNECT method establishes a tunnel to the server "
"identified by the target resource. Rarely used."
msgstr ""
"HTTP CONNECT 方法。CONNECT 方法会与目标资源所表示的服务器建立隧道。很少使用。"

#: doc/classes/HTTPClient.xml:190
msgid ""
"HTTP PATCH method. The PATCH method is used to apply partial modifications "
"to a resource."
msgstr "HTTP PATCH 方法。PATCH 方法用于对资源进行部分修改。"

#: doc/classes/HTTPClient.xml:193
msgid "Represents the size of the [enum Method] enum."
msgstr "表示 [enum Method] 枚举的大小。"

#: doc/classes/HTTPClient.xml:196
msgid "Status: Disconnected from the server."
msgstr "状态:与服务器断开连接。"

#: doc/classes/HTTPClient.xml:199
msgid "Status: Currently resolving the hostname for the given URL into an IP."
msgstr "状态:正在根据 URL 的主机名解析 IP。"

#: doc/classes/HTTPClient.xml:202
msgid "Status: DNS failure: Can't resolve the hostname for the given URL."
msgstr "状态:DNS 失败:无法解析指定 URL 的主机名。"

#: doc/classes/HTTPClient.xml:205
msgid "Status: Currently connecting to server."
msgstr "状态:正在连接到服务器。"

#: doc/classes/HTTPClient.xml:208
msgid "Status: Can't connect to the server."
msgstr "状态:无法连接到服务器。"

#: doc/classes/HTTPClient.xml:211
msgid "Status: Connection established."
msgstr "状态:连接已建立。"

#: doc/classes/HTTPClient.xml:214
msgid "Status: Currently sending request."
msgstr "状态:正在发送请求。"

#: doc/classes/HTTPClient.xml:217
msgid "Status: HTTP body received."
msgstr "状态:已获取 HTTP 响应体。"

#: doc/classes/HTTPClient.xml:220
msgid "Status: Error in HTTP connection."
msgstr "状态:HTTP 连接出错。"

#: doc/classes/HTTPClient.xml:223
msgid "Status: Error in SSL handshake."
msgstr "状态:SSL 握手出错。"

#: doc/classes/HTTPClient.xml:226
msgid ""
"HTTP status code [code]100 Continue[/code]. Interim response that indicates "
"everything so far is OK and that the client should continue with the request "
"(or ignore this status if already finished)."
msgstr ""
"HTTP 状态码 [code]100 Continue[/code]。是表示目前为止一切正常的中间响应,客户"
"端应该继续请求(如果已经请求完就可以直接忽略这个状态)。"

#: doc/classes/HTTPClient.xml:229
msgid ""
"HTTP status code [code]101 Switching Protocol[/code]. Sent in response to an "
"[code]Upgrade[/code] request header by the client. Indicates the protocol "
"the server is switching to."
msgstr ""
"HTTP 状态码 [code]101 Switching Protocol[/code]。针对客户 [code]Upgrade[/"
"code] 请求的响应,表示服务器所转换到的协议。"

#: doc/classes/HTTPClient.xml:232
msgid ""
"HTTP status code [code]102 Processing[/code] (WebDAV). Indicates that the "
"server has received and is processing the request, but no response is "
"available yet."
msgstr ""
"HTTP 状态码 [code]102 Processing[/code](WebDAV)。表示服务器已收到请求并且正"
"在处理,尚未生成响应。"

#: doc/classes/HTTPClient.xml:235
msgid ""
"HTTP status code [code]200 OK[/code]. The request has succeeded. Default "
"response for successful requests. Meaning varies depending on the request. "
"GET: The resource has been fetched and is transmitted in the message body. "
"HEAD: The entity headers are in the message body. POST: The resource "
"describing the result of the action is transmitted in the message body. "
"TRACE: The message body contains the request message as received by the "
"server."
msgstr ""
"HTTP 状态码 [code]200 OK[/code]。请求已成功,是成功请求的默认响应,根据请求的"
"不同表示的含义也不同。GET:已获取资源并通过消息体发送。HEAD:实体报头在消息体"
"中。POST:描述操作结果的资源已通过消息体发送。TRACE:消息体包含服务器所收到的"
"请求消息。"

#: doc/classes/HTTPClient.xml:238
msgid ""
"HTTP status code [code]201 Created[/code]. The request has succeeded and a "
"new resource has been created as a result of it. This is typically the "
"response sent after a PUT request."
msgstr ""
"HTTP 状态码 [code]201 Created[/code]。请求成功,并且创建了新资源。通常是针对 "
"PUT 请求的响应."

#: doc/classes/HTTPClient.xml:241
msgid ""
"HTTP status code [code]202 Accepted[/code]. The request has been received "
"but not yet acted upon. It is non-committal, meaning that there is no way in "
"HTTP to later send an asynchronous response indicating the outcome of "
"processing the request. It is intended for cases where another process or "
"server handles the request, or for batch processing."
msgstr ""
"HTTP 状态码 [code]202 Accepted[/code]。请求已收到,但尚未处理。HTTP 协议中无"
"法实现在完成对请求的处理后异步地把请求发回来。这个响应的使用场景应该是会有其"
"他进程或者服务器去处理这个请求,或者会进行批量处理。"

#: doc/classes/HTTPClient.xml:244
msgid ""
"HTTP status code [code]203 Non-Authoritative Information[/code]. This "
"response code means returned meta-information set is not exact set as "
"available from the origin server, but collected from a local or a third "
"party copy. Except this condition, 200 OK response should be preferred "
"instead of this response."
msgstr ""
"HTTP 状态码 [code]203 Non-Authoritative Information[/code]。该响应状态码表示"
"返回的元消息与原始服务器所返回的不一致,而是从本地或者第三方副本中收集而来。"
"除了特殊情况,应该优先选用 200 OK 响应所返回的内容。"

#: doc/classes/HTTPClient.xml:247
msgid ""
"HTTP status code [code]204 No Content[/code]. There is no content to send "
"for this request, but the headers may be useful. The user-agent may update "
"its cached headers for this resource with the new ones."
msgstr ""
"HTTP 状态码 [code]204 No Content[/code]。本请求无响应内容,但报头可能有用。用"
"户代理可能会根据该资源更新缓存报头。"

#: doc/classes/HTTPClient.xml:250
msgid ""
"HTTP status code [code]205 Reset Content[/code]. The server has fulfilled "
"the request and desires that the client resets the \"document view\" that "
"caused the request to be sent to its original state as received from the "
"origin server."
msgstr ""
"HTTP 状态码 [code]205 Reset Content[/code]。服务器已完成对请求的处理,并要求"
"客户端将导致该请求的“文档视图”重置回原始状态。"

#: doc/classes/HTTPClient.xml:253
msgid ""
"HTTP status code [code]206 Partial Content[/code]. This response code is "
"used because of a range header sent by the client to separate download into "
"multiple streams."
msgstr ""
"HTTP 状态码 [code]206 Partial Content[/code]。客户端如果发送范围(Range)报头"
"就会收到该响应码,用于将下载拆分成多个数据流。"

#: doc/classes/HTTPClient.xml:256
msgid ""
"HTTP status code [code]207 Multi-Status[/code] (WebDAV). A Multi-Status "
"response conveys information about multiple resources in situations where "
"multiple status codes might be appropriate."
msgstr ""
"HTTP 状态码 [code]207 Multi-Status[/code](WebDAV)。关于多个资源的多状态响"
"应,适用于需要返回多个状态码的情况。"

#: doc/classes/HTTPClient.xml:259
msgid ""
"HTTP status code [code]208 Already Reported[/code] (WebDAV). Used inside a "
"DAV: propstat response element to avoid enumerating the internal members of "
"multiple bindings to the same collection repeatedly."
msgstr ""
"HTTP 状态码 [code]208 Already Reported[/code](WebDAV)。在 DAV: propstat 相"
"应元素内部使用,可以防止重复遍历同一合集中不同绑定的内部成员。"

#: doc/classes/HTTPClient.xml:262
msgid ""
"HTTP status code [code]226 IM Used[/code] (WebDAV). The server has fulfilled "
"a GET request for the resource, and the response is a representation of the "
"result of one or more instance-manipulations applied to the current instance."
msgstr ""
"HTTP 状态码 [code]226 IM Used[/code](WebDAV)。服务器完成了对该资源的 GET 请"
"求,所响应的资源表示,是针对当前实例进行若干共同修改的结果。"

#: doc/classes/HTTPClient.xml:265
msgid ""
"HTTP status code [code]300 Multiple Choice[/code]. The request has more than "
"one possible responses and there is no standardized way to choose one of the "
"responses. User-agent or user should choose one of them."
msgstr ""
"HTTP 状态码 [code]300 Multiple Choice[/code]。请求有多个可能的响应,并且没有"
"从中挑选其一的标准方法。用户代理或者用户应该自行挑选。"

#: doc/classes/HTTPClient.xml:268
msgid ""
"HTTP status code [code]301 Moved Permanently[/code]. Redirection. This "
"response code means the URI of requested resource has been changed. The new "
"URI is usually included in the response."
msgstr ""
"HTTP 状态码 [code]301 Moved Permanently[/code]。重定向。该响应码表示所请求资"
"源的 URI 已改变。新的 URI 通常包含在响应中。"

#: doc/classes/HTTPClient.xml:271
msgid ""
"HTTP status code [code]302 Found[/code]. Temporary redirection. This "
"response code means the URI of requested resource has been changed "
"temporarily. New changes in the URI might be made in the future. Therefore, "
"this same URI should be used by the client in future requests."
msgstr ""
"HTTP 状态码 [code]302 Found[/code]。临时重定向。该响应码表示所请求资源的 URI "
"已临时改变。该 URI 将来还可能发生变,因此后续的请求应该仍然使用相同的 URI。"

#: doc/classes/HTTPClient.xml:274
msgid ""
"HTTP status code [code]303 See Other[/code]. The server is redirecting the "
"user agent to a different resource, as indicated by a URI in the Location "
"header field, which is intended to provide an indirect response to the "
"original request."
msgstr ""
"HTTP 状态码 [code]303 See Other[/code]。服务器将用户代理重定向到另一个资源,"
"资源由 Location 报头中的 URI 指定。用于提供针对原始请求的间接响应。"

#: doc/classes/HTTPClient.xml:277
msgid ""
"HTTP status code [code]304 Not Modified[/code]. A conditional GET or HEAD "
"request has been received and would have resulted in a 200 OK response if it "
"were not for the fact that the condition evaluated to [code]false[/code]."
msgstr ""
"HTTP 状态码 [code]304 Not Modified[/code]。收到了条件 GET 或者 HEAD,并且要不"
"是因为该条件为 [code]false[/code] 就会返回 200 OK 响应。"

#: doc/classes/HTTPClient.xml:280
msgid ""
"HTTP status code [code]305 Use Proxy[/code]. [i]Deprecated. Do not use.[/i]"
msgstr "HTTP 状态码 [code]305 Use Proxy[/code]。[i]已废弃,勿用。[/i]"

#: doc/classes/HTTPClient.xml:283
msgid ""
"HTTP status code [code]306 Switch Proxy[/code]. [i]Deprecated. Do not use.[/"
"i]"
msgstr "HTTP 状态码[code]306 Switch Proxy[/code]。[i]已废弃,勿用。[/i]"

#: doc/classes/HTTPClient.xml:286
msgid ""
"HTTP status code [code]307 Temporary Redirect[/code]. The target resource "
"resides temporarily under a different URI and the user agent MUST NOT change "
"the request method if it performs an automatic redirection to that URI."
msgstr ""
"HTTP 状态码 [code]307 Temporary Redirect[/code]。目标资源暂时位于不同的 URI,"
"用户代理如果要自动重定向到该 URI,就一定不能更改所使用的请求方法。"

#: doc/classes/HTTPClient.xml:289
msgid ""
"HTTP status code [code]308 Permanent Redirect[/code]. The target resource "
"has been assigned a new permanent URI and any future references to this "
"resource ought to use one of the enclosed URIs."
msgstr ""
"HTTP 状态码 [code]308 Permanent Redirect[/code]。目标资源已被赋予全新的永久 "
"URI,后续针对该资源的请求应当使用所提供的 URI。"

#: doc/classes/HTTPClient.xml:292
msgid ""
"HTTP status code [code]400 Bad Request[/code]. The request was invalid. The "
"server cannot or will not process the request due to something that is "
"perceived to be a client error (e.g., malformed request syntax, invalid "
"request message framing, invalid request contents, or deceptive request "
"routing)."
msgstr ""
"HTTP 状态码 [code]400 Bad Request[/code]。请求无效。服务器认为客户端出错,所"
"以无法或者拒绝处理该请求(例如:请求语法错误、请求消息帧无效、请求内容无效、"
"请求路由可疑)。"

#: doc/classes/HTTPClient.xml:295
msgid ""
"HTTP status code [code]401 Unauthorized[/code]. Credentials required. The "
"request has not been applied because it lacks valid authentication "
"credentials for the target resource."
msgstr ""
"HTTP 状态码 [code]401 Unauthorized[/code]。需要提供认证信息。未执行请求,原因"
"是缺少针对目标资源的授权认证信息。"

#: doc/classes/HTTPClient.xml:298
msgid ""
"HTTP status code [code]402 Payment Required[/code]. This response code is "
"reserved for future use. Initial aim for creating this code was using it for "
"digital payment systems, however this is not currently used."
msgstr ""
"HTTP 状态码 [code]402 Payment Required[/code]。该响应码是为将来使用保留的,本"
"意是供数字支付系统使用,但目前尚未有所使用。"

#: doc/classes/HTTPClient.xml:301
msgid ""
"HTTP status code [code]403 Forbidden[/code]. The client does not have access "
"rights to the content, i.e. they are unauthorized, so server is rejecting to "
"give proper response. Unlike [code]401[/code], the client's identity is "
"known to the server."
msgstr ""
"HTTP 状态码 [code]403 Forbidden[/code]。客户端没有该内容的访问权限,即未授"
"权,服务器拒绝给出正确响应。与 [code]401[/code] 不同,服务器已收到客户端的身"
"份信息。"

#: doc/classes/HTTPClient.xml:304
msgid ""
"HTTP status code [code]404 Not Found[/code]. The server can not find "
"requested resource. Either the URL is not recognized or the endpoint is "
"valid but the resource itself does not exist. May also be sent instead of "
"403 to hide existence of a resource if the client is not authorized."
msgstr ""
"HTTP 状态码 [code]404 Not Found[/code]。服务器无法找到所请求的资源。可能是无"
"法识别 URL,也可能是 URL 有效但资源本身不存在。也有可能在客户端未提供认证信息"
"时代替 403 返回,从而达到隐藏资源存在性的目的。"

#: doc/classes/HTTPClient.xml:307
msgid ""
"HTTP status code [code]405 Method Not Allowed[/code]. The request's HTTP "
"method is known by the server but has been disabled and cannot be used. For "
"example, an API may forbid DELETE-ing a resource. The two mandatory methods, "
"GET and HEAD, must never be disabled and should not return this error code."
msgstr ""
"HTTP 状态码 [code]405 Method Not Allowed[/code]。服务器理解请求所使用的 HTTP "
"方法,但该方法已被禁止使用。例如:API 可能禁止 DELETE 资源。GET 和 HEAD 这两"
"个方法是必须的,所以不能被禁用,也不应该返回该错误码。"

#: doc/classes/HTTPClient.xml:310
msgid ""
"HTTP status code [code]406 Not Acceptable[/code]. The target resource does "
"not have a current representation that would be acceptable to the user "
"agent, according to the proactive negotiation header fields received in the "
"request. Used when negotiation content."
msgstr ""
"HTTP 状态码 [code]406 Not Acceptable[/code]。根据请求中主动注明的交涉报头字"
"段,目标资源没有用户代理所能接受的表示。用于内容交涉过程。"

#: doc/classes/HTTPClient.xml:313
msgid ""
"HTTP status code [code]407 Proxy Authentication Required[/code]. Similar to "
"401 Unauthorized, but it indicates that the client needs to authenticate "
"itself in order to use a proxy."
msgstr ""
"HTTP 状态码 [code]407 Proxy Authentication Required[/code]。类似于 401 "
"Unauthorized,表示客户端需要在提供认证信息后使用代理。"

#: doc/classes/HTTPClient.xml:316
msgid ""
"HTTP status code [code]408 Request Timeout[/code]. The server did not "
"receive a complete request message within the time that it was prepared to "
"wait."
msgstr ""
"HTTP 状态码 [code]408 Request Timeout[/code]。服务器在其准备等待的时间段内未"
"获取完整的请求信息。"

#: doc/classes/HTTPClient.xml:319
msgid ""
"HTTP status code [code]409 Conflict[/code]. The request could not be "
"completed due to a conflict with the current state of the target resource. "
"This code is used in situations where the user might be able to resolve the "
"conflict and resubmit the request."
msgstr ""
"HTTP 状态码 [code]409 Conflict[/code]。请求无法完成,原因与是目标资源的当前状"
"态存在冲突。该代码的使用场景应该是用户也许能够解决冲突并重新提交请求。"

#: doc/classes/HTTPClient.xml:322
msgid ""
"HTTP status code [code]410 Gone[/code]. The target resource is no longer "
"available at the origin server and this condition is likely permanent."
msgstr ""
"HTTP 状态码 [code]410 Gone[/code]。目标资源在原始服务器上已不复存在,并且可能"
"永远如此。"

#: doc/classes/HTTPClient.xml:325
msgid ""
"HTTP status code [code]411 Length Required[/code]. The server refuses to "
"accept the request without a defined Content-Length header."
msgstr ""
"HTTP 状态码 [code]411 Length Required[/code]。服务器拒绝接受没有定义 Content-"
"Length 报头的请求。"

#: doc/classes/HTTPClient.xml:328
msgid ""
"HTTP status code [code]412 Precondition Failed[/code]. One or more "
"conditions given in the request header fields evaluated to [code]false[/"
"code] when tested on the server."
msgstr ""
"HTTP 状态码 [code]412 Percondition Failed[/code]。请求报头中给出的若干条件在"
"服务器上检查为 [code]false[/code]。"

#: doc/classes/HTTPClient.xml:331
msgid ""
"HTTP status code [code]413 Entity Too Large[/code]. The server is refusing "
"to process a request because the request payload is larger than the server "
"is willing or able to process."
msgstr ""
"HTTP 状态码 [code]413 Entity Too Large[/code]。服务器拒绝处理请求,因为请求的"
"负载超过了服务器所允许或者所能够处理的上限。"

#: doc/classes/HTTPClient.xml:334
msgid ""
"HTTP status code [code]414 Request-URI Too Long[/code]. The server is "
"refusing to service the request because the request-target is longer than "
"the server is willing to interpret."
msgstr ""
"HTTP 状态码 [code]414 Request-URI Too Long[/code]。服务器拒绝为请求提供服务,"
"因为请求目标的长度超过了服务器所愿意解析的上限。"

#: doc/classes/HTTPClient.xml:337
msgid ""
"HTTP status code [code]415 Unsupported Media Type[/code]. The origin server "
"is refusing to service the request because the payload is in a format not "
"supported by this method on the target resource."
msgstr ""
"HTTP 状态码 [code]415 Unsupported Media Type[/code]。原始服务器拒绝为请求提供"
"服务,因为负载所使用的格式目标资源的该方法不支持。"

#: doc/classes/HTTPClient.xml:340
msgid ""
"HTTP status code [code]416 Requested Range Not Satisfiable[/code]. None of "
"the ranges in the request's Range header field overlap the current extent of "
"the selected resource or the set of ranges requested has been rejected due "
"to invalid ranges or an excessive request of small or overlapping ranges."
msgstr ""
"HTTP 状态码 [code]416 Requested Range Not Satisfiable[/code]。请求的 Range 报"
"头中指定的所有范围都与所选资源的有效范围不重合,或者拒绝处理该范围的集合。拒"
"绝的可能原因是存在无效的范围,或者存在过多细小或者重叠的范围。"

#: doc/classes/HTTPClient.xml:343
msgid ""
"HTTP status code [code]417 Expectation Failed[/code]. The expectation given "
"in the request's Expect header field could not be met by at least one of the "
"inbound servers."
msgstr ""
"HTTP 状态码 [code]417 Expectation Failed[/code]。请求的 Expect 报头中给出的预"
"期无法被任何内部服务器满足。"

#: doc/classes/HTTPClient.xml:346
msgid ""
"HTTP status code [code]418 I'm A Teapot[/code]. Any attempt to brew coffee "
"with a teapot should result in the error code \"418 I'm a teapot\". The "
"resulting entity body MAY be short and stout."
msgstr ""
"HTTP 状态码 [code]418 I'm A Teapot[/code]。想要尝试用茶壶煮咖啡就会得到错误"
"码“418 因为我是个茶壶”,得到的实体大概又矮又胖。这个错误是对1998年愚人节玩笑"
"的超文本咖啡壶控制协议的引用。"

#: doc/classes/HTTPClient.xml:349
msgid ""
"HTTP status code [code]421 Misdirected Request[/code]. The request was "
"directed at a server that is not able to produce a response. This can be "
"sent by a server that is not configured to produce responses for the "
"combination of scheme and authority that are included in the request URI."
msgstr ""
"HTTP 状态码 [code]421 Misdirected Request[/code]。请求被重定向到了一台无法生"
"成响应的服务器。如果一台服务器没有针对请求 URI 的协议类型和主机身份配置响应,"
"就有可能返回这个代码。"

#: doc/classes/HTTPClient.xml:352
msgid ""
"HTTP status code [code]422 Unprocessable Entity[/code] (WebDAV). The server "
"understands the content type of the request entity (hence a 415 Unsupported "
"Media Type status code is inappropriate), and the syntax of the request "
"entity is correct (thus a 400 Bad Request status code is inappropriate) but "
"was unable to process the contained instructions."
msgstr ""
"HTTP 状态码 [code]422 Unprocessable Entity[/code](WebDAV)。服务器能够理解请"
"求实体的内容类型(所以不适用 415 Unsupported Media Type 状态码),请求实体的"
"语法也是正确的(所以不适用 400 Bad Request 状态码),但仍然无法执行请求中所包"
"含的指令。"

#: doc/classes/HTTPClient.xml:355
msgid ""
"HTTP status code [code]423 Locked[/code] (WebDAV). The source or destination "
"resource of a method is locked."
msgstr ""
"HTTP 状态码 [code]423 Locked[/code](WebDAV)。方法的来源资源或目标资源被锁"
"定。"

#: doc/classes/HTTPClient.xml:358
msgid ""
"HTTP status code [code]424 Failed Dependency[/code] (WebDAV). The method "
"could not be performed on the resource because the requested action depended "
"on another action and that action failed."
msgstr ""
"HTTP 状态码 [code]424 Failed Dependency[/code](WebDAV)。无法在该资源上执行"
"该方法,因为请求的操作依赖于另一个操作,而那个操作失败了。"

#: doc/classes/HTTPClient.xml:361
msgid ""
"HTTP status code [code]426 Upgrade Required[/code]. The server refuses to "
"perform the request using the current protocol but might be willing to do so "
"after the client upgrades to a different protocol."
msgstr ""
"HTTP 状态码 [code]426 Upgrade Required[/code]。服务器拒绝以当前协议执行请求,"
"但客户端升级到另一个协议之后可能会愿意执行。"

#: doc/classes/HTTPClient.xml:364
msgid ""
"HTTP status code [code]428 Precondition Required[/code]. The origin server "
"requires the request to be conditional."
msgstr ""
"HTTP 状态码 [code]428 Precondition Required[/code]。原始服务器要求进行条件请"
"求。"

#: doc/classes/HTTPClient.xml:367
msgid ""
"HTTP status code [code]429 Too Many Requests[/code]. The user has sent too "
"many requests in a given amount of time (see \"rate limiting\"). Back off "
"and increase time between requests or try again later."
msgstr ""
"HTTP 状态码 [code]429 Too Many Requests[/code]。用户在指定时间段中(见“限"
"流”)发送了过多的请求。静默一段时间后增加请求之间的时间间隔,稍后再试。"

#: doc/classes/HTTPClient.xml:370
msgid ""
"HTTP status code [code]431 Request Header Fields Too Large[/code]. The "
"server is unwilling to process the request because its header fields are too "
"large. The request MAY be resubmitted after reducing the size of the request "
"header fields."
msgstr ""
"HTTP 状态码 [code]431 Request Header Fields Too Large[/code]。服务器拒绝处理"
"请求,因为报头字段过大。请求可以在减小报头字段后重新提交。"

#: doc/classes/HTTPClient.xml:373
msgid ""
"HTTP status code [code]451 Response Unavailable For Legal Reasons[/code]. "
"The server is denying access to the resource as a consequence of a legal "
"demand."
msgstr ""
"HTTP 状态码 [code]451 Response Unavailable For Legal Reasons[/code]。服务器因"
"法律要求而拒绝访问该资源。"

#: doc/classes/HTTPClient.xml:376
msgid ""
"HTTP status code [code]500 Internal Server Error[/code]. The server "
"encountered an unexpected condition that prevented it from fulfilling the "
"request."
msgstr ""
"HTTP 状态码 [code]500 Internal Server Error[/code]。服务器遭遇预料之外的情"
"况,无法完成请求。"

#: doc/classes/HTTPClient.xml:379
msgid ""
"HTTP status code [code]501 Not Implemented[/code]. The server does not "
"support the functionality required to fulfill the request."
msgstr ""
"HTTP 状态码 [code]501 Not Implemented[/code]。服务器不支持完成请求所需的功"
"能。"

#: doc/classes/HTTPClient.xml:382
msgid ""
"HTTP status code [code]502 Bad Gateway[/code]. The server, while acting as a "
"gateway or proxy, received an invalid response from an inbound server it "
"accessed while attempting to fulfill the request. Usually returned by load "
"balancers or proxies."
msgstr ""
"HTTP 状态码 [code]502 Bad Gateway[/code]。网关或代理服务器尝试使用内部服务器"
"处理请求,但从该服务器收到了无效的响应。通常由负载均衡器或者代理服务器返回。"

#: doc/classes/HTTPClient.xml:385
msgid ""
"HTTP status code [code]503 Service Unavailable[/code]. The server is "
"currently unable to handle the request due to a temporary overload or "
"scheduled maintenance, which will likely be alleviated after some delay. Try "
"again later."
msgstr ""
"HTTP 状态码 [code]503 Service Unavailable[/code]。服务器目前无法处理请求,原"
"因是暂时过载或者处于定期维护状态,可能在一段延迟后就能恢复,请稍后再试。"

#: doc/classes/HTTPClient.xml:388
msgid ""
"HTTP status code [code]504 Gateway Timeout[/code]. The server, while acting "
"as a gateway or proxy, did not receive a timely response from an upstream "
"server it needed to access in order to complete the request. Usually "
"returned by load balancers or proxies."
msgstr ""
"HTTP 状态码 [code]504 Gateway Timeout[/code]。网关或代理服务器尝试使用上游服"
"务器处理请求,但无法在指定时间内从该服务器收到响应。通常由负载均衡器或者代理"
"服务器返回。"

#: doc/classes/HTTPClient.xml:391
msgid ""
"HTTP status code [code]505 HTTP Version Not Supported[/code]. The server "
"does not support, or refuses to support, the major version of HTTP that was "
"used in the request message."
msgstr ""
"HTTP 状态码 [code]505 HTTP Version Not Supported[/code]。服务器不支持或者拒绝"
"支持请求消息所使用的 HTTP 主版本。"

#: doc/classes/HTTPClient.xml:394
msgid ""
"HTTP status code [code]506 Variant Also Negotiates[/code]. The server has an "
"internal configuration error: the chosen variant resource is configured to "
"engage in transparent content negotiation itself, and is therefore not a "
"proper end point in the negotiation process."
msgstr ""
"HTTP 状态码 [code]506 Variant Also Negotiates[/code]。服务器存在内部配置错"
"误:所选的可变资源被配置为参与自身的透明内容交涉,因此不是交涉过程中的正确端"
"点。"

#: doc/classes/HTTPClient.xml:397
msgid ""
"HTTP status code [code]507 Insufficient Storage[/code]. The method could not "
"be performed on the resource because the server is unable to store the "
"representation needed to successfully complete the request."
msgstr ""
"HTTP 状态码 [code]507 Insufficient Storage[/code]。无法在该资源上执行该方法,"
"因为服务器无法保存成功完成请求所需的表示。"

#: doc/classes/HTTPClient.xml:400
msgid ""
"HTTP status code [code]508 Loop Detected[/code]. The server terminated an "
"operation because it encountered an infinite loop while processing a request "
"with \"Depth: infinity\". This status indicates that the entire operation "
"failed."
msgstr ""
"HTTP 状态码 [code]508 Loop Detected[/code]。服务器在处理“Depth: infinity”请求"
"时遇到了死循环并终止了操作。该状态表示该操作整体失败。"

#: doc/classes/HTTPClient.xml:403
msgid ""
"HTTP status code [code]510 Not Extended[/code]. The policy for accessing the "
"resource has not been met in the request. The server should send back all "
"the information necessary for the client to issue an extended request."
msgstr ""
"HTTP 状态码 [code]510 Not Extended[/code]。请求未满足访问该资源的策略。服务器"
"应当将所需信息返回给客户端,以便其提交后续请求。"

#: doc/classes/HTTPClient.xml:406
msgid ""
"HTTP status code [code]511 Network Authentication Required[/code]. The "
"client needs to authenticate to gain network access."
msgstr ""
"HTTP 状态码 [code]511 Network Authentication Required[/code]。客户端需要身份"
"认证才能访问网络。"

#: doc/classes/HTTPRequest.xml:4
msgid "A node with the ability to send HTTP(S) requests."
msgstr "具有发送 HTTP(S) 请求能力的节点。"

#: doc/classes/HTTPRequest.xml:7
#, fuzzy
msgid ""
"A node with the ability to send HTTP requests. Uses [HTTPClient] "
"internally.\n"
"Can be used to make HTTP requests, i.e. download or upload files or web "
"content via HTTP.\n"
"[b]Warning:[/b] See the notes and warnings on [HTTPClient] for limitations, "
"especially regarding SSL security.\n"
"[b]Example of contacting a REST API and printing one of its returned fields:"
"[/b]\n"
"[codeblock]\n"
"func _ready():\n"
"    # Create an HTTP request node and connect its completion signal.\n"
"    var http_request = HTTPRequest.new()\n"
"    add_child(http_request)\n"
"    http_request.connect(\"request_completed\", self, "
"\"_http_request_completed\")\n"
"\n"
"    # Perform a GET request. The URL below returns JSON as of writing.\n"
"    var error = http_request.request(\"https://httpbin.org/get\")\n"
"    if error != OK:\n"
"        push_error(\"An error occurred in the HTTP request.\")\n"
"\n"
"    # Perform a POST request. The URL below returns JSON as of writing.\n"
"    # Note: Don't make simultaneous requests using a single HTTPRequest "
"node.\n"
"    # The snippet below is provided for reference only.\n"
"    var body = {\"name\": \"Godette\"}\n"
"    error = http_request.request(\"https://httpbin.org/post\", [], true, "
"HTTPClient.METHOD_POST, body)\n"
"    if error != OK:\n"
"        push_error(\"An error occurred in the HTTP request.\")\n"
"\n"
"\n"
"# Called when the HTTP request is completed.\n"
"func _http_request_completed(result, response_code, headers, body):\n"
"    var response = parse_json(body.get_string_from_utf8())\n"
"\n"
"    # Will print the user agent string used by the HTTPRequest node (as "
"recognized by httpbin.org).\n"
"    print(response.headers[\"User-Agent\"])\n"
"[/codeblock]\n"
"[b]Example of loading and displaying an image using HTTPRequest:[/b]\n"
"[codeblock]\n"
"func _ready():\n"
"    # Create an HTTP request node and connect its completion signal.\n"
"    var http_request = HTTPRequest.new()\n"
"    add_child(http_request)\n"
"    http_request.connect(\"request_completed\", self, "
"\"_http_request_completed\")\n"
"\n"
"    # Perform the HTTP request. The URL below returns a PNG image as of "
"writing.\n"
"    var error = http_request.request(\"https://via.placeholder.com/512\")\n"
"    if error != OK:\n"
"        push_error(\"An error occurred in the HTTP request.\")\n"
"\n"
"\n"
"# Called when the HTTP request is completed.\n"
"func _http_request_completed(result, response_code, headers, body):\n"
"    var image = Image.new()\n"
"    var error = image.load_png_from_buffer(body)\n"
"    if error != OK:\n"
"        push_error(\"Couldn't load the image.\")\n"
"\n"
"    var texture = ImageTexture.new()\n"
"    texture.create_from_image(image)\n"
"\n"
"    # Display the image in a TextureRect node.\n"
"    var texture_rect = TextureRect.new()\n"
"    add_child(texture_rect)\n"
"    texture_rect.texture = texture\n"
"[/codeblock]\n"
"[b]Gzipped response bodies[/b]\n"
"HttpRequest will automatically handle decompression of response bodies.\n"
"A \"Accept-Encoding\" header will be automatically added to each of your "
"requests, unless one is already specified.\n"
"Any response with a \"Content-Encoding: gzip\" header will automatically be "
"decompressed and delivered to you as a uncompressed bytes."
msgstr ""
"具有发送 HTTP 请求能力的节点,内部使用 [HTTPClient]。\n"
"可以用来发送 HTTP 请求,即通过 HTTP 下载上传文件和网页内容。\n"
"[b]与 REST API 通信示例,输出所返回的字段:[/b]\n"
"[codeblock]\n"
"func _ready():\n"
"    # 创建 HTTP 请求节点并连接完成信号。\n"
"    var http_request = HTTPRequest.new()\n"
"    add_child(http_request)\n"
"    http_request.connect(\"request_completed\", self, "
"\"_http_request_completed\")\n"
"\n"
"    # 执行 GET 请求。下面的 URL 目前会返回 JSON。\n"
"    var error = http_request.request(\"https://httpbin.org/get\")\n"
"    if error != OK:\n"
"        push_error(\"HTTP 请求出错。\")\n"
"\n"
"    # 执行 POST 请求。下面的 URL 目前会返回 JSON。\n"
"    # 注意:不要使用同一个 HTTPRequest 节点同时进行多个请求\n"
"    # 下面的代码仅供参考。\n"
"    var body = {\"name\": \"Godette\"}\n"
"    var error = http_request.request(\"https://httpbin.org/post\", [], true, "
"HTTPClient.METHOD_POST, body)\n"
"    if error != OK:\n"
"        push_error(\"HTTP 请求出错。\")\n"
"\n"
"\n"
"# HTTP 请求完成时会被调用。\n"
"func _http_request_completed(result, response_code, headers, body):\n"
"    var response = parse_json(body.get_string_from_utf8())\n"
"\n"
"    # 会输出(被 httpbin.org 识别到的)HTTPRequest 节点所使用的用户代理字符"
"串。\n"
"    print(response.headers[\"User-Agent\"])\n"
"[/codeblock]\n"
"[b]使用 HTTPRequest 加载并显示图片示例:[/b]\n"
"[codeblock]\n"
"func _ready():\n"
"    # 创建 HTTP 请求节点并连接完成信号。\n"
"    var http_request = HTTPRequest.new()\n"
"    add_child(http_request)\n"
"    http_request.connect(\"request_completed\", self, "
"\"_http_request_completed\")\n"
"\n"
"    # 执行 HTTP 请求。下面的 URL 目前会返回 PNG 图片。\n"
"    var error = http_request.request(\"https://via.placeholder.com/512\")\n"
"    if error != OK:\n"
"        push_error(\"HTTP 请求出错。\")\n"
"\n"
"\n"
"# HTTP 请求完成时会被调用。\n"
"func _http_request_completed(result, response_code, headers, body):\n"
"    var image = Image.new()\n"
"    var error = image.load_png_from_buffer(body)\n"
"    if error != OK:\n"
"        push_error(\"无法加载图片\")\n"
"\n"
"    var texture = ImageTexture.new()\n"
"    texture.create_from_image(image)\n"
"\n"
"    # 在 TextureRect 节点中显示该图片。\n"
"    var texture_rect = TextureRect.new()\n"
"    add_child(texture_rect)\n"
"    texture_rect.texture = texture\n"
"[/codeblock]\n"
"[b]注意:[/b] 当执行从导出到 HTML5 的项目发出的 HTTP 请求时,请记住,远程服务"
"器可能由于 [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/"
"url] 的关系而禁止来自站外的请求。如果服务器是你自己搭建的,可以通过添加 "
"[code]Access-Control-Allow-Origin: *[/code] HTTP 报头来允许站外请求。"

#: doc/classes/HTTPRequest.xml:74
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/networking/http_request_class."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/networking/"
"http_request_class.html"

#: doc/classes/HTTPRequest.xml:81
msgid "Cancels the current request."
msgstr "取消当前请求。"

#: doc/classes/HTTPRequest.xml:87
msgid ""
"Returns the response body length.\n"
"[b]Note:[/b] Some Web servers may not send a body length. In this case, the "
"value returned will be [code]-1[/code]. If using chunked transfer encoding, "
"the body length will also be [code]-1[/code]."
msgstr ""
"返回响应体长度。\n"
"[b]注意:[/b] 部分 Web 服务器可能不发送响应体长度,此时返回值将为 [code]-1[/"
"code]。如果使用分块传输编码,响应体的长度也将为 [code]-1[/code]。"

#: doc/classes/HTTPRequest.xml:94
msgid "Returns the amount of bytes this HTTPRequest downloaded."
msgstr "返回该 HTTPRequest 已下载的字节数。"

#: doc/classes/HTTPRequest.xml:100
msgid ""
"Returns the current status of the underlying [HTTPClient]. See [enum "
"HTTPClient.Status]."
msgstr "返回内部 [HTTPClient] 的当前状态。见 [enum HTTPClient.Status]。"

#: doc/classes/HTTPRequest.xml:111
#, fuzzy
msgid ""
"Creates request on the underlying [HTTPClient]. If there is no configuration "
"errors, it tries to connect using [method HTTPClient.connect_to_host] and "
"passes parameters onto [method HTTPClient.request].\n"
"Returns [constant OK] if request is successfully created. (Does not imply "
"that the server has responded), [constant ERR_UNCONFIGURED] if not in the "
"tree, [constant ERR_BUSY] if still processing previous request, [constant "
"ERR_INVALID_PARAMETER] if given string is not a valid URL format, or "
"[constant ERR_CANT_CONNECT] if not using thread and the [HTTPClient] cannot "
"connect to host.\n"
"[b]Note:[/b] When [code]method[/code] is [constant HTTPClient.METHOD_GET], "
"the payload sent via [code]request_data[/code] might be ignored by the "
"server or even cause the server to reject the request (check [url=https://"
"datatracker.ietf.org/doc/html/rfc7231#section-4.3.1]RFC 7231 section 4.3.1[/"
"url] for more details). As a workaround, you can send data as a query string "
"in the URL. See [method String.http_escape] for an example."
msgstr ""
"使用内部的 [HTTPClient] 创建请求。如果没有配置错误,将使用 [method "
"HTTPClient.connect_to_host] 连接,并将参数传递给 [method HTTPClient."
"request]。\n"
"成功创建请求时返回 [constant OK](并不意味着服务器已响应),不在场景树中时返"
"回 [constant ERR_UNCONFIGURED],仍在处理上一个请求时返回 [constant "
"ERR_BUSY],给出的字符串不是有效的 URL 格式时返回 [constant "
"ERR_INVALID_PARAMETER],未启用多线程并且 [HTTPClient] 无法连接到主机时返回 "
"[constant ERR_CANT_CONNECT]。"

#: doc/classes/HTTPRequest.xml:124
#, fuzzy
msgid ""
"Creates request on the underlying [HTTPClient] using a raw array of bytes "
"for the request body. If there is no configuration errors, it tries to "
"connect using [method HTTPClient.connect_to_host] and passes parameters onto "
"[method HTTPClient.request].\n"
"Returns [constant OK] if request is successfully created. (Does not imply "
"that the server has responded), [constant ERR_UNCONFIGURED] if not in the "
"tree, [constant ERR_BUSY] if still processing previous request, [constant "
"ERR_INVALID_PARAMETER] if given string is not a valid URL format, or "
"[constant ERR_CANT_CONNECT] if not using thread and the [HTTPClient] cannot "
"connect to host."
msgstr ""
"使用内部的 [HTTPClient] 创建请求。如果没有配置错误,将使用 [method "
"HTTPClient.connect_to_host] 连接,并将参数传递给 [method HTTPClient."
"request]。\n"
"成功创建请求时返回 [constant OK](并不意味着服务器已响应),不在场景树中时返"
"回 [constant ERR_UNCONFIGURED],仍在处理上一个请求时返回 [constant "
"ERR_BUSY],给出的字符串不是有效的 URL 格式时返回 [constant "
"ERR_INVALID_PARAMETER],未启用多线程并且 [HTTPClient] 无法连接到主机时返回 "
"[constant ERR_CANT_CONNECT]。"

#: doc/classes/HTTPRequest.xml:131
msgid ""
"If [code]true[/code], this header will be added to each request: "
"[code]Accept-Encoding: gzip, deflate[/code] telling servers that it's okay "
"to compress response bodies.\n"
"Any Reponse body declaring a [code]Content-Encoding[/code] of either "
"[code]gzip[/code] or [code]deflate[/code] will then be automatically "
"decompressed, and the uncompressed bytes will be delivered via "
"[code]request_completed[/code].\n"
"If the user has specified their own [code]Accept-Encoding[/code] header, "
"then no header will be added regaurdless of [code]accept_gzip[/code].\n"
"If [code]false[/code] no header will be added, and no decompression will be "
"performed on response bodies. The raw bytes of the response body will be "
"returned via [code]request_completed[/code]."
msgstr ""

#: doc/classes/HTTPRequest.xml:137
msgid ""
"Maximum allowed size for response bodies. If the response body is "
"compressed, this will be used as the maximum allowed size for the "
"decompressed body."
msgstr ""

#: doc/classes/HTTPRequest.xml:140
#, fuzzy
msgid ""
"The size of the buffer used and maximum bytes to read per iteration. See "
"[member HTTPClient.read_chunk_size].\n"
"Set this to a lower value (e.g. 4096 for 4 KiB) when downloading small files "
"to decrease memory usage at the cost of download speeds."
msgstr ""
"每次迭代时所使用的缓冲区大小,即每次迭代时所能读取的最大字节数。见 [member "
"HTTPClient.read_chunk_size]。\n"
"下载大文件时将该值调大(例如下载 64 KiB 时设为 65536)可以用更大的内存消耗换"
"取更快的下载速度。"

#: doc/classes/HTTPRequest.xml:144
msgid "The file to download into. Will output any received file into it."
msgstr "下载到的文件。将在其中写入任何收到的文件。"

#: doc/classes/HTTPRequest.xml:147
msgid "Maximum number of allowed redirects."
msgstr "允许的最大重定向数。"

#: doc/classes/HTTPRequest.xml:152
msgid "If [code]true[/code], multithreading is used to improve performance."
msgstr "为 [code]true[/code] 时,将启用多线程提高性能。"

#: doc/classes/HTTPRequest.xml:162
msgid "Emitted when a request is completed."
msgstr "请求完成时触发。"

#: doc/classes/HTTPRequest.xml:168
msgid "Request successful."
msgstr "请求成功。"

#: doc/classes/HTTPRequest.xml:173
msgid "Request failed while connecting."
msgstr "连接时请求失败。"

#: doc/classes/HTTPRequest.xml:176
msgid "Request failed while resolving."
msgstr "解析时请求失败。"

#: doc/classes/HTTPRequest.xml:179
msgid "Request failed due to connection (read/write) error."
msgstr "因连接(读写)错误而失败。"

#: doc/classes/HTTPRequest.xml:182
msgid "Request failed on SSL handshake."
msgstr "SSL 握手时请求失败。"

#: doc/classes/HTTPRequest.xml:185
msgid "Request does not have a response (yet)."
msgstr "请求(目前还)没有获得相应。"

#: doc/classes/HTTPRequest.xml:190
msgid "Request exceeded its maximum size limit, see [member body_size_limit]."
msgstr "请求超出了大小上限,见 [member body_size_limit]。"

#: doc/classes/HTTPRequest.xml:193
msgid "Request failed (currently unused)."
msgstr "请求失败(目前未使用)。"

#: doc/classes/HTTPRequest.xml:196
msgid "HTTPRequest couldn't open the download file."
msgstr "HTTPRequest 无法打开下载文件。"

#: doc/classes/HTTPRequest.xml:199
msgid "HTTPRequest couldn't write to the download file."
msgstr "HTTPRequest 无法写入下载文件。"

#: doc/classes/HTTPRequest.xml:202
msgid "Request reached its maximum redirect limit, see [member max_redirects]."
msgstr "请求超出了重定向次数上限,见 [member max_redirects]。"

#: doc/classes/Image.xml:4
msgid "Image datatype."
msgstr "图像数据类型。"

#: doc/classes/Image.xml:7
#, fuzzy
msgid ""
"Native image datatype. Contains image data which can be converted to an "
"[ImageTexture] and provides commonly used [i]image processing[/i] methods. "
"The maximum width and height for an [Image] are [constant MAX_WIDTH] and "
"[constant MAX_HEIGHT].\n"
"An [Image] cannot be assigned to a [code]texture[/code] property of an "
"object directly (such as [Sprite]), and has to be converted manually to an "
"[ImageTexture] first.\n"
"[b]Note:[/b] The maximum image size is 16384×16384 pixels due to graphics "
"hardware limitations. Larger images may fail to import."
msgstr ""
"原生图像数据类型。包含可转换为 [Texture2D]图像数据,以及与之交互的多种方法。"
"[Image] 的最大宽度和高度为 [constant MAX_WIDTH] 和 [constant MAX_HEIGHT] 。\n"
"[b]注:[/b] 由于图形硬件的限制,最大图像大小为 16384×16384 像素。较大的图像将"
"无法导入。"

#: doc/classes/Image.xml:12 doc/classes/ImageTexture.xml:31
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/workflow/assets/"
"importing_images.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/workflow/assets/"
"importing_scenes.html#custom-script"

#: doc/classes/Image.xml:21
msgid ""
"Alpha-blends [code]src_rect[/code] from [code]src[/code] image to this image "
"at coordinates [code]dest[/code]."
msgstr ""
"将 [code]src_rect[/code] 从 [code]src[/code] 图像与坐标 [code]dest[/code] 处"
"的该图像进行 Alpha 混合。"

#: doc/classes/Image.xml:31
msgid ""
"Alpha-blends [code]src_rect[/code] from [code]src[/code] image to this image "
"using [code]mask[/code] image at coordinates [code]dst[/code]. Alpha "
"channels are required for both [code]src[/code] and [code]mask[/code]. "
"[code]dst[/code] pixels and [code]src[/code] pixels will blend if the "
"corresponding mask pixel's alpha value is not 0. [code]src[/code] image and "
"[code]mask[/code] image [b]must[/b] have the same size (width and height) "
"but they can have different formats."
msgstr ""
"从坐标[code]dst[/code]处开始,对[code]src_rect[/code]截取区域的[code]src[/"
"code]源图像使用[code]mask[/code]图像进行Alpha混合到此图像。[code]src[/code]和"
"[code]mask[/code]都需要Alpha通道。如果相应的遮罩(mask)像素的Alpha不是0,在坐"
"标[code]dst[/code]处的像素和[code]src[/code]像素将会混合。[code]src[/code]图"
"像和[code]mask[/code]图像[b]必须[/b]有相同的尺寸,即宽度和高度,但它们可以有"
"不同的格式。"

#: doc/classes/Image.xml:40
msgid ""
"Copies [code]src_rect[/code] from [code]src[/code] image to this image at "
"coordinates [code]dst[/code]."
msgstr ""
"将指定[code]src[/code]源图像按[code]dst[/code]为起点坐标,以 [code]src_rect[/"
"code] 为矩形截取区域复制到此图像中。"

#: doc/classes/Image.xml:50
msgid ""
"Blits [code]src_rect[/code] area from [code]src[/code] image to this image "
"at the coordinates given by [code]dst[/code]. [code]src[/code] pixel is "
"copied onto [code]dst[/code] if the corresponding [code]mask[/code] pixel's "
"alpha value is not 0. [code]src[/code] image and [code]mask[/code] image "
"[b]must[/b] have the same size (width and height) but they can have "
"different formats."
msgstr ""
"将指定[code]src[/code]源图像按[code]dst[/code]为起点坐标,以 [code]src_rect[/"
"code] 为矩形截取区域复制到此图像中。如果对应的[code]mask[/code]像素的alpha值"
"不是0,[code]src[/code]像素将被复制到[code]dst[/code]上。[code]src[/code] 图"
"像和 [code]mask[/code] ] 图像 [b] 必须[/b] 具有相同的尺寸(宽度和高度),但它"
"们可以具有不同的格式。"

#: doc/classes/Image.xml:57
msgid ""
"Converts a bumpmap to a normalmap. A bumpmap provides a height offset per-"
"pixel, while a normalmap provides a normal direction per pixel."
msgstr ""
"将凹凸贴图转换为法线贴图。凹凸贴图提供每个像素的高度偏移,而法线贴图提供每个"
"像素的法线方向。"

#: doc/classes/Image.xml:63
msgid "Removes the image's mipmaps."
msgstr "删除图像的 mipmap(纹理映射技术)。"

#: doc/classes/Image.xml:72
msgid ""
"Compresses the image to use less memory. Can not directly access pixel data "
"while the image is compressed. Returns error if the chosen compression mode "
"is not available. See [enum CompressMode] and [enum CompressSource] "
"constants."
msgstr ""
"压缩图像以减少内存的使用。当图像被压缩时,不能直接访问像素数据。如果选择的压"
"缩模式不可用,则返回错误。参见 [enum CompressMode] 和 [enum CompressSource] "
"常量。"

#: doc/classes/Image.xml:79
msgid "Converts the image's format. See [enum Format] constants."
msgstr "转换图像的格式。参见[enum Format]常量。"

#: doc/classes/Image.xml:86
msgid "Copies [code]src[/code] image to this image."
msgstr "将[code]src[/code]图像复制到此图像。"

#: doc/classes/Image.xml:96
msgid ""
"Creates an empty image of given size and format. See [enum Format] "
"constants. If [code]use_mipmaps[/code] is [code]true[/code] then generate "
"mipmaps for this image. See the [method generate_mipmaps]."
msgstr ""
"创建一个给定大小和格式的空图像。见[enum Format]常量。如果[code]use_mipmaps[/"
"code]是[code]true[/code],那么为这个图像生成mipmaps。参见[method "
"generate_mipmaps]。"

#: doc/classes/Image.xml:107
msgid ""
"Creates a new image of given size and format. See [enum Format] constants. "
"Fills the image with the given raw data. If [code]use_mipmaps[/code] is "
"[code]true[/code] then loads mipmaps for this image from [code]data[/code]. "
"See [method generate_mipmaps]."
msgstr ""
"创建一个给定大小和格式的新图像。参见[enum Format]常量。用给定的原始数据填充图"
"像。如果[code]use_mipmaps[/code]是[code]true[/code],那么从[code]data[/code]"
"为这个图像加载mipmaps。参见[method generate_mipmaps]。"

#: doc/classes/Image.xml:115
msgid ""
"Crops the image to the given [code]width[/code] and [code]height[/code]. If "
"the specified size is larger than the current size, the extra area is filled "
"with black pixels."
msgstr ""
"将图像裁剪成给定的[code]width[/code]和[code]height[/code]。如果指定的尺寸大于"
"当前尺寸,多余的区域将被填充为黑色像素。"

#: doc/classes/Image.xml:121
msgid ""
"Decompresses the image if it is compressed. Returns an error if decompress "
"function is not available."
msgstr "如果图像被压缩,则解压缩图像。如果解压缩功能不可用,则返回错误。"

#: doc/classes/Image.xml:127
msgid ""
"Returns [constant ALPHA_BLEND] if the image has data for alpha values. "
"Returns [constant ALPHA_BIT] if all the alpha values are stored in a single "
"bit. Returns [constant ALPHA_NONE] if no data for alpha values is found."
msgstr ""
"如果图像有alpha值的数据,则返回[constant ALPHA_BLEND]。如果所有的alpha值都存"
"储在一个位上,则返回[constant ALPHA_BIT]。如果没有找到alpha值的数据,则返回"
"[constant ALPHA_NONE]。"

#: doc/classes/Image.xml:133
msgid ""
"Stretches the image and enlarges it by a factor of 2. No interpolation is "
"done."
msgstr ""

#: doc/classes/Image.xml:140
msgid "Fills the image with a given [Color]."
msgstr "用给定的 [Color] 填充图像。"

#: doc/classes/Image.xml:146
msgid "Blends low-alpha pixels with nearby pixels."
msgstr "将低透明度(alpha)像素与附近像素混合。"

#: doc/classes/Image.xml:152
msgid "Flips the image horizontally."
msgstr "水平翻转图像。"

#: doc/classes/Image.xml:158
msgid "Flips the image vertically."
msgstr "垂直翻转图像。"

#: doc/classes/Image.xml:165
#, fuzzy
msgid ""
"Generates mipmaps for the image. Mipmaps are precalculated lower-resolution "
"copies of the image that are automatically used if the image needs to be "
"scaled down when rendered. They help improve image quality and performance "
"when rendering. This method returns an error if the image is compressed, in "
"a custom format, or if the image's width/height is [code]0[/code].\n"
"[b]Note:[/b] Mipmap generation is done on the CPU, is single-threaded and is "
"[i]always[/i] done on the main thread. This means generating mipmaps will "
"result in noticeable stuttering during gameplay, even if [method "
"generate_mipmaps] is called from a [Thread]."
msgstr ""
"为图像生成mipmaps。Mipmaps是预先计算好的、分辨率较低的图像副本。如果图像在渲"
"染时需要缩小,就会自动使用Mipmaps。这可以提高图像的质量和渲染的性能。如果图像"
"被压缩,或者是自定义格式,或者图像的宽度/高度为0,则返回一个错误。"

#: doc/classes/Image.xml:172
#, fuzzy
msgid "Returns a copy of the image's raw data."
msgstr "返回图像的原始数据。"

#: doc/classes/Image.xml:178
msgid "Returns the image's format. See [enum Format] constants."
msgstr "返回图像的格式。参见 [enum Format] 常量。"

#: doc/classes/Image.xml:184
msgid "Returns the image's height."
msgstr "返回图像的高度。"

#: doc/classes/Image.xml:191
msgid ""
"Returns the offset where the image's mipmap with index [code]mipmap[/code] "
"is stored in the [code]data[/code] dictionary."
msgstr ""
"返回存储在图像 [code] data [/code] 字典中索引为 [code]mipmap[/code] 的偏移"
"量。"

#: doc/classes/Image.xml:199
#, fuzzy
msgid ""
"Returns the color of the pixel at [code](x, y)[/code] if the image is "
"locked. If the image is unlocked, it always returns a [Color] with the value "
"[code](0, 0, 0, 1.0)[/code]. This is the same as [method get_pixelv], but "
"two integer arguments instead of a Vector2 argument."
msgstr ""
"返回 [code](x, y)[/code] 处像素的颜色。这与[method get_pixelv]相同,但有两个"
"整数参数,而不是一个[Vector2]参数。"

#: doc/classes/Image.xml:206
#, fuzzy
msgid ""
"Returns the color of the pixel at [code]src[/code] if the image is locked. "
"If the image is unlocked, it always returns a [Color] with the value [code]"
"(0, 0, 0, 1.0)[/code]. This is the same as [method get_pixel], but with a "
"Vector2 argument instead of two integer arguments."
msgstr ""
"返回[code](x,y)[/code]处像素的颜色。这与[method get_pixel]相同,但用一个"
"[Vector2]参数代替了两个整数参数。"

#: doc/classes/Image.xml:213
msgid ""
"Returns a new image that is a copy of the image's area specified with "
"[code]rect[/code]."
msgstr "返回一个新图像,它是用 [code]rect[/code] 所截取图像区域的副本。"

#: doc/classes/Image.xml:219
msgid "Returns the image's size (width and height)."
msgstr "返回图像的大小(宽度和高度)。"

#: doc/classes/Image.xml:225
msgid ""
"Returns a [Rect2] enclosing the visible portion of the image, considering "
"each pixel with a non-zero alpha channel as visible."
msgstr ""
"返回一个包围图像可见部分的[Rect2]矩形,当每个像素alpha通道值非零时(即不透明)"
"视为可见。"

#: doc/classes/Image.xml:231
msgid "Returns the image's width."
msgstr "返回图像的宽度。"

#: doc/classes/Image.xml:237
msgid "Returns [code]true[/code] if the image has generated mipmaps."
msgstr "如果图像已经生成mipmaps,则返回[code]true[/code]。"

#: doc/classes/Image.xml:243
msgid "Returns [code]true[/code] if the image is compressed."
msgstr "如果图像被压缩,返回[code]true[/code]。"

#: doc/classes/Image.xml:249
msgid "Returns [code]true[/code] if the image has no data."
msgstr "如果图像没有数据,返回[code]true[/code]。"

#: doc/classes/Image.xml:255
msgid ""
"Returns [code]true[/code] if all the image's pixels have an alpha value of "
"0. Returns [code]false[/code] if any pixel has an alpha value higher than 0."
msgstr ""
"如果所有图像的像素的透明度(alpha )都是0,则返回[code]true[/code]。如果任何"
"像素的透明度(alpha )高于0,则返回[code]false[/code]。"

#: doc/classes/Image.xml:262
#, fuzzy
msgid ""
"Loads an image from file [code]path[/code]. See [url=https://docs."
"godotengine.org/en/3.4/getting_started/workflow/assets/importing_images."
"html#supported-image-formats]Supported image formats[/url] for a list of "
"supported image formats and limitations.\n"
"[b]Warning:[/b] This method should only be used in the editor or in cases "
"when you need to load external images at run-time, such as images located at "
"the [code]user://[/code] directory, and may not work in exported projects.\n"
"See also [ImageTexture] description for usage examples."
msgstr ""
"从文件路径[code]path[/code]加载图像。有关支持的图像格式和限制的列表,请参见"
"[url=https://docs.godotengine.org/zh_CN/latest/getting_started/workflow/"
"assets/importing_images.html#supported-image-formats]支持的图像格式[/url]。"

#: doc/classes/Image.xml:271
msgid ""
"Loads an image from the binary contents of a BMP file.\n"
"[b]Note:[/b] Godot's BMP module doesn't support 16-bit per pixel images. "
"Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported."
msgstr ""

#: doc/classes/Image.xml:279
msgid "Loads an image from the binary contents of a JPEG file."
msgstr "从 JPEG 文件的二进制内容加载图像。"

#: doc/classes/Image.xml:286
msgid "Loads an image from the binary contents of a PNG file."
msgstr "从 PNG 文件的二进制内容加载图像。"

#: doc/classes/Image.xml:293
msgid "Loads an image from the binary contents of a TGA file."
msgstr "从 TGA 文件的二进制内容加载图像。"

#: doc/classes/Image.xml:300
msgid "Loads an image from the binary contents of a WebP file."
msgstr "从 WebP 文件的二进制内容加载图像。"

#: doc/classes/Image.xml:306
msgid ""
"Locks the data for reading and writing access. Sends an error to the console "
"if the image is not locked when reading or writing a pixel."
msgstr ""

#: doc/classes/Image.xml:312
msgid ""
"Converts the image's data to represent coordinates on a 3D plane. This is "
"used when the image represents a normalmap. A normalmap can add lots of "
"detail to a 3D surface without increasing the polygon count."
msgstr ""
"转换图像的数据以表示 3D 平面上的坐标。当图像表示法线贴图时使用。法线贴图可以"
"在不增加多边形数量的情况下向 3D 表面添加大量细节。"

#: doc/classes/Image.xml:318
msgid ""
"Multiplies color values with alpha values. Resulting color values for a "
"pixel are [code](color * alpha)/256[/code]."
msgstr ""
"将颜色值与alpha值相乘。一个像素的结果颜色值是[code](color * alpha)/256[/"
"code]。"

#: doc/classes/Image.xml:327
#, fuzzy
msgid ""
"Resizes the image to the given [code]width[/code] and [code]height[/code]. "
"New pixels are calculated using the [code]interpolation[/code] mode defined "
"via [enum Interpolation] constants."
msgstr ""
"将图像调整到给定的[code]宽度[/code]和[code]高度[/code]。新的像素是用"
"[code]interpolation[/code](插值)计算的。见[code]interpolation[/code]常量。"

#: doc/classes/Image.xml:335
#, fuzzy
msgid ""
"Resizes the image to the nearest power of 2 for the width and height. If "
"[code]square[/code] is [code]true[/code] then set width and height to be the "
"same. New pixels are calculated using the [code]interpolation[/code] mode "
"defined via [enum Interpolation] constants."
msgstr ""
"将图像的宽度和高度调整为最接近的 2 次幂。如果 [code]square[/code] 为 "
"[code]true[/code],则将宽度和高度设置为相同。"

#: doc/classes/Image.xml:341
msgid ""
"Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image."
msgstr "将标准 RGBE(红绿蓝指数)图像转换为 sRGB 图像。"

#: doc/classes/Image.xml:349
#, fuzzy
msgid ""
"Saves the image as an EXR file to [code]path[/code]. If [code]grayscale[/"
"code] is [code]true[/code] and the image has only one channel, it will be "
"saved explicitly as monochrome rather than one red channel. This function "
"will return [constant ERR_UNAVAILABLE] if Godot was compiled without the "
"TinyEXR module.\n"
"[b]Note:[/b] The TinyEXR module is disabled in non-editor builds, which "
"means [method save_exr] will return [constant ERR_UNAVAILABLE] when it is "
"called from an exported project."
msgstr ""
"将图像作为EXR文件保存到[code]path[/code]。如果[code]grayscale[/code]是"
"[code]true[/code],并且图像只有一个通道,它将被明确保存为单色而不是一个红色通"
"道。如果Godot在编译时没有启用TinyEXR模块,这个函数将返回[constant "
"ERR_UNAVAILABLE]。"

#: doc/classes/Image.xml:357
msgid "Saves the image as a PNG file to [code]path[/code]."
msgstr "将图像作为 PNG 文件保存到 [code]path[/code]。"

#: doc/classes/Image.xml:371
#, fuzzy
msgid ""
"Sets the [Color] of the pixel at [code](x, y)[/code] if the image is locked. "
"Example:\n"
"[codeblock]\n"
"var img = Image.new()\n"
"img.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n"
"img.lock()\n"
"img.set_pixel(x, y, color) # Works\n"
"img.unlock()\n"
"img.set_pixel(x, y, color) # Does not have an effect\n"
"[/codeblock]"
msgstr ""
"设置[code](x, y)[/code]处的像素的[Color]。示例:\n"
"[codeblock]\n"
"var img = Image.new()\n"
"img.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n"
"img.set_pixel(x, y, color)\n"
"[/codeblock]"

#: doc/classes/Image.xml:387
#, fuzzy
msgid ""
"Sets the [Color] of the pixel at [code](dst.x, dst.y)[/code] if the image is "
"locked. Note that the [code]dst[/code] values must be integers. Example:\n"
"[codeblock]\n"
"var img = Image.new()\n"
"img.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n"
"img.lock()\n"
"img.set_pixelv(Vector2(x, y), color) # Works\n"
"img.unlock()\n"
"img.set_pixelv(Vector2(x, y), color) # Does not have an effect\n"
"[/codeblock]"
msgstr ""
"设置[code](dst.x, dst.y)[/code]处像素的[Color]。注意,[code]dst[/code]的值必"
"须是整数。例子。\n"
"[codeblock]\n"
"var img = Image.new()\n"
"img.create(img_width, img_height, false, Image.FORMAT_RGBA8)\n"
"img.set_pixelv(Vector2(x, y), color)\n"
"[/codeblock]"

#: doc/classes/Image.xml:401
msgid "Shrinks the image by a factor of 2."
msgstr "将图像缩小2倍。"

#: doc/classes/Image.xml:407
msgid "Converts the raw data from the sRGB colorspace to a linear scale."
msgstr "将原始数据从 sRGB 色彩空间转换为线性比例。"

#: doc/classes/Image.xml:413
msgid "Unlocks the data and prevents changes."
msgstr ""

#: doc/classes/Image.xml:419
#, fuzzy
msgid ""
"Holds all the image's color data in a given format. See [enum Format] "
"constants."
msgstr "以给定的格式保存图像的所有颜色数据。参见[enum Format]常量。"

#: doc/classes/Image.xml:424
msgid "The maximal width allowed for [Image] resources."
msgstr "[Image] 资源允许的最大宽度。"

#: doc/classes/Image.xml:427
msgid "The maximal height allowed for [Image] resources."
msgstr "[Image] 资源允许的最大高度。"

#: doc/classes/Image.xml:430
msgid "Texture format with a single 8-bit depth representing luminance."
msgstr "纹理格式,具有代表亮度的单一8位深度。"

#: doc/classes/Image.xml:433
msgid ""
"OpenGL texture format with two values, luminance and alpha each stored with "
"8 bits."
msgstr "OpenGL 纹理格式,具有两个值,亮度和 alpha,每个值以 8 位存储。"

#: doc/classes/Image.xml:436
msgid ""
"OpenGL texture format [code]RED[/code] with a single component and a "
"bitdepth of 8."
msgstr "OpenGL纹理格式[code]RED[/code],具有单一分量,位深为8。"

#: doc/classes/Image.xml:439
msgid ""
"OpenGL texture format [code]RG[/code] with two components and a bitdepth of "
"8 for each."
msgstr "OpenGL 纹理格式 [code]RG[/code],具有两个部分,每个部分的位深度为 8。"

#: doc/classes/Image.xml:442
msgid ""
"OpenGL texture format [code]RGB[/code] with three components, each with a "
"bitdepth of 8.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"OpenGL 纹理格式 [code]RGB[/code] 具有三个部分,每个分量部分的位深度为 8。\n"
"[b]注意:[/b]创建 [ImageTexture] 时,会执行sRGB到线性色彩空间的转换。"

#: doc/classes/Image.xml:446
msgid ""
"OpenGL texture format [code]RGBA[/code] with four components, each with a "
"bitdepth of 8.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"OpenGL 纹理格式 [code]RGBA[/code] 有四个部分,每个分量部分的位深度为 8。\n"
"[b]注意:[/b]创建 [ImageTexture] 时,会执行sRGB到线性色彩空间的转换。"

#: doc/classes/Image.xml:450
msgid ""
"OpenGL texture format [code]RGBA[/code] with four components, each with a "
"bitdepth of 4."
msgstr ""
"OpenGL 纹理格式 [code]RGBA[/code] 有四个部分,每个分量部分的位深度为 4。"

#: doc/classes/Image.xml:453
#, fuzzy
msgid ""
"OpenGL texture format [code]GL_RGB5_A1[/code] where 5 bits of depth for each "
"component of RGB and one bit for alpha."
msgstr "OpenGL 纹理格式 [code]RG[/code],具有两个部分,每个部分的位深度为 8。"

#: doc/classes/Image.xml:456
msgid ""
"OpenGL texture format [code]GL_R32F[/code] where there's one component, a 32-"
"bit floating-point value."
msgstr "OpenGL 纹理格式 [code]GL_R32F[/code],其中有一个分量,是32 位浮点值。"

#: doc/classes/Image.xml:459
msgid ""
"OpenGL texture format [code]GL_RG32F[/code] where there are two components, "
"each a 32-bit floating-point values."
msgstr ""
"OpenGL 纹理格式 [code]GL_RG32F[/code] 这里有两个部分,每个部分是一个 32 位浮"
"点值。"

#: doc/classes/Image.xml:462
msgid ""
"OpenGL texture format [code]GL_RGB32F[/code] where there are three "
"components, each a 32-bit floating-point values."
msgstr ""
"OpenGL纹理格式[code]GL_RGB32F[/code],其中有三个部分,每个部分都是32位浮点"
"值。"

#: doc/classes/Image.xml:465
msgid ""
"OpenGL texture format [code]GL_RGBA32F[/code] where there are four "
"components, each a 32-bit floating-point values."
msgstr ""
"OpenGL纹理格式[code]GL_RGBA32F[/code],其中有四个部分,每个部分都是32位浮点"
"值。"

#: doc/classes/Image.xml:468
msgid ""
"OpenGL texture format [code]GL_R32F[/code] where there's one component, a 16-"
"bit \"half-precision\" floating-point value."
msgstr ""
"OpenGL纹理格式[code]GL_R32F[/code],其中有一个分量,即16位 \"半精度 \"浮点"
"值。"

#: doc/classes/Image.xml:471
msgid ""
"OpenGL texture format [code]GL_RG32F[/code] where there are two components, "
"each a 16-bit \"half-precision\" floating-point value."
msgstr ""
"OpenGL纹理格式[code]GL_RG32F[/code],其中有两个部分,每个部分都是16位 \"半精"
"度 \"浮点值。"

#: doc/classes/Image.xml:474
msgid ""
"OpenGL texture format [code]GL_RGB32F[/code] where there are three "
"components, each a 16-bit \"half-precision\" floating-point value."
msgstr ""
"OpenGL纹理格式[code]GL_RGB32F[/code],其中有三个部分,每个部分都是16位 \"半精"
"度 \"浮点值。"

#: doc/classes/Image.xml:477
msgid ""
"OpenGL texture format [code]GL_RGBA32F[/code] where there are four "
"components, each a 16-bit \"half-precision\" floating-point value."
msgstr ""
"OpenGL纹理格式[code]GL_RGBA32F[/code],其中有四个部分,每个都是16位\"半精度 "
"\"浮点值。"

#: doc/classes/Image.xml:480
msgid ""
"A special OpenGL texture format where the three color components have 9 bits "
"of precision and all three share a single 5-bit exponent."
msgstr ""
"一种特殊的OpenGL纹理格式,其中三个颜色成分的精度为9位,所有三个成分共享一个5"
"比特位的指数。"

#: doc/classes/Image.xml:483
msgid ""
"The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] "
"texture format that uses Block Compression 1, and is the smallest variation "
"of S3TC, only providing 1 bit of alpha and color data being premultiplied "
"with alpha.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"[url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url]纹理格式"
"使用块压缩1,并且是S3TC的最小变化,仅提供1位的alpha和颜色数据 预乘以alpha.\n"
"[b]注意:[/b]创建ImageTexture时,将执行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:487
msgid ""
"The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] "
"texture format that uses Block Compression 2, and color data is interpreted "
"as not having been premultiplied by alpha. Well suited for images with sharp "
"alpha transitions between translucent and opaque areas.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"使用块压缩2的[url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/"
"url]贴图格式,并且颜色数据被解析为没有与alpha预先相乘.非常适用于具有 半透明和"
"不透明区域之间的清晰的alpha过渡.\n"
"[b]注意:[/b]创建ImageTexture时,将执行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:491
msgid ""
"The [url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url] "
"texture format also known as Block Compression 3 or BC3 that contains 64 "
"bits of alpha channel data followed by 64 bits of DXT1-encoded color data. "
"Color data is not premultiplied by alpha, same as DXT3. DXT5 generally "
"produces superior results for transparent gradients compared to DXT3.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"[url=https://en.wikipedia.org/wiki/S3_Texture_Compression]S3TC[/url]S3TC[/"
"url] 纹理格式也称为块压缩3或BC3,其中包含64位的alpha通道数据,后跟64位的DXT1编"
"码 颜色数据:颜色数据不会与DXT3预先乘以alpha.与DXT3相比,DXT5对于透明渐变通常会"
"产生更好的结果.\n"
"[b]注意:[/b]创建ImageTexture时,将执行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:495
msgid ""
"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
"Red_Green_Texture_Compression]Red Green Texture Compression[/url], "
"normalizing the red channel data using the same compression algorithm that "
"DXT5 uses for the alpha channel."
msgstr ""
"使用 [url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]"
"红绿贴图压缩[/url]的贴图格式,使用与DXT5用于alpha通道相同的压缩算法对红色通道"
"数据进行归一化."

#: doc/classes/Image.xml:498
msgid ""
"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
"Red_Green_Texture_Compression]Red Green Texture Compression[/url], "
"normalizing the red and green channel data using the same compression "
"algorithm that DXT5 uses for the alpha channel."
msgstr ""
"使用 [url=https://www.khronos.org/opengl/wiki/Red_Green_Texture_Compression]"
"红绿贴图压缩[/url]的贴图格式,使用与DXT5用于alpha的压缩算法相同的红绿数据通道."

#: doc/classes/Image.xml:501
msgid ""
"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
"BPTC_Texture_Compression]BPTC[/url] compression with unsigned normalized "
"RGBA components.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"使用 [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC压"
"缩[/url] 和无符号归一化RGBA分量的贴图格式.\n"
"[b]注意:[/b]创建[ImageTexture]时,将执行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:505
msgid ""
"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
"BPTC_Texture_Compression]BPTC[/url] compression with signed floating-point "
"RGB components."
msgstr ""
"使用 [url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC[/"
"url] 压缩和有符号浮点RGB分量的贴图格式."

#: doc/classes/Image.xml:508
msgid ""
"Texture format that uses [url=https://www.khronos.org/opengl/wiki/"
"BPTC_Texture_Compression]BPTC[/url] compression with unsigned floating-point "
"RGB components."
msgstr ""
"使用[url=https://www.khronos.org/opengl/wiki/BPTC_Texture_Compression]BPTC[/"
"url] 压缩和无符号浮点RGB分量的贴图格式."

#: doc/classes/Image.xml:511
msgid ""
"Texture format used on PowerVR-supported mobile platforms, uses 2-bit color "
"depth with no alpha. More information can be found [url=https://en.wikipedia."
"org/wiki/PVRTC]here[/url].\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"PowerVR支持的移动平台上使用的贴图格式,使用2位颜色深度,没有alpha.更多信息可以"
"在 [url=https://en.wikipedia.org/wiki/PVRTC]这里[/url]找到.\n"
"[b]注意:[/b]在创建ImageTexture时,会进行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:515
msgid ""
"Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with an "
"alpha component."
msgstr ""
"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url]相同,但带有alpha组件."

#: doc/classes/Image.xml:518
msgid ""
"Similar to [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url], but with 4-"
"bit color depth and no alpha."
msgstr ""
"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC2[/url]相似,但具有4位色深且"
"没有Alpha通道."

#: doc/classes/Image.xml:521
msgid ""
"Same as [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC4[/url], but with an "
"alpha component."
msgstr ""
"与 [url=https://en.wikipedia.org/wiki/PVRTC]PVRTC4[/url]相同,但带有alpha组件."

#: doc/classes/Image.xml:524
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC1]Ericsson Texture Compression format 1[/"
"url], also referred to as \"ETC1\", and is part of the OpenGL ES graphics "
"standard. This format cannot store an alpha channel."
msgstr ""
"[url=https://en.wikipedia.org/wiki/Ericsson_Texture_Compression#ETC1]Ericsson"
"纹理压缩格式1[/url],又称 \"ETC1\",是OpenGL ES图形标准的一部分.这种格式不能存"
"储alpha通道."

#: doc/classes/Image.xml:527
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
"format 2[/url] ([code]R11_EAC[/code] variant), which provides one channel of "
"unsigned data."
msgstr ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹理压缩格式2[/url] "
"([code]R11_EACvariant[/code]),它提供一个无符号数据通道."

#: doc/classes/Image.xml:530
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
"format 2[/url] ([code]SIGNED_R11_EAC[/code] variant), which provides one "
"channel of signed data."
msgstr ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹理压缩格式2[/url]"
"([code]SIGNED_R11_EACvariant[/code]),它提供一个通道的有符号数据."

#: doc/classes/Image.xml:533
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
"format 2[/url] ([code]RG11_EAC[/code] variant), which provides two channels "
"of unsigned data."
msgstr ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹理压缩格式"
"2([code]RG11_EAC[/code] variant),它提供一个无符号数据通道."

#: doc/classes/Image.xml:536
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
"format 2[/url] ([code]SIGNED_RG11_EAC[/code] variant), which provides two "
"channels of signed data."
msgstr ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹理压缩格式2[/url]"
"([code]SIGNED_RG11_EAC [/code] 变体),它提供两个通道的有符号数据。"

#: doc/classes/Image.xml:539
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
"format 2[/url] ([code]RGB8[/code] variant), which is a follow-up of ETC1 and "
"compresses RGB888 data.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹理压缩格式2[/url] "
"([code]RGB8[/code] 变体),它是ETC1的后续版本,可压缩RGB888数据.\n"
"[b]注意:[/b]创建[ImageTexture]时,会进行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:543
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
"format 2[/url] ([code]RGBA8[/code]variant), which compresses RGBA8888 data "
"with full alpha support.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹理压缩格式2[/url]"
"([code]RGBA8[/code] 变体),它可以压缩RGBA8888数据,完全支持alpha.\n"
"[b]注意:[/b]在创建[ImageTexture]时,会进行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:547
msgid ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson Texture Compression "
"format 2[/url] ([code]RGB8_PUNCHTHROUGH_ALPHA1[/code] variant), which "
"compresses RGBA data to make alpha either fully transparent or fully "
"opaque.\n"
"[b]Note:[/b] When creating an [ImageTexture], an sRGB to linear color space "
"conversion is performed."
msgstr ""
"[url=https://en.wikipedia.org/wiki/"
"Ericsson_Texture_Compression#ETC2_and_EAC]Ericsson纹理压缩格式2[/url]"
"([code]RGB8_PUNCHTHROUGH_ALPHA1[/code] 变体),它可以压缩RGBA数据,使alpha完全透"
"明或完全不透明.\n"
"[b]注意:[/b] 创建[ImageTexture]时,会进行sRGB到线性色彩空间的转换."

#: doc/classes/Image.xml:551
msgid "Represents the size of the [enum Format] enum."
msgstr "表示[Format]枚举的大小."

#: doc/classes/Image.xml:554
msgid ""
"Performs nearest-neighbor interpolation. If the image is resized, it will be "
"pixelated."
msgstr "执行最近邻插值.如果调整图像大小,它将被像素化."

#: doc/classes/Image.xml:557
msgid ""
"Performs bilinear interpolation. If the image is resized, it will be blurry. "
"This mode is faster than [constant INTERPOLATE_CUBIC], but it results in "
"lower quality."
msgstr ""
"执行双线性插值.如果调整图像大小,则图像将模糊.此模式比[INTERPOLATE_CUBIC]更快,"
"但质量较低."

#: doc/classes/Image.xml:560
msgid ""
"Performs cubic interpolation. If the image is resized, it will be blurry. "
"This mode often gives better results compared to [constant "
"INTERPOLATE_BILINEAR], at the cost of being slower."
msgstr ""
"执行三次插值.如果调整图像大小,则图像将模糊.与[INTERPOLATE_BILINEAR]相比,此模"
"式通常会产生更好的结果,但代价是速度较慢."

#: doc/classes/Image.xml:563
#, fuzzy
msgid ""
"Performs bilinear separately on the two most-suited mipmap levels, then "
"linearly interpolates between them.\n"
"It's slower than [constant INTERPOLATE_BILINEAR], but produces higher-"
"quality results with far fewer aliasing artifacts.\n"
"If the image does not have mipmaps, they will be generated and used "
"internally, but no mipmaps will be generated on the resulting image.\n"
"[b]Note:[/b] If you intend to scale multiple copies of the original image, "
"it's better to call [method generate_mipmaps]] on it in advance, to avoid "
"wasting processing power in generating them again and again.\n"
"On the other hand, if the image already has mipmaps, they will be used, and "
"a new set will be generated for the resulting image."
msgstr ""
"在两个最合适的mipmap层上分别执行双线性,然后在它们之间进行线性插值.\n"
"它比[INTERPOLATE_BILINEAR]慢,但能产生质量更高的效果,并且减少很多混叠.\n"
"如果图像没有mipmaps,它们将被生成并在内部使用,但不会对生成的图像生成mipmaps.\n"
"[b]注意: [/b]如果您打算对原始图像进行多份缩放,最好提前对其调用 "
"generate_mipmaps(),以避免在反复生成它们时浪费处理能力.\n"
"另一方面,如果图像已经有了mipmaps,就会使用它们,并为生成的图像生成一组新的"
"mipmaps."

#: doc/classes/Image.xml:570
msgid ""
"Performs Lanczos interpolation. This is the slowest image resizing mode, but "
"it typically gives the best results, especially when downscalng images."
msgstr ""
"执行Lanczos插值.这是最慢的图像调整大小模式,但通常可以提供最佳效果,尤其是在缩"
"小图像时."

#: doc/classes/Image.xml:573
msgid "Image does not have alpha."
msgstr "图片没有Alpha通道."

#: doc/classes/Image.xml:576
msgid "Image stores alpha in a single bit."
msgstr "图像将Alpha存储在单个bit中."

#: doc/classes/Image.xml:579
msgid "Image uses alpha."
msgstr "图像使用阿尔法。"

#: doc/classes/Image.xml:582
msgid "Use S3TC compression."
msgstr "使用S3TC压缩。"

#: doc/classes/Image.xml:585
msgid "Use PVRTC2 compression."
msgstr "使用PVRTC2压缩。"

#: doc/classes/Image.xml:588
msgid "Use PVRTC4 compression."
msgstr "使用PVRTC4压缩。"

#: doc/classes/Image.xml:591
msgid "Use ETC compression."
msgstr "使用ETC压缩。"

#: doc/classes/Image.xml:594
msgid "Use ETC2 compression."
msgstr "使用 ETC2 压缩。"

#: doc/classes/Image.xml:597
msgid ""
"Source texture (before compression) is a regular texture. Default for all "
"textures."
msgstr "原始纹理(在压缩前)是常规纹理。所有纹理的默认值。"

#: doc/classes/Image.xml:600
msgid "Source texture (before compression) is in sRGB space."
msgstr "原始纹理(在压缩前)使用 sRGB 空间。"

#: doc/classes/Image.xml:603
msgid ""
"Source texture (before compression) is a normal texture (e.g. it can be "
"compressed into two channels)."
msgstr "原始纹理(在压缩前)是法线纹理(例如,可以压缩为两个通道)。"

#: doc/classes/ImageTexture.xml:4
#, fuzzy
msgid "A [Texture] based on an [Image]."
msgstr "基于 [Image] 的 [Texture2D]。"

#: doc/classes/ImageTexture.xml:7
msgid ""
"A [Texture] based on an [Image]. For an image to be displayed, an "
"[ImageTexture] has to be created from it using the [method "
"create_from_image] method:\n"
"[codeblock]\n"
"var texture = ImageTexture.new()\n"
"var image = Image.new()\n"
"image.load(\"res://icon.png\")\n"
"texture.create_from_image(image)\n"
"$Sprite.texture = texture\n"
"[/codeblock]\n"
"This way, textures can be created at run-time by loading images both from "
"within the editor and externally.\n"
"[b]Warning:[/b] Prefer to load imported textures with [method @GDScript."
"load] over loading them from within the filesystem dynamically with [method "
"Image.load], as it may not work in exported projects:\n"
"[codeblock]\n"
"var texture = load(\"res://icon.png\")\n"
"$Sprite.texture = texture\n"
"[/codeblock]\n"
"This is because images have to be imported as [StreamTexture] first to be "
"loaded with [method @GDScript.load]. If you'd still like to load an image "
"file just like any other [Resource], import it as an [Image] resource "
"instead, and then load it normally using the [method @GDScript.load] "
"method.\n"
"But do note that the image data can still be retrieved from an imported "
"texture as well using the [method Texture.get_data] method, which returns a "
"copy of the data:\n"
"[codeblock]\n"
"var texture = load(\"res://icon.png\")\n"
"var image : Image = texture.get_data()\n"
"[/codeblock]\n"
"An [ImageTexture] is not meant to be operated from within the editor "
"interface directly, and is mostly useful for rendering images on screen "
"dynamically via code. If you need to generate images procedurally from "
"within the editor, consider saving and importing images as custom texture "
"resources implementing a new [EditorImportPlugin].\n"
"[b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics "
"hardware limitations."
msgstr ""

#: doc/classes/ImageTexture.xml:41
msgid ""
"Create a new [ImageTexture] with [code]width[/code] and [code]height[/"
"code].\n"
"[code]format[/code] is a value from [enum Image.Format], [code]flags[/code] "
"is any combination of [enum Texture.Flags]."
msgstr ""

#: doc/classes/ImageTexture.xml:50
msgid ""
"Initializes the texture by allocating and setting the data from an [Image] "
"with [code]flags[/code] from [enum Texture.Flags]. An sRGB to linear color "
"space conversion can take place, according to [enum Image.Format]."
msgstr ""

#: doc/classes/ImageTexture.xml:56
#, fuzzy
msgid "Returns the format of the texture, one of [enum Image.Format]."
msgstr "返回 [ImageTexture] 的格式,是 [enum Image.Format] 中的一个。"

#: doc/classes/ImageTexture.xml:63
msgid ""
"Loads an image from a file path and creates a texture from it.\n"
"[b]Note:[/b] This method is deprecated and will be removed in Godot 4.0, use "
"[method Image.load] and [method create_from_image] instead."
msgstr ""

#: doc/classes/ImageTexture.xml:71
msgid ""
"Replaces the texture's data with a new [Image].\n"
"[b]Note:[/b] The texture has to be initialized first with the [method "
"create_from_image] method before it can be updated. The new image "
"dimensions, format, and mipmaps configuration should match the existing "
"texture's image configuration, otherwise it has to be re-created with the "
"[method create_from_image] method.\n"
"Use this method over [method create_from_image] if you need to update the "
"texture frequently, which is faster than allocating additional memory for a "
"new texture each time."
msgstr ""

#: doc/classes/ImageTexture.xml:80 doc/classes/VisualServer.xml:2836
#, fuzzy
msgid "Resizes the texture to the specified dimensions."
msgstr "将 [ImageTexture] 调整为指定的大小。"

#: doc/classes/ImageTexture.xml:87
msgid "The storage quality for [constant STORAGE_COMPRESS_LOSSY]."
msgstr ""

#: doc/classes/ImageTexture.xml:90
#, fuzzy
msgid "The storage type (raw, lossy, or compressed)."
msgstr "按钮被按下的状态。"

#: doc/classes/ImageTexture.xml:95
msgid "[Image] data is stored raw and unaltered."
msgstr ""

#: doc/classes/ImageTexture.xml:98
msgid ""
"[Image] data is compressed with a lossy algorithm. You can set the storage "
"quality with [member lossy_quality]."
msgstr ""

#: doc/classes/ImageTexture.xml:101
msgid "[Image] data is compressed with a lossless algorithm."
msgstr ""

#: doc/classes/ImmediateGeometry.xml:4
msgid "Draws simple geometry from code."
msgstr "通过代码绘制简单的几何形状。"

#: doc/classes/ImmediateGeometry.xml:7
#, fuzzy
msgid ""
"Draws simple geometry from code. Uses a drawing mode similar to OpenGL 1.x.\n"
"See also [ArrayMesh], [MeshDataTool] and [SurfaceTool] for procedural "
"geometry generation.\n"
"[b]Note:[/b] ImmediateGeometry3D is best suited to small amounts of mesh "
"data that change every frame. It will be slow when handling large amounts of "
"mesh data. If mesh data doesn't change often, use [ArrayMesh], "
"[MeshDataTool] or [SurfaceTool] instead.\n"
"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
"primitive modes.\n"
"[b]Note:[/b] In case of missing points when handling large amounts of mesh "
"data, try increasing its buffer size limit under [member ProjectSettings."
"rendering/limits/buffers/immediate_buffer_size_kb]."
msgstr ""
"通过代码绘制简单的几何形状。使用类似于OpenGL 1.x.的绘制方式。\n"
"关于几何形状的程序化构建,参见 [ArrayMesh],[MeshDataTool] 以及 "
"[SurfaceTool]。\n"
"[b]注意:[/b] ImmediateGeometry3D 最适用于每帧变化的少量网格数据。如果处理大"
"量网格数据将会变慢。如果网格数据不需要经常变化,使用[ArrayMesh],"
"[MeshDataTool] 或者 [SurfaceTool] 代替。\n"
"[b]注意:[/b] 对于三角形基本模式的正面,Godot使用顺时针[url=https://"
"learnopengl.com/Advanced-OpenGL/Face-culling]缠绕顺序[/url]。"

#: doc/classes/ImmediateGeometry.xml:23
msgid ""
"Simple helper to draw an UV sphere with given latitude, longitude and radius."
msgstr "用于绘制给定经纬度和半径的UV球体的简单辅助工具。"

#: doc/classes/ImmediateGeometry.xml:30
msgid ""
"Adds a vertex in local coordinate space with the currently set color/uv/etc."
msgstr "使用当前设置的颜色/uv等,在局部坐标空间中添加一个顶点。"

#: doc/classes/ImmediateGeometry.xml:38
msgid ""
"Begin drawing (and optionally pass a texture override). When done call "
"[method end]. For more information on how this works, search for "
"[code]glBegin()[/code] and [code]glEnd()[/code] references.\n"
"For the type of primitive, see the [enum Mesh.PrimitiveType] enum."
msgstr ""
"开始绘制(可选纹理重写)。当调用结束[method end]。对此如何实现的更多信息,搜"
"索[code]glBegin()[/code]和[code]glEnd()[/code]引用。\n"
"对于基本类型,参见[enum Mesh.PrimitiveType]枚举。"

#: doc/classes/ImmediateGeometry.xml:45
msgid "Clears everything that was drawn using begin/end."
msgstr "清除使用begin/end绘制的一切内容。"

#: doc/classes/ImmediateGeometry.xml:51
msgid "Ends a drawing context and displays the results."
msgstr "结束正在绘制的context并显示其结果。"

#: doc/classes/ImmediateGeometry.xml:58
msgid "The current drawing color."
msgstr "当前绘图颜色。"

#: doc/classes/ImmediateGeometry.xml:65
msgid "The next vertex's normal."
msgstr "下一个顶点的法线。"

#: doc/classes/ImmediateGeometry.xml:72
msgid "The next vertex's tangent (and binormal facing)."
msgstr "下一个顶点的切线(和副法线的方向)。"

#: doc/classes/ImmediateGeometry.xml:79
msgid "The next vertex's UV."
msgstr "下一个顶点的 UV。"

#: doc/classes/ImmediateGeometry.xml:86
msgid "The next vertex's second layer UV."
msgstr "下一个顶点的第二层UV。"

#: doc/classes/Input.xml:4
msgid "A singleton that deals with inputs."
msgstr "处理输入的单例。"

#: doc/classes/Input.xml:7
msgid ""
"A singleton that deals with inputs. This includes key presses, mouse buttons "
"and movement, joypads, and input actions. Actions and their events can be "
"set in the [b]Input Map[/b] tab in the [b]Project > Project Settings[/b], or "
"with the [InputMap] class."
msgstr ""
"处理输入的单例。这包括按键、鼠标点击和移动、游戏手柄和输入动作(input "
"actions)。可以在 [b] 项目 > 项目设置 [/b] 的 [b] 输入映射 [/b] 选项卡中或使"
"用 [InputMap] 类设置操作及其事件。"

#: doc/classes/Input.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/inputs/index.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/inputs/index.html"

#: doc/classes/Input.xml:20
msgid ""
"This will simulate pressing the specified action.\n"
"The strength can be used for non-boolean actions, it's ranged between 0 and "
"1 representing the intensity of the given action.\n"
"[b]Note:[/b] This method will not cause any [method Node._input] calls. It "
"is intended to be used with [method is_action_pressed] and [method "
"is_action_just_pressed]. If you want to simulate [code]_input[/code], use "
"[method parse_input_event] instead."
msgstr ""
"这将模拟按下指定的按键动作。\n"
"强度可以用于非布尔运算的动作,它的范围在0到1之间,代表给定动作的力度。\n"
"[b]注意:[/b] 这个方法不会引起任何[method Node._input]调用。它旨在与[method "
"is_action_pressed]和[method is_action_just_pressed]一起使用。如果你想模拟"
"[code]_input[/code],请使用[method parse_input_event]代替。"

#: doc/classes/Input.xml:29
msgid "If the specified action is already pressed, this will release it."
msgstr "如果已按下指定操作,那么将释放它。"

#: doc/classes/Input.xml:37
msgid ""
"Adds a new mapping entry (in SDL2 format) to the mapping database. "
"Optionally update already connected devices."
msgstr "在映射数据库中添加新的映射条目(SDL2 格式)。可选更新已连接的设备。"

#: doc/classes/Input.xml:43
msgid ""
"Returns the acceleration of the device's accelerometer sensor, if the device "
"has one. Otherwise, the method returns [constant Vector3.ZERO].\n"
"Note this method returns an empty [Vector3] when running from the editor "
"even when your device has an accelerometer. You must export your project to "
"a supported device to read values from the accelerometer.\n"
"[b]Note:[/b] This method only works on iOS, Android, and UWP. On other "
"platforms, it always returns [constant Vector3.ZERO]. On Android the unit of "
"measurement for each axis is m/s² while on iOS and UWP it's a multiple of "
"the Earth's gravitational acceleration [code]g[/code] (~9.81 m/s²)."
msgstr ""

#: doc/classes/Input.xml:53
msgid ""
"Returns a value between 0 and 1 representing the raw intensity of the given "
"action, ignoring the action's deadzone. In most cases, you should use "
"[method get_action_strength] instead.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
"for [InputEventJoypadMotion] events."
msgstr ""

#: doc/classes/Input.xml:62
#, fuzzy
msgid ""
"Returns a value between 0 and 1 representing the intensity of the given "
"action. In a joypad, for example, the further away the axis (analog sticks "
"or L2, R2 triggers) is from the dead zone, the closer the value will be to "
"1. If the action is mapped to a control that has no axis as the keyboard, "
"the value returned will be 0 or 1.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
"for [InputEventJoypadMotion] events."
msgstr ""
"返回一个介于0和1之间的值,代表给定动作的强度。以游戏手柄为例,推动轴(模拟摇"
"杆或L2、R2触发器)离盲区(dead zone)越远,数值就越接近1。如果动作被映射到一个"
"没有轴作为控件的键盘,返回数值将是0或1。"

#: doc/classes/Input.xml:71
msgid ""
"Get axis input by specifying two actions, one negative and one positive.\n"
"This is a shorthand for writing [code]Input."
"get_action_strength(\"positive_action\") - Input."
"get_action_strength(\"negative_action\")[/code]."
msgstr ""

#: doc/classes/Input.xml:78
msgid ""
"Returns an [Array] containing the device IDs of all currently connected "
"joypads."
msgstr "返回一个 [Array],包含当前所有连接手柄的设备 ID。"

#: doc/classes/Input.xml:84
msgid "Returns the currently assigned cursor shape (see [enum CursorShape])."
msgstr "返回当前指定的光标形状(参见 [enum CursorShape])。"

#: doc/classes/Input.xml:90
msgid ""
"Returns the gravity of the device's accelerometer sensor, if the device has "
"one. Otherwise, the method returns [constant Vector3.ZERO].\n"
"[b]Note:[/b] This method only works on Android and iOS. On other platforms, "
"it always returns [constant Vector3.ZERO]. On Android the unit of "
"measurement for each axis is m/s² while on iOS it's a multiple of the "
"Earth's gravitational acceleration [code]g[/code] (~9.81 m/s²)."
msgstr ""

#: doc/classes/Input.xml:97
msgid ""
"Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the "
"gyroscope sensor, if the device has one. Otherwise, the method returns "
"[constant Vector3.ZERO].\n"
"[b]Note:[/b] This method only works on Android and iOS. On other platforms, "
"it always returns [constant Vector3.ZERO]."
msgstr ""

#: doc/classes/Input.xml:106
#, fuzzy
msgid ""
"Returns the current value of the joypad axis at given index (see [enum "
"JoystickList])."
msgstr "返回给定索引处的手柄(joypad)轴的当前值(参见 [enum JoyAxisList])。"

#: doc/classes/Input.xml:113
msgid "Returns the index of the provided axis name."
msgstr "返回提供的轴名称的索引。"

#: doc/classes/Input.xml:120
#, fuzzy
msgid ""
"Receives a [enum JoystickList] axis and returns its equivalent name as a "
"string."
msgstr "接收一个[enum JoyAxisList]轴,并以字符串形式返回其对应的名称。"

#: doc/classes/Input.xml:127
msgid "Returns the index of the provided button name."
msgstr "返回所提供的按钮名称的索引。"

#: doc/classes/Input.xml:134
#, fuzzy
msgid ""
"Receives a gamepad button from [enum JoystickList] and returns its "
"equivalent name as a string."
msgstr ""
"从[enum JoyButtonList]中接收一个游戏手柄(gamepad)按钮,并以字符串形式返回其对"
"应的名称。"

#: doc/classes/Input.xml:141
msgid ""
"Returns a SDL2-compatible device GUID on platforms that use gamepad "
"remapping. Returns [code]\"Default Gamepad\"[/code] otherwise."
msgstr ""
"在使用游戏手柄重映射的平台上返回一个SDL2兼容的设备GUID。否则返回"
"[code]\"Default Gamepad\"[/code]默认游戏手柄。"

#: doc/classes/Input.xml:148
msgid "Returns the name of the joypad at the specified device index."
msgstr "返回指定设备索引处的手柄名称。"

#: doc/classes/Input.xml:155
msgid "Returns the duration of the current vibration effect in seconds."
msgstr "以秒为单位返回当前振动效果的持续时间。"

#: doc/classes/Input.xml:162
msgid ""
"Returns the strength of the joypad vibration: x is the strength of the weak "
"motor, and y is the strength of the strong motor."
msgstr "返回手柄振动的强度:x 是弱马达的强度,y 是强马达的强度。"

#: doc/classes/Input.xml:168
msgid ""
"Returns the mouse speed for the last time the cursor was moved, and this "
"until the next frame where the mouse moves. This means that even if the "
"mouse is not moving, this function will still return the value of the last "
"motion."
msgstr ""
"返回光标最后一次被移动时的鼠标速度,并且这个速度保持不变,直到鼠标发生了移动"
"的下一帧。这意味着,即使鼠标没有移动,这个函数仍然会返回最后一次运动的值。"

#: doc/classes/Input.xml:174
msgid ""
"Returns the magnetic field strength in micro-Tesla for all axes of the "
"device's magnetometer sensor, if the device has one. Otherwise, the method "
"returns [constant Vector3.ZERO].\n"
"[b]Note:[/b] This method only works on Android, iOS and UWP. On other "
"platforms, it always returns [constant Vector3.ZERO]."
msgstr ""

#: doc/classes/Input.xml:181
msgid ""
"Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at "
"the same time, the bits are added together."
msgstr ""
"将鼠标按键作为一个比特掩码返回。如果多个鼠标按钮同时被按下,这些位会被加在一"
"起。"

#: doc/classes/Input.xml:187
msgid "Returns the mouse mode. See the constants for more information."
msgstr "返回鼠标模式。有关更多信息,请参阅常量。"

#: doc/classes/Input.xml:198
msgid ""
"Gets an input vector by specifying four actions for the positive and "
"negative X and Y axes.\n"
"This method is useful when getting vector input, such as from a joystick, "
"directional pad, arrows, or WASD. The vector has its length limited to 1 and "
"has a circular deadzone, which is useful for using vector input as "
"movement.\n"
"By default, the deadzone is automatically calculated from the average of the "
"action deadzones. However, you can override the deadzone to be whatever you "
"want (on the range of 0 to 1)."
msgstr ""

#: doc/classes/Input.xml:208
#, fuzzy
msgid ""
"Returns [code]true[/code] when the user starts pressing the action event, "
"meaning it's [code]true[/code] only on the frame that the user pressed down "
"the button.\n"
"This is useful for code that needs to run only once when an action is "
"pressed, instead of every frame while it's pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
"for [InputEventJoypadMotion] events."
msgstr ""
"当用户开始按下动作事件时,返回[code]true[/code],这意味着仅当用户按下按钮的帧"
"上才返回[code]true[/code].\n"
"这对于在按下某个动作时只需要运行一次,而不是在按下时的每一帧中运行的代码很有"
"用。"

#: doc/classes/Input.xml:218
#, fuzzy
msgid ""
"Returns [code]true[/code] when the user stops pressing the action event, "
"meaning it's [code]true[/code] only on the frame that the user released the "
"button.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
"for [InputEventJoypadMotion] events."
msgstr ""
"当用户开始按下动作事件时,返回[code]true[/code],这意味着仅当用户按下按钮的帧"
"上才返回[code]true[/code].\n"
"这对于在按下某个动作时只需要运行一次,而不是在按下时的每一帧中运行的代码很有"
"用。"

#: doc/classes/Input.xml:227
#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the action event. Note that if "
"an action has multiple buttons assigned and more than one of them is "
"pressed, releasing one button will release the action, even if some other "
"button assigned to this action is still pressed.\n"
"If [code]exact[/code] is [code]false[/code], it ignores the input modifiers "
"for [InputEventKey] and [InputEventMouseButton] events, and the direction "
"for [InputEventJoypadMotion] events."
msgstr ""
"如果您按下动作事件,则返回[code]true[/code]。请注意,如果为一个动作分配了多个按"
"钮,并且按下了多个按钮,那么即使仍然按下分配给该动作的某个其他按钮,释放一个按"
"钮也将释放该动作。"

#: doc/classes/Input.xml:236
#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the joypad button (see [enum "
"JoystickList])."
msgstr "如果按下操纵杆按钮,则返回[code]true[/code](请参阅[JoystickList])。"

#: doc/classes/Input.xml:243
#, fuzzy
msgid ""
"Returns [code]true[/code] if the system knows the specified device. This "
"means that it sets all button and axis indices exactly as defined in [enum "
"JoystickList]. Unknown joypads are not expected to match these constants, "
"but you can still retrieve events from them."
msgstr ""
"如果系统知道指定的设备,则返回[code]true[/code]。这意味着它将完全按照"
"JoystickList中的定义设置所有按钮和轴索引。未知的游戏手柄不希望与这些常量匹"
"配,但是您仍然可以从中检索事件。"

#: doc/classes/Input.xml:250
#, fuzzy
msgid ""
"Returns [code]true[/code] if you are pressing the key. You can pass a [enum "
"KeyList] constant."
msgstr ""
"如果你按当前键盘布局中的键,则返回 [code]true[/code]。您可以传入 [enum "
"KeyList] 常量参数。"

#: doc/classes/Input.xml:257
msgid ""
"Returns [code]true[/code] if you are pressing the mouse button specified "
"with [enum ButtonList]."
msgstr "如果您按下由[ButtonList]指定的鼠标按键,则返回[code]true[/code]。"

#: doc/classes/Input.xml:267
msgid ""
"Notifies the [Input] singleton that a connection has changed, to update the "
"state for the [code]device[/code] index.\n"
"This is used internally and should not have to be called from user scripts. "
"See [signal joy_connection_changed] for the signal emitted when this is "
"triggered internally."
msgstr ""
"通知[Input]单例连接已更改,以更新[code]device[/code]索引的状态。\n"
"这是内部使用的,不必从用户脚本中调用。有关内部触发的信号,请参见"
"[joy_connection_changed]。"

#: doc/classes/Input.xml:275
msgid ""
"Feeds an [InputEvent] to the game. Can be used to artificially trigger input "
"events from code. Also generates [method Node._input] calls.\n"
"Example:\n"
"[codeblock]\n"
"var a = InputEventAction.new()\n"
"a.action = \"ui_cancel\"\n"
"a.pressed = true\n"
"Input.parse_input_event(a)\n"
"[/codeblock]"
msgstr ""
"向游戏提供[InputEvent]。可用于从代码中人工触发输入事件。也会产生[Node."
"_input()]调用。\n"
"例:\n"
"[codeblock]\n"
"var a = InputEventAction.new()\n"
"a.action = \"ui_cancel\"\n"
"a.pressed = true\n"
"Input.parse_input_event(a)\n"
"[/codeblock]"

#: doc/classes/Input.xml:289
msgid ""
"Removes all mappings from the internal database that match the given GUID."
msgstr "从内部数据库中删除与给定GUID匹配的所有映射."

#: doc/classes/Input.xml:298
msgid ""
"Sets a custom mouse cursor image, which is only visible inside the game "
"window. The hotspot can also be specified. Passing [code]null[/code] to the "
"image parameter resets to the system cursor. See [enum CursorShape] for the "
"list of shapes.\n"
"[code]image[/code]'s size must be lower than 256×256.\n"
"[code]hotspot[/code] must be within [code]image[/code]'s size.\n"
"[b]Note:[/b] [AnimatedTexture]s aren't supported as custom mouse cursors. If "
"using an [AnimatedTexture], only the first frame will be displayed.\n"
"[b]Note:[/b] Only images imported with the [b]Lossless[/b], [b]Lossy[/b] or "
"[b]Uncompressed[/b] compression modes are supported. The [b]Video RAM[/b] "
"compression mode can't be used for custom cursors."
msgstr ""
"设置一个自定义鼠标光标图像,该图像仅当游戏窗口内可见。还可以指定热点。将"
"[code]null[/code]传递给image参数将重置为系统光标。有关详细信息,请参见[enum "
"CursorShape ]形状列表。\n"
"[code]image[/code]的大小必须小于256×256。\n"
"[code]hotspot[/code]的大小必须在[code]image[/code]的范围内。\n"
"[b]注意:[/b]不支持AnimatedTexture作为自定义鼠标光标。如果使用"
"[AnimatedTexture],将仅显示第一帧。\n"
"[b]注意:[/b]仅支持以[b]无损[/b],[b]有损[/b]或[b]未压缩[/b]压缩模式导入的图"
"像。[b]Video RAM[/b]压缩模式不能用于自定义光标。"

#: doc/classes/Input.xml:309
msgid ""
"Sets the default cursor shape to be used in the viewport instead of "
"[constant CURSOR_ARROW].\n"
"[b]Note:[/b] If you want to change the default cursor shape for [Control]'s "
"nodes, use [member Control.mouse_default_cursor_shape] instead.\n"
"[b]Note:[/b] This method generates an [InputEventMouseMotion] to update "
"cursor immediately."
msgstr ""
"设置视窗中使用的默认光标形状,而不是[CURSOR_ARROW]。\n"
"[b]注意:[/b]如果要更改[Control]节点的默认光标形状,请改用[Control."
"mouse_default_cursor_shape]。\n"
"[b]注意:[/b]这个方法生成一个[InputEventMouseMotion]以立即更新游标。"

#: doc/classes/Input.xml:318
msgid "Sets the mouse mode. See the constants for more information."
msgstr "设置鼠标模式。有关更多信息,请参见常量。"

#: doc/classes/Input.xml:325
msgid ""
"Enables or disables the accumulation of similar input events sent by the "
"operating system. When input accumulation is enabled, all input events "
"generated during a frame will be merged and emitted when the frame is done "
"rendering. Therefore, this limits the number of input method calls per "
"second to the rendering FPS.\n"
"Input accumulation is enabled by default. It can be disabled to get slightly "
"more precise/reactive input at the cost of increased CPU usage. In "
"applications where drawing freehand lines is required, input accumulation "
"should generally be disabled while the user is drawing the line to get "
"results that closely follow the actual input."
msgstr ""
"启用或禁用操作系统发送的类似输入事件的累积。当启用输入累积时,在一帧中产生的"
"所有输入事件将被合并,并在该帧完成渲染时发出。因此,这限制了每秒的输入方法调"
"用次数,使之与渲染FPS相一致。\n"
"输入累加在默认情况下是启用的。它可以被禁用,将以增加CPU使用率为代价,获得稍微"
"更精确及更灵敏的输入。在需要自由绘制线条的应用中,一般应用在用户绘制线条时禁"
"用输入累加,以获得紧跟实际输入的结果。"

#: doc/classes/Input.xml:336
msgid ""
"Starts to vibrate the joypad. Joypads usually come with two rumble motors, a "
"strong and a weak one. [code]weak_magnitude[/code] is the strength of the "
"weak motor (between 0 and 1) and [code]strong_magnitude[/code] is the "
"strength of the strong motor (between 0 and 1). [code]duration[/code] is the "
"duration of the effect in seconds (a duration of 0 will try to play the "
"vibration indefinitely).\n"
"[b]Note:[/b] Not every hardware is compatible with long effect durations; it "
"is recommended to restart an effect if it has to be played for more than a "
"few seconds."
msgstr ""
"开始振动游戏手柄。手柄通常带有两个隆隆声电机,一强一弱。 "
"[code]weak_magnitude[/code] 弱震级是弱电机的强度(0 到 1 之间),"
"[code]strong_magnitude[/code] 强震级是强电机的强度(0 到 1 之间)。 "
"[code]duration[/code] 是效果的持续时间(以秒为单位)(持续时间为 0 将尝试无限"
"期地播放振动)。\n"
"[b]注意:[/b] 并非所有硬件都兼容长效果持续时间;如果必须播放超过几秒钟的效"
"果,建议重新启动效果。"

#: doc/classes/Input.xml:344
msgid "Stops the vibration of the joypad."
msgstr "停止游戏手柄的振动。"

#: doc/classes/Input.xml:351
#, fuzzy
msgid ""
"Vibrate Android and iOS devices.\n"
"[b]Note:[/b] It needs [code]VIBRATE[/code] permission for Android at export "
"settings. iOS does not support duration."
msgstr ""
"振动Android和iOS设备。\n"
"[b]注意:[/b]在导出设置时,它需要Android的VIBRATE权限,iOS不支持持续时间。"

#: doc/classes/Input.xml:359
msgid "Sets the mouse position to the specified vector."
msgstr "将鼠标坐标设置为指定的向量。"

#: doc/classes/Input.xml:368
msgid "Emitted when a joypad device has been connected or disconnected."
msgstr "连接或断开游戏手柄设备时触发。"

#: doc/classes/Input.xml:374
msgid "Makes the mouse cursor visible if it is hidden."
msgstr "如果鼠标光标处于隐藏状态,则使其可见。"

#: doc/classes/Input.xml:377
msgid "Makes the mouse cursor hidden if it is visible."
msgstr "如果鼠标光标是可见的,则使其隐藏。"

#: doc/classes/Input.xml:380
msgid ""
"Captures the mouse. The mouse will be hidden and its position locked at the "
"center of the screen.\n"
"[b]Note:[/b] If you want to process the mouse's movement in this mode, you "
"need to use [member InputEventMouseMotion.relative]."
msgstr ""

#: doc/classes/Input.xml:384
msgid "Makes the mouse cursor visible but confines it to the game window."
msgstr "使鼠标光标可见,并将其限制在游戏窗口中。"

#: doc/classes/Input.xml:387
msgid "Arrow cursor. Standard, default pointing cursor."
msgstr "箭头光标。标准,默认指向光标。"

#: doc/classes/Input.xml:390
msgid ""
"I-beam cursor. Usually used to show where the text cursor will appear when "
"the mouse is clicked."
msgstr "I形(I-beam)光标。通常用在点击文本框后显示的位置上。"

#: doc/classes/Input.xml:393
msgid ""
"Pointing hand cursor. Usually used to indicate the pointer is over a link or "
"other interactable item."
msgstr "指向手形光标。通常用在指示链接或其他可交互项上。"

#: doc/classes/Input.xml:396
msgid ""
"Cross cursor. Typically appears over regions in which a drawing operation "
"can be performed or for selections."
msgstr "十字光标。通常出现在可以执行绘制操作或进行选择的区域上方。"

#: doc/classes/Input.xml:399
msgid ""
"Wait cursor. Indicates that the application is busy performing an operation. "
"This cursor shape denotes that the application is still usable during the "
"operation."
msgstr ""
"等待型光标。表示应用程序正忙于执行一项操作。这种光标形状表示应用程序在操作过"
"程中仍然可以使用。"

#: doc/classes/Input.xml:402
msgid ""
"Busy cursor. Indicates that the application is busy performing an operation. "
"This cursor shape denotes that the application isn't usable during the "
"operation (e.g. something is blocking its main thread)."
msgstr ""
"忙碌的光标。表示应用程序正忙于执行操作。此光标形状表示应用程序在操作过程中不"
"可用(例如,某些东西阻塞了其主线程)。"

#: doc/classes/Input.xml:405
msgid "Drag cursor. Usually displayed when dragging something."
msgstr "拖动光标。通常在拖动东西时显示。"

#: doc/classes/Input.xml:408
msgid ""
"Can drop cursor. Usually displayed when dragging something to indicate that "
"it can be dropped at the current position."
msgstr "可以放下的光标。通常在拖动东西时显示,表示可以在当前位置放下。"

#: doc/classes/Input.xml:411
msgid ""
"Forbidden cursor. Indicates that the current action is forbidden (for "
"example, when dragging something) or that the control at a position is "
"disabled."
msgstr ""
"禁止的光标。表示当前操作是被禁止的(例如,拖动东西时)或某个位置的控件被禁"
"用。"

#: doc/classes/Input.xml:414
msgid ""
"Vertical resize mouse cursor. A double-headed vertical arrow. It tells the "
"user they can resize the window or the panel vertically."
msgstr ""
"垂直调整大小的光标。一个双头的垂直箭头。它告诉用户他们可以垂直地调整窗口或面"
"板的大小。"

#: doc/classes/Input.xml:417
msgid ""
"Horizontal resize mouse cursor. A double-headed horizontal arrow. It tells "
"the user they can resize the window or the panel horizontally."
msgstr ""
"水平调整尺寸的光标。一个双头的水平箭头。它告诉用户他们可以水平调整窗口或面板"
"的大小。"

#: doc/classes/Input.xml:420
msgid ""
"Window resize mouse cursor. The cursor is a double-headed arrow that goes "
"from the bottom left to the top right. It tells the user they can resize the "
"window or the panel both horizontally and vertically."
msgstr ""
"窗口调整大小的光标。该光标是一个双头箭头,从左下方到右上方。它告诉用户他们可"
"以在水平和垂直方向上调整窗口或面板的大小。"

#: doc/classes/Input.xml:423
msgid ""
"Window resize mouse cursor. The cursor is a double-headed arrow that goes "
"from the top left to the bottom right, the opposite of [constant "
"CURSOR_BDIAGSIZE]. It tells the user they can resize the window or the panel "
"both horizontally and vertically."
msgstr ""
"窗口调整大小的光标。是一个双头的箭头,从左上角到右下角,与[constant "
"CURSOR_BDIAGSIZE]相反。它告诉用户他们可以在水平和垂直方向上调整窗口或面板的大"
"小。"

#: doc/classes/Input.xml:426
msgid "Move cursor. Indicates that something can be moved."
msgstr "移动光标。表示那些东西可以移动。"

#: doc/classes/Input.xml:429
msgid ""
"Vertical split mouse cursor. On Windows, it's the same as [constant "
"CURSOR_VSIZE]."
msgstr "垂直拆分鼠标光标。在Windows上,它与[CURSOR_VSIZE]相同。"

#: doc/classes/Input.xml:432
msgid ""
"Horizontal split mouse cursor. On Windows, it's the same as [constant "
"CURSOR_HSIZE]."
msgstr "水平分割的鼠标光标。在Windows上,它与[constant CURSOR_HSIZE]相同。"

#: doc/classes/Input.xml:435
msgid "Help cursor. Usually a question mark."
msgstr "帮助光标。通常是一个问号。"

#: doc/classes/InputEvent.xml:4
msgid "Generic input event."
msgstr "通用输入事件。"

#: doc/classes/InputEvent.xml:7
msgid "Base class of all sort of input event. See [method Node._input]."
msgstr "各种输入事件的基类。参见[method Node._input]。"

#: doc/classes/InputEvent.xml:10 doc/classes/InputEventJoypadButton.xml:10
#: doc/classes/InputEventJoypadMotion.xml:10 doc/classes/InputEventKey.xml:10
#: doc/classes/InputEventMouse.xml:10 doc/classes/InputEventScreenDrag.xml:10
#: doc/classes/InputEventScreenTouch.xml:11
#: doc/classes/InputEventWithModifiers.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/inputs/inputevent.html"

#: doc/classes/InputEvent.xml:20
msgid ""
"Returns [code]true[/code] if the given input event and this input event can "
"be added together (only for events of type [InputEventMouseMotion]).\n"
"The given input event's position, global position and speed will be copied. "
"The resulting [code]relative[/code] is a sum of both events. Both events' "
"modifiers have to be identical."
msgstr ""
"如果给定的输入事件和这个输入事件可以相加,则返回[code]true[/code](只针对"
"[InputEventMouseMotion]类型的事件)。\n"
"给定输入事件的位置、全局位置和速度将被复制。产生的[code]relative[/code]是两个"
"事件的总和。两个事件的修饰符必须是相同的。"

#: doc/classes/InputEvent.xml:27
msgid "Returns a [String] representation of the event."
msgstr "返回事件的一个[String]字符串表示。"

#: doc/classes/InputEvent.xml:35
#, fuzzy
msgid ""
"Returns a value between 0.0 and 1.0 depending on the given actions' state. "
"Useful for getting the value of events of type [InputEventJoypadMotion].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
"direction for [InputEventJoypadMotion] events."
msgstr ""
"根据给定的动作状态,返回0.0到1.0之间的值。对于获取[InputEventJoypadMotion]类"
"型的事件的值很有用。"

#: doc/classes/InputEvent.xml:44
msgid ""
"Returns [code]true[/code] if this input event matches a pre-defined action "
"of any type.\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
"direction for [InputEventJoypadMotion] events."
msgstr ""

#: doc/classes/InputEvent.xml:54
#, fuzzy
msgid ""
"Returns [code]true[/code] if the given action is being pressed (and is not "
"an echo event for [InputEventKey] events, unless [code]allow_echo[/code] is "
"[code]true[/code]). Not relevant for events of type [InputEventMouseMotion] "
"or [InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
"direction for [InputEventJoypadMotion] events."
msgstr ""
"如果给定的动作被按下,返回[code]true[/code](对于[InputEventKey]事件不是一个"
"回显事件,除非允许回显[code]allow_echo[/code]为[code]true[/code])。与"
"[InputEventMouseMotion]或[InputEventScreenDrag]类型的事件无关。"

#: doc/classes/InputEvent.xml:63
#, fuzzy
msgid ""
"Returns [code]true[/code] if the given action is released (i.e. not "
"pressed). Not relevant for events of type [InputEventMouseMotion] or "
"[InputEventScreenDrag].\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
"direction for [InputEventJoypadMotion] events."
msgstr ""
"如果给定的动作被按下,返回[code]true[/code](对于[InputEventKey]事件不是一个"
"回显事件,除非允许回显[code]allow_echo[/code]为[code]true[/code])。与"
"[InputEventMouseMotion]或[InputEventScreenDrag]类型的事件无关。"

#: doc/classes/InputEvent.xml:70
msgid ""
"Returns [code]true[/code] if this input event's type is one that can be "
"assigned to an input action."
msgstr ""
"如果此输入事件的类型是可以分配给输入操作(input action)的类型,则返回 "
"[code]true[/code]。"

#: doc/classes/InputEvent.xml:76
msgid ""
"Returns [code]true[/code] if this input event is an echo event (only for "
"events of type [InputEventKey])."
msgstr ""
"如果此输入事件是回显事件(仅适用于 [InputEventKey] 类型的事件),则返回 "
"[code]true[/code]。"

#: doc/classes/InputEvent.xml:82
msgid ""
"Returns [code]true[/code] if this input event is pressed. Not relevant for "
"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
msgstr ""
"如果按下此输入事件,则返回 [code] 真实 [/code]。与类型 "
"[InputEventMouseMotion] 或 [InputEventScreenDrag] 的事件无关。"

#: doc/classes/InputEvent.xml:90
msgid ""
"Returns [code]true[/code] if the specified [code]event[/code] matches this "
"event. Only valid for action events i.e key ([InputEventKey]), button "
"([InputEventMouseButton] or [InputEventJoypadButton]), axis "
"[InputEventJoypadMotion] or action ([InputEventAction]) events.\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
"direction for [InputEventJoypadMotion] events."
msgstr ""

#: doc/classes/InputEvent.xml:99
msgid ""
"Returns a copy of the given input event which has been offset by "
"[code]local_ofs[/code] and transformed by [code]xform[/code]. Relevant for "
"events of type [InputEventMouseButton], [InputEventMouseMotion], "
"[InputEventScreenTouch], [InputEventScreenDrag], [InputEventMagnifyGesture] "
"and [InputEventPanGesture]."
msgstr ""
"返回给定输入事件的副本,该事件已由 [code]local_ofs[/code] 偏移并由 "
"[code]xform[/code] 转换。与 [InputEventMouseButton]、"
"[InputEventMouseMotion]、[InputEventScreenTouch]、[InputEventScreenDrag]、"
"[InputEventMagnifyGesture] 和 [InputEventPanGesture] 类型的事件相关。"

#: doc/classes/InputEvent.xml:105
msgid ""
"The event's device ID.\n"
"[b]Note:[/b] This device ID will always be [code]-1[/code] for emulated "
"mouse input from a touchscreen. This can be used to distinguish emulated "
"mouse input from physical mouse input."
msgstr ""
"该事件的设备ID。\n"
"[b]注意:[/b]对于来自触摸屏的模拟鼠标输入,该设备ID将总是[code]-1[/code]。这"
"可用于区分模拟鼠标输入和物理鼠标输入。"

#: doc/classes/InputEventAction.xml:4
msgid "Input event type for actions."
msgstr "输入操作事件类型。"

#: doc/classes/InputEventAction.xml:7
msgid ""
"Contains a generic action which can be targeted from several types of "
"inputs. Actions can be created from the [b]Input Map[/b] tab in the "
"[b]Project > Project Settings[/b] menu. See [method Node._input]."
msgstr ""
"包含可以从多种类型的输入中定位的通用操作。可以从 [b] 项目 > 项目设置 [/b] 菜"
"单中的 [b] 键位映射 [/b] 选项卡创建动作。参见[method Node._input]。"

#: doc/classes/InputEventAction.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html#actions"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/inputs/inputevent."
"html#actions"

#: doc/classes/InputEventAction.xml:18
msgid "The action's name. Actions are accessed via this [String]."
msgstr "动作的名称。通过此 [String] 访问操作。"

#: doc/classes/InputEventAction.xml:21
msgid ""
"If [code]true[/code], the action's state is pressed. If [code]false[/code], "
"the action's state is released."
msgstr ""
"如果为[code]true[/code],动作的状态是按下。如果[code]false[/code],动作的状态"
"被释放。"

#: doc/classes/InputEventAction.xml:24
#, fuzzy
msgid ""
"The action's strength between 0 and 1. This value is considered as equal to "
"0 if pressed is [code]false[/code]. The event strength allows faking analog "
"joypad motion events, by specifying how strongly the joypad axis is bent or "
"pressed."
msgstr ""
"该动作的强度在0和1之间。如果按下的是[code]false[/code],则该值被视为等于0。事"
"件强度允许通过精确控制手柄轴弯曲或按下的强度来伪造模拟手柄运动事件。"

#: doc/classes/InputEventGesture.xml:4
msgid "Base class for touch control gestures."
msgstr "触摸控制手势的基类。"

#: doc/classes/InputEventGesture.xml:14
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 "
"received this gesture."
msgstr ""
"相对于[Viewport]的本地手势位置。如果在[method Control._gui_input]中使用,位置"
"是相对于当前接收该手势的控件[Control]而言的。"

#: doc/classes/InputEventJoypadButton.xml:4
msgid "Input event for gamepad buttons."
msgstr "游戏手柄按钮的输入事件。"

#: doc/classes/InputEventJoypadButton.xml:7
msgid ""
"Input event type for gamepad buttons. For gamepad analog sticks and "
"joysticks, see [InputEventJoypadMotion]."
msgstr ""
"游戏手柄按钮的输入事件类型。对于游戏手柄模拟摇杆和操纵杆,请参阅 "
"[InputEventJoypadMotion]。"

#: doc/classes/InputEventJoypadButton.xml:16
#, fuzzy
msgid "Button identifier. One of the [enum JoystickList] button constants."
msgstr "按钮标识符。枚举[enum JoyButtonList] 按钮常量之一。"

#: doc/classes/InputEventJoypadButton.xml:19
msgid ""
"If [code]true[/code], the button's state is pressed. If [code]false[/code], "
"the button's state is released."
msgstr ""
"如果 [code]true[/code],按钮的状态被按下。如果[code]false[/code],按钮的状态"
"被释放。"

#: doc/classes/InputEventJoypadButton.xml:22
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""
"如果控制器支持,则表示用户用手指在按钮上施加的压力。范围从 [code]0 [/code] "
"到 [code]1 [/code]。"

#: doc/classes/InputEventJoypadMotion.xml:4
msgid ""
"Input event type for gamepad joysticks and other motions. For buttons, see "
"[code]InputEventJoypadButton[/code]."
msgstr ""
"用于游戏板操纵杆和其他动作的输入事件类型。对于按钮,见"
"[code]InputEventJoypadButton[/code]。"

#: doc/classes/InputEventJoypadMotion.xml:7
msgid ""
"Stores information about joystick motions. One [InputEventJoypadMotion] "
"represents one axis at a time."
msgstr "存储关于操纵杆运动的信息。一个[InputEventJoypadMotion]一次代表一个轴。"

#: doc/classes/InputEventJoypadMotion.xml:16
#, fuzzy
msgid "Axis identifier. Use one of the [enum JoystickList] axis constants."
msgstr "轴的标识符。使用[enum JoyAxisList]轴常数中的一个。"

#: doc/classes/InputEventJoypadMotion.xml:19
msgid ""
"Current position of the joystick on the given axis. The value ranges from "
"[code]-1.0[/code] to [code]1.0[/code]. A value of [code]0[/code] means the "
"axis is in its resting position."
msgstr ""
"操纵杆在给定轴上的当前位置。该值范围从[code]-1.0[/code]到[code]1.0[/code]。值"
"为[code]0[/code]意味着轴处于静止位置。"

#: doc/classes/InputEventKey.xml:4
msgid "Input event type for keyboard events."
msgstr "键盘事件的输入事件类型。"

#: doc/classes/InputEventKey.xml:7
msgid ""
"Stores key presses on the keyboard. Supports key presses, key releases and "
"[member echo] events."
msgstr "存储键盘上的按键。支持按键、按键释放和[member echo]回显事件。"

#: doc/classes/InputEventKey.xml:16
#, fuzzy
msgid ""
"Returns the physical scancode combined with modifier keys such as "
"[code]Shift[/code] or [code]Alt[/code]. See also [InputEventWithModifiers].\n"
"To get a human-readable representation of the [InputEventKey] with "
"modifiers, use [code]OS.get_scancode_string(event."
"get_physical_scancode_with_modifiers())[/code] where [code]event[/code] is "
"the [InputEventKey]."
msgstr ""
"返回与修饰键(如[kbd]Shift[/kbd]或[kbd]Alt[/kbd])相结合的物理键码。也请参见"
"[InputEventWithModifiers]。\n"
"要获得带有修饰符的[InputEventKey]的人类可读表示,使用[code]OS."
"get_keycode_string(event.get_physical_keycode_with_modifiers())[/code],其中"
"[code]event[/code] 是[InputEventKey]。"

#: doc/classes/InputEventKey.xml:23
#, fuzzy
msgid ""
"Returns the scancode combined with modifier keys such as [code]Shift[/code] "
"or [code]Alt[/code]. See also [InputEventWithModifiers].\n"
"To get a human-readable representation of the [InputEventKey] with "
"modifiers, use [code]OS.get_scancode_string(event."
"get_scancode_with_modifiers())[/code] where [code]event[/code] is the "
"[InputEventKey]."
msgstr ""
"返回与修饰键相结合的键码,如[kbd]Shift[/kbd]或[kbd]Alt[/kbd]。另请参阅带修饰"
"符的输入[InputEventWithModifiers]。\n"
"要获得带有修饰符的人类可读的 [InputEventKey] 表示,请使用 [code]OS."
"get_keycode_string(event.get_keycode_with_modifiers())[/code] 其中 "
"[code]event[/code] 是 [InputEventKey]。"

#: doc/classes/InputEventKey.xml:30
msgid ""
"If [code]true[/code], the key was already pressed before this event. It "
"means the user is holding the key down."
msgstr ""
"如果 [code]true[/code],则该键在此事件之前已被按下。这意味着用户正在按住该"
"键。"

#: doc/classes/InputEventKey.xml:33
#, fuzzy
msgid ""
"Key physical scancode, which corresponds to one of the [enum KeyList] "
"constants. Represent the physical location of a key on the 101/102-key US "
"QWERTY keyboard.\n"
"To get a human-readable representation of the [InputEventKey], use [code]OS."
"get_scancode_string(event.physical_scancode)[/code] where [code]event[/code] "
"is the [InputEventKey]."
msgstr ""
"键的物理键码,对应于[enum KeyList]常量中的一个。代表101/102键美国QWERTY键盘上"
"一个键的物理位置。\n"
"要获得[InputEventKey]的人类可读的表示,使用[code]OS.get_keycode_string(event."
"keycode)[/code],其中[code]event[/code]是[InputEventKey]。"

#: doc/classes/InputEventKey.xml:37
msgid ""
"If [code]true[/code], the key's state is pressed. If [code]false[/code], the "
"key's state is released."
msgstr ""
"如果[code]true[/code],按键的状态是被按下。如果[code]false[/code],该键的状态"
"被释放。"

#: doc/classes/InputEventKey.xml:40
#, fuzzy
msgid ""
"The key scancode, which corresponds to one of the [enum KeyList] constants. "
"Represent key in the current keyboard layout.\n"
"To get a human-readable representation of the [InputEventKey], use [code]OS."
"get_scancode_string(event.scancode)[/code] where [code]event[/code] is the "
"[InputEventKey]."
msgstr ""
"键的键码,对应于[enum KeyList]常量中的一个。代表当前键盘布局中的键。\n"
"要获得[InputEventKey]的人类可读的表示,使用[code]OS.get_keycode_string(event."
"keycode)[/code],其中[code]event[/code]是[InputEventKey]。"

#: doc/classes/InputEventKey.xml:44
#, fuzzy
msgid ""
"The key Unicode identifier (when relevant). Unicode identifiers for the "
"composite characters and complex scripts may not be available unless IME "
"input mode is active. See [method OS.set_ime_active] for more information."
msgstr ""
"键的 Unicode 标识符(相关时)。除非IME输入模式处于激活状态,否则可能无法为复"
"合字符和复杂脚本提供 Unicode 标识符。有关更多信息,请参阅 [方法Window."
"set_ime_active] 。"

#: doc/classes/InputEventMouse.xml:4
msgid "Base input event type for mouse events."
msgstr "鼠标事件的基本输入事件类型。"

#: doc/classes/InputEventMouse.xml:7
msgid "Stores general mouse events information."
msgstr "存储一般的鼠标事件信息。"

#: doc/classes/InputEventMouse.xml:16
msgid ""
"The mouse button mask identifier, one of or a bitwise combination of the "
"[enum ButtonList] button masks."
msgstr "鼠标按钮掩码标识符,是[enum ButtonList] 按钮掩码之一或按位组合。"

#: doc/classes/InputEventMouse.xml:19
msgid ""
"The global mouse position relative to the current [Viewport] when used in "
"[method Control._gui_input], otherwise is at 0,0."
msgstr ""
"在[method Control._gui_input]中使用时,相对于当前[Viewport]的全局鼠标位置,否"
"则是在0,0处。"

#: doc/classes/InputEventMouse.xml:22
msgid ""
"The local mouse position relative to the [Viewport]. If used in [method "
"Control._gui_input], the position is relative to the current [Control] which "
"is under the mouse."
msgstr ""
"相对于[Viewport]的本地局部鼠标位置。如果在[method Control._gui_input]中使用,"
"位置是相对于当前处于鼠标下的控件[Control]。"

#: doc/classes/InputEventMouseButton.xml:4
msgid "Input event type for mouse button events."
msgstr "鼠标按钮事件的输入事件类型。"

#: doc/classes/InputEventMouseButton.xml:7
msgid "Contains mouse click information. See [method Node._input]."
msgstr "包含鼠标点击信息。见[method Node._input]。"

#: doc/classes/InputEventMouseButton.xml:10
#: doc/classes/InputEventMouseMotion.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/inputs/"
"mouse_and_input_coordinates.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/inputs/"
"mouse_and_input_coordinates.html"

#: doc/classes/InputEventMouseButton.xml:16
msgid ""
"The mouse button identifier, one of the [enum ButtonList] button or button "
"wheel constants."
msgstr "鼠标按钮标识符,是[enum ButtonList] 按钮或按钮滚轮常量之一。"

#: doc/classes/InputEventMouseButton.xml:19
msgid "If [code]true[/code], the mouse button's state is a double-click."
msgstr "如果[code]true[/code],鼠标按钮的状态是双击。"

#: doc/classes/InputEventMouseButton.xml:22
msgid ""
"The amount (or delta) of the event. When used for high-precision scroll "
"events, this indicates the scroll amount (vertical or horizontal). This is "
"only supported on some platforms; the reported sensitivity varies depending "
"on the platform. May be [code]0[/code] if not supported."
msgstr ""
"事件的数量(或delta)。当用于高精度滚动事件时,这表示滚动量(垂直或水平)。这"
"只在一些平台上被支持;报告的灵敏度因平台不同而不同。如果不支持,可能是"
"[code]0[/code]。"

#: doc/classes/InputEventMouseButton.xml:25
msgid ""
"If [code]true[/code], the mouse button's state is pressed. If [code]false[/"
"code], the mouse button's state is released."
msgstr ""
"如果[code]true[/code],鼠标按键的状态为按下。如果[code]false[/code],鼠标按钮"
"的状态被释放。"

#: doc/classes/InputEventMouseMotion.xml:4
msgid "Input event type for mouse motion events."
msgstr "鼠标移动事件的输入事件类型。"

#: doc/classes/InputEventMouseMotion.xml:7
msgid ""
"Contains mouse and pen motion information. Supports relative, absolute "
"positions and speed. See [method Node._input].\n"
"[b]Note:[/b] By default, this event is only emitted once per frame rendered "
"at most. If you need more precise input reporting, call [method Input."
"set_use_accumulated_input] with [code]false[/code] to make events emitted as "
"often as possible. If you use InputEventMouseMotion to draw lines, consider "
"implementing [url=https://en.wikipedia.org/wiki/Bresenham"
"%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid "
"visible gaps in lines if the user is moving the mouse quickly."
msgstr ""
"包含鼠标和笔的运动信息。支持相对、绝对位置和速度。参见[method Node."
"_input]。\n"
"[b]注意:[/b]默认情况下,这个事件最多只能在每一帧渲染中发出一次。如果你需要更"
"精确的输入报告,请用[code]false[/code]调用[method Input."
"set_use_accumulated_input]来使事件尽可能频繁地发射。如果你使用"
"InputEventMouseMotion来画线,请考虑同时实现[url=https://en.wikipedia.org/"
"wiki/Bresenham%27s_line_algorithm]Bresenham的线条算法[/url],以避免在用户快速"
"移动鼠标时出现可见的线条空隙。"

#: doc/classes/InputEventMouseMotion.xml:18
msgid ""
"Represents the pressure the user puts on the pen. Ranges from [code]0.0[/"
"code] to [code]1.0[/code]."
msgstr ""
"表示用户对笔施加的压力。范围从 [code]0.0 [/code] 到 [code]1.0 [/code] 。"

#: doc/classes/InputEventMouseMotion.xml:21
msgid ""
"The mouse position relative to the previous position (position at the last "
"frame).\n"
"[b]Note:[/b] Since [InputEventMouseMotion] is only emitted when the mouse "
"moves, the last event won't have a relative position of [code]Vector2(0, 0)[/"
"code] when the user stops moving the mouse."
msgstr ""
"鼠标相对于前一个位置的位置(上一帧的位置)。\n"
"[b]注意:[/b] 因为[InputEventMouseMotion]只在鼠标移动时发出,当用户停止移动鼠"
"标时,最后一个事件的相对位置不会是[code]Vector2(0, 0)[/code]。"

#: doc/classes/InputEventMouseMotion.xml:25
msgid "The mouse speed in pixels per second."
msgstr "鼠标速度以像素/秒为单位。"

#: doc/classes/InputEventMouseMotion.xml:28
msgid ""
"Represents the angles of tilt of the pen. Positive X-coordinate value "
"indicates a tilt to the right. Positive Y-coordinate value indicates a tilt "
"toward the user. Ranges from [code]-1.0[/code] to [code]1.0[/code] for both "
"axes."
msgstr ""
"代表笔的倾斜角度。正的X坐标值表示向右倾斜。正的Y坐标值表示向用户自身倾斜。两"
"个轴的范围是[code]-1.0[/code]到[code]1.0[/code]。"

#: doc/classes/InputEventScreenDrag.xml:4
msgid ""
"Input event type for screen drag events. Only available on mobile devices."
msgstr "屏幕拖动事件的输入事件类型。只适用于移动设备。"

#: doc/classes/InputEventScreenDrag.xml:7
msgid "Contains screen drag information. See [method Node._input]."
msgstr "包含屏幕拖动信息。见[method Node._input]。"

#: doc/classes/InputEventScreenDrag.xml:16
msgid "The drag event index in the case of a multi-drag event."
msgstr "多次拖动事件中的拖动事件索引。"

#: doc/classes/InputEventScreenDrag.xml:19
msgid "The drag position."
msgstr "拖拽的位置。"

#: doc/classes/InputEventScreenDrag.xml:22
msgid "The drag position relative to its start position."
msgstr "相对于其起始位置的拖动位置。"

#: doc/classes/InputEventScreenDrag.xml:25
msgid "The drag speed."
msgstr "拖动速度。"

#: doc/classes/InputEventScreenTouch.xml:4
msgid ""
"Input event type for screen touch events.\n"
"(only available on mobile devices)"
msgstr ""
"用于屏幕触摸事件的输入事件类型。\n"
"(仅适用于移动设备)"

#: doc/classes/InputEventScreenTouch.xml:8
msgid ""
"Stores multi-touch press/release information. Supports touch press, touch "
"release and [member index] for multi-touch count and order."
msgstr ""
"存储多点触摸的按压/释放信息。支持触摸按压、触摸释放和[member index]的多点触摸"
"计数和顺序。"

#: doc/classes/InputEventScreenTouch.xml:17
msgid ""
"The touch index in the case of a multi-touch event. One index = one finger."
msgstr "在多点触摸事件中的触摸指数。一个索引=一个手指。"

#: doc/classes/InputEventScreenTouch.xml:20
msgid "The touch position."
msgstr "触摸位置。"

#: doc/classes/InputEventScreenTouch.xml:23
msgid ""
"If [code]true[/code], the touch's state is pressed. If [code]false[/code], "
"the touch's state is released."
msgstr ""
"如果[code]true[/code],触摸的状态为按下。如果[code]false[/code],触摸的状态被"
"释放。"

#: doc/classes/InputEventWithModifiers.xml:4
msgid "Base class for keys events with modifiers."
msgstr "带有修饰符的键事件的基类。"

#: doc/classes/InputEventWithModifiers.xml:7
#, fuzzy
msgid ""
"Contains keys events information with modifiers support like [code]Shift[/"
"code] or [code]Alt[/code]. See [method Node._input]."
msgstr ""
"包含具有修饰符支持的按键事件信息,如 [kbd]Shift[/kbd] 或 [kbd]Alt[/kbd]。参见"
"[method Node._input]。"

#: doc/classes/InputEventWithModifiers.xml:16
#, fuzzy
msgid "State of the [code]Alt[/code] modifier."
msgstr "[kbd]Alt[/kbd] 修饰符的状态。"

#: doc/classes/InputEventWithModifiers.xml:19
#, fuzzy
msgid "State of the [code]Command[/code] modifier."
msgstr "[kbd]Cmd[/kbd] 修饰符的状态。"

#: doc/classes/InputEventWithModifiers.xml:22
#, fuzzy
msgid "State of the [code]Ctrl[/code] modifier."
msgstr "[kbd]Ctrl[/kbd] 修饰符的状态。"

#: doc/classes/InputEventWithModifiers.xml:25
#, fuzzy
msgid "State of the [code]Meta[/code] modifier."
msgstr "[kbd]Meta[/kbd] 修饰符的状态。"

#: doc/classes/InputEventWithModifiers.xml:28
#, fuzzy
msgid "State of the [code]Shift[/code] modifier."
msgstr "[kbd]Shift[/kbd] 修饰符的状态。"

#: doc/classes/InputMap.xml:4
msgid "Singleton that manages [InputEventAction]."
msgstr "管理 [InputEventAction] 的单例。"

#: doc/classes/InputMap.xml:7
msgid ""
"Manages all [InputEventAction] which can be created/modified from the "
"project settings menu [b]Project > Project Settings > Input Map[/b] or in "
"code with [method add_action] and [method action_add_event]. See [method "
"Node._input]."
msgstr ""
"管理所有的[InputEventAction],可以通过项目设置菜单[b]项目>项目设置>键位映射[/"
"b]或在代码中用[method add_action]和[method action_add_event]创建/修改。参见"
"[method Node._input]。"

#: doc/classes/InputMap.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html#inputmap"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/inputs/inputevent."
"html#inputmap"

#: doc/classes/InputMap.xml:18
msgid ""
"Adds an [InputEvent] to an action. This [InputEvent] will trigger the action."
msgstr "给一个动作添加一个[InputEvent]。这个[InputEvent]将触发这个动作。"

#: doc/classes/InputMap.xml:26
msgid "Removes an [InputEvent] from an action."
msgstr "从一个动作中删除一个[InputEvent]。"

#: doc/classes/InputMap.xml:33
msgid "Removes all events from an action."
msgstr "从动作中删除所有事件。"

#: doc/classes/InputMap.xml:40
#, fuzzy
msgid "Returns a deadzone value for the action."
msgstr "为该动作设置死区值。"

#: doc/classes/InputMap.xml:48
msgid ""
"Returns [code]true[/code] if the action has the given [InputEvent] "
"associated with it."
msgstr "如果该动作有给定的[InputEvent]与之相关,则返回[code]true[/code]。"

#: doc/classes/InputMap.xml:56
msgid "Sets a deadzone value for the action."
msgstr "为该动作设置死区值。"

#: doc/classes/InputMap.xml:64
msgid ""
"Adds an empty action to the [InputMap] with a configurable [code]deadzone[/"
"code].\n"
"An [InputEvent] can then be added to this action with [method "
"action_add_event]."
msgstr ""
"在[InputMap]上添加一个空的动作,有一个可配置的死区[code]deadzone[/code]。\n"
"然后可以用[method action_add_event]给这个动作添加一个[InputEvent]。"

#: doc/classes/InputMap.xml:72
msgid "Removes an action from the [InputMap]."
msgstr "从[InputMap]中删除一个动作。"

#: doc/classes/InputMap.xml:81
#, fuzzy
msgid ""
"Returns [code]true[/code] if the given event is part of an existing action. "
"This method ignores keyboard modifiers if the given [InputEvent] is not "
"pressed (for proper release detection). See [method action_has_event] if you "
"don't want this behavior.\n"
"If [code]exact_match[/code] is [code]false[/code], it ignores the input "
"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
"direction for [InputEventJoypadMotion] events."
msgstr ""
"如果给定事件是现有操作的一部分,则返回 [code] true [/code]。如果未按下给定的 "
"[InputEvent](用于适当的释放检测),此方法将忽略键盘修饰器。如果您不希望这种"
"行为,请参阅 [method action_has_event] 。"

#: doc/classes/InputMap.xml:89
msgid "Returns an array of [InputEvent]s associated with a given action."
msgstr "返回与给定操作关联的 [InputEvent] 数组。"

#: doc/classes/InputMap.xml:95
msgid "Returns an array of all actions in the [InputMap]."
msgstr "返回[InputMap]中所有动作的数组。"

#: doc/classes/InputMap.xml:102
msgid ""
"Returns [code]true[/code] if the [InputMap] has a registered action with the "
"given name."
msgstr "如果[InputMap]有一个给定名称的注册动作,返回[code]true[/code]。"

#: doc/classes/InputMap.xml:108
msgid ""
"Clears all [InputEventAction] in the [InputMap] and load it anew from "
"[ProjectSettings]."
msgstr ""
"清除[InputMap]中的所有[InputEventAction],并从[ProjectSettings]项目设置中重新"
"加载它。"

#: doc/classes/InstancePlaceholder.xml:4
msgid "Placeholder for the root [Node] of a [PackedScene]."
msgstr "[PackedScene] 根 [Node] 的占位。"

#: doc/classes/InstancePlaceholder.xml:7
#, fuzzy
msgid ""
"Turning on the option [b]Load As Placeholder[/b] for an instanced scene in "
"the editor causes it to be replaced by an InstancePlaceholder when running "
"the game. This makes it possible to delay actually loading the scene until "
"calling [method replace_by_instance]. This is useful to avoid loading large "
"scenes all at once by loading parts of it selectively.\n"
"The InstancePlaceholder does not have a transform. This causes any child "
"nodes to be positioned relatively to the Viewport from point (0,0), rather "
"than their parent as displayed in the editor. Replacing the placeholder with "
"a scene with a transform will transform children relatively to their parent "
"again."
msgstr ""
"在编辑器中为实例化场景打开选项 [b] 加载为占位符 [/b] 会导致在运行游戏时将其替"
"换为 [InstancePlaceholder]。这使得实际加载场景的时间可以推迟到调用[method "
"create_instance]。这对于通过选择性加载部分场景来避免一次性加载大场景很有"
"用。\n"
"[InstancePlaceholder] 没有变换(transform)属性。这导致任何子节点从点(0,0)开"
"始相对于[视口]进行定位,而不是在编辑器中显示的父节点。用一个具有变换功能的场"
"景来替换占位符,将使子节点再次相对于它们的父节点进行变换。"

#: doc/classes/InstancePlaceholder.xml:18
msgid ""
"Not thread-safe. Use [method Object.call_deferred] if calling from a thread."
msgstr ""

#: doc/classes/InstancePlaceholder.xml:24
#, fuzzy
msgid ""
"Gets the path to the [PackedScene] resource file that is loaded by default "
"when calling [method replace_by_instance]. Not thread-safe. Use [method "
"Object.call_deferred] if calling from a thread."
msgstr ""
"获取调用[method create_instance]时默认加载的[PackedScene]资源文件的路径。"

#: doc/classes/InstancePlaceholder.xml:37
msgid ""
"Replaces this placeholder by the scene handed as an argument, or the "
"original scene if no argument is given. As for all resources, the scene is "
"loaded only if it's not loaded already. By manually loading the scene "
"beforehand, delays caused by this function can be avoided."
msgstr ""

#: doc/classes/int.xml:4
msgid "Integer built-in type."
msgstr "整数内置类型。"

#: doc/classes/int.xml:7
msgid ""
"Signed 64-bit integer type.\n"
"It can take values in the interval [code][-2^63, 2^63 - 1][/code], i.e. "
"[code][-9223372036854775808, 9223372036854775807][/code]. Exceeding those "
"bounds will wrap around.\n"
"[int] is a [Variant] type, and will thus be used when assigning an integer "
"value to a [Variant]. It can also be enforced with the [code]: int[/code] "
"type hint.\n"
"[codeblock]\n"
"var my_variant = 0 # int, value 0.\n"
"my_variant += 4.2 # float, value 4.2.\n"
"var my_int: int = 1 # int, value 1.\n"
"my_int = 4.2 # int, value 4, the right value is implicitly cast to int.\n"
"my_int = int(\"6.7\") # int, value 6, the String is explicitly cast with "
"int.\n"
"\n"
"var max_int = 9223372036854775807\n"
"print(max_int) # 9223372036854775807, OK.\n"
"max_int += 1\n"
"print(max_int) # -9223372036854775808, we overflowed and wrapped around.\n"
"[/codeblock]"
msgstr ""
"有符号的64位整数类型。\n"
"它可以在[code][-2^63, 2^63 - 1][/code]区间取值,即[code]"
"[-9223372036854775808, 9223372036854775807][/code]。超过这个界限将从头/尾环绕"
"循环。\n"
"[int]是一个[Variant]变量类型,因此在给一个[Variant]变量分配整数值时将被使用。"
"它也可以用[code]: int[/code]类型提示来执行。\n"
"[codeblock]\n"
"var my_variant = 0 # int, value 0.\n"
"my_variant += 4.2 # float, value 4.2.\n"
"var my_int: int = 1 # int, value 1.\n"
"my_int = 4.2 # int, value 4, 右值被隐式强制转换为int\n"
"my_int = int(\"6.7\") # int, value 6, String是用int显式强制转换的。\n"
"\n"
"var max_int = 9223372036854775807\n"
"print(max_int) # 9223372036854775807, OK.\n"
"max_int += 1\n"
"print(max_int) # -9223372036854775808, 值溢出并绕到最小值。\n"
"[/codeblock]"

#: doc/classes/int.xml:30
msgid ""
"Cast a [bool] value to an integer value, [code]int(true)[/code] will be "
"equals to 1 and [code]int(false)[/code] will be equals to 0."
msgstr ""
"将一个[bool]值转换成一个整数值,[code]int(true)[/code]将等于1,"
"[code]int(false)[/code] 将等于0。"

#: doc/classes/int.xml:37
#, fuzzy
msgid ""
"Cast a float value to an integer value, this method simply removes the "
"number fractions (i.e. rounds [code]from[/code] towards zero), so for "
"example [code]int(2.7)[/code] will be equals to 2, [code]int(0.1)[/code] "
"will be equals to 0 and [code]int(-2.7)[/code] will be equals to -2. This "
"operation is also called truncation."
msgstr ""
"将浮点值转换为整数值,此方法只是删除数字的小数部分,因此例如 [code]int(2.7)[/"
"code] 将等于 2,[code]int(.1)[/code] 将等于到 0 并且 [code]int(-2.7)[/code] "
"将等于 -2。"

#: doc/classes/int.xml:44
msgid ""
"Cast a [String] value to an integer value, this method is an integer parser "
"from a string, so calling this method with an invalid integer string will "
"return 0, a valid string will be something like [code]'1.7'[/code]. This "
"method will ignore all non-number characters, so calling [code]int('1e3')[/"
"code] will return 13."
msgstr ""
"将一个[String]字符串值转换成一个整数值,这个方法是一个来自字符串的整数解析"
"器,所以用一个无效的整数字符串调用这个方法将返回0,一个有效的字符串将是像"
"[code]'1.7'[/code]这样。这个方法将忽略所有非数字字符,所以调用"
"[code]int('1e3')[/code]将返回13。"

#: doc/classes/InterpolatedCamera.xml:4
msgid "[i]Deprecated.[/i] Camera which moves toward another node."
msgstr ""

#: doc/classes/InterpolatedCamera.xml:7
msgid ""
"[i]Deprecated (will be removed in Godot 4.0).[/i] InterpolatedCamera is a "
"[Camera] which smoothly moves to match a target node's position and "
"rotation.\n"
"If it is not [member enabled] or does not have a valid target set, "
"InterpolatedCamera acts like a normal Camera."
msgstr ""

#: doc/classes/InterpolatedCamera.xml:17
#, fuzzy
msgid "Sets the node to move toward and orient with."
msgstr "设置当前线程的名称。"

#: doc/classes/InterpolatedCamera.xml:23
#, fuzzy
msgid ""
"If [code]true[/code], and a target is set, the camera will move "
"automatically."
msgstr "如果 [code]true[/code],则窗口向下滚动以自动显示新内容。"

#: doc/classes/InterpolatedCamera.xml:26
msgid ""
"How quickly the camera moves toward its target. Higher values will result in "
"tighter camera motion."
msgstr ""

#: doc/classes/InterpolatedCamera.xml:29
msgid "The target's [NodePath]."
msgstr ""

#: doc/classes/IP.xml:4
msgid "Internet protocol (IP) support functions such as DNS resolution."
msgstr "互联网协议(IP)支持功能,如DNS解析。"

#: doc/classes/IP.xml:7
msgid ""
"IP contains support functions for the Internet Protocol (IP). TCP/IP support "
"is in different classes (see [StreamPeerTCP] and [TCP_Server]). IP provides "
"DNS hostname resolution support, both blocking and threaded."
msgstr ""
"IP包含对互联网协议(IP)的支持功能。TCP/IP支持在不同的类别中(见"
"[StreamPeerTCP]和[TCP_Server])。IP提供DNS主机名解析支持,包括阻塞式和线程"
"式。"

#: doc/classes/IP.xml:16
msgid ""
"Removes all of a [code]hostname[/code]'s cached references. If no "
"[code]hostname[/code] is given, all cached IP addresses are removed."
msgstr ""
"移除所有[code]hostname[/code]主机名的缓存引用。如果没有给出[code]hostname[/"
"code],所有缓存的IP地址将被删除。"

#: doc/classes/IP.xml:23
msgid ""
"Removes a given item [code]id[/code] from the queue. This should be used to "
"free a queue after it has completed to enable more queries to happen."
msgstr ""
"从队列中删除一个给定的项目[code]id[/code]。这应该被用来在队列完成后释放队列,"
"以便进行更多的查询。"

#: doc/classes/IP.xml:29
#, fuzzy
msgid "Returns all the user's current IPv4 and IPv6 addresses as an array."
msgstr "以数组形式返回用户当前的所有 IPv4 和 IPv6 地址。"

#: doc/classes/IP.xml:35
msgid ""
"Returns all network adapters as an array.\n"
"Each adapter is a dictionary of the form:\n"
"[codeblock]\n"
"{\n"
"    \"index\": \"1\", # Interface index.\n"
"    \"name\": \"eth0\", # Interface name.\n"
"    \"friendly\": \"Ethernet One\", # A friendly name (might be empty).\n"
"    \"addresses\": [\"192.168.1.101\"], # An array of IP addresses "
"associated to this interface.\n"
"}\n"
"[/codeblock]"
msgstr ""
"以数组形式返回所有网络适配器(network adapters)。\n"
"每个适配器是一个形式的字典。\n"
"[codeblock]\n"
"{\n"
"    \"index\":\"1\", # 接口索引。\n"
"    \"name\":\"eth0\", # 接口名称。\n"
"    \"friendly\":\"Ethernet One\", # 一个友好的名字(可能是空的)。\n"
"    \"address\":[\"192.168.1.101\"], # 一个与此接口相关的IP地址数组。\n"
"}\n"
"[/codeblock]"

#: doc/classes/IP.xml:51
msgid ""
"Returns a queued hostname's IP address, given its queue [code]id[/code]. "
"Returns an empty string on error or if resolution hasn't happened yet (see "
"[method get_resolve_item_status])."
msgstr ""
"给定队列 [code]id[/code],返回排队主机名的 IP 地址。出现错误或解析尚未发生时"
"返回一个空字符串(参见 [method get_resolve_item_status])。"

#: doc/classes/IP.xml:58
#, fuzzy
msgid ""
"Return resolved addresses, or an empty array if an error happened or "
"resolution didn't happen yet (see [method get_resolve_item_status])."
msgstr ""
"给定队列 [code]id[/code],返回排队主机名的 IP 地址。出现错误或解析尚未发生时"
"返回一个空字符串(参见 [method get_resolve_item_status])。"

#: doc/classes/IP.xml:65
msgid ""
"Returns a queued hostname's status as a [enum ResolverStatus] constant, "
"given its queue [code]id[/code]."
msgstr ""
"给定队列 [code]id[/code],以 [enum ResolverStatus] 常量的形式返回排队主机名的"
"状态。"

#: doc/classes/IP.xml:73
msgid ""
"Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type "
"method). The address type returned depends on the [enum Type] constant given "
"as [code]ip_type[/code]."
msgstr ""
"在解析时返回一个给定的主机名的IPv4或IPv6地址(阻塞类型方法)。返回的地址类型"
"取决于作为[code]ip_type[/code]的[enum Type]常量。"

#: doc/classes/IP.xml:81
msgid ""
"Resolves a given hostname in a blocking way. Addresses are returned as an "
"[Array] of IPv4 or IPv6 depending on [code]ip_type[/code]."
msgstr ""

#: doc/classes/IP.xml:89
msgid ""
"Creates a queue item to resolve a hostname to an IPv4 or IPv6 address "
"depending on the [enum Type] constant given as [code]ip_type[/code]. Returns "
"the queue ID if successful, or [constant RESOLVER_INVALID_ID] on error."
msgstr ""
"创建一个队列项目,根据[enum Type]常数[code]ip_type[/code],将主机名解析为IPv4"
"或IPv6地址。如果成功,返回队列ID,否则返回[constant RESOLVER_INVALID_ID]。"

#: doc/classes/IP.xml:95
msgid "DNS hostname resolver status: No status."
msgstr "DNS 主机名解析器状态:无状态。"

#: doc/classes/IP.xml:98
msgid "DNS hostname resolver status: Waiting."
msgstr "DNS 主机名解析器状态:正在等待。"

#: doc/classes/IP.xml:101
msgid "DNS hostname resolver status: Done."
msgstr "DNS 主机名解析器状态:完成。"

#: doc/classes/IP.xml:104
msgid "DNS hostname resolver status: Error."
msgstr "DNS 主机名解析器状态:错误。"

#: doc/classes/IP.xml:107
msgid ""
"Maximum number of concurrent DNS resolver queries allowed, [constant "
"RESOLVER_INVALID_ID] is returned if exceeded."
msgstr ""
"允许的最大并发DNS解析器查询数量,如果超过,则返回[constant "
"RESOLVER_INVALID_ID]。"

#: doc/classes/IP.xml:110
msgid ""
"Invalid ID constant. Returned if [constant RESOLVER_MAX_QUERIES] is exceeded."
msgstr "无效的ID常数。如果超过了[constant RESOLVER_MAX_QUERIES],则返回。"

#: doc/classes/IP.xml:113
msgid "Address type: None."
msgstr "地址类型:无。"

#: doc/classes/IP.xml:116
msgid "Address type: Internet protocol version 4 (IPv4)."
msgstr "地址类型:互联网协议版本4(IPv4)。"

#: doc/classes/IP.xml:119
msgid "Address type: Internet protocol version 6 (IPv6)."
msgstr "地址类型:互联网协议版本6(IPv6)。"

#: doc/classes/IP.xml:122
msgid "Address type: Any."
msgstr "地址类型:任意。"

#: doc/classes/ItemList.xml:4
msgid ""
"Control that provides a list of selectable items (and/or icons) in a single "
"column, or optionally in multiple columns."
msgstr ""
"该控件提供了一个单列的可选择项目(和/或图标)的列表,也可以选择多列的。"

#: doc/classes/ItemList.xml:7
#, fuzzy
msgid ""
"This control provides a selectable list of items that may be in a single (or "
"multiple columns) with option of text, icons, or both text and icon. "
"Tooltips are supported and may be different for every item in the list.\n"
"Selectable items in the list may be selected or deselected and multiple "
"selection may be enabled. Selection with right mouse button may also be "
"enabled to allow use of popup context menus. Items may also be \"activated\" "
"by double-clicking them or by pressing Enter.\n"
"Item text only supports single-line strings, newline characters (e.g. "
"[code]\\n[/code]) in the string won't produce a newline. Text wrapping is "
"enabled in [constant ICON_MODE_TOP] mode, but column's width is adjusted to "
"fully fit its content by default. You need to set [member "
"fixed_column_width] greater than zero to wrap the text."
msgstr ""
"此控件提供了一个可选择的项目列表,该列表可以是单列(或多列),可以单独选择文"
"本、图标或同时选择文本和图标。支持工具提示,列表中的每个项目都可以是不同"
"的。\n"
"列表中可选择的项目可以被选择或取消选择,并且可以启用多重选择。用鼠标右键选择"
"也可以被启用,以允许使用弹出式上下文菜单。项目也可以通过双击它们或按"
"[kbd]Enter[/kbd]键来 \"激活\"。\n"
"项目文本只支持单行字符串,字符串中的换行字符(例如[code]\\n[/code])不会产生"
"换行。在[constant ICON_MODE_TOP]模式下,文本自适应(warp)是启用的,但默认情况"
"下会调整列的宽度以完全适合其内容。你需要设置[member fixed_column_width]大于0"
"来包住文本。"

#: doc/classes/ItemList.xml:19
msgid "Adds an item to the item list with no text, only an icon."
msgstr "将一个没有文本的项目添加到项目列表中,只有一个图标。"

#: doc/classes/ItemList.xml:28
msgid ""
"Adds an item to the item list with specified text. Specify an [code]icon[/"
"code], or use [code]null[/code] as the [code]icon[/code] for a list item "
"with no icon.\n"
"If selectable is [code]true[/code], the list item will be selectable."
msgstr ""
"将一个项目添加到项目列表中,并指定文本。指定一个图标[code]icon[/code],或者图"
"标[code] icon [/code]使用空[code]null[/code]作为没有图标的列表项。\n"
"如果可选择填[code]true[/code],列表项将是可选择的。"

#: doc/classes/ItemList.xml:35
msgid "Removes all items from the list."
msgstr "移除列表中的所有项目。"

#: doc/classes/ItemList.xml:41
msgid ""
"Ensure current selection is visible, adjusting the scroll position as "
"necessary."
msgstr "确保当前选择可见,根据需要调整滚动位置。"

#: doc/classes/ItemList.xml:49
msgid ""
"Returns the item index at the given [code]position[/code].\n"
"When there is no item at that point, -1 will be returned if [code]exact[/"
"code] is [code]true[/code], and the closest item index will be returned "
"otherwise."
msgstr ""
"在给定的位置 [code] position [/code] 返回项目索引。\n"
"当此时没有项目时,如果精确 [code] exact [/code] 是真 [code]true [/code],则将"
"返回 -1,否则将返回最近的项目索引。"

#: doc/classes/ItemList.xml:56
msgid "Returns the number of items currently in the list."
msgstr "返回当前列表中的项目数。"

#: doc/classes/ItemList.xml:63
msgid ""
"Returns the custom background color of the item specified by [code]idx[/"
"code] index."
msgstr "返回由[code]idx[/code]索引指定的项目的自定义背景颜色。"

#: doc/classes/ItemList.xml:70
msgid ""
"Returns the custom foreground color of the item specified by [code]idx[/"
"code] index."
msgstr "返回由[code]idx[/code]索引指定项目的自定义前景颜色。"

#: doc/classes/ItemList.xml:77
msgid "Returns the icon associated with the specified index."
msgstr "返回与指定索引相关的图标。"

#: doc/classes/ItemList.xml:84
msgid "Returns a [Color] modulating item's icon at the specified index."
msgstr "返回指定索引处的[Color]颜色调制(modulating) 项的图标。"

#: doc/classes/ItemList.xml:91
msgid ""
"Returns the region of item's icon used. The whole icon will be used if the "
"region has no area."
msgstr "返回项目图标的使用区域。如果该区域大小为0,整个图标将被使用。"

#: doc/classes/ItemList.xml:98
msgid "Returns the metadata value of the specified index."
msgstr "返回指定索引的元数据值。"

#: doc/classes/ItemList.xml:105
msgid "Returns the text associated with the specified index."
msgstr "返回与指定索引关联的文本。"

#: doc/classes/ItemList.xml:112
msgid "Returns the tooltip hint associated with the specified index."
msgstr "返回与指定索引关联的工具提示。"

#: doc/classes/ItemList.xml:118
msgid "Returns an array with the indexes of the selected items."
msgstr "返回一个包含所选项目索引的数组。"

#: doc/classes/ItemList.xml:124
msgid "Returns the [Object] ID associated with the list."
msgstr "返回与列表相关的[Object]对象ID。"

#: doc/classes/ItemList.xml:130
msgid "Returns [code]true[/code] if one or more items are selected."
msgstr "选中了一个或多个项目时,返回 [code]true[/code]。"

#: doc/classes/ItemList.xml:137
msgid ""
"Returns [code]true[/code] if the item at the specified index is disabled."
msgstr "索引所对应的项目被禁用时,返回 [code]true[/code]。"

#: doc/classes/ItemList.xml:144
msgid ""
"Returns [code]true[/code] if the item icon will be drawn transposed, i.e. "
"the X and Y axes are swapped."
msgstr "项目图标被转置绘制,即 X 和 Y 轴互换时,返回 [code]true[/code]。"

#: doc/classes/ItemList.xml:151
msgid ""
"Returns [code]true[/code] if the item at the specified index is selectable."
msgstr "索引所对应的项目可以被选中时,返回 [code]true[/code]。"

#: doc/classes/ItemList.xml:158
msgid ""
"Returns [code]true[/code] if the tooltip is enabled for specified item index."
msgstr "索引所对应的项目已启用工具提示时,返回 [code]true[/code]。"

#: doc/classes/ItemList.xml:165
msgid ""
"Returns [code]true[/code] if the item at the specified index is currently "
"selected."
msgstr "索引所对应的项目被选中时,返回 [code]true[/code]。"

#: doc/classes/ItemList.xml:173
msgid "Moves item from index [code]from_idx[/code] to [code]to_idx[/code]."
msgstr "将项目从索引[code]from_idx[/code]移到[code]to_idx[/code]。"

#: doc/classes/ItemList.xml:180
msgid "Removes the item specified by [code]idx[/code] index from the list."
msgstr "从列表中删除 [code]idx[/code] 索引指定的项目。"

#: doc/classes/ItemList.xml:188
msgid ""
"Select the item at the specified index.\n"
"[b]Note:[/b] This method does not trigger the item selection signal."
msgstr ""
"选择指定索引处的项目。\n"
"[b]注:[/b]此方法不触发项目选择信号。"

#: doc/classes/ItemList.xml:197
#, fuzzy
msgid ""
"Sets the background color of the item specified by [code]idx[/code] index to "
"the specified [Color]."
msgstr "返回由[code]idx[/code]索引指定的项目的自定义背景颜色。"

#: doc/classes/ItemList.xml:205
#, fuzzy
msgid ""
"Sets the foreground color of the item specified by [code]idx[/code] index to "
"the specified [Color]."
msgstr "返回由[code]idx[/code]索引指定项目的自定义前景颜色。"

#: doc/classes/ItemList.xml:213
#, fuzzy
msgid ""
"Disables (or enables) the item at the specified index.\n"
"Disabled items cannot be selected and do not trigger activation signals "
"(when double-clicking or pressing Enter)."
msgstr ""
"禁用(或启用)指定索引上的项目。\n"
"禁用的项目不能被选择,也不会触发激活信号(当双击或按[kbd]Enter[/kbd])。"

#: doc/classes/ItemList.xml:222
#, fuzzy
msgid ""
"Sets (or replaces) the icon's [Texture] associated with the specified index."
msgstr "设置(或替换)图标与指定索引相关的 [Texture2D]。"

#: doc/classes/ItemList.xml:230
msgid ""
"Sets a modulating [Color] of the item associated with the specified index."
msgstr "设置与指定索引相关的项目的调制颜色[Color]。"

#: doc/classes/ItemList.xml:238
msgid ""
"Sets the region of item's icon used. The whole icon will be used if the "
"region has no area."
msgstr "设置项目图标的使用区域。如果该区域大小为 0, 将使用整个图标。"

#: doc/classes/ItemList.xml:246
msgid "Sets whether the item icon will be drawn transposed."
msgstr "设置项目图标是否将被转置绘制。"

#: doc/classes/ItemList.xml:254
msgid ""
"Sets a value (of any type) to be stored with the item associated with the "
"specified index."
msgstr "设置与指定索引相关的项目存储的值(任何类型的值)。"

#: doc/classes/ItemList.xml:262
msgid ""
"Allows or disallows selection of the item associated with the specified "
"index."
msgstr "允许或禁止选择与指定索引关联的项目。"

#: doc/classes/ItemList.xml:270
msgid "Sets text of the item associated with the specified index."
msgstr "设置与指定索引相关的项目的文本。"

#: doc/classes/ItemList.xml:278
msgid "Sets the tooltip hint for the item associated with the specified index."
msgstr "设置与指定索引相关的项目的工具提示。"

#: doc/classes/ItemList.xml:286
msgid "Sets whether the tooltip hint is enabled for specified item index."
msgstr "设置是否为指定的项目索引启用工具提示。"

#: doc/classes/ItemList.xml:292
msgid "Sorts items in the list by their text."
msgstr "按文本对列表中的项目进行排序。"

#: doc/classes/ItemList.xml:299
msgid "Ensures the item associated with the specified index is not selected."
msgstr "确保与指定索引相关的项目不被选中。"

#: doc/classes/ItemList.xml:305
msgid "Ensures there are no items selected."
msgstr "确保没有选择任何项目。"

#: doc/classes/ItemList.xml:311
msgid ""
"If [code]true[/code], the currently selected item can be selected again."
msgstr "如果为[code]true[/code],则可以再次选择当前选中的项目。"

#: doc/classes/ItemList.xml:314
msgid "If [code]true[/code], right mouse button click can select items."
msgstr "如果为[code]true[/code],点击鼠标右键可以选中项目。"

#: doc/classes/ItemList.xml:317
msgid ""
"If [code]true[/code], the control will automatically resize the height to "
"fit its content."
msgstr "如果为 [code]true[/code],控件将自动调整高度以适合其内容。"

#: doc/classes/ItemList.xml:320
msgid ""
"The width all columns will be adjusted to.\n"
"A value of zero disables the adjustment, each item will have a width equal "
"to the width of its content and the columns will have an uneven width."
msgstr ""
"所有列的宽度将调整为。\n"
"零值禁用调整,每个项目的宽度将等于其内容的宽度,列的宽度将不均匀。"

#: doc/classes/ItemList.xml:324
msgid ""
"The size all icons will be adjusted to.\n"
"If either X or Y component is not greater than zero, icon size won't be "
"affected."
msgstr ""
"所有图标将被调整到的尺寸。\n"
"如果X或Y分量不大于0,图标的大小将不会受到影响。"

#: doc/classes/ItemList.xml:329
msgid ""
"The icon position, whether above or to the left of the text. See the [enum "
"IconMode] constants."
msgstr "图标的位置,是在文本的上方还是在文本的左边。参见[enum IconMode]常量。"

#: doc/classes/ItemList.xml:332
msgid ""
"The scale of icon applied after [member fixed_icon_size] and transposing "
"takes effect."
msgstr "在[member fixed_icon_size]和转置生效后应用的图标比例。"

#: doc/classes/ItemList.xml:335
msgid ""
"Maximum columns the list will have.\n"
"If greater than zero, the content will be split among the specified "
"columns.\n"
"A value of zero means unlimited columns, i.e. all items will be put in the "
"same row."
msgstr ""
"列表将具有的最大列。\n"
"如果大于零,内容将被拆分为指定列。\n"
"零值意味着无限列,即所有项目将放在同一行中。"

#: doc/classes/ItemList.xml:340
msgid ""
"Maximum lines of text allowed in each item. Space will be reserved even when "
"there is not enough lines of text to display.\n"
"[b]Note:[/b] This property takes effect only when [member icon_mode] is "
"[constant ICON_MODE_TOP]. To make the text wrap, [member fixed_column_width] "
"should be greater than zero."
msgstr ""
"每个项目中允许的最大文本行数。即使没有足够的文本行数来显示,也会保留空间。\n"
"[b]注意:[/b] 这个属性只有在[member icon_mode]是[constant ICON_MODE_TOP]时才"
"会生效。要使文本包装(wrap)换行,[member fixed_column_width]应大于零。"

#: doc/classes/ItemList.xml:345
msgid ""
"Whether all columns will have the same width.\n"
"If [code]true[/code], the width is equal to the largest column width of all "
"columns."
msgstr ""
"是否所有列的宽度相同。\n"
"如果为 [code] true [/code],则宽度等于所有列的最大列宽度。"

#: doc/classes/ItemList.xml:349
msgid ""
"Allows single or multiple item selection. See the [enum SelectMode] "
"constants."
msgstr "允许单选或多选。参阅[enum SelectMode]常量。"

#: doc/classes/ItemList.xml:356
#, fuzzy
msgid ""
"Triggered when specified list item is activated via double-clicking or by "
"pressing Enter."
msgstr "当指定的列表项目通过双击或按[kbd]Enter[/kbd]激活时触发。"

#: doc/classes/ItemList.xml:363
msgid ""
"Triggered when specified list item has been selected via right mouse "
"clicking.\n"
"The click position is also provided to allow appropriate popup of context "
"menus at the correct location.\n"
"[member allow_rmb_select] must be enabled."
msgstr ""
"当指定的列表项目通过鼠标右键被选中时,会被触发。\n"
"还提供了单击位置,以便在正确的位置恰当地弹出上下文菜单。\n"
"必须启用 [member allow_rmb_select] 。"

#: doc/classes/ItemList.xml:371
msgid ""
"Triggered when specified item has been selected.\n"
"[member allow_reselect] must be enabled to reselect an item."
msgstr ""
"选择指定项目时触发。\n"
"[member allow_reselect] 必须启用才能重新选择项目。"

#: doc/classes/ItemList.xml:379
msgid ""
"Triggered when a multiple selection is altered on a list allowing multiple "
"selection."
msgstr "在允许多选的列表上更改多选时触发。"

#: doc/classes/ItemList.xml:384
msgid ""
"Triggered when a left mouse click is issued within the rect of the list but "
"on empty space."
msgstr "当鼠标左键在列表的矩形(rect)范围内但在空白处单击时,会被触发。"

#: doc/classes/ItemList.xml:390
msgid ""
"Triggered when a right mouse click is issued within the rect of the list but "
"on empty space.\n"
"[member allow_rmb_select] must be enabled."
msgstr ""
"当在列表的矩形(rect)范围内但在空白处单击鼠标右键时被触发。\n"
"[member allow_rmb_select]必须被启用。"

#: doc/classes/ItemList.xml:397
msgid "Icon is drawn above the text."
msgstr "图标绘制在文本上方。"

#: doc/classes/ItemList.xml:400
msgid "Icon is drawn to the left of the text."
msgstr "图标绘制在文本的左侧。"

#: doc/classes/ItemList.xml:403
msgid "Only allow selecting a single item."
msgstr "仅允许选择单个项目。"

#: doc/classes/ItemList.xml:406
#, fuzzy
msgid "Allows selecting multiple items by holding Ctrl or Shift."
msgstr "允许通过按住[kbd]Ctrl[/kbd]或[kbd]Shift[/kbd]选择多个项目。"

#: doc/classes/ItemList.xml:411
msgid ""
"Default [StyleBox] for the [ItemList], i.e. used when the control is not "
"being focused."
msgstr "[ItemList] 的默认样式盒 [StyleBox],即在控件未获得焦点时使用。"

#: doc/classes/ItemList.xml:414
msgid "[StyleBox] used when the [ItemList] is being focused."
msgstr "当[ItemList]被聚焦时使用的样式盒[StyleBox]。"

#: doc/classes/ItemList.xml:417
msgid "[StyleBox] used for the cursor, when the [ItemList] is being focused."
msgstr "当[ItemList]被聚焦时,用于光标的样式盒[StyleBox]。"

#: doc/classes/ItemList.xml:420
msgid ""
"[StyleBox] used for the cursor, when the [ItemList] is not being focused."
msgstr "当[ItemList]没有被聚焦时,用于光标的样式盒[StyleBox]。"

#: doc/classes/ItemList.xml:423 doc/classes/Tree.xml:407
msgid "[Font] of the item's text."
msgstr "项目文本的字体 [Font] 。"

#: doc/classes/ItemList.xml:426 doc/classes/Tree.xml:410
msgid "Default text [Color] of the item."
msgstr "项目的默认文本颜色 [Color]。"

#: doc/classes/ItemList.xml:429 doc/classes/Tree.xml:413
msgid "Text [Color] used when the item is selected."
msgstr "选择项目时使用的文本颜色[Color]。"

#: doc/classes/ItemList.xml:432
msgid ""
"[Color] of the guideline. The guideline is a line drawn between each row of "
"items."
msgstr "指导线的颜色[Color]。指导线是在每行项目之间画的一条线。"

#: doc/classes/ItemList.xml:435
msgid "The horizontal spacing between items."
msgstr "项目菜单之间的水平间距。"

#: doc/classes/ItemList.xml:438
msgid "The spacing between item's icon and text."
msgstr "项目菜单的图标和文本之间的间距。"

#: doc/classes/ItemList.xml:441
msgid "The vertical spacing between each line of text."
msgstr "每行文字之间的行距。"

#: doc/classes/ItemList.xml:444
msgid ""
"[StyleBox] for the selected items, used when the [ItemList] is not being "
"focused."
msgstr "所选项的样式盒[StyleBox],当[ItemList]没有获得焦点时使用。"

#: doc/classes/ItemList.xml:447
msgid ""
"[StyleBox] for the selected items, used when the [ItemList] is being focused."
msgstr "所选项的样式盒[StyleBox],当[ItemList]没有获得焦点时使用。"

#: doc/classes/ItemList.xml:450
msgid "The vertical spacing between items."
msgstr "项目菜单之间的垂直间距。"

#: doc/classes/JavaScript.xml:4
msgid ""
"Singleton that connects the engine with the browser's JavaScript context in "
"HTML5 export."
msgstr "在 HTML5 导出中将引擎与浏览器的 JavaScript 上下文连接的单例。"

#: doc/classes/JavaScript.xml:7
msgid ""
"The JavaScript singleton is implemented only in the HTML5 export. It's used "
"to access the browser's JavaScript context. This allows interaction with "
"embedding pages or calling third-party JavaScript APIs.\n"
"[b]Note:[/b] This singleton can be disabled at build-time to improve "
"security. By default, the JavaScript singleton is enabled. Official export "
"templates also have the JavaScript singleton enabled. See [url=https://docs."
"godotengine.org/en/3.4/development/compiling/compiling_for_web."
"html]Compiling for the Web[/url] in the documentation for more information."
msgstr ""

#: doc/classes/JavaScript.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/workflow/export/"
"exporting_for_web.html#calling-javascript-from-script"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/workflow/export/"
"exporting_for_web.html#calling-javascript-from-script"

#: doc/classes/JavaScript.xml:19
msgid ""
"Creates a reference to a script function that can be used as a callback by "
"JavaScript. The reference must be kept until the callback happens, or it "
"won't be called at all. See [JavaScriptObject] for usage."
msgstr ""

#: doc/classes/JavaScript.xml:26
msgid ""
"Creates a new JavaScript object using the [code]new[/code] constructor. The "
"[code]object[/code] must a valid property of the JavaScript [code]window[/"
"code]. See [JavaScriptObject] for usage."
msgstr ""

#: doc/classes/JavaScript.xml:35
msgid ""
"Prompts the user to download a file containing the specified [code]buffer[/"
"code]. The file will have the given [code]name[/code] and [code]mime[/code] "
"type.\n"
"[b]Note:[/b] The browser may override the [url=https://en.wikipedia.org/wiki/"
"Media_type]MIME type[/url] provided based on the file [code]name[/code]'s "
"extension.\n"
"[b]Note:[/b] Browsers might block the download if [method download_buffer] "
"is not being called from a user interaction (e.g. button click).\n"
"[b]Note:[/b] Browsers might ask the user for permission or block the "
"download if multiple download requests are made in a quick succession."
msgstr ""

#: doc/classes/JavaScript.xml:46
msgid ""
"Execute the string [code]code[/code] as JavaScript code within the browser "
"window. This is a call to the actual global JavaScript function [code]eval()"
"[/code].\n"
"If [code]use_global_execution_context[/code] is [code]true[/code], the code "
"will be evaluated in the global execution context. Otherwise, it is "
"evaluated in the execution context of a function within the engine's runtime "
"environment."
msgstr ""
"在浏览器窗口中执行字符串[code]code[/code]作为JavaScript代码。这是对实际的全局"
"JavaScript函数[code]eval()[/code]的调用。\n"
"如果[code]use_global_execution_context[/code]是[code]true[/code],代码将在全"
"局执行环境中被求值。否则,它将在引擎运行时环境中函数的执行上下文中进行求值。"

#: doc/classes/JavaScript.xml:54
msgid ""
"Returns an interface to a JavaScript object that can be used by scripts. The "
"[code]interface[/code] must be a valid property of the JavaScript "
"[code]window[/code]. The callback must accept a single [Array] argument, "
"which will contain the JavaScript [code]arguments[/code]. See "
"[JavaScriptObject] for usage."
msgstr ""

#: doc/classes/JavaScriptObject.xml:4
#, fuzzy
msgid "A wrapper class for native JavaScript objects."
msgstr "所有[i]scene[/i]对象的基类。"

#: doc/classes/JavaScriptObject.xml:7
msgid ""
"JavaScriptObject is used to interact with JavaScript objects retrieved or "
"created via [method JavaScript.get_interface], [method JavaScript."
"create_object], or [method JavaScript.create_callback].\n"
"Example:\n"
"[codeblock]\n"
"extends Node\n"
"\n"
"var _my_js_callback = JavaScript.create_callback(self, \"myCallback\") # "
"This reference must be kept\n"
"var console = JavaScript.get_interface(\"console\")\n"
"\n"
"func _init():\n"
"    var buf = JavaScript.create_object(\"ArrayBuffer\", 10) # new "
"ArrayBuffer(10)\n"
"    print(buf) # prints [JavaScriptObject:OBJECT_ID]\n"
"    var uint8arr = JavaScript.create_object(\"Uint8Array\", buf) # new "
"Uint8Array(buf)\n"
"    uint8arr[1] = 255\n"
"    prints(uint8arr[1], uint8arr.byteLength) # prints 255 10\n"
"    console.log(uint8arr) # prints in browser console \"Uint8Array(10) [ 0, "
"255, 0, 0, 0, 0, 0, 0, 0, 0 ]\"\n"
"\n"
"    # Equivalent of JavaScript: Array.from(uint8arr).forEach(myCallback)\n"
"    JavaScript.get_interface(\"Array\").from(uint8arr)."
"forEach(_my_js_callback)\n"
"\n"
"func myCallback(args):\n"
"    # Will be called with the parameters passed to the \"forEach\" callback\n"
"    # [0, 0, [JavaScriptObject:1173]]\n"
"    # [255, 1, [JavaScriptObject:1173]]\n"
"    # ...\n"
"    # [0, 9, [JavaScriptObject:1180]]\n"
"    print(args)\n"
"[/codeblock]\n"
"[b]Note:[/b] Only available in the HTML5 platform."
msgstr ""

#: doc/classes/JNISingleton.xml:4
#, fuzzy
msgid ""
"Singleton that connects the engine with Android plugins to interface with "
"native Android code."
msgstr "在 HTML5 导出中将引擎与浏览器的 JavaScript 上下文连接的单例。"

#: doc/classes/JNISingleton.xml:7
msgid ""
"The JNISingleton is implemented only in the Android export. It's used to "
"call methods and connect signals from an Android plugin written in Java or "
"Kotlin. Methods and signals can be called and connected to the JNISingleton "
"as if it is a Node. See [url=https://en.wikipedia.org/wiki/"
"Java_Native_Interface]Java Native Interface - Wikipedia[/url] for more "
"information."
msgstr ""

#: doc/classes/JNISingleton.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/android/android_plugin."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/editor/"
"import_plugins.html"

#: doc/classes/Joint.xml:4
msgid "Base class for all 3D joints."
msgstr "所有3D关节的基类。"

#: doc/classes/Joint.xml:7
msgid ""
"Joints are used to bind together two physics bodies. They have a solver "
"priority and can define if the bodies of the two attached nodes should be "
"able to collide with each other."
msgstr ""
"关节用于将两个物理体结合在一起。它们具有解算器优先级,可以定义两个附加节点的"
"主体是否能够相互碰撞。"

#: doc/classes/Joint.xml:10 doc/classes/RigidBody.xml:15
#: doc/classes/VehicleBody.xml:12 doc/classes/VehicleWheel.xml:11
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/524"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Joint.xml:16
msgid ""
"If [code]true[/code], the two bodies of the nodes are not able to collide "
"with each other."
msgstr "如果 [code]true[/code],则节点的两个主体无法相互碰撞。"

#: doc/classes/Joint.xml:19
msgid "The node attached to the first side (A) of the joint."
msgstr "连接到关节第一侧(A)的节点。"

#: doc/classes/Joint.xml:22
msgid "The node attached to the second side (B) of the joint."
msgstr "连接到关节第二侧(B)的节点。"

#: doc/classes/Joint.xml:25
msgid ""
"The priority used to define which solver is executed first for multiple "
"joints. The lower the value, the higher the priority."
msgstr ""
"用于定义哪个解算器在多个关节中被首先执行的优先级。数值越低,优先级越高。"

#: doc/classes/Joint2D.xml:4
msgid "Base node for all joint constraints in 2D physics."
msgstr "2D 物理中所有关节约束的基础节点。"

#: doc/classes/Joint2D.xml:7
msgid ""
"Base node for all joint constraints in 2D physics. Joints take 2 bodies and "
"apply a custom constraint."
msgstr "2D 物理中所有关节约束的基础节点。关节采用 2 个实体并应用自定义约束。"

#: doc/classes/Joint2D.xml:15
msgid ""
"When [member node_a] and [member node_b] move in different directions the "
"[code]bias[/code] controls how fast the joint pulls them back to their "
"original position. The lower the [code]bias[/code] the more the two bodies "
"can pull on the joint."
msgstr ""
"当 [member node_a] 和 [member node_b] 向不同方向移动时,[code]bias[/code] 控"
"制关节将它们拉回原始位置的所需时间。 [code]bias[/code] 越低,两个物体在关节上"
"受到的拉力越大。"

#: doc/classes/Joint2D.xml:18
msgid ""
"If [code]true[/code], [member node_a] and [member node_b] can not collide."
msgstr "如果为[code]true[/code],[member node_a]和[member node_b]不能碰撞。"

#: doc/classes/Joint2D.xml:21
msgid "The first body attached to the joint. Must derive from [PhysicsBody2D]."
msgstr "连接到关节的第一个实体。必须继承自 [PhysicsBody2D] 。"

#: doc/classes/Joint2D.xml:24
msgid ""
"The second body attached to the joint. Must derive from [PhysicsBody2D]."
msgstr "连接到关节的第二实体。必须继承自[PhysicsBody2D]。"

#: doc/classes/JSON.xml:4
msgid "Helper class for parsing JSON data."
msgstr "用于解析JSON数据的辅助类。"

#: doc/classes/JSON.xml:7
msgid ""
"Helper class for parsing JSON data. For usage example and other important "
"hints, see [JSONParseResult]."
msgstr ""
"用于解析JSON数据的辅助类。关于使用实例和其他重要提示,请参阅"
"[JSONParseResult]。"

#: doc/classes/JSON.xml:16
msgid ""
"Parses a JSON-encoded string and returns a [JSONParseResult] containing the "
"result."
msgstr "解析一个JSON编码的字符串并返回一个包含结果的[JSONParseResult]。"

#: doc/classes/JSON.xml:25
msgid ""
"Converts a [Variant] var to JSON text and returns the result. Useful for "
"serializing data to store or send over the network.\n"
"[b]Note:[/b] The JSON specification does not define integer or float types, "
"but only a [i]number[/i] type. Therefore, converting a Variant to JSON text "
"will convert all numerical values to [float] types.\n"
"Use [code]indent[/code] parameter to pretty print the output.\n"
"[b]Example output:[/b]\n"
"[codeblock]\n"
"## JSON.print(my_dictionary)\n"
"{\"name\":\"my_dictionary\",\"version\":\"1.0.0\",\"entities\":[{\"name\":"
"\"entity_0\",\"value\":\"value_0\"},{\"name\":\"entity_1\",\"value\":"
"\"value_1\"}]}\n"
"\n"
"## JSON.print(my_dictionary, \"\\t\")\n"
"{\n"
"        \"name\": \"my_dictionary\",\n"
"        \"version\": \"1.0.0\",\n"
"        \"entities\": [\n"
"                {\n"
"                        \"name\": \"entity_0\",\n"
"                        \"value\": \"value_0\"\n"
"                },\n"
"                {\n"
"                        \"name\": \"entity_1\",\n"
"                        \"value\": \"value_1\"\n"
"                }\n"
"        ]\n"
"}\n"
"[/codeblock]"
msgstr ""

#: doc/classes/JSONParseResult.xml:4
msgid "Data class wrapper for decoded JSON."
msgstr "解码 JSON 的数据类包装器。"

#: doc/classes/JSONParseResult.xml:7
msgid ""
"Returned by [method JSON.parse], [JSONParseResult] contains the decoded JSON "
"or error information if the JSON source wasn't successfully parsed. You can "
"check if the JSON source was successfully parsed with [code]if json_result."
"error == OK[/code]."
msgstr ""
"由[method JSON.parse]返回,[JSONParseResult]包含解码的JSON或错误信息(如果"
"JSON源没有被成功解析)。你可以用[code]if json_result.error == OK[/code]检查"
"JSON源是否被成功解析。"

#: doc/classes/JSONParseResult.xml:15
msgid ""
"The error type if the JSON source was not successfully parsed. See the [enum "
"Error] constants."
msgstr "未成功解析 JSON 源时的错误类型。请参阅 [enum Error] 常量。"

#: doc/classes/JSONParseResult.xml:18
msgid ""
"The line number where the error occurred if the JSON source was not "
"successfully parsed."
msgstr "如果JSON源没有被成功解析,返回发生错误的行号。"

#: doc/classes/JSONParseResult.xml:21
msgid ""
"The error message if the JSON source was not successfully parsed. See the "
"[enum Error] constants."
msgstr "未成功解析 JSON 源时的错误消息。请参阅 [enum Error] 常量。"

#: doc/classes/JSONParseResult.xml:24
msgid ""
"A [Variant] containing the parsed JSON. Use [method @GDScript.typeof] or the "
"[code]is[/code] keyword to check if it is what you expect. For example, if "
"the JSON source starts with curly braces ([code]{}[/code]), a [Dictionary] "
"will be returned. If the JSON source starts with brackets ([code][][/code]), "
"an [Array] will be returned.\n"
"[b]Note:[/b] The JSON specification does not define integer or float types, "
"but only a [i]number[/i] type. Therefore, parsing a JSON text will convert "
"all numerical values to [float] types.\n"
"[b]Note:[/b] JSON objects do not preserve key order like Godot dictionaries, "
"thus, you should not rely on keys being in a certain order if a dictionary "
"is constructed from JSON. In contrast, JSON arrays retain the order of their "
"elements:\n"
"[codeblock]\n"
"var p = JSON.parse('[\"hello\", \"world\", \"!\"]')\n"
"if typeof(p.result) == TYPE_ARRAY:\n"
"    print(p.result[0]) # Prints \"hello\"\n"
"else:\n"
"    push_error(\"Unexpected results.\")\n"
"[/codeblock]"
msgstr ""
"包含解析过JSON的变量[Variant]。使用[method @GDScript.typeof]或[code]is[/code]"
"关键字来检查它是否是你期望的。例如,如果JSON源以花括号开始([code]{}[/"
"code]),将返回一个字典[Dictionary]。如果JSON源以方括号开始([code][][/"
"code]),将返回一个数组[Array]。\n"
"[b]注意:[/b] JSON规范没有定义整数或浮点数类型,而只有一个数字[i]number[/i]类"
"型。因此,解析JSON文本将把所有的数字值转换为浮点[float]类型。\n"
"[b]注意:[/b]JSON对象不像Godot字典那样保留键的顺序,因此,如果一个字典是由"
"JSON构建的,你不应该依赖键是按一定顺序的。与此相反,JSON数组保留其元素的顺"
"序。\n"
"[codeblock]\n"
"var p = JSON.parse('[\"hello\", \"world\", \"!\"]' )\n"
"if typeof(p.result) == TYPE_ARRAY:\n"
"    print(p.result[0]) # 打印 \"hello\"\n"
"else:\n"
"    push_error(\"Unexpected results.\")#意外的结果。\n"
"[/codeblock]"

#: doc/classes/JSONRPC.xml:4
msgid "A helper to handle dictionaries which look like JSONRPC documents."
msgstr ""

#: doc/classes/JSONRPC.xml:7
msgid ""
"[url=https://www.jsonrpc.org/]JSON-RPC[/url] is a standard which wraps a "
"method call in a [JSON] object. The object has a particular structure and "
"identifies which method is called, the parameters to that function, and "
"carries an ID to keep track of responses. This class implements that "
"standard on top of [Dictionary]; you will have to convert between a "
"[Dictionary] and [JSON] with other functions."
msgstr ""

#: doc/classes/JSONRPC.xml:17
msgid ""
"Returns a dictionary in the form of a JSON-RPC notification. Notifications "
"are one-shot messages which do not expect a response.\n"
"- [code]method[/code]: Name of the method being called.\n"
"- [code]params[/code]: An array or dictionary of parameters being passed to "
"the method."
msgstr ""

#: doc/classes/JSONRPC.xml:28
msgid ""
"Returns a dictionary in the form of a JSON-RPC request. Requests are sent to "
"a server with the expectation of a response. The ID field is used for the "
"server to specify which exact request it is responding to.\n"
"- [code]method[/code]: Name of the method being called.\n"
"- [code]params[/code]: An array or dictionary of parameters being passed to "
"the method.\n"
"- [code]id[/code]: Uniquely identifies this request. The server is expected "
"to send a response with the same ID."
msgstr ""

#: doc/classes/JSONRPC.xml:39
msgid ""
"When a server has received and processed a request, it is expected to send a "
"response. If you did not want a response then you need to have sent a "
"Notification instead.\n"
"- [code]result[/code]: The return value of the function which was called.\n"
"- [code]id[/code]: The ID of the request this response is targeted to."
msgstr ""

#: doc/classes/JSONRPC.xml:50
msgid ""
"Creates a response which indicates a previous reply has failed in some way.\n"
"- [code]code[/code]: The error code corresponding to what kind of error this "
"is. See the [enum ErrorCode] constants.\n"
"- [code]message[/code]: A custom message about this error.\n"
"- [code]id[/code]: The request this error is a response to."
msgstr ""

#: doc/classes/JSONRPC.xml:61
msgid ""
"Given a Dictionary which takes the form of a JSON-RPC request: unpack the "
"request and run it. Methods are resolved by looking at the field called "
"\"method\" and looking for an equivalently named function in the JSONRPC "
"object. If one is found that method is called.\n"
"To add new supported methods extend the JSONRPC class and call [method "
"process_action] on your subclass.\n"
"[code]action[/code]: The action to be run, as a Dictionary in the form of a "
"JSON-RPC request or notification."
msgstr ""

#: doc/classes/JSONRPC.xml:86
msgid ""
"A method call was requested but no function of that name existed in the "
"JSONRPC subclass."
msgstr ""

#: doc/classes/KinematicBody.xml:4
msgid "Kinematic body 3D node."
msgstr "3D运动体节点。"

#: doc/classes/KinematicBody.xml:7
#, fuzzy
msgid ""
"Kinematic bodies are special types of bodies that are meant to be user-"
"controlled. They are not affected by physics at all; to other types of "
"bodies, such as a character or a rigid body, these are the same as a static "
"body. However, they have two main uses:\n"
"[b]Simulated motion:[/b] When these bodies are moved manually, either from "
"code or from an [AnimationPlayer] (with [member AnimationPlayer."
"playback_process_mode] set to \"physics\"), the physics will automatically "
"compute an estimate of their linear and angular velocity. This makes them "
"very useful for moving platforms or other AnimationPlayer-controlled objects "
"(like a door, a bridge that opens, etc).\n"
"[b]Kinematic characters:[/b] KinematicBody also has an API for moving "
"objects (the [method move_and_collide] and [method move_and_slide] methods) "
"while performing collision tests. This makes them really useful to implement "
"characters that collide against a world, but don't require advanced physics."
msgstr ""
"运动学实体是旨在由用户控制的特殊类型的实体。它们完全不受物理影响;对于其他类"
"型的物体,例如角色或刚体,这些与静态物体相同。但是,它们有两个主要用途:\n"
"[b]模拟运动:[/b]当这些物体被手动移动时,无论是从代码还是从[AnimationPlayer]"
"([member AnimationPlayer.playback_process_mode]设置为“物理”),物理将自动计"
"算估计它们的线性和角速度。这使得它们对于移动平台或其他 AnimationPlayer 控制的"
"对象(如门、打开的桥等)非常有用。\n"
"[b]运动学特征:[/b] KinematicBody2D 在执行碰撞测试时也有一个用于移动物体的 "
"API([method move_and_collide] 和 [method move_and_slide] 方法)。这使得它们"
"对于实现与世界发生碰撞但不需要高级物理的角色非常有用。"

#: doc/classes/KinematicBody.xml:12 doc/classes/KinematicBody2D.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/physics/kinematic_character_2d."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/physics/"
"kinematic_character_2d.html"

#: doc/classes/KinematicBody.xml:23
#, fuzzy
msgid ""
"Returns [code]true[/code] if the specified [code]axis[/code] is locked. See "
"also [member move_lock_x], [member move_lock_y] and [member move_lock_z]."
msgstr ""
"如果指定的[code]axis[/code]被锁定,则返回[code]true[/code]。参阅[member "
"axis_lock_motion_x],[member axis_lock_motion_y]和[member "
"axis_lock_motion_z]。"

#: doc/classes/KinematicBody.xml:30
#, fuzzy
msgid ""
"Returns the floor's collision angle at the last collision point according to "
"[code]up_direction[/code], which is [code]Vector3.UP[/code] by default. This "
"value is always positive and only valid after calling [method "
"move_and_slide] and when [method is_on_floor] returns [code]true[/code]."
msgstr ""
"返回最后一个碰撞点地板的线速度。仅在调用 [method move_and_slide] 或 [method "
"move_and_slide_with_snap] 且 [method is_on_floor] 返回 [code]true[/code] 后有"
"效。"

#: doc/classes/KinematicBody.xml:36 doc/classes/KinematicBody2D.xml:28
msgid ""
"Returns the surface normal of the floor at the last collision point. Only "
"valid after calling [method move_and_slide] or [method "
"move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/"
"code]."
msgstr ""
"返回最后一个碰撞点的地板的表面法线。只有在调用[method move_and_slide]或"
"[method move_and_slide_with_snap]后,以及[method is_on_floor]返回[code]true[/"
"code]时才有效。"

#: doc/classes/KinematicBody.xml:42 doc/classes/KinematicBody2D.xml:34
msgid ""
"Returns the linear velocity of the floor at the last collision point. Only "
"valid after calling [method move_and_slide] or [method "
"move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/"
"code]."
msgstr ""
"返回最后一个碰撞点地板的线速度。仅在调用 [method move_and_slide] 或 [method "
"move_and_slide_with_snap] 且 [method is_on_floor] 返回 [code]true[/code] 后有"
"效。"

#: doc/classes/KinematicBody.xml:48
#, fuzzy
msgid ""
"Returns a [KinematicCollision], which contains information about the latest "
"collision that occurred during the last call to [method move_and_slide]."
msgstr ""
"返回在最后一次调用[method move_and_slide]时实体发生碰撞和改变方向的次数。"

#: doc/classes/KinematicBody.xml:55
#, fuzzy
msgid ""
"Returns a [KinematicCollision], which contains information about a collision "
"that occurred during the last call to [method move_and_slide] or [method "
"move_and_slide_with_snap]. Since the body can collide several times in a "
"single call to [method move_and_slide], you must specify the index of the "
"collision in the range 0 to ([method get_slide_count] - 1)."
msgstr ""
"返回[KinematicCollision3D],它包含在最后一个[method move_and_slide]调用期间发"
"生的碰撞的相关信息。由于在[method move_and_slide]的单个调用中,物体可能会发生"
"多次碰撞,因此必须在0到([method get_slide_count] - 1)的范围内指定碰撞的索引。"

#: doc/classes/KinematicBody.xml:61 doc/classes/KinematicBody2D.xml:59
#, fuzzy
msgid ""
"Returns the number of times the body collided and changed direction during "
"the last call to [method move_and_slide] or [method "
"move_and_slide_with_snap]."
msgstr ""
"返回在最后一次调用[method move_and_slide]时实体发生碰撞和改变方向的次数。"

#: doc/classes/KinematicBody.xml:67 doc/classes/KinematicBody2D.xml:65
#, fuzzy
msgid ""
"Returns [code]true[/code] if the body collided with the ceiling on the last "
"call of [method move_and_slide] or [method move_and_slide_with_snap]. "
"Otherwise, returns [code]false[/code]."
msgstr ""
"返回最后一个碰撞点的地板的表面法线。只有在调用[method move_and_slide]或"
"[method move_and_slide_with_snap]后,以及[method is_on_floor]返回[code]true[/"
"code]时才有效。"

#: doc/classes/KinematicBody.xml:73 doc/classes/KinematicBody2D.xml:71
#, fuzzy
msgid ""
"Returns [code]true[/code] if the body collided with the floor on the last "
"call of [method move_and_slide] or [method move_and_slide_with_snap]. "
"Otherwise, returns [code]false[/code]."
msgstr ""
"返回最后一个碰撞点地板的线速度。仅在调用 [method move_and_slide] 或 [method "
"move_and_slide_with_snap] 且 [method is_on_floor] 返回 [code]true[/code] 后有"
"效。"

#: doc/classes/KinematicBody.xml:79 doc/classes/KinematicBody2D.xml:77
#, fuzzy
msgid ""
"Returns [code]true[/code] if the body collided with a wall on the last call "
"of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, "
"returns [code]false[/code]."
msgstr ""
"返回最后一个碰撞点的地板的表面法线。只有在调用[method move_and_slide]或"
"[method move_and_slide_with_snap]后,以及[method is_on_floor]返回[code]true[/"
"code]时才有效。"

#: doc/classes/KinematicBody.xml:89
#, fuzzy
msgid ""
"Moves the body along the vector [code]rel_vec[/code]. The body will stop if "
"it collides. Returns a [KinematicCollision], which contains information "
"about the collision.\n"
"If [code]test_only[/code] is [code]true[/code], the body does not move but "
"the would-be collision information is given."
msgstr ""
"沿着向量[code]rel_vec[/code]移动物体。如果物体碰撞,它将停止。返回"
"[KinematicCollision2D],其中包含有关碰撞的信息。\n"
"如果[code]test_only[/code]为[code]true[/code],则物体不会移动,但会提供可能的"
"碰撞信息。"

#: doc/classes/KinematicBody.xml:102
#, fuzzy
msgid ""
"Moves the body along a vector. If the body collides with another, it will "
"slide along the other body rather than stop immediately. If the other body "
"is a [KinematicBody] or [RigidBody], it will also be affected by the motion "
"of the other body. You can use this to make moving and rotating platforms, "
"or to make nodes push other nodes.\n"
"This method should be used in [method Node._physics_process] (or in a method "
"called by [method Node._physics_process]), as it uses the physics step's "
"[code]delta[/code] value automatically in calculations. Otherwise, the "
"simulation will run at an incorrect speed.\n"
"[code]linear_velocity[/code] is the velocity vector (typically meters per "
"second). Unlike in [method move_and_collide], you should [i]not[/i] multiply "
"it by [code]delta[/code] — the physics engine handles applying the "
"velocity.\n"
"[code]up_direction[/code] is the up direction, used to determine what is a "
"wall and what is a floor or a ceiling. If set to the default value of "
"[code]Vector3(0, 0, 0)[/code], everything is considered a wall.\n"
"If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on "
"slopes when you include gravity in [code]linear_velocity[/code] and the body "
"is standing still.\n"
"If the body collides, it will change direction a maximum of "
"[code]max_slides[/code] times before it stops.\n"
"[code]floor_max_angle[/code] is the maximum angle (in radians) where a slope "
"is still considered a floor (or a ceiling), rather than a wall. The default "
"value equals 45 degrees.\n"
"If [code]infinite_inertia[/code] is [code]true[/code], body will be able to "
"push [RigidBody] nodes, but it won't also detect any collisions with them. "
"If [code]false[/code], it will interact with [RigidBody] nodes like with "
"[StaticBody].\n"
"Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a "
"slide collision occurred. To get detailed information about collisions that "
"occurred, use [method get_slide_collision].\n"
"When the body touches a moving platform, the platform's velocity is "
"automatically added to the body motion. If a collision occurs due to the "
"platform's motion, it will always be first in the slide collisions."
msgstr ""
"沿着向量移动物体。如果该体与另一个物体相撞,它将沿着另一个物体滑动,而不是立"
"即停止。如果另一个物体是[KinematicBody3D]或[RigidBody3D],它也会被另一个物体"
"的运动所影响。你可以用它来制作移动或旋转的平台,或者让节点推动其他节点。\n"
"这个方法应该在[method Node._physics_process]中使用,或者在被[method Node."
"_physics_process]调用的方法中使用,因为它在计算时,自动使用物理步骤的"
"[code]delta[/code]值。否则,模拟的运行速度将不正确。\n"
"[code]linear_velocity[/code] 是速度向量,通常是米/秒。与[method "
"move_and_collide]不同的是,你[i]不应该[/i]将其乘以[code]delta[/code]--物理引"
"擎会处理应用速度。\n"
"[code]up_direction[/code] 是向上的方向,用来确定什么是墙,什么是地板或天花"
"板。如果设置为默认值[code]Vector3(0, 0, 0)[/code],所有都被认为是墙。\n"
"如果[code]stop_on_slope[/code]是[code]true[/code],当你在"
"[code]lineal_velocity[/code]中包含重力,并且物体静止时,物体将不会在斜坡上滑"
"动。\n"
"如果物体发生碰撞,它将在停止前,最多改变[code]max_slides[/code]次方向。\n"
"[code]floor_max_angle[/code]是一个最大的角度(弧度),在这个角度里,一个斜坡"
"仍然被认为是地板或天花板,而不是墙壁。默认值等于45度。\n"
"如果[code]infinite_inertia[/code]是[code]true[/code],物体将能够推动"
"[RigidBody3D]节点,但它也不会检测到所有与它们的碰撞。如果[code]false[/code],"
"它将像[RigidBody3D]节点与[StaticBody3D]一样互动。\n"
"返回[code]linear_velocity[/code]向量,如果发生了滑动碰撞,则旋转和/或缩放。要"
"获得发生碰撞的详细信息,请使用[method get_slide_collision]。"

#: doc/classes/KinematicBody.xml:124
msgid ""
"Moves the body while keeping it attached to slopes. Similar to [method "
"move_and_slide].\n"
"As long as the [code]snap[/code] vector is in contact with the ground, the "
"body will remain attached to the surface. This means you must disable snap "
"in order to jump, for example. You can do this by setting [code]snap[/code] "
"to [code](0, 0, 0)[/code] or by using [method move_and_slide] instead."
msgstr ""
"移动物体,其同时保持与斜坡的连接。类似于[method move_and_slide]。\n"
"只要[code]snap[/code]向量与地面接触,物体就会一直吸附在地面上。这意味着你必须"
"禁用snap来进行跳跃,比如,可以通过将[code]snap[/code]设置为[code](0, 0, 0)[/"
"code]或者使用[method move_and_slide]来实现。"

#: doc/classes/KinematicBody.xml:133
#, fuzzy
msgid ""
"Locks or unlocks the specified [code]axis[/code] depending on the value of "
"[code]lock[/code]. See also [member move_lock_x], [member move_lock_y] and "
"[member move_lock_z]."
msgstr ""
"根据[code]lock[/code]的值,锁定或解锁指定的[code]axis[/code]。参阅[member "
"axis_lock_motion_x], [member axis_lock_motion_y] 和 [member "
"axis_lock_motion_z]。"

#: doc/classes/KinematicBody.xml:142
msgid ""
"Checks for collisions without moving the body. Virtually sets the node's "
"position, scale and rotation to that of the given [Transform], then tries to "
"move the body along the vector [code]rel_vec[/code]. Returns [code]true[/"
"code] if a collision would occur."
msgstr ""
"在不移动物体的情况下检查碰撞情况。实际上是将节点的位置、比例和旋转设置为给定"
"的[Transform],然后尝试沿着矢量[code]rel_vec[/code]移动物体。如果会发生碰撞,"
"返回[code]true[/code]。"

#: doc/classes/KinematicBody.xml:148
msgid "Lock the body's X axis movement."
msgstr "锁定物体的X轴运动。"

#: doc/classes/KinematicBody.xml:151
msgid "Lock the body's Y axis movement."
msgstr "锁定物体的Y轴运动。"

#: doc/classes/KinematicBody.xml:154
msgid "Lock the body's Z axis movement."
msgstr "锁定物体的Z轴运动。"

#: doc/classes/KinematicBody.xml:157 doc/classes/KinematicBody2D.xml:138
msgid ""
"Extra margin used for collision recovery in motion functions (see [method "
"move_and_collide], [method move_and_slide], [method "
"move_and_slide_with_snap]).\n"
"If the body is at least this close to another body, it will consider them to "
"be colliding and will be pushed away before performing the actual motion.\n"
"A higher value means it's more flexible for detecting collision, which helps "
"with consistently detecting walls and floors.\n"
"A lower value forces the collision algorithm to use more exact detection, so "
"it can be used in cases that specifically require precision, e.g at very low "
"scale to avoid visible jittering, or for stability with a stack of kinematic "
"bodies."
msgstr ""

#: doc/classes/KinematicBody.xml:163 doc/classes/KinematicBody2D.xml:144
msgid ""
"If [code]true[/code], the body's movement will be synchronized to the "
"physics frame. This is useful when animating movement via [AnimationPlayer], "
"for example on moving platforms. Do [b]not[/b] use together with [method "
"move_and_slide] or [method move_and_collide] functions."
msgstr ""
"如果为[code]true[/code],则物体的运动将与物理帧同步。当通过[AnimationPlayer]"
"为运动设置动画时,例如在移动平台上,这个功能很有用。不要将[b]not[/b]与 "
"[method move_and_slide]或 [method move_and_collide] 函数一起使用。"

#: doc/classes/KinematicBody.xml:166
msgid ""
"Lock the body's X axis movement. Deprecated alias for [member "
"axis_lock_motion_x]."
msgstr ""

#: doc/classes/KinematicBody.xml:169
msgid ""
"Lock the body's Y axis movement. Deprecated alias for [member "
"axis_lock_motion_y]."
msgstr ""

#: doc/classes/KinematicBody.xml:172
msgid ""
"Lock the body's Z axis movement. Deprecated alias for [member "
"axis_lock_motion_z]."
msgstr ""

#: doc/classes/KinematicBody2D.xml:4
msgid "Kinematic body 2D node."
msgstr "2D运动体节点。"

#: doc/classes/KinematicBody2D.xml:7
#, fuzzy
msgid ""
"Kinematic bodies are special types of bodies that are meant to be user-"
"controlled. They are not affected by physics at all; to other types of "
"bodies, such as a character or a rigid body, these are the same as a static "
"body. However, they have two main uses:\n"
"[b]Simulated motion:[/b] When these bodies are moved manually, either from "
"code or from an [AnimationPlayer] (with [member AnimationPlayer."
"playback_process_mode] set to \"physics\"), the physics will automatically "
"compute an estimate of their linear and angular velocity. This makes them "
"very useful for moving platforms or other AnimationPlayer-controlled objects "
"(like a door, a bridge that opens, etc).\n"
"[b]Kinematic characters:[/b] KinematicBody2D also has an API for moving "
"objects (the [method move_and_collide] and [method move_and_slide] methods) "
"while performing collision tests. This makes them really useful to implement "
"characters that collide against a world, but don't require advanced physics."
msgstr ""
"运动学实体是旨在由用户控制的特殊类型的实体。它们完全不受物理影响;对于其他类"
"型的物体,例如角色或刚体,这些与静态物体相同。但是,它们有两个主要用途:\n"
"[b]模拟运动:[/b]当这些物体被手动移动时,无论是从代码还是从[AnimationPlayer]"
"([member AnimationPlayer.playback_process_mode]设置为“物理”),物理将自动计"
"算估计它们的线性和角速度。这使得它们对于移动平台或其他 AnimationPlayer 控制的"
"对象(如门、打开的桥等)非常有用。\n"
"[b]运动学特征:[/b] KinematicBody2D 在执行碰撞测试时也有一个用于移动物体的 "
"API([method move_and_collide] 和 [method move_and_slide] 方法)。这使得它们"
"对于实现与世界发生碰撞但不需要高级物理的角色非常有用。"

#: doc/classes/KinematicBody2D.xml:13
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/physics/"
"using_kinematic_body_2d.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/physics/"
"using_kinematic_body_2d.html"

#: doc/classes/KinematicBody2D.xml:22
#, fuzzy
msgid ""
"Returns the floor's collision angle at the last collision point according to "
"[code]up_direction[/code], which is [code]Vector2.UP[/code] by default. This "
"value is always positive and only valid after calling [method "
"move_and_slide] and when [method is_on_floor] returns [code]true[/code]."
msgstr ""
"返回最后一个碰撞点地板的线速度。仅在调用 [method move_and_slide] 或 [method "
"move_and_slide_with_snap] 且 [method is_on_floor] 返回 [code]true[/code] 后有"
"效。"

#: doc/classes/KinematicBody2D.xml:40
#, fuzzy
msgid ""
"Returns a [KinematicCollision2D], which contains information about the "
"latest collision that occurred during the last call to [method "
"move_and_slide]."
msgstr ""
"返回在最后一次调用[method move_and_slide]时实体发生碰撞和改变方向的次数。"

#: doc/classes/KinematicBody2D.xml:47
#, fuzzy
msgid ""
"Returns a [KinematicCollision2D], which contains information about a "
"collision that occurred during the last call to [method move_and_slide] or "
"[method move_and_slide_with_snap]. Since the body can collide several times "
"in a single call to [method move_and_slide], you must specify the index of "
"the collision in the range 0 to ([method get_slide_count] - 1).\n"
"[b]Example usage:[/b]\n"
"[codeblock]\n"
"for i in get_slide_count():\n"
"    var collision = get_slide_collision(i)\n"
"    print(\"Collided with: \", collision.collider.name)\n"
"[/codeblock]"
msgstr ""
"返回一个[KinematicCollision2D],它包含了在最后一次[method move_and_slide]调用"
"时发生的碰撞的信息。由于在一次对[method move_and_slide]的调用中,身体可以发生"
"多次碰撞,所以你必须在0到([method get_slide_count] - 1)的范围内指定碰撞的索"
"引。\n"
"[b]使用实例:[/b]\n"
"[codeblock]\n"
"for i in get_slide_count():\n"
"    var collision = get_slide_collision(i)\n"
"    print(\"Collided with: \" , collision.collider.name)\n"
"[/codeblock]"

#: doc/classes/KinematicBody2D.xml:87
msgid ""
"Moves the body along the vector [code]rel_vec[/code]. The body will stop if "
"it collides. Returns a [KinematicCollision2D], which contains information "
"about the collision.\n"
"If [code]test_only[/code] is [code]true[/code], the body does not move but "
"the would-be collision information is given."
msgstr ""
"沿着向量[code]rel_vec[/code]移动物体。如果物体碰撞,它将停止。返回"
"[KinematicCollision2D],其中包含有关碰撞的信息。\n"
"如果[code]test_only[/code]为[code]true[/code],则物体不会移动,但会提供可能的"
"碰撞信息。"

#: doc/classes/KinematicBody2D.xml:100
#, fuzzy
msgid ""
"Moves the body along a vector. If the body collides with another, it will "
"slide along the other body rather than stop immediately. If the other body "
"is a [KinematicBody2D] or [RigidBody2D], it will also be affected by the "
"motion of the other body. You can use this to make moving and rotating "
"platforms, or to make nodes push other nodes.\n"
"This method should be used in [method Node._physics_process] (or in a method "
"called by [method Node._physics_process]), as it uses the physics step's "
"[code]delta[/code] value automatically in calculations. Otherwise, the "
"simulation will run at an incorrect speed.\n"
"[code]linear_velocity[/code] is the velocity vector in pixels per second. "
"Unlike in [method move_and_collide], you should [i]not[/i] multiply it by "
"[code]delta[/code] — the physics engine handles applying the velocity.\n"
"[code]up_direction[/code] is the up direction, used to determine what is a "
"wall and what is a floor or a ceiling. If set to the default value of "
"[code]Vector2(0, 0)[/code], everything is considered a wall. This is useful "
"for topdown games.\n"
"If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on "
"slopes when you include gravity in [code]linear_velocity[/code] and the body "
"is standing still.\n"
"If the body collides, it will change direction a maximum of "
"[code]max_slides[/code] times before it stops.\n"
"[code]floor_max_angle[/code] is the maximum angle (in radians) where a slope "
"is still considered a floor (or a ceiling), rather than a wall. The default "
"value equals 45 degrees.\n"
"If [code]infinite_inertia[/code] is [code]true[/code], body will be able to "
"push [RigidBody2D] nodes, but it won't also detect any collisions with them. "
"If [code]false[/code], it will interact with [RigidBody2D] nodes like with "
"[StaticBody2D].\n"
"Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a "
"slide collision occurred. To get detailed information about collisions that "
"occurred, use [method get_slide_collision].\n"
"When the body touches a moving platform, the platform's velocity is "
"automatically added to the body motion. If a collision occurs due to the "
"platform's motion, it will always be first in the slide collisions."
msgstr ""
"沿向量移动物体。如果物体与另一个物体碰撞,它会沿着另一个物体滑动而不是立即停"
"止。如果另一个物体是[KinematicBody2D]或[RigidBody2D],它也会受到另一个物体的"
"运动的影响。你可以使用它来制作移动或旋转平台,或者让节点推动其他节点。\n"
"此方法应在 [method Node._physics_process](或者在被[method Node."
"_physics_process]调用的方法)中使用因为它在计算中自动使用物理步骤的"
"[code]delta[/code]值。否则,模拟将以错误的速度运行。\n"
"[code]linear_velocity[/code]是线速度向量,单位是像素每秒。与[method "
"move_and_collide]不同的是,你[i]不应该[/i]将它乘以[code]delta[/code]——物理引"
"擎会处理应用速度。\n"
"[code]up_direction[/code]是向上的方向,用来判断什么是墙,什么是地板或天花板。"
"如果设置为默认值 [code]Vector2(0, 0)[/code],则一切都被视为墙。这对于俯视视角"
"(topdown )的游戏很有用。\n"
"如果 [code]stop_on_slope[/code] 是 [code]true[/code],当你在"
"[code]linear_velocity[/code]中包含重力并且物体静止时,物体将不会在斜坡上滑"
"动。\n"
"如果物体发生碰撞,它将在停止之前最多改变方向 [code]max_slides[/code] 次。\n"
"[code]floor_max_angle[/code] 是最大角度(以弧度为单位),在这个角度下,一个斜"
"坡仍然被认为是地板(或天花板),而不是墙壁。默认值等于45度。\n"
"如果 [code]infinite_inertia[/code] 无穷惯性是 [code]true[/code],物体将能够推"
"动 [RigidBody2D] 节点,但它也不会检测到与它们的任何碰撞。如果 [code]false[/"
"code],它将与 [RigidBody2D] 节点交互,就像与 [StaticBody2D] 一样。\n"
"返回 [code]linear_velocity[/code] 向量,如果发生滑动碰撞,则旋转和/或缩放。要"
"获取有关发生的冲突的详细信息,请使用 [method get_slide_collision]。"

#: doc/classes/KinematicBody2D.xml:122
msgid ""
"Moves the body while keeping it attached to slopes. Similar to [method "
"move_and_slide].\n"
"As long as the [code]snap[/code] vector is in contact with the ground, the "
"body will remain attached to the surface. This means you must disable snap "
"in order to jump, for example. You can do this by setting [code]snap[/code] "
"to [code](0, 0)[/code] or by using [method move_and_slide] instead."
msgstr ""
"移动物体,同时使其保持附着在斜坡上。类似于 [method move_and_slide]。\n"
"只要[code]snap[/code]向量与地面接触,物体就会保持附着在表面上。例如,这意味着"
"您必须禁用吸附才能跳转。您可以通过将[code]snap[/code]设置为[code](0,0)[/code]"
"或使用 [method move_and_slide]来做到这一点。"

#: doc/classes/KinematicBody2D.xml:132
msgid ""
"Checks for collisions without moving the body. Virtually sets the node's "
"position, scale and rotation to that of the given [Transform2D], then tries "
"to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/"
"code] if a collision would occur."
msgstr ""
"在不移动物体的情况下检查碰撞。将节点的坐标,比例和旋转虚拟地设置为给定"
"[Transform2D]的坐标,比例和旋转,然后尝试沿着向量[code]rel_vec[/code]移动物"
"体。如果发生碰撞,则返回[code]true[/code]。"

#: doc/classes/KinematicCollision.xml:4
#, fuzzy
msgid "Collision data for [KinematicBody] collisions."
msgstr "[KinematicBody2D] 动态物体2D碰撞器碰撞的数据。"

#: doc/classes/KinematicCollision.xml:7
#, fuzzy
msgid ""
"Contains collision data for [KinematicBody] collisions. When a "
"[KinematicBody] is moved using [method KinematicBody.move_and_collide], it "
"stops if it detects a collision with another body. If a collision is "
"detected, a KinematicCollision object is returned.\n"
"This object contains information about the collision, including the "
"colliding object, the remaining motion, and the collision position. This "
"information can be used to calculate a collision response."
msgstr ""
"包含[KinematicBody2D]碰撞的碰撞数据。当使用 [method KinematicBody2D."
"move_and_collide] 移动[KinematicBody2D]时,如果检测到与另一个物体的碰撞,它将"
"停止。如果检测到碰撞,则返回KinematicCollision2D对象。\n"
"该对象包含有关碰撞的信息,包括碰撞对象,剩余运动和碰撞坐标。该信息可用于计算"
"碰撞响应。"

#: doc/classes/KinematicCollision.xml:17
msgid ""
"The collision angle according to [code]up_direction[/code], which is "
"[code]Vector3.UP[/code] by default. This value is always positive."
msgstr ""

#: doc/classes/KinematicCollision.xml:23
#: doc/classes/KinematicCollision2D.xml:23
msgid "The colliding body."
msgstr "碰撞体。"

#: doc/classes/KinematicCollision.xml:26
#: doc/classes/KinematicCollision2D.xml:26
msgid ""
"The colliding body's unique instance ID. See [method Object.get_instance_id]."
msgstr "碰撞体的唯一实例ID。参阅[method Object.get_instance_id]。"

#: doc/classes/KinematicCollision.xml:29
#: doc/classes/KinematicCollision2D.xml:29
msgid "The colliding body's metadata. See [Object]."
msgstr "碰撞体的元数据。参阅[Object]。"

#: doc/classes/KinematicCollision.xml:32
#, fuzzy
msgid "The colliding body's [RID] used by the [PhysicsServer]."
msgstr "碰撞体的形状。"

#: doc/classes/KinematicCollision.xml:35
#: doc/classes/KinematicCollision2D.xml:35
msgid "The colliding body's shape."
msgstr "碰撞体的形状。"

#: doc/classes/KinematicCollision.xml:38
#, fuzzy
msgid "The colliding shape's index. See [CollisionObject]."
msgstr "碰撞形状的索引。参阅[CollisionObject2D]。"

#: doc/classes/KinematicCollision.xml:41
#: doc/classes/KinematicCollision2D.xml:41
msgid "The colliding object's velocity."
msgstr "碰撞对象的速度。"

#: doc/classes/KinematicCollision.xml:44
#: doc/classes/KinematicCollision2D.xml:44
msgid "The moving object's colliding shape."
msgstr "移动对象的碰撞形状。"

#: doc/classes/KinematicCollision.xml:47
#: doc/classes/KinematicCollision2D.xml:47
msgid "The colliding body's shape's normal at the point of collision."
msgstr "碰撞体的形状在碰撞点的法线。"

#: doc/classes/KinematicCollision.xml:50
#: doc/classes/KinematicCollision2D.xml:50
msgid "The point of collision, in global coordinates."
msgstr "碰撞点,以全局坐标表示。"

#: doc/classes/KinematicCollision.xml:53
#: doc/classes/KinematicCollision2D.xml:53
msgid "The moving object's remaining movement vector."
msgstr "移动物体的剩余运动向量。"

#: doc/classes/KinematicCollision.xml:56
#: doc/classes/KinematicCollision2D.xml:56
msgid "The distance the moving object traveled before collision."
msgstr "运动物体在碰撞前行进的距离。"

#: doc/classes/KinematicCollision2D.xml:4
msgid "Collision data for [KinematicBody2D] collisions."
msgstr "[KinematicBody2D] 动态物体2D碰撞器碰撞的数据。"

#: doc/classes/KinematicCollision2D.xml:7
msgid ""
"Contains collision data for [KinematicBody2D] collisions. When a "
"[KinematicBody2D] is moved using [method KinematicBody2D.move_and_collide], "
"it stops if it detects a collision with another body. If a collision is "
"detected, a KinematicCollision2D object is returned.\n"
"This object contains information about the collision, including the "
"colliding object, the remaining motion, and the collision position. This "
"information can be used to calculate a collision response."
msgstr ""
"包含[KinematicBody2D]碰撞的碰撞数据。当使用 [method KinematicBody2D."
"move_and_collide] 移动[KinematicBody2D]时,如果检测到与另一个物体的碰撞,它将"
"停止。如果检测到碰撞,则返回KinematicCollision2D对象。\n"
"该对象包含有关碰撞的信息,包括碰撞对象,剩余运动和碰撞坐标。该信息可用于计算"
"碰撞响应。"

#: doc/classes/KinematicCollision2D.xml:17
msgid ""
"The collision angle according to [code]up_direction[/code], which is "
"[code]Vector2.UP[/code] by default. This value is always positive."
msgstr ""

#: doc/classes/KinematicCollision2D.xml:32
msgid "The colliding body's [RID] used by the [Physics2DServer]."
msgstr ""

#: doc/classes/KinematicCollision2D.xml:38
msgid "The colliding shape's index. See [CollisionObject2D]."
msgstr "碰撞形状的索引。参阅[CollisionObject2D]。"

#: doc/classes/Label.xml:4
msgid ""
"Displays plain text in a line or wrapped inside a rectangle. For formatted "
"text, use [RichTextLabel]."
msgstr ""
"在一行中显示纯文本,或在一个矩形内包裹。对于格式化的文本,使用"
"[RichTextLabel]。"

#: doc/classes/Label.xml:7
#, fuzzy
msgid ""
"Label displays plain text on the screen. It gives you control over the "
"horizontal and vertical alignment and can wrap the text inside the node's "
"bounding rectangle. It doesn't support bold, italics, or other formatting. "
"For that, use [RichTextLabel] instead.\n"
"[b]Note:[/b] Contrarily to most other [Control]s, Label's [member Control."
"mouse_filter] defaults to [constant Control.MOUSE_FILTER_IGNORE] (i.e. it "
"doesn't react to mouse input events). This implies that a label won't "
"display any configured [member Control.hint_tooltip], unless you change its "
"mouse filter.\n"
"[b]Note:[/b] Unicode characters after [code]0xffff[/code] (such as most "
"emoji) are [i]not[/i] supported on Windows. They will display as unknown "
"characters instead. This will be resolved in Godot 4.0."
msgstr ""
"Label标签在屏幕上显示纯文本。你可以控制水平和垂直的对齐方式,并可以将文本包裹"
"在节点的边界矩形内。它不支持粗体、斜体或其他格式化,对于这点,请使用"
"[RichTextLabel]代替。\n"
"[b]注意:[/b] 与大多数其他[Control]相反,Label的[member Control.mouse_filter]"
"默认为[constant Control.MOUSE_FILTER_IGNORE],即,它对鼠标输入事件没有反应。"
"这意味着标签不会显示任何配置的[member Control.hint_tooltip],除非你改变其鼠标"
"过滤器。"

#: doc/classes/Label.xml:18
msgid "Returns the amount of lines of text the Label has."
msgstr "返回Label标签的文本行数。"

#: doc/classes/Label.xml:24
msgid "Returns the font size in pixels."
msgstr "返回字体大小,单位是像素。"

#: doc/classes/Label.xml:30
msgid ""
"Returns the total number of printable characters in the text (excluding "
"spaces and newlines)."
msgstr "返回文本中可打印的字符总数,不包括空格和换行符。"

#: doc/classes/Label.xml:36
msgid ""
"Returns the number of lines shown. Useful if the [Label]'s height cannot "
"currently display all lines."
msgstr "返回显示的行数。如果[Label]的高度目前无法显示所有的行数,将会有用。"

#: doc/classes/Label.xml:42
msgid ""
"Controls the text's horizontal align. Supports left, center, right, and "
"fill, or justify. Set it to one of the [enum Align] constants."
msgstr ""
"控制文本的水平对齐。支持左对齐、居中对齐、右对齐和填充,或者两端对齐。把它设"
"置为[enum Align]常量之一。"

#: doc/classes/Label.xml:45
msgid ""
"If [code]true[/code], wraps the text inside the node's bounding rectangle. "
"If you resize the node, it will change its height automatically to show all "
"the text."
msgstr ""
"如果[code]true[/code],则将文本包裹在节点的边界矩形内。如果你调整节点的大小,"
"它将自动改变其高度以显示所有的文本。"

#: doc/classes/Label.xml:48
#, fuzzy
msgid ""
"If [code]true[/code], the Label only shows the text that fits inside its "
"bounding rectangle and will clip text horizontally."
msgstr ""
"如果[code]true[/code],标签只显示适合其边界矩形的文本。它还允许您自由地缩小节"
"点。"

#: doc/classes/Label.xml:51
msgid ""
"The node ignores the first [code]lines_skipped[/code] lines before it starts "
"to display text."
msgstr "该节点在开始显示文本之前会忽略前 [code]lines_skipped[/code] 行。"

#: doc/classes/Label.xml:54
msgid "Limits the lines of text the node shows on screen."
msgstr "限制节点在屏幕上显示的文本行数。"

#: doc/classes/Label.xml:58
msgid ""
"Limits the amount of visible characters. If you set [code]percent_visible[/"
"code] to 0.5, only up to half of the text's characters will display on "
"screen. Useful to animate the text in a dialog box."
msgstr ""
"限制可见字符的数量。如果你把[code]%_visible[/code]设置为0.5,屏幕上最多只能显"
"示文本的一半字符。这在对话框中对文本进行动画处理很有用。"

#: doc/classes/Label.xml:62
msgid "The text to display on screen."
msgstr "要在屏幕上显示的文本。"

#: doc/classes/Label.xml:65
msgid "If [code]true[/code], all the text displays as UPPERCASE."
msgstr "如果 [code]true[/code],则所有文本都显示为大写。"

#: doc/classes/Label.xml:68
msgid ""
"Controls the text's vertical align. Supports top, center, bottom, and fill. "
"Set it to one of the [enum VAlign] constants."
msgstr ""
"控制文本的垂直对齐。支持顶部、中心、底部和填充。参阅[enum VAlign]常数。"

#: doc/classes/Label.xml:71
msgid "Restricts the number of characters to display. Set to -1 to disable."
msgstr "限制显示的字符数。设置为-1表示禁用限制。"

#: doc/classes/Label.xml:76
msgid "Align rows to the left (default)."
msgstr "将行左对齐,默认。"

#: doc/classes/Label.xml:79
msgid "Align rows centered."
msgstr "居中对齐行。"

#: doc/classes/Label.xml:82
msgid "Align rows to the right."
msgstr "将行向右对齐。"

#: doc/classes/Label.xml:85
msgid "Expand row whitespaces to fit the width."
msgstr "扩展行空白以适应宽度。"

#: doc/classes/Label.xml:88
msgid "Align the whole text to the top."
msgstr "将整个文本对齐到顶部。"

#: doc/classes/Label.xml:91
msgid "Align the whole text to the center."
msgstr "将整个文本居中对齐。"

#: doc/classes/Label.xml:94
msgid "Align the whole text to the bottom."
msgstr "将整个文本与底部对齐。"

#: doc/classes/Label.xml:97
msgid "Align the whole text by spreading the rows."
msgstr "通过展开行来对齐整个文本。"

#: doc/classes/Label.xml:102
msgid "[Font] used for the [Label]'s text."
msgstr "用于标签[Label]文本的字体[Font]。"

#: doc/classes/Label.xml:105
msgid "Default text [Color] of the [Label]."
msgstr "[Label]标签的默认文本颜色[Color]。"

#: doc/classes/Label.xml:108
msgid "[Color] of the text's shadow effect."
msgstr "文本阴影效果的颜色[Color]。"

#: doc/classes/Label.xml:111
msgid "The tint of [Font]'s outline. See [member DynamicFont.outline_color]."
msgstr "[Font]轮廓的色调。参阅[member DynamicFont.outline_color]。"

#: doc/classes/Label.xml:114
msgid "Vertical space between lines in multiline [Label]."
msgstr "多行[Label]中各行之间的垂直空间。"

#: doc/classes/Label.xml:117
msgid "Background [StyleBox] for the [Label]."
msgstr "为[Label]设置背景样式[StyleBox]。"

#: doc/classes/Label.xml:120
msgid ""
"Boolean value. If set to 1 ([code]true[/code]), the shadow will be displayed "
"around the whole text as an outline."
msgstr "布尔值。如果设置为1,即[code]true[/code],整个文本周围显示阴影轮廓。"

#: doc/classes/Label.xml:123
msgid "The horizontal offset of the text's shadow."
msgstr "文本阴影的水平偏移。"

#: doc/classes/Label.xml:126
msgid "The vertical offset of the text's shadow."
msgstr "文本阴影的垂直偏移。"

#: doc/classes/LargeTexture.xml:4
#, fuzzy
msgid ""
"[i]Deprecated.[/i] A [Texture] capable of storing many smaller textures with "
"offsets."
msgstr "[Texture2D] 能够存储许多带有偏移量的较小纹理。"

#: doc/classes/LargeTexture.xml:7
#, fuzzy
msgid ""
"[i]Deprecated (will be removed in Godot 4.0).[/i] A [Texture] capable of "
"storing many smaller textures with offsets.\n"
"You can dynamically add pieces ([Texture]s) to this [LargeTexture] using "
"different offsets."
msgstr ""
"[Texture2D]能够存储许多带有偏移量的小纹理。\n"
"你可以使用不同的偏移量动态地将碎片[Texture2D]添加到这个[LargeTexture]中。"

#: doc/classes/LargeTexture.xml:18
msgid ""
"Adds [code]texture[/code] to this [LargeTexture], starting on offset "
"[code]ofs[/code]."
msgstr ""
"将[code]texture[/code]添加到这个[LargeTexture],从偏移量[code]ofs[/code]开"
"始。"

#: doc/classes/LargeTexture.xml:24
msgid "Clears the [LargeTexture]."
msgstr "清除[LargeTexture]。"

#: doc/classes/LargeTexture.xml:30
msgid "Returns the number of pieces currently in this [LargeTexture]."
msgstr "返回此[LargeTexture]中的片段数。"

#: doc/classes/LargeTexture.xml:37
msgid "Returns the offset of the piece with the index [code]idx[/code]."
msgstr "返回索引为[code]idx[/code]的片段的偏移量。"

#: doc/classes/LargeTexture.xml:44
#, fuzzy
msgid "Returns the [Texture] of the piece with the index [code]idx[/code]."
msgstr "返回索引为[code]idx[/code]的片段的[Texture2D]。"

#: doc/classes/LargeTexture.xml:52
msgid ""
"Sets the offset of the piece with the index [code]idx[/code] to [code]ofs[/"
"code]."
msgstr "将索引为[code]idx[/code]的片段的偏移量设置为[code]ofs[/code]。"

#: doc/classes/LargeTexture.xml:60
#, fuzzy
msgid ""
"Sets the [Texture] of the piece with index [code]idx[/code] to "
"[code]texture[/code]."
msgstr ""
"将索引为[code]idx[/code]的片段的[Texture2D]设置为[code]texture[/code]。"

#: doc/classes/LargeTexture.xml:67
msgid "Sets the size of this [LargeTexture]."
msgstr "设置此[LargeTexture]的大小。"

#: doc/classes/Light.xml:4
msgid "Provides a base class for different kinds of light nodes."
msgstr "为不同类型的光节点提供基类。"

#: doc/classes/Light.xml:7
#, fuzzy
msgid ""
"Light is the [i]abstract[/i] base class for light nodes. As it can't be "
"instanced, it shouldn't be used directly. Other types of light nodes inherit "
"from it. Light contains the common variables and parameters used for "
"lighting."
msgstr ""
"Light3D是光节点的[i]abstract[/i]抽象基类。因为它不能被实例化,所以不应该被直"
"接使用。其他类型的灯光节点都是继承自它。Light3D包含用于照明的常见变量和参数。"

#: doc/classes/Light.xml:18
#, fuzzy
msgid "Returns the value of the specified [enum Light.Param] parameter."
msgstr "返回指定的[enum Light3D.Param]参数的值。"

#: doc/classes/Light.xml:26
#, fuzzy
msgid "Sets the value of the specified [enum Light.Param] parameter."
msgstr "设置指定的[enum Light3D.Param]参数的值。"

#: doc/classes/Light.xml:32
msgid ""
"If [code]true[/code], the light only appears in the editor and will not be "
"visible at runtime."
msgstr "如果 [code]true[/code],灯光只在编辑器中出现,在运行时将不可见。"

#: doc/classes/Light.xml:35
msgid "The light's bake mode. See [enum BakeMode]."
msgstr "灯光的烘焙模式。参见[enum BakeMode]。"

#: doc/classes/Light.xml:38
msgid ""
"The light's color. An [i]overbright[/i] color can be used to achieve a "
"result equivalent to increasing the light's [member light_energy]."
msgstr ""
"光的颜色。一个过亮[i]overbright[/i]颜色可用于实现等效于增加光的能量 [member "
"light_energy] 的结果。"

#: doc/classes/Light.xml:41
msgid "The light will affect objects in the selected layers."
msgstr "灯光将影响所选图层中的对象。"

#: doc/classes/Light.xml:44
#, fuzzy
msgid ""
"The light's strength multiplier (this is not a physical unit). For "
"[OmniLight] and [SpotLight], changing this value will only change the light "
"color's intensity, not the light's radius."
msgstr ""
"光的强度乘数(这不是一个物理单位)。对于[OmniLight3D]和[SpotLight3D]来说,改"
"变这个值只会改变灯光颜色的强度,不会改变灯光的半径。"

#: doc/classes/Light.xml:47
#, fuzzy
msgid ""
"Secondary multiplier used with indirect light (light bounces). This works on "
"both [BakedLightmap] and [GIProbe]."
msgstr "与间接光(光反弹)一起使用的二级倍增器。与[GIProbe]一起使用。"

#: doc/classes/Light.xml:50
msgid ""
"If [code]true[/code], the light's effect is reversed, darkening areas and "
"casting bright shadows."
msgstr ""
"如果为 [code]true[/code],则光线的效果会逆转,使区域变暗并投射明亮的阴影。"

#: doc/classes/Light.xml:53
#, fuzzy
msgid ""
"The size of the light in Godot units. Only considered in baked lightmaps and "
"only if [member light_bake_mode] is set to [constant BAKE_ALL]. Increasing "
"this value will make the shadows appear blurrier. This can be used to "
"simulate area lights to an extent."
msgstr ""
"灯光的大小,在Godot中的单位。只适用于[OmniLight3D]s和[SpotLight3D]s。增加这个"
"值会使灯光淡出的速度变慢,阴影看起来更模糊。这在一定程度上可以用来模拟区域"
"光。"

#: doc/classes/Light.xml:56
msgid ""
"The intensity of the specular blob in objects affected by the light. At "
"[code]0[/code], the light becomes a pure diffuse light. When not baking "
"emission, this can be used to avoid unrealistic reflections when placing "
"lights above an emissive surface."
msgstr ""
"受灯光影响的对象中镜面反射斑点的强度。在[code]0[/code]处,灯光变成纯漫反射灯"
"光。当不烘焙发射时,这可用于在发射表面上方放置灯光时避免不真实的反射。"

#: doc/classes/Light.xml:59
msgid ""
"Used to adjust shadow appearance. Too small a value results in self-"
"shadowing (\"shadow acne\"), while too large a value causes shadows to "
"separate from casters (\"peter-panning\"). Adjust as needed."
msgstr ""
"用于调整阴影外观。值太小会导致自阴影(“阴影暗疮”),而值太大会导致阴影与之分"
"离(“彼得平移”)。根据需要进行调整。"

#: doc/classes/Light.xml:62
msgid "The color of shadows cast by this light."
msgstr "光线投射的阴影的颜色。"

#: doc/classes/Light.xml:65
#, fuzzy
msgid "Attempts to reduce [member shadow_bias] gap."
msgstr "用于访问 [member shadow_bias] 的常量。"

#: doc/classes/Light.xml:68
msgid "If [code]true[/code], the light will cast shadows."
msgstr "如果为[code]true[/code],光线会投下阴影。"

#: doc/classes/Light.xml:71
#, fuzzy
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 "
"cast a shadow on both sides of the mesh, set the mesh to use double-sided "
"shadows with [constant GeometryInstance.SHADOW_CASTING_SETTING_DOUBLE_SIDED]."
msgstr ""
"如果为[code]true[/code],则反转网格的背面消隐。当您有一个后面有灯光的平面网格"
"时,这可能很有用。如果需要在网格的两侧投射阴影,请将网格设置为使用双面阴影,"
"并使用[constant GeometryInstance3D.SHADOW_CASTING_SETTING_DOUBLE_SIDED]。"

#: doc/classes/Light.xml:76
msgid "Constant for accessing [member light_energy]."
msgstr "访问[member light_energy]的常数。"

#: doc/classes/Light.xml:79
msgid "Constant for accessing [member light_indirect_energy]."
msgstr "访问[member light_indirect_energy]的常数。"

#: doc/classes/Light.xml:82
msgid "Constant for accessing [member light_size]."
msgstr "访问[member light_size]的常数。"

#: doc/classes/Light.xml:85
msgid "Constant for accessing [member light_specular]."
msgstr "访问[member light_specular]的常数。"

#: doc/classes/Light.xml:88
#, fuzzy
msgid ""
"Constant for accessing [member OmniLight.omni_range] or [member SpotLight."
"spot_range]."
msgstr ""
"用于访问[member OmniLight3D.omni_range]或[member SpotLight3D.spot_range]的常"
"数。"

#: doc/classes/Light.xml:91
#, fuzzy
msgid ""
"Constant for accessing [member OmniLight.omni_attenuation] or [member "
"SpotLight.spot_attenuation]."
msgstr ""
"访问[member OmniLight3D.omni_attenuation]或[member SpotLight3D."
"spot_attenuation]的常数。"

#: doc/classes/Light.xml:94
#, fuzzy
msgid "Constant for accessing [member SpotLight.spot_angle]."
msgstr "访问[member SpotLight3D.spot_angle]的常数。"

#: doc/classes/Light.xml:97
#, fuzzy
msgid "Constant for accessing [member SpotLight.spot_angle_attenuation]."
msgstr "访问[member SpotLight3D.spot_angle_Densation]的常数。"

#: doc/classes/Light.xml:100
#, fuzzy
msgid "Constant for accessing [member shadow_contact]."
msgstr "用于访问 [member shadow_bias] 的常量。"

#: doc/classes/Light.xml:103
#, fuzzy
msgid ""
"Constant for accessing [member DirectionalLight."
"directional_shadow_max_distance]."
msgstr ""
"访问[member DirectionalLight3D.directional_shadow_max_distance]的常数。"

#: doc/classes/Light.xml:106
#, fuzzy
msgid ""
"Constant for accessing [member DirectionalLight.directional_shadow_split_1]."
msgstr "访问[member DirectionalLight3D.directional_shadow_split_1]的常数。"

#: doc/classes/Light.xml:109
#, fuzzy
msgid ""
"Constant for accessing [member DirectionalLight.directional_shadow_split_2]."
msgstr "访问[member DirectionalLight3D.directional_shadow_split_2]的常数。"

#: doc/classes/Light.xml:112
#, fuzzy
msgid ""
"Constant for accessing [member DirectionalLight.directional_shadow_split_3]."
msgstr "访问[member DirectionalLight3D.directional_shadow_split_3]的常数。"

#: doc/classes/Light.xml:115
#, fuzzy
msgid ""
"Constant for accessing [member DirectionalLight."
"directional_shadow_normal_bias]."
msgstr ""
"访问[member DirectionalLight3D.directional_shadow_max_distance]的常数。"

#: doc/classes/Light.xml:118
msgid "Constant for accessing [member shadow_bias]."
msgstr "用于访问 [member shadow_bias] 的常量。"

#: doc/classes/Light.xml:121
#, fuzzy
msgid ""
"Constant for accessing [member DirectionalLight."
"directional_shadow_bias_split_scale]."
msgstr "访问[member DirectionalLight3D.directional_shadow_split_1]的常数。"

#: doc/classes/Light.xml:127
msgid ""
"Light is ignored when baking.\n"
"[b]Note:[/b] Hiding a light does [i]not[/i] affect baking."
msgstr ""
"烘焙时忽略灯光。\n"
"[b] 注意:[/b]隐藏灯光[i]不[/i]会影响烘焙。"

#: doc/classes/Light.xml:131
msgid "Only indirect lighting will be baked (default)."
msgstr ""

#: doc/classes/Light.xml:134
msgid ""
"Both direct and indirect light will be baked.\n"
"[b]Note:[/b] You should hide the light if you don't want it to appear twice "
"(dynamic and baked)."
msgstr ""

#: doc/classes/Light2D.xml:4
msgid "Casts light in a 2D environment."
msgstr "在2D环境中投射光线。"

#: doc/classes/Light2D.xml:7
msgid ""
"Casts light in a 2D environment. Light is defined by a (usually grayscale) "
"texture, a color, an energy value, a mode (see constants), and various other "
"parameters (range and shadows-related).\n"
"[b]Note:[/b] Light2D can also be used as a mask."
msgstr ""
"在2D环境中投射光线。光线由一张纹理(通常是灰度)、一种颜色、一个能量值、一种"
"模式(参阅常数)以及其他各种参数(与范围和阴影有关)来定义。\n"
"[b]注意:[/b] Light2D也可以作为一个遮罩使用。"

#: doc/classes/Light2D.xml:11 doc/classes/LightOccluder2D.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/2d/2d_lights_and_shadows.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/2d/2d_lights_and_shadows."
"html"

#: doc/classes/Light2D.xml:17
msgid "The Light2D's [Color]."
msgstr "Light2D光的颜色 [Color]。"

#: doc/classes/Light2D.xml:20
msgid "If [code]true[/code], Light2D will only appear when editing the scene."
msgstr "如果[code]true[/code],Light2D将只在编辑场景时出现。"

#: doc/classes/Light2D.xml:23
msgid "If [code]true[/code], Light2D will emit light."
msgstr "如果 [code]true[/code],Light2D 会发光。"

#: doc/classes/Light2D.xml:26
msgid ""
"The Light2D's energy value. The larger the value, the stronger the light."
msgstr "Light2D的能量值。该值越大,光线就越强。"

#: doc/classes/Light2D.xml:29
msgid "The Light2D's mode. See [enum Mode] constants for values."
msgstr "Light2D的模式。参阅[enum Mode]常数的值。"

#: doc/classes/Light2D.xml:32
msgid "The offset of the Light2D's [code]texture[/code]."
msgstr "Light2D 的 [code] texture [/code] 的偏移量。"

#: doc/classes/Light2D.xml:35
msgid "The height of the Light2D. Used with 2D normal mapping."
msgstr "Light2D的高度。与2D法线贴图(normal mapping)一起使用。"

#: doc/classes/Light2D.xml:38
msgid ""
"The layer mask. Only objects with a matching mask will be affected by the "
"Light2D."
msgstr "图层遮罩。只有具有匹配遮罩的对象才会受到Light2D的影响。"

#: doc/classes/Light2D.xml:41
msgid "Maximum layer value of objects that are affected by the Light2D."
msgstr "受Light2D影响的对象的最大层数值。"

#: doc/classes/Light2D.xml:44
msgid "Minimum layer value of objects that are affected by the Light2D."
msgstr "受 Light2D 影响的对象的最小层数值。"

#: doc/classes/Light2D.xml:47
msgid ""
"Maximum [code]z[/code] value of objects that are affected by the Light2D."
msgstr "受Light2D影响的物体的最大[code]z[/code]值。"

#: doc/classes/Light2D.xml:50
msgid ""
"Minimum [code]z[/code] value of objects that are affected by the Light2D."
msgstr "受Light2D影响的物体的最小[code]z[/code]值。"

#: doc/classes/Light2D.xml:53
msgid "Shadow buffer size."
msgstr "阴影缓冲区大小。"

#: doc/classes/Light2D.xml:56
msgid "[Color] of shadows cast by the Light2D."
msgstr "Light2D投下的影子的颜色[Color]。"

#: doc/classes/Light2D.xml:59
msgid "If [code]true[/code], the Light2D will cast shadows."
msgstr "如果[code]true[/code],Light2D将投下阴影。"

#: doc/classes/Light2D.xml:62
msgid "Shadow filter type. See [enum ShadowFilter] for possible values."
msgstr "阴影过滤器类型。相关可能的值,参阅[enum ShadowFilter] 阴影过滤器。"

#: doc/classes/Light2D.xml:65
msgid "Smoothing value for shadows."
msgstr "阴影的平滑值。"

#: doc/classes/Light2D.xml:68
msgid "Smooth shadow gradient length."
msgstr ""

#: doc/classes/Light2D.xml:71
msgid ""
"The shadow mask. Used with [LightOccluder2D] to cast shadows. Only occluders "
"with a matching light mask will cast shadows."
msgstr ""
"阴影遮罩。与[LightOccluder2D]一起使用来投射阴影。只有具有匹配的光线遮罩的遮挡"
"物才会投射阴影。"

#: doc/classes/Light2D.xml:74
#, fuzzy
msgid "[Texture] used for the Light2D's appearance."
msgstr "[Texture2D] 用于 Light2D 的外观。"

#: doc/classes/Light2D.xml:77
msgid "The [code]texture[/code]'s scale factor."
msgstr "[code]texture[/code] 的缩放系数。"

#: doc/classes/Light2D.xml:82
msgid ""
"Adds the value of pixels corresponding to the Light2D to the values of "
"pixels under it. This is the common behavior of a light."
msgstr "将 Light2D 对应的像素值与其下方的像素值相加。这是灯的常见行为。"

#: doc/classes/Light2D.xml:85
msgid ""
"Subtracts the value of pixels corresponding to the Light2D to the values of "
"pixels under it, resulting in inversed light effect."
msgstr "将Light2D对应的像素值减去其下方的像素值,产生反光效果。"

#: doc/classes/Light2D.xml:88
msgid ""
"Mix the value of pixels corresponding to the Light2D to the values of pixels "
"under it by linear interpolation."
msgstr "通过线性插值将Light2D对应的像素值与其下方的像素值混合。"

#: doc/classes/Light2D.xml:91
msgid ""
"The light texture of the Light2D is used as a mask, hiding or revealing "
"parts of the screen underneath depending on the value of each pixel of the "
"light (mask) texture."
msgstr ""
"Light2D的光线纹理被用作遮罩,根据光线遮罩纹理的每个像素的值,隐藏或显示屏幕下"
"方的部分。"

#: doc/classes/Light2D.xml:94
msgid "No filter applies to the shadow map. See [member shadow_filter]."
msgstr "没有过滤器适用于阴影贴图。参阅[member shadow_filter]。"

#: doc/classes/Light2D.xml:97
#, fuzzy
msgid ""
"Percentage closer filtering (3 samples) applies to the shadow map. See "
"[member shadow_filter]."
msgstr "百分比接近过滤(13个样本)适用于阴影贴图。参阅[member shadow_filter]。"

#: doc/classes/Light2D.xml:100
msgid ""
"Percentage closer filtering (5 samples) applies to the shadow map. See "
"[member shadow_filter]."
msgstr "百分比接近过滤(5个样本)适用于阴影贴图。参阅[member shadow_filter]。"

#: doc/classes/Light2D.xml:103
#, fuzzy
msgid ""
"Percentage closer filtering (7 samples) applies to the shadow map. See "
"[member shadow_filter]."
msgstr "百分比接近过滤(5个样本)适用于阴影贴图。参阅[member shadow_filter]。"

#: doc/classes/Light2D.xml:106
#, fuzzy
msgid ""
"Percentage closer filtering (9 samples) applies to the shadow map. See "
"[member shadow_filter]."
msgstr "百分比接近过滤(5个样本)适用于阴影贴图。参阅[member shadow_filter]。"

#: doc/classes/Light2D.xml:109
msgid ""
"Percentage closer filtering (13 samples) applies to the shadow map. See "
"[member shadow_filter]."
msgstr "百分比接近过滤(13个样本)适用于阴影贴图。参阅[member shadow_filter]。"

#: doc/classes/LightOccluder2D.xml:4
msgid "Occludes light cast by a Light2D, casting shadows."
msgstr "遮挡由Light2D投射的光线,投射阴影。"

#: doc/classes/LightOccluder2D.xml:7
msgid ""
"Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must "
"be provided with an [OccluderPolygon2D] in order for the shadow to be "
"computed."
msgstr ""
"遮挡Light2D投射的灯光,投射阴影。为了计算阴影,必须为LightOccluder2D提供"
"[OccluderPolygon2D]。"

#: doc/classes/LightOccluder2D.xml:16
msgid ""
"The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only "
"from Light2D(s) that have the same light mask(s)."
msgstr ""
"LightOccluder2D的灯光遮罩。LightOccluder2D将仅从具有相同灯光遮罩的Light2D投射"
"阴影。"

#: doc/classes/LightOccluder2D.xml:19
msgid "The [OccluderPolygon2D] used to compute the shadow."
msgstr "用于计算阴影的[OccluderPolygon2D]。"

#: doc/classes/Line2D.xml:4
msgid "A 2D line."
msgstr "一条2D线。"

#: doc/classes/Line2D.xml:7
msgid ""
"A line through several points in 2D space.\n"
"[b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a "
"time. To increase this limit, open the Project Settings and increase [member "
"ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and "
"[member ProjectSettings.rendering/limits/buffers/"
"canvas_polygon_index_buffer_size_kb]."
msgstr ""

#: doc/classes/Line2D.xml:20
msgid ""
"Adds a point at the [code]position[/code]. Appends the point at the end of "
"the line.\n"
"If [code]at_position[/code] is given, the point is inserted before the point "
"number [code]at_position[/code], moving that point (and every point after) "
"after the inserted point. If [code]at_position[/code] is not given, or is an "
"illegal value ([code]at_position < 0[/code] or [code]at_position >= [method "
"get_point_count][/code]), the point will be appended at the end of the point "
"list."
msgstr ""
"在[code]position[/code]添加点。将点追加到直线的末尾。\n"
"如果给定了位置[code]at_position[/code],则在位置[code]at_position[/code]之前"
"插入该点,并将该点(以及之后的每个点)移动到插入点之后。如果未给出位置处的"
"[code]at_position[/code],或者是非法值([code]at_position <0[/code]或位置处的"
"[code]>=[method get_point_count][/code]),则该点将追加到点列表的末尾。"

#: doc/classes/Line2D.xml:27
msgid "Removes all points from the line."
msgstr "移除直线上的所有点。"

#: doc/classes/Line2D.xml:33
msgid "Returns the Line2D's amount of points."
msgstr "返回在Line2D上点的数量。"

#: doc/classes/Line2D.xml:40
msgid "Returns point [code]i[/code]'s position."
msgstr "返回点[code]i[/code]的位置。"

#: doc/classes/Line2D.xml:47
msgid "Removes the point at index [code]i[/code] from the line."
msgstr "将索引[code]i[/code]处的点从直线中移除。"

#: doc/classes/Line2D.xml:55
msgid ""
"Overwrites the position in point [code]i[/code] with the supplied "
"[code]position[/code]."
msgstr "用提供的[code]position[/code]位置覆盖索引[code]i[/code]处点的位置。"

#: doc/classes/Line2D.xml:61
#, fuzzy
msgid ""
"If [code]true[/code], the line's border will be anti-aliased.\n"
"[b]Note:[/b] Line2D is not accelerated by batching when being anti-aliased."
msgstr "如果为[code]true[/code],该直线的边界将应用反锯齿化。"

#: doc/classes/Line2D.xml:65
msgid ""
"Controls the style of the line's first point. Use [enum LineCapMode] "
"constants."
msgstr "控制直线的第一个点的样式。使用[enum LineCapMode]线帽模式常数。"

#: doc/classes/Line2D.xml:68
msgid "The line's color. Will not be used if a gradient is set."
msgstr "线条的颜色。如果设置了渐变,则不会生效。"

#: doc/classes/Line2D.xml:71
msgid ""
"Controls the style of the line's last point. Use [enum LineCapMode] "
"constants."
msgstr "控制线条最后一点的样式。使用[enum LineCapMode]常数。"

#: doc/classes/Line2D.xml:74
msgid ""
"The gradient is drawn through the whole line from start to finish. The "
"default color will not be used if a gradient is set."
msgstr "从头到尾贯穿整条线的渐变色。如果设置了渐变,则不会使用默认颜色。"

#: doc/classes/Line2D.xml:77
msgid "The style for the points between the start and the end."
msgstr "起点和终点之间点的样式。"

#: doc/classes/Line2D.xml:80
#, fuzzy
msgid ""
"The points that form the lines. The line is drawn between every point set in "
"this array. Points are interpreted as local vectors."
msgstr "构成线条的点。这条线是在这个数组中每个点之间绘制的。"

#: doc/classes/Line2D.xml:83
msgid ""
"The smoothness of the rounded joints and caps. This is only used if a cap or "
"joint is set as round."
msgstr "圆形接头和盖的平滑度。仅当盖或接头设置为圆形时才使用此选项。"

#: doc/classes/Line2D.xml:86
msgid ""
"The direction difference in radians between vector points. This value is "
"only used if [code]joint mode[/code] is set to [constant LINE_JOINT_SHARP]."
msgstr ""
"矢量点之间弧度的方向差。仅当[code]joint mode[/code]设置为[constant "
"LINE_JOINT_SHARP[code]]时,才使用此值。"

#: doc/classes/Line2D.xml:89
msgid ""
"The texture used for the line's texture. Uses [code]texture_mode[/code] for "
"drawing style."
msgstr "用于线条纹理的纹理。使用[code]texture_mode[/code]作为绘图样式。"

#: doc/classes/Line2D.xml:92
msgid ""
"The style to render the [code]texture[/code] on the line. Use [enum "
"LineTextureMode] constants."
msgstr ""
"在线条上渲染[code]texture[/code]的样式。使用[enum LineTextureMode]常量。"

#: doc/classes/Line2D.xml:95
msgid "The line's width."
msgstr "线的宽度。"

#: doc/classes/Line2D.xml:98
msgid ""
"The line's width varies with the curve. The original width is simply "
"multiply by the value of the Curve."
msgstr "线条的宽度随曲线的变化而变化。原始宽度只需乘以曲线的值即可。"

#: doc/classes/Line2D.xml:103
msgid ""
"The line's joints will be pointy. If [code]sharp_limit[/code] is greater "
"than the rotation of a joint, it becomes a bevel joint instead."
msgstr ""
"这条线的接头将是尖的。如果[code]sharp_limit[/code]大于关节的旋转,则它将变为"
"斜角关节。"

#: doc/classes/Line2D.xml:106
msgid "The line's joints will be bevelled/chamfered."
msgstr "线的接头将进行斜切/倒角。"

#: doc/classes/Line2D.xml:109
msgid "The line's joints will be rounded."
msgstr "该线的接头将为圆形。"

#: doc/classes/Line2D.xml:112
msgid "Don't draw a line cap."
msgstr "不能在线帽上绘制。"

#: doc/classes/Line2D.xml:115
msgid "Draws the line cap as a box."
msgstr "将线帽绘制为长方体。"

#: doc/classes/Line2D.xml:118
msgid "Draws the line cap as a circle."
msgstr "将线帽绘制为圆。"

#: doc/classes/Line2D.xml:121
msgid ""
"Takes the left pixels of the texture and renders it over the whole line."
msgstr "获取纹理的左侧像素并在整个线条上渲染它。"

#: doc/classes/Line2D.xml:124
msgid ""
"Tiles the texture over the line. The texture must be imported with "
"[b]Repeat[/b] enabled for it to work properly."
msgstr "在线条上平铺纹理。导入纹理时必须启用[b]Repeat[/b]才能正常工作。"

#: doc/classes/Line2D.xml:127
msgid ""
"Stretches the texture across the line. Import the texture with [b]Repeat[/b] "
"disabled for best results."
msgstr "沿直线拉伸纹理。导入禁用[b]重复[/b]的纹理以获得最佳效果。"

#: doc/classes/LineEdit.xml:4
msgid "Control that provides single-line string editing."
msgstr "该控件提供单行字符串编辑。"

#: doc/classes/LineEdit.xml:7
#, fuzzy
msgid ""
"LineEdit provides a single-line string editor, used for text fields.\n"
"It features many built-in shortcuts which will always be available "
"([code]Ctrl[/code] here maps to [code]Command[/code] on macOS):\n"
"- Ctrl + C: Copy\n"
"- Ctrl + X: Cut\n"
"- Ctrl + V or Ctrl + Y: Paste/\"yank\"\n"
"- Ctrl + Z: Undo\n"
"- Ctrl + Shift + Z: Redo\n"
"- Ctrl + U: Delete text from the cursor position to the beginning of the "
"line\n"
"- Ctrl + K: Delete text from the cursor position to the end of the line\n"
"- Ctrl + A: Select all text\n"
"- Up/Down arrow: Move the cursor to the beginning/end of the line\n"
"On macOS, some extra keyboard shortcuts are available:\n"
"- Ctrl + F: Like the right arrow key, move the cursor one character right\n"
"- Ctrl + B: Like the left arrow key, move the cursor one character left\n"
"- Ctrl + P: Like the up arrow key, move the cursor to the previous line\n"
"- Ctrl + N: Like the down arrow key, move the cursor to the next line\n"
"- Ctrl + D: Like the Delete key, delete the character on the right side of "
"cursor\n"
"- Ctrl + H: Like the Backspace key, delete the character on the left side of "
"the cursor\n"
"- Command + Left arrow: Like the Home key, move the cursor to the beginning "
"of the line\n"
"- Command + Right arrow: Like the End key, move the cursor to the end of the "
"line"
msgstr ""
"LineEdit提供了单行字符串编辑,用于文本字段。\n"
"它具有许多内置的快捷键,这些快捷键总是可用,注,[kbd]Ctrl[/kbd]在这里映射到"
"MacOS上的[kbd]Cmd[/kbd]:\n"
"- [kbd]Ctrl + C[/kbd]:复制\n"
"- [kbd]Ctrl + X[/kbd]:剪切\n"
"- [kbd]Ctrl + V[/kbd]或[kbd]Ctrl + Y[/kbd]:粘贴/\"拉动\"\n"
"- [kbd]Ctrl + Z[/kbd]:撤销\n"
"- [kbd]Ctrl + Shift + Z[/kbd]:重做\n"
"- [kbd]Ctrl + U[/kbd]:删除从光标位置到行首的文本\n"
"- [kbd]Ctrl + K[/kbd]:删除从光标位置到行尾的文本\n"
"- [kbd]Ctrl + A[/kbd]:选择所有文本\n"
"- [kbd]Up Arrow[/kbd]/[kbd]down Arrow[/kbd]:向上/向下箭头将光标移到行首/行"
"尾\n"
"在macOS上,有一些额外的键盘快捷键可用:\n"
"- [kbd]Ctrl + F[/kbd]:与[kbd]右箭头[/kbd]相同,将光标向右移动一个字符\n"
"- [kbd]Ctrl + B[/kbd]:与[kbd]左箭头[/kbd]相同,向左移动光标一个字符\n"
"- [kbd]Ctrl + P[/kbd]:与[kbd]向上箭头[/kbd]相同,将光标移到前一行\n"
"- [kbd]Ctrl + N[/kbd]:与[kbd]向下箭头[/kbd]相同,将光标移到下一行\n"
"- [kbd]Ctrl + D[/kbd]:与[kbd]Delete[/kbd]相同,删除光标右侧的字符\n"
"- [kbd]Ctrl+H[/kbd]:与[kbd]Backspace[/kbd]相同,删除光标左侧的字符\n"
"- [kbd]Ctrl+A[/kbd]:与[kbd]Home[/kbd]相同,将光标移到行首\n"
"- [kbd]Ctrl+E[/kbd]:与[kbd]End[/kbd]相同,将光标移到行尾\n"
"- [kbd]Cmd + Left Arrow[/kbd]:与[kbd]Home[/kbd]相同,将光标移到该行的开头\n"
"- [kbd]Cmd + right Arrow[/kbd]:与[kbd]End[/kbd]相同,将光标移到行尾"

#: doc/classes/LineEdit.xml:35
msgid ""
"Adds [code]text[/code] after the cursor. If the resulting value is longer "
"than [member max_length], nothing happens."
msgstr ""
"在光标后添加[code]text[/code]文本。如果产生的值长于[member max_length],则不"
"会发生任何事情。"

#: doc/classes/LineEdit.xml:41
msgid "Erases the [LineEdit]'s [member text]."
msgstr "擦除 [LineEdit] 的 [member text]文本 。"

#: doc/classes/LineEdit.xml:47
#, fuzzy
msgid ""
"Deletes one character at the cursor's current position (equivalent to "
"pressing the [code]Delete[/code] key)."
msgstr "删除光标当前位置的一个字符(相当于按[kbd]Delete[/kbd]输出键)。"

#: doc/classes/LineEdit.xml:55
msgid ""
"Deletes a section of the [member text] going from position "
"[code]from_column[/code] to [code]to_column[/code]. Both parameters should "
"be within the text's length."
msgstr ""
"删除从[code]from_column[/code]到[code]to_column[/code]位置的文本[member text]"
"的一部分。两个参数都应该在文本的长度之内。"

#: doc/classes/LineEdit.xml:61
msgid "Clears the current selection."
msgstr "清除当前选择。"

#: doc/classes/LineEdit.xml:67
msgid ""
"Returns the [PopupMenu] of this [LineEdit]. By default, this menu is "
"displayed when right-clicking on the [LineEdit]."
msgstr ""
"返回此[LineEdit]的[PopupMenu]。默认情况下,右键单击[LineEdit]时显示此菜单。"

#: doc/classes/LineEdit.xml:73
msgid ""
"Returns the scroll offset due to [member caret_position], as a number of "
"characters."
msgstr ""

#: doc/classes/LineEdit.xml:80
msgid "Executes a given action as defined in the [enum MenuItems] enum."
msgstr "执行[enum MenuItems]枚举中定义的给定操作。"

#: doc/classes/LineEdit.xml:88
msgid ""
"Selects characters inside [LineEdit] between [code]from[/code] and [code]to[/"
"code]. By default, [code]from[/code] is at the beginning and [code]to[/code] "
"at the end.\n"
"[codeblock]\n"
"text = \"Welcome\"\n"
"select() # Will select \"Welcome\".\n"
"select(4) # Will select \"ome\".\n"
"select(2, 5) # Will select \"lco\".\n"
"[/codeblock]"
msgstr ""
"在[code]from[/code]和[code]to[/code]之间的[LineEdit]内选择字符。默认情况下,"
"[code]from[/code]位于开头,[code]to[/code]位于结尾。\n"
"[codeblock]\n"
"text = \"Welcome\"\n"
"select() # 将选择 \"Welcome\".\n"
"select(4) # 将选择 \"ome\".\n"
"select(2, 5) #将选择 \"lco\".\n"
"[/codeblock]"

#: doc/classes/LineEdit.xml:100
msgid "Selects the whole [String]."
msgstr "选择整个 [String]。"

#: doc/classes/LineEdit.xml:106
msgid "Text alignment as defined in the [enum Align] enum."
msgstr "在[enum Align]枚举中定义文本对齐方式。"

#: doc/classes/LineEdit.xml:109 doc/classes/TextEdit.xml:390
msgid "If [code]true[/code], the caret (visual cursor) blinks."
msgstr "如果为[code]true[/code],插入符号(可视光标)将闪烁。"

#: doc/classes/LineEdit.xml:112 doc/classes/TextEdit.xml:393
msgid "Duration (in seconds) of a caret's blinking cycle."
msgstr "插入符号闪烁周期的持续时间(秒)。"

#: doc/classes/LineEdit.xml:115
msgid ""
"The cursor's position inside the [LineEdit]. When set, the text may scroll "
"to accommodate it."
msgstr "光标在[LineEdit]中的位置。设置后,文本可以滚动以适应它。"

#: doc/classes/LineEdit.xml:118
msgid ""
"If [code]true[/code], the [LineEdit] will show a clear button if [code]text[/"
"code] is not empty, which can be used to clear the text quickly."
msgstr ""
"设置为[code]true[/code],[code]text[/code]不为空的时候,[LineEdit]将显示一个"
"按钮,可以用来快速清除文本。"

#: doc/classes/LineEdit.xml:121
msgid "If [code]true[/code], the context menu will appear when right-clicked."
msgstr "如果为[code]true[/code],右键单击将出现上下文菜单。"

#: doc/classes/LineEdit.xml:124
msgid ""
"If [code]false[/code], existing text cannot be modified and new text cannot "
"be added."
msgstr "如果为[code]false[/code],则不能修改现在的文本,也不能添加新文本。"

#: doc/classes/LineEdit.xml:127
msgid ""
"If [code]true[/code], the [LineEdit] width will increase to stay longer than "
"the [member text]. It will [b]not[/b] compress if the [member text] is "
"shortened."
msgstr ""
"如果[code]true[/code],则[LineEdit]宽度将增加到比[member text]长。如果"
"[member text]被缩短,它将[b]不[/b]压缩。"

#: doc/classes/LineEdit.xml:131
msgid ""
"Maximum amount of characters that can be entered inside the [LineEdit]. If "
"[code]0[/code], there is no limit.\n"
"When a limit is defined, characters that would exceed [member max_length] "
"are truncated. This happens both for existing [member text] contents when "
"setting the max length, or for new text inserted in the [LineEdit], "
"including pasting. If any input text is truncated, the [signal "
"text_change_rejected] signal is emitted with the truncated substring as "
"parameter.\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"text = \"Hello world\"\n"
"max_length = 5\n"
"# `text` becomes \"Hello\".\n"
"max_length = 10\n"
"text += \" goodbye\"\n"
"# `text` becomes \"Hello good\".\n"
"# `text_change_rejected` is emitted with \"bye\" as parameter.\n"
"[/codeblock]"
msgstr ""

#: doc/classes/LineEdit.xml:146
msgid ""
"Opacity of the [member placeholder_text]. From [code]0[/code] to [code]1[/"
"code]."
msgstr ""
"[member placeholder_text]的不透明度。值从[code]0[/code]到[code]1[/code]。"

#: doc/classes/LineEdit.xml:149
msgid ""
"Text shown when the [LineEdit] is empty. It is [b]not[/b] the [LineEdit]'s "
"default value (see [member text])."
msgstr ""
"当[LineEdit]为空时显示的文本。它[b]不是[/b][LineEdit]的默认值(见 [member "
"text])。"

#: doc/classes/LineEdit.xml:152
msgid ""
"Sets the icon that will appear in the right end of the [LineEdit] if there's "
"no [member text], or always, if [member clear_button_enabled] is set to "
"[code]false[/code]."
msgstr ""
"如果没有[member text],或如果[member clear_button_enabled]设置为[code]false[/"
"code],则设置将出现在[LineEdit]右端的图标。"

#: doc/classes/LineEdit.xml:155
msgid ""
"If [code]true[/code], every character is replaced with the secret character "
"(see [member secret_character])."
msgstr ""
"如果为[code]true[/code],每个字符都会被替换成密码字符(参考[member "
"secret_character])。"

#: doc/classes/LineEdit.xml:158
msgid ""
"The character to use to mask secret input (defaults to \"*\"). Only a single "
"character can be used as the secret character."
msgstr "用来作为密码输入的字符(默认为 \"*\")。只能用一个字符作为密码字符。"

#: doc/classes/LineEdit.xml:161
msgid ""
"If [code]false[/code], it's impossible to select the text using mouse nor "
"keyboard."
msgstr "如果为[code]false[/code],则无法用鼠标或键盘选择文本。"

#: doc/classes/LineEdit.xml:164
msgid "If [code]false[/code], using shortcuts will be disabled."
msgstr "如果为[code]false[/code],快捷键将被禁用。"

#: doc/classes/LineEdit.xml:167
msgid ""
"String value of the [LineEdit].\n"
"[b]Note:[/b] Changing text using this property won't emit the [signal "
"text_changed] signal."
msgstr ""
"[LineEdit]的字符串值。\n"
"[b]注意:[/b]使用这个属性更改文本不会触发[signal text_changed]信号。"

#: doc/classes/LineEdit.xml:171 doc/classes/TextEdit.xml:467
msgid ""
"If [code]true[/code], the native virtual keyboard is shown when focused on "
"platforms that support it."
msgstr "如果[code]true[/code],则本机虚拟键盘将显示在支持它的平台上。"

#: doc/classes/LineEdit.xml:178
msgid ""
"Emitted when appending text that overflows the [member max_length]. The "
"appended text is truncated to fit [member max_length], and the part that "
"couldn't fit is passed as the [code]rejected_substring[/code] argument."
msgstr ""

#: doc/classes/LineEdit.xml:184 doc/classes/TextEdit.xml:505
msgid "Emitted when the text changes."
msgstr "当文本更改时触发。"

#: doc/classes/LineEdit.xml:190
msgid "Emitted when the user presses [constant KEY_ENTER] on the [LineEdit]."
msgstr "当用户按[LineEdit]上的[constant KEY_ENTER]时触发。"

#: doc/classes/LineEdit.xml:196
msgid "Aligns the text on the left-hand side of the [LineEdit]."
msgstr "[LineEdit]文本左对齐。"

#: doc/classes/LineEdit.xml:199
msgid "Centers the text in the middle of the [LineEdit]."
msgstr "[LineEdit]文本居中。"

#: doc/classes/LineEdit.xml:202
msgid "Aligns the text on the right-hand side of the [LineEdit]."
msgstr "[LineEdit]文本右对齐。"

#: doc/classes/LineEdit.xml:205
msgid "Stretches whitespaces to fit the [LineEdit]'s width."
msgstr "拉伸空白以适应[LineEdit]的宽度。"

#: doc/classes/LineEdit.xml:208 doc/classes/TextEdit.xml:526
msgid "Cuts (copies and clears) the selected text."
msgstr "剪切(复制并删除)选定的文本。"

#: doc/classes/LineEdit.xml:211 doc/classes/TextEdit.xml:529
msgid "Copies the selected text."
msgstr "复制选定的文本。"

#: doc/classes/LineEdit.xml:214
msgid ""
"Pastes the clipboard text over the selected text (or at the cursor's "
"position).\n"
"Non-printable escape characters are automatically stripped from the OS "
"clipboard via [method String.strip_escapes]."
msgstr ""
"将剪贴板文本粘贴到所选文本上(或光标所在位置)。\n"
"不可打印的转义字符将通过[method String.strip_escapes]从操作系统剪贴板中自动剥"
"离。"

#: doc/classes/LineEdit.xml:218
msgid "Erases the whole [LineEdit] text."
msgstr "删除整个[LineEdit]文本。"

#: doc/classes/LineEdit.xml:221
msgid "Selects the whole [LineEdit] text."
msgstr "选择[LineEdit]中所有文本。"

#: doc/classes/LineEdit.xml:224 doc/classes/TextEdit.xml:541
msgid "Undoes the previous action."
msgstr "撤销之前的操作。"

#: doc/classes/LineEdit.xml:227
msgid "Reverse the last undo action."
msgstr "反转最后一个撤销动作。"

#: doc/classes/LineEdit.xml:230 doc/classes/TextEdit.xml:547
msgid "Represents the size of the [enum MenuItems] enum."
msgstr "表示[enum MenuItems]枚举的大小。"

#: doc/classes/LineEdit.xml:235
msgid "Texture for the clear button. See [member clear_button_enabled]."
msgstr "“清除”按钮的纹理。请参阅[member clear_button_enabled]。"

#: doc/classes/LineEdit.xml:238
msgid "Color used as default tint for the clear button."
msgstr "用作清除按钮默认色调的颜色。"

#: doc/classes/LineEdit.xml:241
msgid "Color used for the clear button when it's pressed."
msgstr "按下清除按钮时使用的颜色。"

#: doc/classes/LineEdit.xml:244
msgid "Color of the [LineEdit]'s visual cursor (caret)."
msgstr "[LineEdit]可视光标(插入符号)的颜色。"

#: doc/classes/LineEdit.xml:247
msgid "Background used when [LineEdit] has GUI focus."
msgstr "当[LineEdit]具有图形用户界面焦点时使用的背景。"

#: doc/classes/LineEdit.xml:250
msgid "Font used for the text."
msgstr "文本使用的字体。"

#: doc/classes/LineEdit.xml:253
msgid "Default font color."
msgstr "默认字体颜色。"

#: doc/classes/LineEdit.xml:256
msgid "Font color for selected text (inside the selection rectangle)."
msgstr "选定文本的字体颜色(在选择矩形内)。"

#: doc/classes/LineEdit.xml:259
msgid "Font color when editing is disabled."
msgstr "禁用编辑时的字体颜色。"

#: doc/classes/LineEdit.xml:262
msgid ""
"Minimum horizontal space for the text (not counting the clear button and "
"content margins). This value is measured in count of space characters (i.e. "
"this amount of space characters can be displayed without scrolling)."
msgstr ""
"文本的最小水平空间(不包括清除按钮和内容边距)。该值以空格字符的计数来衡量(即无"
"需滚动即可显示空格字符的数量)。"

#: doc/classes/LineEdit.xml:265
msgid "Default background for the [LineEdit]."
msgstr "[LineEdit]的默认背景。"

#: doc/classes/LineEdit.xml:268
msgid ""
"Background used when [LineEdit] is in read-only mode ([member editable] is "
"set to [code]false[/code])."
msgstr ""
"[LineEdit]处于只读模式时使用的背景([member editable]设置为[code]false[/"
"code])。"

#: doc/classes/LineEdit.xml:271
msgid "Color of the selection rectangle."
msgstr "选择矩形的颜色。"

#: doc/classes/LineShape2D.xml:4
msgid "Line shape for 2D collisions."
msgstr "2D碰撞的线形形状。"

#: doc/classes/LineShape2D.xml:7
msgid ""
"Line shape for 2D collisions. It works like a 2D plane and will not allow "
"any physics body to go to the negative side. Not recommended for rigid "
"bodies, and usually not recommended for static bodies either because it "
"forces checks against it on every frame."
msgstr ""
"2D碰撞的线形。它像2D平面一样工作,不允许任何物理体向负面运动。不建议刚性体使"
"用,通常也不建议静态体使用,因为它会在每个框架上强制对其进行检查。"

#: doc/classes/LineShape2D.xml:15
msgid "The line's distance from the origin."
msgstr "直线与原点的距离。"

#: doc/classes/LineShape2D.xml:18
msgid "The line's normal."
msgstr "线性法线。"

#: doc/classes/LinkButton.xml:4
msgid "Simple button used to represent a link to some resource."
msgstr "简单的按钮,用于表示对某些资源的链接。"

#: doc/classes/LinkButton.xml:7
#, fuzzy
msgid ""
"This kind of button is primarily used when the interaction with the button "
"causes a context change (like linking to a web page).\n"
"See also [BaseButton] which contains common properties and methods "
"associated with this node."
msgstr "这种按钮主要用于按钮的交互导致上下文更改(如链接到网页)时使用。"

#: doc/classes/LinkButton.xml:21
msgid ""
"Determines when to show the underline. See [enum UnderlineMode] for options."
msgstr "决定何时显示下划线。参见[enum UnderlineMode]的选项。"

#: doc/classes/LinkButton.xml:26
msgid "The LinkButton will always show an underline at the bottom of its text."
msgstr "LinkButton 链接按钮将始终在其文本底部显示下划线。"

#: doc/classes/LinkButton.xml:29
msgid ""
"The LinkButton will show an underline at the bottom of its text when the "
"mouse cursor is over it."
msgstr "当鼠标光标悬停在 LinkButton 链接按钮的文本底部时,它会显示一个下划线。"

#: doc/classes/LinkButton.xml:32
msgid "The LinkButton will never show an underline at the bottom of its text."
msgstr "LinkButton链接按钮永远不会在其文本的底部显示下划线。"

#: doc/classes/LinkButton.xml:37
msgid ""
"[StyleBox] used when the [LinkButton] is focused. It is displayed over the "
"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
"visual effect."
msgstr ""
"当 [LinkButton] 被聚焦时使用的样式盒 [StyleBox]。它显示在当前的[StyleBox]上,"
"所以使用[StyleBoxEmpty]将只是禁用焦点的视觉效果。"

#: doc/classes/LinkButton.xml:40
msgid "[Font] of the [LinkButton]'s text."
msgstr "[LinkButton]文本的字体[Font]。"

#: doc/classes/LinkButton.xml:43
msgid "Default text [Color] of the [LinkButton]."
msgstr "[LinkButton]默认的字体颜色[Color]。"

#: doc/classes/LinkButton.xml:46
msgid "Text [Color] used when the [LinkButton] is being hovered."
msgstr "当[LinkButton]被悬停时使用的文本颜色[Color]。"

#: doc/classes/LinkButton.xml:49
msgid "Text [Color] used when the [LinkButton] is being pressed."
msgstr "当[LinkButton]被按下时使用的文本颜色[Color]。"

#: doc/classes/LinkButton.xml:52
msgid "The vertical space between the baseline of text and the underline."
msgstr "文本基线和下划线之间的垂直空间。"

#: doc/classes/Listener.xml:4 doc/classes/Listener2D.xml:4
msgid "Overrides the location sounds are heard from."
msgstr "覆盖听到声音的位置。"

#: doc/classes/Listener.xml:7
#, fuzzy
msgid ""
"Once added to the scene tree and enabled using [method make_current], this "
"node will override the location sounds are heard from. This can be used to "
"listen from a location different from the [Camera]."
msgstr ""
"一旦添加到场景树并启用[make_current]方法,该节点将覆盖听到声音的位置。这可用"
"于从不同于[Camera3D]的位置收听。\n"
"[b]注意:[/b]此节点还没有2D对等项。"

#: doc/classes/Listener.xml:15
msgid "Disables the listener to use the current camera's listener instead."
msgstr "禁用监听器,用当前摄像机的监听器代替。"

#: doc/classes/Listener.xml:21
msgid "Returns the listener's global orthonormalized [Transform]."
msgstr "返回监听器的全局正则化[Transform]。"

#: doc/classes/Listener.xml:27
#, fuzzy
msgid ""
"Returns [code]true[/code] if the listener was made current using [method "
"make_current], [code]false[/code] otherwise.\n"
"[b]Note:[/b] There may be more than one Listener marked as \"current\" in "
"the scene tree, but only the one that was made current last will be used."
msgstr ""
"如果使用[make_current]方法使监听器成为当前状态,返回[code]true[/code],否则返"
"回[code]false[/code]。\n"
"[b]注意:[/b] 在场景树中可能有不止一个Listener3D被标记为 \"当前\",但只有最后"
"被变成当前的那个才会被使用。"

#: doc/classes/Listener.xml:34
msgid "Enables the listener. This will override the current camera's listener."
msgstr "启用监听器。这将覆盖当前摄像机的监听器。"

#: doc/classes/Listener2D.xml:7
#, fuzzy
msgid ""
"Once added to the scene tree and enabled using [method make_current], this "
"node will override the location sounds are heard from. Only one [Listener2D] "
"can be current. Using [method make_current] will disable the previous "
"[Listener2D].\n"
"If there is no active [Listener2D] in the current [Viewport], center of the "
"screen will be used as a hearing point for the audio. [Listener2D] needs to "
"be inside [SceneTree] to function."
msgstr ""
"一旦添加到场景树并启用[make_current]方法,该节点将覆盖听到声音的位置。这可用"
"于从不同于[Camera3D]的位置收听。\n"
"[b]注意:[/b]此节点还没有2D对等项。"

#: doc/classes/Listener2D.xml:16
msgid ""
"Disables the [Listener2D]. If it's not set as current, this method will have "
"no effect."
msgstr ""

#: doc/classes/Listener2D.xml:22
#, fuzzy
msgid "Returns [code]true[/code] if this [Listener2D] is currently active."
msgstr "如果该对等体当前已连接,则返回[code]true[/code]。"

#: doc/classes/Listener2D.xml:28
msgid ""
"Makes the [Listener2D] active, setting it as the hearing point for the "
"sounds. If there is already another active [Listener2D], it will be "
"disabled.\n"
"This method will have no effect if the [Listener2D] is not added to "
"[SceneTree]."
msgstr ""

#: doc/classes/MainLoop.xml:4
msgid "Abstract base class for the game's main loop."
msgstr "游戏主循环的抽象基类。"

#: doc/classes/MainLoop.xml:7
#, fuzzy
msgid ""
"[MainLoop] is the abstract base class for a Godot project's game loop. It is "
"inherited by [SceneTree], which is the default game loop implementation used "
"in Godot projects, though it is also possible to write and use one's own "
"[MainLoop] subclass instead of the scene tree.\n"
"Upon the application start, a [MainLoop] implementation must be provided to "
"the OS; otherwise, the application will exit. This happens automatically "
"(and a [SceneTree] is created) unless a main [Script] is provided from the "
"command line (with e.g. [code]godot -s my_loop.gd[/code], which should then "
"be a [MainLoop] implementation.\n"
"Here is an example script implementing a simple [MainLoop]:\n"
"[codeblock]\n"
"extends MainLoop\n"
"\n"
"var time_elapsed = 0\n"
"var keys_typed = []\n"
"var quit = false\n"
"\n"
"func _initialize():\n"
"    print(\"Initialized:\")\n"
"    print(\"  Starting time: %s\" % str(time_elapsed))\n"
"\n"
"func _idle(delta):\n"
"    time_elapsed += delta\n"
"    # Return true to end the main loop.\n"
"    return quit\n"
"\n"
"func _input_event(event):\n"
"    # Record keys.\n"
"    if event is InputEventKey and event.pressed and !event.echo:\n"
"        keys_typed.append(OS.get_scancode_string(event.scancode))\n"
"        # Quit on Escape press.\n"
"        if event.scancode == KEY_ESCAPE:\n"
"            quit = true\n"
"    # Quit on any mouse click.\n"
"    if event is InputEventMouseButton:\n"
"        quit = true\n"
"\n"
"func _finalize():\n"
"    print(\"Finalized:\")\n"
"    print(\"  End time: %s\" % str(time_elapsed))\n"
"    print(\"  Keys typed: %s\" % var2str(keys_typed))\n"
"[/codeblock]"
msgstr ""
"[MainLoop]是Godot项目中游戏循环的抽象基类。它被[SceneTree]继承,后者是Godot项"
"目中使用的默认游戏循环实现,不过也可以编写和使用自己的[MainLoop]子类来代替场"
"景树中的实现。\n"
"在应用程序启动时,必须向操作系统提供一个[MainLoop]实现;否则,应用程序将退"
"出。这将自动发生,并且会自动创建一个[SceneTree],除非从命令行提供一个主要的"
"[Script](例如用[code]godot -s my_loop.gd[/code]),并且它是一个[MainLoop]实"
"现。\n"
"下面是一个实现简单[MainLoop]的脚本例子。\n"
"[b]FIXME:[/b] 在DisplayServer拆分和输入重构后不再有效。\n"
"[codeblock]\n"
"extends MainLoop\n"
"\n"
"var time_elapsed = 0\n"
"var keys_typed = []\n"
"var quit = false\n"
"\n"
"func _initialize():\n"
"    print(\"Initialized:\")\n"
"    print(\"  Starting time: %s\" % str(time_elapsed))\n"
"\n"
"func _idle(delta):\n"
"    time_elapsed += delta\n"
"    # Return true to end the main loop.\n"
"    return quit\n"
"\n"
"func _input_event(event):\n"
"    # Record keys.\n"
"    if event is InputEventKey and event.pressed and !event.echo:\n"
"        keys_typed.append(OS.get_keycode_string(event.keycode))\n"
"        # Quit on Escape press.\n"
"        if event.keycode == KEY_ESCAPE:\n"
"            quit = true\n"
"    # Quit on any mouse click.\n"
"    if event is InputEventMouseButton:\n"
"        quit = true\n"
"\n"
"func _finalize():\n"
"    print(\"Finalized:\")\n"
"    print(\"  End time: %s\" % str(time_elapsed))\n"
"    print(\"  Keys typed: %s\" % var2str(keys_typed))\n"
"[/codeblock]"

#: doc/classes/MainLoop.xml:51
#, fuzzy
msgid ""
"Called when files are dragged from the OS file manager and dropped in the "
"game window. The arguments are a list of file paths and the identifier of "
"the screen where the drag originated."
msgstr ""
"当文件从操作系统的文件管理器中被拖到游戏窗口中时发出。参数是一个文件路径列表"
"和拖动文件的屏幕标识符。"

#: doc/classes/MainLoop.xml:57
msgid "Called before the program exits."
msgstr "在程序退出前调用。"

#: doc/classes/MainLoop.xml:65
msgid ""
"Called when the user performs an action in the system global menu (e.g. the "
"Mac OS menu bar)."
msgstr ""

#: doc/classes/MainLoop.xml:72
msgid ""
"Called each idle frame with the time since the last idle frame as argument "
"(in seconds). Equivalent to [method Node._process].\n"
"If implemented, the method must return a boolean value. [code]true[/code] "
"ends the main loop, while [code]false[/code] lets it proceed to the next "
"frame."
msgstr ""
"在每个空闲帧中调用,参数为自上一个空闲帧以来的时间(以秒为单位)。相当于"
"[method Node._process]。\n"
"如果实施,该方法必须返回一个布尔值。[code]true[/code] 结束主循环,而"
"[code]false[/code] 让它进入下一帧。"

#: doc/classes/MainLoop.xml:79
msgid "Called once during initialization."
msgstr "在初始化时调用一次。"

#: doc/classes/MainLoop.xml:86
msgid "Called whenever an [InputEvent] is received by the main loop."
msgstr ""

#: doc/classes/MainLoop.xml:93
msgid ""
"Deprecated callback, does not do anything. Use [method _input_event] to "
"parse text input. Will be removed in Godot 4.0."
msgstr ""

#: doc/classes/MainLoop.xml:100
#, fuzzy
msgid ""
"Called each physics frame with the time since the last physics frame as "
"argument ([code]delta[/code], in seconds). Equivalent to [method Node."
"_physics_process].\n"
"If implemented, the method must return a boolean value. [code]true[/code] "
"ends the main loop, while [code]false[/code] lets it proceed to the next "
"frame."
msgstr ""
"在每个物理帧中调用,参数为自上一个物理帧以来的时间(单位:秒)。相当于"
"[method Node._physics_process]。\n"
"如果实施,该方法必须返回一个布尔值。[code]true[/code] 结束主循环,而"
"[code]false[/code] 让它进入下一帧。"

#: doc/classes/MainLoop.xml:107
msgid ""
"Should not be called manually, override [method _finalize] instead. Will be "
"removed in Godot 4.0."
msgstr "不应手动调用,而应覆盖[method _finalize]。在Godot 4.0中会被删除。"

#: doc/classes/MainLoop.xml:114
msgid ""
"Should not be called manually, override [method _idle] instead. Will be "
"removed in Godot 4.0."
msgstr "不应手动调用,而应覆盖[method _idle]。在Godot 4.0中会被删除。"

#: doc/classes/MainLoop.xml:120
msgid ""
"Should not be called manually, override [method _initialize] instead. Will "
"be removed in Godot 4.0."
msgstr "不应手动调用,而应覆盖[method _initialize]。在Godot 4.0中会被删除。"

#: doc/classes/MainLoop.xml:127
#, fuzzy
msgid ""
"Should not be called manually, override [method _input_event] instead. Will "
"be removed in Godot 4.0."
msgstr "不应手动调用,而应覆盖[method _idle]。在Godot 4.0中会被删除。"

#: doc/classes/MainLoop.xml:134
#, fuzzy
msgid ""
"Should not be called manually, override [method _input_text] instead. Will "
"be removed in Godot 4.0."
msgstr "不应手动调用,而应覆盖[method _idle]。在Godot 4.0中会被删除。"

#: doc/classes/MainLoop.xml:141
msgid ""
"Should not be called manually, override [method _iteration] instead. Will be "
"removed in Godot 4.0."
msgstr "不应手动调用,而应覆盖[method _iteration]。在Godot 4.0中会被删除。"

#: doc/classes/MainLoop.xml:150
msgid "Emitted when a user responds to a permission request."
msgstr "当用户对权限请求作出反应时发出。"

#: doc/classes/MainLoop.xml:156 doc/classes/Node.xml:790
msgid ""
"Notification received from the OS when the mouse enters the game window.\n"
"Implemented on desktop and web platforms."
msgstr ""
"当鼠标进入游戏窗口时从操作系统收到的通知。\n"
"在桌面和网络平台上实现。"

#: doc/classes/MainLoop.xml:160 doc/classes/Node.xml:794
msgid ""
"Notification received from the OS when the mouse leaves the game window.\n"
"Implemented on desktop and web platforms."
msgstr ""
"当鼠标离开游戏窗口时从操作系统收到的通知。\n"
"在桌面和网络平台上实现。"

#: doc/classes/MainLoop.xml:164 doc/classes/Node.xml:798
#, fuzzy
msgid ""
"Notification received from the OS when the game window is focused.\n"
"Implemented on all platforms."
msgstr ""
"当鼠标进入游戏窗口时从操作系统收到的通知。\n"
"在桌面和网络平台上实现。"

#: doc/classes/MainLoop.xml:168 doc/classes/Node.xml:802
#, fuzzy
msgid ""
"Notification received from the OS when the game window is unfocused.\n"
"Implemented on all platforms."
msgstr ""
"当鼠标进入游戏窗口时从操作系统收到的通知。\n"
"在桌面和网络平台上实现。"

#: doc/classes/MainLoop.xml:172 doc/classes/Node.xml:806
#, fuzzy
msgid ""
"Notification received from the OS when a quit request is sent (e.g. closing "
"the window with a \"Close\" button or Alt+F4).\n"
"Implemented on desktop platforms."
msgstr ""
"当发送关闭请求时从操作系统收到的通知(例如用 \"关闭 \"按钮或[kbd]Alt + F4[/"
"kbd]关闭窗口)。\n"
"在桌面平台上实现。"

#: doc/classes/MainLoop.xml:176 doc/classes/Node.xml:810
msgid ""
"Notification received from the OS when a go back request is sent (e.g. "
"pressing the \"Back\" button on Android).\n"
"Specific to the Android platform."
msgstr ""
"当发出返回请求时,从操作系统收到的通知(例如,在安卓系统上按下 \"返回 \"按"
"钮)。\n"
"安卓平台特供。"

#: doc/classes/MainLoop.xml:180 doc/classes/Node.xml:814
#, fuzzy
msgid ""
"Notification received from the OS when an unfocus request is sent (e.g. "
"another OS window wants to take the focus).\n"
"No supported platforms currently send this notification."
msgstr ""
"当发送关闭请求时从操作系统收到的通知(例如用 \"关闭 \"按钮或[kbd]Alt + F4[/"
"kbd]关闭窗口)。\n"
"在桌面平台上实现。"

#: doc/classes/MainLoop.xml:184 doc/classes/Node.xml:818
msgid ""
"Notification received from the OS when the application is exceeding its "
"allocated memory.\n"
"Specific to the iOS platform."
msgstr ""
"当应用程序超过其分配的内存时,从操作系统收到的通知。\n"
"专用于iOS平台。"

#: doc/classes/MainLoop.xml:188 doc/classes/Node.xml:822
msgid ""
"Notification received when translations may have changed. Can be triggered "
"by the user changing the locale. Can be used to respond to language changes, "
"for example to change the UI strings on the fly. Useful when working with "
"the built-in translation support, like [method Object.tr]."
msgstr ""
"当翻译可能发生变化时收到的通知。可以由用户改变语言环境来触发。可以用来响应语"
"言的变化,例如,在飞行中改变UI字符串。在使用内置的翻译支持时很有用,比如"
"[method Object.tr]。"

#: doc/classes/MainLoop.xml:191 doc/classes/Node.xml:825
msgid ""
"Notification received from the OS when a request for \"About\" information "
"is sent.\n"
"Specific to the macOS platform."
msgstr ""
"当发送 \"关于 \"信息的请求时,从操作系统收到的通知。\n"
"特定于macOS平台。"

#: doc/classes/MainLoop.xml:195 doc/classes/Node.xml:829
msgid ""
"Notification received from Godot's crash handler when the engine is about to "
"crash.\n"
"Implemented on desktop platforms if the crash handler is enabled."
msgstr ""
"当引擎即将崩溃时,从Godot的崩溃处理程序收到的通知。\n"
"如果崩溃处理程序被启用,这只会在桌面平台上实现。"

#: doc/classes/MainLoop.xml:199 doc/classes/Node.xml:833
msgid ""
"Notification received from the OS when an update of the Input Method Engine "
"occurs (e.g. change of IME cursor position or composition string).\n"
"Specific to the macOS platform."
msgstr ""
"当输入法引擎发生更新时,从操作系统收到的通知(例如,IME光标位置或组成字符串的"
"变化)。\n"
"特定于macOS平台。"

#: doc/classes/MainLoop.xml:203 doc/classes/Node.xml:837
#, fuzzy
msgid ""
"Notification received from the OS when the app is resumed.\n"
"Specific to the Android platform."
msgstr ""
"应用恢复时从操作系统收到的通知。\n"
"特定于安卓平台。"

#: doc/classes/MainLoop.xml:207 doc/classes/Node.xml:841
#, fuzzy
msgid ""
"Notification received from the OS when the app is paused.\n"
"Specific to the Android platform."
msgstr ""
"应用程序暂停时从操作系统收到的通知。\n"
"特定于安卓平台。"

#: doc/classes/MarginContainer.xml:4
msgid "Simple margin container."
msgstr "简单边距容器。"

#: doc/classes/MarginContainer.xml:7
#, fuzzy
msgid ""
"Adds a top, left, bottom, and right margin to all [Control] nodes that are "
"direct children of the container. To control the [MarginContainer]'s margin, "
"use the [code]margin_*[/code] theme properties listed below.\n"
"[b]Note:[/b] Be careful, [Control] margin values are different than the "
"constant margin values. If you want to change the custom margin values of "
"the [MarginContainer] by code, you should use the following examples:\n"
"[codeblock]\n"
"# This code sample assumes the current script is extending MarginContainer.\n"
"var margin_value = 100\n"
"add_constant_override(\"margin_top\", margin_value)\n"
"add_constant_override(\"margin_left\", margin_value)\n"
"add_constant_override(\"margin_bottom\", margin_value)\n"
"add_constant_override(\"margin_right\", margin_value)\n"
"[/codeblock]"
msgstr ""
"为所有作为容器的直接子节点的[Control]节点添加顶部、左侧、底部和右侧的边距。要"
"控制[MarginContainer]的边距,请使用下面列出的[code]margin_*[/code]主题属"
"性。\n"
"[b]注意:[/b]要小心,[Control]的margin值与常量margin值不同。如果你想通过代码"
"改变[MarginContainer]的自定义边距值,你应该使用下面的例子。\n"
"[codeeblock]\n"
"var margin_value = 100\n"
"set(\"custom_constants/margin_top\", margin_value)\n"
"set(\"custom_constants/margin_left\", margin_value)\n"
"set(\"custom_constants/margin_bottom\", margin_value)\n"
"set(\"custom_constants/margin_right\", margin_value)\n"
"[/codeblock]"

#: doc/classes/MarginContainer.xml:26
msgid ""
"All direct children of [MarginContainer] will have a bottom margin of "
"[code]margin_bottom[/code] pixels."
msgstr ""
"所有[MarginContainer]的直接子代将有[code]margin_bottom[/code]像素的底边距。"

#: doc/classes/MarginContainer.xml:29
msgid ""
"All direct children of [MarginContainer] will have a left margin of "
"[code]margin_left[/code] pixels."
msgstr ""
"所有[MarginContainer]的直接子代将有[code]margin_left[/code]像素的左边距。"

#: doc/classes/MarginContainer.xml:32
msgid ""
"All direct children of [MarginContainer] will have a right margin of "
"[code]margin_right[/code] pixels."
msgstr ""
"所有[MarginContainer]的直接子代将有[code]margin_right[/code]像素的右边距。"

#: doc/classes/MarginContainer.xml:35
msgid ""
"All direct children of [MarginContainer] will have a top margin of "
"[code]margin_top[/code] pixels."
msgstr ""
"所有[MarginContainer]的直接子代将有[code]margin_right[/code]像素的顶边距。"

#: doc/classes/Marshalls.xml:4
msgid "Data transformation (marshalling) and encoding helpers."
msgstr "数据转换(marshalling)和编码帮助器。"

#: doc/classes/Marshalls.xml:7
msgid "Provides data transformation and encoding utility functions."
msgstr "提供数据转换和编码的实用功能。"

#: doc/classes/Marshalls.xml:16
#, fuzzy
msgid ""
"Returns a decoded [PoolByteArray] corresponding to the Base64-encoded string "
"[code]base64_str[/code]."
msgstr ""
"返回对应于Base64编码的字符串[code]base64_str[/code]的解码[PackedByteArray]。"

#: doc/classes/Marshalls.xml:23
msgid ""
"Returns a decoded string corresponding to the Base64-encoded string "
"[code]base64_str[/code]."
msgstr ""
"返回一个与Base64编码的字符串[code]base64_str[/code]相对应的解码字符串。"

#: doc/classes/Marshalls.xml:31
msgid ""
"Returns a decoded [Variant] corresponding to the Base64-encoded string "
"[code]base64_str[/code]. If [code]allow_objects[/code] is [code]true[/code], "
"decoding objects is allowed.\n"
"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
"Do not use this option if the serialized object comes from untrusted sources "
"to avoid potential security threats such as remote code execution."
msgstr ""
"返回一个对应于Base64编码的字符串[code]base64_str[/code]的解码[Variant]。如果"
"[code]allow_objects[/code]是[code]true[/code],则允许对对象进行解码。\n"
"[b]警告:[/b] 反序列化的对象可能包含会被执行的代码。如果序列化的对象来自不受"
"信任的来源,请不要使用这个选项,以避免潜在的安全威胁,如远程代码执行。"

#: doc/classes/Marshalls.xml:39
#, fuzzy
msgid "Returns a Base64-encoded string of a given [PoolByteArray]."
msgstr "返回给定[PackedByteArray]的Base64编码的字符串。"

#: doc/classes/Marshalls.xml:46
msgid ""
"Returns a Base64-encoded string of the UTF-8 string [code]utf8_str[/code]."
msgstr "返回UTF-8字符串[code]utf8_str[/code]的一个Base64编码的字符串。"

#: doc/classes/Marshalls.xml:54
msgid ""
"Returns a Base64-encoded string of the [Variant] [code]variant[/code]. If "
"[code]full_objects[/code] is [code]true[/code], encoding objects is allowed "
"(and can potentially include code)."
msgstr ""
"返回一个Base64编码的[Variant][code]variant[/code]的字符串。如果"
"[code]full_objects[/code]是[code]true[/code],允许对对象进行编码(有可能包括"
"代码)。"

#: doc/classes/Material.xml:4
msgid "Abstract base [Resource] for coloring and shading geometry."
msgstr "用于为几何体上色(Coloring)和着色(Shading)的[Resource]抽象子类。"

#: doc/classes/Material.xml:7
#, fuzzy
msgid ""
"Material is a base [Resource] used for coloring and shading geometry. All "
"materials inherit from it and almost all [VisualInstance] derived nodes "
"carry a Material. A few flags and parameters are shared between all material "
"types and are configured here."
msgstr ""
"材质是一个基础[Resource],用于给几何体上色(Coloring)和着色(Shading)。所有的材"
"质都继承自它,几乎所有的[VisualInstance3D]派生节点都带有一个材质。有几个标志"
"和参数在所有材质类型之间是共享的,并在这里配置。"

#: doc/classes/Material.xml:17
#, fuzzy
msgid ""
"Sets the [Material] to be used for the next pass. This renders the object "
"again using a different material.\n"
"[b]Note:[/b] This only applies to [SpatialMaterial]s and [ShaderMaterial]s "
"with type \"Spatial\"."
msgstr ""
"设置下一次使用的[Material]。这将使用不同的材质再次渲染对象。\n"
"[b]注意:[/b]只适用于[StandardMaterial3D]和[ShaderMaterial]的 \"Spatial \"类"
"型。"

#: doc/classes/Material.xml:21
#, fuzzy
msgid ""
"Sets the render priority for transparent objects in 3D scenes. Higher "
"priority objects will be sorted in front of lower priority objects.\n"
"[b]Note:[/b] This only applies to sorting of transparent objects. This will "
"not impact how transparent objects are sorted relative to opaque objects. "
"This is because opaque objects are not sorted, while transparent objects are "
"sorted from back to front (subject to priority)."
msgstr ""
"设置3D场景中透明物体的渲染优先级。高优先级的物体将被排序在低优先级的物体前"
"面。\n"
"[b]注意:[/b]这只适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排"
"序方式。这是因为不透明物体不被排序,而透明物体是从后往前排序的(取决于优先"
"级)。"

#: doc/classes/Material.xml:27
msgid "Maximum value for the [member render_priority] parameter."
msgstr "[member render_priority]参数的最大值。"

#: doc/classes/Material.xml:30
msgid "Minimum value for the [member render_priority] parameter."
msgstr "[member render_priority]参数的最小值。"

#: doc/classes/MenuButton.xml:4
msgid "Special button that brings up a [PopupMenu] when clicked."
msgstr "特殊按钮,点击后会弹出一个[PopupMenu]。"

#: doc/classes/MenuButton.xml:7
#, fuzzy
msgid ""
"Special button that brings up a [PopupMenu] when clicked.\n"
"New items can be created inside this [PopupMenu] using [code]get_popup()."
"add_item(\"My Item Name\")[/code]. You can also create them directly from "
"the editor. To do so, select the [MenuButton] node, then in the toolbar at "
"the top of the 2D editor, click [b]Items[/b] then click [b]Add[/b] in the "
"popup. You will be able to give each item new properties.\n"
"See also [BaseButton] which contains common properties and methods "
"associated with this node."
msgstr ""
"特殊按钮,点击后会出现一个[PopupMenu]。\n"
"使用[code]get_popup().add_item(\"My Item Name\")[/code]可以在这个[PopupMenu]"
"中创建新项。你也可以直接从编辑器中创建它们。要做到这一点,选择[MenuButton]节"
"点,然后在2D编辑器顶部的工具栏中,点击[b]Items[/b],然后在弹出的窗口中点击"
"[b]Add[/b]。你将能够赋予每个项新的属性。"

#: doc/classes/MenuButton.xml:17 doc/classes/OptionButton.xml:86
msgid "Returns the [PopupMenu] contained in this button."
msgstr "返回该按钮中包含的[PopupMenu]。"

#: doc/classes/MenuButton.xml:24
msgid ""
"If [code]true[/code], shortcuts are disabled and cannot be used to trigger "
"the button."
msgstr "如果[code]true[/code],快捷方式将被禁用,无法用于触发按钮。"

#: doc/classes/MenuButton.xml:33
msgid ""
"If [code]true[/code], when the cursor hovers above another [MenuButton] "
"within the same parent which also has [code]switch_on_hover[/code] enabled, "
"it will close the current [MenuButton] and open the other one."
msgstr ""
"如果[code]true[/code],当光标悬停在同一父级中也启用了[code]switch_on_hover[/"
"code]的另一个[MenuButton]上方时,它将关闭当前的[MenuButton]并打开另一个。"

#: doc/classes/MenuButton.xml:40
#, fuzzy
msgid "Emitted when [PopupMenu] of this MenuButton is about to show."
msgstr "当这个MenuButton的[PopupMenu]即将显示时发出。"

#: doc/classes/MenuButton.xml:48
msgid "[StyleBox] used when the [MenuButton] is disabled."
msgstr "当[MenuButton]被禁用时使用的[StyleBox]。"

#: doc/classes/MenuButton.xml:51
msgid ""
"[StyleBox] used when the [MenuButton] is focused. It is displayed over the "
"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
"visual effect."
msgstr ""
"当[MenuButton]被聚焦时使用的[StyleBox]。它显示在当前的[StyleBox]上,所以使用"
"[StyleBoxEmpty]将只是禁用焦点的视觉效果。"

#: doc/classes/MenuButton.xml:54
msgid "[Font] of the [MenuButton]'s text."
msgstr "[MenuButton]文本的[Font]。"

#: doc/classes/MenuButton.xml:57
msgid "Default text [Color] of the [MenuButton]."
msgstr "[MenuButton]默认的字体[Color]颜色。"

#: doc/classes/MenuButton.xml:60
msgid "Text [Color] used when the [MenuButton] is disabled."
msgstr "[MenuButton]被禁用时的字体[Color]颜色。"

#: doc/classes/MenuButton.xml:63
msgid "Text [Color] used when the [MenuButton] is being hovered."
msgstr "当鼠标在[MenuButton]上徘徊时使用的字体[Color]颜色。"

#: doc/classes/MenuButton.xml:66
msgid "Text [Color] used when the [MenuButton] is being pressed."
msgstr "当[MenuButton]被按下时使用的字体[Color]颜色。"

#: doc/classes/MenuButton.xml:69
msgid "[StyleBox] used when the [MenuButton] is being hovered."
msgstr "当鼠标在[MenuButton]上徘徊时使用的[StyleBox]样式盒。"

#: doc/classes/MenuButton.xml:72
msgid "The horizontal space between [MenuButton]'s icon and text."
msgstr "[MenuButton]的文字和图标之间的水平间隙。"

#: doc/classes/MenuButton.xml:75
msgid "Default [StyleBox] for the [MenuButton]."
msgstr "[MenuButton]的默认[StyleBox]样式盒。"

#: doc/classes/MenuButton.xml:78
msgid "[StyleBox] used when the [MenuButton] is being pressed."
msgstr "[MenuButton]被按下时的[StyleBox]样式盒。"

#: doc/classes/Mesh.xml:4
msgid "A [Resource] that contains vertex array-based geometry."
msgstr "一种包含基于顶点数组的几何资源。"

#: doc/classes/Mesh.xml:7
msgid ""
"Mesh is a type of [Resource] that contains vertex array-based geometry, "
"divided in [i]surfaces[/i]. Each surface contains a completely separate "
"array and a material used to draw it. Design wise, a mesh with multiple "
"surfaces is preferred to a single surface, because objects created in 3D "
"editing software commonly contain multiple materials."
msgstr ""
"网格是一种包含了基于顶点数组的几何资源。网格被分为各种[i]平面[/i],每一个平面"
"包含了一个完整的、单独的顶点数组和材质用来绘制它。通过明智的设计,一个由多个"
"面组成的网格胜过单个面的,这是因为在3D编辑软件中,一个物体通常包含多种材质。"

#: doc/classes/Mesh.xml:21
msgid ""
"Calculate a [ConvexPolygonShape] from the mesh.\n"
"If [code]clean[/code] is [code]true[/code] (default), duplicate and interior "
"vertices are removed automatically. You can set it to [code]false[/code] to "
"make the process faster if not needed.\n"
"If [code]simplify[/code] is [code]true[/code], the geometry can be further "
"simplified to reduce the amount of vertices. Disabled by default."
msgstr ""

#: doc/classes/Mesh.xml:30
msgid ""
"Calculate an outline mesh at a defined offset (margin) from the original "
"mesh.\n"
"[b]Note:[/b] This method typically returns the vertices in reverse order (e."
"g. clockwise to counterclockwise)."
msgstr ""
"以一定的offset(边距),计算出该网格的外轮廓。\n"
"[b]Note:[/b] 这个方法实际上反序返回顶点(例如输入顺时针,返回逆时针)。"

#: doc/classes/Mesh.xml:37
#, fuzzy
msgid "Calculate a [ConcavePolygonShape] from the mesh."
msgstr "从该网格中计算出一个[ConcavePolygonShape3D]凹多边形。"

#: doc/classes/Mesh.xml:43
msgid "Generate a [TriangleMesh] from the mesh."
msgstr "从网格生成[TriangleMesh]。"

#: doc/classes/Mesh.xml:49
#, fuzzy
msgid ""
"Returns the smallest [AABB] enclosing this mesh in local space. Not affected "
"by [code]custom_aabb[/code]. See also [method VisualInstance."
"get_transformed_aabb].\n"
"[b]Note:[/b] This is only implemented for [ArrayMesh] and [PrimitiveMesh]."
msgstr ""
"返回能够包含该网格的最小[AABB]碰撞盒。它不受[code]custom_aabb[/code]属性影"
"响。\n"
"[b]Note:[/b] 这个方法只为[ArrayMesh]和[PrimitiveMesh]实现。"

#: doc/classes/Mesh.xml:56
msgid ""
"Returns all the vertices that make up the faces of the mesh. Each three "
"vertices represent one triangle."
msgstr "返回所有在这个网格中,构成面的顶点。每三个顶点代表一个三角形。"

#: doc/classes/Mesh.xml:62
msgid "Returns the amount of surfaces that the [Mesh] holds."
msgstr "返回该网格的面数。"

#: doc/classes/Mesh.xml:69
msgid ""
"Returns the arrays for the vertices, normals, uvs, etc. that make up the "
"requested surface (see [method ArrayMesh.add_surface_from_arrays])."
msgstr ""
"返回所有组成面所需的东西构成的数组的数组,例如顶点,法向,UV等。(参见"
"[method ArrayMesh.add_surface_from_arrays])。"

#: doc/classes/Mesh.xml:76
msgid "Returns the blend shape arrays for the requested surface."
msgstr "返回所需面的混合形状数组。"

#: doc/classes/Mesh.xml:83
msgid ""
"Returns a [Material] in a given surface. Surface is rendered using this "
"material."
msgstr "返回给定面的[Material]材质。面将由该材质来渲染。"

#: doc/classes/Mesh.xml:91
msgid ""
"Sets a [Material] for a given surface. Surface will be rendered using this "
"material."
msgstr "设置给定面的[Material]材质。该面将会使用此材质渲染。"

#: doc/classes/Mesh.xml:97
msgid ""
"Sets a hint to be used for lightmap resolution in [BakedLightmap]. Overrides "
"[member BakedLightmap.default_texels_per_unit]."
msgstr ""

#: doc/classes/Mesh.xml:102
msgid "Render array as points (one vertex equals one point)."
msgstr "将顶点数组渲染为点阵(一个顶点对应一个点阵中的点)。"

#: doc/classes/Mesh.xml:105
msgid "Render array as lines (every two vertices a line is created)."
msgstr "将顶点组渲染为线条(每两个顶点之间创建一条连线)。"

#: doc/classes/Mesh.xml:108
msgid "Render array as line strip."
msgstr "将顶点组渲染为线条。"

#: doc/classes/Mesh.xml:111
#, fuzzy
msgid "Render array as line loop (like line strip, but closed)."
msgstr "将顶点组渲染为线条。"

#: doc/classes/Mesh.xml:114
msgid "Render array as triangles (every three vertices a triangle is created)."
msgstr "将顶点组渲染为三角形(每三个相邻顶点创建一个三角形)。"

#: doc/classes/Mesh.xml:117
msgid "Render array as triangle strips."
msgstr "将顶点组渲染为三角形线框。"

#: doc/classes/Mesh.xml:120
#, fuzzy
msgid "Render array as triangle fans."
msgstr "将顶点组渲染为三角形线框。"

#: doc/classes/Mesh.xml:123 doc/classes/VisualServer.xml:3362
msgid "Blend shapes are normalized."
msgstr "混合形状是被归一化了的。"

#: doc/classes/Mesh.xml:126 doc/classes/VisualServer.xml:3365
msgid "Blend shapes are relative to base weight."
msgstr "混合形状相对于基础的权重。"

#: doc/classes/Mesh.xml:129
msgid ""
"Mesh array contains vertices. All meshes require a vertex array so this "
"should always be present."
msgstr ""
"网格组包含许多顶点。每一个网格都需要一个顶点数组,所以这应该持久化储存。"

#: doc/classes/Mesh.xml:132
msgid "Mesh array contains normals."
msgstr "网格组包含法线。"

#: doc/classes/Mesh.xml:135
msgid "Mesh array contains tangents."
msgstr "网格组包含切向。"

#: doc/classes/Mesh.xml:138
msgid "Mesh array contains colors."
msgstr "网格组包含颜色。"

#: doc/classes/Mesh.xml:141
msgid "Mesh array contains UVs."
msgstr "网格组包含UV。"

#: doc/classes/Mesh.xml:144
msgid "Mesh array contains second UV."
msgstr "网格组包含第二套UV。"

#: doc/classes/Mesh.xml:147
msgid "Mesh array contains bones."
msgstr "网格组包含骨骼。"

#: doc/classes/Mesh.xml:150
msgid "Mesh array contains bone weights."
msgstr "网格组包含骨骼权重。"

#: doc/classes/Mesh.xml:153
msgid "Mesh array uses indices."
msgstr "网格组使用索引。"

#: doc/classes/Mesh.xml:156
msgid ""
"Used internally to calculate other [code]ARRAY_COMPRESS_*[/code] enum "
"values. Do not use."
msgstr ""

#: doc/classes/Mesh.xml:159 doc/classes/VisualServer.xml:3299
#, fuzzy
msgid "Flag used to mark a compressed (half float) vertex array."
msgstr "曾经用于标记压缩(半精度浮点)切向数组的Flag。"

#: doc/classes/Mesh.xml:162 doc/classes/VisualServer.xml:3302
msgid "Flag used to mark a compressed (half float) normal array."
msgstr "曾经用于标记压缩(半精度浮点)法向数组的 Flag。"

#: doc/classes/Mesh.xml:165 doc/classes/VisualServer.xml:3305
msgid "Flag used to mark a compressed (half float) tangent array."
msgstr "曾经用于标记压缩(半精度浮点)切向数组的Flag。"

#: doc/classes/Mesh.xml:168 doc/classes/VisualServer.xml:3308
msgid "Flag used to mark a compressed (half float) color array."
msgstr "曾用于标记压缩(半精度浮点)颜色数组的Flag。"

#: doc/classes/Mesh.xml:171 doc/classes/VisualServer.xml:3311
msgid "Flag used to mark a compressed (half float) UV coordinates array."
msgstr "曾用于标记压缩(半精度浮点)UV 坐标数组的 Flag。"

#: doc/classes/Mesh.xml:174 doc/classes/VisualServer.xml:3314
msgid ""
"Flag used to mark a compressed (half float) UV coordinates array for the "
"second UV coordinates."
msgstr "曾用于标记第二套UV坐标的压缩(半精度浮点)UV坐标数组的Flag。"

#: doc/classes/Mesh.xml:177 doc/classes/VisualServer.xml:3317
#, fuzzy
msgid "Flag used to mark a compressed bone array."
msgstr "曾用于标记压缩索引数组的Flag。"

#: doc/classes/Mesh.xml:180 doc/classes/VisualServer.xml:3320
#, fuzzy
msgid "Flag used to mark a compressed (half float) weight array."
msgstr "曾经用于标记压缩(半精度浮点)切向数组的Flag。"

#: doc/classes/Mesh.xml:183 doc/classes/VisualServer.xml:3323
msgid "Flag used to mark a compressed index array."
msgstr "曾用于标记压缩索引数组的Flag。"

#: doc/classes/Mesh.xml:186 doc/classes/VisualServer.xml:3326
msgid "Flag used to mark that the array contains 2D vertices."
msgstr "曾用于标记包含2D顶点的数组的Flag。"

#: doc/classes/Mesh.xml:189 doc/classes/VisualServer.xml:3329
#, fuzzy
msgid "Flag used to mark that the array uses 16-bit bones instead of 8-bit."
msgstr "曾用于标记包含2D顶点的数组的Flag。"

#: doc/classes/Mesh.xml:192 doc/classes/VisualServer.xml:3332
msgid ""
"Flag used to mark that the array uses an octahedral representation of normal "
"and tangent vectors rather than cartesian."
msgstr ""

#: doc/classes/Mesh.xml:195
#, fuzzy
msgid ""
"Used to set flags [constant ARRAY_COMPRESS_VERTEX], [constant "
"ARRAY_COMPRESS_NORMAL], [constant ARRAY_COMPRESS_TANGENT], [constant "
"ARRAY_COMPRESS_COLOR], [constant ARRAY_COMPRESS_TEX_UV], [constant "
"ARRAY_COMPRESS_TEX_UV2], [constant ARRAY_COMPRESS_WEIGHTS], and [constant "
"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] quickly."
msgstr ""
"曾用于快速设置 flags [constant ARRAY_COMPRESS_NORMAL], [constant "
"ARRAY_COMPRESS_TANGENT], [constant ARRAY_COMPRESS_COLOR], [constant "
"ARRAY_COMPRESS_TEX_UV] 和 [constant ARRAY_COMPRESS_TEX_UV2] 。"

#: doc/classes/Mesh.xml:198
msgid "Array of vertices."
msgstr "顶点数组。"

#: doc/classes/Mesh.xml:201
msgid "Array of normals."
msgstr "法线数组。"

#: doc/classes/Mesh.xml:204
msgid "Array of tangents as an array of floats, 4 floats per tangent."
msgstr "切向数组。每一个切向数据由四个float变量描述。"

#: doc/classes/Mesh.xml:207
msgid "Array of colors."
msgstr "颜色数组。"

#: doc/classes/Mesh.xml:210
msgid "Array of UV coordinates."
msgstr "UV 坐标数组。"

#: doc/classes/Mesh.xml:213
msgid "Array of second set of UV coordinates."
msgstr "第二套UV坐标数组。"

#: doc/classes/Mesh.xml:216
msgid "Array of bone data."
msgstr "骨骼数据的数组。"

#: doc/classes/Mesh.xml:219
msgid "Array of weights."
msgstr "权重数组。"

#: doc/classes/Mesh.xml:222
msgid "Array of indices."
msgstr "索引数组。"

#: doc/classes/MeshDataTool.xml:4
msgid "Helper tool to access and edit [Mesh] data."
msgstr "用于帮助编辑和使用 [Mesh] 网格数据的工具。"

#: doc/classes/MeshDataTool.xml:7
#, fuzzy
msgid ""
"MeshDataTool provides access to individual vertices in a [Mesh]. It allows "
"users to read and edit vertex data of meshes. It also creates an array of "
"faces and edges.\n"
"To use MeshDataTool, load a mesh with [method create_from_surface]. When you "
"are finished editing the data commit the data to a mesh with [method "
"commit_to_surface].\n"
"Below is an example of how MeshDataTool may be used.\n"
"[codeblock]\n"
"var mesh = ArrayMesh.new()\n"
"mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, CubeMesh.new()."
"get_mesh_arrays())\n"
"var mdt = MeshDataTool.new()\n"
"mdt.create_from_surface(mesh, 0)\n"
"for i in range(mdt.get_vertex_count()):\n"
"    var vertex = mdt.get_vertex(i)\n"
"    # In this example we extend the mesh by one unit, which results in "
"separated faces as it is flat shaded.\n"
"    vertex += mdt.get_vertex_normal(i)\n"
"    # Save your change.\n"
"    mdt.set_vertex(i, vertex)\n"
"mesh.surface_remove(0)\n"
"mdt.commit_to_surface(mesh)\n"
"var mi = MeshInstance.new()\n"
"mi.mesh = mesh\n"
"add_child(mi)\n"
"[/codeblock]\n"
"See also [ArrayMesh], [ImmediateGeometry] and [SurfaceTool] for procedural "
"geometry generation.\n"
"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
"primitive modes."
msgstr ""
"网格数据工具(MeshDataTool) 提供了对[Mesh]中单个顶点的访问。它允许用户读取和编"
"辑网格的顶点数据。它还创建了一个面和边的数组。\n"
"要使用MeshDataTool,使用[method create_from_surface] 来加载一个Mesh。当你结束"
"对数据的编辑后,使用[method commit to surface] 将数据提交到一个网格中。\n"
"下面是一个用例:\n"
"[codeblock]\n"
"var mdt = MeshDataTool.new()\n"
"mdt.create_from_surface(mesh, 0)\n"
"for i in range(mdt.get_vertex_count()):\n"
"    var vertex = mdt.get_vertex(i)\n"
"    ...\n"
"    mdt.set_vertex(i, vertex)\n"
"mesh.surface_remove(0)\n"
"mdt.commit_to_surface(mesh)\n"
"[/codeblock]\n"
"若要进行程序几何生成,参见[ArrayMesh],[ImmediateGeometry3D]和"
"[SurfaceTool]。\n"
"[b]Note: [/b] Godot使用顺时针 [url=https://learnopengl.com/Advanced-OpenGL/"
"Face-culling]winding order[/url]顺序为三角形的默认前面。"

#: doc/classes/MeshDataTool.xml:36
msgid "Clears all data currently in MeshDataTool."
msgstr "将当前MeshDataTool中所有的数据全部清除。"

#: doc/classes/MeshDataTool.xml:43
msgid "Adds a new surface to specified [Mesh] with edited data."
msgstr "使用编辑后的数据,向特定的[Mesh]中添加一个新的面。"

#: doc/classes/MeshDataTool.xml:51
msgid ""
"Uses specified surface of given [Mesh] to populate data for MeshDataTool.\n"
"Requires [Mesh] with primitive type [constant Mesh.PRIMITIVE_TRIANGLES]."
msgstr ""
"使用给定[Mesh]的指定表面来填充MeshDataTool的数据。\n"
"要求[Mesh]具有基本类型[constant Mesh.PRIMITIVE_TRIANGLES]。"

#: doc/classes/MeshDataTool.xml:58
msgid "Returns the number of edges in this [Mesh]."
msgstr "返回这个[Mesh]的边数。"

#: doc/classes/MeshDataTool.xml:65
msgid "Returns array of faces that touch given edge."
msgstr "返回与给定边相邻的面数组。"

#: doc/classes/MeshDataTool.xml:72
msgid "Returns meta information assigned to given edge."
msgstr "返回给定边的元数据。"

#: doc/classes/MeshDataTool.xml:80
msgid ""
"Returns index of specified vertex connected to given edge.\n"
"Vertex argument can only be 0 or 1 because edges are comprised of two "
"vertices."
msgstr ""
"返回连接到给定边的指定顶点的索引。\n"
"顶点参数只能是0或1,因为边是由两个顶点组成的。"

#: doc/classes/MeshDataTool.xml:87
msgid "Returns the number of faces in this [Mesh]."
msgstr "返回这个[Mesh]中的面数。"

#: doc/classes/MeshDataTool.xml:95
msgid ""
"Returns specified edge associated with given face.\n"
"Edge argument must 2 or less because a face only has three edges."
msgstr ""
"返回与给定面关联的指定边。\n"
"Edge参数必须小于等于2,因为面只有3条边。"

#: doc/classes/MeshDataTool.xml:103
msgid "Returns the metadata associated with the given face."
msgstr "返回与给定面关联的元数据。"

#: doc/classes/MeshDataTool.xml:110
msgid "Calculates and returns the face normal of the given face."
msgstr "计算并返回给定面的面法线。"

#: doc/classes/MeshDataTool.xml:118
msgid ""
"Returns the specified vertex of the given face.\n"
"Vertex argument must be 2 or less because faces contain three vertices."
msgstr ""
"返回给定面的指定顶点。\n"
"顶点参数必须小于等于2,因为面包含3个顶点。"

#: doc/classes/MeshDataTool.xml:125
msgid ""
"Returns the [Mesh]'s format. Format is an integer made up of [Mesh] format "
"flags combined together. For example, a mesh containing both vertices and "
"normals would return a format of [code]3[/code] because [constant ArrayMesh."
"ARRAY_FORMAT_VERTEX] is [code]1[/code] and [constant ArrayMesh."
"ARRAY_FORMAT_NORMAL] is [code]2[/code].\n"
"See [enum ArrayMesh.ArrayFormat] for a list of format flags."
msgstr ""
"返回[Mesh]的Format。Format是由[Mesh]格式Flag组合而成的整数。例如,一个同时包"
"含顶点和法线的网格将返回[code]3[/code]格式,因为[[constant ArrayMesh."
"ARRAY_FORMAT_VERTEX] =[code]1[/code],[constant ArrayMesh."
"ARRAY_FORMAT_NORMAL]=[code]2[/code]。\n"
"参见 [enum ArrayMesh.ArrayFormat]的格式Flag列表。"

#: doc/classes/MeshDataTool.xml:132
msgid "Returns the material assigned to the [Mesh]."
msgstr "返回分配给[Mesh]的材质。"

#: doc/classes/MeshDataTool.xml:139
msgid "Returns the vertex at given index."
msgstr "返回给定索引处的顶点。"

#: doc/classes/MeshDataTool.xml:146
msgid "Returns the bones of the given vertex."
msgstr "返回给定顶点的骨架。"

#: doc/classes/MeshDataTool.xml:153
msgid "Returns the color of the given vertex."
msgstr "返回给定顶点的颜色。"

#: doc/classes/MeshDataTool.xml:159
msgid "Returns the total number of vertices in [Mesh]."
msgstr "返回[Mesh]中顶点的总数。"

#: doc/classes/MeshDataTool.xml:166
msgid "Returns an array of edges that share the given vertex."
msgstr "返回共享给定顶点的边的数组。"

#: doc/classes/MeshDataTool.xml:173
msgid "Returns an array of faces that share the given vertex."
msgstr "返回共享给定顶点的面数组。"

#: doc/classes/MeshDataTool.xml:180
msgid "Returns the metadata associated with the given vertex."
msgstr "返回与给定顶点关联的元数据。"

#: doc/classes/MeshDataTool.xml:187
msgid "Returns the normal of the given vertex."
msgstr "返回给定顶点的法线。"

#: doc/classes/MeshDataTool.xml:194
msgid "Returns the tangent of the given vertex."
msgstr "返回给定顶点的正切值。"

#: doc/classes/MeshDataTool.xml:201
msgid "Returns the UV of the given vertex."
msgstr "返回给定顶点的UV。"

#: doc/classes/MeshDataTool.xml:208
msgid "Returns the UV2 of the given vertex."
msgstr "返回给定顶点的UV2。"

#: doc/classes/MeshDataTool.xml:215
msgid "Returns bone weights of the given vertex."
msgstr "返回给定顶点的骨骼权重。"

#: doc/classes/MeshDataTool.xml:223
msgid "Sets the metadata of the given edge."
msgstr "设置给定边的元数据。"

#: doc/classes/MeshDataTool.xml:231
msgid "Sets the metadata of the given face."
msgstr "设置给定面的元数据。"

#: doc/classes/MeshDataTool.xml:238
msgid "Sets the material to be used by newly-constructed [Mesh]."
msgstr "设置新构建的[Mesh]使用的材质。"

#: doc/classes/MeshDataTool.xml:246
msgid "Sets the position of the given vertex."
msgstr "设置给定顶点的位置。"

#: doc/classes/MeshDataTool.xml:254
msgid "Sets the bones of the given vertex."
msgstr "设置给定顶点的骨架。"

#: doc/classes/MeshDataTool.xml:262
msgid "Sets the color of the given vertex."
msgstr "设置给定顶点的颜色。"

#: doc/classes/MeshDataTool.xml:270
msgid "Sets the metadata associated with the given vertex."
msgstr "设置与给定顶点关联的元数据。"

#: doc/classes/MeshDataTool.xml:278
msgid "Sets the normal of the given vertex."
msgstr "设置给定顶点的法线。"

#: doc/classes/MeshDataTool.xml:286
msgid "Sets the tangent of the given vertex."
msgstr "设置给定顶点的切线。"

#: doc/classes/MeshDataTool.xml:294
msgid "Sets the UV of the given vertex."
msgstr "设置给定顶点的UV。"

#: doc/classes/MeshDataTool.xml:302
msgid "Sets the UV2 of the given vertex."
msgstr "设置给定顶点的UV2。"

#: doc/classes/MeshDataTool.xml:310
msgid "Sets the bone weights of the given vertex."
msgstr "设置给定顶点的骨骼权重。"

#: doc/classes/MeshInstance.xml:4
msgid "Node that instances meshes into a scenario."
msgstr "网格实例与场景相结合的节点。"

#: doc/classes/MeshInstance.xml:7
#, fuzzy
msgid ""
"MeshInstance is a node that takes a [Mesh] resource and adds it to the "
"current scenario by creating an instance of it. This is the class most often "
"used to get 3D geometry rendered and can be used to instance a single [Mesh] "
"in many places. This allows to reuse geometry and save on resources. When a "
"[Mesh] has to be instanced more than thousands of times at close proximity, "
"consider using a [MultiMesh] in a [MultiMeshInstance] instead."
msgstr ""
"MeshInstance3D是一个节点,它获取一个[Mesh]资源,并通过创建它的实例将其添加到"
"当前场景中。这是最常用的渲染3D几何的类,可以用来在许多地方实例一个[Mesh]。这"
"允许重用几何图形,可以节省资源。当一个[Mesh]需要被实例化上千次以上时,可以考"
"虑在[MultiMeshInstance3d]中使用[MultiMesh]。"

#: doc/classes/MeshInstance.xml:21
msgid ""
"This helper creates a [StaticBody] child node with a [ConvexPolygonShape] "
"collision shape calculated from the mesh geometry. It's mainly used for "
"testing.\n"
"If [code]clean[/code] is [code]true[/code] (default), duplicate and interior "
"vertices are removed automatically. You can set it to [code]false[/code] to "
"make the process faster if not needed.\n"
"If [code]simplify[/code] is [code]true[/code], the geometry can be further "
"simplified to reduce the amount of vertices. Disabled by default."
msgstr ""

#: doc/classes/MeshInstance.xml:29
#, fuzzy
msgid ""
"This helper creates a [MeshInstance] child node with gizmos at every vertex "
"calculated from the mesh geometry. It's mainly used for testing."
msgstr ""
"这个帮助类创建了一个[MeshInstance3D]子节点,在每个顶点上都有从网格几何计算出"
"来的辅助线框。它主要用于测试。"

#: doc/classes/MeshInstance.xml:35
#, fuzzy
msgid ""
"This helper creates a [StaticBody] child node with multiple "
"[ConvexPolygonShape] collision shapes calculated from the mesh geometry via "
"convex decomposition. It's mainly used for testing."
msgstr ""
"这个帮助类创建一个[StaticBody3D]子节点,该节点使用一个从网格几何计算的"
"[ConvexPolygonShape3D]碰撞形状。它主要用于测试。"

#: doc/classes/MeshInstance.xml:41
#, fuzzy
msgid ""
"This helper creates a [StaticBody] child node with a [ConcavePolygonShape] "
"collision shape calculated from the mesh geometry. It's mainly used for "
"testing."
msgstr ""
"这个助手创建一个[StaticBody3D]子节点,使用一个从网格几何计算的"
"[ConcavePolygonShape3D]碰撞形状。它主要用于测试。"

#: doc/classes/MeshInstance.xml:48
#, fuzzy
msgid ""
"Returns the [Material] that will be used by the [Mesh] when drawing. This "
"can return the [member GeometryInstance.material_override], the surface "
"override [Material] defined in this [MeshInstance], or the surface "
"[Material] defined in the [Mesh]. For example, if [member GeometryInstance."
"material_override] is used, all surfaces will return the override material."
msgstr ""
"返回将在绘制时被[Mesh]使用的[Material]。这可以返回[member GeometryInstance3D."
"material_override],面会覆盖在[MeshInstance3D]中定义的[Material],或者在"
"[Mesh]中定义的表面[Material]。例如,如果使用[member GeometryInstance3D."
"Material_override]时,所有表面将返回覆盖后的材质。"

#: doc/classes/MeshInstance.xml:55
#, fuzzy
msgid "Returns the [Material] for a surface of the [Mesh] resource."
msgstr "返回[Mesh]资源指定表面的覆盖后的[Material]。"

#: doc/classes/MeshInstance.xml:61
msgid "Returns the number of surface materials."
msgstr "返回表面材质的数量。"

#: doc/classes/MeshInstance.xml:69
#, fuzzy
msgid "Sets the [Material] for a surface of the [Mesh] resource."
msgstr "返回[Mesh]资源指定表面的覆盖后的[Material]。"

#: doc/classes/MeshInstance.xml:75
msgid "The [Mesh] resource for the instance."
msgstr "该实例的[Mesh]资源。"

#: doc/classes/MeshInstance.xml:78
#, fuzzy
msgid "[NodePath] to the [Skeleton] associated with the instance."
msgstr "通向与该实例关联的[Skeleton3D]的[NodePath]。"

#: doc/classes/MeshInstance.xml:81
msgid "Sets the skin to be used by this instance."
msgstr "设置此实例要使用的蒙皮。"

#: doc/classes/MeshInstance.xml:84
msgid ""
"If [code]true[/code], normals are transformed when software skinning is "
"used. Set to [code]false[/code] when normals are not needed for better "
"performance.\n"
"See [member ProjectSettings.rendering/quality/skinning/"
"software_skinning_fallback] for details about how software skinning is "
"enabled."
msgstr ""

#: doc/classes/MeshInstance2D.xml:4
msgid "Node used for displaying a [Mesh] in 2D."
msgstr "用于在2D中显示[Mesh]的节点。"

#: doc/classes/MeshInstance2D.xml:7
#, fuzzy
msgid ""
"Node used for displaying a [Mesh] in 2D. Can be constructed from an existing "
"[Sprite] via a tool in the editor toolbar. Select \"Sprite\" then \"Convert "
"to Mesh2D\", select settings in popup and press \"Create Mesh2D\"."
msgstr ""
"用于在2D中显示[Mesh]的节点。可以通过编辑器工具栏中的工具从现有的[Sprite2D]构"
"建。选择“Sprite2D”,然后“Convert to Mesh2D”,在弹出窗口中选择设置,然后"
"按“Create Mesh2D”。"

#: doc/classes/MeshInstance2D.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/2d/2d_meshes.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/2d/2d_meshes.html"

#: doc/classes/MeshInstance2D.xml:16
msgid "The [Mesh] that will be drawn by the [MeshInstance2D]."
msgstr "[Mesh]将由[MeshInstance2D]绘制。"

#: doc/classes/MeshInstance2D.xml:19 doc/classes/MultiMeshInstance2D.xml:19
msgid ""
"The normal map that will be used if using the default [CanvasItemMaterial].\n"
"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
"See [url=http://wiki.polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
"a comparison of normal map coordinates expected by popular engines."
msgstr ""
"如果使用默认的[CanvasItemMaterial],法线贴图将被使用。\n"
"[b]注意:[/b] Godot期望法线映射使用X+, Y-和Z+坐标。请参阅[url=http://wiki."
"polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]这"
"一页[/url],以获得流行引擎期望的标准法向图坐标的比较。"

#: doc/classes/MeshInstance2D.xml:23 doc/classes/MultiMeshInstance2D.xml:23
#, fuzzy
msgid ""
"The [Texture] that will be used if using the default [CanvasItemMaterial]. "
"Can be accessed as [code]TEXTURE[/code] in CanvasItem shader."
msgstr ""
"如果使用默认的[CanvasItemMaterial], 本[Texture2D]将被使用。可以在CanvasItem"
"着色器中访问[code]TEXTURE[/code]。"

#: doc/classes/MeshInstance2D.xml:29 doc/classes/MultiMeshInstance2D.xml:29
msgid "Emitted when the [member texture] is changed."
msgstr "当[member texture]被改变时触发。"

#: doc/classes/MeshLibrary.xml:4
msgid "Library of meshes."
msgstr "网格库。"

#: doc/classes/MeshLibrary.xml:7
msgid ""
"A library of meshes. Contains a list of [Mesh] resources, each with a name "
"and ID. Each item can also include collision and navigation shapes. This "
"resource is used in [GridMap]."
msgstr ""
"网格库包含一个[Mesh]资源列表,每个资源都有一个名称和ID。每个项目还可以包括碰"
"撞和导航形状。这个资源在[GridMap]中使用。"

#: doc/classes/MeshLibrary.xml:17
msgid "Clears the library."
msgstr "清除库。"

#: doc/classes/MeshLibrary.xml:24
msgid ""
"Creates a new item in the library with the given ID.\n"
"You can get an unused ID from [method get_last_unused_item_id]."
msgstr ""
"使用给定的ID在库中创建一个新项。\n"
"你可以从[method get_last_unused_item_id]获取一个未使用的ID。"

#: doc/classes/MeshLibrary.xml:32
msgid "Returns the first item with the given name."
msgstr "返回第一个指定名称的 item。"

#: doc/classes/MeshLibrary.xml:38
msgid "Returns the list of item IDs in use."
msgstr "返回正在使用的 item id列表。"

#: doc/classes/MeshLibrary.xml:45
msgid "Returns the item's mesh."
msgstr "返回该 item 的网格模型。"

#: doc/classes/MeshLibrary.xml:52
#, fuzzy
msgid "Returns the transform applied to the item's mesh."
msgstr "返回应用于该项导航网格的转换。"

#: doc/classes/MeshLibrary.xml:59
msgid "Returns the item's name."
msgstr "返回项的名称。"

#: doc/classes/MeshLibrary.xml:66
msgid "Returns the item's navigation mesh."
msgstr "返回该项的导航网格。"

#: doc/classes/MeshLibrary.xml:73
msgid "Returns the transform applied to the item's navigation mesh."
msgstr "返回应用于该项导航网格的转换。"

#: doc/classes/MeshLibrary.xml:80
#, fuzzy
msgid ""
"When running in the editor, returns a generated item preview (a 3D rendering "
"in isometric perspective). When used in a running project, returns the "
"manually-defined item preview which can be set using [method "
"set_item_preview]. Returns an empty [Texture] if no preview was manually set "
"in a running project."
msgstr ""
"在编辑器中运行时,返回生成的项目预览(等距透视的3D渲染)。当在一个正在运行的项"
"目中使用时,返回手动定义的项目预览,可以使用[method set_item_preview]进行设"
"置。如果在运行的项目中没有手动设置预览,则返回一个空的[Texture2D]。"

#: doc/classes/MeshLibrary.xml:87
#, fuzzy
msgid ""
"Returns an item's collision shapes.\n"
"The array consists of each [Shape] followed by its [Transform]."
msgstr ""
"返回项目的碰撞形状。\n"
"数组由[Shape3D]和它的[Transform]组成。"

#: doc/classes/MeshLibrary.xml:94
msgid "Gets an unused ID for a new item."
msgstr "获取新项未使用的ID。"

#: doc/classes/MeshLibrary.xml:101
msgid "Removes the item."
msgstr "删除项目。"

#: doc/classes/MeshLibrary.xml:109
msgid "Sets the item's mesh."
msgstr "设置该项的网格。"

#: doc/classes/MeshLibrary.xml:117
#, fuzzy
msgid "Sets the transform to apply to the item's mesh."
msgstr "设置转换应用于该项的导航网格。"

#: doc/classes/MeshLibrary.xml:125
msgid ""
"Sets the item's name.\n"
"This name is shown in the editor. It can also be used to look up the item "
"later using [method find_item_by_name]."
msgstr ""
"设置项的名称。\n"
"该名称显示在编辑器中。稍后还可以使用[method find_item_by_name]来查找该项。"

#: doc/classes/MeshLibrary.xml:134
msgid "Sets the item's navigation mesh."
msgstr "设置此项的导航网格。"

#: doc/classes/MeshLibrary.xml:142
msgid "Sets the transform to apply to the item's navigation mesh."
msgstr "设置转换应用于该项的导航网格。"

#: doc/classes/MeshLibrary.xml:150
msgid "Sets a texture to use as the item's preview icon in the editor."
msgstr "在编辑器中设置要用作该项预览图标的纹理。"

#: doc/classes/MeshLibrary.xml:158
#, fuzzy
msgid ""
"Sets an item's collision shapes.\n"
"The array should consist of [Shape] objects, each followed by a [Transform] "
"that will be applied to it. For shapes that should not have a transform, use "
"[constant Transform.IDENTITY]."
msgstr ""
"设置该项的碰撞形状。\n"
"数组应该由[Shape3D]对象组成,每个对象后面都有一个[Transform],它将被应用到该"
"Shape3D。对于不应该有变换的形状,使用 [constant Transform.IDENTITY]。"

#: doc/classes/MeshTexture.xml:4
msgid "Simple texture that uses a mesh to draw itself."
msgstr "简单的纹理,使用一个网格来绘制自己。"

#: doc/classes/MeshTexture.xml:7
msgid ""
"Simple texture that uses a mesh to draw itself. It's limited because flags "
"can't be changed and region drawing is not supported."
msgstr ""
"简单的纹理,使用一个网格来绘制自己。它的应用场景有限,因为Flag不能更改,而且"
"不支持区域绘制。"

#: doc/classes/MeshTexture.xml:15
msgid "Sets the base texture that the Mesh will use to draw."
msgstr "设置网格用来绘制的基础纹理。"

#: doc/classes/MeshTexture.xml:19
msgid "Sets the size of the image, needed for reference."
msgstr "设置图像的大小,需要参考。"

#: doc/classes/MeshTexture.xml:22
msgid "Sets the mesh used to draw. It must be a mesh using 2D vertices."
msgstr "设置用于绘制的网格,该网格必须使用2D顶点。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:4
msgid "Generic mobile VR implementation."
msgstr "通用移动VR实现。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:7
#, fuzzy
msgid ""
"This is a generic mobile VR implementation where you need to provide details "
"about the phone and HMD used. It does not rely on any existing framework. "
"This is the most basic interface we have. For the best effect, you need a "
"mobile phone with a gyroscope and accelerometer.\n"
"Note that even though there is no positional tracking, the camera will "
"assume the headset is at a height of 1.85 meters. You can change this by "
"setting [member eye_height].\n"
"You can initialise this interface as follows:\n"
"[codeblock]\n"
"var interface = ARVRServer.find_interface(\"Native mobile\")\n"
"if interface and interface.initialize():\n"
"    get_viewport().arvr = true\n"
"[/codeblock]"
msgstr ""
"这是一个通用的移动VR实现,你需要提供关于手机和使用的HMD的详细信息。它不依赖于"
"任何现有的框架。这是我们拥有的最基础的接口。为了达到最佳效果,你需要一部带有"
"陀螺仪和加速计的手机。\n"
"注意,即使没有位置跟踪,摄像头也会假设耳机在1.85米的高度。你可以通过设置"
"[member eye_height]来改变它。\n"
"初始化该接口的方法如下:\n"
"[codeblock]\n"
"var interface = XRServer.find_interface(\"Native mobile\")\n"
"if interface and interface.initialize():\n"
"    get_viewport().xr = true\n"
"[/codeblock]"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:22
msgid ""
"The distance between the display and the lenses inside of the device in "
"centimeters."
msgstr "显示器与设备内部镜片之间的距离,单位为厘米。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:25
msgid "The width of the display in centimeters."
msgstr "显示器的宽度,以厘米为单位。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:28
#, fuzzy
msgid ""
"The height at which the camera is placed in relation to the ground (i.e. "
"[ARVROrigin] node)."
msgstr "相机相对于地面放置的高度(即[XROrigin3D]节点)。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:31
msgid ""
"The interocular distance, also known as the interpupillary distance. The "
"distance between the pupils of the left and right eye."
msgstr "眼间距离,也称为瞳孔间距离。左眼和右眼瞳孔之间的距离。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:34
msgid ""
"The k1 lens factor is one of the two constants that define the strength of "
"the lens used and directly influences the lens distortion effect."
msgstr "k1镜头因子是定义所使用镜头强度的两个常量之一,并直接影响镜头失真效果。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:37
msgid "The k2 lens factor, see k1."
msgstr "k2镜头因子,见k1。"

#: modules/mobile_vr/doc_classes/MobileVRInterface.xml:40
msgid ""
"The oversample setting. Because of the lens distortion we have to render our "
"buffers at a higher resolution then the screen can natively handle. A value "
"between 1.5 and 2.0 often provides good results but at the cost of "
"performance."
msgstr ""
"过采样设置。由于镜头失真,我们必须以比屏幕自然分辨率更高的质量渲染我们的缓冲"
"区。介于1.5和2.0之间的值通常可以提供良好的结果,但会牺牲性能。"

#: doc/classes/MultiMesh.xml:4
msgid "Provides high-performance mesh instancing."
msgstr "提供高性能的网格实例化。"

#: doc/classes/MultiMesh.xml:7
#, fuzzy
msgid ""
"MultiMesh provides low-level mesh instancing. Drawing thousands of "
"[MeshInstance] nodes can be slow, since each object is submitted to the GPU "
"then drawn individually.\n"
"MultiMesh is much faster as it can draw thousands of instances with a single "
"draw call, resulting in less API overhead.\n"
"As a drawback, if the instances are too far away from each other, "
"performance may be reduced as every single instance will always render (they "
"are spatially indexed as one, for the whole object).\n"
"Since instances may have any behavior, the AABB used for visibility must be "
"provided by the user."
msgstr ""
"MultiMesh提供了低级别的网格实例化功能。绘制成千上万的[MeshInstance3D]节点可能"
"会很慢,因为每个对象都要提交给GPU然后单独绘制。\n"
"MultiMesh要快得多,因为它可以通过一次绘制调用来绘制成千上万的实例,从而减少"
"API的开销。\n"
"缺点是,如果实例之间的距离太远,性能可能会降低,因为每一个实例都会被渲染(它"
"们在空间上被索引为一整个对象)。\n"
"由于实例可以有任何行为,用于可见性的AABB必须由用户提供。"

#: doc/classes/MultiMesh.xml:13 doc/classes/MultiMeshInstance.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/vertex_animation/"
"animating_thousands_of_fish.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/vertex_animation/"
"animating_thousands_of_fish.html"

#: doc/classes/MultiMesh.xml:14 doc/classes/MultiMeshInstance.xml:13
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/optimization/using_multimesh."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/optimization/"
"using_multimesh.html"

#: doc/classes/MultiMesh.xml:20
msgid ""
"Returns the visibility axis-aligned bounding box in local space. See also "
"[method VisualInstance.get_transformed_aabb]."
msgstr ""

#: doc/classes/MultiMesh.xml:27
msgid "Gets a specific instance's color."
msgstr "获取一个特定实例的颜色。"

#: doc/classes/MultiMesh.xml:34
msgid "Returns the custom data that has been set for a specific instance."
msgstr "返回已经为特定实例设置的自定义数据。"

#: doc/classes/MultiMesh.xml:41
msgid "Returns the [Transform] of a specific instance."
msgstr "返回一个特定实例的[Transform]。"

#: doc/classes/MultiMesh.xml:48
msgid "Returns the [Transform2D] of a specific instance."
msgstr "返回特定实例的 [Transform2D]。"

#: doc/classes/MultiMesh.xml:55
msgid ""
"Sets all data related to the instances in one go. This is especially useful "
"when loading the data from disk or preparing the data from GDNative.\n"
"All data is packed in one large float array. An array may look like this: "
"Transform for instance 1, color data for instance 1, custom data for "
"instance 1, transform for instance 2, color data for instance 2, etc...\n"
"[Transform] is stored as 12 floats, [Transform2D] is stored as 8 floats, "
"[code]COLOR_8BIT[/code] / [code]CUSTOM_DATA_8BIT[/code] is stored as 1 float "
"(4 bytes as is) and [code]COLOR_FLOAT[/code] / [code]CUSTOM_DATA_FLOAT[/"
"code] is stored as 4 floats."
msgstr ""

#: doc/classes/MultiMesh.xml:65
#, fuzzy
msgid ""
"Sets the color of a specific instance by [i]multiplying[/i] the mesh's "
"existing vertex colors.\n"
"For the color to take effect, ensure that [member color_format] is non-"
"[code]null[/code] on the [MultiMesh] and [member SpatialMaterial."
"vertex_color_use_as_albedo] is [code]true[/code] on the material."
msgstr ""
"设置一个特定实例的颜色。\n"
"为了使颜色生效,确保[MultiMesh]上的[member use_colors]是[code]true[/code],材"
"质上的[member BaseMaterial3D.vertex_color_use_as_albedo] 是[code]true[/"
"code]。"

#: doc/classes/MultiMesh.xml:74
#, fuzzy
msgid ""
"Sets custom data for a specific instance. Although [Color] is used, it is "
"just a container for 4 floating point numbers. The format of the number can "
"change depending on the [enum CustomDataFormat] used."
msgstr ""
"为一个特定的实例设置自定义数据。虽然使用了[Color],但它只是一个容纳4个浮点数"
"的容器。\n"
"为了使用自定义数据,确保[member use_custom_data]是[code]true[/code]。"

#: doc/classes/MultiMesh.xml:82
msgid "Sets the [Transform] for a specific instance."
msgstr "为特定实例设置 [Transform]。"

#: doc/classes/MultiMesh.xml:90
msgid "Sets the [Transform2D] for a specific instance."
msgstr "为特定实例设置 [Transform2D]。"

#: doc/classes/MultiMesh.xml:96
msgid "Format of colors in color array that gets passed to shader."
msgstr ""

#: doc/classes/MultiMesh.xml:99
msgid "Format of custom data in custom data array that gets passed to shader."
msgstr ""

#: doc/classes/MultiMesh.xml:102
msgid ""
"Number of instances that will get drawn. This clears and (re)sizes the "
"buffers. By default, all instances are drawn but you can limit this with "
"[member visible_instance_count]."
msgstr ""
"将被绘制的实例的数量。这将清除并(重新)调整缓冲区的大小。默认情况下,所有的"
"实例都会被画出来,但你可以用[member visible_instance_count]来限制它。"

#: doc/classes/MultiMesh.xml:105
msgid "Mesh to be drawn."
msgstr "将要绘制的网格。"

#: doc/classes/MultiMesh.xml:108
msgid "Format of transform used to transform mesh, either 2D or 3D."
msgstr "用于变换网格的变换格式,可以是2D或3D。"

#: doc/classes/MultiMesh.xml:111
msgid ""
"Limits the number of instances drawn, -1 draws all instances. Changing this "
"does not change the sizes of the buffers."
msgstr ""
"限制绘制的实例数量,-1会绘制所有的实例。改变这一点并不改变缓冲区的大小。"

#: doc/classes/MultiMesh.xml:116
msgid "Use this when using 2D transforms."
msgstr "使用 2D 变换时使用此选项。"

#: doc/classes/MultiMesh.xml:119
msgid "Use this when using 3D transforms."
msgstr "使用 3D 变换时使用此选项。"

#: doc/classes/MultiMesh.xml:122
msgid "Use when you are not using per-instance [Color]s."
msgstr ""

#: doc/classes/MultiMesh.xml:125
msgid ""
"Compress [Color] data into 8 bits when passing to shader. This uses less "
"memory and can be faster, but the [Color] loses precision."
msgstr ""

#: doc/classes/MultiMesh.xml:128
msgid ""
"The [Color] passed into [method set_instance_color] will use 4 floats. Use "
"this for highest precision [Color]."
msgstr ""

#: doc/classes/MultiMesh.xml:131
msgid "Use when you are not using per-instance custom data."
msgstr ""

#: doc/classes/MultiMesh.xml:134
msgid ""
"Compress custom_data into 8 bits when passing to shader. This uses less "
"memory and can be faster, but loses precision and range. Floats packed into "
"8 bits can only represent values between 0 and 1, numbers outside that range "
"will be clamped."
msgstr ""

#: doc/classes/MultiMesh.xml:137
msgid ""
"The [Color] passed into [method set_instance_custom_data] will use 4 floats. "
"Use this for highest precision."
msgstr ""

#: doc/classes/MultiMeshInstance.xml:4
msgid "Node that instances a [MultiMesh]."
msgstr "实例化 [MultiMesh] 的节点。"

#: doc/classes/MultiMeshInstance.xml:7
#, fuzzy
msgid ""
"[MultiMeshInstance] is a specialized node to instance [GeometryInstance]s "
"based on a [MultiMesh] resource.\n"
"This is useful to optimize the rendering of a high amount of instances of a "
"given mesh (for example trees in a forest or grass strands)."
msgstr ""
"[MultiMeshInstance3D] 是基于 [MultiMesh] 资源实例化 [GeometryInstance3D] 的专"
"用节点。\n"
"这对于优化给定网格的大量实例(例如森林中的树木或草丛)的渲染很有用。"

#: doc/classes/MultiMeshInstance.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/using_multi_mesh_instance."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/"
"using_multi_mesh_instance.html"

#: doc/classes/MultiMeshInstance.xml:19
#, fuzzy
msgid ""
"The [MultiMesh] resource that will be used and shared among all instances of "
"the [MultiMeshInstance]."
msgstr ""
"将在 [MultiMeshInstance3D] 的所有实例之间使用和共享的 [MultiMesh] 资源。"

#: doc/classes/MultiMeshInstance2D.xml:4
msgid "Node that instances a [MultiMesh] in 2D."
msgstr "在 2D 中实例化 [MultiMesh] 的节点。"

#: doc/classes/MultiMeshInstance2D.xml:7
#, fuzzy
msgid ""
"[MultiMeshInstance2D] is a specialized node to instance a [MultiMesh] "
"resource in 2D.\n"
"Usage is the same as [MultiMeshInstance]."
msgstr ""
"[MultiMeshInstance2D] 是一个专门用于在 2D 中实例化 [MultiMesh] 资源的节点。\n"
"用法与[MultiMeshInstance3D]相同。"

#: doc/classes/MultiMeshInstance2D.xml:16
msgid "The [MultiMesh] that will be drawn by the [MultiMeshInstance2D]."
msgstr "将由[MultiMeshInstance2D]绘制的[MultiMesh]。"

#: doc/classes/MultiplayerAPI.xml:4
msgid "High-level multiplayer API."
msgstr "高级多人游戏API。"

#: doc/classes/MultiplayerAPI.xml:7
#, fuzzy
msgid ""
"This class implements most of the logic behind the high-level multiplayer "
"API. See also [NetworkedMultiplayerPeer].\n"
"By default, [SceneTree] has a reference to this class that is used to "
"provide multiplayer capabilities (i.e. RPC/RSET) across the whole scene.\n"
"It is possible to override the MultiplayerAPI instance used by specific "
"Nodes by setting the [member Node.custom_multiplayer] property, effectively "
"allowing to run both client and server in the same scene.\n"
"[b]Note:[/b] The high-level multiplayer API protocol is an implementation "
"detail and isn't meant to be used by non-Godot servers. It may change "
"without notice."
msgstr ""
"这个类实现了高层多人游戏API背后的大部分逻辑。\n"
"默认情况下,[SceneTree]有一个对该类的引用,用于在整个场景中提供多人游戏功能"
"(即RPC/RSET)。\n"
"通过设置[成员Node.custom_multiplayer]属性,可以覆盖特定节点使用的多人游戏API"
"实例,有效地允许在同一场景中同时运行客户端和服务器。"

#: doc/classes/MultiplayerAPI.xml:18
msgid ""
"Clears the current MultiplayerAPI network state (you shouldn't call this "
"unless you know what you are doing)."
msgstr ""
"清除当前的MultiplayerAPI网络状态(除非你知道自己在做什么,否则不应该调用这"
"个)。"

#: doc/classes/MultiplayerAPI.xml:24
msgid ""
"Returns the peer IDs of all connected peers of this MultiplayerAPI's [member "
"network_peer]."
msgstr "返回此MultiplayerAPI的[成员network_peer]的所有连接的对等体的ID。"

#: doc/classes/MultiplayerAPI.xml:30
msgid ""
"Returns the unique peer ID of this MultiplayerAPI's [member network_peer]."
msgstr "返回该多人游戏API的[成员network_peer]的唯一对等体ID。"

#: doc/classes/MultiplayerAPI.xml:36
msgid ""
"Returns the sender's peer ID for the RPC currently being executed.\n"
"[b]Note:[/b] If not inside an RPC this method will return 0."
msgstr ""
"返回当前正在执行的RPC的发送方的对等体ID。\n"
"[b]注意:[/b] 如果不在RPC内,这个方法将返回0。"

#: doc/classes/MultiplayerAPI.xml:43 doc/classes/SceneTree.xml:120
msgid "Returns [code]true[/code] if there is a [member network_peer] set."
msgstr "如果有一个[member network_peer]设置,返回[code]true[/code]。"

#: doc/classes/MultiplayerAPI.xml:49
msgid ""
"Returns [code]true[/code] if this MultiplayerAPI's [member network_peer] is "
"in server mode (listening for connections)."
msgstr ""
"如果这个MultiplayerAPI的[member network_peer]处于服务器模式(监听连接),返回"
"[code]true[/code]。"

#: doc/classes/MultiplayerAPI.xml:55
msgid ""
"Method used for polling the MultiplayerAPI. You only need to worry about "
"this if you are using [member Node.custom_multiplayer] override or you set "
"[member SceneTree.multiplayer_poll] to [code]false[/code]. By default, "
"[SceneTree] will poll its MultiplayerAPI for you.\n"
"[b]Note:[/b] This method results in RPCs and RSETs being called, so they "
"will be executed in the same context of this function (e.g. [code]_process[/"
"code], [code]physics[/code], [Thread])."
msgstr ""
"用于轮询多人游戏API的方法。只有当你使用[member Node.custom_multiplayer]覆盖或"
"者你将[member SceneTree.multiplayer_poll]设置为[code]false[/code]时,你才需要"
"担心这个问题。默认情况下,[SceneTree]将为你轮询其多人游戏API。\n"
"[b]注意:[/b]这个方法导致RPC和RSET被调用,所以它们将在这个函数的同一上下文中"
"执行(例如,[code]_process[/code], [code]physics[/code], [Thread])。"

#: doc/classes/MultiplayerAPI.xml:65
msgid ""
"Sends the given raw [code]bytes[/code] to a specific peer identified by "
"[code]id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). "
"Default ID is [code]0[/code], i.e. broadcast to all peers."
msgstr ""
"将给定的原始[code]字节[/code]发送到由[code]id[/code]确定的特定对等体(见"
"[method NetworkedMultiplayerPeer.set_target_peer])。默认ID是[code]0[/code],"
"即向所有对等体广播。"

#: doc/classes/MultiplayerAPI.xml:71
#, fuzzy
msgid ""
"If [code]true[/code] (or if the [member network_peer] has [member PacketPeer."
"allow_object_decoding] set to [code]true[/code]), the MultiplayerAPI will "
"allow encoding and decoding of object during RPCs/RSETs.\n"
"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
"Do not use this option if the serialized object comes from untrusted sources "
"to avoid potential security threats such as remote code execution."
msgstr ""
"如果[code]true[/code],多人游戏API将允许在RPC/RSETs期间对对象进行编码和解"
"码。\n"
"[b]警告:[/b] 反序列化的对象可能包含会被执行的代码。如果序列化的对象来自不受"
"信任的来源,请不要使用这个选项,以避免潜在的安全威胁,如远程代码执行。"

#: doc/classes/MultiplayerAPI.xml:75
msgid ""
"The peer object to handle the RPC system (effectively enabling networking "
"when set). Depending on the peer itself, the MultiplayerAPI will become a "
"network server (check with [method is_network_server]) and will set root "
"node's network mode to master, or it will become a regular peer with root "
"node set to puppet. All child nodes are set to inherit the network mode by "
"default. Handling of networking-related events (connection, disconnection, "
"new clients) is done by connecting to MultiplayerAPI's signals."
msgstr ""
"处理 RPC 系统的对等对象(设置后有效地启用网络)。根据对等体本身,"
"MultiplayerAPI 将成为网络服务器(检查 [method is_network_server])并将根节点"
"的网络模式设置为 master,或者它将成为根节点设置为 puppet 的常规对等体。所有子"
"节点默认设置为继承网络模式。与网络相关的事件(连接、断开连接、新客户端)的处"
"理是通过连接到 MultiplayerAPI 的信号来完成的。"

#: doc/classes/MultiplayerAPI.xml:78
msgid ""
"If [code]true[/code], the MultiplayerAPI's [member network_peer] refuses new "
"incoming connections."
msgstr ""
"如果[code]true[/code],则MultiplayerAPI的[member network_peer]会拒绝新的传入"
"连接。"

#: doc/classes/MultiplayerAPI.xml:81
#, fuzzy
msgid ""
"The root node to use for RPCs. Instead of an absolute path, a relative path "
"will be used to find the node upon which the RPC should be executed.\n"
"This effectively allows to have different branches of the scene tree to be "
"managed by different MultiplayerAPI, allowing for example to run both client "
"and server in the same scene."
msgstr ""
"设置用于 RPC 的基本根节点。将使用相对路径而不是绝对路径来查找应在其上执行 "
"RPC 的节点。\n"
"这有效地允许场景树的不同分支由不同的 MultiplayerAPI 管理,例如允许在同一场景"
"中运行客户端和服务器。"

#: doc/classes/MultiplayerAPI.xml:88
msgid ""
"Emitted when this MultiplayerAPI's [member network_peer] successfully "
"connected to a server. Only emitted on clients."
msgstr ""
"当这个MultiplayerAPI的[成员network_peer]成功连接到一个服务器时触发该信号。这"
"只在客户端触发。"

#: doc/classes/MultiplayerAPI.xml:93
msgid ""
"Emitted when this MultiplayerAPI's [member network_peer] fails to establish "
"a connection to a server. Only emitted on clients."
msgstr ""
"当这个MultiplayerAPI的[成员network_peer]无法与服务器建立连接时触发。只在客户"
"端触发。"

#: doc/classes/MultiplayerAPI.xml:99
msgid ""
"Emitted when this MultiplayerAPI's [member network_peer] connects with a new "
"peer. ID is the peer ID of the new peer. Clients get notified when other "
"clients connect to the same server. Upon connecting to a server, a client "
"also receives this signal for the server (with ID being 1)."
msgstr ""
"当此多人播放器的 [成员network_peer] 与新对等连接时触发该信号。ID 是新peer的 "
"peer ID。当其他客户端连接到同一服务器时,客户端会收到通知。连接到服务器后,客"
"户端还会收到服务器的此信号(ID 为 1)。"

#: doc/classes/MultiplayerAPI.xml:105
msgid ""
"Emitted when this MultiplayerAPI's [member network_peer] disconnects from a "
"peer. Clients get notified when other clients disconnect from the same "
"server."
msgstr ""
"当这个MultiplayerAPI的[成员network_peer]与一个同伴断开连接时触发该信号。当其"
"他客户端与同一服务器断开连接时,客户端会得到通知。"

#: doc/classes/MultiplayerAPI.xml:112
msgid ""
"Emitted when this MultiplayerAPI's [member network_peer] receive a "
"[code]packet[/code] with custom data (see [method send_bytes]). ID is the "
"peer ID of the peer that sent the packet."
msgstr ""
"当这个MultiplayerAPI的[成员network_peer]收到一个带有自定义数据的[code]数据包"
"[/code](见[method send_bytes])时触发。ID是发送该数据包的对等体的ID。"

#: doc/classes/MultiplayerAPI.xml:117
msgid ""
"Emitted when this MultiplayerAPI's [member network_peer] disconnects from "
"server. Only emitted on clients."
msgstr ""
"当这个MultiplayerAPI的[成员network_peer]与服务器断开连接时触发。只在客户端触"
"发。"

#: doc/classes/MultiplayerAPI.xml:123
msgid ""
"Used with [method Node.rpc_config] or [method Node.rset_config] to disable a "
"method or property for all RPC calls, making it unavailable. Default for all "
"methods."
msgstr ""
"与[method Node.rpc_config]或[method Node.rset_config]一起使用,可以在所有RPC"
"调用中禁用某个方法或属性,使其不可用。所有方法的默认值。"

#: doc/classes/MultiplayerAPI.xml:126
msgid ""
"Used with [method Node.rpc_config] or [method Node.rset_config] to set a "
"method to be called or a property to be changed only on the remote end, not "
"locally. Analogous to the [code]remote[/code] keyword. Calls and property "
"changes are accepted from all remote peers, no matter if they are node's "
"master or puppets."
msgstr ""
"与[method Node.rpc_config]或[method Node.rset_config]一起使用,用于设置只在远"
"程端调用某个方法或改变某个属性,而不是在本地。类似于[code]remote[/code]关键"
"字。所有远程对等体的调用和属性改变都被接受,不管它们是节点的主控还是傀儡。"

#: doc/classes/MultiplayerAPI.xml:129
msgid ""
"Used with [method Node.rpc_config] or [method Node.rset_config] to set a "
"method to be called or a property to be changed only on the network master "
"for this node. Analogous to the [code]master[/code] keyword. Only accepts "
"calls or property changes from the node's network puppets, see [method Node."
"set_network_master]."
msgstr ""
"与 [method Node.rpc_config] 或 [method Node.rset_config] 一起用于设置要调用的"
"方法或仅在此节点的网络主机上更改的属性。类似于 [code] master[/code] 关键字。"
"仅接受节点网络傀儡的方法调用或属性更改,请参阅[method Node."
"set_network_master]。"

#: doc/classes/MultiplayerAPI.xml:132
msgid ""
"Used with [method Node.rpc_config] or [method Node.rset_config] to set a "
"method to be called or a property to be changed only on puppets for this "
"node. Analogous to the [code]puppet[/code] keyword. Only accepts calls or "
"property changes from the node's network master, see [method Node."
"set_network_master]."
msgstr ""
"与 [method Node.rpc_config] 或 [method Node.rset_config] 一起使用,以设置仅在"
"此节点的傀儡上调用的方法或改变的属性。类似于 [code]puppet[/code] 关键字。只接"
"受来自节点的网络主站的调用或属性更改,见[method Node.set_network_master]。"

#: doc/classes/MultiplayerAPI.xml:135
#, fuzzy
msgid ""
"[i]Deprecated.[/i] Use [constant RPC_MODE_PUPPET] instead. Analogous to the "
"[code]slave[/code] keyword."
msgstr ""
"行为类似于 [constant RPC_MODE_PUPPET],但也会使调用或属性在本地改变。类似于 "
"[code]puppetsync[/code] 关键字。"

#: doc/classes/MultiplayerAPI.xml:138
msgid ""
"Behave like [constant RPC_MODE_REMOTE] but also make the call or property "
"change locally. Analogous to the [code]remotesync[/code] keyword."
msgstr ""
"行为类似于[constant RPC_MODE_REMOTE],但也会使调用或属性在本地改变。类似于"
"[code]remoteesync[/code]关键字。"

#: doc/classes/MultiplayerAPI.xml:141
#, fuzzy
msgid ""
"[i]Deprecated.[/i] Use [constant RPC_MODE_REMOTESYNC] instead. Analogous to "
"the [code]sync[/code] keyword."
msgstr ""
"行为类似于[constant RPC_MODE_REMOTE],但也会使调用或属性在本地改变。类似于"
"[code]remoteesync[/code]关键字。"

#: doc/classes/MultiplayerAPI.xml:144
msgid ""
"Behave like [constant RPC_MODE_MASTER] but also make the call or property "
"change locally. Analogous to the [code]mastersync[/code] keyword."
msgstr ""
"类似于[constant RPC_MODE_MASTER],但也使方法调用或属性改变本地。类似于 "
"[code] mastersync [/code] 关键字。"

#: doc/classes/MultiplayerAPI.xml:147
msgid ""
"Behave like [constant RPC_MODE_PUPPET] but also make the call or property "
"change locally. Analogous to the [code]puppetsync[/code] keyword."
msgstr ""
"行为类似于 [constant RPC_MODE_PUPPET],但也会使调用或属性在本地改变。类似于 "
"[code]puppetsync[/code] 关键字。"

#: doc/classes/Mutex.xml:4
msgid "A synchronization mutex (mutual exclusion)."
msgstr "一个同步互斥锁(相互排斥)。"

#: doc/classes/Mutex.xml:7
msgid ""
"A synchronization mutex (mutual exclusion). This is used to synchronize "
"multiple [Thread]s, and is equivalent to a binary [Semaphore]. It guarantees "
"that only one thread can ever acquire the lock at a time. A mutex can be "
"used to protect a critical section; however, be careful to avoid deadlocks."
msgstr ""
"一个同步互斥锁(mutex)。它用于同步多个[Thread],相当于一个二进制"
"[Semaphore]。它保证每次只有一个线程可以获得锁。互斥锁可以用来保护临界区;但"
"是,要注意避免死锁。"

#: doc/classes/Mutex.xml:10 doc/classes/Semaphore.xml:10
#: doc/classes/Thread.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/threads/using_multiple_threads."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/threads/"
"using_multiple_threads.html"

#: doc/classes/Mutex.xml:16
msgid ""
"Locks this [Mutex], blocks until it is unlocked by the current owner.\n"
"[b]Note:[/b] This function returns without blocking if the thread already "
"has ownership of the mutex."
msgstr ""

#: doc/classes/Mutex.xml:23
#, fuzzy
msgid ""
"Tries locking this [Mutex], but does not block. Returns [constant OK] on "
"success, [constant ERR_BUSY] otherwise.\n"
"[b]Note:[/b] This function returns [constant OK] if the thread already has "
"ownership of the mutex."
msgstr ""
"试图锁定这个[Mutex],但并不阻塞。成功时返回[常量OK],否则返回[常量ERR_BUSY]。"

#: doc/classes/Mutex.xml:30
msgid ""
"Unlocks this [Mutex], leaving it to other threads.\n"
"[b]Note:[/b] If a thread called [method lock] or [method try_lock] multiple "
"times while already having ownership of the mutex, it must also call [method "
"unlock] the same number of times in order to unlock it correctly."
msgstr ""

#: modules/gdnative/doc_classes/NativeScript.xml:13
msgid ""
"Returns the documentation string that was previously set with "
"[code]godot_nativescript_set_class_documentation[/code]."
msgstr ""
"返回之前用[code]godot_nativescript_set_class_documentation[/code]设置的文档字"
"符串。"

#: modules/gdnative/doc_classes/NativeScript.xml:20
msgid ""
"Returns the documentation string that was previously set with "
"[code]godot_nativescript_set_method_documentation[/code]."
msgstr ""
"返回之前用[code]godot_nativescript_set_method_documentation[/code]设置的文档"
"字符串。"

#: modules/gdnative/doc_classes/NativeScript.xml:27
msgid ""
"Returns the documentation string that was previously set with "
"[code]godot_nativescript_set_property_documentation[/code]."
msgstr ""
"返回之前用[code]godot_nativescript_set_property_documentation[/code]设置的文"
"档字符串。"

#: modules/gdnative/doc_classes/NativeScript.xml:34
msgid ""
"Returns the documentation string that was previously set with "
"[code]godot_nativescript_set_signal_documentation[/code]."
msgstr ""
"返回之前用[code]godot_nativescript_set_signal_documentation[/code]设置的文档"
"字符串。"

#: modules/gdnative/doc_classes/NativeScript.xml:40
#, fuzzy
msgid ""
"Constructs a new object of the base type with a script of this type already "
"attached.\n"
"[b]Note:[/b] Any arguments passed to this function will be ignored and not "
"passed to the native constructor function. This will change with in a future "
"API extension."
msgstr ""
"构建一个基本类型的新对象,并附加一个该类型的脚本。\n"
"[i]注意[/i]。传递给这个函数的任何参数都将被忽略,不会传递给本地构造函数。这将"
"在未来的API扩展中改变。"

#: doc/classes/Navigation.xml:4
msgid "Mesh-based navigation and pathfinding node."
msgstr "基于网格的导航和寻路节点。"

#: doc/classes/Navigation.xml:7
#, fuzzy
msgid ""
"Provides navigation and pathfinding within a collection of "
"[NavigationMesh]es. By default, these will be automatically collected from "
"child [NavigationMeshInstance] nodes, but they can also be added on the fly "
"with [method navmesh_add]. In addition to basic pathfinding, this class also "
"assists with aligning navigation agents with the meshes they are navigating "
"on.\n"
"[b]Note:[/b] The current navigation system has many known issues and will "
"not always return optimal paths as expected. These issues will be fixed in "
"Godot 4.0."
msgstr ""
"在[NavigationMesh]的集合中提供导航和寻路。这将会从子节点[NavigationRegion3D]"
"中被自动收集。除了基本的寻路,这个类还帮助导航代理与导航上的网格对齐。"

#: doc/classes/Navigation.xml:11 doc/classes/NavigationMesh.xml:10
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/124"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Navigation.xml:18 doc/classes/Navigation2D.xml:18
#, fuzzy
msgid ""
"Returns the navigation point closest to the point given. Points are in local "
"coordinate space."
msgstr "返回指定坐标的图集或自动图块中,子图块的导航多边形。"

#: doc/classes/Navigation.xml:25
msgid ""
"Returns the surface normal at the navigation point closest to the point "
"given. Useful for rotating a navigation agent according to the navigation "
"mesh it moves on."
msgstr ""

#: doc/classes/Navigation.xml:32
msgid ""
"Returns the owner of the [NavigationMesh] which contains the navigation "
"point closest to the point given. This is usually a "
"[NavigationMeshInstance]. For meshes added via [method navmesh_add], returns "
"the owner that was given (or [code]null[/code] if the [code]owner[/code] "
"parameter was omitted)."
msgstr ""

#: doc/classes/Navigation.xml:41
msgid ""
"Returns the navigation point closest to the given line segment. When "
"enabling [code]use_collision[/code], only considers intersection points "
"between segment and navigation meshes. If multiple intersection points are "
"found, the one closest to the segment start point is returned."
msgstr ""

#: doc/classes/Navigation.xml:50
#, fuzzy
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the "
"agent properties associated with each [NavigationMesh] (radius, height, "
"etc.) are considered in the path calculation, otherwise they are ignored.\n"
"[b]Note:[/b] This method has known issues and will often return non-optimal "
"paths. These issues will be fixed in Godot 4.0."
msgstr ""
"返回两个给定点之间的路径。点在局部坐标空间中。如果[code]optimize[/code] 为 "
"[code]true[/code](默认值),则在路径计算中考虑与每个[NavigationMesh]相关联的代"
"理属性(半径、高度等),否则它们将被忽略。"

#: doc/classes/Navigation.xml:60
msgid ""
"Adds a [NavigationMesh]. Returns an ID for use with [method navmesh_remove] "
"or [method navmesh_set_transform]. If given, a [Transform2D] is applied to "
"the polygon. The optional [code]owner[/code] is used as return value for "
"[method get_closest_point_owner]."
msgstr ""

#: doc/classes/Navigation.xml:67
#, fuzzy
msgid "Removes the [NavigationMesh] with the given ID."
msgstr "返回指定名称的动画节点。"

#: doc/classes/Navigation.xml:75
#, fuzzy
msgid "Sets the transform applied to the [NavigationMesh] with the given ID."
msgstr "返回应用于该项导航网格的转换。"

#: doc/classes/Navigation.xml:81
msgid ""
"Defines which direction is up. By default, this is [code](0, 1, 0)[/code], "
"which is the world's \"up\" direction."
msgstr ""
"定义了向上的方向。默认情况下,这是[code](0,1,0)[/code],这是世界的“向上”方"
"向。"

#: doc/classes/Navigation2D.xml:4
msgid "2D navigation and pathfinding node."
msgstr "2D导航和寻路节点。"

#: doc/classes/Navigation2D.xml:7
#, fuzzy
msgid ""
"Navigation2D provides navigation and pathfinding within a 2D area, specified "
"as a collection of [NavigationPolygon] resources. By default, these are "
"automatically collected from child [NavigationPolygonInstance] nodes, but "
"they can also be added on the fly with [method navpoly_add].\n"
"[b]Note:[/b] The current navigation system has many known issues and will "
"not always return optimal paths as expected. These issues will be fixed in "
"Godot 4.0."
msgstr ""
"Navigation2D在一个2D区域内提供导航和寻路,指定为[NavigationPolygon]资源的集"
"合。这些资源被自动从子[NavigationRegion2D]节点中收集。"

#: doc/classes/Navigation2D.xml:11 doc/classes/NavigationPolygon.xml:27
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/117"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Navigation2D.xml:25
msgid ""
"Returns the owner of the [NavigationPolygon] which contains the navigation "
"point closest to the point given. This is usually a "
"[NavigationPolygonInstance]. For polygons added via [method navpoly_add], "
"returns the owner that was given (or [code]null[/code] if the [code]owner[/"
"code] parameter was omitted)."
msgstr ""

#: doc/classes/Navigation2D.xml:34
#, fuzzy
msgid ""
"Returns the path between two given points. Points are in local coordinate "
"space. If [code]optimize[/code] is [code]true[/code] (the default), the path "
"is smoothed by merging path segments where possible.\n"
"[b]Note:[/b] This method has known issues and will often return non-optimal "
"paths. These issues will be fixed in Godot 4.0."
msgstr ""
"返回两个给定点之间的路径。点在局部坐标空间中。如果[code]optimize[/code]为"
"[code]true[/code](默认),则路径将通过合并路径段来平滑。"

#: doc/classes/Navigation2D.xml:44
msgid ""
"Adds a [NavigationPolygon]. Returns an ID for use with [method "
"navpoly_remove] or [method navpoly_set_transform]. If given, a [Transform2D] "
"is applied to the polygon. The optional [code]owner[/code] is used as return "
"value for [method get_closest_point_owner]."
msgstr ""

#: doc/classes/Navigation2D.xml:51
#, fuzzy
msgid "Removes the [NavigationPolygon] with the given ID."
msgstr "返回图块的导航多边形。"

#: doc/classes/Navigation2D.xml:59
#, fuzzy
msgid ""
"Sets the transform applied to the [NavigationPolygon] with the given ID."
msgstr "返回应用于该项导航网格的转换。"

#: doc/classes/NavigationMesh.xml:4
msgid "A mesh to approximate the walkable areas and obstacles."
msgstr ""

#: doc/classes/NavigationMesh.xml:7
msgid ""
"A navigation mesh is a collection of polygons that define which areas of an "
"environment are traversable to aid agents in pathfinding through complicated "
"spaces."
msgstr ""

#: doc/classes/NavigationMesh.xml:17 doc/classes/NavigationPolygon.xml:49
msgid ""
"Adds a polygon using the indices of the vertices you get when calling "
"[method get_vertices]."
msgstr "使用调用[method get_vertices]得到的顶点的索引添加一个多边形。"

#: doc/classes/NavigationMesh.xml:23
#, fuzzy
msgid ""
"Clears the array of polygons, but it doesn't clear the array of vertices."
msgstr "清除多边形数组,但不清除轮廓和顶点数组。"

#: doc/classes/NavigationMesh.xml:30
msgid ""
"Initializes the navigation mesh by setting the vertices and indices "
"according to a [Mesh]."
msgstr ""

#: doc/classes/NavigationMesh.xml:37
#, fuzzy
msgid ""
"Returns whether the specified [code]bit[/code] of the [member geometry/"
"collision_mask] is set."
msgstr "如果指定碰撞遮罩bit位被设置,返回[code]true[/code]。"

#: doc/classes/NavigationMesh.xml:44 doc/classes/NavigationPolygon.xml:81
#, fuzzy
msgid ""
"Returns a [PoolIntArray] containing the indices of the vertices of a created "
"polygon."
msgstr "返回一个[PackedInt32Array],其中包含一个创建多边形的顶点的索引。"

#: doc/classes/NavigationMesh.xml:50
#, fuzzy
msgid "Returns the number of polygons in the navigation mesh."
msgstr "返回动画中的帧数。"

#: doc/classes/NavigationMesh.xml:56
#, fuzzy
msgid ""
"Returns a [PoolVector3Array] containing all the vertices being used to "
"create the polygons."
msgstr "返回一个[PackedVector2Array],包含所有用于创建多边形的顶点。"

#: doc/classes/NavigationMesh.xml:64
msgid ""
"If [code]value[/code] is [code]true[/code], sets the specified [code]bit[/"
"code] in the [member geometry/collision_mask].\n"
"If [code]value[/code] is [code]false[/code], clears the specified [code]bit[/"
"code] in the [member geometry/collision_mask]."
msgstr ""

#: doc/classes/NavigationMesh.xml:72 doc/classes/NavigationPolygon.xml:121
msgid ""
"Sets the vertices that can be then indexed to create polygons with the "
"[method add_polygon] method."
msgstr "设置顶点,然后使用[method add_polygon]方法创建多边形。"

#: doc/classes/NavigationMesh.xml:78
msgid ""
"The minimum floor to ceiling height that will still allow the floor area to "
"be considered walkable.\n"
"[b]Note:[/b] While baking, this value will be rounded up to the nearest "
"multiple of [member cell/height]."
msgstr ""

#: doc/classes/NavigationMesh.xml:82
msgid ""
"The minimum ledge height that is considered to still be traversable.\n"
"[b]Note:[/b] While baking, this value will be rounded down to the nearest "
"multiple of [member cell/height]."
msgstr ""

#: doc/classes/NavigationMesh.xml:86
#, fuzzy
msgid "The maximum slope that is considered walkable, in degrees."
msgstr "一个 Agent 能移动的最大速度。"

#: doc/classes/NavigationMesh.xml:89
msgid ""
"The distance to erode/shrink the walkable area of the heightfield away from "
"obstructions.\n"
"[b]Note:[/b] While baking, this value will be rounded up to the nearest "
"multiple of [member cell/size]."
msgstr ""

#: doc/classes/NavigationMesh.xml:93
#, fuzzy
msgid "The Y axis cell size to use for fields."
msgstr "用于“呼叫方法”轨道的呼叫模式。"

#: doc/classes/NavigationMesh.xml:96
msgid "The XZ plane cell size to use for fields."
msgstr ""

#: doc/classes/NavigationMesh.xml:99
msgid ""
"The sampling distance to use when generating the detail mesh, in cell unit."
msgstr ""

#: doc/classes/NavigationMesh.xml:102
msgid ""
"The maximum distance the detail mesh surface should deviate from "
"heightfield, in cell unit."
msgstr ""

#: doc/classes/NavigationMesh.xml:105
msgid ""
"The maximum distance a simplfied contour's border edges should deviate the "
"original raw contour."
msgstr ""

#: doc/classes/NavigationMesh.xml:108
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 "
"multiple of [member cell/size]."
msgstr ""

#: doc/classes/NavigationMesh.xml:112
msgid ""
"If [code]true[/code], marks walkable spans as not walkable if the clearance "
"above the span is less than [member agent/height]."
msgstr ""

#: doc/classes/NavigationMesh.xml:115
#, fuzzy
msgid "If [code]true[/code], marks spans that are ledges as non-walkable."
msgstr "如果[code]true[/code],则启用传递式按压。"

#: doc/classes/NavigationMesh.xml:118
msgid ""
"If [code]true[/code], marks non-walkable spans as walkable if their maximum "
"is within [member agent/max_climb] of a walkable neighbor."
msgstr ""

#: doc/classes/NavigationMesh.xml:121
msgid ""
"The physics layers to scan for static colliders.\n"
"Only used when [member geometry/parsed_geometry_type] is [constant "
"PARSED_GEOMETRY_STATIC_COLLIDERS] or [constant PARSED_GEOMETRY_BOTH]."
msgstr ""

#: doc/classes/NavigationMesh.xml:125
#, fuzzy
msgid ""
"Determines which type of nodes will be parsed as geometry. See [enum "
"ParsedGeometryType] for possible values."
msgstr "设置关节类型。有关可能的值,请参见[enum JointType]。"

#: doc/classes/NavigationMesh.xml:128
#, fuzzy
msgid ""
"The source of the geometry used when baking. See [enum SourceGeometryMode] "
"for possible values."
msgstr "背景模式。请参阅[enum BGMode]了解可能的值。"

#: doc/classes/NavigationMesh.xml:131
msgid ""
"The name of the group to scan for geometry.\n"
"Only used when [member geometry/source_geometry_mode] is [constant "
"SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN] or [constant "
"SOURCE_GEOMETRY_GROUPS_EXPLICIT]."
msgstr ""

#: doc/classes/NavigationMesh.xml:135
msgid ""
"The maximum number of vertices allowed for polygons generated during the "
"contour to polygon conversion process."
msgstr ""

#: doc/classes/NavigationMesh.xml:138
msgid ""
"Any regions with a size smaller than this will be merged with larger regions "
"if possible.\n"
"[b]Note:[/b] This value will be squared to calculate the number of cells. "
"For example, a value of 20 will set the number of cells to 400."
msgstr ""

#: doc/classes/NavigationMesh.xml:142
msgid ""
"The minimum size of a region for it to be created.\n"
"[b]Note:[/b] This value will be squared to calculate the minimum number of "
"cells allowed to form isolated island areas. For example, a value of 8 will "
"set the number of cells to 64."
msgstr ""

#: doc/classes/NavigationMesh.xml:146
#, fuzzy
msgid ""
"Partitioning algorithm for creating the navigation mesh polys. See [enum "
"SamplePartitionType] for possible values."
msgstr "图块原点的坐标。有关可能的值,参阅[enum TileOrigin]。"

#: doc/classes/NavigationMesh.xml:151
msgid ""
"Watershed partitioning. Generally the best choice if you precompute the "
"navigation mesh, use this if you have large open areas."
msgstr ""

#: doc/classes/NavigationMesh.xml:154
msgid ""
"Monotone partitioning. Use this if you want fast navigation mesh generation."
msgstr ""

#: doc/classes/NavigationMesh.xml:157
msgid ""
"Layer partitioning. Good choice to use for tiled navigation mesh with medium "
"and small sized tiles."
msgstr ""

#: doc/classes/NavigationMesh.xml:160
#, fuzzy
msgid "Represents the size of the [enum SamplePartitionType] enum."
msgstr "表示[enum PortType]枚举的大小。"

#: doc/classes/NavigationMesh.xml:163
msgid ""
"Parses mesh instances as geometry. This includes [MeshInstance], [CSGShape], "
"and [GridMap] nodes."
msgstr ""

#: doc/classes/NavigationMesh.xml:166
msgid ""
"Parses [StaticBody] colliders as geometry. The collider should be in any of "
"the layers specified by [member geometry/collision_mask]."
msgstr ""

#: doc/classes/NavigationMesh.xml:169
msgid ""
"Both [constant PARSED_GEOMETRY_MESH_INSTANCES] and [constant "
"PARSED_GEOMETRY_STATIC_COLLIDERS]."
msgstr ""

#: doc/classes/NavigationMesh.xml:172
#, fuzzy
msgid "Represents the size of the [enum ParsedGeometryType] enum."
msgstr "表示[enum PortType]枚举的大小。"

#: doc/classes/NavigationMesh.xml:175
msgid ""
"Scans the child nodes of [NavigationMeshInstance] recursively for geometry."
msgstr ""

#: doc/classes/NavigationMesh.xml:178
msgid ""
"Scans nodes in a group and their child nodes recursively for geometry. The "
"group is specified by [member geometry/source_group_name]."
msgstr ""

#: doc/classes/NavigationMesh.xml:181
msgid ""
"Uses nodes in a group for geometry. The group is specified by [member "
"geometry/source_group_name]."
msgstr ""

#: doc/classes/NavigationMesh.xml:184
#, fuzzy
msgid "Represents the size of the [enum SourceGeometryMode] enum."
msgstr "代表[enum ShaderMode]枚举的大小。"

#: doc/classes/NavigationMeshInstance.xml:4
#, fuzzy
msgid "Node that instances navigation meshes into a scenario."
msgstr "网格实例与场景相结合的节点。"

#: doc/classes/NavigationMeshInstance.xml:7
msgid ""
"NavigationMeshInstance is a node that takes a [NavigationMesh] resource and "
"adds it to the current scenario by creating an instance of it."
msgstr ""

#: doc/classes/NavigationMeshInstance.xml:15
#, fuzzy
msgid "If [code]true[/code], the navigation mesh will be used by [Navigation]."
msgstr "如果 [code]true[/code] 时,[AnimationTree] 将执行逻辑处理。"

#: doc/classes/NavigationMeshInstance.xml:18
#, fuzzy
msgid "The [NavigationMesh] resource for the instance."
msgstr "该实例的[Mesh]资源。"

#: doc/classes/NavigationPolygon.xml:4
msgid ""
"A node that has methods to draw outlines or use indices of vertices to "
"create navigation polygons."
msgstr "具有绘制轮廓或使用顶点索引来创建导航多边形的方法的节点。"

#: doc/classes/NavigationPolygon.xml:7
#, fuzzy
msgid ""
"There are two ways to create polygons. Either by using the [method "
"add_outline] method, or using the [method add_polygon] method.\n"
"Using [method add_outline]:\n"
"[codeblock]\n"
"var polygon = NavigationPolygon.new()\n"
"var outline = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, "
"50), Vector2(50, 0)])\n"
"polygon.add_outline(outline)\n"
"polygon.make_polygons_from_outlines()\n"
"$NavigationPolygonInstance.navpoly = polygon\n"
"[/codeblock]\n"
"Using [method add_polygon] and indices of the vertices array.\n"
"[codeblock]\n"
"var polygon = NavigationPolygon.new()\n"
"var vertices = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, "
"50), Vector2(50, 0)])\n"
"polygon.set_vertices(vertices)\n"
"var indices = PoolIntArray(0, 3, 1)\n"
"polygon.add_polygon(indices)\n"
"$NavigationPolygonInstance.navpoly = polygon\n"
"[/codeblock]"
msgstr ""
"创建多边形有两种方法。要么使用[method add_outline]方法,要么使用[method "
"add_polygon]方法。\n"
"使用[method add_outline]:\n"
"[codeblock]\n"
"var polygon = NavigationPolygon.new()\n"
"var outline = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, "
"50), Vector2(50, 0)])\n"
"polygon.add_outline(outline)\n"
"polygon.make_polygons_from_outlines()\n"
"$NavigationRegion2D.navpoly = polygon\n"
"[/codeblock]\n"
"使用[method add_polygon] 和顶点数组的索引:\n"
"[codeblock]\n"
"var polygon = NavigationPolygon.new()\n"
"var vertices = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), "
"Vector2(50, 50), Vector2(50, 0)])\n"
"polygon.set_vertices(vertices)\n"
"var indices = PackedInt32Array(0, 3, 1)\n"
"polygon.add_polygon(indices)\n"
"$NavigationRegion2D.navpoly = polygon\n"
"[/codeblock]"

#: doc/classes/NavigationPolygon.xml:34
#, fuzzy
msgid ""
"Appends a [PoolVector2Array] that contains the vertices of an outline to the "
"internal array that contains all the outlines. You have to call [method "
"make_polygons_from_outlines] in order for this array to be converted to "
"polygons that the engine will use."
msgstr ""
"将包含轮廓顶点的[PackedVector2Array]追加到包含所有轮廓的内部数组。你必须调用"
"[method make_polygons_from_outline]才能将这个数组转换为引擎将使用的多边形。"

#: doc/classes/NavigationPolygon.xml:42
#, fuzzy
msgid ""
"Adds a [PoolVector2Array] that contains the vertices of an outline to the "
"internal array that contains all the outlines at a fixed position. You have "
"to call [method make_polygons_from_outlines] in order for this array to be "
"converted to polygons that the engine will use."
msgstr ""
"将包含轮廓顶点的[PackedVector2Array]添加到包含固定位置的所有轮廓的内部数组"
"中。你必须调用[method make_polygons_from_outline]才能将这个数组转换为引擎将使"
"用的多边形。"

#: doc/classes/NavigationPolygon.xml:55
msgid ""
"Clears the array of the outlines, but it doesn't clear the vertices and the "
"polygons that were created by them."
msgstr "清除轮廓数组,但不清除顶点和由顶点创建的多边形。"

#: doc/classes/NavigationPolygon.xml:61
msgid ""
"Clears the array of polygons, but it doesn't clear the array of outlines and "
"vertices."
msgstr "清除多边形数组,但不清除轮廓和顶点数组。"

#: doc/classes/NavigationPolygon.xml:68
#, fuzzy
msgid ""
"Returns a [PoolVector2Array] containing the vertices of an outline that was "
"created in the editor or by script."
msgstr "返回一个[PackedVector2Array],包含在编辑器或脚本中创建的轮廓的顶点。"

#: doc/classes/NavigationPolygon.xml:74
msgid ""
"Returns the number of outlines that were created in the editor or by script."
msgstr "返回在编辑器或脚本中创建的轮廓的数量。"

#: doc/classes/NavigationPolygon.xml:87
msgid "Returns the count of all polygons."
msgstr "返回多边形的数量。"

#: doc/classes/NavigationPolygon.xml:93
#, fuzzy
msgid ""
"Returns a [PoolVector2Array] containing all the vertices being used to "
"create the polygons."
msgstr "返回一个[PackedVector2Array],包含所有用于创建多边形的顶点。"

#: doc/classes/NavigationPolygon.xml:99
msgid "Creates polygons from the outlines added in the editor or by script."
msgstr "从编辑器或脚本中添加的轮廓创建多边形。"

#: doc/classes/NavigationPolygon.xml:106
msgid ""
"Removes an outline created in the editor or by script. You have to call "
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
"删除在编辑器或脚本中创建的轮廓。你必须调用[method make_polygons_from_outline]"
"来更新多边形。"

#: doc/classes/NavigationPolygon.xml:114
msgid ""
"Changes an outline created in the editor or by script. You have to call "
"[method make_polygons_from_outlines] for the polygons to update."
msgstr ""
"更改在编辑器或脚本中创建的轮廓。你必须调用[method make_polygons_from_outline]"
"来更新多边形。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:4
msgid ""
"PacketPeer implementation using the [url=http://enet.bespin.org/index."
"html]ENet[/url] library."
msgstr ""
"使用[url=http://enet.bespin.org/index.html]ENet[/url]库实现PacketPeer。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:7
msgid ""
"A PacketPeer implementation that should be passed to [member SceneTree."
"network_peer] after being initialized as either a client or server. Events "
"can then be handled by connecting to [SceneTree] signals.\n"
"ENet's purpose is to provide a relatively thin, simple and robust network "
"communication layer on top of UDP (User Datagram Protocol).\n"
"[b]Note:[/b] ENet only uses UDP, not TCP. When forwarding the server port to "
"make your server accessible on the public Internet, you only need to forward "
"the server port in UDP. You can use the [UPNP] class to try to forward the "
"server port automatically when starting the server."
msgstr ""

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:12
#: doc/classes/NetworkedMultiplayerPeer.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/networking/"
"high_level_multiplayer.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/networking/"
"high_level_multiplayer.html"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:13
msgid "http://enet.bespin.org/usergroup0.html"
msgstr "http://enet.bespin.org/usergroup0.html"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:20
msgid ""
"Closes the connection. Ignored if no connection is currently established. If "
"this is a server it tries to notify all clients before forcibly "
"disconnecting them. If this is a client it simply closes the connection to "
"the server."
msgstr ""
"关闭连接。如果当前没有建立连接,则忽略不计。如果这是一个服务器,它将试图在强"
"行断开连接之前通知所有客户端。如果这是一个客户端,它只是关闭与服务器的连接。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:31
msgid ""
"Create client that connects to a server at [code]address[/code] using "
"specified [code]port[/code]. The given address needs to be either a fully "
"qualified domain name (e.g. [code]\"www.example.com\"[/code]) or an IP "
"address in IPv4 or IPv6 format (e.g. [code]\"192.168.1.1\"[/code]). The "
"[code]port[/code] is the port the server is listening on. The "
"[code]in_bandwidth[/code] and [code]out_bandwidth[/code] parameters can be "
"used to limit the incoming and outgoing bandwidth to the given number of "
"bytes per second. The default of 0 means unlimited bandwidth. Note that ENet "
"will strategically drop packets on specific sides of a connection between "
"peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth "
"parameters also determine the window size of a connection which limits the "
"amount of reliable packets that may be in transit at any given time. Returns "
"[constant OK] if a client was created, [constant ERR_ALREADY_IN_USE] if this "
"NetworkedMultiplayerENet instance already has an open connection (in which "
"case you need to call [method close_connection] first) or [constant "
"ERR_CANT_CREATE] if the client could not be created. If [code]client_port[/"
"code] is specified, the client will also listen to the given port; this is "
"useful for some NAT traversal techniques."
msgstr ""
"创建客户端,使用指定的[code]端口[/code]连接到[code]地址[/code]的服务器上。给"
"定的地址需要是一个完全合格的域名(例如,[code]\"www.example.com\"[/code])或"
"一个IPv4或IPv6格式的IP地址(例如,[code]\"192.168.1.1\"[/code])。"
"[code]port[/code]是服务器所监听的端口。[code]in_bandwidth[/code]和"
"[code]out_bandwidth[/code]参数可用于将传入和传出的带宽限制在给定的字节数/秒。"
"默认的0意味着无限的带宽。请注意,ENet会在对等体之间连接的特定一侧战略性地丢弃"
"数据包,以确保对等体的带宽不被淹没。带宽参数也决定了连接的窗口大小,它限制了"
"在任何给定时间内可能正在传输的可靠数据包的数量。如果创建了一个客户端,返回"
"[constant OK];如果这个NetworkedMultiplayerENet实例已经有一个开放的连接(在这"
"种情况下,你需要先调用[method close_connection]),返回[constant "
"ERR_CANT_CREATE];如果不能创建客户端,返回[constant ERR_CANT_CREATE]。如果指"
"定了[code]client_port[/code],客户端也将监听给定的端口;这对一些NAT穿越技术很"
"有用。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:41
msgid ""
"Create server that listens to connections via [code]port[/code]. The port "
"needs to be an available, unused port between 0 and 65535. Note that ports "
"below 1024 are privileged and may require elevated permissions depending on "
"the platform. To change the interface the server listens on, use [method "
"set_bind_ip]. The default IP is the wildcard [code]\"*\"[/code], which "
"listens on all available interfaces. [code]max_clients[/code] is the maximum "
"number of clients that are allowed at once, any number up to 4095 may be "
"used, although the achievable number of simultaneous clients may be far "
"lower and depends on the application. For additional details on the "
"bandwidth parameters, see [method create_client]. Returns [constant OK] if a "
"server was created, [constant ERR_ALREADY_IN_USE] if this "
"NetworkedMultiplayerENet instance already has an open connection (in which "
"case you need to call [method close_connection] first) or [constant "
"ERR_CANT_CREATE] if the server could not be created."
msgstr ""
"创建服务器,通过[code]port[/code]监听连接。该端口需要是一个可用的、未使用的端"
"口,在0到65535之间。注意,低于1024的端口是特权端口,根据平台的不同可能需要提"
"高权限。要改变服务器监听的接口,请使用[方法set_bind_ip]。默认IP是通配符"
"[code]\"*\"[/code],它监听所有可用的接口。[code]max_clients[/code]是允许同时"
"进行的最大客户数,可以使用任何数字,最高可达4095,尽管可实现的同时进行的客户"
"数可能要低得多,并且取决于应用。关于带宽参数的其他细节,见[method "
"create_client]。如果服务器被创建,返回[constant OK];如果这个"
"NetworkedMultiplayerENet实例已经有一个开放的连接(在这种情况下,你需要先调用"
"[method close_connection]),返回[constant ERR_CANT_CREATE];如果服务器不能被"
"创建,返回[constant ERR_CANT_CREATE]。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:49
msgid ""
"Disconnect the given peer. If \"now\" is set to [code]true[/code], the "
"connection will be closed immediately without flushing queued messages."
msgstr ""
"断开给定对等体的连接。如果 \"now \"被设置为[code]true[/code],连接将被立即关"
"闭而不冲刷队列中的消息。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:55
msgid ""
"Returns the channel of the last packet fetched via [method PacketPeer."
"get_packet]."
msgstr "返回通过[method PacketPeer.get_packet]获取的最后一个包的Channel。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:61
msgid ""
"Returns the channel of the next packet that will be retrieved via [method "
"PacketPeer.get_packet]."
msgstr "返回将通过[method PacketPeer.get_packet]获取的下一个数据包的Channel。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:68
#: modules/websocket/doc_classes/WebSocketServer.xml:27
msgid "Returns the IP address of the given peer."
msgstr "返回给定对等体的IP地址。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:75
#: modules/websocket/doc_classes/WebSocketServer.xml:34
msgid "Returns the remote port of the given peer."
msgstr "返回给定对等体的远程端口。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:82
msgid ""
"The IP used when creating a server. This is set to the wildcard [code]\"*\"[/"
"code] by default, which binds to all available interfaces. The given IP "
"needs to be in IPv4 or IPv6 address format, for example: "
"[code]\"192.168.1.1\"[/code]."
msgstr ""
"创建服务器时使用的IP。默认情况下,这被设置为通配符[code]\"*\"[/code],它绑定"
"到所有可用的接口。IP地址格式为IPv4或IPv6,例如:[code]\"192.168.1.1\"[/code]。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:89
msgid ""
"Configure the [X509Certificate] to use when [member use_dtls] is [code]true[/"
"code]. For servers, you must also setup the [CryptoKey] via [method "
"set_dtls_key]."
msgstr ""
"当[member use_dtls]为[code]true[/code]时,配置[X509Certificate]使用。对于服务"
"器,您还必须通过[method set_dtls_key]设置[CryptoKey]。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:96
msgid ""
"Configure the [CryptoKey] to use when [member use_dtls] is [code]true[/"
"code]. Remember to also call [method set_dtls_certificate] to setup your "
"[X509Certificate]."
msgstr ""
"当[member use_dtls]为[code]true[/code]时,配置[CryptoKey]来使用。记住也要调用"
"[method set_dtls_certificate]来设置[X509Certificate]。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:106
msgid ""
"Sets the timeout parameters for a peer.The timeout parameters control how "
"and when a peer will timeout from a failure to acknowledge reliable traffic. "
"Timeout values are expressed in milliseconds.\n"
"The [code]timeout_limit[/code] is a factor that, multiplied by a value based "
"on the average round trip time, will determine the timeout limit for a "
"reliable packet. When that limit is reached, the timeout will be doubled, "
"and the peer will be disconnected if that limit has reached "
"[code]timeout_min[/code]. The [code]timeout_max[/code] parameter, on the "
"other hand, defines a fixed timeout for which any packet must be "
"acknowledged or the peer will be dropped."
msgstr ""

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:113
msgid ""
"Enforce ordered packets when using [constant NetworkedMultiplayerPeer."
"TRANSFER_MODE_UNRELIABLE] (thus behaving similarly to [constant "
"NetworkedMultiplayerPeer.TRANSFER_MODE_UNRELIABLE_ORDERED]). This is the "
"only way to use ordering with the RPC system."
msgstr ""
"在使用[constant NetworkedMultiplayerPeer.TRANSFER_MODE_UNRELIABLE]时强制命令"
"包。(因此行为类似于[constant networkkedmultiplayerpeer . "
"transfer_mode_unreliable_ordered])。这是在RPC系统中使用排序的唯一方法。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:116
msgid ""
"The number of channels to be used by ENet. Channels are used to separate "
"different kinds of data. In reliable or ordered mode, for example, the "
"packet delivery order is ensured on a per-channel basis. This is done to "
"combat latency and reduces ordering restrictions on packets. The delivery "
"status of a packet in one channel won't stall the delivery of other packets "
"in another channel."
msgstr ""
"ENet要使用的信道数量。通道用于分离不同类型的数据。例如,在可靠或有序模式下,"
"包交付顺序是在每个通道的基础上保证的。这样做是为了消除延迟并减少对数据包的排"
"序限制。在一个通道中的包的交付状态不会停止在另一个通道中的其他包的交付。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:119
msgid ""
"The compression method used for network packets. These have different "
"tradeoffs of compression speed versus bandwidth, you may need to test which "
"one works best for your use case if you use compression at all.\n"
"[b]Note:[/b] Most games' network design involve sending many small packets "
"frequently (smaller than 4 KB each). If in doubt, it is recommended to keep "
"the default compression algorithm as it works best on these small packets.\n"
"[b]Note:[/b] [member compression_mode] must be set to the same value on both "
"the server and all its clients. Clients will fail to connect if the [member "
"compression_mode] set on the client differs from the one set on the server. "
"Prior to Godot 3.4, the default [member compression_mode] was [constant "
"COMPRESS_NONE]. Nonetheless, mixing engine versions between clients and "
"server is not recommended and not officially supported."
msgstr ""

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:124
msgid ""
"The hostname used for DTLS verification, to be compared against the \"CN\" "
"value in the certificate provided by the server.\n"
"When set to an empty string, the [code]address[/code] parameter passed to "
"[method create_client] is used instead."
msgstr ""

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:128
msgid ""
"Enable or disable certificate verification when [member use_dtls] "
"[code]true[/code]."
msgstr "当[member use_dtls] [code]true[/code]时启用或禁用证书验证。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:132
msgid ""
"Enable or disable the server feature that notifies clients of other peers' "
"connection/disconnection, and relays messages between them. When this option "
"is [code]false[/code], clients won't be automatically notified of other "
"peers and won't be able to send them packets through the server."
msgstr ""
"启用或禁用服务器特性,该特性通知客户端其他对等体的连接/断开,并在它们之间转发"
"消息。当此选项为[code]false[/code]时,客户端将不会自动收到其他对等体的通知,"
"也无法通过服务器向他们发送数据包。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:135
msgid ""
"Set the default channel to be used to transfer data. By default, this value "
"is [code]-1[/code] which means that ENet will only use 2 channels: one for "
"reliable packets, and one for unreliable packets. The channel [code]0[/code] "
"is reserved and cannot be used. Setting this member to any value between "
"[code]0[/code] and [member channel_count] (excluded) will force ENet to use "
"that channel for sending data. See [member channel_count] for more "
"information about ENet channels."
msgstr ""
"设置用于传输数据的默认通道。缺省情况下,该值为[code]-1[/code],表示ENet只使用"
"2个通道:一个用于可靠报文,一个用于不可靠报文。通道[code]0[/code]被保留,不能"
"使用。将该成员设置为[code]0[/code]和[member channel_count](不包括)之间的任何"
"值将强制ENet使用该通道发送数据。有关ENet通道的更多信息,请参见[member "
"channel_count]。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:139
#, fuzzy
msgid ""
"When enabled, the client or server created by this peer, will use "
"[PacketPeerDTLS] instead of raw UDP sockets for communicating with the "
"remote peer. This will make the communication encrypted with DTLS at the "
"cost of higher resource usage and potentially larger packet size.\n"
"[b]Note:[/b] When creating a DTLS server, make sure you setup the key/"
"certificate pair via [method set_dtls_key] and [method "
"set_dtls_certificate]. For DTLS clients, have a look at the [member "
"dtls_verify] option, and configure the certificate accordingly via [method "
"set_dtls_certificate]."
msgstr ""
"当启用时,由这个对等体创建的客户端或服务器将使用[PacketPeerDTLS]而不是原始的"
"UDP套接字来与远程对等体通信。这将使通信使用DTLS加密,但代价是更高的资源使用和"
"潜在的更大的包大小。\n"
"注意:在创建DTLS服务器时,请确保通过[method set_dtls_key]和[method "
"set_dtls_certificate]设置密钥/证书对。对于DTLS客户端,请查看[member "
"dtls_verify]选项,并通过[method set_dtls_certificate]配置相应的证书。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:145
#, fuzzy
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 debugging using tools like Wireshark easier."
msgstr "不压缩。这将使用最多的带宽,但有一个好处,那就是需要最少的CPU资源。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:148
msgid ""
"ENet's built-in range encoding. Works well on small packets, but is not the "
"most efficient algorithm on packets larger than 4 KB."
msgstr ""

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:151
msgid ""
"[url=http://fastlz.org/]FastLZ[/url] compression. This option uses less CPU "
"resources compared to [constant COMPRESS_ZLIB], at the expense of using more "
"bandwidth."
msgstr ""
"[url = http://fastlz.org/] FastLZ [/ url]压缩。与[constant COMPRESS_ZLIB]相"
"比,该选项使用的CPU资源更少,但使用的带宽更多。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:154
#, fuzzy
msgid ""
"[url=https://www.zlib.net/]Zlib[/url] compression. This option uses less "
"bandwidth compared to [constant COMPRESS_FASTLZ], at the expense of using "
"more CPU resources. Note that this algorithm is not very efficient on "
"packets smaller than 4 KB. Therefore, it's recommended to use other "
"compression algorithms in most cases."
msgstr ""
"[url = https://www.zlib.net/] Zlib压缩[/ url]。与[constant COMPRESS_FASTLZ]相"
"比,这个选项以使用更多CPU资源为代价,换取更少的带宽占用。"

#: modules/enet/doc_classes/NetworkedMultiplayerENet.xml:157
msgid "[url=https://facebook.github.io/zstd/]Zstandard[/url] compression."
msgstr "[url=https://facebook.github.io/zstd/]Zstandard[/url]压缩。"

#: doc/classes/NetworkedMultiplayerPeer.xml:4
msgid "A high-level network interface to simplify multiplayer interactions."
msgstr "高级网络接口,简化多人互动。"

#: doc/classes/NetworkedMultiplayerPeer.xml:7
msgid ""
"Manages the connection to network peers. Assigns unique IDs to each client "
"connected to the server. See also [MultiplayerAPI].\n"
"[b]Note:[/b] The high-level multiplayer API protocol is an implementation "
"detail and isn't meant to be used by non-Godot servers. It may change "
"without notice."
msgstr ""

#: doc/classes/NetworkedMultiplayerPeer.xml:12
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/537"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/NetworkedMultiplayerPeer.xml:18
msgid ""
"Returns the current state of the connection. See [enum ConnectionStatus]."
msgstr "返回连接的当前状态。参见[enum ConnectionStatus]。"

#: doc/classes/NetworkedMultiplayerPeer.xml:24
msgid ""
"Returns the ID of the [NetworkedMultiplayerPeer] who sent the most recent "
"packet."
msgstr "返回最近发送数据包的[NetworkedMultiplayerPeer]的ID。"

#: doc/classes/NetworkedMultiplayerPeer.xml:30
msgid "Returns the ID of this [NetworkedMultiplayerPeer]."
msgstr "返回这个[NetworkedMultiplayerPeer]的ID。"

#: doc/classes/NetworkedMultiplayerPeer.xml:36
msgid "Waits up to 1 second to receive a new network event."
msgstr "等待最多 1 秒以接收一个新的网络事件。"

#: doc/classes/NetworkedMultiplayerPeer.xml:43
msgid ""
"Sets the peer to which packets will be sent.\n"
"The [code]id[/code] can be one of: [constant TARGET_PEER_BROADCAST] to send "
"to all connected peers, [constant TARGET_PEER_SERVER] to send to the peer "
"acting as server, a valid peer ID to send to that specific peer, a negative "
"peer ID to send to all peers except that one. By default, the target peer is "
"[constant TARGET_PEER_BROADCAST]."
msgstr ""
"设置数据包将被发送至的对等体。\n"
"[code]id[/code]可以是其中之一。[constant TARGET_PEER_BROADCAST] 发送给所有连"
"接的对等体,[constant TARGET_PEER_SERVER] 发送给作为服务器的对等体,输入一个"
"有效的对等体ID将发送给该特定对等体,输入负的ID将发送给所有其余对等体。默认情"
"况下,目标对等体是[constant TARGET_PEER_BROADCAST]。"

#: doc/classes/NetworkedMultiplayerPeer.xml:50
msgid ""
"If [code]true[/code], this [NetworkedMultiplayerPeer] refuses new "
"connections."
msgstr "如果[code]为真[/code],这个[NetworkedMultiplayerPeer]拒绝新的连接。"

#: doc/classes/NetworkedMultiplayerPeer.xml:53
msgid ""
"The manner in which to send packets to the [code]target_peer[/code]. See "
"[enum TransferMode]."
msgstr "向[code]target_peer[/code]发送数据包的方式。参见[enum TransferMode]。"

#: doc/classes/NetworkedMultiplayerPeer.xml:59
msgid "Emitted when a connection attempt fails."
msgstr "当连接尝试失败时触发该信号。"

#: doc/classes/NetworkedMultiplayerPeer.xml:64
msgid "Emitted when a connection attempt succeeds."
msgstr "当连接尝试成功时触发。"

#: doc/classes/NetworkedMultiplayerPeer.xml:70
msgid "Emitted by the server when a client connects."
msgstr "当客户端连接时由服务器触发该信号。"

#: doc/classes/NetworkedMultiplayerPeer.xml:76
msgid "Emitted by the server when a client disconnects."
msgstr "当客户端断开连接时由服务器触发。"

#: doc/classes/NetworkedMultiplayerPeer.xml:81
msgid "Emitted by clients when the server disconnects."
msgstr "当服务器断开连接时由客户端触发。"

#: doc/classes/NetworkedMultiplayerPeer.xml:87
msgid ""
"Packets are not acknowledged, no resend attempts are made for lost packets. "
"Packets may arrive in any order. Potentially faster than [constant "
"TRANSFER_MODE_UNRELIABLE_ORDERED]. Use for non-critical data, and always "
"consider whether the order matters."
msgstr ""
"数据包不被确认,对丢失的数据包不进行重发尝试。数据包可以以任何顺序到达。可能"
"比[constant TRANSFER_MODE_UNRELIABLE_ORDERED]快。用于非关键数据,并注意考虑顺"
"序是否重要。"

#: doc/classes/NetworkedMultiplayerPeer.xml:90
msgid ""
"Packets are not acknowledged, no resend attempts are made for lost packets. "
"Packets are received in the order they were sent in. Potentially faster than "
"[constant TRANSFER_MODE_RELIABLE]. Use for non-critical data or data that "
"would be outdated if received late due to resend attempt(s) anyway, for "
"example movement and positional data."
msgstr ""
"数据包不被确认,对丢失的数据包不进行重发尝试。数据包按其发送顺序接收。有可能"
"比[constant TRANSFER_MODE_RELIABLE]快。用于非关键数据或由于重发尝试而迟迟不能"
"收到的数据,例如运动和位置数据。"

#: doc/classes/NetworkedMultiplayerPeer.xml:93
msgid ""
"Packets must be received and resend attempts should be made until the "
"packets are acknowledged. Packets must be received in the order they were "
"sent in. Most reliable transfer mode, but potentially the slowest due to the "
"overhead. Use for critical data that must be transmitted and arrive in "
"order, for example an ability being triggered or a chat message. Consider "
"carefully if the information really is critical, and use sparingly."
msgstr ""
"数据包必须被接收,并应进行重发尝试,直到数据包被确认。数据包必须按照其发送的"
"顺序接收。最可靠的传输模式,但由于开销很大,可能是最慢的。用于必须按顺序传输"
"和到达的关键数据,例如,正在触发的能力或聊天信息。仔细考虑信息是否真的是关键"
"的,并尽量少用。"

#: doc/classes/NetworkedMultiplayerPeer.xml:96
msgid "The ongoing connection disconnected."
msgstr "正在进行的连接断开了。"

#: doc/classes/NetworkedMultiplayerPeer.xml:99
msgid "A connection attempt is ongoing."
msgstr "一个连接尝试正在进行中。"

#: doc/classes/NetworkedMultiplayerPeer.xml:102
msgid "The connection attempt succeeded."
msgstr "连接尝试已经成功。"

#: doc/classes/NetworkedMultiplayerPeer.xml:105
msgid "Packets are sent to the server and then redistributed to other peers."
msgstr "数据包被发送到服务器,然后被重新分配到其他对等体。"

#: doc/classes/NetworkedMultiplayerPeer.xml:108
msgid "Packets are sent to the server alone."
msgstr "数据包被单独发送到服务器。"

#: doc/classes/NinePatchRect.xml:4
msgid ""
"Scalable texture-based frame that tiles the texture's centers and sides, but "
"keeps the corners' original size. Perfect for panels and dialog boxes."
msgstr ""
"可扩展的基于纹理的框架,对纹理的中心和侧面进行拼接,但保持角落的原始尺寸。非"
"常适用于面板和对话框。"

#: doc/classes/NinePatchRect.xml:7
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 sides horizontally or "
"vertically, the center on both axes but it doesn't scale or tile the corners."
msgstr ""
"NinePatchRect也被称为9片式面板,它基于一个小的纹理,产生任何尺寸的干净面板。"
"为了做到这一点,它将纹理分割成3×3的网格。当你缩放节点时,它在水平或垂直方向上"
"平铺纹理的两侧,在两个轴上平铺中心,但它不会缩放或平铺角部。"

#: doc/classes/NinePatchRect.xml:16
msgid ""
"Returns the size of the margin identified by the given [enum Margin] "
"constant."
msgstr "返回由给定的[enum Margin]常量标识的边距大小。"

#: doc/classes/NinePatchRect.xml:24
msgid ""
"Sets the size of the margin identified by the given [enum Margin] constant "
"to [code]value[/code] in pixels."
msgstr ""
"将由给定的[enum Margin]常量标识的边距大小设置为[code]value[/code],单位为像"
"素。"

#: doc/classes/NinePatchRect.xml:30
#, fuzzy
msgid ""
"The stretch mode to use for horizontal stretching/tiling. See [enum "
"NinePatchRect.AxisStretchMode] for possible values."
msgstr ""
"控制如何水平拉伸或平铺样式框的纹理。有关可能的值,请参阅 [enum "
"AxisStretchMode]。"

#: doc/classes/NinePatchRect.xml:33
#, fuzzy
msgid ""
"The stretch mode to use for vertical stretching/tiling. See [enum "
"NinePatchRect.AxisStretchMode] for possible values."
msgstr ""
"控制如何水平拉伸或平铺样式框的纹理。有关可能的值,请参阅 [enum "
"AxisStretchMode]。"

#: doc/classes/NinePatchRect.xml:36
msgid ""
"If [code]true[/code], draw the panel's center. Else, only draw the 9-slice's "
"borders."
msgstr "如果[code]true[/code],则绘制面板的中心。否则,只画9-slice的边框。"

#: doc/classes/NinePatchRect.xml:40
msgid ""
"The height of the 9-slice's bottom row. A margin of 16 means the 9-slice's "
"bottom corners and side will have a height of 16 pixels. You can set all 4 "
"margin values individually to create panels with non-uniform borders."
msgstr ""
"9-slice的底层行的高度。边距为16意味着9片的底角和侧面将有16像素的高度。你可以"
"单独设置所有4个边距值来创建具有非统一边框的面板。"

#: doc/classes/NinePatchRect.xml:43
#, fuzzy
msgid ""
"The width of the 9-slice's left column. A margin of 16 means the 9-slice's "
"left corners and side will have a width of 16 pixels. You can set all 4 "
"margin values individually to create panels with non-uniform borders."
msgstr ""
"9-slice的底层行的高度。边距为16意味着9片的底角和侧面将有16像素的高度。你可以"
"单独设置所有4个边距值来创建具有非统一边框的面板。"

#: doc/classes/NinePatchRect.xml:46
#, fuzzy
msgid ""
"The width of the 9-slice's right column. A margin of 16 means the 9-slice's "
"right corners and side will have a width of 16 pixels. You can set all 4 "
"margin values individually to create panels with non-uniform borders."
msgstr ""
"9-slice的底层行的高度。边距为16意味着9片的底角和侧面将有16像素的高度。你可以"
"单独设置所有4个边距值来创建具有非统一边框的面板。"

#: doc/classes/NinePatchRect.xml:49
#, fuzzy
msgid ""
"The height of the 9-slice's top row. A margin of 16 means the 9-slice's top "
"corners and side will have a height of 16 pixels. You can set all 4 margin "
"values individually to create panels with non-uniform borders."
msgstr ""
"9-slice的底层行的高度。边距为16意味着9片的底角和侧面将有16像素的高度。你可以"
"单独设置所有4个边距值来创建具有非统一边框的面板。"

#: doc/classes/NinePatchRect.xml:52
msgid ""
"Rectangular region of the texture to sample from. If you're working with an "
"atlas, use this property to define the area the 9-slice should use. All "
"other properties are relative to this one. If the rect is empty, "
"NinePatchRect will use the whole texture."
msgstr ""
"要取样的纹理的矩形区域。如果你正在使用一个图集,使用这个属性来定义9-slice应该"
"使用的区域。所有其他属性都是相对于这个属性而言的。如果矩形为空,NinePatchRect"
"将使用整个纹理。"

#: doc/classes/NinePatchRect.xml:55
msgid "The node's texture resource."
msgstr "节点的纹理资源。"

#: doc/classes/NinePatchRect.xml:61
msgid "Emitted when the node's texture changes."
msgstr "当节点的纹理发生变化时触发。"

#: doc/classes/NinePatchRect.xml:67
#, fuzzy
msgid ""
"Stretches the center texture across the NinePatchRect. This may cause the "
"texture to be distorted."
msgstr "沿直线拉伸纹理。导入禁用[b]重复[/b]的纹理以获得最佳效果。"

#: doc/classes/NinePatchRect.xml:70
msgid ""
"Repeats the center texture across the NinePatchRect. This won't cause any "
"visible distortion. The texture must be seamless for this to work without "
"displaying artifacts between edges.\n"
"[b]Note:[/b] Only supported when using the GLES3 renderer. When using the "
"GLES2 renderer, this will behave like [constant AXIS_STRETCH_MODE_STRETCH]."
msgstr ""

#: doc/classes/NinePatchRect.xml:74
msgid ""
"Repeats the center texture across the NinePatchRect, but will also stretch "
"the texture to make sure each tile is visible in full. This may cause the "
"texture to be distorted, but less than [constant AXIS_STRETCH_MODE_STRETCH]. "
"The texture must be seamless for this to work without displaying artifacts "
"between edges.\n"
"[b]Note:[/b] Only supported when using the GLES3 renderer. When using the "
"GLES2 renderer, this will behave like [constant AXIS_STRETCH_MODE_STRETCH]."
msgstr ""

#: doc/classes/Node.xml:4
msgid "Base class for all [i]scene[/i] objects."
msgstr "所有[i]scene[/i]对象的基类。"

#: doc/classes/Node.xml:7
#, fuzzy
msgid ""
"Nodes are Godot's building blocks. They can be assigned as the child of "
"another node, resulting in a tree arrangement. A given node can contain any "
"number of nodes as children with the requirement that all siblings (direct "
"children of a node) should have unique names.\n"
"A tree of nodes is called a [i]scene[/i]. Scenes can be saved to the disk "
"and then instanced into other scenes. This allows for very high flexibility "
"in the architecture and data model of Godot projects.\n"
"[b]Scene tree:[/b] The [SceneTree] contains the active tree of nodes. When a "
"node is added to the scene tree, it receives the [constant "
"NOTIFICATION_ENTER_TREE] notification and its [method _enter_tree] callback "
"is triggered. Child nodes are always added [i]after[/i] their parent node, i."
"e. the [method _enter_tree] callback of a parent node will be triggered "
"before its child's.\n"
"Once all nodes have been added in the scene tree, they receive the [constant "
"NOTIFICATION_READY] notification and their respective [method _ready] "
"callbacks are triggered. For groups of nodes, the [method _ready] callback "
"is called in reverse order, starting with the children and moving up to the "
"parent nodes.\n"
"This means that when adding a node to the scene tree, the following order "
"will be used for the callbacks: [method _enter_tree] of the parent, [method "
"_enter_tree] of the children, [method _ready] of the children and finally "
"[method _ready] of the parent (recursively for the entire scene tree).\n"
"[b]Processing:[/b] Nodes can override the \"process\" state, so that they "
"receive a callback on each frame requesting them to process (do something). "
"Normal processing (callback [method _process], toggled with [method "
"set_process]) happens as fast as possible and is dependent on the frame "
"rate, so the processing time [i]delta[/i] (in seconds) is passed as an "
"argument. Physics processing (callback [method _physics_process], toggled "
"with [method set_physics_process]) happens a fixed number of times per "
"second (60 by default) and is useful for code related to the physics "
"engine.\n"
"Nodes can also process input events. When present, the [method _input] "
"function will be called for each input that the program receives. In many "
"cases, this can be overkill (unless used for simple projects), and the "
"[method _unhandled_input] function might be preferred; it is called when the "
"input event was not handled by anyone else (typically, GUI [Control] nodes), "
"ensuring that the node only receives the events that were meant for it.\n"
"To keep track of the scene hierarchy (especially when instancing scenes into "
"other scenes), an \"owner\" can be set for the node with the [member owner] "
"property. This keeps track of who instanced what. This is mostly useful when "
"writing editors and tools, though.\n"
"Finally, when a node is freed with [method Object.free] or [method "
"queue_free], it will also free all its children.\n"
"[b]Groups:[/b] Nodes can be added to as many groups as you want to be easy "
"to manage, you could create groups like \"enemies\" or \"collectables\" for "
"example, depending on your game. See [method add_to_group], [method "
"is_in_group] and [method remove_from_group]. You can then retrieve all nodes "
"in these groups, iterate them and even call methods on groups via the "
"methods on [SceneTree].\n"
"[b]Networking with nodes:[/b] After connecting to a server (or making one, "
"see [NetworkedMultiplayerENet]), it is possible to use the built-in RPC "
"(remote procedure call) system to communicate over the network. By calling "
"[method rpc] with a method name, it will be called locally and in all "
"connected peers (peers = clients and the server that accepts connections). "
"To identify which node receives the RPC call, Godot will use its [NodePath] "
"(make sure node names are the same on all peers). Also, take a look at the "
"high-level networking tutorial and corresponding demos."
msgstr ""
"节点是Godot的构建模块。它们可以被指定为另一个节点的子节点,从而形成树状结构。"
"一个给定的节点可以包含任意数量的节点作为子节点,要求所有的兄弟姐妹(节点的直"
"接子节点)应该有唯一的名字。\n"
"一棵节点树被称为[i]场景[/i]。场景可以被保存到磁盘上,然后被实例化到其他场景"
"中。这使得Godot项目的架构和数据模型具有极高的灵活性。\n"
"[b]场景树:[/b] [SceneTree]包含活动的节点树。当一个节点被添加到场景树中时,它"
"将收到[constant NOTIFICATION_ENTER_TREE]通知,其[method _enter_tree]回调被触"
"发。子节点总是在其父节点[i]之后[/i]添加,即父节点的[method _enter_tree]回调将"
"在其子节点之前被触发。\n"
"一旦所有的节点被添加到场景树中,它们就会收到[constant NOTIFICATION_READY]通"
"知,它们各自的[method _ready]回调被触发。对于节点组,[method _ready]回调是按"
"相反的顺序调用的,从子节点开始,向上移动到父节点。\n"
"这意味着,当把一个节点添加到场景树中时,将使用下面的顺序进行回调。父节点的"
"[method _enter_tree],子节点的[method _enter_tree],子节点的[method _ready],"
"最后是父节点的[method _ready](对整个场景树进行递归)。\n"
"[b]处理:[/b] 节点可以覆盖 \"process \"状态,以便它们在每一帧上收到一个回调,"
"要求它们进行处理(做一些事情)。普通处理(回调[method _process],用[method "
"set_process]切换)尽可能快地发生,并且取决于帧速率,所以处理时间[i]delta[/i]"
"被作为一个参数传递。物理处理(回调[method _physics_process],用[method "
"set_physics_process]切换)每秒发生固定次数(默认为60),对物理引擎相关的代码"
"很有用。\n"
"节点也可以处理输入事件。当出现时,[method _input]函数将为程序收到的每个输入而"
"被调用。在许多情况下,这可能是多余的(除非用于简单的项目),[method "
"_unhandled_input]函数可能是首选;当输入事件没有被其他任何人(通常是"
"GUI[Control]节点)处理时,它被调用,确保节点只接收为它准备的事件。\n"
"为了跟踪场景的层次结构(特别是在将场景实例化到其他场景时),可以用[成员所有"
"者]属性为节点设置一个 \"所有者\"。这可以跟踪谁实例化了什么。不过,这在编写编"
"辑器和工具时非常有用。\n"
"最后,当一个节点被[method Object.free]或[method queue_free]释放时,它也将释放"
"它的所有子节点。\n"
"[b]组:[/b] 节点可以被添加到尽可能多的组中,以方便管理,你可以创建像 \"敌人 "
"\"或 \"可收集物 \"这样的组,这取决于你的游戏。参见[method add_to_group], "
"[method is_in_group] 和 [method remove_from_group]。然后你可以检索这些组中的"
"所有节点,对它们进行迭代,甚至通过[SceneTree]上的方法调用组上的方法。\n"
"[b]与节点联网:[/b] 在连接到一个服务器(或制作一个服务器,见"
"[NetworkedMultiplayerENet])之后,可以使用内置的RPC(远程过程调用)系统在网络"
"上进行通信。通过调用[method rpc]的方法名,它将在本地和所有连接的对等体中被调"
"用(对等体=客户端和接受连接的服务器)。为了识别哪个节点收到RPC调用,Godot将使"
"用它的[NodePath](确保所有对等体上的节点名称是相同的)。另外,请看一下高级网"
"络a教程和相应的演示。"

#: doc/classes/Node.xml:20
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/step_by_step/"
"scenes_and_nodes.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/step_by_step/"
"scenes_and_nodes.html"

#: doc/classes/Node.xml:21
#, fuzzy
msgid "https://github.com/godotengine/godot-demo-projects/"
msgstr "https://github.com/godotengine/tps-demo"

#: doc/classes/Node.xml:27
msgid ""
"Called when the node enters the [SceneTree] (e.g. upon instancing, scene "
"changing, or after calling [method add_child] in a script). If the node has "
"children, its [method _enter_tree] callback will be called first, and then "
"that of the children.\n"
"Corresponds to the [constant NOTIFICATION_ENTER_TREE] notification in "
"[method Object._notification]."
msgstr ""
"当节点进入[SceneTree]时调用(例如实例化时,场景改变时,或者在脚本中调用"
"[method add_child]后)。如果节点有子节点,则首先调用它的[method _enter_tree]回"
"调函数,然后再调用子节点的回调函数。\n"
"对应于[method Object._notification]中的[constant NOTIFICATION_ENTER_TREE]通"
"知。"

#: doc/classes/Node.xml:34
msgid ""
"Called when the node is about to leave the [SceneTree] (e.g. upon freeing, "
"scene changing, or after calling [method remove_child] in a script). If the "
"node has children, its [method _exit_tree] callback will be called last, "
"after all its children have left the tree.\n"
"Corresponds to the [constant NOTIFICATION_EXIT_TREE] notification in [method "
"Object._notification] and signal [signal tree_exiting]. To get notified when "
"the node has already left the active tree, connect to the [signal "
"tree_exited]."
msgstr ""
"当节点即将离开[SceneTree]时被调用(例如,在释放、场景改变或在脚本中调用"
"[method remove_child]后)。如果该节点有子节点,它的[method _exit_tree]回调将"
"在所有子节点离开树后被最后调用。\n"
"对应于 [method Object._notification] 中的 [constant NOTIFICATION_EXIT_TREE] "
"通知和 [signal tree_exiting] 信号。要在节点已经离开活动树时得到通知,请连接"
"到 [signal tree_exited] 。"

#: doc/classes/Node.xml:41
msgid ""
"The string returned from this method is displayed as a warning in the Scene "
"Dock if the script that overrides it is a [code]tool[/code] script.\n"
"Returning an empty string produces no warning.\n"
"Call [method update_configuration_warning] when the warning needs to be "
"updated for this node."
msgstr ""
"如果覆盖该方法的脚本是一个[code]tool[/code]脚本,那么从该方法返回的字符串将在"
"Scene Dock中显示为一个警告。\n"
"返回一个空字符串不会产生警告。\n"
"当需要更新这个节点的警告时,调用[method update_configuration_warning]。"

#: doc/classes/Node.xml:50
#, fuzzy
msgid ""
"Called when there is an input event. The input event propagates up through "
"the node tree until a node consumes it.\n"
"It is only called if input processing is enabled, which is done "
"automatically if this method is overridden, and can be toggled with [method "
"set_process_input].\n"
"To consume the input event and stop it propagating further to other nodes, "
"[method SceneTree.set_input_as_handled] can be called.\n"
"For gameplay input, [method _unhandled_input] and [method "
"_unhandled_key_input] are usually a better fit as they allow the GUI to "
"intercept the events first.\n"
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
"当有一个输入事件时被调用。输入事件通过节点树向上传播,直到一个节点处理它。\n"
"只有当输入处理被启用时才会被调用,如果这个方法被覆盖,它就会自动完成,并且可"
"以用[method set_process_input]来切换。\n"
"要消耗输入事件并阻止它进一步传播到其他节点,可以调用[method Viewport."
"set_input_as_handled]。\n"
"对于游戏输入,[method _unhandled_input]和[method _unhandled_key_input]通常更"
"适合,因为它们允许GUI首先拦截事件。\n"
"[b]注意:[/b] 这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它"
"不是孤儿)。"

#: doc/classes/Node.xml:61
#, fuzzy
msgid ""
"Called during the physics processing step of the main loop. Physics "
"processing means that the frame rate is synced to the physics, i.e. the "
"[code]delta[/code] variable should be constant. [code]delta[/code] is in "
"seconds.\n"
"It is only called if physics processing is enabled, which is done "
"automatically if this method is overridden, and can be toggled with [method "
"set_physics_process].\n"
"Corresponds to the [constant NOTIFICATION_PHYSICS_PROCESS] notification in "
"[method Object._notification].\n"
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
"在主循环的物理处理步骤中被调用。物理处理意味着帧率与物理同步,也就是说,"
"[code]delta[/code]变量应该是恒定的。\n"
"只有在物理处理被启用的情况下才会被调用,如果这个方法被重写,它就会自动完成,"
"并且可以通过[method set_physics_process]来切换。\n"
"对应于[方法Object._notification]中的[constant NOTIFICATION_PHYSICS_PROCESS]通"
"知。\n"
"[b]注意:[/b] 这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它"
"不是孤儿)。"

#: doc/classes/Node.xml:71
#, fuzzy
msgid ""
"Called during the processing step of the main loop. Processing happens at "
"every frame and as fast as possible, so the [code]delta[/code] time since "
"the previous frame is not constant. [code]delta[/code] is in seconds.\n"
"It is only called if processing is enabled, which is done automatically if "
"this method is overridden, and can be toggled with [method set_process].\n"
"Corresponds to the [constant NOTIFICATION_PROCESS] notification in [method "
"Object._notification].\n"
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
"在主循环的处理步骤中被调用。处理发生在每一帧,并且尽可能快,所以从上一帧开始"
"的[code]delta[/code]时间不是恒定的。\n"
"只有在处理过程被启用的情况下才会被调用,如果这个方法被覆盖,就会自动完成,可"
"以用[method set_process]来切换。\n"
"对应于 [method Object._notification] 中的 [constant NOTIFICATION_PROCESS] 通"
"知。\n"
"[b]注意:[/b] 只有当节点存在于场景树中时才会调用这个方法(即如果它不是孤"
"儿)。"

#: doc/classes/Node.xml:80
msgid ""
"Called when the node is \"ready\", i.e. when both the node and its children "
"have entered the scene tree. If the node has children, their [method _ready] "
"callbacks get triggered first, and the parent node will receive the ready "
"notification afterwards.\n"
"Corresponds to the [constant NOTIFICATION_READY] notification in [method "
"Object._notification]. See also the [code]onready[/code] keyword for "
"variables.\n"
"Usually used for initialization. For even earlier initialization, [method "
"Object._init] may be used. See also [method _enter_tree].\n"
"[b]Note:[/b] [method _ready] may be called only once for each node. After "
"removing a node from the scene tree and adding again, [code]_ready[/code] "
"will not be called for the second time. This can be bypassed with requesting "
"another call with [method request_ready], which may be called anywhere "
"before adding the node again."
msgstr ""
"当节点 \"就绪 \"时被调用。子节点的[method _ready]回调会首先被触发,而父节点会"
"在之后收到就绪通知。\n"
"对应于[method Object._notification]中的[constant NOTIFICATION_READY]通知。也"
"请参见变量的[code]onready[/code]关键字。\n"
"通常用于初始化。对于更早的初始化,可以使用[方法Object._init]。也请参见[方法"
"_enter_tree]。\n"
"[b]注意:[/b] [method _ready] 对于每个节点只能调用一次。在从场景树中删除一个"
"节点并再次添加后,[code]_ready[/code]将不会被第二次调用。这可以通过请求再次调"
"用[方法 request_ready]来绕过,它可以在再次添加节点之前的任何地方调用。"

#: doc/classes/Node.xml:90
#, fuzzy
msgid ""
"Called when an [InputEvent] hasn't been consumed by [method _input] or any "
"GUI. The input event propagates up through the node tree until a node "
"consumes it.\n"
"It is only called if unhandled input processing is enabled, which is done "
"automatically if this method is overridden, and can be toggled with [method "
"set_process_unhandled_input].\n"
"To consume the input event and stop it propagating further to other nodes, "
"[method SceneTree.set_input_as_handled] can be called.\n"
"For gameplay input, this and [method _unhandled_key_input] are usually a "
"better fit than [method _input] as they allow the GUI to intercept the "
"events first.\n"
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
"当[InputEvent]还没有被[method _input]或任何GUI处理时调用。输入事件通过节点树"
"向上传播,直到一个节点处理它。\n"
"只有在启用了未处理的输入处理时才会被调用,如果这个方法被重载,它就会自动完"
"成,并且可以用[method set_process_unhandled_input]来切换。\n"
"要消耗输入事件并阻止它进一步传播到其他节点,可以调用[method Viewport."
"set_input_as_handled]。\n"
"对于游戏输入,这和[method _unhandled_key_input]通常比[method _input]更适合,"
"因为它们允许GUI首先拦截事件。\n"
"[b]注意:[/b]这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它不"
"是孤儿)。"

#: doc/classes/Node.xml:101
#, fuzzy
msgid ""
"Called when an [InputEventKey] hasn't been consumed by [method _input] or "
"any GUI. The input event propagates up through the node tree until a node "
"consumes it.\n"
"It is only called if unhandled key input processing is enabled, which is "
"done automatically if this method is overridden, and can be toggled with "
"[method set_process_unhandled_key_input].\n"
"To consume the input event and stop it propagating further to other nodes, "
"[method SceneTree.set_input_as_handled] can be called.\n"
"For gameplay input, this and [method _unhandled_input] are usually a better "
"fit than [method _input] as they allow the GUI to intercept the events "
"first.\n"
"[b]Note:[/b] This method is only called if the node is present in the scene "
"tree (i.e. if it's not orphan)."
msgstr ""
"当[InputEventKey]没有被[method _input]或任何GUI处理时被调用。输入事件通过节点"
"树向上传播,直到一个节点处理它。\n"
"只有在启用了未处理的键输入处理时才会被调用,如果这个方法被覆盖,它就会自动完"
"成,并且可以用[method set_process_unhandled_key_input]来切换。\n"
"要消耗输入事件并阻止它进一步传播到其他节点,可以调用[method Viewport."
"set_input_as_handled]。\n"
"对于游戏输入,这和[method _unhandled_input]通常比[method _input]更适合,因为"
"它们允许GUI首先拦截事件。\n"
"[b]注意:[/b] 这个方法只有在节点存在于场景树中时才会被调用(也就是说,如果它"
"不是孤儿)。"

#: doc/classes/Node.xml:113
#, fuzzy
msgid ""
"Adds a child node. Nodes can have any number of children, but every child "
"must have a unique name. Child nodes are automatically deleted when the "
"parent node is deleted, so an entire scene can be removed by deleting its "
"topmost node.\n"
"If [code]legible_unique_name[/code] is [code]true[/code], the child node "
"will have a human-readable name based on the name of the node being "
"instanced instead of its type.\n"
"[b]Note:[/b] If the child node already has a parent, the function will fail. "
"Use [method remove_child] first to remove the node from its current parent. "
"For example:\n"
"[codeblock]\n"
"if child_node.get_parent():\n"
"    child_node.get_parent().remove_child(child_node)\n"
"add_child(child_node)\n"
"[/codeblock]\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=https://godot.readthedocs.io/en/3.2/tutorials/"
"misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://"
"godot.readthedocs.io/en/latest/tutorials/plugins/editor/index.html]editor "
"plugins[/url]. If [method add_child] is called without setting [member "
"owner], the newly added [Node] will not be visible in the scene tree, though "
"it will be visible in the 2D/3D view."
msgstr ""
"添加一个子节点。节点可以有任何数量的子节点,但是每个子节点必须有一个唯一的名"
"字。当父节点被删除时,子节点会被自动删除,所以整个场景可以通过删除其最上面的"
"节点而被删除。\n"
"如果[code]legible_unique_name[/code]是[code]true[/code],子节点将有一个基于被"
"实例化的节点的名称而不是其类型的人类可读名称。\n"
"[b]注意:[/b] 如果子节点已经有一个父节点,这个函数将失败。首先使用[method "
"remove_child]将节点从其当前的父节点中移除。比如说:\n"
"[codeblock]\n"
"if child_node.get_parent():\n"
"    child_node.get_parent().remove_child(child_node)\n"
"add_child(child_node)\n"
"[/codeblock]\n"
"如果你需要将子节点添加到子节点列表中某个特定节点的下面,请使用[method "
"add_sibling]而不是这个方法。\n"
"[b]注意:[/b] 如果你希望一个子节点被持久化到[PackedScene]中,除了调用[method "
"add_child]外,你必须设置[member owner]。这通常适用于[url=https://godot."
"readthedocs.io/zh_CN/latest/tutorials/misc/running_code_in_the_editor.html]工"
"具脚本[/url]和[url=https://godot.readthedocs.io/zh_CN/latest/tutorials/"
"plugins/editor/index.html]编辑器插件[/url]。如果调用[method add_child]而不设"
"置[member owner],新添加的[Node]在场景树中是不可见的,尽管它在2D/3D视图中是可"
"见的。"

#: doc/classes/Node.xml:130
#, fuzzy
msgid ""
"Adds [code]child_node[/code] as a child. The child is placed below the given "
"[code]node[/code] in the list of children.\n"
"If [code]legible_unique_name[/code] is [code]true[/code], the child node "
"will have a human-readable name based on the name of the node being "
"instanced instead of its type."
msgstr ""
"在当前的节点父节点上添加一个[code]兄弟姐妹[/code]节点,与该节点处于同一级别,"
"就在其下方。\n"
"如果[code]legible_unique_name[/code]是[code]true[/code],子节点将有一个基于被"
"实例化的节点名称而不是其类型的人类可读名称。\n"
"如果你不需要子节点被添加到子节点列表中的特定节点下面,请使用[method "
"add_child]代替这个方法。"

#: doc/classes/Node.xml:139
#, fuzzy
msgid ""
"Adds the node to a group. Groups are helpers to name and organize a subset "
"of nodes, for example \"enemies\" or \"collectables\". A node can be in any "
"number of groups. Nodes can be assigned a group at any time, but will not be "
"added until they are inside the scene tree (see [method is_inside_tree]). "
"See notes in the description, and the group methods in [SceneTree].\n"
"The [code]persistent[/code] option is used when packing node to "
"[PackedScene] and saving to file. Non-persistent groups aren't stored.\n"
"[b]Note:[/b] For performance reasons, the order of node groups is [i]not[/i] "
"guaranteed. The order of node groups should not be relied upon as it can "
"vary across project runs."
msgstr ""
"将节点添加到一个组中。组是命名和组织节点子集的辅助工具,例如 \"敌人 \"或 \"可"
"收集物\"。一个节点可以在任何数量的组中。节点可以在任何时候被分配到一个组中,"
"但是在它们进入场景树(见[method is_inside_tree])之前不会被添加。参见描述中的"
"注释,以及[SceneTree]中的组方法。\n"
"当把节点打包到[PackedScene]并保存到文件时,会使用[code]persistent[/code]选"
"项。非持久化的组不会被存储。"

#: doc/classes/Node.xml:147
msgid ""
"Returns [code]true[/code] if the node can process while the scene tree is "
"paused (see [member pause_mode]). Always returns [code]true[/code] if the "
"scene tree is not paused, and [code]false[/code] if the node is not in the "
"tree."
msgstr ""
"如果节点可以在场景树暂停时进行处理,返回[code]true[/code](见[member "
"pause_mode])。如果场景树没有暂停,总是返回[code]true[/code],如果节点不在树"
"中,则返回[code]false[/code]。"

#: doc/classes/Node.xml:154
msgid ""
"Duplicates the node, returning a new node.\n"
"You can fine-tune the behavior using the [code]flags[/code] (see [enum "
"DuplicateFlags]).\n"
"[b]Note:[/b] It will not work properly if the node contains a script with "
"constructor arguments (i.e. needs to supply arguments to [method Object."
"_init] method). In that case, the node will be duplicated without a script."
msgstr ""
"复制节点,返回一个新的节点。\n"
"你可以使用[code]flags[/code]来微调这个行为(见[enum DuplicateFlags])。\n"
"[b]注意:[/b] 如果节点包含一个带有构造参数的脚本(即需要向[method Object."
"_init]方法提供参数),它将不能正常工作。在这种情况下,节点将被复制而没有脚"
"本。"

#: doc/classes/Node.xml:165
#, fuzzy
msgid ""
"Finds a descendant of this node whose name matches [code]mask[/code] as in "
"[method String.match] (i.e. case-sensitive, but [code]\"*\"[/code] matches "
"zero or more characters and [code]\"?\"[/code] matches any single character "
"except [code]\".\"[/code]).\n"
"[b]Note:[/b] It does not match against the full path, just against "
"individual node names.\n"
"If [code]owned[/code] is [code]true[/code], this method only finds nodes "
"whose owner is this node. This is especially important for scenes "
"instantiated through a script, because those scenes don't have an owner.\n"
"[b]Note:[/b] As this method walks through all the descendants of the node, "
"it is the slowest way to get a reference to another node. Whenever possible, "
"consider using [method get_node] instead. To avoid using [method find_node] "
"too often, consider caching the node reference into a variable."
msgstr ""
"找到这个节点的子节点,其名称与[method String.match]中的[code]mask[/code]相匹"
"配(即区分大小写,但[code]\"*\"[/code]匹配零或多个字符,[code]\"?\"[/code]匹"
"配除[code]\".\"[/code]以外的任何单个字符)。\n"
"[b]注意:[/b]它不与全路径匹配,只与单个节点名称匹配。\n"
"如果[code]owner[/code]是[code]true[/code],这个方法只找到所有者是这个节点的节"
"点。这对通过脚本实例化的场景特别重要,因为这些场景没有所有者。"

#: doc/classes/Node.xml:175
#, fuzzy
msgid ""
"Finds the first parent of the current node whose name matches [code]mask[/"
"code] as in [method String.match] (i.e. case-sensitive, but [code]\"*\"[/"
"code] matches zero or more characters and [code]\"?\"[/code] matches any "
"single character except [code]\".\"[/code]).\n"
"[b]Note:[/b] It does not match against the full path, just against "
"individual node names.\n"
"[b]Note:[/b] As this method walks upwards in the scene tree, it can be slow "
"in large, deeply nested scene trees. Whenever possible, consider using "
"[method get_node] instead. To avoid using [method find_parent] too often, "
"consider caching the node reference into a variable."
msgstr ""
"找到这个节点的子节点,其名称与[method String.match]中的[code]mask[/code]相匹"
"配(即区分大小写,但[code]\"*\"[/code]匹配零或多个字符,[code]\"?\"[/code]匹"
"配除[code]\".\"[/code]以外的任何单个字符)。\n"
"[b]注意:[/b]它不与全路径匹配,只与单个节点名称匹配。\n"
"如果[code]owner[/code]是[code]true[/code],这个方法只找到所有者是这个节点的节"
"点。这对通过脚本实例化的场景特别重要,因为这些场景没有所有者。"

#: doc/classes/Node.xml:184
msgid ""
"Returns a child node by its index (see [method get_child_count]). This "
"method is often used for iterating all children of a node.\n"
"To access a child node via its name, use [method get_node]."
msgstr ""
"按索引返回一个子节点(见[方法get_child_count])。这个方法经常被用于遍历一个节"
"点的所有子节点。\n"
"要通过一个子节点的名字访问它,请使用[method get_node]。"

#: doc/classes/Node.xml:191
msgid "Returns the number of child nodes."
msgstr "返回子节点的数目。"

#: doc/classes/Node.xml:197
msgid "Returns an array of references to node's children."
msgstr "返回节点的子节点的引用数组。"

#: doc/classes/Node.xml:203
msgid ""
"Returns an array listing the groups that the node is a member of.\n"
"[b]Note:[/b] For performance reasons, the order of node groups is [i]not[/i] "
"guaranteed. The order of node groups should not be relied upon as it can "
"vary across project runs."
msgstr ""

#: doc/classes/Node.xml:210
msgid ""
"Returns the node's index, i.e. its position among the siblings of its parent."
msgstr ""

#: doc/classes/Node.xml:216
msgid ""
"Returns the peer ID of the network master for this node. See [method "
"set_network_master]."
msgstr "返回此节点的网络主节点的对等 ID。参见[method set _ network _ master]。"

#: doc/classes/Node.xml:223
msgid ""
"Fetches a node. The [NodePath] can be either a relative path (from the "
"current node) or an absolute path (in the scene tree) to a node. If the path "
"does not exist, a [code]null instance[/code] is returned and an error is "
"logged. Attempts to access methods on the return value will result in an "
"\"Attempt to call <method> on a null instance.\" error.\n"
"[b]Note:[/b] Fetching absolute paths only works when the node is inside the "
"scene tree (see [method is_inside_tree]).\n"
"[b]Example:[/b] Assume your current node is Character and the following "
"tree:\n"
"[codeblock]\n"
"/root\n"
"/root/Character\n"
"/root/Character/Sword\n"
"/root/Character/Backpack/Dagger\n"
"/root/MyGame\n"
"/root/Swamp/Alligator\n"
"/root/Swamp/Mosquito\n"
"/root/Swamp/Goblin\n"
"[/codeblock]\n"
"Possible paths are:\n"
"[codeblock]\n"
"get_node(\"Sword\")\n"
"get_node(\"Backpack/Dagger\")\n"
"get_node(\"../Swamp/Alligator\")\n"
"get_node(\"/root/MyGame\")\n"
"[/codeblock]"
msgstr ""
"获取一个节点。[NodePath]可以是一个相对路径(从当前节点),也可以是一个绝对路径"
"(在场景树中)。如果路径不存在,则返回[code]null instance[/code],并记录错误。"
"尝试访问返回值上的方法将导致“Attempt to call <method> on a null instance”错"
"误。</method>\n"
"[b]注意:[/b]获取绝对路径只在节点在场景树中时生效(参见[method "
"is_inside_tree])。\n"
"[b]示例:[/b]假设你当前的节点是Character,并且有一下树结构:\n"
"[codeblock]\n"
"/root\n"
"/root/Character\n"
"/root/Character/Sword\n"
"/root/Character/Backpack/Dagger\n"
"/root/MyGame\n"
"/root/Swamp/Alligator\n"
"/root/Swamp/Mosquito\n"
"/root/Swamp/Goblin\n"
"[/codeblock]\n"
"可能的路径会是下面这样:\n"
"[codeblock]\n"
"get_node(\"Sword\")\n"
"get_node(\"Backpack/Dagger\")\n"
"get_node(\"../Swamp/Alligator\")\n"
"get_node(\"/root/MyGame\")\n"
"[/codeblock]"

#: doc/classes/Node.xml:249
msgid ""
"Fetches a node and one of its resources as specified by the [NodePath]'s "
"subname (e.g. [code]Area2D/CollisionShape2D:shape[/code]). If several nested "
"resources are specified in the [NodePath], the last one will be fetched.\n"
"The return value is an array of size 3: the first index points to the [Node] "
"(or [code]null[/code] if not found), the second index points to the "
"[Resource] (or [code]null[/code] if not found), and the third index is the "
"remaining [NodePath], if any.\n"
"For example, assuming that [code]Area2D/CollisionShape2D[/code] is a valid "
"node and that its [code]shape[/code] property has been assigned a "
"[RectangleShape2D] resource, one could have this kind of output:\n"
"[codeblock]\n"
"print(get_node_and_resource(\"Area2D/CollisionShape2D\")) # "
"[[CollisionShape2D:1161], Null, ]\n"
"print(get_node_and_resource(\"Area2D/CollisionShape2D:shape\")) # "
"[[CollisionShape2D:1161], [RectangleShape2D:1156], ]\n"
"print(get_node_and_resource(\"Area2D/CollisionShape2D:shape:extents\")) # "
"[[CollisionShape2D:1161], [RectangleShape2D:1156], :extents]\n"
"[/codeblock]"
msgstr ""
"获取一个节点及其由[NodePath]子名称指定的资源(例如[code]Area2D/"
"CollisionShape2D:shape[/code])。如果在[NodePath]中指定了多个嵌套资源,则将获"
"取最后一个。\n"
"返回值是一个大小为3的数组:第一个索引指向[Node](或[code]null[/code]),第二个索"
"引指向[Resource](或[code]null[/code]),第三个索引是剩余的[NodePath]。\n"
"例如,假设[code]Area2D/CollisionShape2D[/code]是一个有效的节点,并且它的"
"[code]shape[/code]属性被分配了一个[RectangleShape2D]资源,可以有这样的输出:\n"
"[codeblock]\n"
"print(get_node_and_resource(\"Area2D/CollisionShape2D\")) # "
"[[CollisionShape2D:1161], Null, ]\n"
"print(get_node_and_resource(\"Area2D/CollisionShape2D:shape\")) # "
"[[CollisionShape2D:1161], [RectangleShape2D:1156], ]\n"
"print(get_node_and_resource(\"Area2D/CollisionShape2D:shape:extents\")) # "
"[[CollisionShape2D:1161], [RectangleShape2D:1156], :extents]\n"
"[/codeblock]"

#: doc/classes/Node.xml:263
msgid ""
"Similar to [method get_node], but does not log an error if [code]path[/code] "
"does not point to a valid [Node]."
msgstr ""
"类似于[method get_node],但如果[code]路径[/code]没有指向有效的[Node],则不会"
"记录错误。"

#: doc/classes/Node.xml:269
msgid ""
"Returns the parent node of the current node, or a [code]null instance[/code] "
"if the node lacks a parent."
msgstr ""
"返回当前节点的父节点,如果节点缺少父节点,则返回[code]null instance[/code]。"

#: doc/classes/Node.xml:275
msgid ""
"Returns the absolute path of the current node. This only works if the "
"current node is inside the scene tree (see [method is_inside_tree])."
msgstr ""
"返回当前节点的绝对路径。这只在当前节点在场景树中起作用(参见"
"[is_inside_tree])。"

#: doc/classes/Node.xml:282
msgid ""
"Returns the relative [NodePath] from this node to the specified [code]node[/"
"code]. Both nodes must be in the same scene or the function will fail."
msgstr ""
"从这个节点返回到指定的[code]node[/code]的相对[NodePath]。两个节点必须在同一个"
"场景中,否则函数将失败。"

#: doc/classes/Node.xml:288
#, fuzzy
msgid ""
"Returns the time elapsed (in seconds) since the last physics-bound frame "
"(see [method _physics_process]). This is always a constant value in physics "
"processing unless the frames per second is changed via [member Engine."
"iterations_per_second]."
msgstr ""
"返回从最后一个物理绑定帧开始经过的时间(参见[method _physics_process])。这在物"
"理处理中总是一个常量,除非每秒帧数通过[member Engine.iterations_per_second]被"
"改变。"

#: doc/classes/Node.xml:294
msgid ""
"Returns the node's order in the scene tree branch. For example, if called on "
"the first child node the position is [code]0[/code]."
msgstr ""
"返回场景树分支中节点的顺序。例如,如果在第一个子节点上调用,则位置为[code]0[/"
"code]。"

#: doc/classes/Node.xml:300
msgid ""
"Returns the time elapsed (in seconds) since the last process callback. This "
"value may vary from frame to frame."
msgstr "返回自上次进程回调以来经过的时间(以秒为单位)。这个值可能因帧而异。"

#: doc/classes/Node.xml:306
msgid ""
"Returns [code]true[/code] if this is an instance load placeholder. See "
"[InstancePlaceholder]."
msgstr ""
"如果这是一个实例加载占位符,则返回[code]true[/code]。看到"
"[InstancePlaceholder]。"

#: doc/classes/Node.xml:312
msgid "Returns the [SceneTree] that contains this node."
msgstr "返回包含该节点的[SceneTree]。"

#: doc/classes/Node.xml:318
msgid "Returns the node's [Viewport]."
msgstr "返回节点的[Viewport]。"

#: doc/classes/Node.xml:325
msgid ""
"Returns [code]true[/code] if the node that the [NodePath] points to exists."
msgstr "如果[NodePath]指向的节点存在,则返回[code]true[/code]。"

#: doc/classes/Node.xml:332
msgid ""
"Returns [code]true[/code] if the [NodePath] points to a valid node and its "
"subname points to a valid resource, e.g. [code]Area2D/CollisionShape2D:"
"shape[/code]. Properties with a non-[Resource] type (e.g. nodes or primitive "
"math types) are not considered resources."
msgstr ""
"如果[NodePath]指向一个有效的节点,并且它的子名称指向一个有效的资源,例如"
"[code]Area2D/CollisionShape2D:shape[/code],则返回[code]true[/code]。具有非"
"[资源]类型的属性(例如节点或基本数学类型)不被认为是资源。"

#: doc/classes/Node.xml:339
msgid ""
"Returns [code]true[/code] if the given node is a direct or indirect child of "
"the current node."
msgstr "如果给定节点是当前节点的直接或间接子节点,则返回[code]true[/code]。"

#: doc/classes/Node.xml:345
msgid ""
"Returns [code]true[/code] if the node is folded (collapsed) in the Scene "
"dock."
msgstr "如果节点在场景dock中折叠(collapsed),则返回[code]true[/code]。"

#: doc/classes/Node.xml:352
msgid ""
"Returns [code]true[/code] if the given node occurs later in the scene "
"hierarchy than the current node."
msgstr ""
"如果给定节点在场景层次结构中出现的时间晚于当前节点,则返回[code]true[/code]。"

#: doc/classes/Node.xml:359
msgid ""
"Returns [code]true[/code] if this node is in the specified group. See notes "
"in the description, and the group methods in [SceneTree]."
msgstr ""
"如果该节点在指定的组中,则返回[code]true[/code]。参见描述中的注释和"
"[SceneTree]中的组方法。"

#: doc/classes/Node.xml:365
msgid ""
"Returns [code]true[/code] if this node is currently inside a [SceneTree]."
msgstr "如果该节点当前在[SceneTree]中,返回[code]true[/code]。"

#: doc/classes/Node.xml:371
msgid ""
"Returns [code]true[/code] if the local system is the master of this node."
msgstr ""
"如果本地系统是此节点的主系统(用于多人游戏),则返回[code]true[/code]。"

#: doc/classes/Node.xml:377
msgid ""
"Returns [code]true[/code] if physics processing is enabled (see [method "
"set_physics_process])."
msgstr ""
"如果启用了物理处理,返回[code]true[/code](参见[method set_physics_process])。"

#: doc/classes/Node.xml:383
msgid ""
"Returns [code]true[/code] if internal physics processing is enabled (see "
"[method set_physics_process_internal])."
msgstr ""
"如果内部物理处理被启用,返回[code]true[/code](见[method "
"set_physics_process_internal])。"

#: doc/classes/Node.xml:389
msgid ""
"Returns [code]true[/code] if processing is enabled (see [method "
"set_process])."
msgstr "如果开启了处理,返回[code]true[/code](参见[method set_process])。"

#: doc/classes/Node.xml:395
msgid ""
"Returns [code]true[/code] if the node is processing input (see [method "
"set_process_input])."
msgstr ""
"如果节点正在处理输入(参见[set_process_input]),则返回[code]true[/code]。"

#: doc/classes/Node.xml:401
msgid ""
"Returns [code]true[/code] if internal processing is enabled (see [method "
"set_process_internal])."
msgstr ""
"如果启用了内部处理,返回[code]true[/code](参见[method "
"set_process_internal])。"

#: doc/classes/Node.xml:407
msgid ""
"Returns [code]true[/code] if the node is processing unhandled input (see "
"[method set_process_unhandled_input])."
msgstr ""
"如果节点正在处理未被处理的输入(参见[方法set_process_unhandled_input]),则返回"
"[code]true[/code]。"

#: doc/classes/Node.xml:413
msgid ""
"Returns [code]true[/code] if the node is processing unhandled key input (see "
"[method set_process_unhandled_key_input])."
msgstr ""
"如果节点正在处理未被处理的键输入(参见[方法set_process_unhandled_key_input]),"
"则返回[code]true[/code]。"

#: doc/classes/Node.xml:421
msgid ""
"Moves a child node to a different position (order) among the other children. "
"Since calls, signals, etc are performed by tree order, changing the order of "
"children nodes may be useful."
msgstr ""
"在其他子节点中将子节点移动到不同的位置(顺序)。由于调用、信号等是按树顺序执行"
"的,因此更改子节点的顺序可能会很有用。"

#: doc/classes/Node.xml:427
msgid ""
"Prints all stray nodes (nodes outside the [SceneTree]). Used for debugging. "
"Works only in debug builds."
msgstr ""
"打印所有散在节点([SceneTree]之外的节点)。用于调试。只能在调试版本中工作。"

#: doc/classes/Node.xml:433
msgid ""
"Prints the tree to stdout. Used mainly for debugging purposes. This version "
"displays the path relative to the current node, and is good for copy/pasting "
"into the [method get_node] function.\n"
"[b]Example output:[/b]\n"
"[codeblock]\n"
"TheGame\n"
"TheGame/Menu\n"
"TheGame/Menu/Label\n"
"TheGame/Menu/Camera2D\n"
"TheGame/SplashScreen\n"
"TheGame/SplashScreen/Camera2D\n"
"[/codeblock]"
msgstr ""
"将树打印到标准输出。主要用于调试。这个版本显示相对于当前节点的路径,适合复制/"
"粘贴到[method get_node]函数中。\n"
"[b]示例输出:[/b]\n"
"[codeblock]\n"
"TheGame\n"
"TheGame/Menu\n"
"TheGame/Menu/Label\n"
"TheGame/Menu/Camera2D\n"
"TheGame/SplashScreen\n"
"TheGame/SplashScreen/Camera2D\n"
"[/codeblock]"

#: doc/classes/Node.xml:448
#, fuzzy
msgid ""
"Similar to [method print_tree], this prints the tree to stdout. This version "
"displays a more graphical representation similar to what is displayed in the "
"scene inspector. It is useful for inspecting larger trees.\n"
"[b]Example output:[/b]\n"
"[codeblock]\n"
" ┖╴TheGame\n"
"    ┠╴Menu\n"
"    ┃  ┠╴Label\n"
"    ┃  ┖╴Camera2D\n"
"    ┖╴SplashScreen\n"
"       ┖╴Camera2D\n"
"[/codeblock]"
msgstr ""
"类似于[method print_tree],它将树打印到标准输出。这个版本显示了一个更图形化的"
"表示,类似于在场景检查器中显示的。它对检查较大的树很有用。\n"
"[b]示例输出:[/b]\n"
"[codeblock]\n"
" ┖╴TheGame\n"
"    ┠╴Menu\n"
"    ┃  ┠╴Label\n"
"    ┃  ┖╴Camera2D\n"
"    ┖-SplashScreen\n"
"       ┖╴Camera2D\n"
"[/codeblock]"

#: doc/classes/Node.xml:466
msgid ""
"Calls the given method (if present) with the arguments given in [code]args[/"
"code] on this node and recursively on all its children. If the "
"[code]parent_first[/code] argument is [code]true[/code], the method will be "
"called on the current node first, then on all its children. If "
"[code]parent_first[/code] is [code]false[/code], the children will be called "
"first."
msgstr ""
"在这个节点上使用[code]args[/code]中给出的参数调用给定的方法(如果存在),并递归"
"地在其所有子节点身上调用。如果[code]parent_first[/code]参数为[code]true[/"
"code],该方法将首先在当前节点上调用,然后在其所有子节点上调用。如果"
"[code]parent_first[/code]为[code]false[/code],子节点的方法将首先被调用。"

#: doc/classes/Node.xml:473
msgid ""
"Notifies the current node and all its children recursively by calling "
"[method Object.notification] on all of them."
msgstr ""
"通过对所有节点调用[method Object.notification],递归地通知当前节点和它的所有"
"子节点。"

#: doc/classes/Node.xml:479
#, fuzzy
msgid ""
"Queues a node for deletion at the end of the current frame. When deleted, "
"all of its child nodes will be deleted as well. This method ensures it's "
"safe to delete the node, contrary to [method Object.free]. Use [method "
"Object.is_queued_for_deletion] to check whether a node will be deleted at "
"the end of the frame.\n"
"[b]Important:[/b] If you have a variable pointing to a node, it will [i]not[/"
"i] be assigned to [code]null[/code] once the node is freed. Instead, it will "
"point to a [i]previously freed instance[/i] and you should validate it with "
"[method @GDScript.is_instance_valid] before attempting to call its methods "
"or access its properties."
msgstr ""
"在当前帧结束时排队删除一个节点。当删除时,其所有的子节点也将被删除。这个方法"
"确保删除节点是安全的,与[method Object.free]相反。使用 [method Object."
"is_queued_for_deletion] 来检查一个节点是否会在帧结束时被删除。"

#: doc/classes/Node.xml:486
#, fuzzy
msgid ""
"Moves this node to the bottom of parent node's children hierarchy. This is "
"often useful in GUIs ([Control] nodes), because their order of drawing "
"depends on their order in the tree. The top Node is drawn first, then any "
"siblings below the top Node in the hierarchy are successively drawn on top "
"of it. After using [code]raise[/code], a Control will be drawn on top of its "
"siblings."
msgstr ""
"将此节点移到父节点的子节点层次的底部。这在GUI([Control]节点)中通常很有用,"
"因为它们的绘制顺序取决于它们在树中的顺序,也就是说,它们在节点列表中越靠前,"
"它们就被绘制得越高。使用[code]raise[/code]后,一个控件将被绘制在它的兄弟姐妹"
"之上。"

#: doc/classes/Node.xml:492
msgid ""
"Removes a node and sets all its children as children of the parent node (if "
"it exists). All event subscriptions that pass by the removed node will be "
"unsubscribed."
msgstr ""
"移除一个节点,并将其所有的子节点设置为父节点的子节点(如果它存在的话)。所有"
"经过被删除的节点的事件订阅都将被取消。"

#: doc/classes/Node.xml:499
msgid ""
"Removes a child node. The node is NOT deleted and must be deleted manually."
msgstr "移除一个子节点。该节点不会被删除,必须手动删除。"

#: doc/classes/Node.xml:506
msgid ""
"Removes a node from a group. See notes in the description, and the group "
"methods in [SceneTree]."
msgstr ""
"将一个节点从一个组中移除。参见描述中的注释,以及[SceneTree]中的组方法。"

#: doc/classes/Node.xml:514
msgid ""
"Replaces a node in a scene by the given one. Subscriptions that pass through "
"this node will be lost."
msgstr "用给定的节点替换一个场景中的节点。经过该节点传递的事件订阅将会丢失。"

#: doc/classes/Node.xml:520
msgid ""
"Requests that [code]_ready[/code] be called again. Note that the method "
"won't be called immediately, but is scheduled for when the node is added to "
"the scene tree again (see [method _ready]). [code]_ready[/code] is called "
"only for the node which requested it, which means that you need to request "
"ready for each child if you want them to call [code]_ready[/code] too (in "
"which case, [code]_ready[/code] will be called in the same order as it would "
"normally)."
msgstr ""
"请求再次调用[code]_ready[/code]。注意,该方法不会被立即调用,而是被安排在该节"
"点再次被添加到场景树时(见[method _ready])。[code]_ready[/code]只为请求它的"
"节点调用,这意味着如果你想让每个子节点也调用[code]_ready[/code],你需要为它们"
"请求ready(在这种情况下,[code]_ready[/code]的调用顺序与正常情况下相同)。"

#: doc/classes/Node.xml:527
msgid ""
"Sends a remote procedure call request for the given [code]method[/code] to "
"peers on the network (and locally), optionally sending all additional "
"arguments as arguments to the method called by the RPC. The call request "
"will only be received by nodes with the same [NodePath], including the exact "
"same node name. Behaviour depends on the RPC configuration for the given "
"method, see [method rpc_config]. Methods are not exposed to RPCs by default. "
"See also [method rset] and [method rset_config] for properties. Returns an "
"empty [Variant].\n"
"[b]Note:[/b] You can only safely use RPCs on clients after you received the "
"[code]connected_to_server[/code] signal from the [SceneTree]. You also need "
"to keep track of the connection state, either by the [SceneTree] signals "
"like [code]server_disconnected[/code] or by checking [code]SceneTree."
"network_peer.get_connection_status() == CONNECTION_CONNECTED[/code]."
msgstr ""
"为给定的[code]method[/code]向网络(和本地)上的对等体发送远程过程调用请求,可"
"选择将所有附加参数作为参数发送给RPC调用的方法。调用请求将只被具有相同"
"[NodePath]的节点接收,包括完全相同的节点名称。行为取决于给定方法的RPC配置,见"
"[method rpc_config]。方法在默认情况下不会暴露给RPC。参见[method rset]和"
"[method rset_config]的属性。返回一个空的[Variant]。\n"
"[b]注意:[/b]只有在你从[SceneTree]收到[code]connected_to_server[/code]信号之"
"后,你才能安全地在客户端使用RPC。你还需要跟踪连接状态,可以通过"
"[code]server_disconnected[/code]等[SceneTree]信号或者检查[code]SceneTree."
"network_peer.get_connection_status() == CONNECTION_CONNECTED[/code]。"

#: doc/classes/Node.xml:536
msgid ""
"Changes the RPC mode for the given [code]method[/code] to the given "
"[code]mode[/code]. See [enum MultiplayerAPI.RPCMode]. An alternative is "
"annotating methods and properties with the corresponding keywords "
"([code]remote[/code], [code]master[/code], [code]puppet[/code], "
"[code]remotesync[/code], [code]mastersync[/code], [code]puppetsync[/code]). "
"By default, methods are not exposed to networking (and RPCs). See also "
"[method rset] and [method rset_config] for properties."
msgstr ""
"将指定的[code]方法[/code]的RPC模式改为指定的[code]模式[/code]。参见[enum "
"MultiplayerAPI.RPCMode]。另一种方法是用相应的关键字来注释方法和属性"
"([code]remote[/code], [code]master[/code], [code]puppet[/code], "
"[code]remoteesync[/code], [code]masterync[/code], [code]puppetsync[/code])。"
"默认情况下,方法不暴露于网络(和RPC)。参见[method rset]和[method "
"rset_config]的属性。"

#: doc/classes/Node.xml:544
msgid ""
"Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] "
"(see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty "
"[Variant]."
msgstr ""
"向由[code]peer_id[/code]确定的特定peer发送一个[method rpc](见[method "
"NetworkedMultiplayerPeer.set_target_peer])。返回一个空的[Variant]。"

#: doc/classes/Node.xml:551
msgid ""
"Sends a [method rpc] using an unreliable protocol. Returns an empty "
"[Variant]."
msgstr "使用一个不可靠的协议发送一个[method rpc]。返回一个空的[Variant]。"

#: doc/classes/Node.xml:559
msgid ""
"Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] "
"using an unreliable protocol (see [method NetworkedMultiplayerPeer."
"set_target_peer]). Returns an empty [Variant]."
msgstr ""
"使用不可靠的协议(见[method NetworkedMultiplayerPeer.set_target_peer])向由"
"[code]peer_id[/code]标识的特定peer发送一个[method rpc]。返回一个空的"
"[Variant]。"

#: doc/classes/Node.xml:567
msgid ""
"Remotely changes a property's value on other peers (and locally). Behaviour "
"depends on the RPC configuration for the given property, see [method "
"rset_config]. See also [method rpc] for RPCs for methods, most information "
"applies to this method as well."
msgstr ""
"在其他对等体上远程改变一个属性的值(和本地)。行为取决于给定属性的RPC配置,见"
"[method rset_config]。关于方法的RPC,也请参见[method rpc],大多数信息也适用于"
"这个方法。"

#: doc/classes/Node.xml:575
msgid ""
"Changes the RPC mode for the given [code]property[/code] to the given "
"[code]mode[/code]. See [enum MultiplayerAPI.RPCMode]. An alternative is "
"annotating methods and properties with the corresponding keywords "
"([code]remote[/code], [code]master[/code], [code]puppet[/code], "
"[code]remotesync[/code], [code]mastersync[/code], [code]puppetsync[/code]). "
"By default, properties are not exposed to networking (and RPCs). See also "
"[method rpc] and [method rpc_config] for methods."
msgstr ""
"将给定的[code]属性[/code]的RPC模式改为给定的[code]mode[/code]。参见[enum "
"MultiplayerAPI.RPCMode]。另一种方法是用相应的关键字([code]remote[/code], "
"[code]master[/code], [code]puppet[/code], [code]remoteesync[/code], "
"[code]masterync[/code], [code]puppetsync[/code])来注释方法和属性。默认情况"
"下,属性不会暴露给网络(和RPC)。也请参见[method rpc]和[method rpc_config]的"
"方法。"

#: doc/classes/Node.xml:584
msgid ""
"Remotely changes the property's value on a specific peer identified by "
"[code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer])."
msgstr ""
"远程改变属性的值在一个指定的peer上[code]peer_id[/code](参见[method "
"networkkedmultiplayerpeer .set_target_peer])。"

#: doc/classes/Node.xml:592
msgid ""
"Remotely changes the property's value on other peers (and locally) using an "
"unreliable protocol."
msgstr "使用不可靠的协议远程更改其他对等点(和本地)上的属性值。"

#: doc/classes/Node.xml:601
msgid ""
"Remotely changes property's value on a specific peer identified by "
"[code]peer_id[/code] using an unreliable protocol (see [method "
"NetworkedMultiplayerPeer.set_target_peer])."
msgstr ""
"使用不可靠的协议(参见[method networkkedmultiplayerpeer .set_target_peer])远程"
"更改指定对等体[code]peer_id[/code]上的属性值。"

#: doc/classes/Node.xml:608
msgid "Sets the folded state of the node in the Scene dock."
msgstr "设置场景dock中节点的折叠状态。"

#: doc/classes/Node.xml:616
msgid ""
"Sets the node's network master to the peer with the given peer ID. The "
"network master is the peer that has authority over the node on the network. "
"Useful in conjunction with the [code]master[/code] and [code]puppet[/code] "
"keywords. Inherited from the parent node by default, which ultimately "
"defaults to peer ID 1 (the server). If [code]recursive[/code], the given "
"peer is recursively set as the master for all children of this node."
msgstr ""
"将节点的网络主节点设置为具有给定ID的对等体。网络主节点是对网络上的节点具有权"
"威的对等体。与[code]master[/code]和[code]puppet[/code]关键字一起使用很有用。"
"默认情况下从父节点继承,父节点最终默认为peer ID 1(服务器)。如果"
"[code]recursive[/code],则递归地将给定的对等节点设置为该节点所有子节点的主节"
"点。"

#: doc/classes/Node.xml:623
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 a fixed (usually 60 FPS, see [member Engine."
"iterations_per_second] to change) interval (and the [method "
"_physics_process] callback will be called if exists). Enabled automatically "
"if [method _physics_process] is overridden. Any calls to this before [method "
"_ready] will be ignored."
msgstr ""
"启用或禁用物理学(即固定帧率)处理。当一个节点被处理时,它将以一个固定的(通"
"常是60FPS,见[member Engine.iterations_per_second]来更改其值)时间间隔收到一"
"个[常量NOTIFICATION_PHYSICS_PROCESS](如果存在,[method _physics_process]回调"
"将被调用)。如果[method _physics_process]被重写,则自动启用。在[method "
"_ready]之前对它的任何调用都将被忽略。"

#: doc/classes/Node.xml:630
#, fuzzy
msgid ""
"Enables or disables internal physics for this node. Internal physics "
"processing happens in isolation from the normal [method _physics_process] "
"calls and is used by some nodes internally to guarantee proper functioning "
"even if the node is paused or physics processing is disabled for scripting "
"([method set_physics_process]). Only useful for advanced uses to manipulate "
"built-in nodes' behavior.\n"
"[b]Warning:[/b] Built-in Nodes rely on the internal processing for their own "
"logic, so changing this value from your code may lead to unexpected "
"behavior. Script access to this internal logic is provided for specific "
"advanced uses, but is unsafe and not supported."
msgstr ""
"启用或禁用物理帧(即固定帧率)处理。当一个节点被处理时,它将以一个固定的(通"
"常是60FPS,见[member Engine.iterations_per_second]来改变它的值)时间间隔收到"
"一个[constant NOTIFICATION_PHYSICS_PROCESS](如果存在,[method "
"_physics_process]回调将被调用)。如果[method _physics_process]被重写,则自动"
"启用。在[method _ready]之前对它的任何调用都将被忽略。"

#: doc/classes/Node.xml:638
msgid ""
"Enables or disables processing. When a node is being processed, it will "
"receive a [constant NOTIFICATION_PROCESS] on every drawn frame (and the "
"[method _process] callback will be called if exists). Enabled automatically "
"if [method _process] is overridden. Any calls to this before [method _ready] "
"will be ignored."
msgstr ""
"启用或禁用帧处理。当一个节点被处理时,它将在每个绘制的帧上收到一个[constant "
"NOTIFICATION_PROCESS](如果存在,[method _process]回调将被调用)。如果"
"[method _process]被重写,则自动启用。在 [method _ready] 之前对它的任何调用都"
"将被忽略。"

#: doc/classes/Node.xml:645
msgid ""
"Enables or disables input processing. This is not required for GUI controls! "
"Enabled automatically if [method _input] is overridden. Any calls to this "
"before [method _ready] will be ignored."
msgstr ""
"启用或禁用输入处理。对于GUI控件来说,这不是必需的。如果[method _input]被重"
"写,则自动启用。任何在[method _ready]之前对它的调用都将被忽略。"

#: doc/classes/Node.xml:652
#, fuzzy
msgid ""
"Enables or disabled internal processing for this node. Internal processing "
"happens in isolation from the normal [method _process] calls and is used by "
"some nodes internally to guarantee proper functioning even if the node is "
"paused or processing is disabled for scripting ([method set_process]). Only "
"useful for advanced uses to manipulate built-in nodes' behavior.\n"
"[b]Warning:[/b] Built-in Nodes rely on the internal processing for their own "
"logic, so changing this value from your code may lead to unexpected "
"behavior. Script access to this internal logic is provided for specific "
"advanced uses, but is unsafe and not supported."
msgstr ""
"启用或禁用该节点的内部处理。内部处理发生在与正常的[method _process]调用隔离的"
"情况下,并被一些节点内部使用,以保证正常运行。即使节点被暂停或process函数被脚"
"本禁用([method set_process]),其内部处理仍会进行。只对高级用途有用,可以操"
"纵内置节点的行为。"

#: doc/classes/Node.xml:660
msgid ""
"Enables unhandled input processing. This is not required for GUI controls! "
"It enables the node to receive all input that was not previously handled "
"(usually by a [Control]). Enabled automatically if [method _unhandled_input] "
"is overridden. Any calls to this before [method _ready] will be ignored."
msgstr ""
"启用未处理的输入处理。这对GUI控件来说是不需要的! 它使节点能够接收所有以前没有"
"处理的输入(通常是由[控制]处理的)。如果[method _unhandled_input]被重载,则自"
"动启用。在[method _ready]之前对它的任何调用都将被忽略。"

#: doc/classes/Node.xml:667
msgid ""
"Enables unhandled key input processing. Enabled automatically if [method "
"_unhandled_key_input] is overridden. Any calls to this before [method "
"_ready] will be ignored."
msgstr ""
"启用未处理的按键输入处理。如果[method _unhandled_key_input]被重写,则自动启"
"用。任何在[method _ready]之前对它的调用都将被忽略。"

#: doc/classes/Node.xml:674
msgid ""
"Sets whether this is an instance load placeholder. See [InstancePlaceholder]."
msgstr "设置这是否是一个实例加载占位符。参见[InstancePlaceholder]。"

#: doc/classes/Node.xml:680
msgid ""
"Updates the warning displayed for this node in the Scene Dock.\n"
"Use [method _get_configuration_warning] to setup the warning message to "
"display."
msgstr ""
"更新在Scene Dock中为这个节点显示的警告。\n"
"使用[method _get_configuration_warning]来设置要显示的警告信息。"

#: doc/classes/Node.xml:687
msgid ""
"The override to the default [MultiplayerAPI]. Set to [code]null[/code] to "
"use the default [SceneTree] one."
msgstr ""
"对默认的[MultiplayerAPI]的重写。设置为[code]null[/code]可以使用默认的"
"[SceneTree]。"

#: doc/classes/Node.xml:690
msgid ""
"If a scene is instantiated from a file, its topmost node contains the "
"absolute file path from which it was loaded in [member filename] (e.g. "
"[code]res://levels/1.tscn[/code]). Otherwise, [member filename] is set to an "
"empty string."
msgstr ""

#: doc/classes/Node.xml:693
msgid ""
"The [MultiplayerAPI] instance associated with this node. Either the [member "
"custom_multiplayer], or the default SceneTree one (if inside tree)."
msgstr ""
"与该节点相关的[MultiplayerAPI]实例。要么是[member custom_multiplayer],要么是"
"默认的SceneTree(如果在树内)。"

#: doc/classes/Node.xml:696
#, fuzzy
msgid ""
"The name of the node. This name is unique among the siblings (other child "
"nodes from the same parent). When set to an existing name, the node will be "
"automatically renamed.\n"
"[b]Note:[/b] Auto-generated names might include the [code]@[/code] "
"character, which is reserved for unique names when using [method add_child]. "
"When setting the name manually, any [code]@[/code] will be removed."
msgstr ""
"节点的名称。这个名字在兄弟姐妹中是唯一的(来自同一个父节点的其他子节点)。当"
"设置为现有名称时,节点将被自动重命名。"

#: doc/classes/Node.xml:700
msgid ""
"The node owner. A node can have any other node as owner (as long as it is a "
"valid parent, grandparent, etc. ascending in the tree). When saving a node "
"(using [PackedScene]), all the nodes it owns will be saved with it. This "
"allows for the creation of complex [SceneTree]s, with instancing and "
"subinstancing."
msgstr ""
"节点的所有者。节点可以使用任何其它节点作为其所有者(只要是能够沿着场景树向上"
"追溯到的有效父节点、祖父节点等)。(使用 [PackedScene])保存节点时,所有它拥"
"有的节点也会随之保存。由此即可通过实例化和子实例化来创建复杂的 [SceneTree]。"

#: doc/classes/Node.xml:703
msgid "Pause mode. How the node will behave if the [SceneTree] is paused."
msgstr "暂停模式。这将决定[SceneTree]被暂停时节点的行为。"

#: doc/classes/Node.xml:706
msgid ""
"The node's priority in the execution order of the enabled processing "
"callbacks (i.e. [constant NOTIFICATION_PROCESS], [constant "
"NOTIFICATION_PHYSICS_PROCESS] and their internal counterparts). Nodes whose "
"process priority value is [i]lower[/i] will have their processing callbacks "
"executed first."
msgstr ""
"节点在已启用的处理回调(即 [constant NOTIFICATION_PROCESS]、[constant "
"NOTIFICATION_PHYSICS_PROCESS] 及其内部对应物)的执行顺序中的优先级。进程优先"
"级值[i]较低[/i]的节点将首先执行其处理回调。"

#: doc/classes/Node.xml:712
msgid "Emitted when the node is ready."
msgstr "当节点准备好时触发。"

#: doc/classes/Node.xml:717
msgid "Emitted when the node is renamed."
msgstr "在重命名节点时触发。"

#: doc/classes/Node.xml:722
msgid "Emitted when the node enters the tree."
msgstr "当节点进入树时触发。"

#: doc/classes/Node.xml:727
msgid "Emitted after the node exits the tree and is no longer active."
msgstr "在节点退出树之后触发,并且不再处于活动状态。"

#: doc/classes/Node.xml:732
msgid ""
"Emitted when the node is still active but about to exit the tree. This is "
"the right place for de-initialization (or a \"destructor\", if you will)."
msgstr ""
"当节点仍处于活动状态但即将退出树时发出。这是反初始化的正确位置(如果愿意,也可"
"以称为“析构函数”)。"

#: doc/classes/Node.xml:738
msgid "Notification received when the node enters a [SceneTree]."
msgstr "当节点进入[SceneTree]时收到该通知。"

#: doc/classes/Node.xml:741
msgid "Notification received when the node is about to exit a [SceneTree]."
msgstr "当节点即将退出[SceneTree]时收到该通知。"

#: doc/classes/Node.xml:744
msgid "Notification received when the node is moved in the parent."
msgstr "在父节点中移动节点时收到该通知。"

#: doc/classes/Node.xml:747
msgid "Notification received when the node is ready. See [method _ready]."
msgstr "当节点就绪时接收到通知。请参见[method _ ready]。"

#: doc/classes/Node.xml:750
msgid "Notification received when the node is paused."
msgstr "暂停节点时接收到的通知。"

#: doc/classes/Node.xml:753
msgid "Notification received when the node is unpaused."
msgstr "节点暂停时收到该通知。"

#: doc/classes/Node.xml:756
msgid ""
"Notification received every frame when the physics process flag is set (see "
"[method set_physics_process])."
msgstr ""
"当 physics process flag 被设置时,每一帧都会收到该通知(见[方法"
"set_physics_process])。"

#: doc/classes/Node.xml:759
msgid ""
"Notification received every frame when the process flag is set (see [method "
"set_process])."
msgstr "当 process flag 被设置时,每一帧都收到通知(见[方法set_process])。"

#: doc/classes/Node.xml:762
msgid ""
"Notification received when a node is set as a child of another node.\n"
"[b]Note:[/b] This doesn't mean that a node entered the [SceneTree]."
msgstr ""
"当一个节点被设置为另一个节点的子节点时收到该通知。\n"
"[b]注意:[/b]这并不意味着一个节点进入了[SceneTree]。"

#: doc/classes/Node.xml:766
msgid ""
"Notification received when a node is unparented (parent removed it from the "
"list of children)."
msgstr "当节点失去父节点时收到的通知(父节点将其从子节点列表中删除)。"

#: doc/classes/Node.xml:769
msgid "Notification received when the node is instanced."
msgstr "节点被实例化时收到的通知。"

#: doc/classes/Node.xml:772
msgid "Notification received when a drag begins."
msgstr "拖动开始时收到的通知。"

#: doc/classes/Node.xml:775
msgid "Notification received when a drag ends."
msgstr "拖动结束时收到的通知。"

#: doc/classes/Node.xml:778
msgid "Notification received when the node's [NodePath] changed."
msgstr "当节点的[NodePath]改变时收到的通知。"

#: doc/classes/Node.xml:781
msgid ""
"Notification received every frame when the internal process flag is set (see "
"[method set_process_internal])."
msgstr ""
"当 internal process flag 被设置时,每一帧都收到通知(见[方法"
"set_process_internal])。"

#: doc/classes/Node.xml:784
msgid ""
"Notification received every frame when the internal physics process flag is "
"set (see [method set_physics_process_internal])."
msgstr ""
"当 internal physics process flag 被设置时,每一帧都会收到通知(见[方法"
"set_physics_process_internal])。"

#: doc/classes/Node.xml:787
msgid ""
"Notification received when the node is ready, just before [constant "
"NOTIFICATION_READY] is received. Unlike the latter, it's sent every time the "
"node enters tree, instead of only once."
msgstr ""

#: doc/classes/Node.xml:845
msgid ""
"Inherits pause mode from the node's parent. For the root node, it is "
"equivalent to [constant PAUSE_MODE_STOP]. Default."
msgstr ""
"继承节点的父节点的暂停模式。对于根节点,它相当于[constant PAUSE_MODE_STOP]。"
"默认值。"

#: doc/classes/Node.xml:848
msgid "Stops processing when the [SceneTree] is paused."
msgstr "当[SceneTree]被暂停时,停止 process。"

#: doc/classes/Node.xml:851
msgid "Continue to process regardless of the [SceneTree] pause state."
msgstr "不管[SceneTree]的暂停状态如何,继续 process。"

#: doc/classes/Node.xml:854
msgid "Duplicate the node's signals."
msgstr "复制该节点的信号。"

#: doc/classes/Node.xml:857
msgid "Duplicate the node's groups."
msgstr "复制节点的组。"

#: doc/classes/Node.xml:860
msgid "Duplicate the node's scripts."
msgstr "复制该节点的脚本。"

#: doc/classes/Node.xml:863
msgid ""
"Duplicate using instancing.\n"
"An instance stays linked to the original so when the original changes, the "
"instance changes too."
msgstr ""
"使用实例化进行复制。\n"
"实例与原件保持联系,因此当原件发生变化时,实例也会发生变化。"

#: doc/classes/Node2D.xml:4
msgid ""
"A 2D game object, inherited by all 2D-related nodes. Has a position, "
"rotation, scale, and Z index."
msgstr ""
"一个2D游戏对象,由所有2D相关的节点继承。有一个位置、旋转、比例和Z索引。"

#: doc/classes/Node2D.xml:7
msgid ""
"A 2D game object, with a transform (position, rotation, and scale). All 2D "
"nodes, including physics objects and sprites, inherit from Node2D. Use "
"Node2D as a parent node to move, scale and rotate children in a 2D project. "
"Also gives control of the node's render order."
msgstr ""
"一个2D游戏对象,有一个变换(位置、旋转和比例)。所有的2D节点,包括物理对象和"
"精灵,都继承自Node2D。使用Node2D作为父节点来移动、缩放和旋转2D项目中的子节"
"点。还可以控制节点的渲染顺序。"

#: doc/classes/Node2D.xml:11 doc/classes/Vector2.xml:16
#, fuzzy
msgid "https://github.com/godotengine/godot-demo-projects/tree/master/2d"
msgstr ""
"https://github.com/godotengine/godot-demo-projects/tree/master/audio/"
"generator"

#: doc/classes/Node2D.xml:18
msgid "Multiplies the current scale by the [code]ratio[/code] vector."
msgstr "将当前比例乘以[code]ratio[/code]向量。"

#: doc/classes/Node2D.xml:25
msgid ""
"Returns the angle between the node and the [code]point[/code] 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 ""

#: doc/classes/Node2D.xml:33
msgid "Returns the [Transform2D] relative to this node's parent."
msgstr "返回相对于此节点的父节点的[Transform2D]。"

#: doc/classes/Node2D.xml:40
msgid "Adds the [code]offset[/code] vector to the node's global position."
msgstr "将[code]offset[/code]向量添加到节点的全局位置。"

#: doc/classes/Node2D.xml:47
msgid ""
"Rotates the node so it points towards the [code]point[/code], which is "
"expected to use global coordinates."
msgstr "旋转节点,使其指向[code]point[/code],请传入全局坐标。"

#: doc/classes/Node2D.xml:55
msgid ""
"Applies a local translation on the node's X axis based on the [method Node."
"_process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/"
"code], normalizes the movement."
msgstr ""
"基于[method Node._process]的[code]delta[/code],在节点的X轴上应用一个局部平"
"移。如果[code]scaled[/code]是[code]false[/code],则对运动进行标准化。"

#: doc/classes/Node2D.xml:63
msgid ""
"Applies a local translation on the node's Y axis based on the [method Node."
"_process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/"
"code], normalizes the movement."
msgstr ""
"基于[method Node._process]的[code]delta[/code],在节点的Y轴上应用一个局部平"
"移。如果[code]scaled[/code]是[code]false[/code],则对运动进行标准化。"

#: doc/classes/Node2D.xml:70
msgid ""
"Applies a rotation to the node, in radians, starting from its current "
"rotation."
msgstr "从节点的当前旋转开始,以弧度为单位,对节点进行旋转。"

#: doc/classes/Node2D.xml:77
msgid ""
"Transforms the provided local position into a position in global coordinate "
"space. The input is expected to be local relative to the [Node2D] it is "
"called on. e.g. Applying this method to the positions of child nodes will "
"correctly transform their positions into the global coordinate space, but "
"applying it to a node's own position will give an incorrect result, as it "
"will incorporate the node's own transformation into its global position."
msgstr ""
"将提供的本地位置转换为全局坐标空间的位置。例如,对子节点的位置应用这个方法将"
"正确地把它们的位置转换到全局坐标空间,但对节点自己的位置应用这个方法将得到一"
"个不正确的结果,因为它将把节点自己的变换纳入它的全局位置。"

#: doc/classes/Node2D.xml:84
msgid ""
"Transforms the provided global position into a position in local coordinate "
"space. The output will be local relative to the [Node2D] it is called on. e."
"g. It is appropriate for determining the positions of child nodes, but it is "
"not appropriate for determining its own position relative to its parent."
msgstr ""
"将提供的全局位置转换为本地坐标空间的位置。例如,它适合于确定子节点的位置,但"
"不适合于确定其自身相对于父节点的位置。"

#: doc/classes/Node2D.xml:91
msgid ""
"Translates the node by the given [code]offset[/code] in local coordinates."
msgstr "通过给定的[code]offset[/code]将节点在本地坐标中进行变换。"

#: doc/classes/Node2D.xml:97
msgid "Global position."
msgstr "全局位置。"

#: doc/classes/Node2D.xml:100
msgid "Global rotation in radians."
msgstr "全局旋转弧度。"

#: doc/classes/Node2D.xml:103
msgid "Global rotation in degrees."
msgstr "全局旋转角度。"

#: doc/classes/Node2D.xml:106
msgid "Global scale."
msgstr "全局缩放。"

#: doc/classes/Node2D.xml:109
msgid "Global [Transform2D]."
msgstr "全局 [Transform2D]。"

#: doc/classes/Node2D.xml:112
msgid "Position, relative to the node's parent."
msgstr "位置,相对于父节点。"

#: doc/classes/Node2D.xml:115
msgid "Rotation in radians, relative to the node's parent."
msgstr "旋转弧度,相对于父节点。"

#: doc/classes/Node2D.xml:118
msgid "Rotation in degrees, relative to the node's parent."
msgstr "旋转角度,相对于父节点。"

#: doc/classes/Node2D.xml:121
msgid "The node's scale. Unscaled value: [code](1, 1)[/code]."
msgstr "节点的缩放。未缩放时为:[code](1, 1)[/code]。"

#: doc/classes/Node2D.xml:124
msgid "Local [Transform2D]."
msgstr "局部 [Transform2D]。"

#: doc/classes/Node2D.xml:127
msgid ""
"If [code]true[/code], the node's Z index is relative to its parent's Z "
"index. If this node's Z index is 2 and its parent's effective Z index is 3, "
"then this node's effective Z index will be 2 + 3 = 5."
msgstr ""
"如果[code]true[/code],节点的Z索引是相对于它的父节点的Z索引而言的。如果这个节"
"点的Z索引是2,它的父节点的有效Z索引是3,那么这个节点的有效Z索引将是2+3=5。"

#: doc/classes/Node2D.xml:130
#, fuzzy
msgid ""
"Z index. Controls the order in which the nodes render. A node with a higher "
"Z index will display in front of others. Must be between [constant "
"VisualServer.CANVAS_ITEM_Z_MIN] and [constant VisualServer."
"CANVAS_ITEM_Z_MAX] (inclusive)."
msgstr "Z索引。控制节点的渲染顺序。具有较高Z指数的节点将显示在其他节点的前面。"

#: doc/classes/NodePath.xml:4
msgid "Pre-parsed scene tree path."
msgstr "预先解析的场景树路径。"

#: doc/classes/NodePath.xml:7
#, fuzzy
msgid ""
"A pre-parsed relative or absolute path in a scene tree, for use with [method "
"Node.get_node] and similar functions. It can reference a node, a resource "
"within a node, or a property of a node or resource. For instance, "
"[code]\"Path2D/PathFollow2D/Sprite:texture:size\"[/code] would refer to the "
"[code]size[/code] property of the [code]texture[/code] resource on the node "
"named [code]\"Sprite\"[/code] which is a child of the other named nodes in "
"the path.\n"
"You will usually just pass a string to [method Node.get_node] and it will be "
"automatically converted, but you may occasionally want to parse a path ahead "
"of time with [NodePath] or the literal syntax [code]@\"path\"[/code]. "
"Exporting a [NodePath] variable will give you a node selection widget in the "
"properties panel of the editor, which can often be useful.\n"
"A [NodePath] is composed of a list of slash-separated node names (like a "
"filesystem path) and an optional colon-separated list of \"subnames\" which "
"can be resources or properties.\n"
"Some examples of NodePaths include the following:\n"
"[codeblock]\n"
"# No leading slash means it is relative to the current node.\n"
"@\"A\" # Immediate child A\n"
"@\"A/B\" # A's child B\n"
"@\".\" # The current node.\n"
"@\"..\" # The parent node.\n"
"@\"../C\" # A sibling node C.\n"
"# A leading slash means it is absolute from the SceneTree.\n"
"@\"/root\" # Equivalent to get_tree().get_root().\n"
"@\"/root/Main\" # If your main scene's root node were named \"Main\".\n"
"@\"/root/MyAutoload\" # If you have an autoloaded node or scene.\n"
"[/codeblock]\n"
"[b]Note:[/b] In the editor, [NodePath] properties are automatically updated "
"when moving, renaming or deleting a node in the scene tree, but they are "
"never updated at runtime."
msgstr ""
"场景树中预先解析的相对或绝对路径,用于[method Node.get_node]和类似函数。它可"
"以引用一个节点,一个节点中的资源,或者一个节点或资源的属性。例如,"
"[code]\"Path2D/PathFollow2D/Sprite2D:texture:size\"[/code]将引用名为"
"[code]\"Sprite2D\"[/code]的节点上的[code]texture[/code]资源的[code]size[/"
"code]属性,该节点是路径中其他指定节点的子节点。\n"
"你通常只需将一个字符串传递给[method Node.get_node],它就会被自动转换,但你偶"
"尔也会想用[NodePath]或字面语法[code]@\"path\"[/code]提前解析一个路径。导出"
"[NodePath]变量会在编辑器的属性面板中给你一个节点选择部件,这通常很有用。\n"
"一个[NodePath]是由一个斜线分隔的节点名称列表(像一个文件系统路径)和一个可选"
"的冒号分隔的 \"子名称 \"列表组成的,它可以是资源或属性。\n"
"NodePaths的一些例子包括如下。\n"
"[codeblock]\n"
"# No leading slash means it is relative to the current node.\n"
"@\"A\" # Immediate child A\n"
"@\"A/B\" # A's child B\n"
"@\".\" # The current node.\n"
"@\"..\" # The parent node.\n"
"@\"../C\" # A sibling node C.\n"
"# A leading slash means it is absolute from the SceneTree.\n"
"@\"/root\" # Equivalent to get_tree().get_root().\n"
"@\"/root/Main\" # If your main scene's root node were named \"Main\".\n"
"@\"/root/MyAutoload\" # If you have an autoloaded node or scene.\n"
"[/codeblock]"

#: doc/classes/NodePath.xml:26 doc/classes/PackedScene.xml:41
#: doc/classes/Panel.xml:10 doc/classes/PanelContainer.xml:10
#: doc/classes/TileMap.xml:16 doc/classes/TileSet.xml:16
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/520"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/NodePath.xml:33
#, fuzzy
msgid ""
"Creates a NodePath from a string, e.g. [code]\"Path2D/PathFollow2D/Sprite:"
"texture:size\"[/code]. A path is absolute if it starts with a slash. "
"Absolute paths are only valid in the global scene tree, not within "
"individual scenes. In a relative path, [code]\".\"[/code] and [code]\"..\"[/"
"code] indicate the current node and its parent.\n"
"The \"subnames\" optionally included after the path to the target node can "
"point to resources or properties, and can also be nested.\n"
"Examples of valid NodePaths (assuming that those nodes exist and have the "
"referenced resources or properties):\n"
"[codeblock]\n"
"# Points to the Sprite node\n"
"\"Path2D/PathFollow2D/Sprite\"\n"
"# Points to the Sprite node and its \"texture\" resource.\n"
"# get_node() would retrieve \"Sprite\", while get_node_and_resource()\n"
"# would retrieve both the Sprite node and the \"texture\" resource.\n"
"\"Path2D/PathFollow2D/Sprite:texture\"\n"
"# Points to the Sprite node and its \"position\" property.\n"
"\"Path2D/PathFollow2D/Sprite:position\"\n"
"# Points to the Sprite node and the \"x\" component of its \"position\" "
"property.\n"
"\"Path2D/PathFollow2D/Sprite:position:x\"\n"
"# Absolute path (from \"root\")\n"
"\"/root/Level/Path2D\"\n"
"[/codeblock]"
msgstr ""
"从字符串创建一个NodePath,例如[code]\"Path2D/PathFollow2D/Sprite2D:texture:"
"size\"[/code]。以斜杠开头的路径是绝对路径。绝对路径仅在全局场景树中有效,在单"
"个场景中无效。在相对路径中,[code]\".\"[/code]和[code]\"..\"[/code]表示当前节"
"点及其父节点。\n"
"可选地包含在目标节点路径之后的“子名称”可以指向资源或属性,也可以嵌套。\n"
"有效的NodePaths示例(假设这些节点存在并且有引用的资源或属性):\n"
"[codeblock]\n"
"# Points to the Sprite2D node\n"
"\"Path2D/PathFollow2D/Sprite2D\"\n"
"# Points to the Sprite2D node and its \"texture\" resource.\n"
"# get_node() would retrieve \"Sprite2D\", while get_node_and_resource()\n"
"# would retrieve both the Sprite2D node and the \"texture\" resource.\n"
"\"Path2D/PathFollow2D/Sprite2D:texture\"\n"
"# Points to the Sprite2D node and its \"position\" property.\n"
"\"Path2D/PathFollow2D/Sprite2D:position\"\n"
"# Points to the Sprite2D node and the \"x\" component of its \"position\" "
"property.\n"
"\"Path2D/PathFollow2D/Sprite2D:position:x\"\n"
"# Absolute path (from \"root\")\n"
"\"/root/Level/Path2D\"\n"
"[/codeblock]"

#: doc/classes/NodePath.xml:55
msgid ""
"Returns a node path with a colon character ([code]:[/code]) prepended, "
"transforming it to a pure property path with no node name (defaults to "
"resolving from the current node).\n"
"[codeblock]\n"
"# This will be parsed as a node path to the \"x\" property in the \"position"
"\" node\n"
"var node_path = NodePath(\"position:x\")\n"
"# This will be parsed as a node path to the \"x\" component of the \"position"
"\" property in the current node\n"
"var property_path = node_path.get_as_property_path()\n"
"print(property_path) # :position:x\n"
"[/codeblock]"
msgstr ""
"返回带有冒号字符([code]:[/code])的节点路径,将其转换为没有节点名的纯属性路径"
"(默认从当前节点解析)。\n"
"[codeblock]\n"
"# This will be parsed as a node path to the \"x\" property in the \"position"
"\" node\n"
"var node_path = NodePath(\"position:x\")\n"
"# This will be parsed as a node path to the \"x\" component of the \"position"
"\" property in the current node\n"
"var property_path = node_path.get_as_property_path()\n"
"print(property_path) # :position:x\n"
"[/codeblock]"

#: doc/classes/NodePath.xml:68
#, fuzzy
msgid ""
"Returns all subnames concatenated with a colon character ([code]:[/code]) as "
"separator, i.e. the right side of the first colon in a node path.\n"
"[codeblock]\n"
"var nodepath = NodePath(\"Path2D/PathFollow2D/Sprite:texture:load_path\")\n"
"print(nodepath.get_concatenated_subnames()) # texture:load_path\n"
"[/codeblock]"
msgstr ""
"返回所有用冒号([code]:[/code])作为分隔符连接的子名称,即节点路径中第一个冒号"
"的右侧。\n"
"[codeblock]\n"
"var nodepath = NodePath(\"Path2D/PathFollow2D/Sprite2D:texture:load_path\")\n"
"print(nodepath.get_concatenated_subnames()) # texture:load_path\n"
"[/codeblock]"

#: doc/classes/NodePath.xml:79
#, fuzzy
msgid ""
"Gets the node name indicated by [code]idx[/code] (0 to [method "
"get_name_count]).\n"
"[codeblock]\n"
"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite\")\n"
"print(node_path.get_name(0)) # Path2D\n"
"print(node_path.get_name(1)) # PathFollow2D\n"
"print(node_path.get_name(2)) # Sprite\n"
"[/codeblock]"
msgstr ""
"获取由[code]idx[/code]表示的节点名称(0到[method get_name_count])。\n"
"[codeblock]\n"
"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite2D\")\n"
"print(node_path.get_name(0)) # Path2D\n"
"print(node_path.get_name(1)) # PathFollow2D\n"
"print(node_path.get_name(2)) # Sprite\n"
"[/codeblock]"

#: doc/classes/NodePath.xml:91
#, fuzzy
msgid ""
"Gets the number of node names which make up the path. Subnames (see [method "
"get_subname_count]) are not included.\n"
"For example, [code]\"Path2D/PathFollow2D/Sprite\"[/code] has 3 names."
msgstr ""
"获取构成路径的节点名称的数量。子名称(见[方法get_subname_count])不包括在"
"内。\n"
"例如,[code]\"Path2D/PathFollow2D/Sprite2D\"[/code]包含三个名称。"

#: doc/classes/NodePath.xml:99
#, fuzzy
msgid ""
"Gets the resource or property name indicated by [code]idx[/code] (0 to "
"[method get_subname_count]).\n"
"[codeblock]\n"
"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite:texture:load_path\")\n"
"print(node_path.get_subname(0)) # texture\n"
"print(node_path.get_subname(1)) # load_path\n"
"[/codeblock]"
msgstr ""
"获取由[code]idx[/code](0到[method get_subname_count])指示的资源或属性名"
"称。\n"
"[codeblock]\n"
"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite2D:texture:load_path"
"\")\n"
"print(node_path.get_subname(0)) # texture\n"
"print(node_path.get_subname(1)) # load_path\n"
"[/codeblock]"

#: doc/classes/NodePath.xml:110
#, fuzzy
msgid ""
"Gets the number of resource or property names (\"subnames\") in the path. "
"Each subname is listed after a colon character ([code]:[/code]) in the node "
"path.\n"
"For example, [code]\"Path2D/PathFollow2D/Sprite:texture:load_path\"[/code] "
"has 2 subnames."
msgstr ""
"获取路径中的资源或属性名称(\"子名称\")的数量。每个子名称都列在节点路径中的"
"冒号字符([code]:[/code])之后。\n"
"例如,[code]\"Path2D/PathFollow2D/Sprite2D:texture:load_path\"[/code]包含两个"
"子名称。"

#: doc/classes/NodePath.xml:117
msgid ""
"Returns [code]true[/code] if the node path is absolute (as opposed to "
"relative), which means that it starts with a slash character ([code]/[/"
"code]). Absolute node paths can be used to access the root node ([code]\"/"
"root\"[/code]) or autoloads (e.g. [code]\"/global\"[/code] if a \"global\" "
"autoload was registered)."
msgstr ""
"如果节点路径是绝对的(而不是相对的),即以斜线字符([code]/[/code])开始,返"
"回[code]true[/code]。绝对节点路径可以用来访问根节点([code]\"/root\"[/code])"
"或自动加载(例如,[code]\"/global\"[/code]如果注册了一个 \"全局 \"自动加"
"载)。"

#: doc/classes/NodePath.xml:123
msgid "Returns [code]true[/code] if the node path is empty."
msgstr "如果节点路径为空,则返回[code]true[/code]。"

#: modules/opensimplex/doc_classes/NoiseTexture.xml:4
msgid "[OpenSimplexNoise] filled texture."
msgstr "[OpenSimplexNoise]填充纹理。"

#: modules/opensimplex/doc_classes/NoiseTexture.xml:7
#, fuzzy
msgid ""
"Uses an [OpenSimplexNoise] to fill the texture data. You can specify the "
"texture size but keep in mind that larger textures will take longer to "
"generate and seamless noise only works with square sized textures.\n"
"NoiseTexture can also generate normalmap textures.\n"
"The class uses [Thread]s to generate the texture data internally, so [method "
"Texture.get_data] may return [code]null[/code] if the generation process has "
"not completed yet. In that case, you need to wait for the texture to be "
"generated before accessing the data:\n"
"[codeblock]\n"
"var texture = preload(\"res://noise.tres\")\n"
"yield(texture, \"changed\")\n"
"var image = texture.get_data()\n"
"[/codeblock]"
msgstr ""
"使用一个[OpenSimplexNoise]来填充纹理数据。你可以指定纹理的大小,但请记住,更"
"大的纹理将需要更长的时间来生成,而且无缝噪声只适用于方形大小的纹理。\n"
"NoiseTexture也可以生成法线图纹理。\n"
"该类在内部使用[Thread]来生成纹理数据,所以如果生成过程尚未完成,[method "
"Texture2D.get_data]可能会返回[code]null[/code]。在这种情况下,你需要在访问数"
"据之前等待纹理的生成。\n"
"[codeblock]\n"
"var texture = preload(\"res://noise.tres\")\n"
"yield(texture, \"changed\")\n"
"var image = texture.get_data()\n"
"[/codeblock]"

#: modules/opensimplex/doc_classes/NoiseTexture.xml:22
msgid ""
"If [code]true[/code], the resulting texture contains a normal map created "
"from the original noise interpreted as a bump map."
msgstr ""
"如果[code]true[/code],产生的纹理包含一个由原始噪声创建的法线贴图,解释为凹凸"
"贴图。"

#: modules/opensimplex/doc_classes/NoiseTexture.xml:25
msgid ""
"Strength of the bump maps used in this texture. A higher value will make the "
"bump maps appear larger while a lower value will make them appear softer."
msgstr ""
"此纹理中使用的凹凸贴图的强度。较高的值会使凹凸贴图看起来更大,而较低的值会使"
"它们看起来更柔和。"

#: modules/opensimplex/doc_classes/NoiseTexture.xml:29
msgid "Height of the generated texture."
msgstr "生成的纹理的高度。"

#: modules/opensimplex/doc_classes/NoiseTexture.xml:32
msgid "The [OpenSimplexNoise] instance used to generate the noise."
msgstr "用来生成噪声的[OpenSimplexNoise]实例。"

#: modules/opensimplex/doc_classes/NoiseTexture.xml:35
msgid ""
"An offset used to specify the noise space coordinate of the top left corner "
"of the generated noise. This value is ignored if [member seamless] is "
"enabled."
msgstr ""

#: modules/opensimplex/doc_classes/NoiseTexture.xml:38
msgid ""
"Whether the texture can be tiled without visible seams or not. Seamless "
"textures take longer to generate.\n"
"[b]Note:[/b] Seamless noise has a lower contrast compared to non-seamless "
"noise. This is due to the way noise uses higher dimensions for generating "
"seamless noise."
msgstr ""

#: modules/opensimplex/doc_classes/NoiseTexture.xml:42
msgid "Width of the generated texture."
msgstr "生成的纹理的宽度。"

#: doc/classes/Object.xml:4
#, fuzzy
msgid "Base class for all non-built-in types."
msgstr "所有非内置类型的基类。"

#: doc/classes/Object.xml:7
#, fuzzy
msgid ""
"Every class which is not a built-in type inherits from this class.\n"
"You can construct Objects from scripting languages, using [code]Object.new()"
"[/code] in GDScript, [code]new Object[/code] in C#, or the \"Construct Object"
"\" node in VisualScript.\n"
"Objects do not manage memory. If a class inherits from Object, you will have "
"to delete instances of it manually. To do so, call the [method free] method "
"from your script or delete the instance from C++.\n"
"Some classes that extend Object add memory management. This is the case of "
"[Reference], which counts references and deletes itself automatically when "
"no longer referenced. [Node], another fundamental type, deletes all its "
"children when freed from memory.\n"
"Objects export properties, which are mainly useful for storage and editing, "
"but not really so much in programming. Properties are exported in [method "
"_get_property_list] and handled in [method _get] and [method _set]. However, "
"scripting languages and C++ have simpler means to export them.\n"
"Property membership can be tested directly in GDScript using [code]in[/"
"code]:\n"
"[codeblock]\n"
"var n = Node2D.new()\n"
"print(\"position\" in n) # Prints \"True\".\n"
"print(\"other_property\" in n) # Prints \"False\".\n"
"[/codeblock]\n"
"The [code]in[/code] operator will evaluate to [code]true[/code] as long as "
"the key exists, even if the value is [code]null[/code].\n"
"Objects also receive notifications. Notifications are a simple way to notify "
"the object about different events, so they can all be handled together. See "
"[method _notification].\n"
"[b]Note:[/b] Unlike references to a [Reference], references to an Object "
"stored in a variable can become invalid without warning. Therefore, it's "
"recommended to use [Reference] for data classes instead of [Object].\n"
"[b]Note:[/b] Due to a bug, you can't create a \"plain\" Object using "
"[code]Object.new()[/code]. Instead, use [code]ClassDB.instance(\"Object\")[/"
"code]. This bug only applies to Object itself, not any of its descendents "
"like [Reference]."
msgstr ""
"每一个不是内置类型的类都会继承自这个类。\n"
"你可以从脚本语言中构造对象,使用GDScript中的[code]Object.new()[/code],C#中,"
"使用[code]new Object[/code],或者VisualScript中的 \"Construct Object \"节"
"点。\n"
"对象不管理内存。如果一个类继承于Object,你将不得不手动删除它的实例。为此,可"
"以在你的脚本中调用[method free]方法,或者从C++中删除该实例。\n"
"一些扩展Object的类会增加内存管理。这就是 [Reference] 的情况,它对引用进行计"
"数,并在不再被引用时自动删除自己。[Node],另一个基本类型,当从内存中释放时,"
"会删除它的所有子节点。\n"
"对象导出属性,这主要对存储和编辑有用,但在编程中其实并不那么有用。属性在"
"[method _get_property_list]中导出,在[method _get]和[method _set]中处理。然"
"而,脚本语言和C++有更简单的方法来导出它们。\n"
"在GDScript中可以使用[code]in[/code]直接测试属性成员。\n"
"[codeblock]\n"
"var n = Node2D.new()\n"
"print(\"position\" in n) # Prints \"True\".\n"
"print(\"other_property\" in n) # Prints \"False\".\n"
"[/codeblock]\n"
"只要键存在,[code]in[/code]操作符就会评估为[code]true[/code],即使值为"
"[code]null[/code]。\n"
"对象也会收到通知。通知是一种简单的方式来通知对象关于不同的事件,所以它们可以"
"一起被处理。参见[method _notification]。\n"
"[b]注意:[/b] 与对[引用]的引用不同,对存储在变量中的对象的引用可以在没有警告"
"的情况下变得无效。因此,建议对数据类使用[引用]而不是[对象]。"

#: doc/classes/Object.xml:24 doc/classes/Reference.xml:13
#: doc/classes/Resource.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/workflow/best_practices/"
"node_alternatives.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/workflow/"
"best_practices/node_alternatives.html"

#: doc/classes/Object.xml:25
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/gdscript/"
"gdscript_exports.html#advanced-exports"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/scripting/gdscript/"
"gdscript_basics.html#dictionary"

#: doc/classes/Object.xml:32
msgid ""
"Virtual method which can be overridden to customize the return value of "
"[method get].\n"
"Returns the given property. Returns [code]null[/code] if the [code]property[/"
"code] does not exist."
msgstr ""
"虚拟方法,可以被重载以定制[method get]的返回值。\n"
"返回给定的属性。如果[code]property[/code]不存在,返回[code]null[/code]。"

#: doc/classes/Object.xml:39
msgid ""
"Virtual method which can be overridden to customize the return value of "
"[method get_property_list].\n"
"Returns the object's property list as an [Array] of dictionaries.\n"
"Each property's [Dictionary] must contain at least [code]name: String[/code] "
"and [code]type: int[/code] (see [enum Variant.Type]) entries. Optionally, it "
"can also include [code]hint: int[/code] (see [enum PropertyHint]), "
"[code]hint_string: String[/code], and [code]usage: int[/code] (see [enum "
"PropertyUsageFlags])."
msgstr ""
"虚拟方法,可以被重载以定制[method get_property_list]的返回值。\n"
"返回对象的属性列表为一个[Array]的字典。\n"
"每个属性的[Dictionary]必须至少包含[code]name: String[/code]和[code]type: "
"int[/code](见[enum Variant.Type])条目。另外,它还可以包括[code]hint: int[/"
"code](见[enum PropertyHint])、[code]hint_string: String[/code],以及"
"[code]usage: int[/code] (见[enum PropertyUsageFlags])。"

#: doc/classes/Object.xml:47
msgid "Called when the object is initialized."
msgstr "当对象被初始化时被调用。"

#: doc/classes/Object.xml:54
msgid ""
"Called whenever the object receives a notification, which is identified in "
"[code]what[/code] by a constant. The base [Object] has two constants "
"[constant NOTIFICATION_POSTINITIALIZE] and [constant "
"NOTIFICATION_PREDELETE], but subclasses such as [Node] define a lot more "
"notifications which are also received by this method."
msgstr ""
"每当对象收到一个通知时就会被调用,这个通知在[code]what[/code]中由一个常量来标"
"识。基类 [Object] 有两个常量 [constant NOTIFICATION_POSTINITIALIZE] 和 "
"[constant NOTIFICATION_PREDELETE],但是诸如 [Node] 等子类定义了更多的通知,这"
"些通知也是由这个方法接收。"

#: doc/classes/Object.xml:62
msgid ""
"Virtual method which can be overridden to customize the return value of "
"[method set].\n"
"Sets a property. Returns [code]true[/code] if the [code]property[/code] "
"exists."
msgstr ""
"虚拟方法,可以被重载以定制[method set]的返回值。\n"
"设置一个属性。如果[code]property[/code]存在,返回[code]true[/code]。"

#: doc/classes/Object.xml:69
msgid ""
"Virtual method which can be overridden to customize the return value of "
"[method to_string], and thus the object's representation where it is "
"converted to a string, e.g. with [code]print(obj)[/code].\n"
"Returns a [String] representing the object. If not overridden, defaults to "
"[code]\"[ClassName:RID]\"[/code]."
msgstr ""
"虚拟方法,可以被重载以定制[method to_string]的返回值,从而在对象被转换为字符"
"串的地方,例如用[code]print(obj)[/code]表示。\n"
"返回一个代表该对象的[String]字符串。如果没有被覆盖,默认为[code]\"[ClassName:"
"RID]\"[/code]。"

#: doc/classes/Object.xml:78
msgid ""
"Adds a user-defined [code]signal[/code]. Arguments are optional, but can be "
"added as an [Array] of dictionaries, each containing [code]name: String[/"
"code] and [code]type: int[/code] (see [enum Variant.Type]) entries."
msgstr ""
"添加一个用户定义的[code]signal[/code]。参数是可选的,但可以作为一个字典的"
"[Array]来添加,每个字典包含[code]name: String[/code]和[code]type: int[/code]"
"(见[enum Variant.Type])条目。"

#: doc/classes/Object.xml:85
msgid ""
"Calls the [code]method[/code] on the object and returns the result. This "
"method supports a variable number of arguments, so parameters are passed as "
"a comma separated list. Example:\n"
"[codeblock]\n"
"call(\"set\", \"position\", Vector2(42.0, 0.0))\n"
"[/codeblock]\n"
"[b]Note:[/b] In C#, the method name must be specified as snake_case if it is "
"defined by a built-in Godot node. This doesn't apply to user-defined methods "
"where you should use the same convention as in the C# source (typically "
"PascalCase)."
msgstr ""
"在对象上调用[code]method[/code]并返回结果。这个方法支持可变数量的参数,所以参"
"数以逗号分隔的列表形式传递。下面是个实例:\n"
"[codeblock]\n"
"call(\"set\", \"position\", Vector2(42.0, 0.0))\n"
"[/codeblock]\n"
"[b]注意:[/b] 在C#中,如果方法是由内置的Godot节点定义的,那么方法名必须被指定"
"为snake_case。这不适用于用户定义的方法,在那里你应该使用与C#源代码中相同的约"
"定(通常是PascalCase)。"

#: doc/classes/Object.xml:96
msgid ""
"Calls the [code]method[/code] on the object during idle time. This method "
"supports a variable number of arguments, so parameters are passed as a comma "
"separated list. Example:\n"
"[codeblock]\n"
"call_deferred(\"set\", \"position\", Vector2(42.0, 0.0))\n"
"[/codeblock]\n"
"[b]Note:[/b] In C#, the method name must be specified as snake_case if it is "
"defined by a built-in Godot node. This doesn't apply to user-defined methods "
"where you should use the same convention as in the C# source (typically "
"PascalCase)."
msgstr ""
"在空闲时间调用对象上的[code]method[/code]。这个方法支持可变数量的参数,所以参"
"数是以逗号分隔的列表形式传递。下面是个例子:\n"
"[codeblock]\n"
"call_deferred(\"set\", \"position\", Vector2(42.0, 0.0))\n"
"[/codeblock]\n"
"[b]注意:[/b] 在C#中,如果方法名称是由内置的Godot节点定义的,必须指定为"
"snake_case。这不适用于用户定义的方法,在那里你应该使用与C#源代码中相同的约定"
"(通常是PascalCase)。"

#: doc/classes/Object.xml:108
msgid ""
"Calls the [code]method[/code] on the object and returns the result. "
"Contrarily to [method call], this method does not support a variable number "
"of arguments but expects all parameters to be via a single [Array].\n"
"[codeblock]\n"
"callv(\"set\", [ \"position\", Vector2(42.0, 0.0) ])\n"
"[/codeblock]"
msgstr ""
"在对象上调用[code]method[/code]并返回结果。与[method call]相反,这个方法不支"
"持可变数量的参数,而是期望所有的参数都通过一个[Array]。\n"
"[codeblock]\n"
"callv(\"set\", [ \"position\", Vector2(42.0, 0.0) ])\n"
"[/codeblock]"

#: doc/classes/Object.xml:117
msgid ""
"Returns [code]true[/code] if the object can translate strings. See [method "
"set_message_translation] and [method tr]."
msgstr ""
"如果该对象可以翻译字符串,则返回[code]true[/code]。参见[method "
"set_message_translation]和[method tr]。"

#: doc/classes/Object.xml:128
#, fuzzy
msgid ""
"Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/"
"code] object. Pass optional [code]binds[/code] to the call as an [Array] of "
"parameters. These parameters will be passed to the method after any "
"parameter used in the call to [method emit_signal]. Use [code]flags[/code] "
"to set deferred or one-shot connections. See [enum ConnectFlags] constants.\n"
"A [code]signal[/code] can only be connected once to a [code]method[/code]. "
"It will throw an error if already connected, unless the signal was connected "
"with [constant CONNECT_REFERENCE_COUNTED]. To avoid this, first, use [method "
"is_connected] to check for existing connections.\n"
"If the [code]target[/code] is destroyed in the game's lifecycle, the "
"connection will be lost.\n"
"Examples:\n"
"[codeblock]\n"
"connect(\"pressed\", self, \"_on_Button_pressed\") # BaseButton signal\n"
"connect(\"text_entered\", self, \"_on_LineEdit_text_entered\") # LineEdit "
"signal\n"
"connect(\"hit\", self, \"_on_Player_hit\", [ weapon_type, damage ]) # User-"
"defined signal\n"
"[/codeblock]\n"
"An example of the relationship between [code]binds[/code] passed to [method "
"connect] and parameters used when calling [method emit_signal]:\n"
"[codeblock]\n"
"connect(\"hit\", self, \"_on_Player_hit\", [ weapon_type, damage ]) # "
"weapon_type and damage are passed last\n"
"emit_signal(\"hit\", \"Dark lord\", 5) # \"Dark lord\" and 5 are passed "
"first\n"
"func _on_Player_hit(hit_by, level, weapon_type, damage):\n"
"    print(\"Hit by %s (lvl %d) with weapon %s for %d damage\" % [hit_by, "
"level, weapon_type, damage])\n"
"[/codeblock]"
msgstr ""
"[b]FIXME:[/b] 语法随着[Callable]的增加而改变,这应该被更新。\n"
"将一个[code]signal[/code]连接到一个[code]target[/code]对象的[code]method[/"
"code]。将可选的[code]binds[/code]作为一个[Array]的参数传递给调用。这些参数将"
"在调用[method emit_signal]时使用的任何参数之后被传递到方法中。使用"
"[code]flags[/code]来设置延迟或一次性连接。参见[enum ConnectFlags]常量。\n"
"一个[code]signal[/code]只能被连接到一个[code]method[/code]上一次。如果已经连"
"接了,它将抛出一个错误,除非该信号是用[constant CONNECT_REFERENCE_COUNTED]连"
"接的。为了避免这种情况,首先,使用[method is_connected]来检查现有的连接。\n"
"如果[code]target[/code]在游戏的生命周期中被破坏,连接就会丢失。\n"
"下面是示例:\n"
"[codeblock]\n"
"connect(\"pressed\", self, \"_on_Button_pressed\") # BaseButton signal\n"
"connect(\"text_entered\", self, \"_on_LineEdit_text_entered\") # LineEdit "
"signal\n"
"connect(\"hit\", self, \"_on_Player_hit\", [ weapon_type, damage ]) # User-"
"defined signal\n"
"[/codeblock]\n"
"An example of the relationship between [code]binds[/code] passed to [method "
"connect] and parameters used when calling [method emit_signal]:\n"
"[codeblock]\n"
"connect(\"hit\", self, \"_on_Player_hit\", [ weapon_type, damage ]) # "
"weapon_type and damage are passed last\n"
"emit_signal(\"hit\", \"Dark lord\", 5) # \"Dark lord\" and 5 are passed "
"first\n"
"func _on_Player_hit(hit_by, level, weapon_type, damage):\n"
"    print(\"Hit by %s (lvl %d) with weapon %s for %d damage\" % [hit_by, "
"level, weapon_type, damage])\n"
"[/codeblock]"

#: doc/classes/Object.xml:152
#, fuzzy
msgid ""
"Disconnects a [code]signal[/code] from a [code]method[/code] on the given "
"[code]target[/code].\n"
"If you try to disconnect a connection that does not exist, the method will "
"throw an error. Use [method is_connected] to ensure that the connection "
"exists."
msgstr ""
"[b]FIXME:[/b] 添加了[Callable]后,语法发生了变化,应该进行更新。\n"
"从给定的[code]target[/code]上的[code]method[/code]断开[code]signal[/code]。\n"
"如果试图断开不存在的连接,该方法将抛出错误。使用[method is_connected]确保连接"
"存在。"

#: doc/classes/Object.xml:160
msgid ""
"Emits the given [code]signal[/code]. The signal must exist, so it should be "
"a built-in signal of this class or one of its parent classes, or a user-"
"defined signal. This method supports a variable number of arguments, so "
"parameters are passed as a comma separated list. Example:\n"
"[codeblock]\n"
"emit_signal(\"hit\", weapon_type, damage)\n"
"emit_signal(\"game_over\")\n"
"[/codeblock]"
msgstr ""
"发射给定的[code]信号[/code]。这个信号必须存在,所以它应该是这个类或其父类中的"
"一个内置信号,或者是一个用户定义的信号。这个方法支持可变数量的参数,所以参数"
"是以逗号分隔的列表形式传递。例子。\n"
"[codeblock]\n"
"emit_signal(\"hit\", weapon_type, damage)\n"
"emit_signal(\"game_over\")\n"
"[/codeblock]"

#: doc/classes/Object.xml:170
msgid ""
"Deletes the object from memory immediately. For [Node]s, you may want to use "
"[method Node.queue_free] to queue the node for safe deletion at the end of "
"the current frame.\n"
"[b]Important:[/b] If you have a variable pointing to an object, it will "
"[i]not[/i] be assigned to [code]null[/code] once the object is freed. "
"Instead, it will point to a [i]previously freed instance[/i] and you should "
"validate it with [method @GDScript.is_instance_valid] before attempting to "
"call its methods or access its properties."
msgstr ""

#: doc/classes/Object.xml:178
msgid ""
"Returns the [Variant] value of the given [code]property[/code]. If the "
"[code]property[/code] doesn't exist, this will return [code]null[/code].\n"
"[b]Note:[/b] In C#, the property name must be specified as snake_case if it "
"is defined by a built-in Godot node. This doesn't apply to user-defined "
"properties where you should use the same convention as in the C# source "
"(typically PascalCase)."
msgstr ""
"返回给定[code]property[/code]的[Variant]值。如果该[code]property[/code]不存"
"在,这将返回[code]null[/code]。\n"
"[b]注意:[/b] 在C#中,如果属性是由内置的Godot节点定义的,那么属性名必须被指定"
"为snake_case。这不适用于用户定义的属性,在那里你应该使用与C#源代码中相同的约"
"定(通常是PascalCase)。"

#: doc/classes/Object.xml:185
msgid ""
"Returns the object's class as a [String]. See also [method is_class].\n"
"[b]Note:[/b] [method get_class] does not take [code]class_name[/code] "
"declarations into account. If the object has a [code]class_name[/code] "
"defined, the base class name will be returned instead."
msgstr ""

#: doc/classes/Object.xml:192
msgid ""
"Returns an [Array] of dictionaries with information about signals that are "
"connected to the object.\n"
"Each [Dictionary] contains three String entries:\n"
"- [code]source[/code] is a reference to the signal emitter.\n"
"- [code]signal_name[/code] is the name of the connected signal.\n"
"- [code]method_name[/code] is the name of the method to which the signal is "
"connected."
msgstr ""
"返回一个[Array]的字典,其中有与对象相连的信号信息。\n"
"每个[Dictionary]包含三个字符串条目。\n"
"- [code]source[/code] 是对信号发出者的引用。\n"
"- [code]signal_name[/code] 是连接信号的名称。\n"
"- [code]method_name[/code] 是信号所连接的方法的名称。"

#: doc/classes/Object.xml:203
msgid ""
"Gets the object's property indexed by the given [NodePath]. The node path "
"should be relative to the current object and can use the colon character "
"([code]:[/code]) to access nested properties. Examples: [code]\"position:x"
"\"[/code] or [code]\"material:next_pass:blend_mode\"[/code]."
msgstr ""
"获取由给定的[NodePath]索引的对象的属性。节点路径应该是相对于当前对象的,可以"
"使用冒号字符([code]:[/code])来访问嵌套属性。例子。[code]\"position:x\"[/"
"code] 或 [code]\"material:next_pass:blend_mode\"[/code]。"

#: doc/classes/Object.xml:209
msgid ""
"Returns the object's unique instance ID.\n"
"This ID can be saved in [EncodedObjectAsID], and can be used to retrieve the "
"object instance with [method @GDScript.instance_from_id]."
msgstr ""
"返回对象的唯一实例ID。\n"
"这个ID可以保存在[EncodedObjectAsID]中,并且可以用[method @GDScript."
"instance_from_id]来检索对象实例。"

#: doc/classes/Object.xml:217
msgid "Returns the object's metadata entry for the given [code]name[/code]."
msgstr "返回给定[code]name[/code]的对象的元数据条目。"

#: doc/classes/Object.xml:223
#, fuzzy
msgid "Returns the object's metadata as a [PoolStringArray]."
msgstr "将对象的元数据作为一个[PackedStringArray]返回。"

#: doc/classes/Object.xml:229
msgid "Returns the object's methods and their signatures as an [Array]."
msgstr "返回对象的方法和它们的签名为一个[Array]。"

#: doc/classes/Object.xml:235
msgid ""
"Returns the object's property list as an [Array] of dictionaries.\n"
"Each property's [Dictionary] contain at least [code]name: String[/code] and "
"[code]type: int[/code] (see [enum Variant.Type]) entries. Optionally, it can "
"also include [code]hint: int[/code] (see [enum PropertyHint]), "
"[code]hint_string: String[/code], and [code]usage: int[/code] (see [enum "
"PropertyUsageFlags])."
msgstr ""
"返回对象的属性列表为一个[Array]的字典。\n"
"每个属性的[Dictionary]至少包含[code]name: String[/code]和[code]type: int[/"
"code](见[enum Variant.Type])条目。另外,它还可以包括[code]hint: int[/code]"
"(见[enum PropertyHint])、[code]hint_string: String[/code],以及"
"[code]usage: int[/code](见[enum PropertyUsageFlags])。"

#: doc/classes/Object.xml:242
msgid ""
"Returns the object's [Script] instance, or [code]null[/code] if none is "
"assigned."
msgstr "返回该对象的[Script]实例,如果没有指定,则返回[code]null[/code]。"

#: doc/classes/Object.xml:249
msgid "Returns an [Array] of connections for the given [code]signal[/code]."
msgstr "返回给定[code]signal[/code]的连接的[Array]。"

#: doc/classes/Object.xml:255
msgid "Returns the list of signals as an [Array] of dictionaries."
msgstr "将信号列表作为一个[Array]的字典返回。"

#: doc/classes/Object.xml:262
msgid ""
"Returns [code]true[/code] if a metadata entry is found with the given "
"[code]name[/code]."
msgstr ""
"如果找到一个具有给定[code]name[/code]的元数据条目,则返回[code]true[/code]。"

#: doc/classes/Object.xml:269
msgid ""
"Returns [code]true[/code] if the object contains the given [code]method[/"
"code]."
msgstr "如果对象包含给定的[code]method[/code],返回[code]true[/code]。"

#: doc/classes/Object.xml:276
msgid "Returns [code]true[/code] if the given [code]signal[/code] exists."
msgstr "如果给定的[code]signal[/code]存在,返回[code]true[/code]。"

#: doc/classes/Object.xml:283
msgid ""
"Returns [code]true[/code] if the given user-defined [code]signal[/code] "
"exists. Only signals added using [method add_user_signal] are taken into "
"account."
msgstr ""
"如果给定的用户定义的[code]signal[/code]存在,返回[code]true[/code]。只有使用"
"[method add_user_signal]添加的信号才被考虑在内。"

#: doc/classes/Object.xml:289
msgid "Returns [code]true[/code] if signal emission blocking is enabled."
msgstr "如果启用了信号发射阻断,则返回[code]true[/code]。"

#: doc/classes/Object.xml:296
msgid ""
"Returns [code]true[/code] if the object inherits from the given [code]class[/"
"code]. See also [method get_class].\n"
"[b]Note:[/b] [method is_class] does not take [code]class_name[/code] "
"declarations into account. If the object has a [code]class_name[/code] "
"defined, [method is_class] will return [code]false[/code] for that name."
msgstr ""

#: doc/classes/Object.xml:306
#, fuzzy
msgid ""
"Returns [code]true[/code] if a connection exists for a given [code]signal[/"
"code], [code]target[/code], and [code]method[/code]."
msgstr ""
"[b]FIXME:[/b] 语法随着[Callable]的增加而改变,这应该被更新。\n"
"如果给定的[code]signal[/code]、[code]target[/code]和[code]method[/code]存在一"
"个连接,返回[code]true[/code]。"

#: doc/classes/Object.xml:312
msgid ""
"Returns [code]true[/code] if the [method Node.queue_free] method was called "
"for the object."
msgstr ""
"如果为该对象调用了[method Node.queue_free]方法,返回[code]true[/code]。"

#: doc/classes/Object.xml:320
msgid ""
"Send a given notification to the object, which will also trigger a call to "
"the [method _notification] method of all classes that the object inherits "
"from.\n"
"If [code]reversed[/code] is [code]true[/code], [method _notification] is "
"called first on the object's own class, and then up to its successive parent "
"classes. If [code]reversed[/code] is [code]false[/code], [method "
"_notification] is called first on the highest ancestor ([Object] itself), "
"and then down to its successive inheriting classes."
msgstr ""
"向对象发送一个给定的通知,这也将触发对该对象继承的所有类的[method "
"_notification]方法的调用。\n"
"如果[code]reversed[/code]是[code]true[/code],[method _notification]首先在对"
"象自己的类上被调用,然后再到其连续的父类上。如果[code]reversed[/code]是"
"[code]false[/code],[method _notification]首先在最高的祖先([Object]本身)上"
"被调用,然后向下到其连续的继承类。"

#: doc/classes/Object.xml:327
msgid ""
"Notify the editor that the property list has changed, so that editor plugins "
"can take the new values into account. Does nothing on export builds."
msgstr ""
"通知编辑器属性列表已经改变,以便编辑器插件能够考虑到新的值。在导出构建时没有"
"任何作用。"

#: doc/classes/Object.xml:334
#, fuzzy
msgid ""
"Removes a given entry from the object's metadata. See also [method set_meta]."
msgstr "从对象的元数据中删除一个给定的条目。"

#: doc/classes/Object.xml:342
msgid ""
"Assigns a new value to the given property. If the [code]property[/code] does "
"not exist, nothing will happen.\n"
"[b]Note:[/b] In C#, the property name must be specified as snake_case if it "
"is defined by a built-in Godot node. This doesn't apply to user-defined "
"properties where you should use the same convention as in the C# source "
"(typically PascalCase)."
msgstr ""
"为给定的属性赋一个新值。如果[code]property[/code]不存在,则不会发生任何事"
"情。\n"
"[b]注意: [/b]在 C# 中,如果属性名由内置的 Godot 节点定义,则必须将其指定为 "
"snake _ case。这不适用于用户定义的属性,在这些属性中,您应该使用与 C# 源中相"
"同的约定(通常是 PascalCase)。"

#: doc/classes/Object.xml:350
msgid "If set to [code]true[/code], signal emission is blocked."
msgstr "如果设置为[code]true[/code],信号发射被阻止。"

#: doc/classes/Object.xml:358
msgid ""
"Assigns a new value to the given property, after the current frame's physics "
"step. This is equivalent to calling [method set] via [method call_deferred], "
"i.e. [code]call_deferred(\"set\", property, value)[/code].\n"
"[b]Note:[/b] In C#, the property name must be specified as snake_case if it "
"is defined by a built-in Godot node. This doesn't apply to user-defined "
"properties where you should use the same convention as in the C# source "
"(typically PascalCase)."
msgstr ""
"在当前帧的物理完成之后,将给定属性赋一个新值。这相当于通过[method "
"call_deferred]调用[method set],即[code]call_deferred(\"set\", property, "
"value)[/code]。\n"
"[b]注意:[/b]在c#中,属性名必须指定为snake_case,如果它是由内置的Godot节点定义"
"的。这并不适用于用户定义的属性,因为您应该使用与c#源代码(通常是PascalCase)相"
"同的约定。"

#: doc/classes/Object.xml:367
msgid ""
"Assigns a new value to the property identified by the [NodePath]. The node "
"path should be relative to the current object and can use the colon "
"character ([code]:[/code]) to access nested properties. Example:\n"
"[codeblock]\n"
"set_indexed(\"position\", Vector2(42, 0))\n"
"set_indexed(\"position:y\", -10)\n"
"print(position) # (42, -10)\n"
"[/codeblock]"
msgstr ""
"为[NodePath]标识的属性分配一个新值。节点路径应该相对于当前对象,可以使用冒号"
"([code]:[/code])访问嵌套属性。举例如下:\n"
"[codeblock]\n"
"set_indexed(\"position\", Vector2(42, 0))\n"
"set_indexed(\"position:y\", -10)\n"
"print(position) # (42, -10)\n"
"[/codeblock]"

#: doc/classes/Object.xml:379
msgid ""
"Defines whether the object can translate strings (with calls to [method "
"tr]). Enabled by default."
msgstr "定义对象是否可以转换字符串(通过调用[method tr])。默认启用。"

#: doc/classes/Object.xml:387
msgid ""
"Adds, changes or removes a given entry in the object's metadata. Metadata "
"are serialized and can take any [Variant] value.\n"
"To remove a given entry from the object's metadata, use [method "
"remove_meta]. Metadata is also removed if its value is set to [code]null[/"
"code]. This means you can also use [code]set_meta(\"name\", null)[/code] to "
"remove metadata for [code]\"name\"[/code]."
msgstr ""

#: doc/classes/Object.xml:395
msgid ""
"Assigns a script to the object. Each object can have a single script "
"assigned to it, which are used to extend its functionality.\n"
"If the object already had a script, the previous script instance will be "
"freed and its variables and state will be lost. The new script's [method "
"_init] method will be called."
msgstr ""
"将脚本分配给对象。每个对象都可以有一个分配给它的脚本,用于扩展其功能。\n"
"如果对象已经有一个脚本,则前一个脚本实例将被释放,它的变量和状态将丢失。新脚"
"本的[method _init]方法将被调用。"

#: doc/classes/Object.xml:402
msgid ""
"Returns a [String] representing the object. If not overridden, defaults to "
"[code]\"[ClassName:RID]\"[/code].\n"
"Override the method [method _to_string] to customize the [String] "
"representation."
msgstr ""
"返回一个表示对象的[String]。如果没有覆盖,默认为[code]\"[ClassName:RID]\"[/"
"code]。\n"
"重写方法[method _to_string]来自定义[String]表示。"

#: doc/classes/Object.xml:410
msgid ""
"Translates a message using translation catalogs configured in the Project "
"Settings.\n"
"Only works if message translation is enabled (which it is by default), "
"otherwise it returns the [code]message[/code] unchanged. See [method "
"set_message_translation]."
msgstr ""
"使用在“项目设置”中配置的翻译目录翻译消息。\n"
"只有在启用消息翻译(默认情况下)时才有效,否则返回不变的[code]消息[/code]。"
"set_message_translation[方法]。"

#: doc/classes/Object.xml:418
msgid "Emitted whenever the object's script is changed."
msgstr "当对象的脚本被更改时触发。"

#: doc/classes/Object.xml:424
msgid "Called right when the object is initialized. Not available in script."
msgstr "在对象初始化时调用。在脚本中不可用。"

#: doc/classes/Object.xml:427
msgid "Called before the object is about to be deleted."
msgstr "在要删除对象之前调用。"

#: doc/classes/Object.xml:430
msgid ""
"Connects a signal in deferred mode. This way, signal emissions are stored in "
"a queue, then set on idle time."
msgstr ""
"在延迟模式下连接一个信号。这样,信号发射被储存在一个队列中,然后在空闲时间发"
"出。"

#: doc/classes/Object.xml:433
msgid "Persisting connections are saved when the object is serialized to file."
msgstr "当对象序列化为文件时,将保存持久连接。"

#: doc/classes/Object.xml:436
msgid "One-shot connections disconnect themselves after emission."
msgstr "信号触发后断开一次性连接。"

#: doc/classes/Object.xml:439
msgid ""
"Connect a signal as reference-counted. This means that a given signal can be "
"connected several times to the same target, and will only be fully "
"disconnected once no references are left."
msgstr ""
"连接一个信号作为引用计数。这意味着一个给定的信号可以多次连接到同一个目标,并"
"且只有在没有引用时才会完全断开连接。"

#: doc/classes/Occluder.xml:4
msgid "Allows [OccluderShape]s to be used for occlusion culling."
msgstr ""

#: doc/classes/Occluder.xml:7
msgid ""
"[Occluder]s that are placed within your scene will automatically cull "
"objects that are hidden from view by the occluder. This can increase "
"performance by decreasing the amount of objects drawn.\n"
"[Occluder]s are totally dynamic, you can move them as you wish. This means "
"you can for example, place occluders on a moving spaceship, and have it "
"occlude objects as it flies past.\n"
"You can place a large number of [Occluder]s within a scene. As it would be "
"counterproductive to cull against hundreds of occluders, the system will "
"automatically choose a selection of these for active use during any given "
"frame, based a screen space metric. Larger occluders are favored, as well as "
"those close to the camera. Note that a small occluder close to the camera "
"may be a better occluder in terms of screen space than a large occluder far "
"in the distance.\n"
"The type of occlusion primitive is determined by the [OccluderShape] that "
"you add to the [Occluder]. Some [OccluderShape]s may allow more than one "
"primitive in a single, node, for greater efficiency.\n"
"Although [Occluder]s work in general use, they also become even more "
"powerful when used in conjunction with the portal system. Occluders are "
"placed in rooms (based on their origin), and can block portals (and thus "
"entire rooms) as well as objects from rendering."
msgstr ""

#: doc/classes/OccluderPolygon2D.xml:4
msgid "Defines a 2D polygon for LightOccluder2D."
msgstr "为LightOccluder2D定义一个2D多边形。"

#: doc/classes/OccluderPolygon2D.xml:7
msgid ""
"Editor facility that helps you draw a 2D polygon used as resource for "
"[LightOccluder2D]."
msgstr "编辑工具,帮助你绘制一个2D多边形用作资源[LightOccluder2D]。"

#: doc/classes/OccluderPolygon2D.xml:15
msgid ""
"If [code]true[/code], closes the polygon. A closed OccluderPolygon2D "
"occludes the light coming from any direction. An opened OccluderPolygon2D "
"occludes the light only at its outline's direction."
msgstr ""
"如果[code]true[/code],封闭该多边形。一个封闭的polygon2d封闭来自任何方向的"
"光。一个开放的OccluderPolygon2D只在其轮廓方向上遮挡光。"

#: doc/classes/OccluderPolygon2D.xml:18
msgid "The culling mode to use."
msgstr "要使用的剔除模式。"

#: doc/classes/OccluderPolygon2D.xml:21
msgid ""
"A [Vector2] array with the index for polygon's vertices positions.\n"
"[b]Note:[/b] The returned value is a copy of the underlying array, rather "
"than a reference."
msgstr ""
"带有多边形顶点位置索引的[Vector2]数组。\n"
"[b]注意:[/b]返回值是基础数组的副本,而不是引用。"

#: doc/classes/OccluderPolygon2D.xml:27
msgid "Culling is disabled. See [member cull_mode]."
msgstr "禁用剔除。参见[member cull_mode]。"

#: doc/classes/OccluderPolygon2D.xml:30
msgid ""
"Culling is performed in the clockwise direction. See [member cull_mode]."
msgstr "按顺时针方向进行剔除。见[member cull_mode]。"

#: doc/classes/OccluderPolygon2D.xml:33
msgid ""
"Culling is performed in the counterclockwise direction. See [member "
"cull_mode]."
msgstr "按逆时针方向进行剔除。参见[member cull_mode]。"

#: doc/classes/OccluderShape.xml:4
msgid ""
"Base class for shapes used for occlusion culling by the [Occluder] node."
msgstr ""

#: doc/classes/OccluderShape.xml:7
msgid "[Occluder]s can use any primitive shape derived from [OccluderShape]."
msgstr ""

#: doc/classes/OccluderShapeSphere.xml:4
msgid "Spherical occlusion primitive for use with the [Occluder] node."
msgstr ""

#: doc/classes/OccluderShapeSphere.xml:7
msgid ""
"[OccluderShape]s are resources used by [Occluder] nodes, allowing geometric "
"occlusion culling.\n"
"This shape can include multiple spheres. These can be created and deleted "
"either in the Editor inspector or by calling [code]set_spheres[/code]. The "
"sphere positions can be set by dragging the handle in the Editor viewport. "
"The radius can be set with the smaller handle."
msgstr ""

#: doc/classes/OccluderShapeSphere.xml:18
#, fuzzy
msgid "Sets an individual sphere's position."
msgstr "在[member collision_mask]上设置独立像素。"

#: doc/classes/OccluderShapeSphere.xml:26
#, fuzzy
msgid "Sets an individual sphere's radius."
msgstr "返回图层蒙版上的单个位。"

#: doc/classes/OccluderShapeSphere.xml:32
msgid ""
"The sphere data can be accessed as an array of [Plane]s. The position of "
"each sphere is stored in the [code]normal[/code], and the radius is stored "
"in the [code]d[/code] value of the plane."
msgstr ""

#: doc/classes/OmniLight.xml:4
msgid "Omnidirectional light, such as a light bulb or a candle."
msgstr "全方位的光,如灯泡或蜡烛。"

#: doc/classes/OmniLight.xml:7
msgid ""
"An Omnidirectional light is a type of [Light] that emits light in all "
"directions. The light is attenuated by distance and this attenuation can be "
"configured by changing its energy, radius, and attenuation parameters.\n"
"[b]Note:[/b] By default, only 32 OmniLights may affect a single mesh "
"[i]resource[/i] at once. Consider splitting your level into several meshes "
"to decrease the likelihood that more than 32 lights will affect the same "
"mesh resource. Splitting the level mesh will also improve frustum culling "
"effectiveness, leading to greater performance. If you need to use more "
"lights per mesh, you can increase [member ProjectSettings.rendering/limits/"
"rendering/max_lights_per_object] at the cost of shader compilation times."
msgstr ""

#: doc/classes/OmniLight.xml:17
msgid ""
"The light's attenuation (drop-off) curve. A number of presets are available "
"in the [b]Inspector[/b] by right-clicking the curve."
msgstr ""
"光的衰减(下降)曲线。在[b]检查器[/b]中,通过右键点击曲线,可以获得许多预设。"

#: doc/classes/OmniLight.xml:20
msgid ""
"The light's radius. Note that the effectively lit area may appear to be "
"smaller depending on the [member omni_attenuation] in use. No matter the "
"[member omni_attenuation] in use, the light will never reach anything "
"outside this radius."
msgstr ""
"光的半径。请注意,有效的照明区域可能看起来更小,这取决于使用的[member "
"omni_attenuation]。无论使用何种[member omni_attenuation],光线都不会到达这个"
"半径以外的地方。"

#: doc/classes/OmniLight.xml:23
#, fuzzy
msgid "See [enum ShadowDetail]."
msgstr "参见[enum ShadowMode]。"

#: doc/classes/OmniLight.xml:26
msgid "See [enum ShadowMode]."
msgstr "参见[enum ShadowMode]。"

#: doc/classes/OmniLight.xml:31
msgid ""
"Shadows are rendered to a dual-paraboloid texture. Faster than [constant "
"SHADOW_CUBE], but lower-quality."
msgstr ""
"阴影被渲染到一个双抛物面纹理。比[constant SHADOW_CUBE]更快,但质量较差。"

#: doc/classes/OmniLight.xml:34
msgid ""
"Shadows are rendered to a cubemap. Slower than [constant "
"SHADOW_DUAL_PARABOLOID], but higher-quality."
msgstr ""
"阴影被渲染成一个cubemap。比[constant SHADOW_DUAL_PARABOLOID]慢,但质量更高。"

#: doc/classes/OmniLight.xml:37
msgid "Use more detail vertically when computing the shadow."
msgstr ""

#: doc/classes/OmniLight.xml:40
msgid "Use more detail horizontally when computing the shadow."
msgstr ""

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:4
msgid "Noise generator based on Open Simplex."
msgstr "基于Open Simplex的噪声发生器。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:7
msgid ""
"This resource allows you to configure and sample a fractal noise space. Here "
"is a brief usage example that configures an OpenSimplexNoise and gets "
"samples at various positions and dimensions:\n"
"[codeblock]\n"
"var noise = OpenSimplexNoise.new()\n"
"\n"
"# Configure\n"
"noise.seed = randi()\n"
"noise.octaves = 4\n"
"noise.period = 20.0\n"
"noise.persistence = 0.8\n"
"\n"
"# Sample\n"
"print(\"Values:\")\n"
"print(noise.get_noise_2d(1.0, 1.0))\n"
"print(noise.get_noise_3d(0.5, 3.0, 15.0))\n"
"print(noise.get_noise_4d(0.5, 1.9, 4.7, 0.0))\n"
"[/codeblock]"
msgstr ""
"这个资源允许你配置和采样一个分形噪声空间。下面是一个简短的使用例子,它配置了"
"一个OpenSimplexNoise,并在不同的位置和维度上得到采样。\n"
"[codeblock]\n"
"var noise = OpenSimplexNoise.new()\n"
"\n"
"# Configure\n"
"noise.seed = randi()\n"
"noise.octaves = 4\n"
"noise.period = 20.0\n"
"noise.persistence = 0.8\n"
"\n"
"# Sample\n"
"print(\"Values:\")\n"
"print(noise.get_noise_2d(1.0, 1.0))\n"
"print(noise.get_noise_3d(0.5, 3.0, 15.0))\n"
"print(noise.get_noise_4d(0.5, 1.9, 4.7, 0.0))\n"
"[/codeblock]"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:33
msgid ""
"Generate a noise image in [constant Image.FORMAT_L8] format with the "
"requested [code]width[/code] and [code]height[/code], based on the current "
"noise parameters. If [code]noise_offset[/code] is specified, then the offset "
"value is used as the coordinates of the top-left corner of the generated "
"noise."
msgstr ""

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:40
msgid ""
"Returns the 1D noise value [code][-1,1][/code] at the given x-coordinate.\n"
"[b]Note:[/b] This method actually returns the 2D noise value [code][-1,1][/"
"code] with fixed y-coordinate value 0.0."
msgstr ""
"返回给定x坐标处的一维噪声值[code][-1,1][/code]。\n"
"[b]注意:[/b]这个方法实际上返回的是固定Y坐标值为0.0的二维噪声值[code][-1,1][/"
"code]。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:49
#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:56
msgid "Returns the 2D noise value [code][-1,1][/code] at the given position."
msgstr "返回给定位置的2D噪声值[code][-1,1][/code]。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:65
#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:72
msgid "Returns the 3D noise value [code][-1,1][/code] at the given position."
msgstr "返回在给定位置的3D噪声值[code][-1,1][/code]。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:82
msgid "Returns the 4D noise value [code][-1,1][/code] at the given position."
msgstr "返回指定位置的4D噪声值[code][-1,1][/code]。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:89
#, fuzzy
msgid ""
"Generate a tileable noise image in [constant Image.FORMAT_L8] format, based "
"on the current noise parameters. Generated seamless images are always square "
"([code]size[/code] × [code]size[/code]).\n"
"[b]Note:[/b] Seamless noise has a lower contrast compared to non-seamless "
"noise. This is due to the way noise uses higher dimensions for generating "
"seamless noise."
msgstr ""
"根据当前的噪声参数,生成一个可平铺的噪声图像。生成的无缝图像总是方形的"
"([code]size[/code] × [code]size[/code])。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:96
msgid "Difference in period between [member octaves]."
msgstr "在[[member octaves]之间的周期差异。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:99
msgid ""
"Number of OpenSimplex noise layers that are sampled to get the fractal "
"noise. Higher values result in more detailed noise but take more time to "
"generate.\n"
"[b]Note:[/b] The maximum allowed value is 9."
msgstr ""
"采样得到分形噪声的OpenSimplex噪声层数。更高的值导致更详细的噪声,但需要更多的"
"时间来生成。\n"
"[b]备注:[/b]最大值为9。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:103
msgid ""
"Period of the base octave. A lower period results in a higher-frequency "
"noise (more value changes across the same distance)."
msgstr ""
"基本八度的周期。较低的周期会导致更高频率的噪声(在相同距离上的值变化更多)。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:106
msgid ""
"Contribution factor of the different octaves. A [code]persistence[/code] "
"value of 1 means all the octaves have the same contribution, a value of 0.5 "
"means each octave contributes half as much as the previous one."
msgstr ""
"不同八度音阶的贡献因子。[code]persistence[/code]值为1表示所有的八度有相同的贡"
"献,值为0.5表示每个八度的贡献是前一个的一半。"

#: modules/opensimplex/doc_classes/OpenSimplexNoise.xml:109
msgid ""
"Seed used to generate random values, different seeds will generate different "
"noise maps."
msgstr "用于生成随机值的种子,不同的种子将生成不同的噪声图。"

#: doc/classes/OptionButton.xml:4
msgid "Button control that provides selectable options when pressed."
msgstr "按下时提供可选选项的按钮控件。"

#: doc/classes/OptionButton.xml:7
#, fuzzy
msgid ""
"OptionButton is a type button that provides a selectable list of items when "
"pressed. The item selected becomes the \"current\" item and is displayed as "
"the button text.\n"
"See also [BaseButton] which contains common properties and methods "
"associated with this node."
msgstr ""
"OptionButton是一个类型按钮,当按下时提供可选择的项目列表。选中的项目将成为“当"
"前”项目,并显示为按钮文本。"

#: doc/classes/OptionButton.xml:19
msgid ""
"Adds an item, with a [code]texture[/code] icon, text [code]label[/code] and "
"(optionally) [code]id[/code]. If no [code]id[/code] is passed, the item "
"index will be used as the item's ID. New items are appended at the end."
msgstr ""
"添加一个项,带有[code]texture[/code]图标,文本[code]label[/code]和(可选的)"
"[code]id[/code]。如果没有传入[code]id[/code],该项的索引将被用作其id。新项将"
"被添加至末尾。"

#: doc/classes/OptionButton.xml:27
msgid ""
"Adds an item, with text [code]label[/code] and (optionally) [code]id[/code]. "
"If no [code]id[/code] is passed, the item index will be used as the item's "
"ID. New items are appended at the end."
msgstr ""
"添加一个项,带有文本[code]label[/code]和(可选的)[code]id[/code]。如果没有传入"
"[code]id[/code],该项的索引将被用作其id。新项将被添加至末尾。"

#: doc/classes/OptionButton.xml:33
msgid ""
"Adds a separator to the list of items. Separators help to group items. "
"Separator also takes up an index and is appended at the end."
msgstr ""
"将分隔符添加到项目列表中。分隔符有助于对项目进行分组。分隔符也占用索引,并被"
"附加在末尾。"

#: doc/classes/OptionButton.xml:39
msgid "Clears all the items in the [OptionButton]."
msgstr "清除[OptionButton]中的所有项目。"

#: doc/classes/OptionButton.xml:45
msgid "Returns the amount of items in the OptionButton, including separators."
msgstr "返回OptionButton中的项目数量,包括分隔符。"

#: doc/classes/OptionButton.xml:52 doc/classes/PopupMenu.xml:203
msgid "Returns the icon of the item at index [code]idx[/code]."
msgstr "返回索引[code]idx[/code]处项目的图标。"

#: doc/classes/OptionButton.xml:59
msgid "Returns the ID of the item at index [code]idx[/code]."
msgstr "返回索引[code]idx[/code]处项目的ID。"

#: doc/classes/OptionButton.xml:66
msgid "Returns the index of the item with the given [code]id[/code]."
msgstr "返回带有给定[code]id[/code]的项的索引。"

#: doc/classes/OptionButton.xml:73
msgid ""
"Retrieves the metadata of an item. Metadata may be any type and can be used "
"to store extra information about an item, such as an external string ID."
msgstr ""
"检索项的元数据。元数据可以是任何类型,并可用于存储关于项的额外信息,如外部字"
"符串ID。"

#: doc/classes/OptionButton.xml:80 doc/classes/PopupMenu.xml:245
msgid "Returns the text of the item at index [code]idx[/code]."
msgstr "返回索引[code]idx[/code]处项目的文本。"

#: doc/classes/OptionButton.xml:92
msgid ""
"Returns the ID of the selected item, or [code]0[/code] if no item is "
"selected."
msgstr "返回所选项目的ID,如果没有选择项目,则返回[code]0[/code]。"

#: doc/classes/OptionButton.xml:98
msgid ""
"Gets the metadata of the selected item. Metadata for items can be set using "
"[method set_item_metadata]."
msgstr "获取选定项的元数据。可以使用[method set_item_metadata]设置项的元数据。"

#: doc/classes/OptionButton.xml:105
msgid ""
"Returns [code]true[/code] if the item at index [code]idx[/code] is disabled."
msgstr "如果索引[code]idx[/code]项被禁用,返回[code]true[/code]。"

#: doc/classes/OptionButton.xml:112
msgid "Removes the item at index [code]idx[/code]."
msgstr "移除索引[code]idx[/code]处的项目。"

#: doc/classes/OptionButton.xml:119
msgid ""
"Selects an item by index and makes it the current item. This will work even "
"if the item is disabled."
msgstr "按索引选择项并使其为当前选中项。即使该项是禁用的,这也将起作用。"

#: doc/classes/OptionButton.xml:127
msgid ""
"Sets whether the item at index [code]idx[/code] is disabled.\n"
"Disabled items are drawn differently in the dropdown and are not selectable "
"by the user. If the current selected item is set as disabled, it will remain "
"selected."
msgstr ""
"设置是否禁用索引[code]idx[/code]项。\n"
"禁用的项目在下拉列表中绘制的方式不同,用户无法选择。如果当前选定的项目被设置"
"为禁用,它将保持选中状态。"

#: doc/classes/OptionButton.xml:136
msgid "Sets the icon of the item at index [code]idx[/code]."
msgstr "设置在索引[code]idx[/code]处项的图标。"

#: doc/classes/OptionButton.xml:144
msgid "Sets the ID of the item at index [code]idx[/code]."
msgstr "设置在索引[code]idx[/code]处项的ID。"

#: doc/classes/OptionButton.xml:152
msgid ""
"Sets the metadata of an item. Metadata may be of any type and can be used to "
"store extra information about an item, such as an external string ID."
msgstr ""
"设置项的元数据。元数据可以是任何类型,可以用来存储关于项目的额外信息,比如外"
"部字符串ID。"

#: doc/classes/OptionButton.xml:160 doc/classes/PopupMenu.xml:432
msgid "Sets the text of the item at index [code]idx[/code]."
msgstr "在索引[code]idx[/code]处设置项的文本。"

#: doc/classes/OptionButton.xml:168
msgid ""
"The index of the currently selected item, or [code]-1[/code] if no item is "
"selected."
msgstr "当前选定项的索引,如果没有选定项,则为[code]-1[/code]。"

#: doc/classes/OptionButton.xml:176
#, fuzzy
msgid ""
"Emitted when the user navigates to an item using the [code]ui_up[/code] or "
"[code]ui_down[/code] actions. The index of the item selected is passed as "
"argument."
msgstr ""
"当用户使用[code]ui_up[/code]或[code]ui_down[/code]操作导航到一个项目时触发。"
"所选项目的索引作为参数传递。"

#: doc/classes/OptionButton.xml:182
msgid ""
"Emitted when the current item has been changed by the user. The index of the "
"item selected is passed as argument."
msgstr "当用户更改当前项时触发。所选项目的索引作为参数传递。"

#: doc/classes/OptionButton.xml:190
msgid "The arrow icon to be drawn on the right end of the button."
msgstr "要绘制在按钮右侧的箭头图标。"

#: doc/classes/OptionButton.xml:193
msgid ""
"The horizontal space between the arrow icon and the right edge of the button."
msgstr "箭头图标和按钮的右边缘之间的水平空间。"

#: doc/classes/OptionButton.xml:196
msgid "[StyleBox] used when the [OptionButton] is disabled."
msgstr "当[OptionButton]被禁用时使用的[StyleBox]。"

#: doc/classes/OptionButton.xml:199
msgid ""
"[StyleBox] used when the [OptionButton] is focused. It is displayed over the "
"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
"visual effect."
msgstr ""
"当[OptionButton]被聚焦时使用的[StyleBox]。它显示在当前的[StyleBox]上,所以使"
"用[StyleBoxEmpty]将只是禁用焦点的视觉效果。"

#: doc/classes/OptionButton.xml:202
msgid "[Font] of the [OptionButton]'s text."
msgstr "[OptionButton]的文本的[Font]。"

#: doc/classes/OptionButton.xml:205
msgid "Default text [Color] of the [OptionButton]."
msgstr "[OptionButton]的默认文本[Color]。"

#: doc/classes/OptionButton.xml:208
msgid "Text [Color] used when the [OptionButton] is disabled."
msgstr "当[OptionButton]被禁用时使用的文本[Color]。"

#: doc/classes/OptionButton.xml:211
msgid "Text [Color] used when the [OptionButton] is being hovered."
msgstr "当鼠标悬停[OptionButton]时使用的文本[Color]。"

#: doc/classes/OptionButton.xml:214
msgid "Text [Color] used when the [OptionButton] is being pressed."
msgstr "当[OptionButton]被按下时使用的文本[Color]。"

#: doc/classes/OptionButton.xml:217
msgid "[StyleBox] used when the [OptionButton] is being hovered."
msgstr "当[OptionButton]被鼠标悬停时使用的[StyleBox]。"

#: doc/classes/OptionButton.xml:220
msgid "The horizontal space between [OptionButton]'s icon and text."
msgstr "[OptionButton]图标与文本之间的水平间距。"

#: doc/classes/OptionButton.xml:223
msgid "Default [StyleBox] for the [OptionButton]."
msgstr "[OptionButton]的默认[StyleBox]。"

#: doc/classes/OptionButton.xml:226
msgid "[StyleBox] used when the [OptionButton] is being pressed."
msgstr "当按下[OptionButton]时使用的[StyleBox]。"

#: doc/classes/OS.xml:4
msgid "Operating System functions."
msgstr "操作系统功能。"

#: doc/classes/OS.xml:7
msgid ""
"Operating System functions. OS wraps the most common functionality to "
"communicate with the host operating system, such as the clipboard, video "
"driver, date and time, timers, environment variables, execution of binaries, "
"command line, etc."
msgstr ""
"操作系统的功能。OS包装了与主机操作系统通信的最常见功能,如剪贴板、视频驱动程"
"序、日期和时间、计时器、环境变量、二进制文件的执行、命令行等。"

#: doc/classes/OS.xml:18
msgid ""
"Displays a modal dialog box using the host OS' facilities. Execution is "
"blocked until the dialog is closed."
msgstr ""

#: doc/classes/OS.xml:24
#, fuzzy
msgid "Returns [code]true[/code] if the host OS allows drawing."
msgstr "如果字体有边框,返回[code]true[/code]。"

#: doc/classes/OS.xml:30
msgid ""
"Returns [code]true[/code] if the current host platform is using multiple "
"threads."
msgstr "如果当前主机平台使用多个线程,则返回[code]true[/code]。"

#: doc/classes/OS.xml:36
#, fuzzy
msgid "Centers the window on the screen if in windowed mode."
msgstr "设置指定节点的位置。"

#: doc/classes/OS.xml:42
msgid ""
"Shuts down system MIDI driver.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"关闭系统MIDI驱动程序。\n"
"[b]注意:[/b]该方法只在Linux, macOS和Windows上实现。"

#: doc/classes/OS.xml:50
msgid ""
"Delays execution of the current thread by [code]msec[/code] milliseconds. "
"[code]msec[/code] must be greater than or equal to [code]0[/code]. "
"Otherwise, [method delay_msec] will do nothing and will print an error "
"message.\n"
"[b]Note:[/b] [method delay_msec] is a [i]blocking[/i] way to delay code "
"execution. To delay code execution in a non-blocking way, see [method "
"SceneTree.create_timer]. Yielding with [method SceneTree.create_timer] will "
"delay the execution of code placed below the [code]yield[/code] without "
"affecting the rest of the project (or editor, for [EditorPlugin]s and "
"[EditorScript]s).\n"
"[b]Note:[/b] When [method delay_msec] is called on the main thread, it will "
"freeze the project and will prevent it from redrawing and registering input "
"until the delay has passed. When using [method delay_msec] as part of an "
"[EditorPlugin] or [EditorScript], it will freeze the editor but won't freeze "
"the project if it is currently running (since the project is an independent "
"child process)."
msgstr ""

#: doc/classes/OS.xml:59
msgid ""
"Delays execution of the current thread by [code]usec[/code] microseconds. "
"[code]usec[/code] must be greater than or equal to [code]0[/code]. "
"Otherwise, [method delay_usec] will do nothing and will print an error "
"message.\n"
"[b]Note:[/b] [method delay_usec] is a [i]blocking[/i] way to delay code "
"execution. To delay code execution in a non-blocking way, see [method "
"SceneTree.create_timer]. Yielding with [method SceneTree.create_timer] will "
"delay the execution of code placed below the [code]yield[/code] without "
"affecting the rest of the project (or editor, for [EditorPlugin]s and "
"[EditorScript]s).\n"
"[b]Note:[/b] When [method delay_usec] is called on the main thread, it will "
"freeze the project and will prevent it from redrawing and registering input "
"until the delay has passed. When using [method delay_usec] as part of an "
"[EditorPlugin] or [EditorScript], it will freeze the editor but won't freeze "
"the project if it is currently running (since the project is an independent "
"child process)."
msgstr ""

#: doc/classes/OS.xml:68
msgid ""
"Dumps the memory allocation ringlist to a file (only works in debug).\n"
"Entry format per line: \"Address - Size - Description\"."
msgstr ""
"将内存分配ringlist转储到一个文件(仅在调试中工作)。\n"
"每行输入格式:“地址-大小-描述”。"

#: doc/classes/OS.xml:76
msgid ""
"Dumps all used resources to file (only works in debug).\n"
"Entry format per line: \"Resource Type : Resource Location\".\n"
"At the end of the file is a statistic of all used Resource Types."
msgstr ""
"将所有使用的资源转储到文件中(仅在调试中有效)。\n"
"每行输入格式:“资源类型:资源位置”。\n"
"在文件的末尾是所有已使用资源类型的统计数据。"

#: doc/classes/OS.xml:89
msgid ""
"Execute the file at the given path with the arguments passed as an array of "
"strings. Platform path resolution will take place. The resolved file must "
"exist and be executable.\n"
"The arguments are used in the given order and separated by a space, so "
"[code]OS.execute(\"ping\", [\"-w\", \"3\", \"godotengine.org\"], false)[/"
"code] will resolve to [code]ping -w 3 godotengine.org[/code] in the system's "
"shell.\n"
"This method has slightly different behavior based on whether the "
"[code]blocking[/code] mode is enabled.\n"
"If [code]blocking[/code] is [code]true[/code], the Godot thread will pause "
"its execution while waiting for the process to terminate. The shell output "
"of the process will be written to the [code]output[/code] array as a single "
"string. When the process terminates, the Godot thread will resume "
"execution.\n"
"If [code]blocking[/code] is [code]false[/code], the Godot thread will "
"continue while the new process runs. It is not possible to retrieve the "
"shell output in non-blocking mode, so [code]output[/code] will be empty.\n"
"The return value also depends on the blocking mode. When blocking, the "
"method will return an exit code of the process. When non-blocking, the "
"method returns a process ID, which you can use to monitor the process (and "
"potentially terminate it with [method kill]). If the process forking (non-"
"blocking) or opening (blocking) fails, the method will return [code]-1[/"
"code] or another exit code.\n"
"Example of blocking mode and retrieving the shell output:\n"
"[codeblock]\n"
"var output = []\n"
"var exit_code = OS.execute(\"ls\", [\"-l\", \"/tmp\"], true, output)\n"
"[/codeblock]\n"
"Example of non-blocking mode, running another instance of the project and "
"storing its process ID:\n"
"[codeblock]\n"
"var pid = OS.execute(OS.get_executable_path(), [], false)\n"
"[/codeblock]\n"
"If you wish to access a shell built-in or perform a composite command, a "
"platform-specific shell can be invoked. For example:\n"
"[codeblock]\n"
"OS.execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], true, output)\n"
"[/codeblock]\n"
"[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and "
"Windows."
msgstr ""
"在给定的路径上执行文件,参数以字符串数组的形式传递。将进行平台路径解析。被解"
"析的文件必须存在并且是可执行的。\n"
"参数按照给定的顺序使用,并用空格隔开,所以[code]OS.execute(\"ping\", [\"-w"
"\", \"3\", \"godotengine.org\"], false)[/code] 将在系统的外壳中解析为"
"[code]ping -w 3 godotengine.org[/code]。\n"
"这个方法根据是否启用[code]blocking[/code]模式,有稍微不同的行为。\n"
"如果[code]blocking[/code]为[code]true[/code],Godot线程将暂停执行,等待进程的"
"终止。进程的shell输出将作为一个字符串写入[code]output[/code]数组。当进程终止"
"时,Godot线程将恢复执行。\n"
"如果[code]blocking[/code]为[code]false[/code],Godot线程将在新进程运行时继"
"续。在非阻塞模式下不可能检索shell的输出,所以[code]output[/code]将是空的。\n"
"返回值也取决于阻塞模式。当阻塞时,该方法将返回一个进程的退出代码。当非阻塞"
"时,该方法返回一个进程ID,你可以用它来监视该进程(并有可能用[method kill]来终"
"止它)。如果进程分叉(非阻塞)或打开(阻塞)失败,该方法将返回[code]-1[/code]"
"或其他退出代码。\n"
"阻塞模式和检索shell输出的例子:\n"
"[codeblock]\n"
"var output = []\n"
"var exit_code = OS.execute(\"ls\", [\"-l\", \"/tmp\"], true, output)\n"
"[/codeblock]\n"
"Example of non-blocking mode, running another instance of the project and "
"storing its process ID:\n"
"[codeblock]\n"
"var pid = OS.execute(OS.get_executable_path(), [], false)\n"
"[/codeblock]\n"
"If you wish to access a shell built-in or perform a composite command, a "
"platform-specific shell can be invoked. For example:\n"
"[codeblock]\n"
"OS.execute(\"CMD.exe\", [\"/C\", \"cd %TEMP% && dir\"], true, output)\n"
"[/codeblock]\n"
"[b]注:[/b]此方法仅在Android, iOS, Linux, macOS和Windows上实现。"

#: doc/classes/OS.xml:115
#, fuzzy
msgid "Returns the scancode of the given string (e.g. \"Escape\")."
msgstr "返回给定字符串的键码(例如:“Escape”)。"

#: doc/classes/OS.xml:121
#, fuzzy
msgid "Returns the total number of available audio drivers."
msgstr "返回[Mesh]中顶点的总数。"

#: doc/classes/OS.xml:128
#, fuzzy
msgid "Returns the audio driver name for the given index."
msgstr "返回给定索引处的顶点。"

#: doc/classes/OS.xml:134
msgid ""
"Returns the [i]global[/i] cache data directory according to the operating "
"system's standards. On desktop platforms, this path can be overridden by "
"setting the [code]XDG_CACHE_HOME[/code] environment variable before starting "
"the project. See [url=https://docs.godotengine.org/en/latest/tutorials/io/"
"data_paths.html]File paths in Godot projects[/url] in the documentation for "
"more information. See also [method get_config_dir] and [method "
"get_data_dir].\n"
"Not to be confused with [method get_user_data_dir], which returns the "
"[i]project-specific[/i] user data path."
msgstr ""

#: doc/classes/OS.xml:141
#, fuzzy
msgid ""
"Returns the command-line arguments passed to the engine.\n"
"Command-line arguments can be written in any form, including both [code]--"
"key value[/code] and [code]--key=value[/code] forms so they can be properly "
"parsed, as long as custom command-line arguments do not conflict with engine "
"arguments.\n"
"You can also incorporate environment variables using the [method "
"get_environment] method.\n"
"You can set [member ProjectSettings.editor/main_run_args] to define command-"
"line arguments to be passed by the editor when running the project.\n"
"Here's a minimal example on how to parse command-line arguments into a "
"dictionary using the [code]--key=value[/code] form for arguments:\n"
"[codeblock]\n"
"var arguments = {}\n"
"for argument in OS.get_cmdline_args():\n"
"    if argument.find(\"=\") > -1:\n"
"        var key_value = argument.split(\"=\")\n"
"        arguments[key_value[0].lstrip(\"--\")] = key_value[1]\n"
"[/codeblock]"
msgstr ""
"返回传递给引擎的命令行参数。\n"
"命令行参数可以以任何形式编写,包括[code]--key value[/code]和[code]--"
"key=value[/code]形式,以便正确解析它们,只要自定义命令行参数不与引擎参数冲"
"突。\n"
"您还可以使用[method get_environment]方法合并环境变量。\n"
"您可以在项目设置中设置[code]editor/main_run_args[/code],以定义在运行项目时由"
"编辑器传递的命令行参数。\n"
"下面是一个关于如何使用[code]--key=value[/code]形式将命令行参数解析为字典的最"
"小示例:\n"
"[codeblock]\n"
"var arguments = {}\n"
"for argument in OS.get_cmdline_args():\n"
"    if argument.find(\"=\") > -1:\n"
"        var key_value = argument.split(\"=\")\n"
"        arguments[key_value[0].lstrip(\"--\")] = key_value[1]\n"
"[/codeblock]"

#: doc/classes/OS.xml:158
msgid ""
"Returns the [i]global[/i] user configuration directory according to the "
"operating system's standards. On desktop platforms, this path can be "
"overridden by setting the [code]XDG_CONFIG_HOME[/code] environment variable "
"before starting the project. See [url=https://docs.godotengine.org/en/latest/"
"tutorials/io/data_paths.html]File paths in Godot projects[/url] in the "
"documentation for more information. See also [method get_cache_dir] and "
"[method get_data_dir].\n"
"Not to be confused with [method get_user_data_dir], which returns the "
"[i]project-specific[/i] user data path."
msgstr ""

#: doc/classes/OS.xml:165
msgid ""
"Returns an array of MIDI device names.\n"
"The returned array will be empty if the system MIDI driver has not "
"previously been initialised with [method open_midi_inputs].\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回MIDI设备名称数组。\n"
"如果系统MIDI驱动程序之前没有使用[method open_midi_inputs]初始化,返回的数组将"
"是空的。\n"
"[b]注意:[/b]该方法仅在Linux, macOS和Windows上实现。"

#: doc/classes/OS.xml:173
#, fuzzy
msgid ""
"Returns the currently used video driver, using one of the values from [enum "
"VideoDriver]."
msgstr "返回当前编辑的项目。这仅适用于自定义单元格模式。"

#: doc/classes/OS.xml:179
msgid ""
"Returns the [i]global[/i] user data directory according to the operating "
"system's standards. On desktop platforms, this path can be overridden by "
"setting the [code]XDG_DATA_HOME[/code] environment variable before starting "
"the project. See [url=https://docs.godotengine.org/en/latest/tutorials/io/"
"data_paths.html]File paths in Godot projects[/url] in the documentation for "
"more information. See also [method get_cache_dir] and [method "
"get_config_dir].\n"
"Not to be confused with [method get_user_data_dir], which returns the "
"[i]project-specific[/i] user data path."
msgstr ""

#: doc/classes/OS.xml:187
msgid ""
"Returns current date as a dictionary of keys: [code]year[/code], "
"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] "
"(Daylight Savings Time)."
msgstr ""
"返回当前日期作为键的字典:[code]year[/code], [code]month[/code], [code]day[/"
"code], [code]weekday[/code], [code]dst[/code](夏令时)。"

#: doc/classes/OS.xml:194
msgid ""
"Returns current datetime as a dictionary of keys: [code]year[/code], "
"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] "
"(Daylight Savings Time), [code]hour[/code], [code]minute[/code], "
"[code]second[/code]."
msgstr ""
"返回当前日期时间作为关键字字典:[code]year[/code], [code]month[/code], "
"[code]day[/code], [code]weekday[/code], [code]dst[/code](夏令时),"
"[code]hour[/code], [code]minute[/code], [code]second[/code]。"

#: doc/classes/OS.xml:201
msgid ""
"Gets a dictionary of time values corresponding to the given UNIX epoch time "
"(in seconds).\n"
"The returned Dictionary's values will be the same as [method get_datetime], "
"with the exception of Daylight Savings Time as it cannot be determined from "
"the epoch."
msgstr ""
"获取与给定UNIX历元时间(以秒为单位)对应的时间值字典。\n"
"返回的Dictionary值将与[method get_datetime]相同,除了Daylight Savings Time,"
"因为它不能从epoch确定。"

#: doc/classes/OS.xml:208
#, fuzzy
msgid "Returns the total amount of dynamic memory used (only works in debug)."
msgstr "返回使用的静态内存的最大数量(仅在调试中有效)。"

#: doc/classes/OS.xml:215
msgid ""
"Returns the value of an environment variable. Returns an empty string if the "
"environment variable doesn't exist.\n"
"[b]Note:[/b] Double-check the casing of [code]variable[/code]. Environment "
"variable names are case-sensitive on all platforms except Windows."
msgstr ""

#: doc/classes/OS.xml:222
msgid "Returns the path to the current engine executable."
msgstr "返回当前引擎可执行文件的路径。"

#: doc/classes/OS.xml:228
#, fuzzy
msgid ""
"With this function, you can get the list of dangerous permissions that have "
"been granted to the Android application.\n"
"[b]Note:[/b] This method is implemented on Android."
msgstr ""
"通过这个函数,您可以获得已授予Android应用程序的危险权限列表。\n"
"[b]注意:[/b]此方法仅在Android上实现。"

#: doc/classes/OS.xml:235
msgid ""
"Returns the IME cursor position (the currently-edited portion of the string) "
"relative to the characters in the composition string.\n"
"[constant MainLoop.NOTIFICATION_OS_IME_UPDATE] is sent to the application to "
"notify it of changes to the IME cursor position.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr ""

#: doc/classes/OS.xml:243
msgid ""
"Returns the IME intermediate composition string.\n"
"[constant MainLoop.NOTIFICATION_OS_IME_UPDATE] is sent to the application to "
"notify it of changes to the IME composition string.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr ""

#: doc/classes/OS.xml:251
#, fuzzy
msgid ""
"Returns the current latin keyboard variant as a String.\n"
"Possible return values are: [code]\"QWERTY\"[/code], [code]\"AZERTY\"[/"
"code], [code]\"QZERTY\"[/code], [code]\"DVORAK\"[/code], [code]\"NEO\"[/"
"code], [code]\"COLEMAK\"[/code] or [code]\"ERROR\"[/code].\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows. Returns "
"[code]\"QWERTY\"[/code] on unsupported platforms."
msgstr ""
"返回主机操作系统的名称。可能的值有: [code]\"Android\"[/code], [code]\"iOS"
"\"[/code], [code]\"HTML5\"[/code], [code]\"OSX\"[/code], [code]\"Server\"[/"
"code], [code]\"Windows\"[/code], [code]\"UWP\"[/code], [code]\"X11\"[/code]."

#: doc/classes/OS.xml:259
msgid ""
"Returns the host OS locale as a string of the form "
"[code]language_Script_COUNTRY_VARIANT@extra[/code]. If you want only the "
"language code and not the fully specified locale from the OS, you can use "
"[method get_locale_language].\n"
"[code]language[/code] - 2 or 3-letter [url=https://en.wikipedia.org/wiki/"
"List_of_ISO_639-1_codes]language code[/url], in lower case.\n"
"[code]Script[/code] - optional, 4-letter [url=https://en.wikipedia.org/wiki/"
"ISO_15924]script code[/url], in title case.\n"
"[code]COUNTRY[/code] - optional, 2 or 3-letter [url=https://en.wikipedia.org/"
"wiki/ISO_3166-1]country code[/url], in upper case.\n"
"[code]VARIANT[/code] - optional, language variant, region and sort order. "
"Variant can have any number of underscored keywords.\n"
"[code]extra[/code] - optional, semicolon separated list of additional key "
"words. Currency, calendar, sort order and numbering system information."
msgstr ""

#: doc/classes/OS.xml:270
msgid ""
"Returns the host OS locale's 2 or 3-letter [url=https://en.wikipedia.org/"
"wiki/List_of_ISO_639-1_codes]language code[/url] as a string which should be "
"consistent on all platforms. This is equivalent to extracting the "
"[code]language[/code] part of the [method get_locale] string.\n"
"This can be used to narrow down fully specified locale strings to only the "
"\"common\" language code, when you don't need the additional information "
"about country code or variants. For example, for a French Canadian user with "
"[code]fr_CA[/code] locale, this would return [code]fr[/code]."
msgstr ""

#: doc/classes/OS.xml:277
msgid ""
"Returns the model name of the current device.\n"
"[b]Note:[/b] This method is implemented on Android and iOS. Returns "
"[code]\"GenericDevice\"[/code] on unsupported platforms."
msgstr ""
"返回当前设备的模型名称。\n"
"[b]注意:[/b]此方法仅在Android和iOS上实现。在不支持的平台上返回"
"[code]\"GenericDevice\"[/code]。"

#: doc/classes/OS.xml:284
msgid ""
"Returns the name of the host OS. Possible values are: [code]\"Android\"[/"
"code], [code]\"iOS\"[/code], [code]\"HTML5\"[/code], [code]\"OSX\"[/code], "
"[code]\"Server\"[/code], [code]\"Windows\"[/code], [code]\"UWP\"[/code], "
"[code]\"X11\"[/code]."
msgstr ""
"返回主机操作系统的名称。可能的值有: [code]\"Android\"[/code], [code]\"iOS"
"\"[/code], [code]\"HTML5\"[/code], [code]\"OSX\"[/code], [code]\"Server\"[/"
"code], [code]\"Windows\"[/code], [code]\"UWP\"[/code], [code]\"X11\"[/code]."

#: doc/classes/OS.xml:291
#, fuzzy
msgid ""
"Returns internal structure pointers for use in GDNative plugins.\n"
"[b]Note:[/b] This method is implemented on Linux and Windows (other OSs will "
"soon be supported)."
msgstr ""
"返回键盘布局的数量。\n"
"[b]注意:[/b]本方法在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:298
#, fuzzy
msgid ""
"Returns the amount of battery left in the device as a percentage. Returns "
"[code]-1[/code] if power state is unknown.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回位于[code]index[/code]位置的键盘布局的本地名称。\n"
"[b]注意:[/b] 本方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:305
#, fuzzy
msgid ""
"Returns an estimate of the time left in seconds before the device runs out "
"of battery. Returns [code]-1[/code] if power state is unknown.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回位于[code]index[/code]位置的键盘布局的本地名称。\n"
"[b]注意:[/b] 本方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:312
#, fuzzy
msgid ""
"Returns the current state of the device regarding battery and power. See "
"[enum PowerState] constants.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回位于[code]index[/code]位置的键盘布局的本地名称。\n"
"[b]注意:[/b] 本方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:319
msgid ""
"Returns the project's process ID.\n"
"[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and "
"Windows."
msgstr ""
"返回项目的进程ID。\n"
"[b]注:[/b]此方法仅在Android, iOS, Linux, macOS和Windows上实现。"

#: doc/classes/OS.xml:326
msgid "Returns the number of threads available on the host machine."
msgstr "返回主机上可用的线程数。"

#: doc/classes/OS.xml:332
#, fuzzy
msgid "Returns the window size including decorations like window borders."
msgstr "返回函数入口点节点的ID。"

#: doc/classes/OS.xml:339
#, fuzzy
msgid ""
"Returns the given scancode as a string (e.g. Return values: [code]\"Escape"
"\"[/code], [code]\"Shift+Escape\"[/code]).\n"
"See also [member InputEventKey.scancode] and [method InputEventKey."
"get_scancode_with_modifiers]."
msgstr ""
"以字符串的形式返回给定的键码(例如:返回值:[code]\"Escape\"[/code], "
"[code]\"Shift+Escape\"[/code])。\n"
"参见[member InputEventKey]。[method InputEventKey."
"get_keycode_with_modifiers]。"

#: doc/classes/OS.xml:346
#, fuzzy
msgid "Returns the number of displays attached to the host machine."
msgstr "返回主机上可用的线程数。"

#: doc/classes/OS.xml:353
msgid ""
"Returns the dots per inch density of the specified screen. If [code]screen[/"
"code] is [/code]-1[/code] (the default value), the current screen will be "
"used.\n"
"[b]Note:[/b] On macOS, returned value is inaccurate if fractional display "
"scaling mode is used.\n"
"[b]Note:[/b] On Android devices, the actual screen densities are grouped "
"into six generalized densities:\n"
"[codeblock]\n"
"   ldpi - 120 dpi\n"
"   mdpi - 160 dpi\n"
"   hdpi - 240 dpi\n"
"  xhdpi - 320 dpi\n"
" xxhdpi - 480 dpi\n"
"xxxhdpi - 640 dpi\n"
"[/codeblock]\n"
"[b]Note:[/b] This method is implemented on Android, Linux, macOS and "
"Windows. Returns [code]72[/code] on unsupported platforms."
msgstr ""

#: doc/classes/OS.xml:370
msgid ""
"Return the greatest scale factor of all screens.\n"
"[b]Note:[/b] On macOS returned value is [code]2.0[/code] if there is at "
"least one hiDPI (Retina) screen in the system, and [code]1.0[/code] in all "
"other cases.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr ""
"返回最大的屏幕的缩放。\n"
"[b]注:[/b] 在macOS上,如果系统中至少有一个hiDPI(Retina)屏幕,则返回值为"
"[code]2.0[/code],其他情况为[code]1.0[/code]。\n"
"[b]注意:[/b]此方法仅在macOS上实现。"

#: doc/classes/OS.xml:379
msgid ""
"Returns the position of the specified screen by index. If [code]screen[/"
"code] is [/code]-1[/code] (the default value), the current screen will be "
"used."
msgstr ""

#: doc/classes/OS.xml:386
#, fuzzy
msgid ""
"Return the scale factor of the specified screen by index. If [code]screen[/"
"code] is [/code]-1[/code] (the default value), the current screen will be "
"used.\n"
"[b]Note:[/b] On macOS returned value is [code]2.0[/code] for hiDPI (Retina) "
"screen, and [code]1.0[/code] for all other cases.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr ""
"按索引返回指定屏幕的缩放。\n"
"[b]注:[/b] 在macOS上,hiDPI(Retina)屏幕的返回值为[code]2.0[/code],其他情况"
"为[code]1.0[/code]。\n"
"[b]注:[/b] 此方法在macOS上实现。"

#: doc/classes/OS.xml:395
msgid ""
"Returns the dimensions in pixels of the specified screen. If [code]screen[/"
"code] is [/code]-1[/code] (the default value), the current screen will be "
"used."
msgstr ""

#: doc/classes/OS.xml:401
msgid ""
"Returns the amount of time in milliseconds it took for the boot logo to "
"appear."
msgstr "返回启动标志出现所花费的时间(以毫秒为单位)。"

#: doc/classes/OS.xml:407
msgid "Returns the maximum amount of static memory used (only works in debug)."
msgstr "返回使用的静态内存的最大数量(仅在调试中有效)。"

#: doc/classes/OS.xml:413
msgid "Returns the amount of static memory being used by the program in bytes."
msgstr "返回程序所使用的静态内存量,以字节为单位。"

#: doc/classes/OS.xml:421
#, fuzzy
msgid ""
"Returns the actual path to commonly used folders across different platforms. "
"Available locations are specified in [enum SystemDir].\n"
"[b]Note:[/b] This method is implemented on Android, Linux, macOS and "
"Windows.\n"
"[b]Note:[/b] Shared storage is implemented on Android and allows to "
"differentiate between app specific and shared directories. Shared "
"directories have additional restrictions on Android."
msgstr ""
"返回跨不同平台的常用文件夹的实际路径。可用位置在[enum SystemDir]中指定。\n"
"[b]注:[/b]该方法仅在Android、Linux、macOS和Windows平台上实现。"

#: doc/classes/OS.xml:429
#, fuzzy
msgid "Returns the epoch time of the operating system in milliseconds."
msgstr "返回音频流的长度,单位为秒。"

#: doc/classes/OS.xml:435
#, fuzzy
msgid "Returns the epoch time of the operating system in seconds."
msgstr "返回音频流的长度,单位为秒。"

#: doc/classes/OS.xml:441
msgid ""
"Returns the total number of available tablet drivers.\n"
"[b]Note:[/b] This method is implemented on Windows."
msgstr ""
"返回可用的写字板(译注:或触摸板、数位板,在此处尚未明确)驱动程序的总数。\n"
"[b]注意:[/b]该方法是在Windows上实现的。"

#: doc/classes/OS.xml:449
msgid ""
"Returns the tablet driver name for the given index.\n"
"[b]Note:[/b] This method is implemented on Windows."
msgstr ""
"返回给定索引的写字板(译注:或触摸板、数位板,在此处尚未明确)驱动程序名"
"称。\n"
"[b]注意:[/b]该方法是在Windows上实现的。"

#: doc/classes/OS.xml:456
msgid ""
"Returns the ID of the current thread. This can be used in logs to ease "
"debugging of multi-threaded applications.\n"
"[b]Note:[/b] Thread IDs are not deterministic and may be reused across "
"application restarts."
msgstr ""

#: doc/classes/OS.xml:463
msgid ""
"Returns the amount of time passed in milliseconds since the engine started."
msgstr "返回引擎启动后经过的时间(以毫秒为单位)。"

#: doc/classes/OS.xml:469
msgid ""
"Returns the amount of time passed in microseconds since the engine started."
msgstr "返回引擎启动后经过的时间(以微秒为单位)。"

#: doc/classes/OS.xml:476
msgid "Returns current time as a dictionary of keys: hour, minute, second."
msgstr "以字典形式返回当前的时间,所包含的键:hour、minute、second。"

#: doc/classes/OS.xml:482
msgid ""
"Returns the current time zone as a dictionary with the keys: bias and name."
msgstr "以字典形式返回当前时区,键为:bias和name。"

#: doc/classes/OS.xml:488
msgid ""
"Returns a string that is unique to the device.\n"
"[b]Note:[/b] This string may change without notice if the user reinstalls/"
"upgrades their operating system or changes their hardware. This means it "
"should generally not be used to encrypt persistent data as the data saved "
"before an unexpected ID change would become inaccessible. The returned "
"string may also be falsified using external programs, so do not rely on the "
"string returned by [method get_unique_id] for security purposes.\n"
"[b]Note:[/b] Returns an empty string on HTML5 and UWP, as this method isn't "
"implemented on those platforms yet."
msgstr ""

#: doc/classes/OS.xml:496
msgid ""
"Returns the current UNIX epoch timestamp in seconds.\n"
"[b]Important:[/b] This is the system clock that the user can manually set. "
"[b]Never use[/b] this method for precise time calculation since its results "
"are also subject to automatic adjustments by the operating system. [b]Always "
"use[/b] [method get_ticks_usec] or [method get_ticks_msec] for precise time "
"calculation instead, since they are guaranteed to be monotonic (i.e. never "
"decrease)."
msgstr ""

#: doc/classes/OS.xml:504
#, fuzzy
msgid ""
"Gets an epoch time value from a dictionary of time values.\n"
"[code]datetime[/code] must be populated with the following keys: [code]year[/"
"code], [code]month[/code], [code]day[/code], [code]hour[/code], "
"[code]minute[/code], [code]second[/code].\n"
"If the dictionary is empty [code]0[/code] is returned. If some keys are "
"omitted, they default to the equivalent values for the UNIX epoch timestamp "
"0 (1970-01-01 at 00:00:00 UTC).\n"
"You can pass the output from [method get_datetime_from_unix_time] directly "
"into this function. Daylight Savings Time ([code]dst[/code]), if present, is "
"ignored."
msgstr ""
"从一个时间值的字典中获取一个纪元时间值。\n"
"[code]datetime[/code]将被以下键来填充: [code]year[/code], [code]month[/"
"code], [code]day[/code], [code]hour[/code], [code]minute[/code], "
"[code]second[/code]。\n"
"你可以将[method get_datetime_from_unix_time]的输出直接传递给这个函数。如果存"
"在夏令时([code]dst[/code]),则会被忽略。"

#: doc/classes/OS.xml:513
#, fuzzy
msgid ""
"Returns the absolute directory path where user data is written ([code]user://"
"[/code]).\n"
"On Linux, this is [code]~/.local/share/godot/app_userdata/[project_name][/"
"code], or [code]~/.local/share/[custom_name][/code] if "
"[code]use_custom_user_dir[/code] is set.\n"
"On macOS, this is [code]~/Library/Application Support/Godot/app_userdata/"
"[project_name][/code], or [code]~/Library/Application Support/[custom_name][/"
"code] if [code]use_custom_user_dir[/code] is set.\n"
"On Windows, this is [code]%APPDATA%\\Godot\\app_userdata\\[project_name][/"
"code], or [code]%APPDATA%\\[custom_name][/code] if "
"[code]use_custom_user_dir[/code] is set. [code]%APPDATA%[/code] expands to "
"[code]%USERPROFILE%\\AppData\\Roaming[/code].\n"
"If the project name is empty, [code]user://[/code] falls back to [code]res://"
"[/code].\n"
"Not to be confused with [method get_data_dir], which returns the [i]global[/"
"i] (non-project-specific) user data directory."
msgstr ""
"返回用户数据被写入的绝对目录路径([code]user://[/code])。\n"
"在Linux上,该路径是 [code]~/.local/share/godot/app_userdata/[project_name][/"
"code],如果[code]use_custom_user_dir[/code]被设置,则是[code]~/.local/share/"
"[custom_name][/code]。\n"
"在macOS上,该路径是 [code]~/Library/Application Support/Godot/app_userdata/"
"[project_name][/code],如果[code]use_custom_user_dir[/code]被设置,则是"
"[code]~/Library/Application Support/[custom_name][/code]。\n"
"在Windows上,该路径是[code]%APPDATA%\\Godot\\app_userdata\\[project_name][/"
"code],如果[code]use_custom_user_dir[/code]被设置,则是[code]%APPDATA%"
"\\[custom_name][/code]。[code]%APPDATA%[/code]扩展为 [code]%USERPROFILE%"
"\\AppData\\Roaming[/code]。\n"
"如果项目名称是空的,[code]user://[/code]会退回到[code]res://[/code]。"

#: doc/classes/OS.xml:524
#, fuzzy
msgid "Returns the number of video drivers supported on the current platform."
msgstr "返回向左偏移的隐藏选项卡的数量。"

#: doc/classes/OS.xml:531
msgid ""
"Returns the name of the video driver matching the given [code]driver[/code] "
"index. This index is a value from [enum VideoDriver], and you can use "
"[method get_current_video_driver] to get the current backend's index."
msgstr ""

#: doc/classes/OS.xml:537
msgid ""
"Returns the on-screen keyboard's height in pixels. Returns 0 if there is no "
"keyboard or if it is currently hidden."
msgstr ""
"返回键盘在屏幕上的高度,单位为像素。如果没有键盘或当前键盘被隐藏,则返回0。"

#: doc/classes/OS.xml:543
msgid ""
"Returns unobscured area of the window where interactive controls should be "
"rendered."
msgstr ""

#: doc/classes/OS.xml:553
msgid ""
"Add a new item with text \"label\" to global menu. Use \"_dock\" menu to add "
"item to the macOS dock icon menu.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr ""

#: doc/classes/OS.xml:561
#, fuzzy
msgid ""
"Add a separator between items. Separators also occupy an index.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr "添加项之间的分隔符。分隔符也占用索引。"

#: doc/classes/OS.xml:569
#, fuzzy
msgid ""
"Clear the global menu, in effect removing all items.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr ""
"返回可用的写字板(译注:或触摸板、数位板,在此处尚未明确)驱动程序的总数。\n"
"[b]注意:[/b]该方法是在Windows上实现的。"

#: doc/classes/OS.xml:578
#, fuzzy
msgid ""
"Removes the item at index \"idx\" from the global menu. Note that the "
"indexes of items after the removed item are going to be shifted by one.\n"
"[b]Note:[/b] This method is implemented on macOS."
msgstr ""
"从菜单中移除索引[code]idx[/code]项。\n"
"[b]注:[/b]被移除项后的项的索引将被移位1。"

#: doc/classes/OS.xml:586
msgid ""
"Returns [code]true[/code] if the environment variable with the name "
"[code]variable[/code] exists.\n"
"[b]Note:[/b] Double-check the casing of [code]variable[/code]. Environment "
"variable names are case-sensitive on all platforms except Windows."
msgstr ""

#: doc/classes/OS.xml:594
#, fuzzy
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=https://docs."
"godotengine.org/en/3.4/getting_started/workflow/export/feature_tags."
"html]Feature Tags[/url] documentation for more details.\n"
"[b]Note:[/b] Tag names are case-sensitive."
msgstr ""
"如果给定的特征标签的特征在当前运行的实例中被支持,则返回[code]true[/code],具"
"体取决于平台和构建等。可以用来检查你当前是否在运行调试构建,是否在某个平台或"
"架构上,等等。更多细节请参考[url=https://docs.godotengine.org/zh_CN/latest/"
"getting_started/workflow/export/feature_tags.html]功能标签[/url]文档。\n"
"[b]注意:[/b] 标签名称是区分大小写的。"

#: doc/classes/OS.xml:601
#, fuzzy
msgid ""
"Returns [code]true[/code] if the device has a touchscreen or emulates one."
msgstr "如果该设备跟踪方向,则返回[code]true[/code]。"

#: doc/classes/OS.xml:607
#, fuzzy
msgid ""
"Returns [code]true[/code] if the platform has a virtual keyboard, "
"[code]false[/code] otherwise."
msgstr ""
"如果脚本域被加载,返回 [code]true[/code] ,否则返回 [code]false[/code] 。"

#: doc/classes/OS.xml:613
msgid "Hides the virtual keyboard if it is shown, does nothing otherwise."
msgstr "如果虚拟键盘为显示状态则隐藏虚拟键盘,否则不做任何操作。"

#: doc/classes/OS.xml:619
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"
"Returns [code]false[/code] if the Godot binary used to run the project is a "
"[i]release[/i] export template.\n"
"To check whether the Godot binary used to run the project is an export "
"template (debug or release), use [code]OS.has_feature(\"standalone\")[/code] "
"instead."
msgstr ""
"如果用于运行项目的Godot二进制文件是[i]debug[/i]导出,或在编辑器中运行时,返回"
"[code]true[/code]。\n"
"如果用于运行项目的Godot二进制文件是[i]release[/i]导出,则返回[code]false[/"
"code]。\n"
"要检查用于运行项目的Godot二进制文件是否是被导出版本(调试或发布),请使用"
"[code]OS.has_feature(\"standalone\")[/code]代替。"

#: doc/classes/OS.xml:627
#, fuzzy
msgid ""
"Returns [code]true[/code] if the [b]OK[/b] button should appear on the left "
"and [b]Cancel[/b] on the right."
msgstr "如果该动作有给定的[InputEvent]与之相关,则返回[code]true[/code]。"

#: doc/classes/OS.xml:634
#, fuzzy
msgid ""
"Returns [code]true[/code] if the input scancode corresponds to a Unicode "
"character."
msgstr "如果输入的键码对应于一个Unicode字符,则返回[code]true[/code]。"

#: doc/classes/OS.xml:640
msgid ""
"Returns [code]true[/code] if the engine was executed with [code]-v[/code] "
"(verbose stdout)."
msgstr ""
"如果引擎是用[code]-v[/code](verbose stdout)执行的,返回[code]true[/code]。"

#: doc/classes/OS.xml:646
msgid ""
"If [code]true[/code], the [code]user://[/code] file system is persistent, so "
"that its state is the same after a player quits and starts the game again. "
"Relevant to the HTML5 platform, where this persistence may be unavailable."
msgstr ""
"如果[code]true[/code],[code]user://[/code]文件系统是持久的,因此在玩家退出并"
"再次启动游戏后,其状态是相同的。与HTML5平台有关,在那里这种持久性可能不可用。"

#: doc/classes/OS.xml:652
#, fuzzy
msgid ""
"Returns [code]true[/code] if the window should always be on top of other "
"windows."
msgstr "如果节点在场景dock中折叠(collapsed),则返回[code]true[/code]。"

#: doc/classes/OS.xml:658
#, fuzzy
msgid ""
"Returns [code]true[/code] if the window is currently focused.\n"
"[b]Note:[/b] Only implemented on desktop platforms. On other platforms, it "
"will always return [code]true[/code]."
msgstr ""
"如果addon准备好响应函数调用,返回[code]true[/code],否则返回[code]false[/"
"code]。"

#: doc/classes/OS.xml:665
msgid ""
"Returns active keyboard layout index.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回活动键盘布局索引。\n"
"[b]注意:[/b]本方法在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:672
msgid ""
"Returns the number of keyboard layouts.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回键盘布局的数量。\n"
"[b]注意:[/b]本方法在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:680
msgid ""
"Returns the ISO-639/BCP-47 language code of the keyboard layout at position "
"[code]index[/code].\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回位于[code]index[/code]位置的键盘布局的ISO-639/BCP-47语言代码。\n"
"[b]注意:[/b]本方法[/b]可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:688
msgid ""
"Returns the localized name of the keyboard layout at position [code]index[/"
"code].\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回位于[code]index[/code]位置的键盘布局的本地名称。\n"
"[b]注意:[/b] 本方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:696
msgid ""
"Sets active keyboard layout.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"设置活动键盘布局。\n"
"[b]注:[/b]此方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:704
msgid ""
"Kill (terminate) the process identified by the given process ID ([code]pid[/"
"code]), e.g. the one returned by [method execute] in non-blocking mode.\n"
"[b]Note:[/b] This method can also be used to kill processes that were not "
"spawned by the game.\n"
"[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and "
"Windows."
msgstr ""
"杀死(终止)由给定的进程ID([code]pid[/code])标识的进程,例如,在非阻塞模式"
"下由[method execute]返回的进程。\n"
"[b]注意:[/b] 这个方法也可以用来杀死不是由游戏产生的进程。\n"
"[b]注意:[/b] 这个方法在Android、iOS、Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:712
#, fuzzy
msgid ""
"Moves the window to the front.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回键盘布局的数量。\n"
"[b]注意:[/b]本方法在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:719
#, fuzzy
msgid ""
"Returns [code]true[/code] if native video is playing.\n"
"[b]Note:[/b] This method is only implemented on iOS."
msgstr ""
"如果视频正在播放,返回[code]true[/code] 。\n"
"[b]注意:[/b] 如果在播放过程中暂停,视频仍被认为在播放。"

#: doc/classes/OS.xml:726
#, fuzzy
msgid ""
"Pauses native video playback.\n"
"[b]Note:[/b] This method is only implemented on iOS."
msgstr ""
"设置活动键盘布局。\n"
"[b]注:[/b]此方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:737
msgid ""
"Plays native video from the specified path, at the given volume and with "
"audio and subtitle tracks.\n"
"[b]Note:[/b] This method is only implemented on iOS."
msgstr ""

#: doc/classes/OS.xml:744
#, fuzzy
msgid ""
"Stops native video playback.\n"
"[b]Note:[/b] This method is implemented on iOS."
msgstr ""
"设置活动键盘布局。\n"
"[b]注:[/b]此方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:751
#, fuzzy
msgid ""
"Resumes native video playback.\n"
"[b]Note:[/b] This method is implemented on iOS."
msgstr ""
"设置活动键盘布局。\n"
"[b]注:[/b]此方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:758
msgid ""
"Initialises the singleton for the system MIDI driver.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"初始化系统MIDI驱动的单例。\n"
"[b]注意:[/b] 该方法在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:766
msgid ""
"Shows all resources in the game. Optionally, the list can be written to a "
"file by specifying a file path in [code]tofile[/code]."
msgstr ""
"显示游戏中的所有资源。也可以通过在[code]tofile[/code]中指定文件路径将该列表写"
"入文件。"

#: doc/classes/OS.xml:772
msgid "Shows the list of loaded textures sorted by size in memory."
msgstr "显示加载的纹理在内存中按大小排序的列表。"

#: doc/classes/OS.xml:779
msgid "Shows the number of resources loaded by the game of the given types."
msgstr "显示游戏加载的给定类型资源的数量。"

#: doc/classes/OS.xml:786
msgid "Shows all resources currently used by the game."
msgstr "显示游戏当前使用的所有资源。"

#: doc/classes/OS.xml:792
#, fuzzy
msgid ""
"Request the user attention to the window. It'll flash the taskbar button on "
"Windows or bounce the dock icon on OSX.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"返回位于[code]index[/code]位置的键盘布局的本地名称。\n"
"[b]注意:[/b] 本方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:800
msgid ""
"At the moment this function is only used by [code]AudioDriverOpenSL[/code] "
"to request permission for [code]RECORD_AUDIO[/code] on Android."
msgstr ""
"目前,这个函数只被[code]AudioDriverOpenSL[/code]用来请求Android上"
"[code]RECORD_AUDIO[/code]的权限。"

#: doc/classes/OS.xml:806
#, fuzzy
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 on Android."
msgstr ""
"有了这个功能,你可以申请危险的权限,因为正常的权限在Android应用程序的安装时就"
"会自动授予。\n"
"[b]注意:[/b] 这个方法在Android上实现。"

#: doc/classes/OS.xml:815
msgid ""
"Sets the value of the environment variable [code]variable[/code] to "
"[code]value[/code]. The environment variable will be set for the Godot "
"process and any process executed with [method execute] after running [method "
"set_environment]. The environment variable will [i]not[/i] persist to "
"processes run after the Godot process was terminated.\n"
"[b]Note:[/b] Double-check the casing of [code]variable[/code]. Environment "
"variable names are case-sensitive on all platforms except Windows."
msgstr ""

#: doc/classes/OS.xml:823
msgid ""
"Sets the game's icon using an [Image] resource.\n"
"The same image is used for window caption, taskbar/dock and window selection "
"dialog. Image is scaled as needed.\n"
"[b]Note:[/b] This method is implemented on HTML5, Linux, macOS and Windows."
msgstr ""

#: doc/classes/OS.xml:832
msgid ""
"Sets whether IME input mode should be enabled.\n"
"If active IME handles key events before the application and creates an "
"composition string and suggestion list.\n"
"Application can retrieve the composition status by using [method "
"get_ime_selection] and [method get_ime_text] functions.\n"
"Completed composition string is committed when input is finished.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""

#: doc/classes/OS.xml:843
#, fuzzy
msgid ""
"Sets position of IME suggestion list popup (in window coordinates).\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"关闭系统MIDI驱动程序。\n"
"[b]注意:[/b]该方法只在Linux, macOS和Windows上实现。"

#: doc/classes/OS.xml:851
msgid ""
"Sets the game's icon using a multi-size platform-specific icon file ([code]*."
"ico[/code] on Windows and [code]*.icns[/code] on macOS).\n"
"Appropriate size sub-icons are used for window caption, taskbar/dock and "
"window selection dialog.\n"
"[b]Note:[/b] This method is implemented on macOS and Windows."
msgstr ""

#: doc/classes/OS.xml:860
msgid "Sets the name of the current thread."
msgstr "设置当前线程的名称。"

#: doc/classes/OS.xml:867
msgid "Enables backup saves if [code]enabled[/code] is [code]true[/code]."
msgstr "如果[code]enabled[/code]为[code]true[/code],则启用备份保存。"

#: doc/classes/OS.xml:874
#, fuzzy
msgid ""
"Sets whether the window should always be on top.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""
"设置活动键盘布局。\n"
"[b]注:[/b]此方法可在Linux、macOS和Windows上实现。"

#: doc/classes/OS.xml:882
msgid ""
"Sets a polygonal region of the window which accepts mouse events. Mouse "
"events outside the region will be passed through.\n"
"Passing an empty array will disable passthrough support (all mouse events "
"will be intercepted by the window, which is the default behavior).\n"
"[codeblock]\n"
"# Set region, using Path2D node.\n"
"OS.set_window_mouse_passthrough($Path2D.curve.get_baked_points())\n"
"\n"
"# Set region, using Polygon2D node.\n"
"OS.set_window_mouse_passthrough($Polygon2D.polygon)\n"
"\n"
"# Reset region to default.\n"
"OS.set_window_mouse_passthrough([])\n"
"[/codeblock]\n"
"[b]Note:[/b] On Windows, the portion of a window that lies outside the "
"region is not drawn, while on Linux and macOS it is.\n"
"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
msgstr ""

#: doc/classes/OS.xml:902
msgid ""
"Sets the window title to the specified string.\n"
"[b]Note:[/b] This should be used sporadically. Don't set this every frame, "
"as that will negatively affect performance on some window managers.\n"
"[b]Note:[/b] This method is implemented on HTML5, Linux, macOS and Windows."
msgstr ""

#: doc/classes/OS.xml:911
msgid ""
"Requests the OS to open a resource with the most appropriate program. For "
"example:\n"
"- [code]OS.shell_open(\"C:\\\\Users\\name\\Downloads\")[/code] on Windows "
"opens the file explorer at the user's Downloads folder.\n"
"- [code]OS.shell_open(\"https://godotengine.org\")[/code] opens the default "
"web browser on the official Godot website.\n"
"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] opens the "
"default email client with the \"To\" field set to [code]example@example.com[/"
"code]. See [url=https://blog.escapecreative.com/customizing-mailto-"
"links/]Customizing [code]mailto:[/code] Links[/url] for a list of fields "
"that can be added.\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] This method is implemented on Android, iOS, HTML5, Linux, macOS "
"and Windows."
msgstr ""
"请求操作系统使用最合适的程序打开资源。例如:\n"
"- [code]OS.shell_open(\"C:\\\\Users\\name\\Downloads\")[/code] 在 Windows 上"
"会用资源管理器打开用户的 Downloads 文件夹。\n"
"- [code]OS.shell_open(\"https://godotengine.org\")[/code] 会使用默认网页浏览"
"器打开 Godot 官方网站。\n"
"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] 会打开默认电子邮"
"件客户端并将“收件人”字段设置为 [code]example@example.com[/code]。其它支持自定"
"义的字段见 [url=https://blog.escapecreative.com/customizing-mailto-links/]自"
"定义 [code]mailto:[/code] 链接[/url] 。\n"
"可以使用 [method ProjectSettings.globalize_path] 将 [code]res://[/code] 和 "
"[code]user://[/code] 路径转换为本方法所使用的系统路径。\n"
"[b]注意:[/b] 本方法在 Android、iOS、HTML5、Linux、macOS、以及 Windows 上实"
"现。"

#: doc/classes/OS.xml:924
#, fuzzy
msgid ""
"Shows the virtual keyboard if the platform has one.\n"
"The [code]existing_text[/code] parameter is useful for implementing your own "
"[LineEdit] or [TextEdit], as it tells the virtual keyboard what text has "
"already been typed (the virtual keyboard uses it for auto-correct and "
"predictions).\n"
"The [code]multiline[/code] parameter needs to be set to [code]true[/code] to "
"be able to enter multiple lines of text, as in [TextEdit].\n"
"[b]Note:[/b] This method is implemented on Android, iOS and UWP."
msgstr ""
"显示虚拟键盘,如果当前平台有一个。\n"
"[code]existing_text[/code]参数可用于实现您自己的 [LineEdit] 或 [TextEdit],因"
"为它告诉虚拟键盘已输入文本的内容(虚拟键盘将其用于自动更正和预测)。\n"
"[code]position[/code]参数是编辑文本的屏幕中[Rect2]。\n"
"[code]multiline[/code]参数需要设置为[code]true[/code]才能输入多行文本,在"
"[TextEdit]中。\n"
"[code]max_length[/code]限制如果不等于 [code]-1[/code] ,可以输入的最大字符"
"数。\n"
"[code]cursor_start[/code]可以选择性地定义当前文本光标位置,如果"
"[code]cursor_end[/code]未设置。\n"
"[code]cursor_start[/code]和[code]cursor_end[/code]可以选择地定义当前文本选"
"择。\n"
"[b]注意:[/b]此方法在安卓系统、iOS 和 UWP 上实施。"

#: doc/classes/OS.xml:933
msgid "The clipboard from the host OS. Might be unavailable on some platforms."
msgstr ""

#: doc/classes/OS.xml:936
msgid "The current screen index (starting from 0)."
msgstr ""

#: doc/classes/OS.xml:939
msgid ""
"If [code]true[/code], the engine filters the time delta measured between "
"each frame, and attempts to compensate for random variation. This will only "
"operate on systems where V-Sync is active."
msgstr ""

#: doc/classes/OS.xml:942
msgid ""
"The exit code passed to the OS when the main loop exits. By convention, an "
"exit code of [code]0[/code] indicates success whereas a non-zero exit code "
"indicates an error. For portability reasons, the exit code should be set "
"between 0 and 125 (inclusive).\n"
"[b]Note:[/b] This value will be ignored if using [method SceneTree.quit] "
"with an [code]exit_code[/code] argument passed."
msgstr ""
"主循环退出时传递给操作系统的退出代码。按照惯例,一个[code]0[/code]的退出代码"
"表示成功,而一个非零的退出代码表示错误。出于可移植性的考虑,退出代码应该设置"
"在0到125之间(包括125)。\n"
"[b]注意:[/b] 如果使用[method SceneTree.quit],并传递[code]exit_code[/code]参"
"数,这个值将被忽略。"

#: doc/classes/OS.xml:946
#, fuzzy
msgid ""
"If [code]true[/code], the engine tries to keep the screen on while the game "
"is running. Useful on mobile."
msgstr "如果 [code]true[/code],引擎将生成用于线框调试模式的线框。"

#: doc/classes/OS.xml:949
msgid ""
"If [code]true[/code], the engine optimizes for low processor usage by only "
"refreshing the screen if needed. Can improve battery consumption on mobile."
msgstr ""
"如果[code]true[/code],引擎会通过只在需要时刷新屏幕来优化处理器的使用。可以改"
"善移动设备上的电池消耗。"

#: doc/classes/OS.xml:952
msgid ""
"The amount of sleeping between frames when the low-processor usage mode is "
"enabled (in microseconds). Higher values will result in lower CPU usage."
msgstr ""
"启用低处理器使用模式时,帧之间的休眠量(以微秒计)。较高的值将导致较低的CPU使"
"用率。"

#: doc/classes/OS.xml:955
msgid ""
"The maximum size of the window (without counting window manager "
"decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to "
"reset to the system default value."
msgstr ""

#: doc/classes/OS.xml:958
msgid ""
"The minimum size of the window in pixels (without counting window manager "
"decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to "
"reset to the system's default value.\n"
"[b]Note:[/b] By default, the project window has a minimum size of "
"[code]Vector2(64, 64)[/code]. This prevents issues that can arise when the "
"window is resized to a near-zero size."
msgstr ""

#: doc/classes/OS.xml:962
#, fuzzy
msgid "The current screen orientation."
msgstr "当前场景。"

#: doc/classes/OS.xml:965
msgid "The current tablet driver in use."
msgstr "当前正在使用的书写板(译注:或数位板、触摸板,尚未定论)驱动程序。"

#: doc/classes/OS.xml:968
#, fuzzy
msgid "If [code]true[/code], vertical synchronization (Vsync) is enabled."
msgstr "如果[code]true[/code],则启用法线映射。"

#: doc/classes/OS.xml:971
#, fuzzy
msgid ""
"If [code]true[/code] and [code]vsync_enabled[/code] is true, the operating "
"system's window compositor will be used for vsync when the compositor is "
"enabled and the game is in windowed mode.\n"
"[b]Note:[/b] This option is experimental and meant to alleviate stutter "
"experienced by some users. However, some users have experienced a Vsync "
"framerate halving (e.g. from 60 FPS to 30 FPS) when using it.\n"
"[b]Note:[/b] This property is only implemented on Windows."
msgstr ""
"如果[code]Use Vsync[/code]已启用,且[code]true[/code],则在窗口模式下启用排字"
"器时,可通过操作系统的窗口排字器实现垂直同步。这将防止在某些情况下卡顿。"
"(Windows)。\n"
"[b]注:[/b]这个选项是实验性的,旨在缓解一些用户的卡顿体验。然而,有些用户在使"
"用它时体验到垂直同步帧率减半(例如从60 FPS降至30 FPS)。"

#: doc/classes/OS.xml:976
msgid ""
"If [code]true[/code], removes the window frame.\n"
"[b]Note:[/b] Setting [code]window_borderless[/code] to [code]false[/code] "
"disables per-pixel transparency."
msgstr ""

#: doc/classes/OS.xml:980
#, fuzzy
msgid "If [code]true[/code], the window is fullscreen."
msgstr "如果[code]true[/code],则暂停视频。"

#: doc/classes/OS.xml:983
#, fuzzy
msgid "If [code]true[/code], the window is maximized."
msgstr "如果[code]true[/code],则暂停视频。"

#: doc/classes/OS.xml:986
#, fuzzy
msgid "If [code]true[/code], the window is minimized."
msgstr "如果[code]true[/code],则暂停视频。"

#: doc/classes/OS.xml:989
msgid ""
"If [code]true[/code], the window background is transparent and the window "
"frame is removed.\n"
"Use [code]get_tree().get_root().set_transparent_background(true)[/code] to "
"disable main viewport background rendering.\n"
"[b]Note:[/b] This property has no effect if [member ProjectSettings.display/"
"window/per_pixel_transparency/allowed] setting is disabled.\n"
"[b]Note:[/b] This property is implemented on HTML5, Linux, macOS, Windows, "
"and Android. It can't be changed at runtime for Android. Use [member "
"ProjectSettings.display/window/per_pixel_transparency/enabled] to set it at "
"startup instead."
msgstr ""

#: doc/classes/OS.xml:995
msgid ""
"The window position relative to the screen, the origin is the top left "
"corner, +Y axis goes to the bottom and +X axis goes to the right."
msgstr ""

#: doc/classes/OS.xml:998
#, fuzzy
msgid "If [code]true[/code], the window is resizable by the user."
msgstr "如果[code]true[/code],则暂停视频。"

#: doc/classes/OS.xml:1001
msgid "The size of the window (without counting window manager decorations)."
msgstr ""

#: doc/classes/OS.xml:1006
msgid ""
"The GLES2 rendering backend. It uses OpenGL ES 2.0 on mobile devices, OpenGL "
"2.1 on desktop platforms and WebGL 1.0 on the web."
msgstr ""
"GLES2的渲染后端。它在移动设备上使用OpenGL ES 2.0,在桌面平台上使用OpenGL "
"2.1,在网络上使用WebGL 1.0。"

#: doc/classes/OS.xml:1009
#, fuzzy
msgid ""
"The GLES3 rendering backend. It uses OpenGL ES 3.0 on mobile devices, OpenGL "
"3.3 on desktop platforms and WebGL 2.0 on the web."
msgstr ""
"GLES2的渲染后端。它在移动设备上使用OpenGL ES 2.0,在桌面平台上使用OpenGL "
"2.1,在网络上使用WebGL 1.0。"

#: doc/classes/OS.xml:1012
msgid "Sunday."
msgstr "星期日。"

#: doc/classes/OS.xml:1015
msgid "Monday."
msgstr "星期一。"

#: doc/classes/OS.xml:1018
msgid "Tuesday."
msgstr "星期二。"

#: doc/classes/OS.xml:1021
msgid "Wednesday."
msgstr "星期三。"

#: doc/classes/OS.xml:1024
msgid "Thursday."
msgstr "星期四。"

#: doc/classes/OS.xml:1027
msgid "Friday."
msgstr "星期五。"

#: doc/classes/OS.xml:1030
msgid "Saturday."
msgstr "星期六。"

#: doc/classes/OS.xml:1033
msgid "January."
msgstr "一月。"

#: doc/classes/OS.xml:1036
msgid "February."
msgstr "二月。"

#: doc/classes/OS.xml:1039
msgid "March."
msgstr "三月。"

#: doc/classes/OS.xml:1042
msgid "April."
msgstr "四月。"

#: doc/classes/OS.xml:1045
msgid "May."
msgstr "五月。"

#: doc/classes/OS.xml:1048
msgid "June."
msgstr "六月。"

#: doc/classes/OS.xml:1051
msgid "July."
msgstr "七月。"

#: doc/classes/OS.xml:1054
msgid "August."
msgstr "八月。"

#: doc/classes/OS.xml:1057
msgid "September."
msgstr "九月。"

#: doc/classes/OS.xml:1060
msgid "October."
msgstr "十月。"

#: doc/classes/OS.xml:1063
msgid "November."
msgstr "十一月。"

#: doc/classes/OS.xml:1066
msgid "December."
msgstr "十二月。"

#: doc/classes/OS.xml:1069
msgid ""
"Application handle:\n"
"- Windows: [code]HINSTANCE[/code] of the application\n"
"- MacOS: [code]NSApplication*[/code] of the application (not yet "
"implemented)\n"
"- Android: [code]JNIEnv*[/code] of the application (not yet implemented)"
msgstr ""

#: doc/classes/OS.xml:1075
msgid ""
"Display handle:\n"
"- Linux: [code]X11::Display*[/code] for the display"
msgstr ""

#: doc/classes/OS.xml:1079
msgid ""
"Window handle:\n"
"- Windows: [code]HWND[/code] of the main window\n"
"- Linux: [code]X11::Window*[/code] of the main window\n"
"- MacOS: [code]NSWindow*[/code] of the main window (not yet implemented)\n"
"- Android: [code]jObject[/code] the main android activity (not yet "
"implemented)"
msgstr ""

#: doc/classes/OS.xml:1086
msgid ""
"Window view:\n"
"- Windows: [code]HDC[/code] of the main window drawing context\n"
"- MacOS: [code]NSView*[/code] of the main windows view (not yet implemented)"
msgstr ""

#: doc/classes/OS.xml:1091
msgid ""
"OpenGL Context:\n"
"- Windows: [code]HGLRC[/code]\n"
"- Linux: [code]X11::GLXContext[/code]\n"
"- MacOS: [code]NSOpenGLContext*[/code] (not yet implemented)"
msgstr ""

#: doc/classes/OS.xml:1097
msgid "Landscape screen orientation."
msgstr ""

#: doc/classes/OS.xml:1100
#, fuzzy
msgid "Portrait screen orientation."
msgstr "等距定向模式。"

#: doc/classes/OS.xml:1103
#, fuzzy
msgid "Reverse landscape screen orientation."
msgstr "反转最后一个撤销动作。"

#: doc/classes/OS.xml:1106
#, fuzzy
msgid "Reverse portrait screen orientation."
msgstr "反转最后一个撤销动作。"

#: doc/classes/OS.xml:1109
msgid "Uses landscape or reverse landscape based on the hardware sensor."
msgstr ""

#: doc/classes/OS.xml:1112
msgid "Uses portrait or reverse portrait based on the hardware sensor."
msgstr ""

#: doc/classes/OS.xml:1115
msgid "Uses most suitable orientation based on the hardware sensor."
msgstr ""

#: doc/classes/OS.xml:1118
msgid "Desktop directory path."
msgstr "桌面目录路径。"

#: doc/classes/OS.xml:1121
msgid "DCIM (Digital Camera Images) directory path."
msgstr "DCIM(数码相机图像)目录路径。"

#: doc/classes/OS.xml:1124
msgid "Documents directory path."
msgstr "文档目录路径。"

#: doc/classes/OS.xml:1127
msgid "Downloads directory path."
msgstr "下载目录路径。"

#: doc/classes/OS.xml:1130
msgid "Movies directory path."
msgstr "影片目录路径。"

#: doc/classes/OS.xml:1133
msgid "Music directory path."
msgstr "音乐目录路径。"

#: doc/classes/OS.xml:1136
msgid "Pictures directory path."
msgstr "图片目录路径。"

#: doc/classes/OS.xml:1139
msgid "Ringtones directory path."
msgstr "铃声目录路径。"

#: doc/classes/OS.xml:1142
#, fuzzy
msgid "Unknown powerstate."
msgstr "未知节点。"

#: doc/classes/OS.xml:1145
msgid "Unplugged, running on battery."
msgstr ""

#: doc/classes/OS.xml:1148
msgid "Plugged in, no battery available."
msgstr ""

#: doc/classes/OS.xml:1151
msgid "Plugged in, battery charging."
msgstr ""

#: doc/classes/OS.xml:1154
msgid "Plugged in, battery fully charged."
msgstr ""

#: doc/classes/PackedDataContainerRef.xml:4
msgid "Reference version of [PackedDataContainer]."
msgstr "[PackedDataContainer]的引用版本。"

#: doc/classes/PackedScene.xml:4
msgid "An abstraction of a serialized scene."
msgstr "一个序列化场景的抽象。"

#: doc/classes/PackedScene.xml:7
#, fuzzy
msgid ""
"A simplified interface to a scene file. Provides access to operations and "
"checks that can be performed on the scene resource itself.\n"
"Can be used to save a node to a file. When saving, the node as well as all "
"the nodes it owns get saved (see [code]owner[/code] property on [Node]).\n"
"[b]Note:[/b] The node doesn't need to own itself.\n"
"[b]Example of loading a saved scene:[/b]\n"
"[codeblock]\n"
"# Use `load()` instead of `preload()` if the path isn't known at compile-"
"time.\n"
"var scene = preload(\"res://scene.tscn\").instance()\n"
"# Add the node as a child of the node the script is attached to.\n"
"add_child(scene)\n"
"[/codeblock]\n"
"[b]Example of saving a node with different owners:[/b] The following example "
"creates 3 objects: [code]Node2D[/code] ([code]node[/code]), "
"[code]RigidBody2D[/code] ([code]rigid[/code]) and [code]CollisionObject2D[/"
"code] ([code]collision[/code]). [code]collision[/code] is a child of "
"[code]rigid[/code] which is a child of [code]node[/code]. Only [code]rigid[/"
"code] is owned by [code]node[/code] and [code]pack[/code] will therefore "
"only save those two nodes, but not [code]collision[/code].\n"
"[codeblock]\n"
"# Create the objects.\n"
"var node = Node2D.new()\n"
"var rigid = RigidBody2D.new()\n"
"var collision = CollisionShape2D.new()\n"
"\n"
"# Create the object hierarchy.\n"
"rigid.add_child(collision)\n"
"node.add_child(rigid)\n"
"\n"
"# Change owner of `rigid`, but not of `collision`.\n"
"rigid.owner = node\n"
"\n"
"var scene = PackedScene.new()\n"
"# Only `node` and `rigid` are now packed.\n"
"var result = scene.pack(node)\n"
"if result == OK:\n"
"    var error = ResourceSaver.save(\"res://path/name.scn\", scene)  # Or "
"\"user://...\"\n"
"    if error != OK:\n"
"        push_error(\"An error occurred while saving the scene to disk.\")\n"
"[/codeblock]"
msgstr ""
"场景文件的一个简化接口。提供对可以在场景资源本身上执行的操作和检查的访问。\n"
"可以用来将一个节点保存到一个文件中。当保存时,该节点以及它所拥有的所有节点都"
"会被保存(参见[Node]中的属性[code]owner[/code])。\n"
"[b]注意:[/b] 节点不需要拥有自己。\n"
"[b]一个加载已保存场景的示例:[/b]\n"
"[codeblock]\n"
"# Use `load()` instead of `preload()` if the path isn't known at compile-"
"time.\n"
"var scene = preload(\"res://scene.tscn\").instance()\n"
"# Add the node as a child of the node the script is attached to.\n"
"add_child(scene)\n"
"[/codeblock]\n"
"[b]保存一个具有不同所有者的节点的例子:[/b] 下面的例子创建了3个对象。"
"[code]Node2D[/code] ([code]node[/code]), [code]RigidBody2D[/code] "
"([code]rigid[/code]) 和 [code]CollisionObject2D[/code] ([code]collision[/"
"code]) 。[code]collision[/code]是[code]rigid[/code]的一个子节点,rigid 是"
"[code]node[/code]的一个子节点。只有[code]rigid[/code]被[code]node[/code]拥"
"有,因此[code]pack[/code]将只保存这两个节点,不保存[code]collision[/code]。\n"
"[codeblock]\n"
"# Create the objects.\n"
"var node = Node2D.new()\n"
"var rigid = RigidBody2D.new()\n"
"var collision = CollisionShape2D.new()\n"
"\n"
"# Create the object hierarchy.\n"
"rigid.add_child(collision)\n"
"node.add_child(rigid)\n"
"\n"
"# Change owner of `rigid`, but not of `collision`.\n"
"rigid.owner = node\n"
"\n"
"var scene = PackedScene.new()\n"
"# Only `node` and `rigid` are now packed.\n"
"var result = scene.pack(node)\n"
"if result == OK:\n"
"    var error = ResourceSaver.save(\"res://path/name.scn\", scene)  # Or "
"\"user://...\"\n"
"    if error != OK:\n"
"        push_error(\"An error occurred while saving the scene to disk.\")\n"
"[/codeblock]"

#: doc/classes/PackedScene.xml:47
msgid "Returns [code]true[/code] if the scene file has nodes."
msgstr "如果场景文件有节点,返回[code]true[/code]。"

#: doc/classes/PackedScene.xml:53
msgid ""
"Returns the [code]SceneState[/code] representing the scene file contents."
msgstr "返回代表场景文件内容的[code]SceneState[/code]。"

#: doc/classes/PackedScene.xml:60
msgid ""
"Instantiates the scene's node hierarchy. Triggers child scene "
"instantiation(s). Triggers a [constant Node.NOTIFICATION_INSTANCED] "
"notification on the root node."
msgstr ""
"实例化场景的节点层次结构。触发子场景实例化。在根节点上触发一个 [constant "
"Node.NOTIFICATION_INSTANCED]通知。"

#: doc/classes/PackedScene.xml:67
msgid ""
"Pack will ignore any sub-nodes not owned by given node. See [member Node."
"owner]."
msgstr "包将忽略不属于给定节点的任何子节点。参见[member Node.owner]。"

#: doc/classes/PackedScene.xml:73
msgid ""
"A dictionary representation of the scene contents.\n"
"Available keys include \"rnames\" and \"variants\" for resources, "
"\"node_count\", \"nodes\", \"node_paths\" for nodes, \"editable_instances\" "
"for base scene children overrides, \"conn_count\" and \"conns\" for signal "
"connections, and \"version\" for the format style of the PackedScene."
msgstr ""
"场景内容的字典表示。\n"
"可用的关键点包括资源的\"rnames\"和 \"variants\" ,节点的\"node_count"
"\",\"nodes\",\"node_paths\",基本场景子级覆盖的 \"editable_instances\",信"
"号连接的\"conn_count\" 和\"conns\",以及PackedScene格式样式的\"version\"。"

#: doc/classes/PackedScene.xml:79
msgid "If passed to [method instance], blocks edits to the scene state."
msgstr "如果传递给[method instance],则阻止对场景状态的编辑。"

#: doc/classes/PackedScene.xml:82
msgid ""
"If passed to [method instance], provides local scene resources to the local "
"scene.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
"如果传递给[method instance],则向本地场景提供本地场景资源。\n"
"[b]注意:[/b] 只在编辑器构建中可用。"

#: doc/classes/PackedScene.xml:86
msgid ""
"If passed to [method instance], provides local scene resources to the local "
"scene. Only the main scene should receive the main edit state.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
"如果传递给[method instance],向本地场景提供本地场景资源。只有主场景应该接收主"
"编辑状态。\n"
"[b]注意:[/b] 只在编辑器构建中可用。"

#: doc/classes/PacketPeer.xml:4
msgid "Abstraction and base class for packet-based protocols."
msgstr "基于包的协议的抽象和基类。"

#: doc/classes/PacketPeer.xml:7
msgid ""
"PacketPeer is an abstraction and base class for packet-based protocols (such "
"as UDP). It provides an API for sending and receiving packets both as raw "
"data or variables. This makes it easy to transfer data over a protocol, "
"without having to encode data as low-level bytes or having to worry about "
"network ordering."
msgstr ""
"PacketPeer是基于数据包的协议(如UDP)的抽象和基类。它提供了一个API,用于发送"
"和接收作为原始数据或变量的数据包。这使得通过协议传输数据变得很容易,而不必将"
"数据编码为低级字节或担心网络顺序。"

#: doc/classes/PacketPeer.xml:15
msgid "Returns the number of packets currently available in the ring-buffer."
msgstr "返回环形缓冲区中当前可用的数据包数。"

#: doc/classes/PacketPeer.xml:21
msgid "Gets a raw packet."
msgstr "获取原始数据包。"

#: doc/classes/PacketPeer.xml:27
msgid ""
"Returns the error state of the last packet received (via [method get_packet] "
"and [method get_var])."
msgstr ""
"返回最后接收的数据包的错误状态(通过[method get_packet]和[method get_var])。"

#: doc/classes/PacketPeer.xml:34
#, fuzzy
msgid ""
"Gets a Variant. If [code]allow_objects[/code] (or [member "
"allow_object_decoding]) is [code]true[/code], decoding objects is allowed.\n"
"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
"Do not use this option if the serialized object comes from untrusted sources "
"to avoid potential security threats such as remote code execution."
msgstr ""
"获取一个变量。如果[code]allow_objects[/code]为[code]true[/code],则允许对对象"
"进行解码。\n"
"[b] 警告:[/b]反序列化对象可能包含执行的代码。如果序列化对象来自不受信任的"
"源,请不要使用此选项,以避免潜在的安全威胁,如远程代码执行。"

#: doc/classes/PacketPeer.xml:42
msgid "Sends a raw packet."
msgstr "发送一个原始数据包。"

#: doc/classes/PacketPeer.xml:50
#, fuzzy
msgid ""
"Sends a [Variant] as a packet. If [code]full_objects[/code] (or [member "
"allow_object_decoding]) is [code]true[/code], encoding objects is allowed "
"(and can potentially include code)."
msgstr ""
"将[Variant]作为数据包发送。如果[code]full_objects[/code]为[code]true[/code],"
"则允许对对象进行编码(并且可能包含代码)。"

#: doc/classes/PacketPeer.xml:56
#, fuzzy
msgid ""
"[i]Deprecated.[/i] Use [code]get_var[/code] and [code]put_var[/code] "
"parameters instead.\n"
"If [code]true[/code], the PacketPeer will allow encoding and decoding of "
"object via [method get_var] and [method put_var].\n"
"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
"Do not use this option if the serialized object comes from untrusted sources "
"to avoid potential security threats such as remote code execution."
msgstr ""
"如果[code]true[/code],多人游戏API将允许在RPC/RSETs期间对对象进行编码和解"
"码。\n"
"[b]警告:[/b] 反序列化的对象可能包含会被执行的代码。如果序列化的对象来自不受"
"信任的来源,请不要使用这个选项,以避免潜在的安全威胁,如远程代码执行。"

#: doc/classes/PacketPeer.xml:61
msgid ""
"Maximum buffer size allowed when encoding [Variant]s. Raise this value to "
"support heavier memory allocations.\n"
"The [method put_var] method allocates memory on the stack, and the buffer "
"used will grow automatically to the closest power of two to match the size "
"of the [Variant]. If the [Variant] is bigger than "
"[code]encode_buffer_max_size[/code], the method will error out with "
"[constant ERR_OUT_OF_MEMORY]."
msgstr ""
"编码[Variant]时允许的最大缓冲区大小。提高此值以支持更大的内存分配。\n"
"[method put_var]方法在堆栈上分配内存,使用的缓冲区将自动增长到最接近的二次"
"方,以匹配[Variant]的大小。如果[Variant]大于 [code]encode_buffer_max_size[/"
"code],则该方法将以[constant ERR_OUT_OF_MEMORY]出错。"

#: doc/classes/PacketPeerDTLS.xml:4
msgid "DTLS packet peer."
msgstr "DTLS数据包客户端。"

#: doc/classes/PacketPeerDTLS.xml:7
msgid ""
"This class represents a DTLS peer connection. It can be used to connect to a "
"DTLS server, and is returned by [method DTLSServer.take_connection].\n"
"[b]Warning:[/b] SSL/TLS certificate revocation and certificate pinning are "
"currently not supported. Revoked certificates are accepted as long as they "
"are otherwise valid. If this is a concern, you may want to use automatically "
"managed certificates with a short validity period."
msgstr ""

#: doc/classes/PacketPeerDTLS.xml:20
msgid ""
"Connects a [code]peer[/code] beginning the DTLS handshake using the "
"underlying [PacketPeerUDP] which must be connected (see [method "
"PacketPeerUDP.connect_to_host]). If [code]validate_certs[/code] is "
"[code]true[/code], [PacketPeerDTLS] will validate that the certificate "
"presented by the remote peer and match it with the [code]for_hostname[/code] "
"argument. You can specify a custom [X509Certificate] to use for validation "
"via the [code]valid_certificate[/code] argument."
msgstr ""
"使用必须连接的底层[PacketPeerUDP](见[method PacketPeerUDP.connect_to_host])"
"连接一个[code]peer[/code],开始DTLS握手过程。如果[code]validate_certs[/code]"
"是[code]true[/code],[PacketPeerDTLS]将验证远程对等体提交的证书并与"
"[code]for_hostname[/code]参数匹配。你可以通过[code]valid_certificate[/code]参"
"数指定一个自定义的[X509Certificate]来进行验证。"

#: doc/classes/PacketPeerDTLS.xml:26
msgid "Disconnects this peer, terminating the DTLS session."
msgstr "断开此对等体的连接,终止DTLS会话。"

#: doc/classes/PacketPeerDTLS.xml:32 doc/classes/StreamPeerSSL.xml:43
msgid "Returns the status of the connection. See [enum Status] for values."
msgstr "返回连接的状态。有关值,请参见[enum Status]。"

#: doc/classes/PacketPeerDTLS.xml:38
msgid ""
"Poll the connection to check for incoming packets. Call this frequently to "
"update the status and keep the connection working."
msgstr ""
"轮询连接以检查传入的数据包。经常调用此选项以更新状态并保持连接正常工作。"

#: doc/classes/PacketPeerDTLS.xml:44
msgid "A status representing a [PacketPeerDTLS] that is disconnected."
msgstr "表示已断开连接的[PacketPeerDTLS]的状态。"

#: doc/classes/PacketPeerDTLS.xml:47
msgid ""
"A status representing a [PacketPeerDTLS] that is currently performing the "
"handshake with a remote peer."
msgstr "表示当前正在与远程对等方进行握手的[PacketPeerDTLS]的状态。"

#: doc/classes/PacketPeerDTLS.xml:50
msgid ""
"A status representing a [PacketPeerDTLS] that is connected to a remote peer."
msgstr "表示连接到远程对等方的[PacketPeerDTLS]的状态。"

#: doc/classes/PacketPeerDTLS.xml:53
msgid "A status representing a [PacketPeerDTLS] in a generic error state."
msgstr "表示处于一般错误状态的[PacketPeerDTLS]的状态。"

#: doc/classes/PacketPeerDTLS.xml:56
msgid ""
"An error status that shows a mismatch in the DTLS certificate domain "
"presented by the host and the domain requested for validation."
msgstr "显示主机提供的DTLS证书域与请求验证的域不匹配的错误状态。"

#: doc/classes/PacketPeerStream.xml:4
msgid "Wrapper to use a PacketPeer over a StreamPeer."
msgstr "在StreamPeer上使用PacketPeer的包装器。"

#: doc/classes/PacketPeerStream.xml:7
msgid ""
"PacketStreamPeer provides a wrapper for working using packets over a stream. "
"This allows for using packet based code with StreamPeers. PacketPeerStream "
"implements a custom protocol over the StreamPeer, so the user should not "
"read or write to the wrapped StreamPeer directly."
msgstr ""
"PacketStreamPeer提供了一个包装器,用于在流上使用数据包工作。这允许在"
"StreamPeer上使用基于数据包的代码。PacketPeerStream在StreamPeer上实现了一个自"
"定义的协议,所以用户不应该直接读或写到被包装的StreamPeer上。"

#: doc/classes/PacketPeerStream.xml:19
msgid "The wrapped [StreamPeer] object."
msgstr "被·包装的[StreamPeer]对象。"

#: doc/classes/PacketPeerUDP.xml:4
msgid "UDP packet peer."
msgstr "UDP数据包客户端。"

#: doc/classes/PacketPeerUDP.xml:7
msgid ""
"UDP packet peer. Can be used to send raw UDP packets as well as [Variant]s."
msgstr "UDP数据包对等体。可以用来发送原始的UDP数据包以及[Variant]。"

#: doc/classes/PacketPeerUDP.xml:15
msgid "Closes the UDP socket the [PacketPeerUDP] is currently listening on."
msgstr "关闭[PacketPeerUDP]当前正在侦听的UDP套接字。"

#: doc/classes/PacketPeerUDP.xml:23
#, fuzzy
msgid ""
"Calling this method connects this UDP peer to the given [code]host[/code]/"
"[code]port[/code] pair. UDP is in reality connectionless, so this option "
"only means that incoming packets from different addresses are automatically "
"discarded, and that outgoing packets are always sent to the connected "
"address (future calls to [method set_dest_address] are not allowed). This "
"method does not send any data to the remote peer, to do that, use [method "
"PacketPeer.put_var] or [method PacketPeer.put_packet] as usual. See also "
"[UDPServer].\n"
"[b]Note:[/b] Connecting to the remote peer does not help to protect from "
"malicious attacks like IP spoofing, etc. Think about using an encryption "
"technique like SSL or DTLS if you feel like your application is transferring "
"sensitive information."
msgstr ""
"调用此方法将此UDP对等连接到给定的[code]host[/code]/[code]port[/code]对。UDP实"
"际上是无连接的,因此此选项仅意味着来自不同地址的传入数据包将自动丢弃,并且传"
"出数据包始终发送到连接的地址(不允许将来调用[method set_dest_address])。此方"
"法不向远程对等方发送任何数据,为此,请像往常一样使用[method PacketPeer."
"put_var]或[method PacketPeer.put_packet]。另请参见[UDPServer]。\n"
"注意:连接到远程对等体无助于防止IP欺骗等恶意攻击。如果您觉得应用程序正在传输"
"敏感信息,请考虑使用SSL或DTLS等加密技术。"

#: doc/classes/PacketPeerUDP.xml:30
msgid ""
"Returns the IP of the remote peer that sent the last packet(that was "
"received with [method PacketPeer.get_packet] or [method PacketPeer.get_var])."
msgstr ""
"返回发送最后一个数据包(通过[method PacketPeer.get_packet]或[method "
"PacketPeer.get_var]接收)的远程对等体的IP。"

#: doc/classes/PacketPeerUDP.xml:36
msgid ""
"Returns the port of the remote peer that sent the last packet(that was "
"received with [method PacketPeer.get_packet] or [method PacketPeer.get_var])."
msgstr ""
"返回发送最后一个数据包(通过[method PacketPeer.get_packet]或[method "
"PacketPeer.get_var]接收)的远程对等方的端口。"

#: doc/classes/PacketPeerUDP.xml:42
msgid ""
"Returns [code]true[/code] if the UDP socket is open and has been connected "
"to a remote address. See [method connect_to_host]."
msgstr ""
"如果UDP套接字已打开并已连接到远程地址,则返回[code]true[/code]。请参阅"
"[method connect_to_host]。"

#: doc/classes/PacketPeerUDP.xml:48
msgid "Returns whether this [PacketPeerUDP] is listening."
msgstr "返回这个[PacketPeerUDP]是否正在监听。"

#: doc/classes/PacketPeerUDP.xml:56
#, fuzzy
msgid ""
"Joins the multicast group specified by [code]multicast_address[/code] using "
"the interface identified by [code]interface_name[/code].\n"
"You can join the same multicast group with multiple interfaces. Use [method "
"IP.get_local_interfaces] to know which are available.\n"
"[b]Note:[/b] Some Android devices might require the "
"[code]CHANGE_WIFI_MULTICAST_STATE[/code] permission for multicast to work."
msgstr ""
"使用[code]接口名称[/code]标识的接口加入[code]多播地址[/code]指定的多播组。\n"
"您可以使用多个接口加入同一个多播组。使用[method IP.get_local_interfaces]了解"
"哪些接口可用。\n"
"注意:一些安卓设备可能需要[code]CHANGE _ WIFI _ MULTICAST _ STATE[/code]权限才"
"能进行多播。"

#: doc/classes/PacketPeerUDP.xml:66
msgid ""
"Removes the interface identified by [code]interface_name[/code] from the "
"multicast group specified by [code]multicast_address[/code]."
msgstr ""
"从[code]multicast_address[/code]指定的组播组中移除[code]interface_name[/code]"
"标识的接口。"

#: doc/classes/PacketPeerUDP.xml:75
msgid ""
"Makes this [PacketPeerUDP] listen on the [code]port[/code] binding to "
"[code]bind_address[/code] with a buffer size [code]recv_buf_size[/code].\n"
"If [code]bind_address[/code] is set to [code]\"*\"[/code] (default), the "
"peer will listen on all available addresses (both IPv4 and IPv6).\n"
"If [code]bind_address[/code] is set to [code]\"0.0.0.0\"[/code] (for IPv4) "
"or [code]\"::\"[/code] (for IPv6), the peer will listen on all available "
"addresses matching that IP type.\n"
"If [code]bind_address[/code] is set to any valid address (e.g. "
"[code]\"192.168.1.101\"[/code], [code]\"::1\"[/code], etc), the peer will "
"only listen on the interface with that addresses (or fail if no interface "
"with the given address exists)."
msgstr ""
"使这个[PacketPeerUDP]在与[code]bind_address[/code]绑定的[code]端口[/code]上监"
"听,缓冲区大小为[code]recv_buf_size[/code]。\n"
"如果[code]bind_address[/code]被设置为[code]\"*\"[/code](默认),对等体将监听"
"所有可用地址(包括IPv4和IPv6)。\n"
"如果[code]bind_address[/code]被设置为[code]\"0.0.0.0\"[/code](对于IPv4)或"
"[code]\":\"[/code](对于IPv6),对等体将监听所有符合该IP类型的可用地址。\n"
"如果[code]bind_address[/code]被设置为任何有效的地址(例如"
"[code]\"192.168.1.101\"[/code],[code]\":1\"[/code]等),对等体将只监听具有该"
"地址的接口(如果不存在具有该地址的接口,则失败)。"

#: doc/classes/PacketPeerUDP.xml:85
#, fuzzy
msgid ""
"Enable or disable sending of broadcast packets (e.g. "
"[code]set_dest_address(\"255.255.255.255\", 4343)[/code]. This option is "
"disabled by default.\n"
"[b]Note:[/b] Some Android devices might require the "
"[code]CHANGE_WIFI_MULTICAST_STATE[/code] permission and this option to be "
"enabled to receive broadcast packets too."
msgstr ""
"启用或禁用广播数据包的发送(例如:"
"[code]set_dest_address(\"255.255.255.255\", 4343)[/code]。这个选项在默认情况"
"下是禁用的。\n"
"注意:一些安卓设备可能需要[code]CHANGE_WIFI_MULTICAST_STATE[/code]权限和这个"
"选项被启用来接收广播包。"

#: doc/classes/PacketPeerUDP.xml:94
#, fuzzy
msgid ""
"Sets the destination address and port for sending packets and variables. A "
"hostname will be resolved using DNS if needed.\n"
"[b]Note:[/b] [method set_broadcast_enabled] must be enabled before sending "
"packets to a broadcast address (e.g. [code]255.255.255.255[/code])."
msgstr ""
"设置发送数据包和变量的目标地址和端口。如果需要,将使用DNS解析一个主机名。\n"
"注意:在向广播地址(例如:[code]255.255.255.255[/code])发送数据包之前,必须"
"启用[method set_broadcast_enabled]。"

#: doc/classes/PacketPeerUDP.xml:101
msgid ""
"Waits for a packet to arrive on the listening port. See [method listen].\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"
"[codeblock]\n"
"# Server\n"
"socket.set_dest_address(\"127.0.0.1\", 789)\n"
"socket.put_packet(\"Time to stop\".to_ascii())\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"
"[/codeblock]"
msgstr ""

#: doc/classes/Panel.xml:4
msgid "Provides an opaque background for [Control] children."
msgstr "为[Control]子控件提供不透明的背景。"

#: doc/classes/Panel.xml:7
msgid ""
"Panel is a [Control] that displays an opaque background. It's commonly used "
"as a parent and container for other types of [Control] nodes."
msgstr ""
"面板是一个显示不透明背景的[Control]。它通常用作其他类型的[Control]节点的父节"
"点和容器。"

#: doc/classes/Panel.xml:11
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/516"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Panel.xml:12 doc/classes/Skeleton.xml:12
#: doc/classes/SkeletonIK.xml:29
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/523"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Panel.xml:20
msgid "The style of this [Panel]."
msgstr "这个[Panel]的样式。"

#: doc/classes/PanelContainer.xml:4
msgid "Panel container type."
msgstr "面板容器类型。"

#: doc/classes/PanelContainer.xml:7
msgid ""
"Panel container type. This container fits controls inside of the delimited "
"area of a stylebox. It's useful for giving controls an outline."
msgstr ""
"面板容器类型。此容器适合样式框分隔区域内的控件。它对于给控件一个描边很有用。"

#: doc/classes/PanelContainer.xml:18
msgid "The style of [PanelContainer]'s background."
msgstr "[PanelContainer]的背景样式。"

#: doc/classes/PanoramaSky.xml:4
#, fuzzy
msgid "A type of [Sky] used to draw a background texture."
msgstr "使用[Material]和[Sky]来绘制背景纹理。"

#: doc/classes/PanoramaSky.xml:7
#, fuzzy
msgid ""
"A resource referenced in an [Environment] that is used to draw a background. "
"The Panorama sky functions similar to skyboxes in other engines, except it "
"uses an equirectangular sky map instead of a cube map.\n"
"Using an HDR panorama is strongly recommended for accurate, high-quality "
"reflections. Godot supports the Radiance HDR ([code].hdr[/code]) and OpenEXR "
"([code].exr[/code]) image formats for this purpose.\n"
"You can use [url=https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/"
"cubemap_to_panorama.html]this tool[/url] to convert a cube map to an "
"equirectangular sky map."
msgstr ""
"在[Sky]中引用的资源,用于绘制背景。全景天空材质的功能类似于其他引擎中的天空"
"盒,除了它使用等边矩形天空地图而不是立方体地图。\n"
"强烈建议使用HDR全景图,以获得准确、高质量的反射。为此,Godot支持Radiance HDR "
"([code]. HDR [/code])和OpenEXR ([code].exr[/code])图像格式。\n"
"您可以使用[url=https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/"
"cubemap_to_panorama.html]这个工具[/url]将立方体地图转换为等角的天空地图。"

#: doc/classes/PanoramaSky.xml:17
#, fuzzy
msgid "[Texture] to be applied to the PanoramaSky."
msgstr "[Texture2D]将被应用到[PanoramaSkyMaterial]。"

#: doc/classes/ParallaxBackground.xml:4
msgid "A node used to create a parallax scrolling background."
msgstr "用于创建视差滚动背景的节点。"

#: doc/classes/ParallaxBackground.xml:7
msgid ""
"A ParallaxBackground uses one or more [ParallaxLayer] child nodes to create "
"a parallax effect. Each [ParallaxLayer] can move at a different speed using "
"[member ParallaxLayer.motion_offset]. This creates an illusion of depth in a "
"2D game. If not used with a [Camera2D], you must manually calculate the "
"[member scroll_offset]."
msgstr ""
"一个ParallaxBackground使用一个或多个[ParallaxLayer]子节点来创建视差效果。每个"
"[ParallaxLayer]可以使用成员ParallaxLayer.motion_offset以不同的速度移动。这在"
"2D游戏中创造了一种深度错觉。如果没有与[Camera2D]一起使用,你必须手动计算"
"[member scroll_offset]。"

#: doc/classes/ParallaxBackground.xml:16
msgid "The base position offset for all [ParallaxLayer] children."
msgstr "所有[ParallaxLayer]子元素的基本位置偏移。"

#: doc/classes/ParallaxBackground.xml:19
msgid "The base motion scale for all [ParallaxLayer] children."
msgstr "所有[ParallaxLayer]子元素的基本移动比例。"

#: doc/classes/ParallaxBackground.xml:22
msgid ""
"If [code]true[/code], elements in [ParallaxLayer] child aren't affected by "
"the zoom level of the camera."
msgstr ""
"如果[code]为true[/code], [ParallaxLayer]子元素将不受相机缩放级别的影响。"

#: doc/classes/ParallaxBackground.xml:25
msgid ""
"Top-left limits for scrolling to begin. If the camera is outside of this "
"limit, the background will stop scrolling. Must be lower than [member "
"scroll_limit_end] to work."
msgstr ""
"开始滚动的左上角限制。如果相机超出这个限制,背景将停止滚动。必须低于[member "
"scroll_limit_end]才能工作。"

#: doc/classes/ParallaxBackground.xml:28
msgid ""
"Bottom-right limits for scrolling to end. If the camera is outside of this "
"limit, the background will stop scrolling. Must be higher than [member "
"scroll_limit_begin] to work."
msgstr ""
"右下角限制滚动结束。如果相机超出这个限制,背景将停止滚动。必须高于[member "
"scroll_limit_begin]才能工作。"

#: doc/classes/ParallaxBackground.xml:31
msgid ""
"The ParallaxBackground's scroll value. Calculated automatically when using a "
"[Camera2D], but can be used to manually manage scrolling when no camera is "
"present."
msgstr ""
"视差背景的滚动值。使用[Camera2D]时自动计算,但可用于手动管理无摄像头时的滚"
"动。"

#: doc/classes/ParallaxLayer.xml:4
msgid "A parallax scrolling layer to be used with [ParallaxBackground]."
msgstr "使用[ParallaxBackground]的视差滚动层。"

#: doc/classes/ParallaxLayer.xml:7
msgid ""
"A ParallaxLayer must be the child of a [ParallaxBackground] node. Each "
"ParallaxLayer can be set to move at different speeds relative to the camera "
"movement or the [member ParallaxBackground.scroll_offset] value.\n"
"This node's children will be affected by its scroll offset.\n"
"[b]Note:[/b] Any changes to this node's position and scale made after it "
"enters the scene will be ignored."
msgstr ""
"一个ParallaxLayer必须是一个[ParallaxBackground]节点的子节点。每个"
"ParallaxLayer都可以设置为相对于相机移动或 [member ParallaxBackground."
"scroll_offset] 值。\n"
"该节点的子节点将受其滚动偏移量的影响。\n"
"[b]注意:[/b]当该节点进入场景后,对其位置和比例的任何改变都将被忽略。"

#: doc/classes/ParallaxLayer.xml:17
#, fuzzy
msgid ""
"The ParallaxLayer's [Texture] mirroring. Useful for creating an infinite "
"scrolling background. If an axis is set to [code]0[/code], the [Texture] "
"will not be mirrored."
msgstr ""
"视差图层的Texture2D镜像。用于创建无限滚动的背景。如果一个轴被设置为[code]0[/"
"code], [Texture2D]将不会被镜像。"

#: doc/classes/ParallaxLayer.xml:20
msgid ""
"The ParallaxLayer's offset relative to the parent ParallaxBackground's "
"[member ParallaxBackground.scroll_offset]."
msgstr ""
"ParallaxLayer相对于父ParallaxBackground的偏移量[member ParallaxBackground."
"scroll_offset]。"

#: doc/classes/ParallaxLayer.xml:23
msgid ""
"Multiplies the ParallaxLayer's motion. If an axis is set to [code]0[/code], "
"it will not scroll."
msgstr "复制视差图层的运动。如果一个轴被设置为[code]0[/code],它将不会滚动。"

#: doc/classes/Particles.xml:4
#, fuzzy
msgid "GPU-based 3D particle emitter."
msgstr "基于CPU的3D粒子发射器。"

#: doc/classes/Particles.xml:7
msgid ""
"3D particle node used to create a variety of particle systems and effects. "
"[Particles] features an emitter that generates some number of particles at a "
"given rate.\n"
"Use the [code]process_material[/code] property to add a [ParticlesMaterial] "
"to configure particle appearance and behavior. Alternatively, you can add a "
"[ShaderMaterial] which will be applied to all particles.\n"
"[b]Note:[/b] [Particles] only work when using the GLES3 renderer. If using "
"the GLES2 renderer, use [CPUParticles] instead. You can convert [Particles] "
"to [CPUParticles] by selecting the node, clicking the [b]Particles[/b] menu "
"at the top of the 3D editor viewport then choosing [b]Convert to "
"CPUParticles[/b].\n"
"[b]Note:[/b] After working on a Particles node, remember to update its "
"[member visibility_aabb] by selecting it, clicking the [b]Particles[/b] menu "
"at the top of the 3D editor viewport then choose [b]Generate Visibility "
"AABB[/b]. Otherwise, particles may suddenly disappear depending on the "
"camera position and angle."
msgstr ""

#: doc/classes/Particles.xml:13
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/vertex_animation/"
"controlling_thousands_of_fish.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/vertex_animation/"
"controlling_thousands_of_fish.html"

#: doc/classes/Particles.xml:20
msgid ""
"Returns the axis-aligned bounding box that contains all the particles that "
"are active in the current frame."
msgstr "返回包含当前帧中所有活动粒子的轴对齐边界盒。"

#: doc/classes/Particles.xml:27
msgid "Returns the [Mesh] that is drawn at index [code]pass[/code]."
msgstr "返回在索引 [code]pass[/code] 处绘制的 [Mesh] 。"

#: doc/classes/Particles.xml:33
msgid "Restarts the particle emission, clearing existing particles."
msgstr "重新发射粒子,清除现有的粒子。"

#: doc/classes/Particles.xml:41
msgid "Sets the [Mesh] that is drawn at index [code]pass[/code]."
msgstr "设置在索引 [code]pass[/code] 处绘制的 [Mesh] 。"

#: doc/classes/Particles.xml:54
msgid "[Mesh] that is drawn for the first draw pass."
msgstr "第一次抽取的[Mesh]。"

#: doc/classes/Particles.xml:57
msgid "[Mesh] that is drawn for the second draw pass."
msgstr "[Mesh]在第二次抽取时被抽出的。"

#: doc/classes/Particles.xml:60
msgid "[Mesh] that is drawn for the third draw pass."
msgstr "[Mesh]这是为第三次抽取所抽出的。"

#: doc/classes/Particles.xml:63
msgid "[Mesh] that is drawn for the fourth draw pass."
msgstr "[Mesh]这是为第四次抽取所抽出的。"

#: doc/classes/Particles.xml:66
msgid "The number of draw passes when rendering particles."
msgstr "渲染粒子时的绘制次数。"

#: doc/classes/Particles.xml:72
msgid ""
"Time ratio between each emission. If [code]0[/code], particles are emitted "
"continuously. If [code]1[/code], all particles are emitted simultaneously."
msgstr ""
"每次发射之间的时间比。如果[code]0[/code],粒子是连续发射的。如果[code]1[/"
"code],所有的粒子都同时发射。"

#: doc/classes/Particles.xml:87
msgid ""
"If [code]true[/code], only [code]amount[/code] particles will be emitted."
msgstr "如果[code]true[/code],将只发出[code]amount[/code]粒子。"

#: doc/classes/Particles.xml:90
msgid ""
"Amount of time to preprocess the particles before animation starts. Lets you "
"start the animation some time after particles have started emitting."
msgstr ""
"动画开始前对粒子进行预处理的时间。让你在粒子开始发射后的一段时间内开始动画。"

#: doc/classes/Particles.xml:93 doc/classes/Particles2D.xml:68
msgid ""
"[Material] for processing particles. Can be a [ParticlesMaterial] or a "
"[ShaderMaterial]."
msgstr ""
"用于处理粒子的 [Material] 。可以是一个 [ParticlesMaterial] 或一个 "
"[ShaderMaterial] 。"

#: doc/classes/Particles.xml:96
msgid "Emission randomness ratio."
msgstr "发出随机率。"

#: doc/classes/Particles.xml:99
msgid ""
"Speed scaling ratio. A value of [code]0[/code] can be used to pause the "
"particles."
msgstr "速度缩放比。一个[code]0[/code]的值可以用来暂停粒子。"

#: doc/classes/Particles.xml:102
msgid ""
"The [AABB] that determines the node's region which needs to be visible on "
"screen for the particle system to be active.\n"
"Grow the box if particles suddenly appear/disappear when the node enters/"
"exits the screen. The [AABB] can be grown via code or with the [b]Particles "
"→ Generate AABB[/b] editor tool.\n"
"[b]Note:[/b] If the [ParticlesMaterial] in use is configured to cast "
"shadows, you may want to enlarge this AABB to ensure the shadow is updated "
"when particles are off-screen."
msgstr ""

#: doc/classes/Particles.xml:118
msgid "Maximum number of draw passes supported."
msgstr "支持的最大抽取次数。"

#: doc/classes/Particles2D.xml:4
#, fuzzy
msgid "GPU-based 2D particle emitter."
msgstr "基于CPU的2D粒子发射器。"

#: doc/classes/Particles2D.xml:7
msgid ""
"2D particle node used to create a variety of particle systems and effects. "
"[Particles2D] features an emitter that generates some number of particles at "
"a given rate.\n"
"Use the [code]process_material[/code] property to add a [ParticlesMaterial] "
"to configure particle appearance and behavior. Alternatively, you can add a "
"[ShaderMaterial] which will be applied to all particles.\n"
"[b]Note:[/b] [Particles2D] only work when using the GLES3 renderer. If using "
"the GLES2 renderer, use [CPUParticles2D] instead. You can convert "
"[Particles2D] to [CPUParticles2D] by selecting the node, clicking the "
"[b]Particles[/b] menu at the top of the 2D editor viewport then choosing "
"[b]Convert to CPUParticles2D[/b].\n"
"[b]Note:[/b] After working on a Particles node, remember to update its "
"[member visibility_rect] by selecting it, clicking the [b]Particles[/b] menu "
"at the top of the 2D editor viewport then choose [b]Generate Visibility "
"Rect[/b]. Otherwise, particles may suddenly disappear depending on the "
"camera position and angle.\n"
"[b]Note:[/b] Unlike [CPUParticles2D], [Particles2D] currently ignore the "
"texture region defined in [AtlasTexture]s."
msgstr ""

#: doc/classes/Particles2D.xml:21
msgid "Returns a rectangle containing the positions of all existing particles."
msgstr "返回一个包含所有现存粒子位置的矩形。"

#: doc/classes/Particles2D.xml:27
msgid "Restarts all the existing particles."
msgstr "重新启动所有现有的粒子。"

#: doc/classes/Particles2D.xml:80
msgid ""
"The [Rect2] that determines the node's region which needs to be visible on "
"screen for the particle system to be active.\n"
"Grow the rect if particles suddenly appear/disappear when the node enters/"
"exits the screen. The [Rect2] can be grown via code or with the [b]Particles "
"→ Generate Visibility Rect[/b] editor tool."
msgstr ""

#: doc/classes/ParticlesMaterial.xml:4
#, fuzzy
msgid "Particle properties for [Particles] and [Particles2D] nodes."
msgstr "[GPUParticles3D]和[GPUParticles2D]节点的粒子属性。"

#: doc/classes/ParticlesMaterial.xml:7
#, fuzzy
msgid ""
"ParticlesMaterial defines particle properties and behavior. It is used in "
"the [code]process_material[/code] of [Particles] and [Particles2D] emitter "
"nodes.\n"
"Some of this material's properties are applied to each particle when "
"emitted, while others can have a [CurveTexture] applied to vary values over "
"the lifetime of the particle.\n"
"When a randomness ratio is applied to a property it is used to scale that "
"property by a random amount. The random ratio is used to interpolate between "
"[code]1.0[/code] and a random number less than one, the result is multiplied "
"by the property to obtain the randomized property. For example a random "
"ratio of [code]0.4[/code] would scale the original property between "
"[code]0.4-1.0[/code] of its original value."
msgstr ""
"ParticlesMaterial定义了粒子的属性和行为。它在[GPUParticles3D]和"
"[GPUParticles2D]发射器节点的[code]process_material[/code]中使用。\n"
"当发射时,这些材料的一些属性被应用到每个粒子上,而其他的可以有一个"
"[CurveTexture]应用到在粒子的生命周期中变化的值。\n"
"当随机比率应用于一个属性时,它被用于按随机数量缩放该属性。随机比率用于在"
"[code]1.0[/code]和一个小于1的随机数之间插入,结果乘以该属性得到随机属性。例"
"如,[code]0.4[/code]的随机比率将使原始属性在其原始值的[code]0.4-1.0[/code]之"
"间缩放。"

#: doc/classes/ParticlesMaterial.xml:18
msgid "Returns [code]true[/code] if the specified flag is enabled."
msgstr "如果指定的Flag被启用,返回[code]true[/code]。"

#: doc/classes/ParticlesMaterial.xml:32
msgid "Returns the randomness ratio associated with the specified parameter."
msgstr "返回与指定参数关联的随机比率。"

#: doc/classes/ParticlesMaterial.xml:39
#, fuzzy
msgid "Returns the [Texture] used by the specified parameter."
msgstr "返回指定参数使用的[Texture2D]。"

#: doc/classes/ParticlesMaterial.xml:47
msgid ""
"If [code]true[/code], enables the specified flag. See [enum Flags] for "
"options."
msgstr "如果[code]true[/code],启用指定的Flag。选项请参见[enum Flags]。"

#: doc/classes/ParticlesMaterial.xml:55
msgid "Sets the specified [enum Parameter]."
msgstr "设置指定的[enum Parameter]。"

#: doc/classes/ParticlesMaterial.xml:63
msgid "Sets the randomness ratio for the specified [enum Parameter]."
msgstr "为指定的[enum Parameter]设置随机比率。"

#: doc/classes/ParticlesMaterial.xml:71
#, fuzzy
msgid "Sets the [Texture] for the specified [enum Parameter]."
msgstr "为指定的[enum Parameter]设置[Texture2D]。"

#: doc/classes/ParticlesMaterial.xml:77
#, fuzzy
msgid ""
"Initial rotation applied to each particle, in degrees.\n"
"Only applied when [member flag_disable_z] or [member flag_rotate_y] are "
"[code]true[/code] or the [SpatialMaterial] being used to draw the particle "
"is using [constant SpatialMaterial.BILLBOARD_PARTICLES]."
msgstr ""
"初始旋转作用于每个粒子,以度数表示。\n"
"仅当[member flag_disable_z]或[member flag_rotate_y]为[code]true[/code]或"
"[BaseMaterial3D]用于绘制粒子时使用[constant BaseMaterial3D. "
"billboard_particles]。"

#: doc/classes/ParticlesMaterial.xml:81
msgid "Each particle's rotation will be animated along this [CurveTexture]."
msgstr "每个粒子的旋转将沿着这个[CurveTexture]动画。"

#: doc/classes/ParticlesMaterial.xml:87
#, fuzzy
msgid ""
"Initial angular velocity applied to each particle. Sets the speed of "
"rotation of the particle.\n"
"Only applied when [member flag_disable_z] or [member flag_rotate_y] are "
"[code]true[/code] or the [SpatialMaterial] being used to draw the particle "
"is using [constant SpatialMaterial.BILLBOARD_PARTICLES]."
msgstr ""
"每个粒子的初始角速度。设置粒子的旋转速度。\n"
"仅当[member flag_disable_z]或[member flag_rotate_y]为[code]true[/code]或"
"[BaseMaterial3D]用于绘制粒子时使用[constant BaseMaterial3D. "
"billboard_particles]。"

#: doc/classes/ParticlesMaterial.xml:91
msgid "Each particle's angular velocity will vary along this [CurveTexture]."
msgstr "每个粒子的角速度将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:100
msgid "Each particle's animation offset will vary along this [CurveTexture]."
msgstr "每个粒子的动画偏移将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:109
msgid "Each particle's animation speed will vary along this [CurveTexture]."
msgstr "每个粒子的动画速度将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:115
#, fuzzy
msgid ""
"Each particle's initial color. If the [Particles2D]'s [code]texture[/code] "
"is defined, it will be multiplied by this color. To have particle display "
"color in a [SpatialMaterial] make sure to set [member SpatialMaterial."
"vertex_color_use_as_albedo] to [code]true[/code]."
msgstr ""
"每个粒子的初始颜色。如果[GPUParticles2D]的[code]texture[/code]被定义,它将乘"
"以这个颜色。要让粒子在[BaseMaterial3D]中显示颜色,请确保设置[member "
"BaseMaterial3D]。vertex_color_use_as_albedo] [code]true[/code]。"

#: doc/classes/ParticlesMaterial.xml:124
msgid "Damping will vary along this [CurveTexture]."
msgstr "阻尼将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:133
msgid ""
"The box's extents if [code]emission_shape[/code] is set to [constant "
"EMISSION_SHAPE_BOX]."
msgstr ""
"[code]emission_shape[/code]设置为[constant EMISSION_SHAPE_BOX]时,Box的范围。"

#: doc/classes/ParticlesMaterial.xml:136
msgid ""
"Particle color will be modulated by color determined by sampling this "
"texture at the same point as the [member emission_point_texture]."
msgstr ""
"粒子颜色将由颜色调制,颜色由采样纹理在与[member emission_point_texture]相同的"
"点决定。"

#: doc/classes/ParticlesMaterial.xml:139
msgid ""
"Particle velocity and rotation will be set by sampling this texture at the "
"same point as the [member emission_point_texture]. Used only in [constant "
"EMISSION_SHAPE_DIRECTED_POINTS]. Can be created automatically from mesh or "
"node by selecting \"Create Emission Points from Mesh/Node\" under the "
"\"Particles\" tool in the toolbar."
msgstr ""
"粒子的速度和旋转将通过在与[member emission_point_texture]相同的点上对该纹理进"
"行采样来设置。仅在[constant EMISSION_SHAPE_DIRECTED_POINTS]中使用。可以通过选"
"择工具栏中 \"粒子 \"工具下的 \"从网格/节点创建发射点\",从网格或节点自动创"
"建。"

#: doc/classes/ParticlesMaterial.xml:142
msgid ""
"The number of emission points if [code]emission_shape[/code] is set to "
"[constant EMISSION_SHAPE_POINTS] or [constant "
"EMISSION_SHAPE_DIRECTED_POINTS]."
msgstr ""
"[code]emission_shape[/code]设置为[constant EMISSION_SHAPE_POINTS]或[constant "
"EMISSION_SHAPE_DIRECTED_POINTS],时的释放粒子数。"

#: doc/classes/ParticlesMaterial.xml:145
msgid ""
"Particles will be emitted at positions determined by sampling this texture "
"at a random position. Used with [constant EMISSION_SHAPE_POINTS] and "
"[constant EMISSION_SHAPE_DIRECTED_POINTS]. Can be created automatically from "
"mesh or node by selecting \"Create Emission Points from Mesh/Node\" under "
"the \"Particles\" tool in the toolbar."
msgstr ""
"粒子将被发射到由随机采样纹理所决定的位置。与[constant EMISSION_SHAPE_POINTS]"
"和[constant EMISSION_SHAPE_DIRECTED_POINTS]一起使用。可以通过选择工具栏中"
"的“粒子”工具下的“从网格/节点中创建发射点”自动创建网格或节点。"

#: doc/classes/ParticlesMaterial.xml:148
#, fuzzy
msgid ""
"The axis of the ring when using the emitter [constant EMISSION_SHAPE_RING]."
msgstr ""
"如果[enum EmissionShape]设置为[constant EMISSION_SHAPE_SPHERE],则球体的半"
"径。"

#: doc/classes/ParticlesMaterial.xml:151
#, fuzzy
msgid ""
"The height of the ring when using the emitter [constant EMISSION_SHAPE_RING]."
msgstr ""
"如果[enum EmissionShape]设置为[constant EMISSION_SHAPE_SPHERE],则球体的半"
"径。"

#: doc/classes/ParticlesMaterial.xml:154
#, fuzzy
msgid ""
"The inner radius of the ring when using the emitter [constant "
"EMISSION_SHAPE_RING]."
msgstr ""
"如果[enum EmissionShape]设置为[constant EMISSION_SHAPE_SPHERE],则球体的半"
"径。"

#: doc/classes/ParticlesMaterial.xml:157
#, fuzzy
msgid ""
"The radius of the ring when using the emitter [constant EMISSION_SHAPE_RING]."
msgstr ""
"如果[membermission_shape]设置为[constant EMISSION_SHAPE_SPHERE],则球体的半"
"径。"

#: doc/classes/ParticlesMaterial.xml:160
msgid ""
"Particles will be emitted inside this region. Use [enum EmissionShape] "
"constants for values."
msgstr "粒子将在这个区域内发射。使用[enum EmissionShape]常量作为值。"

#: doc/classes/ParticlesMaterial.xml:163
msgid ""
"The sphere's radius if [code]emission_shape[/code] is set to [constant "
"EMISSION_SHAPE_SPHERE]."
msgstr ""
"当[code]emission_shape[/code]设置为[constant EMISSION_SHAPE_SPHERE]时,球体的"
"半径。"

#: doc/classes/ParticlesMaterial.xml:175
#, fuzzy
msgid "Amount of [member spread] along the Y axis."
msgstr "沿Y轴插入的额外边缘环的数量。"

#: doc/classes/ParticlesMaterial.xml:184
msgid "Each particle's hue will vary along this [CurveTexture]."
msgstr "每个粒子的色调将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:202
msgid ""
"Each particle's linear acceleration will vary along this [CurveTexture]."
msgstr "每个粒子的线性加速度将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:208
msgid ""
"Orbital velocity applied to each particle. Makes the particles circle around "
"origin. Specified in number of full rotations around origin per second.\n"
"Only available when [member flag_disable_z] is [code]true[/code]."
msgstr ""
"每个粒子的轨道速度。使粒子绕原点旋转。以每秒绕原点的完整旋转数指定。\n"
"仅当[member flag_disable_z]为[code]true[/code]时可用。"

#: doc/classes/ParticlesMaterial.xml:212
msgid "Each particle's orbital velocity will vary along this [CurveTexture]."
msgstr "每个粒子的轨道速度将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:221
msgid ""
"Each particle's radial acceleration will vary along this [CurveTexture]."
msgstr "每个粒子的径向加速度将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:230
msgid "Each particle's scale will vary along this [CurveTexture]."
msgstr "每个粒子的比例将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:242
msgid ""
"Each particle's tangential acceleration will vary along this [CurveTexture]."
msgstr "每个粒子的切向加速度将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:248
msgid "Trail particles' color will vary along this [GradientTexture]."
msgstr "轨迹粒子的颜色将沿着这个[GradientTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:251
msgid ""
"Emitter will emit [code]amount[/code] divided by [code]trail_divisor[/code] "
"particles. The remaining particles will be used as trail(s)."
msgstr ""
"发射器将发射[code]amount[/code]除以[code]trail_visor[/code]的粒子。剩下的粒子"
"将作为轨迹使用。"

#: doc/classes/ParticlesMaterial.xml:254
msgid "Trail particles' size will vary along this [CurveTexture]."
msgstr "轨迹粒子的大小将沿着这个[CurveTexture]变化。"

#: doc/classes/ParticlesMaterial.xml:259
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set initial velocity properties."
msgstr ""
"使用[method set_param], [method set_param_randomness]和[method "
"set_param_texture]设置初始速度属性。"

#: doc/classes/ParticlesMaterial.xml:262
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set angular velocity properties."
msgstr ""
"与[method set_param], [method set_param_randomness]和[method "
"set_param_texture]一起使用来设置角速度属性。"

#: doc/classes/ParticlesMaterial.xml:265
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set orbital velocity properties."
msgstr ""
"使用[method set_param], [method set_param_randomness]和[method "
"set_param_texture]设置轨道速度属性。"

#: doc/classes/ParticlesMaterial.xml:268
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set linear acceleration properties."
msgstr ""
"使用[method set_param], [method set_param_randomness]和[method "
"set_param_texture]设置线性加速属性。"

#: doc/classes/ParticlesMaterial.xml:271
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set radial acceleration properties."
msgstr ""
"使用[method set_param], [method set_param_randomness]和[method "
"set_param_texture]设置径向加速度属性。"

#: doc/classes/ParticlesMaterial.xml:274
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set tangential acceleration properties."
msgstr ""
"使用[method set_param], [method set_param_randomness]和[method "
"set_param_texture]设置切向加速度属性。"

#: doc/classes/ParticlesMaterial.xml:277
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set damping properties."
msgstr ""
"使用[method set_param], [method set_param_randomness]和[method "
"set_param_texture]设置阻尼属性。"

#: doc/classes/ParticlesMaterial.xml:280
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set angle properties."
msgstr ""
"与[method set_param], [method set_param_randomness]和[method "
"set_param_texture]一起使用来设置角度属性。"

#: doc/classes/ParticlesMaterial.xml:283
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set scale properties."
msgstr ""
"与[method set_param], [method set_param_randomness]和[method "
"set_param_texture]一起使用来设置缩放属性。"

#: doc/classes/ParticlesMaterial.xml:286
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set hue variation properties."
msgstr ""
"与[method set_param], [method set_param_randomness]和[method "
"set_param_texture]一起使用来设置色调变化属性。"

#: doc/classes/ParticlesMaterial.xml:289
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set animation speed properties."
msgstr ""
"与[method set_param], [method set_param_randomness]和[method "
"set_param_texture]一起使用来设置动画速度属性。"

#: doc/classes/ParticlesMaterial.xml:292
msgid ""
"Use with [method set_param], [method set_param_randomness], and [method "
"set_param_texture] to set animation offset properties."
msgstr ""
"与[method set_param], [method set_param_randomness]和[method "
"set_param_texture]一起使用来设置动画偏移属性。"

#: doc/classes/ParticlesMaterial.xml:298
msgid "Use with [method set_flag] to set [member flag_align_y]."
msgstr "与[method set_flag]一起使用来设置[member flag_align_y]。"

#: doc/classes/ParticlesMaterial.xml:301
msgid "Use with [method set_flag] to set [member flag_rotate_y]."
msgstr "使用[method set_flag]来设置[member flag_rotate_y]。"

#: doc/classes/ParticlesMaterial.xml:304
msgid "Use with [method set_flag] to set [member flag_disable_z]."
msgstr "与[method set_flag]一起使用来设置[member flag_disable_z]。"

#: doc/classes/ParticlesMaterial.xml:319
msgid ""
"Particles will be emitted at a position determined by sampling a random "
"point on the [member emission_point_texture]. Particle color will be "
"modulated by [member emission_color_texture]."
msgstr ""
"粒子将在[member emission_point_texture]上随机采样点所决定的位置发射。粒子颜色"
"将由[成员emission_color_texture]调节。"

#: doc/classes/ParticlesMaterial.xml:322
msgid ""
"Particles will be emitted at a position determined by sampling a random "
"point on the [member emission_point_texture]. Particle velocity and rotation "
"will be set based on [member emission_normal_texture]. Particle color will "
"be modulated by [member emission_color_texture]."
msgstr ""
"粒子将在[member emission_point_texture]上随机采样点所决定的位置发射。粒子速度"
"和旋转将基于[成员emission_normal_texture]进行设置。粒子颜色将由[成员"
"emission_color_texture]调节。"

#: doc/classes/Path.xml:4
#, fuzzy
msgid "Contains a [Curve3D] path for [PathFollow] nodes to follow."
msgstr "包含一个[Curve3D]路径,供[PathFollow3D]节点遵循。"

#: doc/classes/Path.xml:7
#, fuzzy
msgid ""
"Can have [PathFollow] child nodes moving along the [Curve3D]. See "
"[PathFollow] for more information on the usage.\n"
"Note that the path is considered as relative to the moved nodes (children of "
"[PathFollow]). As such, the curve should usually start with a zero vector "
"[code](0, 0, 0)[/code]."
msgstr ""
"可以让[PathFollow3D]子节点沿着[Curve3D]移动。请参阅[PathFollow3D]以获得更多关"
"于使用的信息。\n"
"注意,该路径被认为是相对于移动的节点([PathFollow3D]的子节点)的。因此,曲线通"
"常以零向量[code](0,0,0)[/code]开始。"

#: doc/classes/Path.xml:16
msgid "A [Curve3D] describing the path."
msgstr "A [Curve3D]描述路径。"

#: doc/classes/Path.xml:22
msgid "Emitted when the [member curve] changes."
msgstr "当[member curve]改变时触发。"

#: doc/classes/Path2D.xml:4
msgid "Contains a [Curve2D] path for [PathFollow2D] nodes to follow."
msgstr "包含一个[Curve2D]路径,供[PathFollow2D]节点遵循。"

#: doc/classes/Path2D.xml:7
msgid ""
"Can have [PathFollow2D] child nodes moving along the [Curve2D]. See "
"[PathFollow2D] for more information on usage.\n"
"[b]Note:[/b] The path is considered as relative to the moved nodes (children "
"of [PathFollow2D]). As such, the curve should usually start with a zero "
"vector ([code](0, 0)[/code])."
msgstr ""
"可以让[PathFollow2D]子节点沿着[Curve2D]移动。有关用法的更多信息,请参见"
"[PathFollow2D]。\n"
"[b]注:[/b]该路径被认为是相对于移动的节点([PathFollow2D]的子节点)。因此,曲线"
"通常以零向量([code](0,0)[/code])开始。"

#: doc/classes/Path2D.xml:16
msgid "A [Curve2D] describing the path."
msgstr "A [Curve2D]描述路径。"

#: doc/classes/PathFollow.xml:4
#, fuzzy
msgid "Point sampler for a [Path]."
msgstr "对[Path2D]的点取样的取样器。"

#: doc/classes/PathFollow.xml:7
#, fuzzy
msgid ""
"This node takes its parent [Path], and returns the coordinates of a point "
"within it, given a distance from the first vertex.\n"
"It is useful for making other nodes follow a path, without coding the "
"movement pattern. For that, the nodes must be children of this node. The "
"descendant nodes will then move accordingly when setting an offset in this "
"node."
msgstr ""
"这个节点接受它的父节点[Path2D],并返回其中一个点的坐标(给定到第一个顶点的距"
"离)。\n"
"在不编码移动模式的情况下,它可以使其他节点遵循一条路径。因此,节点必须是这个"
"节点的子节点。当在该节点中设置偏移量时,后代节点将相应地移动。"

#: doc/classes/PathFollow.xml:16
#, fuzzy
msgid ""
"If [code]true[/code], the position between two cached points is interpolated "
"cubically, and linearly otherwise.\n"
"The points along the [Curve3D] of the [Path] are precomputed before use, for "
"faster calculations. The point at the requested offset is then calculated "
"interpolating between two adjacent cached points. This may present a problem "
"if the curve makes sharp turns, as the cached points may not follow the "
"curve closely enough.\n"
"There are two answers to this problem: either increase the number of cached "
"points and increase memory consumption, or make a cubic interpolation "
"between two points at the cost of (slightly) slower calculations."
msgstr ""
"如果[code]true[/code],则两个缓存点之间的位置将进行三次插值,否则将线性插"
"值。\n"
"沿着[Path3D]的[Curve3D]的点在使用前是预先计算的,为了更快的计算。然后在两个相"
"邻的缓存点之间计算请求偏移量的点。这可能会出现一个问题,如果曲线做急转弯,因"
"为缓存点可能不跟随曲线足够近。\n"
"有两种方法可以解决这个问题:要么增加缓存点的数量,增加内存消耗,要么在两个点之"
"间进行三次插值,但代价是(稍微)降低计算速度。"

#: doc/classes/PathFollow.xml:21 doc/classes/PathFollow2D.xml:21
msgid "The node's offset along the curve."
msgstr "节点沿曲线的偏移量。"

#: doc/classes/PathFollow.xml:24 doc/classes/PathFollow2D.xml:27
msgid ""
"If [code]true[/code], any offset outside the path's length will wrap around, "
"instead of stopping at the ends. Use it for cyclic paths."
msgstr ""
"如果[code]true[/code],路径长度以外的任何偏移都将环绕,而不是在结束时停止。对"
"于循环路径使用它。"

#: doc/classes/PathFollow.xml:27
msgid ""
"The distance from the first vertex, measured in 3D units along the path. "
"This sets this node's position to a point within the path."
msgstr ""
"到第一个顶点的距离,以沿路径的三维单位度量。这将把这个节点的位置设置为路径中"
"的一个点。"

#: doc/classes/PathFollow.xml:30
msgid ""
"Allows or forbids rotation on one or more axes, depending on the [enum "
"RotationMode] constants being used."
msgstr ""
"允许或禁止在一个或多个轴上旋转,这取决于使用的[enum RotationMode]常量。"

#: doc/classes/PathFollow.xml:33
msgid ""
"The distance from the first vertex, considering 0.0 as the first vertex and "
"1.0 as the last. This is just another way of expressing the offset within "
"the path, as the offset supplied is multiplied internally by the path's "
"length."
msgstr ""
"到第一个顶点的距离,将0.0作为第一个顶点,1.0作为最后一个顶点。这只是表示路径"
"内偏移量的另一种方式,因为提供的偏移量在内部乘以路径的长度。"

#: doc/classes/PathFollow.xml:36 doc/classes/PathFollow2D.xml:39
msgid "The node's offset perpendicular to the curve."
msgstr "节点垂直于曲线的偏移量。"

#: doc/classes/PathFollow.xml:41
#, fuzzy
msgid "Forbids the PathFollow to rotate."
msgstr "禁止PathFollow3D旋转。"

#: doc/classes/PathFollow.xml:44
#, fuzzy
msgid "Allows the PathFollow to rotate in the Y axis only."
msgstr "只允许PathFollow3D在Y轴上旋转。"

#: doc/classes/PathFollow.xml:47
#, fuzzy
msgid "Allows the PathFollow to rotate in both the X, and Y axes."
msgstr "允许PathFollow3D在X轴和Y轴上旋转。"

#: doc/classes/PathFollow.xml:50
#, fuzzy
msgid "Allows the PathFollow to rotate in any axis."
msgstr "允许PathFollow3D在任何轴上旋转。"

#: doc/classes/PathFollow.xml:53
#, fuzzy
msgid ""
"Uses the up vector information in a [Curve3D] to enforce orientation. This "
"rotation mode requires the [Path]'s [member Curve3D.up_vector_enabled] "
"property to be set to [code]true[/code]."
msgstr ""
"使用[Curve3D]中的上向量信息来加强方向。这个旋转模式需要[Path3D]的[成员"
"Curve3D。Up_vector_enabled属性设置为[code]true[/code]。"

#: doc/classes/PathFollow2D.xml:4
msgid "Point sampler for a [Path2D]."
msgstr "对[Path2D]的点取样的取样器。"

#: doc/classes/PathFollow2D.xml:7
msgid ""
"This node takes its parent [Path2D], and returns the coordinates of a point "
"within it, given a distance from the first vertex.\n"
"It is useful for making other nodes follow a path, without coding the "
"movement pattern. For that, the nodes must be children of this node. The "
"descendant nodes will then move accordingly when setting an offset in this "
"node."
msgstr ""
"这个节点接受它的父节点[Path2D],并返回其中一个点的坐标(给定到第一个顶点的距"
"离)。\n"
"在不编码移动模式的情况下,它可以使其他节点遵循一条路径。因此,节点必须是这个"
"节点的子节点。当在该节点中设置偏移量时,后代节点将相应地移动。"

#: doc/classes/PathFollow2D.xml:16
msgid ""
"If [code]true[/code], the position between two cached points is interpolated "
"cubically, and linearly otherwise.\n"
"The points along the [Curve2D] of the [Path2D] are precomputed before use, "
"for faster calculations. The point at the requested offset is then "
"calculated interpolating between two adjacent cached points. This may "
"present a problem if the curve makes sharp turns, as the cached points may "
"not follow the curve closely enough.\n"
"There are two answers to this problem: either increase the number of cached "
"points and increase memory consumption, or make a cubic interpolation "
"between two points at the cost of (slightly) slower calculations."
msgstr ""
"如果[code]为true[/code],则两个缓存点之间的位置将进行三次插值,否则将线性插"
"值。\n"
"沿着[Path2D]的[Curve2D]的点在使用前被预先计算,以更快的计算速度。然后在两个相"
"邻的缓存点之间计算请求偏移量的点。这可能会出现一个问题,如果曲线做急转弯,因"
"为缓存点可能不跟随曲线足够近。\n"
"有两种方法可以解决这个问题:要么增加缓存点的数量,增加内存消耗,要么在两个点之"
"间进行三次插值,但代价是(稍微)降低计算速度。"

#: doc/classes/PathFollow2D.xml:24
msgid ""
"How far to look ahead of the curve to calculate the tangent if the node is "
"rotating. E.g. shorter lookaheads will lead to faster rotations."
msgstr ""
"如果节点是旋转的,那么在计算切线时,要提前多长时间看曲线。例如,较短的提前量"
"会导致更快的旋转。"

#: doc/classes/PathFollow2D.xml:30
msgid "The distance along the path in pixels."
msgstr "沿着路径的距离,单位为像素。"

#: doc/classes/PathFollow2D.xml:33
msgid ""
"If [code]true[/code], this node rotates to follow the path, making its "
"descendants rotate."
msgstr "如果[code]为true[/code],则该节点将沿着路径旋转,使其后代节点旋转。"

#: doc/classes/PathFollow2D.xml:36
msgid ""
"The distance along the path as a number in the range 0.0 (for the first "
"vertex) to 1.0 (for the last). This is just another way of expressing the "
"offset within the path, as the offset supplied is multiplied internally by "
"the path's length."
msgstr ""
"在0.0(第一个顶点)到1.0(最后一个顶点)的范围内,沿着路径的距离为一个数字。这只"
"是表示路径内偏移量的另一种方式,因为提供的偏移量在内部乘以路径的长度。"

#: doc/classes/PCKPacker.xml:4
msgid "Creates packages that can be loaded into a running project."
msgstr "创建可以加载到正在运行的项目中的包。"

#: doc/classes/PCKPacker.xml:7
msgid ""
"The [PCKPacker] is used to create packages that can be loaded into a running "
"project using [method ProjectSettings.load_resource_pack].\n"
"[codeblock]\n"
"var packer = PCKPacker.new()\n"
"packer.pck_start(\"test.pck\")\n"
"packer.add_file(\"res://text.txt\", \"text.txt\")\n"
"packer.flush()\n"
"[/codeblock]\n"
"The above [PCKPacker] creates package [code]test.pck[/code], then adds a "
"file named [code]text.txt[/code] at the root of the package."
msgstr ""
"[PCKPacker]用于创建可以通过[method ProjectSettings.load_resource_pack]加载到"
"正在运行的项目中的包。\n"
"[codeblock]\n"
"var packer = PCKPacker.new()\n"
"packer.pck_start(\"test.pck\")\n"
"packer.add_file(\"res://text.txt\", \"text.txt\")\n"
"packer.flush()\n"
"[/codeblock]\n"
"上面的[PCKPacker]创建包[code]test.pck [/code],然后在包的根目录中添加一个名为"
"[code]text.txt[/code]的文件。"

#: doc/classes/PCKPacker.xml:24
msgid ""
"Adds the [code]source_path[/code] file to the current PCK package at the "
"[code]pck_path[/code] internal path (should start with [code]res://[/code])."
msgstr ""
"将[code]source_path[/code]文件添加到当前PCK包的[code]pck_path[/code]内部路径"
"(应该以[code]res://[/code]开始)。"

#: doc/classes/PCKPacker.xml:31
msgid ""
"Writes the files specified using all [method add_file] calls since the last "
"flush. If [code]verbose[/code] is [code]true[/code], a list of files added "
"will be printed to the console for easier debugging."
msgstr ""
"自上次刷新以来,使用所有[method add_file]调用写入指定的文件。如果"
"[code]verbose[/code]为[code]true[/code],添加的文件列表将被打印到控制台,以便"
"于调试。"

#: doc/classes/PCKPacker.xml:39
msgid ""
"Creates a new PCK file with the name [code]pck_name[/code]. The [code].pck[/"
"code] file extension isn't added automatically, so it should be part of "
"[code]pck_name[/code] (even though it's not required)."
msgstr ""
"创建一个名为[code]pck_name[/code]的新PCK文件。[code].Pck [/code]文件扩展名不"
"会自动添加,所以它应该是[code]pck_name[/code]的一部分(即使它不是必需的)。"

#: doc/classes/Performance.xml:4
msgid "Exposes performance-related data."
msgstr "公开与性能相关的数据。"

#: doc/classes/Performance.xml:7
#, fuzzy
msgid ""
"This class provides access to a number of different monitors related to "
"performance, such as memory usage, draw calls, and FPS. These are the same "
"as the values displayed in the [b]Monitor[/b] tab in the editor's "
"[b]Debugger[/b] panel. By using the [method get_monitor] method of this "
"class, you can access this data from your code.\n"
"[b]Note:[/b] A few of these monitors are only available in debug mode and "
"will always return 0 when used in a release build.\n"
"[b]Note:[/b] Many of these monitors are not updated in real-time, so there "
"may be a short delay between changes."
msgstr ""
"这个类提供了对一些与性能有关的不同监控的访问,比如内存使用量、绘图调用和FPS。"
"这些与编辑器的[b]Debugger[/b]面板中的[b]Monitor[/b]标签所显示的数值相同。通过"
"使用这个类的[method get_monitor]方法,你可以从你的代码中访问这些数据。\n"
"你可以使用[method add_custom_monitor]方法添加自定义监视器。自定义监视器可以在"
"编辑器的[b]调试器[/b]面板的[b]监视器[/b]选项卡中与内置监视器一起使用。\n"
"[b]注意:[/b] 其中一些监视器只在调试模式下可用,在发布版本中使用时将总是返回"
"0。\n"
"[b]注意:[/b] 这些监控器中的许多都不是实时更新的,所以在变化之间可能会有短暂"
"的延迟。\n"
"[b]注意:[/b] 自定义监视器不支持负值。负值被钳制为0。"

#: doc/classes/Performance.xml:18
msgid ""
"Returns the value of one of the available monitors. You should provide one "
"of the [enum Monitor] constants as the argument, like this:\n"
"[codeblock]\n"
"print(Performance.get_monitor(Performance.TIME_FPS)) # Prints the FPS to the "
"console\n"
"[/codeblock]"
msgstr ""
"返回一个可用监视器的值。你应该提供一个[enum Monitor]常量作为参数,像这样:\n"
"[codeblock]\n"
"print(Performance.get_monitor(Performance.TIME_FPS)) # Prints the FPS to the "
"console\n"
"[/codeblock]"

#: doc/classes/Performance.xml:27
msgid "Number of frames per second."
msgstr "每秒帧数。"

#: doc/classes/Performance.xml:30
msgid "Time it took to complete one frame, in seconds."
msgstr "完成一帧的时间,以秒为单位。"

#: doc/classes/Performance.xml:33
msgid "Time it took to complete one physics frame, in seconds."
msgstr "完成一个物理帧的时间,以秒为单位。"

#: doc/classes/Performance.xml:36
msgid ""
"Static memory currently used, in bytes. Not available in release builds."
msgstr "当前使用的静态内存,以字节为单位。在发布版本中不可用。"

#: doc/classes/Performance.xml:39
#, fuzzy
msgid ""
"Dynamic memory currently used, in bytes. Not available in release builds."
msgstr "当前使用的静态内存,以字节为单位。在发布版本中不可用。"

#: doc/classes/Performance.xml:42
msgid "Available static memory. Not available in release builds."
msgstr "可用的静态内存。在发布版本中不可用。"

#: doc/classes/Performance.xml:45
#, fuzzy
msgid "Available dynamic memory. Not available in release builds."
msgstr "可用的静态内存。在发布版本中不可用。"

#: doc/classes/Performance.xml:48
msgid ""
"Largest amount of memory the message queue buffer has used, in bytes. The "
"message queue is used for deferred functions calls and notifications."
msgstr ""
"消息队列缓冲区使用的最大内存数量(以字节为单位)。消息队列用于延迟函数调用和通"
"知。"

#: doc/classes/Performance.xml:51
msgid "Number of objects currently instanced (including nodes)."
msgstr "当前实例化的对象数量(包括节点)。"

#: doc/classes/Performance.xml:54
msgid "Number of resources currently used."
msgstr "当前使用的资源数量。"

#: doc/classes/Performance.xml:57
msgid ""
"Number of nodes currently instanced in the scene tree. This also includes "
"the root node."
msgstr "当前场景树中实例化的节点数。这也包括根节点。"

#: doc/classes/Performance.xml:60
msgid ""
"Number of orphan nodes, i.e. nodes which are not parented to a node of the "
"scene tree."
msgstr "孤儿节点的数量,孤儿节点即无法被按父级追溯到根节点的节点。"

#: doc/classes/Performance.xml:63
msgid "3D objects drawn per frame."
msgstr "每帧绘制3D对象的数量。"

#: doc/classes/Performance.xml:66
msgid "Vertices drawn per frame. 3D only."
msgstr "每帧绘制的顶点数。只在3D中有效。"

#: doc/classes/Performance.xml:69
msgid "Material changes per frame. 3D only."
msgstr "每一帧的材质变化。仅限3D。"

#: doc/classes/Performance.xml:72
msgid "Shader changes per frame. 3D only."
msgstr "每一帧的着色器变化。仅限3D。"

#: doc/classes/Performance.xml:75
msgid "Render surface changes per frame. 3D only."
msgstr "每帧渲染面的变化。仅3D中有效。"

#: doc/classes/Performance.xml:78
msgid "Draw calls per frame. 3D only."
msgstr "每一帧的绘图调用。仅限3D。"

#: doc/classes/Performance.xml:81
#, fuzzy
msgid "Items or joined items drawn per frame."
msgstr "每帧绘制3D对象的数量。"

#: doc/classes/Performance.xml:84
#, fuzzy
msgid "Draw calls per frame."
msgstr "每一帧的绘图调用。仅限3D。"

#: doc/classes/Performance.xml:87 doc/classes/VisualServer.xml:3695
msgid ""
"The amount of video memory used, i.e. texture and vertex memory combined."
msgstr "使用的视频内存的数量,即纹理和顶点内存的总和。"

#: doc/classes/Performance.xml:90 doc/classes/VisualServer.xml:3698
msgid "The amount of texture memory used."
msgstr "使用的纹理内存的数量。"

#: doc/classes/Performance.xml:93 doc/classes/VisualServer.xml:3701
msgid "The amount of vertex memory used."
msgstr "使用的顶点内存数量。"

#: doc/classes/Performance.xml:96 doc/classes/VisualServer.xml:3692
#, fuzzy
msgid ""
"Unimplemented in the GLES2 and GLES3 rendering backends, always returns 0."
msgstr "未在GLES2呈现后端实现,总是返回0。"

#: doc/classes/Performance.xml:99
msgid "Number of active [RigidBody2D] nodes in the game."
msgstr "游戏中活跃的[RigidBody2D]节点数量。"

#: doc/classes/Performance.xml:102
msgid "Number of collision pairs in the 2D physics engine."
msgstr "2D物理引擎中的碰撞对数量。"

#: doc/classes/Performance.xml:105
msgid "Number of islands in the 2D physics engine."
msgstr "2D物理引擎中的岛屿数量。"

#: doc/classes/Performance.xml:108
#, fuzzy
msgid "Number of active [RigidBody] and [VehicleBody] nodes in the game."
msgstr "游戏中活跃的[RigidBody3D]和[VehicleBody3D]节点数量。"

#: doc/classes/Performance.xml:111
msgid "Number of collision pairs in the 3D physics engine."
msgstr "3D物理引擎中的碰撞对数量。"

#: doc/classes/Performance.xml:114
msgid "Number of islands in the 3D physics engine."
msgstr "3D物理引擎中的岛屿数量。"

#: doc/classes/Performance.xml:117
msgid "Output latency of the [AudioServer]."
msgstr "[AudioServer]的输出延迟。"

#: doc/classes/Performance.xml:120
msgid "Represents the size of the [enum Monitor] enum."
msgstr "表示[enum Monitor] enum的大小。"

#: doc/classes/PHashTranslation.xml:4
msgid "Optimized translation."
msgstr "优化的翻译。"

#: doc/classes/PHashTranslation.xml:7
msgid ""
"Optimized translation. Uses real-time compressed translations, which results "
"in very small dictionaries."
msgstr "优化翻译。使用实时压缩翻译,从而生成非常小的词典。"

#: doc/classes/PHashTranslation.xml:16
msgid ""
"Generates and sets an optimized translation from the given [Translation] "
"resource."
msgstr "从给定的[Translation]资源生成并设置优化的翻译。"

#: doc/classes/Physics2DDirectBodyState.xml:4
#, fuzzy
msgid "Direct access object to a physics body in the [Physics2DServer]."
msgstr "在[PhysicsServer2D]中直接访问物理体。"

#: doc/classes/Physics2DDirectBodyState.xml:7
#, fuzzy
msgid ""
"Provides direct access to a physics body in the [Physics2DServer], allowing "
"safe changes to physics properties. This object is passed via the direct "
"state callback of rigid/character bodies, and is intended for changing the "
"direct state of that body. See [method RigidBody2D._integrate_forces]."
msgstr ""
"提供对[PhysicsServer2D]中的物理体的直接访问,允许安全地改变物理属性。这个对象"
"是通过刚性/字符体的直接状态回调传递的,目的是为了改变该体的直接状态。参见"
"[method RigidBody2D._integrate_forces]。"

#: doc/classes/Physics2DDirectBodyState.xml:11
#: doc/classes/Physics2DDirectSpaceState.xml:11
#: doc/classes/PhysicsDirectBodyState.xml:11
#: doc/classes/PhysicsDirectSpaceState.xml:11 doc/classes/RayCast.xml:14
#: doc/classes/RayCast2D.xml:14 doc/classes/World.xml:10
#: doc/classes/World2D.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/physics/ray-casting.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/physics/ray-casting.html"

#: doc/classes/Physics2DDirectBodyState.xml:18 doc/classes/RigidBody2D.xml:30
msgid "Adds a constant directional force without affecting rotation."
msgstr "增加一个恒定的方向力,而不影响旋转。"

#: doc/classes/Physics2DDirectBodyState.xml:26
#: doc/classes/PhysicsDirectBodyState.xml:27 doc/classes/RigidBody2D.xml:38
msgid ""
"Adds a positioned force to the body. Both the force and the offset from the "
"body origin are in global coordinates."
msgstr "向实体添加有作用点的力。力和相对于主体原点的偏移都在全局坐标中。"

#: doc/classes/Physics2DDirectBodyState.xml:33 doc/classes/RigidBody2D.xml:45
msgid "Adds a constant rotational force."
msgstr "添加恒定的旋转力。"

#: doc/classes/Physics2DDirectBodyState.xml:40 doc/classes/RigidBody2D.xml:52
msgid "Applies a directional impulse without affecting rotation."
msgstr "在不影响旋转的情况下施加一个方向性的冲量。"

#: doc/classes/Physics2DDirectBodyState.xml:48
msgid ""
"Applies a positioned impulse to the body. An impulse is time-independent! "
"Applying an impulse every frame would result in a framerate-dependent force. "
"For this reason, it should only be used when simulating one-time impacts "
"(use the \"_force\" functions otherwise). The offset uses the rotation of "
"the global coordinate system, but is centered at the object's origin."
msgstr ""
"向物体施加有作用点的冲量。冲量是独立于时间的!每一帧施加一个冲量将导致一个与"
"帧率相关的力。出于这个原因,它应该只用于模拟一次性的影响(否则使用“ _ force”函"
"数)。偏移量使用了全局坐标系的旋转,但是以物体的原点为中心。"

#: doc/classes/Physics2DDirectBodyState.xml:55 doc/classes/RigidBody2D.xml:67
msgid "Applies a rotational impulse to the body."
msgstr "对物体施加旋转冲量。"

#: doc/classes/Physics2DDirectBodyState.xml:62
#: doc/classes/PhysicsDirectBodyState.xml:64
msgid "Returns the collider's [RID]."
msgstr "返回碰撞体的[RID]。"

#: doc/classes/Physics2DDirectBodyState.xml:69
#: doc/classes/PhysicsDirectBodyState.xml:71
msgid "Returns the collider's object id."
msgstr "返回碰撞体的对象id。"

#: doc/classes/Physics2DDirectBodyState.xml:76
msgid ""
"Returns the collider object. This depends on how it was created (will return "
"a scene node if such was used to create it)."
msgstr ""
"返回碰撞体对象。这取决于它是如何创建的(如果是被作为场景节点创建的,那么将返"
"回场景节点)。"

#: doc/classes/Physics2DDirectBodyState.xml:83
#: doc/classes/PhysicsDirectBodyState.xml:85
msgid "Returns the contact position in the collider."
msgstr "返回碰撞体中的接触位置。"

#: doc/classes/Physics2DDirectBodyState.xml:90
#: doc/classes/PhysicsDirectBodyState.xml:92
msgid "Returns the collider's shape index."
msgstr "返回碰撞体的形状索引。"

#: doc/classes/Physics2DDirectBodyState.xml:97
#, fuzzy
msgid ""
"Returns the collided shape's metadata. This metadata is different from "
"[method Object.get_meta], and is set with [method Physics2DServer."
"shape_set_data]."
msgstr ""
"返回碰撞形状的元数据。这个元数据与[method Object.get_meta]不同,它是用"
"[method PhysicsServer2D.shape_set_data]设置的。"

#: doc/classes/Physics2DDirectBodyState.xml:104
#: doc/classes/PhysicsDirectBodyState.xml:99
msgid "Returns the linear velocity vector at the collider's contact point."
msgstr "返回碰撞体接触点处的线速度矢量。"

#: doc/classes/Physics2DDirectBodyState.xml:110
msgid ""
"Returns the number of contacts this body has with other bodies.\n"
"[b]Note:[/b] By default, this returns 0 unless bodies are configured to "
"monitor contacts. See [member RigidBody2D.contact_monitor]."
msgstr ""
"返回此实体与其他实体的联系数。\n"
"[b] 注意:[/b]默认情况下,除非主体被设为监视联系人,否则返回0。请参阅 "
"[member RigidBody2D.contact_monitor]。"

#: doc/classes/Physics2DDirectBodyState.xml:118
#: doc/classes/PhysicsDirectBodyState.xml:120
msgid "Returns the local normal at the contact point."
msgstr "返回接触点处的局部法线。"

#: doc/classes/Physics2DDirectBodyState.xml:125
#: doc/classes/PhysicsDirectBodyState.xml:127
msgid "Returns the local position of the contact point."
msgstr "返回接触点的局部坐标系下的位置。"

#: doc/classes/Physics2DDirectBodyState.xml:132
#: doc/classes/PhysicsDirectBodyState.xml:134
msgid "Returns the local shape index of the collision."
msgstr "返回碰撞的局部坐标系下的形状索引。"

#: doc/classes/Physics2DDirectBodyState.xml:138
#: doc/classes/PhysicsDirectBodyState.xml:140
msgid "Returns the current state of the space, useful for queries."
msgstr "返回空间的当前状态,这对查询很有用。"

#: doc/classes/Physics2DDirectBodyState.xml:145
#: doc/classes/PhysicsDirectBodyState.xml:147
msgid ""
"Returns the body's velocity at the given relative position, including both "
"translation and rotation."
msgstr ""

#: doc/classes/Physics2DDirectBodyState.xml:151
#: doc/classes/PhysicsDirectBodyState.xml:153
msgid "Calls the built-in force integration code."
msgstr "调用内置的力集成代码。"

#: doc/classes/Physics2DDirectBodyState.xml:157
#: doc/classes/PhysicsDirectBodyState.xml:159 doc/classes/RigidBody2D.xml:101
msgid "The body's rotational velocity."
msgstr "物体的旋转速度。"

#: doc/classes/Physics2DDirectBodyState.xml:160
#: doc/classes/PhysicsDirectBodyState.xml:164
msgid "The inverse of the inertia of the body."
msgstr "物体惯性的倒数。"

#: doc/classes/Physics2DDirectBodyState.xml:163
#: doc/classes/PhysicsDirectBodyState.xml:167
msgid "The inverse of the mass of the body."
msgstr "物体质量的倒数。"

#: doc/classes/Physics2DDirectBodyState.xml:166
#: doc/classes/PhysicsDirectBodyState.xml:170 doc/classes/RigidBody2D.xml:146
msgid "The body's linear velocity."
msgstr "物体的线速度。"

#: doc/classes/Physics2DDirectBodyState.xml:169
#: doc/classes/PhysicsDirectBodyState.xml:175
msgid "If [code]true[/code], this body is currently sleeping (not active)."
msgstr "如果[code]true[/code],则该物体当前处于睡眠状态(不活动)。"

#: doc/classes/Physics2DDirectBodyState.xml:172
#: doc/classes/PhysicsDirectBodyState.xml:178
msgid "The timestep (delta) used for the simulation."
msgstr "用于模拟的时间步长(delta)。"

#: doc/classes/Physics2DDirectBodyState.xml:175
#: doc/classes/PhysicsDirectBodyState.xml:181
msgid ""
"The rate at which the body stops rotating, if there are not any other forces "
"moving it."
msgstr "物体停止转动的速度,如果没有任何其他力使它运动。"

#: doc/classes/Physics2DDirectBodyState.xml:178
#: doc/classes/PhysicsDirectBodyState.xml:184
msgid "The total gravity vector being currently applied to this body."
msgstr "这个物体上的总重力矢量。"

#: doc/classes/Physics2DDirectBodyState.xml:181
#: doc/classes/PhysicsDirectBodyState.xml:187
msgid ""
"The rate at which the body stops moving, if there are not any other forces "
"moving it."
msgstr "物体停止运动的速率,如果没有任何其他力使它运动。"

#: doc/classes/Physics2DDirectBodyState.xml:184
#: doc/classes/PhysicsDirectBodyState.xml:190
msgid "The body's transformation matrix."
msgstr "身体的变换矩阵。"

#: doc/classes/Physics2DDirectSpaceState.xml:4
#, fuzzy
msgid "Direct access object to a space in the [Physics2DServer]."
msgstr "直接访问[PhysicsServer2D]中的一个空间。"

#: doc/classes/Physics2DDirectSpaceState.xml:7
#, fuzzy
msgid ""
"Direct access object to a space in the [Physics2DServer]. It's used mainly "
"to do queries against objects and areas residing in a given space."
msgstr ""
"直接访问[PhysicsServer2D]中的一个空间。它主要用于对给定空间中的对象和区域进行"
"查询。"

#: doc/classes/Physics2DDirectSpaceState.xml:18
msgid ""
"Checks how far a [Shape2D] can move without colliding. All the parameters "
"for the query, including the shape and the motion, are supplied through a "
"[Physics2DShapeQueryParameters] object.\n"
"Returns an array with the safe and unsafe proportions (between 0 and 1) of "
"the motion. The safe proportion is the maximum fraction of the motion that "
"can be made without a collision. The unsafe proportion is the minimum "
"fraction of the distance that must be moved for a collision. If no collision "
"is detected a result of [code][1.0, 1.0][/code] will be returned.\n"
"[b]Note:[/b] Any [Shape2D]s that the shape is already colliding with e.g. "
"inside of, will be ignored. Use [method collide_shape] to determine the "
"[Shape2D]s that the shape is already colliding with."
msgstr ""

#: doc/classes/Physics2DDirectSpaceState.xml:28
#, fuzzy
msgid ""
"Checks the intersections of a shape, given through a "
"[Physics2DShapeQueryParameters] object, against the space. The resulting "
"array contains a list of points where the shape intersects another. Like "
"with [method intersect_shape], the number of returned results can be limited "
"to save processing time."
msgstr ""
"通过[PhysicsShapeQueryParameters2D]对象对空间检查形状的交集。生成的数组包含一"
"个与另一个形状相交的点列表。与[method intersect_shape]一样,可以限制返回结果"
"的数量,以节省处理时间。"

#: doc/classes/Physics2DDirectSpaceState.xml:35
#, fuzzy
msgid ""
"Checks the intersections of a shape, given through a "
"[Physics2DShapeQueryParameters] object, against the space. If it collides "
"with more than one shape, the nearest one is selected. If the shape did not "
"intersect anything, then an empty dictionary is returned instead.\n"
"[b]Note:[/b] This method does not take into account the [code]motion[/code] "
"property of the object. The returned object is a dictionary containing the "
"following fields:\n"
"[code]collider_id[/code]: The colliding object's ID.\n"
"[code]linear_velocity[/code]: The colliding object's velocity [Vector2]. If "
"the object is an [Area2D], the result is [code](0, 0)[/code].\n"
"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
"different from [method Object.get_meta], and is set with [method "
"Physics2DServer.shape_set_data].\n"
"[code]normal[/code]: The object's surface normal at the intersection point.\n"
"[code]point[/code]: The intersection point.\n"
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape."
msgstr ""
"检查通过[PhysicsShapeQueryParameters2D]对象给出的形状与空间的交点。如果它与一"
"个以上的形状发生碰撞,则选择最近的一个。如果该形状没有与任何东西相交,那么将"
"返回一个空字典。\n"
"[b]注意:[/b] 这个方法不考虑对象的[code]motion[/code]属性。返回的对象是一个包"
"含以下字段的字典。\n"
"[code]collider_id[/code]。碰撞对象的ID。\n"
"[code]linear_velocity[/code]。碰撞对象的速度[Vector2]。如果对象是一个"
"[Area2D],结果是[code](0, 0)[/code]。\n"
"[code]metadata[/code]。相交的形状的元数据。这个元数据与[method Object."
"get_meta]不同,它是用[method PhysicsServer2D.shape_set_data]设置的。\n"
"[code]normal[/code]。物体在交点处的表面法线。\n"
"[code]point[/code]。相交点。\n"
"[code]rid[/code]: 相交物体的[RID]。\n"
"[code]shape[/code]: 碰撞形状的形状索引。"

#: doc/classes/Physics2DDirectSpaceState.xml:55
#, fuzzy
msgid ""
"Checks whether a point is inside any solid shape. The shapes the point is "
"inside of are returned in an array containing dictionaries with the "
"following fields:\n"
"[code]collider[/code]: The colliding object.\n"
"[code]collider_id[/code]: The colliding object's ID.\n"
"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
"different from [method Object.get_meta], and is set with [method "
"Physics2DServer.shape_set_data].\n"
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape.\n"
"Additionally, the method can take an [code]exclude[/code] array of objects "
"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
"code] bitmask representing the physics layers to check in, or booleans to "
"determine if the ray should collide with [PhysicsBody]s or [Area]s, "
"respectively.\n"
"[b]Note:[/b] [ConcavePolygonShape2D]s and [CollisionPolygon2D]s in "
"[code]Segments[/code] build mode are not solid shapes. Therefore, they will "
"not be detected."
msgstr ""
"检查一个点是否在任何形状内。点所处的形状将以一个数组的形式返回,该数组包含有"
"以下字段的字典。\n"
"[code]collider[/code]。碰撞的对象。\n"
"[code]collider_id[/code]。碰撞对象的ID。\n"
"[code]metadata[/code]。相交形状的元数据。这个元数据与[method Object.get_meta]"
"不同,可以用[method PhysicsServer2D.shape_set_data]来设置。\n"
"[code]rid[/code]。相交物体的[RID]。\n"
"[code]shape[/code]。碰撞形状的形状索引。\n"
"此外,该方法可以接受一个[code]exclude[/code]数组,该数组中的对象或[RID]将被排"
"除在碰撞之外,一个[code]collision_mask[/code]位掩码代表要检查的物理层,或者布"
"尔值来确定射线是否应该分别与[PhysicsBody2D]或[Area2D]碰撞。"

#: doc/classes/Physics2DDirectSpaceState.xml:86
#, fuzzy
msgid ""
"Intersects a ray in a given space. The returned object is a dictionary with "
"the following fields:\n"
"[code]collider[/code]: The colliding object.\n"
"[code]collider_id[/code]: The colliding object's ID.\n"
"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
"different from [method Object.get_meta], and is set with [method "
"Physics2DServer.shape_set_data].\n"
"[code]normal[/code]: The object's surface normal at the intersection point.\n"
"[code]position[/code]: The intersection point.\n"
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape.\n"
"If the ray did not intersect anything, then an empty dictionary is returned "
"instead.\n"
"Additionally, the method can take an [code]exclude[/code] array of objects "
"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
"code] bitmask representing the physics layers to check in, or booleans to "
"determine if the ray should collide with [PhysicsBody]s or [Area]s, "
"respectively."
msgstr ""
"在一个给定的空间中与一条射线相交。返回的对象是一个具有下列字段的字典。\n"
"[code]collider[/code]。碰撞的对象。\n"
"[code]collider_id[/code]。碰撞对象的ID。\n"
"[code]metadata[/code]。相交形状的元数据。这个元数据与[method Object.get_meta]"
"不同,可以用[method PhysicsServer2D.shape_set_data]来设置。\n"
"[code]normal[/code]。物体在交点处的表面法线。\n"
"[code]position[/code]: 交叉点。\n"
"[code]rid[/code]: 相交对象的[RID]。\n"
"[code]shape[/code]: 碰撞形状的形状索引。\n"
"如果射线没有与任何物体相交,那么将返回一个空的字典。\n"
"此外,该方法可以接受一个[code]exclude[/code]数组,该数组中的对象或[RID]将被排"
"除在碰撞之外,一个[code]collision_mask[/code]位掩码代表要检查的物理层,或者布"
"尔值来确定射线是否应该分别与[PhysicsBody2D]或[Area2D]发生碰撞。"

#: doc/classes/Physics2DDirectSpaceState.xml:103
#, fuzzy
msgid ""
"Checks the intersections of a shape, given through a "
"[Physics2DShapeQueryParameters] object, against the space.\n"
"[b]Note:[/b] This method does not take into account the [code]motion[/code] "
"property of the object. The intersected shapes are returned in an array "
"containing dictionaries with the following fields:\n"
"[code]collider[/code]: The colliding object.\n"
"[code]collider_id[/code]: The colliding object's ID.\n"
"[code]metadata[/code]: The intersecting shape's metadata. This metadata is "
"different from [method Object.get_meta], and is set with [method "
"Physics2DServer.shape_set_data].\n"
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape.\n"
"The number of intersections can be limited with the [code]max_results[/code] "
"parameter, to reduce the processing time."
msgstr ""
"检查通过[PhysicsShapeQueryParameters2D]对象给出的形状与空间的交点。\n"
"[b]注意:[/b] 这个方法不考虑对象的[code]motion[/code]属性。相交的形状会以一个"
"数组的形式返回,该数组包含有以下字段的字典。\n"
"[code]collider[/code]。碰撞的对象。\n"
"[code]collider_id[/code]。碰撞对象的ID。\n"
"[code]metadata[/code]。相交形状的元数据。这个元数据与[method Object.get_meta]"
"不同,可以用[method PhysicsServer2D.shape_set_data]来设置。\n"
"[code]rid[/code]。相交物体的[RID]。\n"
"[code]shape[/code]。碰撞形状的形状索引。\n"
"可以用[code]max_results[/code]参数限制相交的数量,以减少处理时间。"

#: doc/classes/Physics2DServer.xml:4
msgid "Server interface for low-level 2D physics access."
msgstr "用于底层2D物理学访问的服务器接口。"

#: doc/classes/Physics2DServer.xml:7
#, fuzzy
msgid ""
"Physics2DServer is the server responsible for all 2D physics. It can create "
"many kinds of physics objects, but does not insert them on the node tree."
msgstr ""
"PhysicsServer2D是负责所有2D物理的服务器。它可以创建多种物理对象,但不会将它们"
"插入节点树。"

#: doc/classes/Physics2DServer.xml:19 doc/classes/PhysicsServer.xml:19
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 ""
"向区域添加一个形状,以及一个变换矩阵。形状通常通过它们的索引来引用,因此您应"
"该跟踪哪个形状具有给定的索引。"

#: doc/classes/Physics2DServer.xml:34 doc/classes/Physics2DServer.xml:304
#: doc/classes/PhysicsServer.xml:27 doc/classes/PhysicsServer.xml:298
msgid ""
"Assigns the area to a descendant of [Object], so it can exist in the node "
"tree."
msgstr "将区域分配给[Object]的子类,因此它可以存在于节点树中。"

#: doc/classes/Physics2DServer.xml:41 doc/classes/PhysicsServer.xml:34
msgid ""
"Removes all shapes from an area. It does not delete the shapes, so they can "
"be reassigned later."
msgstr "从一个区域移除所有形状。它不会删除形状,因此它们可以稍后重新分配。"

#: doc/classes/Physics2DServer.xml:47
msgid ""
"Creates an [Area2D]. After creating an [Area2D] with this method, assign it "
"to a space using [method area_set_space] to use the created [Area2D] in the "
"physics world."
msgstr ""

#: doc/classes/Physics2DServer.xml:60 doc/classes/Physics2DServer.xml:372
#: doc/classes/PhysicsServer.xml:47 doc/classes/PhysicsServer.xml:362
msgid "Gets the instance ID of the object the area is assigned to."
msgstr "获取区域分配给的对象的实例ID。"

#: doc/classes/Physics2DServer.xml:68
msgid ""
"Returns an area parameter value. See [enum AreaParameter] for a list of "
"available parameters."
msgstr "返回区域参数值。有关可用参数的列表,请参见[enum AreaParameter]。"

#: doc/classes/Physics2DServer.xml:76 doc/classes/PhysicsServer.xml:63
msgid "Returns the [RID] of the nth shape of an area."
msgstr "返回区域的第n个形状的[RID]。"

#: doc/classes/Physics2DServer.xml:83 doc/classes/PhysicsServer.xml:70
msgid "Returns the number of shapes assigned to an area."
msgstr "返回分配给区域的形状数量。"

#: doc/classes/Physics2DServer.xml:91 doc/classes/PhysicsServer.xml:78
msgid "Returns the transform matrix of a shape within an area."
msgstr "返回区域内形状的变换矩阵。"

#: doc/classes/Physics2DServer.xml:98 doc/classes/PhysicsServer.xml:85
msgid "Returns the space assigned to the area."
msgstr "返回分配给该区域的空间。"

#: doc/classes/Physics2DServer.xml:105 doc/classes/PhysicsServer.xml:92
msgid "Returns the space override mode for the area."
msgstr "返回该区域的空间覆盖模式。"

#: doc/classes/Physics2DServer.xml:112 doc/classes/PhysicsServer.xml:99
msgid "Returns the transform matrix for an area."
msgstr "返回区域的变换矩阵。"

#: doc/classes/Physics2DServer.xml:120 doc/classes/PhysicsServer.xml:114
msgid ""
"Removes a shape from an area. It does not delete the shape, so it can be "
"reassigned later."
msgstr "从区域中移除一个形状。它不会删除形状,因此可以稍后重新分配。"

#: doc/classes/Physics2DServer.xml:136 doc/classes/PhysicsServer.xml:130
msgid "Assigns the area to one or many physics layers."
msgstr "将区域分配给一个或多个物理层。"

#: doc/classes/Physics2DServer.xml:144 doc/classes/PhysicsServer.xml:138
msgid "Sets which physics layers the area will monitor."
msgstr "设置区域将监控的物理层。"

#: doc/classes/Physics2DServer.xml:153 doc/classes/PhysicsServer.xml:147
msgid ""
"Sets the function to call when any body/area enters or exits the area. This "
"callback will be called for any object interacting with the area, and takes "
"five parameters:\n"
"1: [constant AREA_BODY_ADDED] or [constant AREA_BODY_REMOVED], depending on "
"whether the object entered or exited the area.\n"
"2: [RID] of the object that entered/exited the area.\n"
"3: Instance ID of the object that entered/exited the area.\n"
"4: The shape index of the object that entered/exited the area.\n"
"5: The shape index of the area where the object entered/exited."
msgstr ""
"设置当任何主体/区域进入或退出该区域时调用的函数。这个回调函数将被任何与区域交"
"互的对象调用,并接受5个参数:\n"
"1: [constant AREA_BODY_ADDED]或[constant AREA_BODY_REMOVED],取决于对象是否进"
"入或退出该区域。\n"
"2:进入/退出该区域对象的[RID]。\n"
"3:进入/退出该区域对象的实例ID。\n"
"4:进入/离开该区域的物体的形状指数。\n"
"5:物体进入/离开区域的形状指数。"

#: doc/classes/Physics2DServer.xml:174
msgid ""
"Sets the value for an area parameter. See [enum AreaParameter] for a list of "
"available parameters."
msgstr "设置区域参数的值。有关可用参数的列表,请参见[enum areparameter]。"

#: doc/classes/Physics2DServer.xml:183 doc/classes/PhysicsServer.xml:185
msgid ""
"Substitutes a given area shape by another. The old shape is selected by its "
"index, the new one by its [RID]."
msgstr ""
"用另一种形状代替一种形状。旧的形状由它的索引选择,新的形状由它的[RID]选择。"

#: doc/classes/Physics2DServer.xml:192
msgid "Disables a given shape in an area."
msgstr "在区域中禁用一个给定的形状。"

#: doc/classes/Physics2DServer.xml:201 doc/classes/PhysicsServer.xml:202
msgid "Sets the transform matrix for an area shape."
msgstr "设置区域形状的变换矩阵。"

#: doc/classes/Physics2DServer.xml:209 doc/classes/PhysicsServer.xml:210
msgid "Assigns a space to the area."
msgstr "为该区域指定一个空间。"

#: doc/classes/Physics2DServer.xml:217
msgid ""
"Sets the space override mode for the area. See [enum AreaSpaceOverrideMode] "
"for a list of available modes."
msgstr ""
"为该区域设置空间覆盖模式。请参阅[enum AreaSpaceOverrideMode]获取可用模式的列"
"表。"

#: doc/classes/Physics2DServer.xml:225 doc/classes/PhysicsServer.xml:226
msgid "Sets the transform matrix for an area."
msgstr "设置区域的变换矩阵。"

#: doc/classes/Physics2DServer.xml:240 doc/classes/PhysicsServer.xml:241
msgid "Adds a body to the list of bodies exempt from collisions."
msgstr "将一个物体添加到免于碰撞的物体列表中。"

#: doc/classes/Physics2DServer.xml:249
msgid ""
"Adds a positioned force to the applied force and torque. As with [method "
"body_apply_impulse], both the force and the offset from the body origin are "
"in global coordinates. A force differs from an impulse in that, while the "
"two are forces, the impulse clears itself after being applied."
msgstr ""
"在施加的力和扭矩上添加一个有作用点的力。与[method body_apply_impulse]一样,力"
"和物体原点的偏移量都在全局坐标中。力与脉冲的不同之处在于,虽然两者都是力,但"
"脉冲在被施加后会自动清除。"

#: doc/classes/Physics2DServer.xml:259 doc/classes/PhysicsServer.xml:259
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 ""
"添加一个形状到身体,以及一个变换矩阵。形状通常通过它们的索引来引用,因此您应"
"该跟踪哪个形状具有给定的索引。"

#: doc/classes/Physics2DServer.xml:282
msgid ""
"Adds a positioned impulse to the applied force and torque. Both the force "
"and the offset from the body origin are in global coordinates."
msgstr ""
"在施加的力和扭矩上增加一个有作用点的冲量。力和物体原点的偏移量都在全局坐标"
"中。"

#: doc/classes/Physics2DServer.xml:311 doc/classes/PhysicsServer.xml:305
msgid "Removes all shapes from a body."
msgstr "从物体上移除所有碰撞形状。"

#: doc/classes/Physics2DServer.xml:317
msgid "Creates a physics body."
msgstr "创建一个物理体。"

#: doc/classes/Physics2DServer.xml:330 doc/classes/PhysicsServer.xml:320
msgid "Returns the physics layer or layers a body belongs to."
msgstr "返回物体所属的物理层或层。"

#: doc/classes/Physics2DServer.xml:337
msgid "Returns the physics layer or layers a body can collide with."
msgstr "返回物体可以碰撞的物理层或层。"

#: doc/classes/Physics2DServer.xml:344
msgid "Returns the continuous collision detection mode."
msgstr "返回连续碰撞检测模式。"

#: doc/classes/Physics2DServer.xml:351
#, fuzzy
msgid "Returns the [Physics2DDirectBodyState] of the body."
msgstr "返回body的[PhysicsDirectBodyState2D]。"

#: doc/classes/Physics2DServer.xml:358 doc/classes/PhysicsServer.xml:348
msgid ""
"Returns the maximum contacts that can be reported. See [method "
"body_set_max_contacts_reported]."
msgstr "返回可报告的最大联系数。参见[method body_set_max_contacts_reported]。"

#: doc/classes/Physics2DServer.xml:365 doc/classes/PhysicsServer.xml:355
msgid "Returns the body mode."
msgstr "返回物体模式。"

#: doc/classes/Physics2DServer.xml:380
msgid ""
"Returns the value of a body parameter. See [enum BodyParameter] for a list "
"of available parameters."
msgstr "返回物体参数的值。请参阅[enum BodyParameter]获取可用参数列表。"

#: doc/classes/Physics2DServer.xml:388 doc/classes/PhysicsServer.xml:378
msgid "Returns the [RID] of the nth shape of a body."
msgstr "返回body的第n个碰撞形状的[RID]。"

#: doc/classes/Physics2DServer.xml:395 doc/classes/PhysicsServer.xml:385
msgid "Returns the number of shapes assigned to a body."
msgstr "返回分配给物体的碰撞形状数量。"

#: doc/classes/Physics2DServer.xml:403
msgid "Returns the metadata of a shape of a body."
msgstr "返回物体碰撞形状的元数据。"

#: doc/classes/Physics2DServer.xml:411 doc/classes/PhysicsServer.xml:393
msgid "Returns the transform matrix of a body shape."
msgstr "返回物体碰撞形状的变换矩阵。"

#: doc/classes/Physics2DServer.xml:418 doc/classes/PhysicsServer.xml:400
msgid "Returns the [RID] of the space assigned to a body."
msgstr "返回分配给物体的空间的[RID]。"

#: doc/classes/Physics2DServer.xml:426 doc/classes/PhysicsServer.xml:408
msgid "Returns a body state."
msgstr "返回物体的状态。"

#: doc/classes/Physics2DServer.xml:433 doc/classes/PhysicsServer.xml:429
msgid ""
"Returns whether a body uses a callback function to calculate its own physics "
"(see [method body_set_force_integration_callback])."
msgstr ""
"返回一个body是否使用回调函数来计算它自己的物理值(参见"
"body_set_force_integration_callback方法)。"

#: doc/classes/Physics2DServer.xml:441
msgid "Removes a body from the list of bodies exempt from collisions."
msgstr "从免于碰撞的物体列表中移除一个物体。"

#: doc/classes/Physics2DServer.xml:449 doc/classes/PhysicsServer.xml:453
msgid ""
"Removes a shape from a body. The shape is not deleted, so it can be reused "
"afterwards."
msgstr ""
"从物体上移除一个碰撞形状。碰撞形状不会被从内存中删除,所以它可以在之后被重复"
"使用。"

#: doc/classes/Physics2DServer.xml:457 doc/classes/PhysicsServer.xml:469
#: doc/classes/RigidBody.xml:105
msgid ""
"Sets an axis velocity. The velocity in the given vector axis will be set as "
"the given vector length. This is useful for jumping behavior."
msgstr ""
"设置轴速度。给定向量轴上的速度将被设置为给定向量长度。这对跳跃行为很有用。"

#: doc/classes/Physics2DServer.xml:465 doc/classes/PhysicsServer.xml:477
msgid "Sets the physics layer or layers a body belongs to."
msgstr "设置物体所属的物理层或层。"

#: doc/classes/Physics2DServer.xml:473 doc/classes/PhysicsServer.xml:485
msgid "Sets the physics layer or layers a body can collide with."
msgstr "设置物理层或身体可以碰撞的层。"

#: doc/classes/Physics2DServer.xml:481
msgid ""
"Sets the continuous collision detection mode using one of the [enum CCDMode] "
"constants.\n"
"Continuous collision detection tries to predict where a moving body will "
"collide, instead of moving it and correcting its movement if it collided."
msgstr ""
"设置使用[enum CCDMode]常量之一的连续碰撞检测模式。\n"
"连续碰撞检测试图预测一个运动体将在哪里发生碰撞,而不是移动它并在它发生碰撞时"
"纠正其运动。"

#: doc/classes/Physics2DServer.xml:492 doc/classes/PhysicsServer.xml:504
msgid ""
"Sets the function used to calculate physics for an object, if that object "
"allows it (see [method body_set_omit_force_integration])."
msgstr ""
"设置用于计算物体物理学的函数,如果该物体允许的话(见[method "
"body_set_omit_force_integration])。"

#: doc/classes/Physics2DServer.xml:500 doc/classes/PhysicsServer.xml:519
msgid ""
"Sets the maximum contacts to report. Bodies can keep a log of the contacts "
"with other bodies, this is enabled by setting the maximum amount of contacts "
"reported to a number greater than 0."
msgstr ""
"设置要报告的最大关联数。物体可以保存与其他物体的关联日志,当最大数量的关联报"
"告的数字大于 0 时才启用此功能。"

#: doc/classes/Physics2DServer.xml:508
msgid "Sets the body mode using one of the [enum BodyMode] constants."
msgstr "使用[enum BodyMode]常量之一设置body模式。"

#: doc/classes/Physics2DServer.xml:516 doc/classes/PhysicsServer.xml:535
msgid ""
"Sets whether a body uses a callback function to calculate its own physics "
"(see [method body_set_force_integration_callback])."
msgstr ""
"设置一个物体是否使用回调函数来计算它自己的物理(参见 [method "
"body_set_force_integration_callback])。"

#: doc/classes/Physics2DServer.xml:525
msgid ""
"Sets a body parameter. See [enum BodyParameter] for a list of available "
"parameters."
msgstr "设置主体参数。请参阅[enum BodyParameter]获取可用参数列表。"

#: doc/classes/Physics2DServer.xml:534 doc/classes/PhysicsServer.xml:561
msgid ""
"Substitutes a given body shape by another. The old shape is selected by its "
"index, the new one by its [RID]."
msgstr ""
"用一个给定的物体形状代替另一个。旧的形状是通过其索引选择的,新的是通过其[RID]"
"选择的。"

#: doc/classes/Physics2DServer.xml:544
msgid ""
"Enables one way collision on body if [code]enable[/code] is [code]true[/"
"code]."
msgstr "如果[code]enable[/code]为[code]true[/code],则在body上启用单向碰撞。"

#: doc/classes/Physics2DServer.xml:553
msgid "Disables shape in body if [code]disable[/code] is [code]true[/code]."
msgstr "如果[code]disable[/code]为[code]true[/code],则在body中禁用形状。"

#: doc/classes/Physics2DServer.xml:562
msgid ""
"Sets metadata of a shape within a body. This metadata is different from "
"[method Object.set_meta], and can be retrieved on shape queries."
msgstr ""
"设置一个体中的形状的元数据。这个元数据与[method Object.set_meta]不同,可以在"
"形状查询中检索。"

#: doc/classes/Physics2DServer.xml:571 doc/classes/PhysicsServer.xml:578
msgid "Sets the transform matrix for a body shape."
msgstr "设置物体形状的变换矩阵。"

#: doc/classes/Physics2DServer.xml:579 doc/classes/PhysicsServer.xml:586
msgid "Assigns a space to the body (see [method space_create])."
msgstr "给物体分配一个空间(参见[method space_create])。"

#: doc/classes/Physics2DServer.xml:588
msgid ""
"Sets a body state using one of the [enum BodyState] constants.\n"
"Note that the method doesn't take effect immediately. The state will change "
"on the next physics frame."
msgstr ""

#: doc/classes/Physics2DServer.xml:603
#, fuzzy
msgid ""
"Returns [code]true[/code] if a collision would result from moving in the "
"given direction from a given point in space. Margin increases the size of "
"the shapes involved in the collision detection. [Physics2DTestMotionResult] "
"can be passed to return additional information in."
msgstr ""
"如果从空间中的给定点向给定方向移动会导致碰撞,则返回[code]true[/code]。Margin"
"增加参与碰撞检测的形状的大小。可以通过[PhysicsTestMotionResult2D]来返回额外的"
"信息。设置体中形状的元数据。这个元数据与[方法Object.set_meta]不同,可以在形状"
"查询中检索到。"

#: doc/classes/Physics2DServer.xml:633
msgid ""
"Creates a damped spring joint between two bodies. If not specified, the "
"second body is assumed to be the joint itself."
msgstr ""
"在两个体之间创建一个阻尼弹簧关节。如果没有指定,第二个体将被假定为关节本身。"

#: doc/classes/Physics2DServer.xml:641
#, fuzzy
msgid "Returns the value of a damped spring joint parameter."
msgstr "返回关节参数的值。"

#: doc/classes/Physics2DServer.xml:650
#, fuzzy
msgid ""
"Sets a damped spring joint parameter. See [enum DampedStringParam] for a "
"list of available parameters."
msgstr ""
"设置一个阻尼弹簧关节参数。参见[enum DampedSpringParam]获取可用参数列表。"

#: doc/classes/Physics2DServer.xml:657
#, fuzzy
msgid ""
"Destroys any of the objects created by Physics2DServer. If the [RID] passed "
"is not one of the objects that can be created by Physics2DServer, an error "
"will be sent to the console."
msgstr ""
"销毁任何由PhysicsServer2D创建的对象。如果传入的[RID]不是PhysicsServer2D可以创"
"建的对象之一,则会向控制台发送一个错误。"

#: doc/classes/Physics2DServer.xml:664
msgid ""
"Returns information about the current state of the 2D physics engine. See "
"[enum ProcessInfo] for a list of available states."
msgstr ""
"返回关于2D物理引擎当前状态的信息。有关可用状态列表,请参见[enum "
"ProcessInfo]。"

#: doc/classes/Physics2DServer.xml:675
msgid ""
"Creates a groove joint between two bodies. If not specified, the bodies are "
"assumed to be the joint itself."
msgstr "在两个物体之间形成凹槽连接。如果没有指定,则假定物体是关节本身。"

#: doc/classes/Physics2DServer.xml:683
msgid "Returns the value of a joint parameter."
msgstr "返回关节参数的值。"

#: doc/classes/Physics2DServer.xml:690
msgid "Returns a joint's type (see [enum JointType])."
msgstr "返回一个关节的类型(见[enum JointType])。"

#: doc/classes/Physics2DServer.xml:699
msgid ""
"Sets a joint parameter. See [enum JointParam] for a list of available "
"parameters."
msgstr "设置关节参数。有关可用参数的列表,请参见[enum JointParam]。"

#: doc/classes/Physics2DServer.xml:713
msgid ""
"Creates a pin joint between two bodies. If not specified, the second body is "
"assumed to be the joint itself."
msgstr ""
"在两个体之间创建一个针状关节。如果没有指定,第二个物体将被假定为关节本身。"

#: doc/classes/Physics2DServer.xml:735
msgid "Activates or deactivates the 2D physics engine."
msgstr "激活或停用2D物理引擎。"

#: doc/classes/Physics2DServer.xml:742
msgid ""
"Sets the amount of iterations for calculating velocities of colliding "
"bodies. The greater the amount of iterations, the more accurate the "
"collisions will be. However, a greater amount of iterations requires more "
"CPU power, which can decrease performance. The default value is [code]8[/"
"code]."
msgstr ""

#: doc/classes/Physics2DServer.xml:749 doc/classes/PhysicsServer.xml:859
msgid "Returns the shape data."
msgstr "返回形状数据。"

#: doc/classes/Physics2DServer.xml:756
msgid "Returns a shape's type (see [enum ShapeType])."
msgstr "返回一个形状的类型(参见[enum ShapeType])。"

#: doc/classes/Physics2DServer.xml:764 doc/classes/PhysicsServer.xml:874
msgid ""
"Sets the shape data that defines its shape and size. The data to be passed "
"depends on the kind of shape created [method shape_get_type]."
msgstr ""
"设置定义形状和大小的形状数据。要传递的数据取决于创建的形状的类型[method "
"shape_get_type]。"

#: doc/classes/Physics2DServer.xml:770 doc/classes/PhysicsServer.xml:897
msgid ""
"Creates a space. A space is a collection of parameters for the physics "
"engine that can be assigned to an area or a body. It can be assigned to an "
"area with [method area_set_space], or to a body with [method body_set_space]."
msgstr ""
"创建一个空间。空间是物理引擎的参数集合,可以分配给区域或主体。它可以通过"
"[method area_set_space]分配给一个区域,或者通过[method body_set_space]分配给"
"一个主体。"

#: doc/classes/Physics2DServer.xml:777
#, fuzzy
msgid ""
"Returns the state of a space, a [Physics2DDirectSpaceState]. This object can "
"be used to make collision/intersection queries."
msgstr ""
"返回一个空间的状态,一个[PhysicsDirectSpaceState2D]。这个对象可以用来进行碰"
"撞/交集查询。"

#: doc/classes/Physics2DServer.xml:785 doc/classes/PhysicsServer.xml:912
msgid "Returns the value of a space parameter."
msgstr "返回空间参数的值。"

#: doc/classes/Physics2DServer.xml:792 doc/classes/PhysicsServer.xml:919
msgid "Returns whether the space is active."
msgstr "返回该空间是否是活动的。"

#: doc/classes/Physics2DServer.xml:800 doc/classes/PhysicsServer.xml:927
msgid ""
"Marks a space as active. It will not have an effect, unless it is assigned "
"to an area or body."
msgstr "将空间标记为活动空间。它不会有效果,除非它被分配到一个区域或物体。"

#: doc/classes/Physics2DServer.xml:809
msgid ""
"Sets the value for a space parameter. See [enum SpaceParameter] for a list "
"of available parameters."
msgstr "设置空间参数的值。参见[enum SpaceParameter]获取可用参数列表。"

#: doc/classes/Physics2DServer.xml:815 doc/classes/PhysicsServer.xml:1278
msgid ""
"Constant to set/get the maximum distance a pair of bodies has to move before "
"their collision status has to be recalculated."
msgstr "常数,用于设置/获取一对物体在其碰撞状态被重新计算之前的最大移动距离。"

#: doc/classes/Physics2DServer.xml:818 doc/classes/PhysicsServer.xml:1281
msgid ""
"Constant to set/get the maximum distance a shape can be from another before "
"they are considered separated."
msgstr "常数,用于设置/获取形状在被视为分离之前与另一形状之间的最大距离。"

#: doc/classes/Physics2DServer.xml:821 doc/classes/PhysicsServer.xml:1284
msgid ""
"Constant to set/get the maximum distance a shape can penetrate another shape "
"before it is considered a collision."
msgstr "常数,用来设置/得到一个形状在被认为碰撞之前穿透另一个形状的最大距离。"

#: doc/classes/Physics2DServer.xml:824 doc/classes/PhysicsServer.xml:1287
msgid ""
"Constant to set/get the threshold linear velocity of activity. A body marked "
"as potentially inactive for both linear and angular velocity will be put to "
"sleep after the time given."
msgstr ""
"常数,用于设置/获取活跃的阈值线速度。一个被标记为线性速度和角速度都可能不活跃"
"的物体将在给定的时间后进入睡眠状态。"

#: doc/classes/Physics2DServer.xml:827 doc/classes/PhysicsServer.xml:1290
msgid ""
"Constant to set/get the threshold angular velocity of activity. A body "
"marked as potentially inactive for both linear and angular velocity will be "
"put to sleep after the time given."
msgstr ""
"常数,用于设置/获取活动的阈值角速度。一个被标记为线性和角速度都可能不活跃的物"
"体,在给定的时间后将会进入睡眠状态。"

#: doc/classes/Physics2DServer.xml:830 doc/classes/PhysicsServer.xml:1293
msgid ""
"Constant to set/get the maximum time of activity. A body marked as "
"potentially inactive for both linear and angular velocity will be put to "
"sleep after this time."
msgstr ""
"常数来设置/获得最大的活动时间。一个被标记为线速度和角速度都可能不活动的物体,"
"在这个时间之后将被置入睡眠状态。"

#: doc/classes/Physics2DServer.xml:833 doc/classes/PhysicsServer.xml:1298
msgid ""
"Constant to set/get the default solver bias for all physics constraints. A "
"solver bias is a factor controlling how much two objects \"rebound\", after "
"violating a constraint, to avoid leaving them in that state because of "
"numerical imprecision."
msgstr ""
"常数,用于设置/获取所有物理约束的默认求解器偏置。解算器偏差是一个控制两个物体"
"在违反约束后 \"反弹 \"程度的因素,以避免由于数值不精确而使它们处于这种状态。"

#: doc/classes/Physics2DServer.xml:836
msgid ""
"This is the constant for creating line shapes. A line shape is an infinite "
"line with an origin point, and a normal. Thus, it can be used for front/"
"behind checks."
msgstr ""
"这是创建线型形状的常量。线条形状是一条具有原点和法线的无限长直线。因此,它可"
"以被用于前后检查。"

#: doc/classes/Physics2DServer.xml:841
msgid ""
"This is the constant for creating segment shapes. A segment shape is a line "
"from a point A to a point B. It can be checked for intersections."
msgstr ""
"这是创建线段形状的常量。线段形状是一条从A点到B点的线,它可以被检查交点。"

#: doc/classes/Physics2DServer.xml:844
msgid ""
"This is the constant for creating circle shapes. A circle shape only has a "
"radius. It can be used for intersections and inside/outside checks."
msgstr ""
"这是创建圆形的常量。一个圆的形状只有一个半径。它可以用于交点和内/外侧检查。"

#: doc/classes/Physics2DServer.xml:847
msgid ""
"This is the constant for creating rectangle shapes. A rectangle shape is "
"defined by a width and a height. It can be used for intersections and inside/"
"outside checks."
msgstr ""
"这是用于创建矩形形状的常量。矩形形状是由宽度和高度定义的。它可以用于交点和内/"
"外侧检查。"

#: doc/classes/Physics2DServer.xml:850
msgid ""
"This is the constant for creating capsule shapes. A capsule shape is defined "
"by a radius and a length. It can be used for intersections and inside/"
"outside checks."
msgstr ""
"这是创建胶囊形状的常量。一个胶囊形状由一个半径和一个长度定义。它可以用于交点"
"和内/外侧检查。"

#: doc/classes/Physics2DServer.xml:853
msgid ""
"This is the constant for creating convex polygon shapes. A polygon is "
"defined by a list of points. It can be used for intersections and inside/"
"outside checks. Unlike the [member CollisionPolygon2D.polygon] property, "
"polygons modified with [method shape_set_data] do not verify that the points "
"supplied form is a convex polygon."
msgstr ""
"这是用于创建凸多边形的常量。一个多边形是由一个点的列表定义的。它可以用于交点"
"和内/外侧检查。与[member CollisionPolygon2D.polygon]属性不同,用[method "
"shape_set_data]修改的多边形并不验证所提供的点的形式是一个凸形多边形。"

#: doc/classes/Physics2DServer.xml:856
msgid ""
"This is the constant for creating concave polygon shapes. A polygon is "
"defined by a list of points. It can be used for intersections checks, but "
"not for inside/outside checks."
msgstr ""
"这是创建凹形多边形的常量。一个多边形是由一个点的列表定义的。它可以用于交叉点"
"检查,但不能用于内/外侧检查。"

#: doc/classes/Physics2DServer.xml:859 doc/classes/PhysicsServer.xml:1173
msgid ""
"This constant is used internally by the engine. Any attempt to create this "
"kind of shape results in an error."
msgstr "这个常数是由引擎内部使用的。任何试图创建这种形状的行为都会导致错误。"

#: doc/classes/Physics2DServer.xml:862 doc/classes/PhysicsServer.xml:1176
msgid "Constant to set/get gravity strength in an area."
msgstr "在一个地区设置/获得重力强度的常数。"

#: doc/classes/Physics2DServer.xml:865 doc/classes/PhysicsServer.xml:1179
msgid "Constant to set/get gravity vector/center in an area."
msgstr "在一个区域内设置/获取重力矢量/中心的常数。"

#: doc/classes/Physics2DServer.xml:868 doc/classes/PhysicsServer.xml:1182
msgid ""
"Constant to set/get whether the gravity vector of an area is a direction, or "
"a center point."
msgstr "常数用于设置/获取一个区域的重力矢量是一个方向,还是一个中心点。"

#: doc/classes/Physics2DServer.xml:871 doc/classes/PhysicsServer.xml:1185
msgid ""
"Constant to set/get the falloff factor for point gravity of an area. The "
"greater this value is, the faster the strength of gravity decreases with the "
"square of distance."
msgstr ""
"常数,用于设置/获取一个区域的点重力的衰减系数。这个值越大,重力的强度随着距离"
"的平方下降得越快。"

#: doc/classes/Physics2DServer.xml:874 doc/classes/PhysicsServer.xml:1188
msgid ""
"This constant was used to set/get the falloff factor for point gravity. It "
"has been superseded by [constant AREA_PARAM_GRAVITY_DISTANCE_SCALE]."
msgstr ""
"这个常数用于设置/获取点重力的衰减因子。它已经被[constant "
"AREA_PARAM_GRAVITY_DISTANCE_SCALE]所取代了。"

#: doc/classes/Physics2DServer.xml:877 doc/classes/PhysicsServer.xml:1191
msgid "Constant to set/get the linear dampening factor of an area."
msgstr "常数,用于设置/获取一个区域的线性阻尼系数。"

#: doc/classes/Physics2DServer.xml:880 doc/classes/PhysicsServer.xml:1194
msgid "Constant to set/get the angular dampening factor of an area."
msgstr "常数,用于设置/获取一个区域的角度阻尼系数。"

#: doc/classes/Physics2DServer.xml:883 doc/classes/PhysicsServer.xml:1197
msgid "Constant to set/get the priority (order of processing) of an area."
msgstr "常数,用于设置/获取一个区域的优先级(处理顺序)。"

#: doc/classes/Physics2DServer.xml:886 doc/classes/PhysicsServer.xml:1200
msgid ""
"This area does not affect gravity/damp. These are generally areas that exist "
"only to detect collisions, and objects entering or exiting them."
msgstr ""
"这个区域不影响重力/阻尼。这些一般都是只存在于检测碰撞的区域,以及进入或离开它"
"们的物体。"

#: doc/classes/Physics2DServer.xml:889 doc/classes/PhysicsServer.xml:1203
msgid ""
"This area adds its gravity/damp values to whatever has been calculated so "
"far. This way, many overlapping areas can combine their physics to make "
"interesting effects."
msgstr ""
"这个区域把它的重力/阻尼加到迄今为止已经计算过的任何东西上。这样一来,许多重叠"
"的区域可以结合它们的物理学来做出有趣的效果。"

#: doc/classes/Physics2DServer.xml:892 doc/classes/PhysicsServer.xml:1206
msgid ""
"This area adds its gravity/damp values to whatever has been calculated so "
"far. Then stops taking into account the rest of the areas, even the default "
"one."
msgstr ""
"这个区域把它的重力/阻尼加到迄今为止已经计算出来的任何东西上。然后停止考虑其余"
"的区域,甚至默认的区域。"

#: doc/classes/Physics2DServer.xml:895 doc/classes/PhysicsServer.xml:1209
msgid ""
"This area replaces any gravity/damp, even the default one, and stops taking "
"into account the rest of the areas."
msgstr "这个区域取代了任何重力/阻尼,甚至是默认的,并停止考虑其余的区域。"

#: doc/classes/Physics2DServer.xml:898 doc/classes/PhysicsServer.xml:1212
msgid ""
"This area replaces any gravity/damp calculated so far, but keeps calculating "
"the rest of the areas, down to the default one."
msgstr ""
"这个区域取代了到目前为止计算的任何重力/阻尼,但继续计算其余的区域,直到默认的"
"区域。"

#: doc/classes/Physics2DServer.xml:901 doc/classes/PhysicsServer.xml:1215
msgid "Constant for static bodies."
msgstr "StaticBody 的常量。"

#: doc/classes/Physics2DServer.xml:904 doc/classes/PhysicsServer.xml:1218
msgid "Constant for kinematic bodies."
msgstr "KinematicBody 的常数。"

#: doc/classes/Physics2DServer.xml:907 doc/classes/PhysicsServer.xml:1221
msgid "Constant for rigid bodies."
msgstr "RigidBody 的常数。"

#: doc/classes/Physics2DServer.xml:910 doc/classes/PhysicsServer.xml:1224
msgid ""
"Constant for rigid bodies in character mode. In this mode, a body can not "
"rotate, and only its linear velocity is affected by physics."
msgstr ""
"角色模式下的刚体的常数。在这种模式下,物体不能旋转,只有它的线速度受物理学影"
"响。"

#: doc/classes/Physics2DServer.xml:913 doc/classes/PhysicsServer.xml:1227
msgid "Constant to set/get a body's bounce factor."
msgstr "常数,用于设置/获取物体的反弹系数。"

#: doc/classes/Physics2DServer.xml:916 doc/classes/PhysicsServer.xml:1230
msgid "Constant to set/get a body's friction."
msgstr "常数,用于设置/获取一个物体的摩擦力。"

#: doc/classes/Physics2DServer.xml:919 doc/classes/PhysicsServer.xml:1233
msgid "Constant to set/get a body's mass."
msgstr "设置/获取一个物体的质量的常数。"

#: doc/classes/Physics2DServer.xml:922
msgid "Constant to set/get a body's inertia."
msgstr "常数,用于设置/获取一个物体的惯性。"

#: doc/classes/Physics2DServer.xml:925 doc/classes/PhysicsServer.xml:1236
msgid "Constant to set/get a body's gravity multiplier."
msgstr "常数,用于设置/获取一个物体的重力倍数。"

#: doc/classes/Physics2DServer.xml:928 doc/classes/PhysicsServer.xml:1239
msgid "Constant to set/get a body's linear dampening factor."
msgstr "常数,用于设置/获取一个物体的线性阻尼系数。"

#: doc/classes/Physics2DServer.xml:931 doc/classes/PhysicsServer.xml:1242
msgid "Constant to set/get a body's angular dampening factor."
msgstr "常数,用于设置/获取一个物体的角度阻尼系数。"

#: doc/classes/Physics2DServer.xml:934 doc/classes/PhysicsServer.xml:1245
msgid "Represents the size of the [enum BodyParameter] enum."
msgstr "表示[enum BodyParameter]枚举的大小。"

#: doc/classes/Physics2DServer.xml:937 doc/classes/PhysicsServer.xml:1248
msgid "Constant to set/get the current transform matrix of the body."
msgstr "常数,用于设置/获取物体的当前变换矩阵。"

#: doc/classes/Physics2DServer.xml:940 doc/classes/PhysicsServer.xml:1251
msgid "Constant to set/get the current linear velocity of the body."
msgstr "常数,用于设置/获取物体的当前线速度。"

#: doc/classes/Physics2DServer.xml:943 doc/classes/PhysicsServer.xml:1254
msgid "Constant to set/get the current angular velocity of the body."
msgstr "常数,用于设置/获取物体的当前角速度。"

#: doc/classes/Physics2DServer.xml:946 doc/classes/PhysicsServer.xml:1257
msgid "Constant to sleep/wake up a body, or to get whether it is sleeping."
msgstr "常数,用于使物体沉睡/唤醒,或得到它是否在沉睡。"

#: doc/classes/Physics2DServer.xml:949 doc/classes/PhysicsServer.xml:1260
msgid "Constant to set/get whether the body can sleep."
msgstr "常数,用于设置/获取身体是否可以沉睡。"

#: doc/classes/Physics2DServer.xml:952
msgid "Constant to create pin joints."
msgstr "常数,用于创造针状关节。"

#: doc/classes/Physics2DServer.xml:955
msgid "Constant to create groove joints."
msgstr "常数,用于创造槽型关节。"

#: doc/classes/Physics2DServer.xml:958
msgid "Constant to create damped spring joints."
msgstr "常数,用于创造有阻尼的弹簧关节。"

#: doc/classes/Physics2DServer.xml:967
msgid ""
"Sets the resting length of the spring joint. The joint will always try to go "
"to back this length when pulled apart."
msgstr "设定弹簧关节的静止长度。当拉开时,关节将总是试图回到这个长度。"

#: doc/classes/Physics2DServer.xml:970
msgid ""
"Sets the stiffness of the spring joint. The joint applies a force equal to "
"the stiffness times the distance from its resting length."
msgstr "设置弹簧接头的刚度。该关节施加的力等于刚度乘以离其静止长度的距离。"

#: doc/classes/Physics2DServer.xml:973
msgid ""
"Sets the damping ratio of the spring joint. A value of 0 indicates an "
"undamped spring, while 1 causes the system to reach equilibrium as fast as "
"possible (critical damping)."
msgstr ""
"设置弹簧接头的阻尼比率。值为0表示无阻尼弹簧,而1导致系统尽可能快地达到平衡"
"(临界阻尼)。"

#: doc/classes/Physics2DServer.xml:976
msgid ""
"Disables continuous collision detection. This is the fastest way to detect "
"body collisions, but can miss small, fast-moving objects."
msgstr ""
"禁用连续碰撞检测。这是检测物体碰撞的最快方法,但可能会错过小的、快速移动的物"
"体。"

#: doc/classes/Physics2DServer.xml:979
msgid ""
"Enables continuous collision detection by raycasting. It is faster than "
"shapecasting, but less precise."
msgstr "通过射线投射实现连续的碰撞检测。它比shapecasting更快,但不够精确。"

#: doc/classes/Physics2DServer.xml:982
msgid ""
"Enables continuous collision detection by shapecasting. It is the slowest "
"CCD method, and the most precise."
msgstr "通过形变实现连续的碰撞检测。它是最慢的CCD方法,也是最精确的。"

#: doc/classes/Physics2DServer.xml:985 doc/classes/PhysicsServer.xml:1263
msgid ""
"The value of the first parameter and area callback function receives, when "
"an object enters one of its shapes."
msgstr "当对象进入其形状之一时,第一个参数和区域回调函数接收的值。"

#: doc/classes/Physics2DServer.xml:988 doc/classes/PhysicsServer.xml:1266
msgid ""
"The value of the first parameter and area callback function receives, when "
"an object exits one of its shapes."
msgstr "当对象退出其形状之一时,第一个参数和区域回调函数接收的值。"

#: doc/classes/Physics2DServer.xml:991 doc/classes/PhysicsServer.xml:1269
msgid "Constant to get the number of objects that are not sleeping."
msgstr "常量,用来获取未处于睡眠状态的对象的数量。"

#: doc/classes/Physics2DServer.xml:994 doc/classes/PhysicsServer.xml:1272
msgid "Constant to get the number of possible collisions."
msgstr "常数,用以获取可能的碰撞数。"

#: doc/classes/Physics2DServer.xml:997 doc/classes/PhysicsServer.xml:1275
msgid ""
"Constant to get the number of space regions where a collision could occur."
msgstr "常量,用以获取可能发生碰撞的空间区域数。"

#: doc/classes/Physics2DShapeQueryParameters.xml:4
msgid "Parameters to be sent to a 2D shape physics query."
msgstr "要发送到2D形状物理查询的参数。"

#: doc/classes/Physics2DShapeQueryParameters.xml:7
#, fuzzy
msgid ""
"This class contains the shape and other parameters for 2D intersection/"
"collision queries."
msgstr ""
"这个类包含二维交集/碰撞查询的形状和其他参数。参见"
"[PhysicsShapeQueryResult2D]。"

#: doc/classes/Physics2DShapeQueryParameters.xml:16
#, fuzzy
msgid ""
"Sets the [Shape2D] that will be used for collision/intersection queries."
msgstr ""
"返回一个空间的状态,一个[PhysicsDirectSpaceState2D]。这个对象可以用来进行碰"
"撞/交集查询。"

#: doc/classes/Physics2DShapeQueryParameters.xml:22
msgid "If [code]true[/code], the query will take [Area2D]s into account."
msgstr "如果[code]true[/code],查询将考虑[Area2D]。"

#: doc/classes/Physics2DShapeQueryParameters.xml:25
msgid ""
"If [code]true[/code], the query will take [PhysicsBody2D]s into account."
msgstr "如果[code]true[/code],查询将考虑[PhysicsBody2D]。"

#: doc/classes/Physics2DShapeQueryParameters.xml:28
#: doc/classes/PhysicsShapeQueryParameters.xml:28
msgid ""
"The physics layer(s) the query will take into account (as a bitmask). See "
"[url=https://docs.godotengine.org/en/3.4/tutorials/physics/"
"physics_introduction.html#collision-layers-and-masks]Collision layers and "
"masks[/url] in the documentation for more information."
msgstr ""

#: doc/classes/Physics2DShapeQueryParameters.xml:31
#: doc/classes/PhysicsShapeQueryParameters.xml:31
msgid ""
"The list of objects or object [RID]s that will be excluded from collisions."
msgstr "将被排除在冲突之外的对象或对象列表。"

#: doc/classes/Physics2DShapeQueryParameters.xml:34
#: doc/classes/PhysicsShapeQueryParameters.xml:34
msgid "The collision margin for the shape."
msgstr "形状的碰撞边距。"

#: doc/classes/Physics2DShapeQueryParameters.xml:37
msgid "The motion of the shape being queried for."
msgstr "正在查询的形状的运动。"

#: doc/classes/Physics2DShapeQueryParameters.xml:40
#: doc/classes/PhysicsShapeQueryParameters.xml:37
msgid "The queried shape's [RID]. See also [method set_shape]."
msgstr ""

#: doc/classes/Physics2DShapeQueryParameters.xml:43
#: doc/classes/PhysicsShapeQueryParameters.xml:40
msgid "The queried shape's transform matrix."
msgstr "被查询形状的变换矩阵。"

#: doc/classes/PhysicsBody.xml:4
msgid "Base class for all objects affected by physics in 3D space."
msgstr "在3D空间中受物理影响的所有对象的基类。"

#: doc/classes/PhysicsBody.xml:7
#, fuzzy
msgid ""
"PhysicsBody is an abstract base class for implementing a physics body. All "
"*Body types inherit from it."
msgstr "PhysicsBody3D是一个实现物理体的抽象基类。所有*Body类型都继承自它。"

#: doc/classes/PhysicsBody.xml:17 doc/classes/PhysicsBody2D.xml:17
#: doc/classes/SoftBody.xml:17
msgid "Adds a body to the list of bodies that this body can't collide with."
msgstr "将一个物体添加到这个物体不能碰撞的物体列表中。"

#: doc/classes/PhysicsBody.xml:23 doc/classes/PhysicsBody2D.xml:23
#: doc/classes/SoftBody.xml:23
msgid ""
"Returns an array of nodes that were added as collision exceptions for this "
"body."
msgstr "返回作为碰撞异常添加的节点数组。"

#: doc/classes/PhysicsBody.xml:30 doc/classes/PhysicsBody2D.xml:30
#: doc/classes/SoftBody.xml:58
msgid ""
"Removes a body from the list of bodies that this body can't collide with."
msgstr "将一个物体从该物体不能碰撞的物体列表中移除。"

#: doc/classes/PhysicsBody2D.xml:4
msgid "Base class for all objects affected by physics in 2D space."
msgstr "2D空间中所有受物理影响的对象的基类。"

#: doc/classes/PhysicsBody2D.xml:7
msgid ""
"PhysicsBody2D is an abstract base class for implementing a physics body. All "
"*Body2D types inherit from it."
msgstr ""
"PhysicsBody2D是一个用于实现物理实体的抽象基类。所有*Body2D类型都继承自它。"

#: doc/classes/PhysicsBody2D.xml:37
#, fuzzy
msgid ""
"Both collision_layer and collision_mask. Returns collision_layer when "
"accessed. Updates collision_layer and collision_mask when modified."
msgstr ""
"[member collision_layer]和[member collision_mask]。当访问时返回[member "
"collision_layer]。修改后更新[member collision_layer]和[member "
"collision_mask]。"

#: doc/classes/PhysicsDirectBodyState.xml:4
#, fuzzy
msgid "Direct access object to a physics body in the [PhysicsServer]."
msgstr "在[PhysicsServer2D]中直接访问物理体。"

#: doc/classes/PhysicsDirectBodyState.xml:7
#, fuzzy
msgid ""
"Provides direct access to a physics body in the [PhysicsServer], allowing "
"safe changes to physics properties. This object is passed via the direct "
"state callback of rigid/character bodies, and is intended for changing the "
"direct state of that body. See [method RigidBody._integrate_forces]."
msgstr ""
"提供对[PhysicsServer2D]中的物理体的直接访问,允许安全地改变物理属性。这个对象"
"是通过刚性/字符体的直接状态回调传递的,目的是为了改变该体的直接状态。参见"
"[method RigidBody2D._integrate_forces]。"

#: doc/classes/PhysicsDirectBodyState.xml:18
msgid ""
"Adds a constant directional force without affecting rotation.\n"
"This is equivalent to [code]add_force(force, Vector3(0,0,0))[/code]."
msgstr ""
"增加一个恒定的方向力,而不影响旋转。\n"
"这相当于[code]add_force(force, Vector3(0,0,0))[/code]。"

#: doc/classes/PhysicsDirectBodyState.xml:34
msgid "Adds a constant rotational force without affecting position."
msgstr "在不影响位置的情况下增加一个恒定的旋转力。"

#: doc/classes/PhysicsDirectBodyState.xml:41
msgid ""
"Applies a single directional impulse without affecting rotation.\n"
"This is equivalent to [code]apply_impulse(Vector3(0, 0, 0), impulse)[/code]."
msgstr ""
"施加单一方向的冲量而不影响旋转。\n"
"这等价于[code]apply_impulse(Vector3(0,0,0), impulse)[/code]。"

#: doc/classes/PhysicsDirectBodyState.xml:50
msgid ""
"Applies a positioned impulse to the body. An impulse is time-independent! "
"Applying an impulse every frame would result in a framerate-dependent force. "
"For this reason it should only be used when simulating one-time impacts. The "
"position uses the rotation of the global coordinate system, but is centered "
"at the object's origin."
msgstr ""
"对物体施加一个有作用点的冲量。冲量是时间无关的! 在每一帧中施加一个脉冲将产生"
"一个与帧速率相关的力。出于这个原因,它应该只在模拟一次性冲击时使用。该位置使"
"用全局坐标系的旋转,但以物体的原点为中心。"

#: doc/classes/PhysicsDirectBodyState.xml:57
msgid ""
"Apply a torque impulse (which will be affected by the body mass and shape). "
"This will rotate the body around the vector [code]j[/code] passed as "
"parameter."
msgstr ""
"施加一个扭矩冲量(这将受到物体质量和形状的影响)。这将围绕作为参数传递的向量"
"[code]j[/code]旋转主体。"

#: doc/classes/PhysicsDirectBodyState.xml:78
msgid "Returns the collider object."
msgstr "返回碰撞对象。"

#: doc/classes/PhysicsDirectBodyState.xml:105
#, fuzzy
msgid ""
"Returns the number of contacts this body has with other bodies.\n"
"[b]Note:[/b] By default, this returns 0 unless bodies are configured to "
"monitor contacts. See [member RigidBody.contact_monitor]."
msgstr ""
"返回此实体与其他实体的联系数。\n"
"[b] 注意:[/b]默认情况下,除非主体被设为监视联系人,否则返回0。请参阅 "
"[member RigidBody2D.contact_monitor]。"

#: doc/classes/PhysicsDirectBodyState.xml:113
msgid "Impulse created by the contact. Only implemented for Bullet physics."
msgstr "由接触产生的冲量。仅适用于子弹物理。"

#: doc/classes/PhysicsDirectSpaceState.xml:4
#, fuzzy
msgid "Direct access object to a space in the [PhysicsServer]."
msgstr "直接访问[PhysicsServer2D]中的一个空间。"

#: doc/classes/PhysicsDirectSpaceState.xml:7
#, fuzzy
msgid ""
"Direct access object to a space in the [PhysicsServer]. It's used mainly to "
"do queries against objects and areas residing in a given space."
msgstr ""
"直接访问[PhysicsServer2D]中的一个空间。它主要用于对给定空间中的对象和区域进行"
"查询。"

#: doc/classes/PhysicsDirectSpaceState.xml:19
msgid ""
"Checks how far a [Shape] can move without colliding. All the parameters for "
"the query, including the shape, are supplied through a "
"[PhysicsShapeQueryParameters] object.\n"
"Returns an array with the safe and unsafe proportions (between 0 and 1) of "
"the motion. The safe proportion is the maximum fraction of the motion that "
"can be made without a collision. The unsafe proportion is the minimum "
"fraction of the distance that must be moved for a collision. If no collision "
"is detected a result of [code][1.0, 1.0][/code] will be returned.\n"
"[b]Note:[/b] Any [Shape]s that the shape is already colliding with e.g. "
"inside of, will be ignored. Use [method collide_shape] to determine the "
"[Shape]s that the shape is already colliding with."
msgstr ""

#: doc/classes/PhysicsDirectSpaceState.xml:29
#, fuzzy
msgid ""
"Checks the intersections of a shape, given through a "
"[PhysicsShapeQueryParameters] object, against the space. The resulting array "
"contains a list of points where the shape intersects another. Like with "
"[method intersect_shape], the number of returned results can be limited to "
"save processing time."
msgstr ""
"通过[PhysicsShapeQueryParameters2D]对象对空间检查形状的交集。生成的数组包含一"
"个与另一个形状相交的点列表。与[method intersect_shape]一样,可以限制返回结果"
"的数量,以节省处理时间。"

#: doc/classes/PhysicsDirectSpaceState.xml:36
#, fuzzy
msgid ""
"Checks the intersections of a shape, given through a "
"[PhysicsShapeQueryParameters] object, against the space. If it collides with "
"more than one shape, the nearest one is selected. The returned object is a "
"dictionary containing the following fields:\n"
"[code]collider_id[/code]: The colliding object's ID.\n"
"[code]linear_velocity[/code]: The colliding object's velocity [Vector3]. If "
"the object is an [Area], the result is [code](0, 0, 0)[/code].\n"
"[code]normal[/code]: The object's surface normal at the intersection point.\n"
"[code]point[/code]: The intersection point.\n"
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape.\n"
"If the shape did not intersect anything, then an empty dictionary is "
"returned instead."
msgstr ""
"检查形状的交叉点,通过[PhysicsShapeQueryParameters3D]对象,针对空间。如果它与"
"多个形状碰撞,则选择最近的一个。返回的对象是一个包含以下字段的字典:\n"
"[code]collider_id[/code]:碰撞对象的ID。\n"
"[code]linear_velocity[/code]:碰撞对象的速度[Vector3]。如果对象是一个"
"[Area3D],结果是[code](0,0,0)[/code]。\n"
"[code]normal[/code]:物体在交点处的表面法线。\n"
"[code]point[/code]:交点。\n"
"[code]rid[/code]:相交对象的[rid]。\n"
"[code]shape[/code]:碰撞形状的形状指数。\n"
"如果形状没有与任何东西相交,则返回一个空字典。"

#: doc/classes/PhysicsDirectSpaceState.xml:55
#, fuzzy
msgid ""
"Intersects a ray in a given space. The returned object is a dictionary with "
"the following fields:\n"
"[code]collider[/code]: The colliding object.\n"
"[code]collider_id[/code]: The colliding object's ID.\n"
"[code]normal[/code]: The object's surface normal at the intersection point.\n"
"[code]position[/code]: The intersection point.\n"
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape.\n"
"If the ray did not intersect anything, then an empty dictionary is returned "
"instead.\n"
"Additionally, the method can take an [code]exclude[/code] array of objects "
"or [RID]s that are to be excluded from collisions, a [code]collision_mask[/"
"code] bitmask representing the physics layers to check in, or booleans to "
"determine if the ray should collide with [PhysicsBody]s or [Area]s, "
"respectively."
msgstr ""
"在一个给定的空间中与一条射线相交。返回的对象是一个具有下列字段的字典。\n"
"[code]collider[/code]。碰撞的对象。\n"
"[code]collider_id[/code]。碰撞对象的ID。\n"
"[code]normal[/code]: 对象在交汇点的表面法线。\n"
"[code]position[/code](位置)。交叉点。\n"
"[code]rid[/code]: 相交对象的[RID]。\n"
"[code]shape[/code]: 碰撞形状的形状索引。\n"
"如果射线没有与任何物体相交,那么将返回一个空的字典。\n"
"此外,该方法可以接受一个[code]exclude[/code]数组,该数组中的对象或[RID]将被排"
"除在碰撞之外,一个[code]collision_mask[/code]位掩码代表要检查的物理层,或者布"
"尔值来确定射线是否应该分别与[PhysicsBody3D]或[Area3D]发生碰撞。"

#: doc/classes/PhysicsDirectSpaceState.xml:71
#, fuzzy
msgid ""
"Checks the intersections of a shape, given through a "
"[PhysicsShapeQueryParameters] object, against the space. The intersected "
"shapes are returned in an array containing dictionaries with the following "
"fields:\n"
"[code]collider[/code]: The colliding object.\n"
"[code]collider_id[/code]: The colliding object's ID.\n"
"[code]rid[/code]: The intersecting object's [RID].\n"
"[code]shape[/code]: The shape index of the colliding shape.\n"
"The number of intersections can be limited with the [code]max_results[/code] "
"parameter, to reduce the processing time."
msgstr ""
"检查形状的交叉点,通过[PhysicsShapeQueryParameters3D]对象,针对空间。相交形状"
"在一个包含以下字段的字典数组中返回:\n"
"[code]collider[/code]:碰撞对象。\n"
"[code]collider_id[/code]:碰撞对象的ID。\n"
"[code]rid[/code]:相交对象的[rid]。\n"
"[code]shape[/code]:碰撞形状的形状指数。\n"
"可以使用[code]max_results[/code]参数限制交集的数量,以减少处理时间。"

#: doc/classes/PhysicsMaterial.xml:4
msgid "A material for physics properties."
msgstr "具有物理学属性的材质。"

#: doc/classes/PhysicsMaterial.xml:7
#, fuzzy
msgid ""
"Provides a means of modifying the collision properties of a [PhysicsBody]."
msgstr "提供一种方法来修改[PhysicsBody3D]的碰撞属性。"

#: doc/classes/PhysicsMaterial.xml:15
msgid ""
"If [code]true[/code], subtracts the bounciness from the colliding object's "
"bounciness instead of adding it."
msgstr "如果[code]true[/code],则从碰撞对象的弹跳性中减去弹性,而不是添加它。"

#: doc/classes/PhysicsMaterial.xml:18
msgid ""
"The body's bounciness. Values range from [code]0[/code] (no bounce) to "
"[code]1[/code] (full bounciness)."
msgstr ""
"实体的弹性。值的范围从[code]0[/code](无反弹)到[code]1[/code](完全反弹)。"

#: doc/classes/PhysicsMaterial.xml:21
msgid ""
"The body's friction. Values range from [code]0[/code] (frictionless) to "
"[code]1[/code] (maximum friction)."
msgstr ""
"物体的摩擦。取值范围从[code]0[/code](无摩擦)到[code]1[/code](最大摩擦)。"

#: doc/classes/PhysicsMaterial.xml:24
msgid ""
"If [code]true[/code], the physics engine will use the friction of the object "
"marked as \"rough\" when two objects collide. If [code]false[/code], the "
"physics engine will use the lowest friction of all colliding objects "
"instead. If [code]true[/code] for both colliding objects, the physics engine "
"will use the highest friction."
msgstr ""
"如果[code]true[/code],当两个物体碰撞时,物理引擎将使用标记为 \"粗糙 \"的物体"
"的摩擦。如果[code]false[/code],物理引擎将使用所有碰撞物体的最低摩擦力来代"
"替。如果两个碰撞的对象都为[code]true[/code],物理引擎将使用最高的摩擦力。"

#: doc/classes/PhysicsServer.xml:4
msgid "Server interface for low-level physics access."
msgstr "用于低级物理访问的服务器接口。"

#: doc/classes/PhysicsServer.xml:7
#, fuzzy
msgid ""
"PhysicsServer is the server responsible for all 3D physics. It can create "
"many kinds of physics objects, but does not insert them on the node tree."
msgstr ""
"PhysicsServer3D是负责所有3D物理的服务器。它可以创建多种物理对象,但不能将它们"
"插入节点树。"

#: doc/classes/PhysicsServer.xml:40
#, fuzzy
msgid "Creates an [Area]."
msgstr "创建一个[Area2D]区域。"

#: doc/classes/PhysicsServer.xml:55
msgid ""
"Returns an area parameter value. A list of available parameters is on the "
"[enum AreaParameter] constants."
msgstr "返回区域参数值。可用参数列表位于[enum AreaParameter]常量上。"

#: doc/classes/PhysicsServer.xml:106
msgid "If [code]true[/code], area collides with rays."
msgstr "如果[code]true[/code],则区域与光线碰撞。"

#: doc/classes/PhysicsServer.xml:168
msgid ""
"Sets the value for an area parameter. A list of available parameters is on "
"the [enum AreaParameter] constants."
msgstr "设置面积参数的值。可用参数列表位于[enum AreaParameter]常量上。"

#: doc/classes/PhysicsServer.xml:176
msgid "Sets object pickable with rays."
msgstr "设置可使用光线拾取的对象。"

#: doc/classes/PhysicsServer.xml:218
msgid ""
"Sets the space override mode for the area. The modes are described in the "
"[enum AreaSpaceOverrideMode] constants."
msgstr ""
"设置区域的空间替代模式。[enum AreaSpaceOverrideMode]常量中描述了这些模式。"

#: doc/classes/PhysicsServer.xml:282
msgid ""
"Gives the body a push at a [code]position[/code] in the direction of the "
"[code]impulse[/code]."
msgstr "在[code]position[/code]impulse[code]脉冲方向推动物体[/code]。"

#: doc/classes/PhysicsServer.xml:290
msgid "Gives the body a push to rotate it."
msgstr "推动物体旋转。"

#: doc/classes/PhysicsServer.xml:313
msgid ""
"Creates a physics body. The first parameter can be any value from [enum "
"BodyMode] constants, for the type of body created. Additionally, the body "
"can be created in sleeping state to save processing time."
msgstr ""
"创建一个物理实体。对于创建的实体类型,第一个参数可以是[enum BodyMode]常量中的"
"任何值。此外,身体可以在睡眠状态下创建,以节省处理时间。"

#: doc/classes/PhysicsServer.xml:327
msgid ""
"Returns the physics layer or layers a body can collide with.\n"
"-"
msgstr ""
"返回实体可以碰撞的一个或多个物理层。\n"
"-"

#: doc/classes/PhysicsServer.xml:335
#, fuzzy
msgid "Returns the [PhysicsDirectBodyState] of the body."
msgstr "返回body的[PhysicsDirectBodyState2D]。"

#: doc/classes/PhysicsServer.xml:370
msgid ""
"Returns the value of a body parameter. A list of available parameters is on "
"the [enum BodyParameter] constants."
msgstr "返回物体参数的值。可用参数列表位于[enum BodyParameter]常量上。"

#: doc/classes/PhysicsServer.xml:422
msgid ""
"If [code]true[/code], the continuous collision detection mode is enabled."
msgstr "如果[code]true[/code],则启用连续碰撞检测模式。"

#: doc/classes/PhysicsServer.xml:436
msgid "If [code]true[/code], the body can be detected by rays."
msgstr "如果[code]true[/code],物体可以被光线探测到。"

#: doc/classes/PhysicsServer.xml:444
msgid ""
"Removes a body from the list of bodies exempt from collisions.\n"
"Continuous collision detection tries to predict where a moving body will "
"collide, instead of moving it and correcting its movement if it collided."
msgstr ""
"从免于碰撞的实体列表中删除实体。\n"
"连续碰撞检测尝试预测运动物体碰撞的位置,而不是在碰撞时移动物体并纠正其运动。"

#: doc/classes/PhysicsServer.xml:493
msgid ""
"If [code]true[/code], the continuous collision detection mode is enabled.\n"
"Continuous collision detection tries to predict where a moving body will "
"collide, instead of moving it and correcting its movement if it collided."
msgstr ""
"如果[code]true[/code],则启用连续碰撞检测模式。\n"
"连续碰撞检测尝试预测运动物体碰撞的位置,而不是在碰撞时移动物体并纠正其运动。"

#: doc/classes/PhysicsServer.xml:527
msgid "Sets the body mode, from one of the [enum BodyMode] constants."
msgstr "从[enum BodyMode]常量之一设置主体模式。"

#: doc/classes/PhysicsServer.xml:544
msgid ""
"Sets a body parameter. A list of available parameters is on the [enum "
"BodyParameter] constants."
msgstr "设置物体参数。可用参数列表位于[enum BodyParameter]常量上。"

#: doc/classes/PhysicsServer.xml:552
msgid "Sets the body pickable with rays if [code]enabled[/code] is set."
msgstr "如果设置了[code]enabled[/code],则设置可使用光线拾取的物体。"

#: doc/classes/PhysicsServer.xml:595
msgid "Sets a body state (see [enum BodyState] constants)."
msgstr "设置主体状态(请参见[enum BodyState]常量)。"

#: doc/classes/PhysicsServer.xml:608
#, fuzzy
msgid ""
"Returns [code]true[/code] if a collision would result from moving in the "
"given direction from a given point in space. [PhysicsTestMotionResult] can "
"be passed to return additional information in."
msgstr ""
"如果从空间中的给定点向给定方向移动会导致碰撞,则返回[code]true[/code]。Margin"
"增加参与碰撞检测的形状的大小。可以通过[PhysicsTestMotionResult2D]来返回额外的"
"信息。设置体中形状的元数据。这个元数据与[方法Object.set_meta]不同,可以在形状"
"查询中检索到。"

#: doc/classes/PhysicsServer.xml:616
msgid ""
"Gets a cone_twist_joint parameter (see [enum ConeTwistJointParam] constants)."
msgstr "获取圆锥体扭曲关节参数(请参见[enum ConeTwistJointParam]常量)。"

#: doc/classes/PhysicsServer.xml:625
msgid ""
"Sets a cone_twist_joint parameter (see [enum ConeTwistJointParam] constants)."
msgstr "设置圆锥体扭曲关节参数(请参见[enum ConeTwistJointParam]常量)。"

#: doc/classes/PhysicsServer.xml:632
#, fuzzy
msgid ""
"Destroys any of the objects created by PhysicsServer. If the [RID] passed is "
"not one of the objects that can be created by PhysicsServer, an error will "
"be sent to the console."
msgstr ""
"销毁任何由PhysicsServer2D创建的对象。如果传入的[RID]不是PhysicsServer2D可以创"
"建的对象之一,则会向控制台发送一个错误。"

#: doc/classes/PhysicsServer.xml:641
msgid ""
"Gets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants)."
msgstr "获取generic_6_DOF_joit flag(请参阅[enum G6DOFJointAxisFlag]常量)。"

#: doc/classes/PhysicsServer.xml:650
msgid ""
"Gets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] "
"constants)."
msgstr ""
"获取 generic_6_DOF_joint 参数(请参见[enum G6DOFJointAxisParam]常量)。"

#: doc/classes/PhysicsServer.xml:660
msgid ""
"Sets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants)."
msgstr "设置generic_6_DOF_joint flag(请参见[enum G6DOFJointAxisFlag]常量)。"

#: doc/classes/PhysicsServer.xml:670
msgid ""
"Sets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] "
"constants)."
msgstr "设置 generic_6_DOF_joint参数(请参见[enum G6DOFJointAxisParam]常量)。"

#: doc/classes/PhysicsServer.xml:677
msgid "Returns an Info defined by the [enum ProcessInfo] input given."
msgstr "返回由给定的[enum ProcessInfo]输入定义的信息。"

#: doc/classes/PhysicsServer.xml:685
msgid "Gets a hinge_joint flag (see [enum HingeJointFlag] constants)."
msgstr "获取铰链关节标志(请参阅[enum HingeJointFlag]常量)。"

#: doc/classes/PhysicsServer.xml:693
msgid "Gets a hinge_joint parameter (see [enum HingeJointParam])."
msgstr "获取铰链关节参数(请参见[enum HingeJointParam])。"

#: doc/classes/PhysicsServer.xml:702
msgid "Sets a hinge_joint flag (see [enum HingeJointFlag] constants)."
msgstr "设置铰链关节标志(请参见[enum HingeJointFlag]常量)。"

#: doc/classes/PhysicsServer.xml:711
msgid "Sets a hinge_joint parameter (see [enum HingeJointParam] constants)."
msgstr "设置铰链关节参数(请参见[enum HingeJointParam]常量)。"

#: doc/classes/PhysicsServer.xml:721
#, fuzzy
msgid "Creates a [ConeTwistJoint]."
msgstr "创建一个[ConeTwistJoint3D]圆锥扭曲关节。"

#: doc/classes/PhysicsServer.xml:731
#, fuzzy
msgid "Creates a [Generic6DOFJoint]."
msgstr "创建一个 [Generic6DOFJoint3D]通用6向关节。"

#: doc/classes/PhysicsServer.xml:741
#, fuzzy
msgid "Creates a [HingeJoint]."
msgstr "创建一个 [HingeJoint3D]铰链关节。"

#: doc/classes/PhysicsServer.xml:751
#, fuzzy
msgid "Creates a [PinJoint]."
msgstr "创建一个 [PinJoint3D]图钉关节。"

#: doc/classes/PhysicsServer.xml:761
#, fuzzy
msgid "Creates a [SliderJoint]."
msgstr "创建一个 [SliderJoint3D]滑动关节。"

#: doc/classes/PhysicsServer.xml:768
#, fuzzy
msgid "Gets the priority value of the Joint."
msgstr "获取Joint3D的优先级值。"

#: doc/classes/PhysicsServer.xml:775
#, fuzzy
msgid "Returns the type of the Joint."
msgstr "返回Joint3D的类型。"

#: doc/classes/PhysicsServer.xml:783
#, fuzzy
msgid "Sets the priority value of the Joint."
msgstr "设置Joint3D的优先级值。"

#: doc/classes/PhysicsServer.xml:790
msgid ""
"Returns position of the joint in the local space of body a of the joint."
msgstr "返回关节在关节物体A的局部空间中的位置。"

#: doc/classes/PhysicsServer.xml:797
msgid ""
"Returns position of the joint in the local space of body b of the joint."
msgstr "返回关节在关节物体B的局部空间中的位置。"

#: doc/classes/PhysicsServer.xml:805
msgid "Gets a pin_joint parameter (see [enum PinJointParam] constants)."
msgstr "获取pin_joint参数(请参阅[enum PinJointParam]常量)。"

#: doc/classes/PhysicsServer.xml:813
msgid "Sets position of the joint in the local space of body a of the joint."
msgstr "设置关节在关节物体A的局部空间中的位置。"

#: doc/classes/PhysicsServer.xml:821
msgid "Sets position of the joint in the local space of body b of the joint."
msgstr "设置关节在关节物体B的局部空间中的位置。"

#: doc/classes/PhysicsServer.xml:830
msgid "Sets a pin_joint parameter (see [enum PinJointParam] constants)."
msgstr "设置pin_joint参数(请参见[enum PinJointParam]常量)。"

#: doc/classes/PhysicsServer.xml:837
msgid "Activates or deactivates the 3D physics engine."
msgstr "激活或停用3D物理引擎。"

#: doc/classes/PhysicsServer.xml:844
msgid ""
"Sets the amount of iterations for calculating velocities of colliding "
"bodies. The greater the amount of iterations, the more accurate the "
"collisions will be. However, a greater amount of iterations requires more "
"CPU power, which can decrease performance. The default value is [code]8[/"
"code].\n"
"[b]Note:[/b] Only has an effect when using the GodotPhysics engine, not the "
"default Bullet physics engine."
msgstr ""

#: doc/classes/PhysicsServer.xml:852
msgid ""
"Creates a shape of a type from [enum ShapeType]. Does not assign it to a "
"body or an area. To do so, you must use [method area_set_shape] or [method "
"body_set_shape]."
msgstr ""
"创建一个[enum ShapeType]类型的形状。不把它分配给一个体或一个区域。要做到这一"
"点,你必须使用[method area_set_shape]或[method body_set_shape]。"

#: doc/classes/PhysicsServer.xml:866
msgid "Returns the type of shape (see [enum ShapeType] constants)."
msgstr "返回形状的类型(请参见[enum ShapeType]常量)。"

#: doc/classes/PhysicsServer.xml:882 doc/classes/PhysicsServer.xml:891
msgid "Gets a slider_joint parameter (see [enum SliderJointParam] constants)."
msgstr "获取slider_joint参数(请参阅[enum SliderJointParam]常量)。"

#: doc/classes/PhysicsServer.xml:904
#, fuzzy
msgid ""
"Returns the state of a space, a [PhysicsDirectSpaceState]. This object can "
"be used to make collision/intersection queries."
msgstr ""
"返回一个空间的状态,一个[PhysicsDirectSpaceState2D]。这个对象可以用来进行碰"
"撞/交集查询。"

#: doc/classes/PhysicsServer.xml:936
msgid ""
"Sets the value for a space parameter. A list of available parameters is on "
"the [enum SpaceParameter] constants."
msgstr "设置空间参数的值。可用参数列表位于[enum SpaceParameter]常量上。"

#: doc/classes/PhysicsServer.xml:942
#, fuzzy
msgid "The [Joint] is a [PinJoint]."
msgstr "[Joint3D]是一个[PinJoint3D]。"

#: doc/classes/PhysicsServer.xml:945
#, fuzzy
msgid "The [Joint] is a [HingeJoint]."
msgstr "[Joint3D]是一个[HingeJoint3D]。"

#: doc/classes/PhysicsServer.xml:948
#, fuzzy
msgid "The [Joint] is a [SliderJoint]."
msgstr "[Joint3D]是一个[SliderJoint3D]。"

#: doc/classes/PhysicsServer.xml:951
#, fuzzy
msgid "The [Joint] is a [ConeTwistJoint]."
msgstr "[Joint3D]是一个[conetwitstjoint 3d]。"

#: doc/classes/PhysicsServer.xml:954
#, fuzzy
msgid "The [Joint] is a [Generic6DOFJoint]."
msgstr "[Joint3D]是一个[Generic6DOFJoint3D]。"

#: doc/classes/PhysicsServer.xml:957
msgid ""
"The strength with which the pinned objects try to stay in positional "
"relation to each other.\n"
"The higher, the stronger."
msgstr ""
"固定对象试图保持彼此位置关系的力度。\n"
"越高越强。"

#: doc/classes/PhysicsServer.xml:961
msgid ""
"The strength with which the pinned objects try to stay in velocity relation "
"to each other.\n"
"The higher, the stronger."
msgstr ""
"被固定的物体试图保持彼此速度关系的力度。\n"
"越高越强。"

#: doc/classes/PhysicsServer.xml:965
#, fuzzy
msgid ""
"If above 0, this value is the maximum value for an impulse that this Joint "
"puts on its ends."
msgstr "如果大于0,则该值是该Joint3D在其末端施加的冲量的最大值。"

#: doc/classes/PhysicsServer.xml:971
msgid "The maximum rotation across the Hinge."
msgstr "铰链上的最大旋转。"

#: doc/classes/PhysicsServer.xml:974
msgid "The minimum rotation across the Hinge."
msgstr "穿过铰链的最小旋转。"

#: doc/classes/PhysicsServer.xml:991
msgid "If [code]true[/code], the Hinge has a maximum and a minimum rotation."
msgstr "如果[code]true[/code],铰链具有最大和最小旋转。"

#: doc/classes/PhysicsServer.xml:994
msgid "If [code]true[/code], a motor turns the Hinge."
msgstr "如果[code]true[/code],电机将转动铰链。"

#: doc/classes/PhysicsServer.xml:997 doc/classes/SliderJoint.xml:76
#: doc/classes/SliderJoint.xml:99
msgid ""
"The maximum difference between the pivot points on their X axis before "
"damping happens."
msgstr "阻尼发生前X轴上枢轴点之间的最大差异。"

#: doc/classes/PhysicsServer.xml:1000 doc/classes/SliderJoint.xml:67
#: doc/classes/SliderJoint.xml:102
msgid ""
"The minimum difference between the pivot points on their X axis before "
"damping happens."
msgstr "阻尼发生前X轴上枢轴点之间的最小差异。"

#: doc/classes/PhysicsServer.xml:1003 doc/classes/SliderJoint.xml:73
#: doc/classes/SliderJoint.xml:105
msgid ""
"A factor applied to the movement across the slider axis once the limits get "
"surpassed. The lower, the slower the movement."
msgstr "一旦超过极限,应用于滑块轴上移动的系数。越低,运动越慢。"

#: doc/classes/PhysicsServer.xml:1006 doc/classes/SliderJoint.xml:108
msgid ""
"The amount of restitution once the limits are surpassed. The lower, the more "
"velocityenergy gets lost."
msgstr "超过极限后的补偿。越低,动能损失越多。"

#: doc/classes/PhysicsServer.xml:1009 doc/classes/SliderJoint.xml:111
msgid "The amount of damping once the slider limits are surpassed."
msgstr "一旦超过滑块的极限,阻尼的数量。"

#: doc/classes/PhysicsServer.xml:1012 doc/classes/SliderJoint.xml:85
#: doc/classes/SliderJoint.xml:114
msgid ""
"A factor applied to the movement across the slider axis as long as the "
"slider is in the limits. The lower, the slower the movement."
msgstr "只要滑块在限制范围内,就应用于滑块轴上移动的系数。越低,运动越慢。"

#: doc/classes/PhysicsServer.xml:1015 doc/classes/SliderJoint.xml:82
#: doc/classes/SliderJoint.xml:117
msgid "The amount of restitution inside the slider limits."
msgstr "滑块限制内的恢复量。"

#: doc/classes/PhysicsServer.xml:1018 doc/classes/SliderJoint.xml:79
#: doc/classes/SliderJoint.xml:120
msgid "The amount of damping inside the slider limits."
msgstr "滑块内部的阻尼量受到限制。"

#: doc/classes/PhysicsServer.xml:1021 doc/classes/SliderJoint.xml:94
#: doc/classes/SliderJoint.xml:123
msgid "A factor applied to the movement across axes orthogonal to the slider."
msgstr "应用于在垂直于滑块的轴上移动的系数。"

#: doc/classes/PhysicsServer.xml:1024 doc/classes/SliderJoint.xml:91
#: doc/classes/SliderJoint.xml:126
msgid ""
"The amount of restitution when movement is across axes orthogonal to the "
"slider."
msgstr "当移动穿过垂直于滑块的轴时的恢复量。"

#: doc/classes/PhysicsServer.xml:1027 doc/classes/SliderJoint.xml:88
#: doc/classes/SliderJoint.xml:129
msgid ""
"The amount of damping when movement is across axes orthogonal to the slider."
msgstr "当移动穿过垂直于滑块的轴时的阻尼量。"

#: doc/classes/PhysicsServer.xml:1030 doc/classes/SliderJoint.xml:43
#: doc/classes/SliderJoint.xml:132
msgid "The upper limit of rotation in the slider."
msgstr "滑块旋转的上限。"

#: doc/classes/PhysicsServer.xml:1033 doc/classes/SliderJoint.xml:32
#: doc/classes/SliderJoint.xml:135
msgid "The lower limit of rotation in the slider."
msgstr "滑块旋转的下限。"

#: doc/classes/PhysicsServer.xml:1036 doc/classes/SliderJoint.xml:138
msgid "A factor applied to the all rotation once the limit is surpassed."
msgstr "一旦超过极限,应用于所有旋转的系数。"

#: doc/classes/PhysicsServer.xml:1039 doc/classes/SliderJoint.xml:141
msgid "The amount of restitution of the rotation when the limit is surpassed."
msgstr "超过限制时旋转的恢复量。"

#: doc/classes/PhysicsServer.xml:1042 doc/classes/SliderJoint.xml:144
msgid "The amount of damping of the rotation when the limit is surpassed."
msgstr "超过极限时旋转的阻尼量。"

#: doc/classes/PhysicsServer.xml:1045
msgid "A factor that gets applied to the all rotation in the limits."
msgstr "应用于所有极限旋转的因子。"

#: doc/classes/PhysicsServer.xml:1048 doc/classes/SliderJoint.xml:49
#: doc/classes/SliderJoint.xml:150
msgid "The amount of restitution of the rotation in the limits."
msgstr "极限内旋转的恢复量。"

#: doc/classes/PhysicsServer.xml:1051 doc/classes/SliderJoint.xml:46
#: doc/classes/SliderJoint.xml:153
msgid "The amount of damping of the rotation in the limits."
msgstr "极限内旋转的阻尼量。"

#: doc/classes/PhysicsServer.xml:1054
msgid ""
"A factor that gets applied to the all rotation across axes orthogonal to the "
"slider."
msgstr "应用于垂直于滑块的轴上的所有旋转的因子。"

#: doc/classes/PhysicsServer.xml:1057 doc/classes/SliderJoint.xml:58
#: doc/classes/SliderJoint.xml:159
msgid ""
"The amount of restitution of the rotation across axes orthogonal to the "
"slider."
msgstr "垂直于滑块的轴上的旋转恢复量。"

#: doc/classes/PhysicsServer.xml:1060 doc/classes/SliderJoint.xml:55
#: doc/classes/SliderJoint.xml:162
msgid ""
"The amount of damping of the rotation across axes orthogonal to the slider."
msgstr "垂直于滑块的轴上的旋转阻尼量。"

#: doc/classes/PhysicsServer.xml:1063
msgid "Represents the size of the [enum SliderJointParam] enum."
msgstr "表示[enum SliderJointParam]枚举的大小。"

#: doc/classes/PhysicsServer.xml:1080
#, fuzzy
msgid ""
"The ease with which the Joint twists, if it's too low, it takes more force "
"to twist the joint."
msgstr "关节三维扭曲的难易程度,如果太低,扭曲关节需要更多的力。"

#: doc/classes/PhysicsServer.xml:1092
msgid ""
"A factor that gets applied to the movement across the axes. The lower, the "
"slower the movement."
msgstr "应用于跨轴移动的因子。越低,运动越慢。"

#: doc/classes/PhysicsServer.xml:1095
msgid ""
"The amount of restitution on the axes movement. The lower, the more velocity-"
"energy gets lost."
msgstr "轴运动的恢复量。速度越低,能量损失越多。"

#: doc/classes/PhysicsServer.xml:1101
msgid "The velocity that the joint's linear motor will attempt to reach."
msgstr "关节的线性马达试图达到的速度。"

#: doc/classes/PhysicsServer.xml:1104
msgid ""
"The maximum force that the linear motor can apply while trying to reach the "
"target velocity."
msgstr "线性马达在试图达到目标速度时可以施加的最大力。"

#: doc/classes/PhysicsServer.xml:1113
msgid "A factor that gets multiplied onto all rotations across the axes."
msgstr "一个乘以所有轴旋转的因子。"

#: doc/classes/PhysicsServer.xml:1125
msgid ""
"When correcting the crossing of limits in rotation across the axes, this "
"error tolerance factor defines how much the correction gets slowed down. The "
"lower, the slower."
msgstr ""
"当校正轴旋转中的极限交叉时,该误差容限因子定义了校正的减慢程度。越低越慢。"

#: doc/classes/PhysicsServer.xml:1134
msgid ""
"If [code]set[/code] there is linear motion possible within the given limits."
msgstr "如果[code]set[/code],则在给定的限度内可能存在线性运动。"

#: doc/classes/PhysicsServer.xml:1137
msgid "If [code]set[/code] there is rotational motion possible."
msgstr "如果[code]设置为[/code],则可能存在旋转运动。"

#: doc/classes/PhysicsServer.xml:1140
msgid "If [code]set[/code] there is a rotational motor across these axes."
msgstr "如果[code]set[/code],则这些轴上有一个旋转电机。"

#: doc/classes/PhysicsServer.xml:1143
msgid ""
"If [code]set[/code] there is a linear motor on this axis that targets a "
"specific velocity."
msgstr "如果[code]set[/code],则此轴上有一个以特定速度为目标的线性电机。"

#: doc/classes/PhysicsServer.xml:1146
#, fuzzy
msgid "The [Shape] is a [PlaneShape]."
msgstr "[Shape3D]是一个[RayShape3D]。"

#: doc/classes/PhysicsServer.xml:1149
#, fuzzy
msgid "The [Shape] is a [RayShape]."
msgstr "[Shape3D]是一个[RayShape3D]。"

#: doc/classes/PhysicsServer.xml:1152
#, fuzzy
msgid "The [Shape] is a [SphereShape]."
msgstr "[Shape3D]是一个[SphereShape3D]。"

#: doc/classes/PhysicsServer.xml:1155
#, fuzzy
msgid "The [Shape] is a [BoxShape]."
msgstr "[Shape3D]是一个[BoxShape3D]。"

#: doc/classes/PhysicsServer.xml:1158
#, fuzzy
msgid "The [Shape] is a [CapsuleShape]."
msgstr "[Shape3D]是一个[CapsuleShape3D]。"

#: doc/classes/PhysicsServer.xml:1161
#, fuzzy
msgid "The [Shape] is a [CylinderShape]."
msgstr "[Shape3D]是[CylinderShape3D]。"

#: doc/classes/PhysicsServer.xml:1164
#, fuzzy
msgid "The [Shape] is a [ConvexPolygonShape]."
msgstr "[Shape3D]是[ConvexPolygonShape3D]。"

#: doc/classes/PhysicsServer.xml:1167
#, fuzzy
msgid "The [Shape] is a [ConcavePolygonShape]."
msgstr "[Shape3D]是[ConcavePolygonShape3D]。"

#: doc/classes/PhysicsServer.xml:1170
#, fuzzy
msgid "The [Shape] is a [HeightMapShape]."
msgstr "[Shape3D]是一个[highmapshape3d]。"

#: doc/classes/PhysicsShapeQueryParameters.xml:4
msgid "Parameters to be sent to a 3D shape physics query."
msgstr "要发送到三维形状物理查询的参数。"

#: doc/classes/PhysicsShapeQueryParameters.xml:7
#, fuzzy
msgid ""
"This class contains the shape and other parameters for 3D intersection/"
"collision queries."
msgstr ""
"此类包含三维相交/碰撞查询的形状和其他参数。另请参见"
"[PhysicsShapeQueryResult3d]。"

#: doc/classes/PhysicsShapeQueryParameters.xml:16
#, fuzzy
msgid "Sets the [Shape] that will be used for collision/intersection queries."
msgstr "将用于填充纹理的[Gradient]。"

#: doc/classes/PhysicsShapeQueryParameters.xml:22
#, fuzzy
msgid "If [code]true[/code], the query will take [Area]s into account."
msgstr "如果[code]true[/code],查询将考虑[Area2D]。"

#: doc/classes/PhysicsShapeQueryParameters.xml:25
#, fuzzy
msgid "If [code]true[/code], the query will take [PhysicsBody]s into account."
msgstr "如果[code]true[/code],查询将考虑[PhysicsBody2D]。"

#: doc/classes/PinJoint.xml:4
#, fuzzy
msgid "Pin joint for 3D PhysicsBodies."
msgstr "三维形状的图钉关节。"

#: doc/classes/PinJoint.xml:7
#, fuzzy
msgid ""
"Pin joint for 3D rigid bodies. It pins 2 bodies (rigid or static) together. "
"See also [Generic6DOFJoint]."
msgstr "三维刚体的图钉关节。将两个刚体(或静态)钉在一起。"

#: doc/classes/PinJoint.xml:30 doc/classes/PinJoint.xml:41
msgid ""
"The force with which the pinned objects stay in positional relation to each "
"other. The higher, the stronger."
msgstr "被钉在一起的物体之间保持位置关系的力,越高越强。"

#: doc/classes/PinJoint.xml:33 doc/classes/PinJoint.xml:44
msgid ""
"The force with which the pinned objects stay in velocity relation to each "
"other. The higher, the stronger."
msgstr "被钉在一起的物体之间保持共速的力。越高,力越大。"

#: doc/classes/PinJoint.xml:36 doc/classes/PinJoint.xml:47
#, fuzzy
msgid ""
"If above 0, this value is the maximum value for an impulse that this Joint "
"produces."
msgstr "如果大于0,这个值就是这个 Joint3D 产生的冲量的最大值。"

#: doc/classes/PinJoint2D.xml:4
#, fuzzy
msgid "Pin Joint for 2D shapes."
msgstr "2D形状的图钉关节。"

#: doc/classes/PinJoint2D.xml:7
#, fuzzy
msgid ""
"Pin Joint for 2D rigid bodies. It pins two bodies (rigid or static) together."
msgstr "用于二维刚体的图钉关节。它将两个物体(刚性的或静态的)钉在一起。"

#: doc/classes/PinJoint2D.xml:15
msgid ""
"The higher this value, the more the bond to the pinned partner can flex."
msgstr "这个值越高,与被牵制的两个物体之间的的联系就越灵活。"

#: doc/classes/Plane.xml:4
msgid "Plane in hessian form."
msgstr "麻状平面。"

#: doc/classes/Plane.xml:7
msgid ""
"Plane represents a normalized plane equation. Basically, \"normal\" is the "
"normal of the plane (a,b,c normalized), and \"d\" is the distance from the "
"origin to the plane (in the direction of \"normal\"). \"Over\" or \"Above\" "
"the plane is considered the side of the plane towards where the normal is "
"pointing."
msgstr ""
"平面表示标准化的平面方程。基本上,“法线”是平面的法线(a、b、c归一化),而“d”是"
"原点到平面的距离(在“法线”方向)。“上方”或“上方”平面被认为是法线指向的平面一"
"侧。"

#: doc/classes/Plane.xml:20
msgid ""
"Creates a plane from the four parameters. The three components of the "
"resulting plane's [member normal] are [code]a[/code], [code]b[/code] and "
"[code]c[/code], and the plane has a distance of [code]d[/code] from the "
"origin."
msgstr ""
"根据四个参数创建一个平面。产生的平面的[成员法线]的三个分量是[code]a[/code],"
"[code]b[/code]和[code]c[/code],并且平面与原点的距离为[code]d[/code]。"

#: doc/classes/Plane.xml:29
msgid "Creates a plane from the three points, given in clockwise order."
msgstr "根据顺时针顺序给出的三个点创建一个平面。"

#: doc/classes/Plane.xml:37
msgid "Creates a plane from the normal and the plane's distance to the origin."
msgstr "从法线和平面到原点的距离创建一个平面。"

#: doc/classes/Plane.xml:43
msgid "Returns the center of the plane."
msgstr "返回平面的中心。"

#: doc/classes/Plane.xml:50
msgid ""
"Returns the shortest distance from the plane to the position [code]point[/"
"code]."
msgstr "返回从平面到位置[code]point[/code]的最短距离。"

#: doc/classes/Plane.xml:56
msgid ""
"Returns the center of the plane.\n"
"This method is deprecated, please use [method center] instead."
msgstr ""

#: doc/classes/Plane.xml:65
msgid ""
"Returns [code]true[/code] if [code]point[/code] is inside the plane. "
"Comparison uses a custom minimum [code]epsilon[/code] threshold."
msgstr ""
"如果[code]point[/code]在平面内,则返回[code]true[/code]。比较使用自定义的最小"
"[code]epsilon』[/code] ε 阈值。"

#: doc/classes/Plane.xml:73
msgid ""
"Returns the intersection point of the three planes [code]b[/code], [code]c[/"
"code] and this plane. If no intersection is found, [code]null[/code] is "
"returned."
msgstr ""
"返回三个平面[code]b[/code],[code]c[/code]与该平面的交点。如果没有找到交集,"
"则返回[code]null[/code]。"

#: doc/classes/Plane.xml:81
msgid ""
"Returns the intersection point of a ray consisting of the position "
"[code]from[/code] and the direction normal [code]dir[/code] with this plane. "
"If no intersection is found, [code]null[/code] is returned."
msgstr ""
"返回由位置[code]from[/code]和方向法线[code]dir[/code]组成的射线与该平面的交"
"点。如果没有找到交点,则返回[code]null[/code]。"

#: doc/classes/Plane.xml:89
msgid ""
"Returns the intersection point of a segment from position [code]begin[/code] "
"to position [code]end[/code] with this plane. If no intersection is found, "
"[code]null[/code] is returned."
msgstr ""
"返回从位置[code]begin[/code]到位置[code]end[/code]的线段与这个平面的交点。如"
"果没有找到交点,则返回[code]null[/code]。"

#: doc/classes/Plane.xml:96
msgid ""
"Returns [code]true[/code] if this plane and [code]plane[/code] are "
"approximately equal, by running [method @GDScript.is_equal_approx] on each "
"component."
msgstr ""
"通过在每个组件上运行[method @GDScript.is_equal_approx],如果此平面和"
"[code]plane[/code]近似相等,则返回[code]true[/code]。"

#: doc/classes/Plane.xml:103
msgid ""
"Returns [code]true[/code] if [code]point[/code] is located above the plane."
msgstr "如果[code]point[/code]位于平面上方,则返回[code]true[/code]。"

#: doc/classes/Plane.xml:109
msgid "Returns a copy of the plane, normalized."
msgstr "返回平面的一个标准化副本。"

#: doc/classes/Plane.xml:116
msgid ""
"Returns the orthogonal projection of [code]point[/code] into a point in the "
"plane."
msgstr "返回[code]点[/code]在平面上的正交投影。"

#: doc/classes/Plane.xml:122
msgid ""
"The distance from the origin to the plane, in the direction of [member "
"normal]. This value is typically non-negative.\n"
"In the scalar equation of the plane [code]ax + by + cz = d[/code], this is "
"[code]d[/code], while the [code](a, b, c)[/code] coordinates are represented "
"by the [member normal] property."
msgstr ""
"从原点到平面的距离,沿[member normal]方向。这个值通常是非负的。\n"
"在平面[code]ax + by + cz = d[/code]的标量方程中,这是[code]d[/code],而[code]"
"(a, b, c)[/code]坐标由[member normal]属性表示。"

#: doc/classes/Plane.xml:126
msgid ""
"The normal of the plane, which must be normalized.\n"
"In the scalar equation of the plane [code]ax + by + cz = d[/code], this is "
"the vector [code](a, b, c)[/code], where [code]d[/code] is the [member d] "
"property."
msgstr ""
"平面的法线,必须归一化。\n"
"在平面[code]ax + by + cz = d[/code]的标量方程中,这是向量[code](a, b, c)[/"
"code],其中[code]d[/code]是[member d]属性。"

#: doc/classes/Plane.xml:130
msgid "The X component of the plane's [member normal] vector."
msgstr "平面的[member normal]向量的X分量。"

#: doc/classes/Plane.xml:133
msgid "The Y component of the plane's [member normal] vector."
msgstr "平面的[member normal]向量的Y分量。"

#: doc/classes/Plane.xml:136
msgid "The Z component of the plane's [member normal] vector."
msgstr "平面的[member normal]向量的Z分量。"

#: doc/classes/Plane.xml:141
msgid "A plane that extends in the Y and Z axes (normal vector points +X)."
msgstr "在Y轴和Z轴上延伸的平面(法向量点+X)。"

#: doc/classes/Plane.xml:144
msgid "A plane that extends in the X and Z axes (normal vector points +Y)."
msgstr "在X轴和Z轴上延伸的平面(法向量点+Y)。"

#: doc/classes/Plane.xml:147
msgid "A plane that extends in the X and Y axes (normal vector points +Z)."
msgstr "在X轴和Y轴上延伸的平面(法向量点+Z)。"

#: doc/classes/PlaneMesh.xml:4
msgid "Class representing a planar [PrimitiveMesh]."
msgstr "表示平面的类。"

#: doc/classes/PlaneMesh.xml:7
#, fuzzy
msgid ""
"Class representing a planar [PrimitiveMesh]. This flat mesh does not have a "
"thickness. By default, this mesh is aligned on the X and Z axes; this "
"default rotation isn't suited for use with billboarded materials. For "
"billboarded materials, use [QuadMesh] instead.\n"
"[b]Note:[/b] When using a large textured [PlaneMesh] (e.g. as a floor), you "
"may stumble upon UV jittering issues depending on the camera angle. To solve "
"this, increase [member subdivide_depth] and [member subdivide_width] until "
"you no longer notice UV jittering."
msgstr ""
"表示平面的类。这个平面网格没有厚度。默认情况下,这个网格在X轴和Z轴上对齐;这种"
"默认的旋转不适合用于告示牌材质。对于告示牌材质,使用[QuadMesh]代替。"

#: doc/classes/PlaneMesh.xml:16
msgid "Offset from the origin of the generated plane. Useful for particles."
msgstr ""

#: doc/classes/PlaneMesh.xml:19
msgid "Size of the generated plane."
msgstr "生成平面的大小。"

#: doc/classes/PlaneMesh.xml:22
msgid "Number of subdivision along the Z axis."
msgstr "沿Z轴细分的次数。"

#: doc/classes/PlaneMesh.xml:25
msgid "Number of subdivision along the X axis."
msgstr "沿X轴细分的次数。"

#: doc/classes/PlaneShape.xml:4
msgid "Infinite plane shape for 3D collisions."
msgstr "无限的平面形状,用于三维碰撞。"

#: doc/classes/PlaneShape.xml:7
#, fuzzy
msgid ""
"An infinite plane shape for 3D collisions. Note that the [Plane]'s normal "
"matters; anything \"below\" the plane will collide with it. If the "
"[PlaneShape] is used in a [PhysicsBody], it will cause colliding objects "
"placed \"below\" it to teleport \"above\" the plane."
msgstr ""
"用于三维碰撞的无限的平面形状。请注意,[Plane]的法线很重要;任何 \"低于\" 该平"
"面的物体都会与之发生碰撞。如果[WorldMarginShape3D]被用于[PhysicsBody3D],它将"
"导致放置在它 \"下面\" 的碰撞物体被传送到平面 \"上面\" 。"

#: doc/classes/PlaneShape.xml:15
#, fuzzy
msgid "The [Plane] used by the [PlaneShape] for collision."
msgstr "[WorldMarginShape3D]用于碰撞的[Plane]平面。"

#: doc/classes/PointMesh.xml:4
msgid "Mesh with a single Point primitive."
msgstr "单点原始网格。"

#: doc/classes/PointMesh.xml:7
#, fuzzy
msgid ""
"The PointMesh is made from a single point. Instead of relying on triangles, "
"points are rendered as a single rectangle on the screen with a constant "
"size. They are intended to be used with Particle systems, but can be used as "
"a cheap way to render constant size billboarded sprites (for example in a "
"point cloud).\n"
"PointMeshes, must be used with a material that has a point size. Point size "
"can be accessed in a shader with [code]POINT_SIZE[/code], or in a "
"[SpatialMaterial] by setting [member SpatialMaterial.flags_use_point_size] "
"and the variable [member SpatialMaterial.params_point_size].\n"
"When using PointMeshes, properties that normally alter vertices will be "
"ignored, including billboard mode, grow, and cull face."
msgstr ""
"点网格是由一个点构成的。点不是依赖于三角形,而是在屏幕上以固定大小呈现为单个"
"矩形。它们的目的是与粒子系统一起使用,但也可以作为一种廉价的方法来渲染固定大"
"小的告示牌精灵(例如点云)。\n"
"pointmesh,必须与具有点大小的材质一起使用。点大小可以通过[code]POINT_SIZE[/"
"code]在着色器中访问,或者通过设置[member BaseMaterial3D]在[BaseMaterial3D]中"
"访问。和变量[成员BaseMaterial3D.point_size]。\n"
"当使用pointmesh时,通常改变顶点的属性将被忽略,包括广告牌模式、增长和剔除面。"

#: doc/classes/Polygon2D.xml:4
msgid "A 2D polygon."
msgstr "一个2D多边形。"

#: doc/classes/Polygon2D.xml:7
#, fuzzy
msgid ""
"A Polygon2D is defined by a set of points. Each point is connected to the "
"next, with the final point being connected to the first, resulting in a "
"closed polygon. Polygon2Ds can be filled with color (solid or gradient) or "
"filled with a given texture.\n"
"[b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a "
"time. To increase this limit, open the Project Settings and increase [member "
"ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and "
"[member ProjectSettings.rendering/limits/buffers/"
"canvas_polygon_index_buffer_size_kb]."
msgstr ""
"一个Polygon2D是由一组点定义的.每个点与下一个点相连,最后一个点与第一个点相连,"
"从而形成一个封闭的多边形.Polygon2D可以用颜色(纯色或渐变)填充,也可以用给定的贴"
"图填充."

#: doc/classes/Polygon2D.xml:18
msgid ""
"Adds a bone with the specified [code]path[/code] and [code]weights[/code]."
msgstr "添加具有指定[code]path[/code]和[code]weights[/code]的骨骼."

#: doc/classes/Polygon2D.xml:24
msgid "Removes all bones from this [Polygon2D]."
msgstr "删除这个[Polygon2D]的所有骨骼."

#: doc/classes/Polygon2D.xml:31
msgid "Removes the specified bone from this [Polygon2D]."
msgstr "从这个[Polygon2D]中删除指定的骨骼."

#: doc/classes/Polygon2D.xml:37
msgid "Returns the number of bones in this [Polygon2D]."
msgstr "返回这个[Polygon2D]中骨骼的数量."

#: doc/classes/Polygon2D.xml:44
msgid "Returns the path to the node associated with the specified bone."
msgstr "返回与指定骨骼相关联的节点的路径."

#: doc/classes/Polygon2D.xml:51
msgid "Returns the height values of the specified bone."
msgstr "返回指定骨骼的高度值."

#: doc/classes/Polygon2D.xml:59
msgid "Sets the path to the node associated with the specified bone."
msgstr "设置与指定骨骼相关联的节点的路径."

#: doc/classes/Polygon2D.xml:67
msgid "Sets the weight values for the specified bone."
msgstr "设置指定骨骼的权重值."

#: doc/classes/Polygon2D.xml:73
msgid "If [code]true[/code], polygon edges will be anti-aliased."
msgstr "如果为[code]true[/code],则多边形边缘将抗锯齿."

#: doc/classes/Polygon2D.xml:78
msgid ""
"The polygon's fill color. If [code]texture[/code] is defined, it will be "
"multiplied by this color. It will also be the default color for vertices not "
"set in [code]vertex_colors[/code]."
msgstr ""
"多边形的填充颜色.如果定义了[code]texture[/code](贴图),它将乘以该颜色.对于"
"[code]vertex_colors[/code]中未设置的顶点,它也将是默认颜色."

#: doc/classes/Polygon2D.xml:83
msgid ""
"Added padding applied to the bounding box when using [code]invert[/code]. "
"Setting this value too small may result in a \"Bad Polygon\" error."
msgstr ""
"当使用[code]invert[/code](反转)时,将应用于边框的填充.将这个值设置得太小可能会"
"导致\"Bad Polygon\"(多边形错误)的错误."

#: doc/classes/Polygon2D.xml:86
msgid ""
"If [code]true[/code], polygon will be inverted, containing the area outside "
"the defined points and extending to the [code]invert_border[/code]."
msgstr ""
"如果为[code]true[/code],则多边形将反转,包含定义点之外的区域,并扩展到"
"[code]invert_border[/code](反转边界)."

#: doc/classes/Polygon2D.xml:89
msgid "The offset applied to each vertex."
msgstr "应用于每个顶点的位置偏移量."

#: doc/classes/Polygon2D.xml:92
#, fuzzy
msgid ""
"The polygon's list of vertices. The final point will be connected to the "
"first.\n"
"[b]Note:[/b] This returns a copy of the [PoolVector2Array] rather than a "
"reference."
msgstr ""
"多边形顶点的列表.最后一个点将连接到第一个点.\n"
"[b]注意:[/b]这将返回[PoolVector2Array]的拷贝,而不是引用."

#: doc/classes/Polygon2D.xml:100
msgid ""
"The polygon's fill texture. Use [code]uv[/code] to set texture coordinates."
msgstr "多边形的填充贴图.使用[code]uv[/code]设置贴图坐标."

#: doc/classes/Polygon2D.xml:103
msgid ""
"Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] "
"the texture's origin (its top-left corner) will be placed at the polygon's "
"[code]position[/code]."
msgstr ""
"多边形[code]texture[/code](贴图)位置偏移的值.如果[code](0,0)[/code],则贴图的"
"原点(其左上角)将放置在多边形的[code]position[/code](坐标)处."

#: doc/classes/Polygon2D.xml:106
msgid "The texture's rotation in radians."
msgstr "贴图的旋转(以弧度为单位)."

#: doc/classes/Polygon2D.xml:109
msgid "The texture's rotation in degrees."
msgstr "贴图的旋转(以度数为单位)."

#: doc/classes/Polygon2D.xml:112
msgid ""
"Amount to multiply the [code]uv[/code] coordinates when using a "
"[code]texture[/code]. Larger values make the texture smaller, and vice versa."
msgstr ""
"当使用[code]texture[/code](贴图)时,乘以[code]uv[/code]坐标的值. 值越大,贴图越"
"小,反之亦然."

#: doc/classes/Polygon2D.xml:115
msgid ""
"Texture coordinates for each vertex of the polygon. There should be one "
"[code]uv[/code] per polygon vertex. If there are fewer, undefined vertices "
"will use [code](0, 0)[/code]."
msgstr ""
"多边形每个顶点的贴图坐标.每个多边形顶点应该有一个[code]uv[/code].如果数量少,"
"则未定义的顶点将使用[code](0,0)[/code]."

#: doc/classes/Polygon2D.xml:118
msgid ""
"Color for each vertex. Colors are interpolated between vertices, resulting "
"in smooth gradients. There should be one per polygon vertex. If there are "
"fewer, undefined vertices will use [code]color[/code]."
msgstr ""
"每个顶点的颜色.颜色在顶点之间插值,从而获得平滑的渐变.每个多边形顶点应有一个."
"如果数量少,则未定义的顶点将使用[code]color[/code]."

#: doc/classes/PoolByteArray.xml:4
#, fuzzy
msgid "A pooled [Array] of bytes."
msgstr "一个打包的字节[Array]。"

#: doc/classes/PoolByteArray.xml:7
#, fuzzy
msgid ""
"An [Array] specifically designed to hold bytes. Optimized for memory usage, "
"does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference."
msgstr ""
"一个专门用来保存字节的[Array]。它紧密地包裹数据,所以当数组尺寸较大时,该格式"
"将节省一笔内存。\n"
"[b]注意:[/b] 这种类型是通过值传递的,而不是通过引用。"

#: doc/classes/PoolByteArray.xml:17
#, fuzzy
msgid ""
"Constructs a new [PoolByteArray]. Optionally, you can pass in a generic "
"[Array] that will be converted."
msgstr ""
"构建一个新的[PackedByteArray]。你可以选择传入一个通用的[Array],它将被转换。"

#: doc/classes/PoolByteArray.xml:29
#, fuzzy
msgid "Appends a [PoolByteArray] at the end of this array."
msgstr "在这个数组的末端添加一个[PackedByteArray]。"

#: doc/classes/PoolByteArray.xml:36
#, fuzzy
msgid ""
"Returns a new [PoolByteArray] with the data compressed. Set the compression "
"mode using one of [enum File.CompressionMode]'s constants."
msgstr ""
"返回一个新的带有压缩数据的[PackedByteArray]。使用[enum File.CompressionMode]"
"中的一个常量来设置压缩模式。"

#: doc/classes/PoolByteArray.xml:44
#, fuzzy
msgid ""
"Returns a new [PoolByteArray] with the data decompressed. Set "
"[code]buffer_size[/code] to the size of the uncompressed data. Set the "
"compression mode using one of [enum File.CompressionMode]'s constants."
msgstr ""
"返回一个新的[PackedByteArray],并对数据进行解压。使用[code]buffer_size[/code]"
"来设置未压缩数据的大小。使用[enum File.CompressionMode]中的一个常量来设置压缩"
"模式。"

#: doc/classes/PoolByteArray.xml:52
msgid ""
"Returns a new [PoolByteArray] with the data decompressed. Set the "
"compression mode using one of [enum File.CompressionMode]'s constants. "
"[b]This method only accepts gzip and deflate compression modes.[/b]\n"
"This method is potentially slower than [code]decompress[/code], as it may "
"have to re-allocate it's output buffer multiple times while decompressing, "
"where as [code]decompress[/code] knows it's output buffer size from the "
"begining.\n"
"\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 [code]max_output_size[/code]. Passing -1 "
"will allow for unbounded output. If any positive value is passed, and the "
"decompression exceeds that ammount in bytes, then an error will be returned."
msgstr ""

#: doc/classes/PoolByteArray.xml:67
msgid ""
"Returns a copy of the array's contents as [String]. Fast alternative to "
"[method get_string_from_utf8] if the content is ASCII-only. Unlike the UTF-8 "
"function this function maps every byte to a character in the array. "
"Multibyte sequences will not be interpreted correctly. For parsing user "
"input always use [method get_string_from_utf8]."
msgstr ""
"返回数组内容的副本为[String]。如果内容是ASCII码,可以通过[method "
"get_string_from_utf8]来对其快速替代。与UTF-8函数不同,该函数将每个字节映射为"
"数组中的一个字符。多字节的序列不会被正确解释。对于解析用户输入的内容,总是使"
"用[method get_string_from_utf8]。"

#: doc/classes/PoolByteArray.xml:73
msgid ""
"Returns a copy of the array's contents as [String]. Slower than [method "
"get_string_from_ascii] but supports UTF-8 encoded data. Use this function if "
"you are unsure about the source of the data. For user input this function "
"should always be preferred."
msgstr ""
"返回数组内容的副本[String]。比[method get_string_from_ascii]慢,但支持UTF-8编"
"码的数据。如果不确定数据的来源,请使用此函数。对于用户输入,应该始终首选此函"
"数。"

#: doc/classes/PoolByteArray.xml:79
#, fuzzy
msgid ""
"Returns a hexadecimal representation of this array as a [String].\n"
"[codeblock]\n"
"var array = PoolByteArray([11, 46, 255])\n"
"print(array.hex_encode()) # Prints: 0b2eff\n"
"[/codeblock]"
msgstr ""
"返回该数组的十六进制,表示为一个[String]。\n"
"[codeblock]\n"
"var array = PackedByteArray([11, 46, 255])\n"
"print(array.hex_encode()) # Prints: 0b2eff\n"
"[/codeblock]"

#: doc/classes/PoolByteArray.xml:91 doc/classes/PoolColorArray.xml:43
#: doc/classes/PoolRealArray.xml:44 doc/classes/PoolStringArray.xml:44
#: doc/classes/PoolVector2Array.xml:44 doc/classes/PoolVector3Array.xml:43
msgid ""
"Inserts a new element at a given position in the array. The position must be "
"valid, or at the end of the array ([code]idx == size()[/code])."
msgstr ""
"在数组中给定的位置插入一个新元素。这个位置必须是有效的,或者是在数组的末端"
"([code]idx == size()[/code])。"

#: doc/classes/PoolByteArray.xml:102 doc/classes/PoolRealArray.xml:55
msgid "Appends an element at the end of the array."
msgstr "在数组的末尾追加一个元素。"

#: doc/classes/PoolByteArray.xml:108 doc/classes/PoolColorArray.xml:60
#: doc/classes/PoolIntArray.xml:61 doc/classes/PoolRealArray.xml:61
#: doc/classes/PoolStringArray.xml:68 doc/classes/PoolVector2Array.xml:61
#: doc/classes/PoolVector3Array.xml:60
msgid "Removes an element from the array by index."
msgstr "从数组中删除位于索引的元素。"

#: doc/classes/PoolByteArray.xml:114 doc/classes/PoolColorArray.xml:66
#: doc/classes/PoolIntArray.xml:67 doc/classes/PoolRealArray.xml:67
#: doc/classes/PoolStringArray.xml:74 doc/classes/PoolVector2Array.xml:67
#: doc/classes/PoolVector3Array.xml:66
msgid ""
"Sets the size of the array. If the array is grown, reserves elements at the "
"end of the array. If the array is shrunk, truncates the array to the new "
"size."
msgstr ""
"设置数组的大小。如果数组被增大,则保留数组末端的元素。如果数组被缩小,则将数"
"组截断到新的大小。"

#: doc/classes/PoolByteArray.xml:121
msgid "Changes the byte at the given index."
msgstr "改变给定索引处的字节。"

#: doc/classes/PoolByteArray.xml:127 doc/classes/PoolColorArray.xml:79
#: doc/classes/PoolRealArray.xml:80 doc/classes/PoolStringArray.xml:87
#: doc/classes/PoolVector2Array.xml:80 doc/classes/PoolVector3Array.xml:79
msgid "Returns the size of the array."
msgstr "返回数组的大小。"

#: doc/classes/PoolByteArray.xml:135
#, fuzzy
msgid ""
"Returns the slice of the [PoolByteArray] between indices (inclusive) as a "
"new [PoolByteArray]. Any negative index is considered to be from the end of "
"the array."
msgstr ""
"返回索引(包括其本身)之间的[PackedByteArray]的片断为一个新的"
"[PackedByteArray]。任何负的索引都被认为是从数组的末端开始的。"

#: doc/classes/PoolColorArray.xml:4
#, fuzzy
msgid "A pooled [Array] of [Color]."
msgstr "一个包装好的[Color]的[Array]。"

#: doc/classes/PoolColorArray.xml:7
#, fuzzy
msgid ""
"An [Array] specifically designed to hold [Color]. Optimized for memory "
"usage, does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference."
msgstr ""
"一个专门为容纳[Color]而设计的[Array]。紧密地包装数据,当数组尺寸较大时,这将"
"节省内存。\n"
"[b]注意:[/b] 这种类型是通过值传递的,而不是通过引用。"

#: doc/classes/PoolColorArray.xml:17
#, fuzzy
msgid ""
"Constructs a new [PoolColorArray]. Optionally, you can pass in a generic "
"[Array] that will be converted."
msgstr ""
"构造一个新的[PackedColorArray]。你可以选择传入一个通用的[Array],它将被转换。"

#: doc/classes/PoolColorArray.xml:29
#, fuzzy
msgid "Appends a [PoolColorArray] at the end of this array."
msgstr "将一个[PackedColorArray]追加到该数组的尾部。"

#: doc/classes/PoolColorArray.xml:54 doc/classes/PoolIntArray.xml:55
msgid "Appends a value to the array."
msgstr "将一个值添加到数组中。"

#: doc/classes/PoolColorArray.xml:73
msgid "Changes the [Color] at the given index."
msgstr "更改给定索引处的[Color]。"

#: doc/classes/PoolIntArray.xml:4
#, fuzzy
msgid "A pooled [Array] of integers ([int])."
msgstr "一个32位整数的压缩[Array]。"

#: doc/classes/PoolIntArray.xml:7
#, fuzzy
msgid ""
"An [Array] specifically designed to hold integer values ([int]). Optimized "
"for memory usage, does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference.\n"
"[b]Note:[/b] This type is limited to signed 32-bit integers, which means it "
"can only take values in the interval [code][-2^31, 2^31 - 1][/code], i.e. "
"[code][-2147483648, 2147483647][/code]. Exceeding those bounds will wrap "
"around. In comparison, [int] uses signed 64-bit integers which can hold much "
"larger values."
msgstr ""
"一个专门用于保存32位整数值的[阵列]。紧密地包装数据,所以它为大的数组尺寸节省"
"了内存。\n"
"[b]注意:[/b] 这种类型是通过值传递的,而不是通过引用。\n"
"[b]注意:[/b] 该类型存储有符号的32位整数,这意味着它可以在[code][-2^31, 2^31 "
"- 1][/code]之间取值,即[code][-2147483648, 2147483647][/code]。超过这些界限就"
"会被包起来。相比之下,[int]使用有符号的64位整数,可以容纳大得多的值。如果你需"
"要严格打包64位整数,请参阅[PackedInt64Array]。"

#: doc/classes/PoolIntArray.xml:18
#, fuzzy
msgid ""
"Constructs a new [PoolIntArray]. Optionally, you can pass in a generic "
"[Array] that will be converted."
msgstr ""
"构建一个新的[PackedInt32Array]。你可以选择传入一个通用的[Array],它将被转"
"换。。"

#: doc/classes/PoolIntArray.xml:30
#, fuzzy
msgid "Appends a [PoolIntArray] at the end of this array."
msgstr "在数组的末尾追加一个[PackedInt32Array]。"

#: doc/classes/PoolIntArray.xml:44
#, fuzzy
msgid ""
"Inserts a new int at a given position in the array. The position must be "
"valid, or at the end of the array ([code]idx == size()[/code])."
msgstr ""
"在数组的给定位置插入一个新的整数。位置必须是有效的,或者位于数组的末尾"
"([code]idx == size()[/code])。"

#: doc/classes/PoolIntArray.xml:74
#, fuzzy
msgid "Changes the int at the given index."
msgstr "改变给定索引处的整数。"

#: doc/classes/PoolIntArray.xml:80
msgid "Returns the array size."
msgstr "返回数组大小。"

#: doc/classes/PoolRealArray.xml:4
#, fuzzy
msgid "A pooled [Array] of reals ([float])."
msgstr "一个包装好的[Color]的[Array]。"

#: doc/classes/PoolRealArray.xml:7
msgid ""
"An [Array] specifically designed to hold floating-point values. Optimized "
"for memory usage, does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference.\n"
"[b]Note:[/b] Unlike primitive [float]s which are 64-bit, numbers stored in "
"[PoolRealArray] are 32-bit floats. This means values stored in "
"[PoolRealArray] have lower precision compared to primitive [float]s. If you "
"need to store 64-bit floats in an array, use a generic [Array] with [float] "
"elements as these will still be 64-bit. However, using a generic [Array] to "
"store [float]s will use roughly 6 times more memory compared to a "
"[PoolRealArray]."
msgstr ""

#: doc/classes/PoolRealArray.xml:18
#, fuzzy
msgid ""
"Constructs a new [PoolRealArray]. Optionally, you can pass in a generic "
"[Array] that will be converted."
msgstr ""
"构造一个新的[PackedColorArray]。你可以选择传入一个通用的[Array],它将被转换。"

#: doc/classes/PoolRealArray.xml:30
#, fuzzy
msgid "Appends a [PoolRealArray] at the end of this array."
msgstr "将一个[PackedColorArray]追加到该数组的尾部。"

#: doc/classes/PoolRealArray.xml:74
msgid "Changes the float at the given index."
msgstr "更改给定索引处的浮点数。"

#: doc/classes/PoolStringArray.xml:4
#, fuzzy
msgid "A pooled [Array] of [String]."
msgstr "一个由压缩的[String]组成的[Array]。"

#: doc/classes/PoolStringArray.xml:7
#, fuzzy
msgid ""
"An [Array] specifically designed to hold [String]s. Optimized for memory "
"usage, does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference."
msgstr ""
"一个专门设计用来保存字符串的[Array]。通过紧密地包装数据,当数组尺寸较大时,这"
"将节省一定内存。\n"
"[b]注意:[/b]该类型是通过值而不是引用传递的。"

#: doc/classes/PoolStringArray.xml:18
#, fuzzy
msgid ""
"Constructs a new [PoolStringArray]. Optionally, you can pass in a generic "
"[Array] that will be converted."
msgstr ""
"构造一个新的[PackedStringArray]。或者,您可以传入将被转换的通用[Array]。"

#: doc/classes/PoolStringArray.xml:30
#, fuzzy
msgid "Appends a [PoolStringArray] at the end of this array."
msgstr "在此数组末尾追加[PackedStringArray]。"

#: doc/classes/PoolStringArray.xml:56
#, fuzzy
msgid ""
"Returns a [String] with each element of the array joined with the given "
"[code]delimiter[/code]."
msgstr "返回与给定[code] id [/code]关联的点的权重比例。"

#: doc/classes/PoolStringArray.xml:62
msgid "Appends a string element at end of the array."
msgstr "在数组的末尾追加字符串元素。"

#: doc/classes/PoolStringArray.xml:81
msgid "Changes the [String] at the given index."
msgstr "更改给定索引处的[String]。"

#: doc/classes/PoolVector2Array.xml:4
#, fuzzy
msgid "A pooled [Array] of [Vector2]."
msgstr "[Vector2]的压缩[Array]。"

#: doc/classes/PoolVector2Array.xml:7
#, fuzzy
msgid ""
"An [Array] specifically designed to hold [Vector2]. Optimized for memory "
"usage, does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference."
msgstr ""
"专门设计用来容纳Vector2的[Array]。通过紧密地包装数据,当数组尺寸较大时,这将"
"节省一定内存。\n"
"[b] 注意:[/b]此类型是通过值传递的,而不是通过引用传递的。"

#: doc/classes/PoolVector2Array.xml:11 doc/classes/TileMap.xml:15
#: doc/classes/TileSet.xml:15
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/519"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/PoolVector2Array.xml:18
#, fuzzy
msgid ""
"Constructs a new [PoolVector2Array]. Optionally, you can pass in a generic "
"[Array] that will be converted."
msgstr ""
"构造一个新的[PackedVector2Array]。或者,您可以传入将被转换的通用[Array]。"

#: doc/classes/PoolVector2Array.xml:30
#, fuzzy
msgid "Appends a [PoolVector2Array] at the end of this array."
msgstr "在此数组末尾追加一个[PackedVector2Array]。"

#: doc/classes/PoolVector2Array.xml:55
msgid "Inserts a [Vector2] at the end."
msgstr "在末尾插入[Vector2]。"

#: doc/classes/PoolVector2Array.xml:74
msgid "Changes the [Vector2] at the given index."
msgstr "在给定索引处更改[Vector2]。"

#: doc/classes/PoolVector3Array.xml:4
#, fuzzy
msgid "A pooled [Array] of [Vector3]."
msgstr "[Vector3]的压缩[Array]。"

#: doc/classes/PoolVector3Array.xml:7
#, fuzzy
msgid ""
"An [Array] specifically designed to hold [Vector3]. Optimized for memory "
"usage, does not fragment the memory.\n"
"[b]Note:[/b] This type is passed by value and not by reference."
msgstr ""
"专门设计用来容纳Vector3的[Array]。通过紧密地包装数据,当数组尺寸较大时,这将"
"节省一定内存。\n"
"[b] 注意:[/b]此类型是通过值传递的,而不是通过引用传递的。"

#: doc/classes/PoolVector3Array.xml:17
#, fuzzy
msgid ""
"Constructs a new [PoolVector3Array]. Optionally, you can pass in a generic "
"[Array] that will be converted."
msgstr ""
"构造一个新的[PackedVector3Array]。或者,您可以传入将被转换的通用[Array]。"

#: doc/classes/PoolVector3Array.xml:29
#, fuzzy
msgid "Appends a [PoolVector3Array] at the end of this array."
msgstr "在此数组末尾追加一个[PackedVector3Array]。"

#: doc/classes/PoolVector3Array.xml:54
msgid "Inserts a [Vector3] at the end."
msgstr "在末尾插入[Vector3]。"

#: doc/classes/PoolVector3Array.xml:73
msgid "Changes the [Vector3] at the given index."
msgstr "在给定索引处更改[Vector3]。"

#: doc/classes/Popup.xml:4
msgid "Base container control for popups and dialogs."
msgstr "用于弹出窗口和对话框的基本容器控件。"

#: doc/classes/Popup.xml:7
#, fuzzy
msgid ""
"Popup is a base [Control] used to show dialogs and popups. It's a subwindow "
"and modal by default (see [Control]) and has helpers for custom popup "
"behavior. All popup methods ensure correct placement within the viewport."
msgstr ""
"弹出框是一个用于显示对话框和其他弹出框的基类[Control].默认,它是一个子窗口和模"
"态(参见[Control]),并且有自定义弹出动作的帮助程序."

#: doc/classes/Popup.xml:16
msgid "Popup (show the control in modal form)."
msgstr ""

#: doc/classes/Popup.xml:23
msgid ""
"Popup (show the control in modal form) in the center of the screen relative "
"to its current canvas transform, at the current size, or at a size "
"determined by [code]size[/code]."
msgstr ""

#: doc/classes/Popup.xml:31
msgid ""
"Popup (show the control in modal form) in the center of the screen relative "
"to the current canvas transform, clamping the size to [code]size[/code], "
"then ensuring the popup is no larger than the viewport size multiplied by "
"[code]fallback_ratio[/code]."
msgstr ""

#: doc/classes/Popup.xml:38
msgid ""
"Popup (show the control in modal form) in the center of the screen relative "
"to the current canvas transform, ensuring the size is never smaller than "
"[code]minsize[/code]."
msgstr ""

#: doc/classes/Popup.xml:45
msgid ""
"Popup (show the control in modal form) in the center of the screen relative "
"to the current canvas transform, scaled at a ratio of size of the screen."
msgstr ""

#: doc/classes/Popup.xml:51
msgid "Shrink popup to keep to the minimum size of content."
msgstr ""

#: doc/classes/Popup.xml:57
msgid ""
"If [code]true[/code], the popup will not be hidden when a click event occurs "
"outside of it, or when it receives the [code]ui_cancel[/code] action event.\n"
"[b]Note:[/b] Enabling this property doesn't affect the Close or Cancel "
"buttons' behavior in dialogs that inherit from this class. As a workaround, "
"you can use [method WindowDialog.get_close_button] or [method "
"ConfirmationDialog.get_cancel] and hide the buttons in question by setting "
"their [member CanvasItem.visible] property to [code]false[/code]."
msgstr ""

#: doc/classes/Popup.xml:65
msgid ""
"Emitted when a popup is about to be shown. This is often used in [PopupMenu] "
"to clear the list of options then create a new one according to the current "
"context."
msgstr ""

#: doc/classes/Popup.xml:70
msgid "Emitted when a popup is hidden."
msgstr "当弹出窗口被隐藏时发出."

#: doc/classes/Popup.xml:76
#, fuzzy
msgid "Notification sent right after the popup is shown."
msgstr "节点被实例化时收到的通知。"

#: doc/classes/Popup.xml:79
#, fuzzy
msgid "Notification sent right after the popup is hidden."
msgstr "节点被实例化时收到的通知。"

#: doc/classes/PopupDialog.xml:4
#, fuzzy
msgid "Base class for popup dialogs."
msgstr "分离器的基类。"

#: doc/classes/PopupDialog.xml:7
msgid ""
"PopupDialog is a base class for popup dialogs, along with [WindowDialog]."
msgstr ""

#: doc/classes/PopupDialog.xml:17
#, fuzzy
msgid "Sets a custom [StyleBox] for the panel of the [PopupDialog]."
msgstr "为 [SpinBox] 的上下箭头设置自定义 [Texture2D]。"

#: doc/classes/PopupMenu.xml:4
msgid "PopupMenu displays a list of options."
msgstr "PopupMenu(弹出菜单)显示选项列表."

#: doc/classes/PopupMenu.xml:7
msgid ""
"[PopupMenu] is a [Control] that displays a list of options. They are popular "
"in toolbars or context menus."
msgstr ""
"[PopupMenu]是一个显示选项列表的[Control].它们在工具栏或上下文菜单中很常用."

#: doc/classes/PopupMenu.xml:18
msgid ""
"Adds a new checkable item with text [code]label[/code].\n"
"An [code]id[/code] can optionally be provided, as well as an accelerator "
"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
"from the index. If no [code]accel[/code] is provided then the default "
"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
"more info on accelerators.\n"
"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
"built-in checking behavior and must be checked/unchecked manually. See "
"[method set_item_checked] for more info on how to control it."
msgstr ""
"添加一个新的带有[code]label[/code]文本的可检查项目.\n"
"可以选择提供一个[code]id[/code]以及一个快捷键([code]accel[/code])加速.如果没"
"有提供[code]id[/code],将从索引中创建一个.如果没有提供[code]accel[/code],那么"
"将为其分配默认的[code]0[/code].参见 [method get_item_accelerator]了解更多关于"
"快捷键的信息.\n"
"[b]注意:[/b]可检查项目只是显示一个检查标记,但没有任何内置的检查行为,必须手动"
"检查或取消检查.参见[method set_item_checked]了解更多关于如何控制它的信息."

#: doc/classes/PopupMenu.xml:29
msgid ""
"Adds a new checkable item and assigns the specified [ShortCut] to it. Sets "
"the label of the checkbox to the [ShortCut]'s name.\n"
"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
"provided, one will be created from the index.\n"
"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
"built-in checking behavior and must be checked/unchecked manually. See "
"[method set_item_checked] for more info on how to control it."
msgstr ""
"添加一个新的可检查项目,并将指定的[ShortCut]分配给它.将复选框的标签设置为"
"ShortCut的名称.\n"
"可以选择提供一个[code]id[/code].如果没有提供[code]id[/code],将从索引中创建一"
"个.\n"
"[b]注意:[/b]可检查项目只是显示一个检查标记,但没有任何内置的检查行为,必须手动"
"检查或取消检查. 参见 [method set_item_checked]了解更多关于如何控制它的信息."

#: doc/classes/PopupMenu.xml:41
msgid ""
"Adds a new checkable item with text [code]label[/code] and icon "
"[code]texture[/code].\n"
"An [code]id[/code] can optionally be provided, as well as an accelerator "
"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
"from the index. If no [code]accel[/code] is provided then the default "
"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
"more info on accelerators.\n"
"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
"built-in checking behavior and must be checked/unchecked manually. See "
"[method set_item_checked] for more info on how to control it."
msgstr ""
"添加一个新的可检查项目,带有文本[code]label[/code]和图标[code]texture[/"
"code]。\n"
"可以选择提供一个[code]id[/code],以及一个加速器([code]accel[/code])。如果没"
"有提供[code]id[/code],将从索引中创建一个。如果没有提供[code]accel[/code],那"
"么默认的[code]0[/code]将被分配给它。参见[method get_item_accelerator]获取更多"
"关于加速器的信息。\n"
"[b]注意:[/b] 可选项目只是显示一个复选标记,但没有任何内置的检查行为,必须手"
"动检查/取消检查。参见[method set_item_checked]获取更多关于如何控制它的信息。"

#: doc/classes/PopupMenu.xml:53
msgid ""
"Adds a new checkable item and assigns the specified [ShortCut] and icon "
"[code]texture[/code] to it. Sets the label of the checkbox to the "
"[ShortCut]'s name.\n"
"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
"provided, one will be created from the index.\n"
"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
"built-in checking behavior and must be checked/unchecked manually. See "
"[method set_item_checked] for more info on how to control it."
msgstr ""
"添加一个新的可选项目,并为其分配指定的[ShortCut]和图标[code]texture[/code]。"
"将复选框的标签设置为[ShortCut]的名称。\n"
"可以选择提供一个[code]id[/code]。如果没有提供[code]id[/code],将从索引中创建"
"一个。\n"
"[b]注意:[/b] 可选项目只是显示一个复选标记,但没有任何内置的检查行为,必须手"
"动检查/取消检查。参见[method set_item_checked]获取更多关于如何控制它的信息。"

#: doc/classes/PopupMenu.xml:65
msgid ""
"Adds a new item with text [code]label[/code] and icon [code]texture[/code].\n"
"An [code]id[/code] can optionally be provided, as well as an accelerator "
"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
"from the index. If no [code]accel[/code] is provided then the default "
"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
"more info on accelerators."
msgstr ""
"添加带有文本[code]lable[/code]和图标[code]texture[/code]的新项目。\n"
"可以选择提供一个[code]id[/code],以及一个加速器([code]accel[/code])。如果没有"
"提供[code]id[/code],将从索引中创建一个。如果没有提供[code]accel[/code],则将"
"为其分配默认的[code]0[/code]。有关加速器的更多信息,请参见[method "
"get_item_accelerator]。"

#: doc/classes/PopupMenu.xml:76
msgid "Same as [method add_icon_check_item], but uses a radio check button."
msgstr "与[method add_icon_check_item]相同,但使用单选按钮。"

#: doc/classes/PopupMenu.xml:86
msgid ""
"Same as [method add_icon_check_shortcut], but uses a radio check button."
msgstr "与[method add_icon_check_shortcut]相同,但使用一个单选按钮。"

#: doc/classes/PopupMenu.xml:96
msgid ""
"Adds a new item and assigns the specified [ShortCut] and icon [code]texture[/"
"code] to it. Sets the label of the checkbox to the [ShortCut]'s name.\n"
"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
"provided, one will be created from the index."
msgstr ""
"添加一个新项,并分配指定的[ShortCut]和图标[code]texture[/code]给它。将复选框"
"的标签设置为[ShortCut]的名称。\n"
"可以选择提供[code]id[/code]。如果没有提供[code]id[/code],将从索引中创建一"
"个。"

#: doc/classes/PopupMenu.xml:106
msgid ""
"Adds a new item with text [code]label[/code].\n"
"An [code]id[/code] can optionally be provided, as well as an accelerator "
"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
"from the index. If no [code]accel[/code] is provided then the default "
"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
"more info on accelerators."
msgstr ""
"添加一个带有文本[code]label[/code]的新项目。\n"
"可以选择提供[code]id[/code],以及加速器([code]accel[/code])。如果没有提供"
"[code]id[/code],将从索引中创建一个。如果没有提供[code]accel[/code],则默认的"
"[code]0[/code]将被分配给它。有关加速器的更多信息,请参见[method "
"get_item_accelerator]。"

#: doc/classes/PopupMenu.xml:118
msgid ""
"Adds a new multistate item with text [code]label[/code].\n"
"Contrarily to normal binary items, multistate items can have more than two "
"states, as defined by [code]max_states[/code]. Each press or activate of the "
"item will increase the state by one. The default value is defined by "
"[code]default_state[/code].\n"
"An [code]id[/code] can optionally be provided, as well as an accelerator "
"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
"from the index. If no [code]accel[/code] is provided then the default "
"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
"more info on accelerators."
msgstr ""
"添加一个带有文本[code]label[/code]的新的多状态项。\n"
"与普通的二进制项相反,多状态项可以有两个以上的状态,如[code]max_states[/code]"
"所定义的。每次按下或激活物品将增加一个状态。默认值由[code]default_state[/"
"code]定义。\n"
"可以选择提供[code]id[/code],以及加速器([code]accel[/code])。如果没有提供"
"[code]id[/code],将从索引中创建一个。如果没有提供[code]accel[/code],则默认的"
"[code]0[/code]将被分配给它。有关加速器的更多信息,请参见[方法"
"get_item_accelerator]。"

#: doc/classes/PopupMenu.xml:129
msgid ""
"Adds a new radio check button with text [code]label[/code].\n"
"An [code]id[/code] can optionally be provided, as well as an accelerator "
"([code]accel[/code]). If no [code]id[/code] is provided, one will be created "
"from the index. If no [code]accel[/code] is provided then the default "
"[code]0[/code] will be assigned to it. See [method get_item_accelerator] for "
"more info on accelerators.\n"
"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
"built-in checking behavior and must be checked/unchecked manually. See "
"[method set_item_checked] for more info on how to control it."
msgstr ""
"添加一个带有文本[code]label[/code]的单选按钮。\n"
"可以选择提供[code]id[/code],以及加速器([code]accel[/code])。如果没有提供"
"[code]id[/code],将从索引中创建一个。如果没有提供[code]accel[/code],则默认的"
"[code]0[/code]将被分配给它。有关加速器的更多信息,请参见[method "
"get_item_accelerator]。\n"
"[b]注:[/b] Checkable项目只是显示一个复选标记,但没有任何内置的检查行为,必须"
"手动检查/不检查。有关如何控制它的更多信息,请参见[set_item_checked方法]。"

#: doc/classes/PopupMenu.xml:140
msgid ""
"Adds a new radio check button and assigns a [ShortCut] to it. Sets the label "
"of the checkbox to the [ShortCut]'s name.\n"
"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
"provided, one will be created from the index.\n"
"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
"built-in checking behavior and must be checked/unchecked manually. See "
"[method set_item_checked] for more info on how to control it."
msgstr ""
"添加一个新的单选复选按钮并为其分配一个[ShortCut]。将复选框的标签设置为"
"[ShortCut]的名称。\n"
"可以选择提供[code]id[/code]。如果没有提供[code]id[/code],将从索引中创建一"
"个。\n"
"[b]注:[/b] Checkable项目只是显示一个复选标记,但没有任何内置的检查行为,必须"
"手动检查/不检查。有关如何控制它的更多信息,请参见[method set_item_checked]。"

#: doc/classes/PopupMenu.xml:150
msgid ""
"Adds a separator between items. Separators also occupy an index, which you "
"can set by using the [code]id[/code] parameter.\n"
"A [code]label[/code] can optionally be provided, which will appear at the "
"center of the separator."
msgstr ""

#: doc/classes/PopupMenu.xml:160
msgid ""
"Adds a [ShortCut].\n"
"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
"provided, one will be created from the index."
msgstr ""
"添加一个[ShortCut]。\n"
"可以选择提供[code]id[/code]。如果没有提供[code]id[/code],将从索引中创建一"
"个。"

#: doc/classes/PopupMenu.xml:170
msgid ""
"Adds an item that will act as a submenu of the parent [PopupMenu] node when "
"clicked. The [code]submenu[/code] argument is the name of the child "
"[PopupMenu] node that will be shown when the item is clicked.\n"
"An [code]id[/code] can optionally be provided. If no [code]id[/code] is "
"provided, one will be created from the index."
msgstr ""
"添加一个项目,当单击父[PopupMenu]节点时,它将作为子菜单。[code]submenu[/code]"
"参数是子节点[PopupMenu]的名称,当点击项目时显示该子节点。\n"
"可以选择提供[code]id[/code]。如果没有提供[code]id[/code],将从索引中创建一"
"个。"

#: doc/classes/PopupMenu.xml:177
msgid "Removes all items from the [PopupMenu]."
msgstr "从[PopupMenu]中移除所有项目。"

#: doc/classes/PopupMenu.xml:183
#, fuzzy
msgid ""
"Returns the index of the currently focused item. Returns [code]-1[/code] if "
"no item is focused."
msgstr "当前选定项的索引,如果没有选定项,则为[code]-1[/code]。"

#: doc/classes/PopupMenu.xml:190
msgid ""
"Returns the accelerator of the item at index [code]idx[/code]. Accelerators "
"are special combinations of keys that activate the item, no matter which "
"control is focused."
msgstr ""
"返回索引[code]idx[/code]处项目的加速项。加速器是一种特殊的按键组合,可以激活"
"物品,无论哪个控制键处于焦点状态。"

#: doc/classes/PopupMenu.xml:196
msgid "Returns the number of items in the [PopupMenu]."
msgstr "返回[PopupMenu]中的项目数。"

#: doc/classes/PopupMenu.xml:210
msgid ""
"Returns the id of the item at index [code]idx[/code]. [code]id[/code] can be "
"manually assigned, while index can not."
msgstr ""
"返回索引[code]idx[/code]处项目的id。[code]id[/code]可以手动分配,而索引不能。"

#: doc/classes/PopupMenu.xml:217
msgid ""
"Returns the index of the item containing the specified [code]id[/code]. "
"Index is automatically assigned to each item by the engine. Index can not be "
"set manually."
msgstr ""
"返回包含指定的[code]id[/code]的项的索引。索引由引擎自动分配给每个项目。不能手"
"动设置索引。"

#: doc/classes/PopupMenu.xml:224
msgid ""
"Returns the metadata of the specified item, which might be of any type. You "
"can set it with [method set_item_metadata], which provides a simple way of "
"assigning context data to items."
msgstr ""
"返回指定项的元数据,该项可以是任何类型。您可以使用[method set_item_metadata]"
"来设置它,它提供了一种将上下文数据分配给项的简单方法。"

#: doc/classes/PopupMenu.xml:231
msgid ""
"Returns the [ShortCut] associated with the specified [code]idx[/code] item."
msgstr "返回与指定的[code]idx[/code]项关联的[ShortCut]。"

#: doc/classes/PopupMenu.xml:238
msgid ""
"Returns the submenu name of the item at index [code]idx[/code]. See [method "
"add_submenu_item] for more info on how to add a submenu."
msgstr ""
"返回在索引[code]idx[/code]处的项目的子菜单名。更多关于如何添加子菜单的信息,"
"请参见[method add_submenu_item]。"

#: doc/classes/PopupMenu.xml:252
msgid ""
"Returns the tooltip associated with the specified index index [code]idx[/"
"code]."
msgstr "返回与指定索引 [code]idx[/code]关联的工具提示。"

#: doc/classes/PopupMenu.xml:258
#, fuzzy
msgid ""
"Returns [code]true[/code] if the popup will be hidden when the window loses "
"focus or not."
msgstr "该字符串以指定字符串开头时,返回 [code]true[/code]。"

#: doc/classes/PopupMenu.xml:265
msgid ""
"Returns [code]true[/code] if the item at index [code]idx[/code] is checkable "
"in some way, i.e. if it has a checkbox or radio button.\n"
"[b]Note:[/b] Checkable items just display a checkmark or radio button, but "
"don't have any built-in checking behavior and must be checked/unchecked "
"manually."
msgstr ""
"如果索引[code]idx[/code]的项目以某种方式是可检查的,例如,如果它有一个复选框"
"或单选按钮,则返回[code]true[/code]。\n"
"[b]注:[/b]可检查项目只是显示一个复选标记或单选按钮,但没有任何内置的检查行"
"为,必须手动检查/取消。"

#: doc/classes/PopupMenu.xml:273
msgid ""
"Returns [code]true[/code] if the item at index [code]idx[/code] is checked."
msgstr "如果索引[code]idx[/code]项被选中,则返回[code]true[/code]。"

#: doc/classes/PopupMenu.xml:280
msgid ""
"Returns [code]true[/code] if the item at index [code]idx[/code] is disabled. "
"When it is disabled it can't be selected, or its action invoked.\n"
"See [method set_item_disabled] for more info on how to disable an item."
msgstr ""
"如果索引[code]idx[/code]项被禁用,返回[code]true[/code]。当它被禁用时,就无法"
"选择它,或者调用它的操作。\n"
"有关如何禁用一个项目的更多信息,请参见[method set_item_disabled]。"

#: doc/classes/PopupMenu.xml:288
msgid ""
"Returns [code]true[/code] if the item at index [code]idx[/code] has radio "
"button-style checkability.\n"
"[b]Note:[/b] This is purely cosmetic; you must add the logic for checking/"
"unchecking items in radio groups."
msgstr ""
"如果index [code]idx[/code]具有单选按钮样式的可检查性,则返回[code]true[/"
"code]。\n"
"[b]注:[/b]这纯粹是装饰性的;您必须添加用于在单选组中检查/取消检查项目的逻辑。"

#: doc/classes/PopupMenu.xml:296
msgid ""
"Returns [code]true[/code] if the item is a separator. If it is, it will be "
"displayed as a line. See [method add_separator] for more info on how to add "
"a separator."
msgstr ""
"如果项目是分隔符,则返回[code]true[/code]。如果是,它将显示为一行。有关如何添"
"加分隔符的更多信息,请参见[method add_separator]。"

#: doc/classes/PopupMenu.xml:303
msgid "Returns [code]true[/code] if the specified item's shortcut is disabled."
msgstr "如果指定项的快捷方式被禁用,则返回[code]true[/code]。"

#: doc/classes/PopupMenu.xml:310
msgid ""
"Removes the item at index [code]idx[/code] from the menu.\n"
"[b]Note:[/b] The indices of items after the removed item will be shifted by "
"one."
msgstr ""
"从菜单中移除索引[code]idx[/code]项。\n"
"[b]注:[/b]被移除项后的项的索引将被移位1。"

#: doc/classes/PopupMenu.xml:318
#, fuzzy
msgid "Hides the [PopupMenu] when the window loses focus."
msgstr "当节点失去焦点时发送。"

#: doc/classes/PopupMenu.xml:326
msgid ""
"Sets the accelerator of the item at index [code]idx[/code]. Accelerators are "
"special combinations of keys that activate the item, no matter which control "
"is focused."
msgstr ""
"设置索引[code]idx[/code]项的加速键。加速器是一种特殊的按键组合,可以激活物"
"品,无论哪个控制键处于焦点状态。"

#: doc/classes/PopupMenu.xml:334
msgid ""
"Sets whether the item at index [code]idx[/code] has a checkbox. If "
"[code]false[/code], sets the type of the item to plain text.\n"
"[b]Note:[/b] Checkable items just display a checkmark, but don't have any "
"built-in checking behavior and must be checked/unchecked manually."
msgstr ""
"设置索引[code]idx[/code]项是否有复选框。如果[code]false[/code],则将项目类型"
"设置为纯文本。\n"
"[b]注:[/b] Checkable项目只是显示一个复选标记,但没有任何内置的检查行为,必须"
"手动检查/不检查。"

#: doc/classes/PopupMenu.xml:343
msgid ""
"Sets the type of the item at the specified index [code]idx[/code] to radio "
"button. If [code]false[/code], sets the type of the item to plain text."
msgstr ""
"将指定索引[code]idx[/code]处的项目类型设置为单选按钮。如果[code]false[/"
"code],则将项目类型设置为纯文本。"

#: doc/classes/PopupMenu.xml:351
msgid ""
"Mark the item at index [code]idx[/code] as a separator, which means that it "
"would be displayed as a line. If [code]false[/code], sets the type of the "
"item to plain text."
msgstr ""
"将索引 [code]idx[/code]标记为分隔符,这意味着它将显示为一行。如果"
"[code]false[/code],则将项目类型设置为纯文本。"

#: doc/classes/PopupMenu.xml:359
msgid "Sets the checkstate status of the item at index [code]idx[/code]."
msgstr "设置项目在index [code]idx[/code]处的checkstate状态。"

#: doc/classes/PopupMenu.xml:367
msgid ""
"Enables/disables the item at index [code]idx[/code]. When it is disabled, it "
"can't be selected and its action can't be invoked."
msgstr ""
"启用/禁用索引[code]idx[/code]项。当它被禁用时,就无法选择它,也无法调用它的操"
"作。"

#: doc/classes/PopupMenu.xml:375
#, fuzzy
msgid "Replaces the [Texture] icon of the specified [code]idx[/code]."
msgstr "替换指定[code]idx[/code]的[Texture2D]图标。"

#: doc/classes/PopupMenu.xml:383
msgid "Sets the [code]id[/code] of the item at index [code]idx[/code]."
msgstr "在索引[code]idx[/code]处设置项目的[code]id[/code]。"

#: doc/classes/PopupMenu.xml:391
msgid ""
"Sets the metadata of an item, which may be of any type. You can later get it "
"with [method get_item_metadata], which provides a simple way of assigning "
"context data to items."
msgstr ""
"设置项的元数据,该项可以是任何类型。稍后您可以使用[method get_item_metadata]"
"获取它,它提供了一种将上下文数据分配给项的简单方法。"

#: doc/classes/PopupMenu.xml:399
#, fuzzy
msgid ""
"Sets the state of a multistate item. See [method add_multistate_item] for "
"details."
msgstr "设置多状态项的状态。详情请参见[method add_multistate_item]。"

#: doc/classes/PopupMenu.xml:408
msgid "Sets a [ShortCut] for the specified item [code]idx[/code]."
msgstr "为指定的项目[code]idx[/code]设置[ShortCut]。"

#: doc/classes/PopupMenu.xml:416
msgid "Disables the [ShortCut] of the specified index [code]idx[/code]."
msgstr "禁用指定索引[code]idx[/code]的[ShortCut]。"

#: doc/classes/PopupMenu.xml:424
msgid ""
"Sets the submenu of the item at index [code]idx[/code]. The submenu is the "
"name of a child [PopupMenu] node that would be shown when the item is "
"clicked."
msgstr ""
"将项目的子菜单设置为索引[code]idx[/code]。子菜单是一个子[PopupMenu]节点的名"
"称,在单击项目时显示该节点。"

#: doc/classes/PopupMenu.xml:440
msgid ""
"Sets the [String] tooltip of the item at the specified index [code]idx[/"
"code]."
msgstr "在指定的索引[code]idx[/code]处设置项目的[String]工具提示。"

#: doc/classes/PopupMenu.xml:447
msgid ""
"Toggles the check state of the item of the specified index [code]idx[/code]."
msgstr "切换指定索引[code]idx[/code]项的检查状态。"

#: doc/classes/PopupMenu.xml:454
#, fuzzy
msgid ""
"Cycle to the next state of a multistate item. See [method "
"add_multistate_item] for details."
msgstr "循环到多状态项的下一个状态。详情请参见[method add_multistate_item]。"

#: doc/classes/PopupMenu.xml:460
#, fuzzy
msgid "If [code]true[/code], allows navigating [PopupMenu] with letter keys."
msgstr "如果[code]true[/code],允许使用字母键导航[PopupMenu]。"

#: doc/classes/PopupMenu.xml:464
msgid ""
"If [code]true[/code], hides the [PopupMenu] when a checkbox or radio button "
"is selected."
msgstr "如果[code]true[/code],则在选中复选框或单选按钮时隐藏[PopupMenu]。"

#: doc/classes/PopupMenu.xml:467
msgid "If [code]true[/code], hides the [PopupMenu] when an item is selected."
msgstr "如果[code]true[/code],当一个项目被选中时隐藏[PopupMenu]。"

#: doc/classes/PopupMenu.xml:470
msgid ""
"If [code]true[/code], hides the [PopupMenu] when a state item is selected."
msgstr "如果[code]true[/code],则在选中状态项时隐藏[PopupMenu]。"

#: doc/classes/PopupMenu.xml:473
msgid ""
"Sets the delay time in seconds for the submenu item to popup on mouse "
"hovering. If the popup menu is added as a child of another (acting as a "
"submenu), it will inherit the delay time of the parent menu item."
msgstr ""
"设置鼠标悬停时子菜单项弹出的延迟时间(以秒为单位)。如果弹出菜单被添加为另一个"
"菜单的子菜单(作为子菜单),它将继承父菜单项的延迟时间。"

#: doc/classes/PopupMenu.xml:480
msgid ""
"Emitted when user navigated to an item of some [code]id[/code] using "
"[code]ui_up[/code] or [code]ui_down[/code] action."
msgstr ""
"当用户使用[code]ui_up[/code]或[code]ui_down[/code]操作导航到某个[code]id[/"
"code]项时触发。"

#: doc/classes/PopupMenu.xml:486
msgid ""
"Emitted when an item of some [code]id[/code] is pressed or its accelerator "
"is activated."
msgstr "当按下某个[code]id[/code]的项目或激活其加速器时触发。"

#: doc/classes/PopupMenu.xml:492
msgid ""
"Emitted when an item of some [code]index[/code] is pressed or its "
"accelerator is activated."
msgstr "当按下某个[code]index[/code]的项或激活其加速器时触发。"

#: doc/classes/PopupMenu.xml:500
#, fuzzy
msgid "[Texture] icon for the checked checkbox items."
msgstr "选中的复选框项目的[Texture2D]图标。"

#: doc/classes/PopupMenu.xml:503
msgid "[Font] used for the menu items."
msgstr "用于菜单项的[Font]字体。"

#: doc/classes/PopupMenu.xml:506
msgid "The default text [Color] for menu items' names."
msgstr "菜单项名称的默认文本[Color]。"

#: doc/classes/PopupMenu.xml:509
msgid ""
"The text [Color] used for shortcuts and accelerators that show next to the "
"menu item name when defined. See [method get_item_accelerator] for more info "
"on accelerators."
msgstr ""
"文本[Color]用于快捷键和加速器,当定义时显示在菜单项名称旁边。有关加速器的更多"
"信息,请参见[method get_item_accelerator]。"

#: doc/classes/PopupMenu.xml:512
msgid "[Color] used for disabled menu items' text."
msgstr "用于禁用菜单项的文本[Color]。"

#: doc/classes/PopupMenu.xml:515
msgid "[Color] used for the hovered text."
msgstr "用于悬停文本的[Color]。"

#: doc/classes/PopupMenu.xml:518
#, fuzzy
msgid "[Color] used for labeled separators' text. See [method add_separator]."
msgstr "用于分隔符的[StyleBox]。请参见[方法add_separator]。"

#: doc/classes/PopupMenu.xml:521
msgid "[StyleBox] displayed when the [PopupMenu] item is hovered."
msgstr "当[PopupMenu]项目被鼠标悬停时显示的[StyleBox]。"

#: doc/classes/PopupMenu.xml:524
msgid ""
"The horizontal space between the item's name and the shortcut text/submenu "
"arrow."
msgstr "项目名称与快捷文本/子菜单箭头之间的水平空间。"

#: doc/classes/PopupMenu.xml:527
msgid ""
"[StyleBox] for the left side of labeled separator. See [method "
"add_separator]."
msgstr "用于标签分隔器的左侧[StyleBox](样式盒子).参见 [method add_separator]."

#: doc/classes/PopupMenu.xml:530
msgid ""
"[StyleBox] for the right side of labeled separator. See [method "
"add_separator]."
msgstr "用于标签分隔器的右侧[StyleBox](样式盒子).参见 [method add_separator]."

#: doc/classes/PopupMenu.xml:533
msgid "Default [StyleBox] of the [PopupMenu] items."
msgstr "[PopupMenu](弹出菜单)项的默认[StyleBox](样式盒子)."

#: doc/classes/PopupMenu.xml:536
msgid "[StyleBox] used when the [PopupMenu] item is disabled."
msgstr "禁用[PopupMenu](弹出菜单)项时使用的[StyleBox](样式盒子)."

#: doc/classes/PopupMenu.xml:539
#, fuzzy
msgid "[Texture] icon for the checked radio button items."
msgstr "选中单选按钮项目的[Texture2D]图标。"

#: doc/classes/PopupMenu.xml:542
#, fuzzy
msgid "[Texture] icon for the unchecked radio button items."
msgstr "选中单选按钮项目的[Texture2D]图标。"

#: doc/classes/PopupMenu.xml:545
msgid "[StyleBox] used for the separators. See [method add_separator]."
msgstr "用于分隔符的[StyleBox]。请参见[方法add_separator]。"

#: doc/classes/PopupMenu.xml:548
#, fuzzy
msgid "[Texture] icon for the submenu arrow."
msgstr "子菜单箭头的[Texture2D]图标。"

#: doc/classes/PopupMenu.xml:551
#, fuzzy
msgid "[Texture] icon for the unchecked checkbox items."
msgstr "未选中复选框项目的[Texture2D]图标。"

#: doc/classes/PopupMenu.xml:554
msgid "The vertical space between each menu item."
msgstr "每个菜单项之间的垂直间距。"

#: doc/classes/PopupPanel.xml:4
msgid "Class for displaying popups with a panel background."
msgstr "用于显示带有面板背景的弹出窗口的类。"

#: doc/classes/PopupPanel.xml:7
#, fuzzy
msgid ""
"Class for displaying popups with a panel background. In some cases it might "
"be simpler to use than [Popup], since it provides a configurable background. "
"If you are making windows, better check [WindowDialog]."
msgstr ""
"用于显示带有面板背景的弹出窗口的类。在某些情况下,它可能比[PopupWindow]更容易"
"使用,因为它提供了一个可配置的背景。如果你正在制作窗口,最好选择[Window]。"

#: doc/classes/PopupPanel.xml:17
msgid "The background panel style of this [PopupPanel]."
msgstr "这个[PopupPanel]的背景面板样式。"

#: doc/classes/Portal.xml:4
msgid "Portal nodes are used to enable visibility between [Room]s."
msgstr ""

#: doc/classes/Portal.xml:7
msgid ""
"[Portal]s are a special type of [MeshInstance] that allow the portal culling "
"system to 'see' from one room to the next. They often correspond to doors "
"and windows in level geometry. By only allowing [Camera]s to see through "
"portals, this allows the system to cull out all the objects in rooms that "
"cannot be seen through portals. This is a form of [b]occlusion culling[/b], "
"and can greatly increase performance.\n"
"There are some limitations to the form of portals:\n"
"They must be single sided convex polygons, and usually you would orientate "
"their front faces [b]outward[/b] from the [Room] they are placed in. The "
"vertices should be positioned on a single plane (although their positioning "
"does not have to be perfect).\n"
"There is no need to place an opposite portal in an adjacent room, links are "
"made two-way automatically."
msgstr ""

#: doc/classes/Portal.xml:20 doc/classes/Room.xml:21
msgid "Sets individual points. Primarily for use by the editor."
msgstr ""

#: doc/classes/Portal.xml:26
msgid ""
"This is a shortcut for setting the linked [Room] in the name of the [Portal] "
"(the name is used during conversion)."
msgstr ""

#: doc/classes/Portal.xml:29
msgid ""
"The points defining the shape of the [Portal] polygon (which should be "
"convex).\n"
"These are defined in 2D, with [code]0,0[/code] being the origin of the "
"[Portal] node's [member Spatial.global_transform].\n"
"[b]Note:[/b] These raw points are sanitized for winding order internally."
msgstr ""

#: doc/classes/Portal.xml:34
msgid ""
"Visibility through [Portal]s can be turned on and off at runtime - this is "
"useful for having closable doors."
msgstr ""

#: doc/classes/Portal.xml:37
msgid ""
"Some objects are so big that they may be present in more than one [Room] "
"('sprawling'). As we often don't want objects that *just* breach the edges "
"to be assigned to neighbouring rooms, you can assign an extra margin through "
"the [Portal] to allow objects to breach without sprawling."
msgstr ""

#: doc/classes/Portal.xml:40
msgid ""
"Portals default to being two way - see through in both directions, however "
"you can make them one way, visible from the source room only."
msgstr ""

#: doc/classes/Portal.xml:43
msgid ""
"In most cases you will want to use the default [Portal] margin in your "
"portals (this is set in the [RoomManager]).\n"
"If you want to override this default, set this value to [code]false[/code], "
"and the local [member portal_margin] will take effect."
msgstr ""

#: doc/classes/Position2D.xml:4
msgid "Generic 2D position hint for editing."
msgstr "用于编辑的通用2D位置提示。"

#: doc/classes/Position2D.xml:7
msgid ""
"Generic 2D position hint for editing. It's just like a plain [Node2D], but "
"it displays as a cross in the 2D editor at all times. You can set cross' "
"visual size by using the gizmo in the 2D editor while the node is selected."
msgstr ""
"用于编辑的通用2D位置提示。它就像一个普通的[Node2D],但它在2D编辑器中始终显示"
"为一个十字。选择节点时,可以使用2D编辑器中的小控件来设置十字的视觉大小。"

#: doc/classes/Position3D.xml:4
msgid "Generic 3D position hint for editing."
msgstr "用于编辑的通用三维位置提示。"

#: doc/classes/Position3D.xml:7
#, fuzzy
msgid ""
"Generic 3D position hint for editing. It's just like a plain [Spatial], but "
"it displays as a cross in the 3D editor at all times."
msgstr ""
"用于编辑的通用三维位置提示。它就像一个普通的[Node3D],但它在3D编辑器中始终显"
"示为十字。"

#: doc/classes/PrimitiveMesh.xml:4
msgid ""
"Base class for all primitive meshes. Handles applying a [Material] to a "
"primitive mesh."
msgstr "所有基本网格的基类。将[Material]材质应用于基本网格。"

#: doc/classes/PrimitiveMesh.xml:7
msgid ""
"Base class for all primitive meshes. Handles applying a [Material] to a "
"primitive mesh. Examples include [CapsuleMesh], [CubeMesh], [CylinderMesh], "
"[PlaneMesh], [PrismMesh], [QuadMesh], and [SphereMesh]."
msgstr ""
"所有基本网格的基类。处理将[Material]材质应用于基本网格。示例包括 "
"[CapsuleMesh], [CubeMesh], [CylinderMesh], [PlaneMesh], [PrismMesh], "
"[QuadMesh], and [SphereMesh]。"

#: doc/classes/PrimitiveMesh.xml:15
msgid ""
"Returns mesh arrays used to constitute surface of [Mesh]. The result can be "
"passed to [method ArrayMesh.add_surface_from_arrays] to create a new "
"surface. For example:\n"
"[codeblock]\n"
"var c := CylinderMesh.new()\n"
"var arr_mesh := ArrayMesh.new()\n"
"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c."
"get_mesh_arrays())\n"
"[/codeblock]"
msgstr ""
"返回用于构成[Mesh]表面的网格数组。结果可以传递给 [method ArrayMesh."
"add_surface_from_arrays]来创建一个新的曲面。例如:\n"
"[codeblock]\n"
"var c := CylinderMesh.new()\n"
"var arr_mesh := ArrayMesh.new()\n"
"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, c."
"get_mesh_arrays())\n"
"[/codeblock]"

#: doc/classes/PrimitiveMesh.xml:29
#, fuzzy
msgid ""
"If set, the order of the vertices in each triangle are reversed resulting in "
"the backside of the mesh being drawn.\n"
"This gives the same result as using [constant SpatialMaterial.CULL_BACK] in "
"[member SpatialMaterial.params_cull_mode]."
msgstr ""
"如果设置,每个三角形中顶点的顺序颠倒,导致网格的背面被绘制。\n"
"这给出了与使用[constant BaseMaterial3D相同的结果。在[member BaseMaterial3D."
"cull_mode]中的CULL_BACK]。"

#: doc/classes/PrimitiveMesh.xml:33
msgid "The current [Material] of the primitive mesh."
msgstr "原始网格的当前[Material]。"

#: doc/classes/PrismMesh.xml:4 doc/classes/PrismMesh.xml:7
msgid "Class representing a prism-shaped [PrimitiveMesh]."
msgstr "表示棱柱形[PrimitiveMesh]的类。"

#: doc/classes/PrismMesh.xml:15
msgid ""
"Displacement of the upper edge along the X axis. 0.0 positions edge straight "
"above the bottom-left edge."
msgstr "上边缘沿X轴的位移。0.0将边缘定位在左下边缘的正上方。"

#: doc/classes/PrismMesh.xml:18
msgid "Size of the prism."
msgstr "棱镜的大小。"

#: doc/classes/PrismMesh.xml:21
msgid "Number of added edge loops along the Z axis."
msgstr "沿Z轴添加的边循环数。"

#: doc/classes/PrismMesh.xml:24
msgid "Number of added edge loops along the Y axis."
msgstr "沿Y轴添加的边循环数。"

#: doc/classes/PrismMesh.xml:27
msgid "Number of added edge loops along the X axis."
msgstr "沿X轴添加的边循环数。"

#: doc/classes/ProceduralSky.xml:4
#, fuzzy
msgid ""
"Type of [Sky] that is generated procedurally based on user input parameters."
msgstr "与[Sky]一起使用的[Material]根据用户输入参数生成背景。"

#: doc/classes/ProceduralSky.xml:7
#, fuzzy
msgid ""
"ProceduralSky provides a way to create an effective background quickly by "
"defining procedural parameters for the sun, the sky and the ground. The sky "
"and ground are very similar, they are defined by a color at the horizon, "
"another color, and finally an easing curve to interpolate between these two "
"colors. Similarly, the sun is described by a position in the sky, a color, "
"and an easing curve. However, the sun also defines a minimum and maximum "
"angle, these two values define at what distance the easing curve begins and "
"ends from the sun, and thus end up defining the size of the sun in the sky.\n"
"The ProceduralSky is updated on the CPU after the parameters change. It is "
"stored in a texture and then displayed as a background in the scene. This "
"makes it relatively unsuitable for real-time updates during gameplay. "
"However, with a small enough texture size, it can still be updated "
"relatively frequently, as it is updated on a background thread when multi-"
"threading is available."
msgstr ""
"ProceduralSkyMaterial通过定义太阳、天空和地面的程序参数,提供了一种快速创建有"
"效背景的方法。天空和地面非常相似,它们由地平线上的一种颜色、另一种颜色以及最"
"后插入这两种颜色之间的缓和曲线来定义。类似地,太阳由天空中的位置、颜色和缓和"
"曲线来描述。然而,太阳还定义了最小和最大角度,这两个值定义了缓和曲线从太阳开"
"始和结束的距离,从而最终定义了太阳在天空中的大小。\n"
"[ProceduralSkyMaterial]使用轻量级着色器绘制天空,因此适合实时更新。当你不需要"
"一个不现实的快速天空时,这是一个很好的选择。\n"
"[ProceduralSkyMaterial]最多支持4个太阳。每个太阳都从场景中相应的"
"[DirectionalLight3D]获取其颜色、能量和方向。"

#: doc/classes/ProceduralSky.xml:16
#, fuzzy
msgid "Color of the ground at the bottom."
msgstr "标题文字的颜色。"

#: doc/classes/ProceduralSky.xml:19
msgid ""
"How quickly the [member ground_horizon_color] fades into the [member "
"ground_bottom_color]."
msgstr "[member ground_horizon_color]淡入[member ground_bottom_color]的速度。"

#: doc/classes/ProceduralSky.xml:22
msgid "Amount of energy contribution from the ground."
msgstr "来自地面的能量贡献量。"

#: doc/classes/ProceduralSky.xml:25
#, fuzzy
msgid "Color of the ground at the horizon."
msgstr "参考线的[Color]颜色。"

#: doc/classes/ProceduralSky.xml:28
msgid ""
"How quickly the [member sky_horizon_color] fades into the [member "
"sky_top_color]."
msgstr "[member sky_horizon_color]淡入[member sky_top_color]的速度。"

#: doc/classes/ProceduralSky.xml:31
msgid "Amount of energy contribution from the sky."
msgstr "来自天空的能量贡献量。"

#: doc/classes/ProceduralSky.xml:34
#, fuzzy
msgid "Color of the sky at the horizon."
msgstr "标题文字的颜色。"

#: doc/classes/ProceduralSky.xml:37
#, fuzzy
msgid "Color of the sky at the top."
msgstr "标题文字的颜色。"

#: doc/classes/ProceduralSky.xml:40
msgid "Distance from center of sun where it fades out completely."
msgstr "距离太阳中心的距离,在那里它完全消失。"

#: doc/classes/ProceduralSky.xml:43
#, fuzzy
msgid "Distance from sun where it goes from solid to starting to fade."
msgstr "距离太阳中心的距离,在那里它完全消失。"

#: doc/classes/ProceduralSky.xml:46
#, fuzzy
msgid "The sun's color."
msgstr "线的颜色。"

#: doc/classes/ProceduralSky.xml:49
#, fuzzy
msgid ""
"How quickly the sun fades away between [member sun_angle_min] and [member "
"sun_angle_max]."
msgstr "太阳在太阳圆盘边缘和 [member sun_angle_max]之间消失的速度有多快。"

#: doc/classes/ProceduralSky.xml:52
#, fuzzy
msgid "Amount of energy contribution from the sun."
msgstr "来自天空的能量贡献量。"

#: doc/classes/ProceduralSky.xml:55
msgid "The sun's height using polar coordinates."
msgstr ""

#: doc/classes/ProceduralSky.xml:58
#, fuzzy
msgid "The direction of the sun using polar coordinates."
msgstr "碰撞点,以全局坐标表示。"

#: doc/classes/ProceduralSky.xml:61
msgid ""
"Size of [Texture] that the ProceduralSky will generate. The size is set "
"using [enum TextureSize]."
msgstr ""

#: doc/classes/ProceduralSky.xml:66
msgid "Sky texture will be 256x128."
msgstr ""

#: doc/classes/ProceduralSky.xml:69
msgid "Sky texture will be 512x256."
msgstr ""

#: doc/classes/ProceduralSky.xml:72
msgid "Sky texture will be 1024x512. This is the default size."
msgstr ""

#: doc/classes/ProceduralSky.xml:75
msgid "Sky texture will be 2048x1024."
msgstr ""

#: doc/classes/ProceduralSky.xml:78
msgid "Sky texture will be 4096x2048."
msgstr ""

#: doc/classes/ProceduralSky.xml:81
#, fuzzy
msgid "Represents the size of the [enum TextureSize] enum."
msgstr "表示[enum TextureFilter]枚举的大小。"

#: doc/classes/ProgressBar.xml:4
msgid "General-purpose progress bar."
msgstr "通用进度条。"

#: doc/classes/ProgressBar.xml:7
msgid "General-purpose progress bar. Shows fill percentage from right to left."
msgstr "通用进度条。从右向左显示百分比。"

#: doc/classes/ProgressBar.xml:15
msgid "If [code]true[/code], the fill percentage is displayed on the bar."
msgstr "如果[code]true[/code],百分比将显示在栏上。"

#: doc/classes/ProgressBar.xml:24
msgid "The style of the background."
msgstr "背景的风格。"

#: doc/classes/ProgressBar.xml:27
msgid "The style of the progress (i.e. the part that fills the bar)."
msgstr "进度的样式(即填充的部分)。"

#: doc/classes/ProgressBar.xml:30
msgid ""
"Font used to draw the fill percentage if [member percent_visible] is "
"[code]true[/code]."
msgstr ""
"如果[member percent_visible]为[code]true[/code],则用于绘制填充百分比的字体。"

#: doc/classes/ProgressBar.xml:33
msgid "The color of the text."
msgstr "文本的颜色。"

#: doc/classes/ProgressBar.xml:36
msgid "The color of the text's shadow."
msgstr "文本阴影的颜色。"

#: doc/classes/ProjectSettings.xml:4
msgid "Contains global variables accessible from everywhere."
msgstr "包含可从任何地方访问的全局变量。"

#: doc/classes/ProjectSettings.xml:7
#, fuzzy
msgid ""
"Contains global variables accessible from everywhere. Use [method "
"get_setting], [method set_setting] or [method has_setting] to access them. "
"Variables stored in [code]project.godot[/code] are also loaded into "
"ProjectSettings, making this object very useful for reading custom game "
"configuration options.\n"
"When naming a Project Settings property, use the full path to the setting "
"including the category. For example, [code]\"application/config/name\"[/"
"code] for the project name. Category and property names can be viewed in the "
"Project Settings dialog.\n"
"[b]Feature tags:[/b] Project settings can be overridden for specific "
"platforms and configurations (debug, release, ...) using [url=https://docs."
"godotengine.org/en/latest/tutorials/export/feature_tags.html]feature tags[/"
"url].\n"
"[b]Overriding:[/b] Any project setting can be overridden by creating a file "
"named [code]override.cfg[/code] in the project's root directory. This can "
"also be used in exported projects by placing this file in the same directory "
"as the project binary. Overriding will still take the base project "
"settings' [url=https://docs.godotengine.org/en/latest/tutorials/export/"
"feature_tags.html]feature tags[/url] in account. Therefore, make sure to "
"[i]also[/i] override the setting with the desired feature tags if you want "
"them to override base project settings on all platforms and configurations."
msgstr ""
"包含可从任何地方访问的全局变量。使用[method get_setting],[method "
"set_setting]或[method has_setting]来访问它们。存储在[code]project.godot[/"
"code]中的变量也被加载到ProjectSettings中,这使得这个对象对于读取自定义游戏配"
"置选项非常有用。\n"
"命名项目设置属性时,请使用包含类别的设置的完整路径。例如,项目名称的 "
"[code]\"application/config/name\"[/code]。类别和属性名称可以在“项目设置”对话"
"框中查看。\n"
"[b]覆盖:[/b]通过在项目的根目录中创建名为[code]override.cfg[/code]的文件,可以"
"覆盖任何项目设置。这也可以在导出的项目中使用,方法是将该文件与项目二进制文件"
"放在同一个目录中。"

#: doc/classes/ProjectSettings.xml:22
msgid ""
"Adds a custom property info to a property. The dictionary must contain:\n"
"- [code]name[/code]: [String] (the property's name)\n"
"- [code]type[/code]: [int] (see [enum Variant.Type])\n"
"- optionally [code]hint[/code]: [int] (see [enum PropertyHint]) and "
"[code]hint_string[/code]: [String]\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"ProjectSettings.set(\"category/property_name\", 0)\n"
"\n"
"var property_info = {\n"
"    \"name\": \"category/property_name\",\n"
"    \"type\": TYPE_INT,\n"
"    \"hint\": PROPERTY_HINT_ENUM,\n"
"    \"hint_string\": \"one,two,three\"\n"
"}\n"
"\n"
"ProjectSettings.add_property_info(property_info)\n"
"[/codeblock]"
msgstr ""
"向属性添加自定义属性信息。字典必须包含:\n"
"-[code]name[/code]:[String](属性的名称)\n"
"-[code]type[/code]: [int](参见[enum Variant.Type])\n"
"-可选地[code]hint[/code]: [int](参见 [enum PropertyHint])和"
"[code]hint_string[/code]: [String]\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"ProjectSettings.set(\"category/property_name\", 0)\n"
"\n"
"var property_info = {\n"
"    \"name\": \"category/property_name\",\n"
"    \"type\": TYPE_INT,\n"
"    \"hint\": PROPERTY_HINT_ENUM,\n"
"    \"hint_string\": \"one,two,three\"\n"
"}\n"
"\n"
"ProjectSettings.add_property_info(property_info)\n"
"[/codeblock]"

#: doc/classes/ProjectSettings.xml:45
msgid "Clears the whole configuration (not recommended, may break things)."
msgstr "清除整个配置(不推荐,可能会弄坏东西)。"

#: doc/classes/ProjectSettings.xml:52
msgid ""
"Returns the order of a configuration value (influences when saved to the "
"config file)."
msgstr "返回配置值的顺序(保存到配置文件时会产生影响)。"

#: doc/classes/ProjectSettings.xml:59
msgid ""
"Returns the value of a setting.\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"print(ProjectSettings.get_setting(\"application/config/name\"))\n"
"[/codeblock]"
msgstr ""
"返回设置的值。\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"print(ProjectSettings.get_setting(\"application/config/name\"))\n"
"[/codeblock]"

#: doc/classes/ProjectSettings.xml:70
msgid ""
"Returns the absolute, native OS path corresponding to the localized "
"[code]path[/code] (starting with [code]res://[/code] or [code]user://[/"
"code]). The returned path will vary depending on the operating system and "
"user preferences. See [url=https://docs.godotengine.org/en/3.4/tutorials/io/"
"data_paths.html]File paths in Godot projects[/url] to see what those paths "
"convert to. See also [method localize_path].\n"
"[b]Note:[/b] [method globalize_path] with [code]res://[/code] will not work "
"in an exported project. Instead, prepend the executable's base directory to "
"the path when running from an exported project:\n"
"[codeblock]\n"
"var path = \"\"\n"
"if OS.has_feature(\"editor\"):\n"
"    # Running from an editor binary.\n"
"    # `path` will contain the absolute path to `hello.txt` located in the "
"project root.\n"
"    path = ProjectSettings.globalize_path(\"res://hello.txt\")\n"
"else:\n"
"    # Running from an exported project.\n"
"    # `path` will contain the absolute path to `hello.txt` next to the "
"executable.\n"
"    # This is *not* identical to using `ProjectSettings.globalize_path()` "
"with a `res://` path,\n"
"    # but is close enough in spirit.\n"
"    path = OS.get_executable_path().get_base_dir().plus_file(\"hello.txt\")\n"
"[/codeblock]"
msgstr ""

#: doc/classes/ProjectSettings.xml:91
msgid "Returns [code]true[/code] if a configuration value is present."
msgstr "如果存在配置值,则返回[code]true[/code]。"

#: doc/classes/ProjectSettings.xml:100
#, fuzzy
msgid ""
"Loads the contents of the .pck or .zip file specified by [code]pack[/code] "
"into the resource filesystem ([code]res://[/code]). Returns [code]true[/"
"code] on success.\n"
"[b]Note:[/b] If a file from [code]pack[/code] shares the same path as a file "
"already in the resource filesystem, any attempts to load that file will use "
"the file from [code]pack[/code] unless [code]replace_files[/code] is set to "
"[code]false[/code].\n"
"[b]Note:[/b] The optional [code]offset[/code] parameter can be used to "
"specify the offset in bytes to the start of the resource pack. This is only "
"supported for .pck files."
msgstr ""
"将由[code]pack[/code]指定的*.pck或*.zip文件的内容加载到资源文件系统"
"([code]res://[/code])。成功时返回[code]true[/code]。\n"
"[b]注意:[/b] 如果[code]pack[/code]中的文件与资源文件系统中已经存在的文件有相"
"同的路径,任何试图加载该文件的尝试将使用[code]pack[/code]中的文件,除非"
"[code]replace_files[/code]被设置为[code]false[/code]。"

#: doc/classes/ProjectSettings.xml:109
msgid ""
"Returns the localized path (starting with [code]res://[/code]) corresponding "
"to the absolute, native OS [code]path[/code]. See also [method "
"globalize_path]."
msgstr ""

#: doc/classes/ProjectSettings.xml:116
msgid ""
"Returns [code]true[/code] if the specified property exists and its initial "
"value differs from the current value."
msgstr ""
"如果指定的属性存在,并且其初始值与当前值不同,则返回[code]true[/code]。"

#: doc/classes/ProjectSettings.xml:123
msgid ""
"Returns the specified property's initial value. Returns [code]null[/code] if "
"the property does not exist."
msgstr "返回指定属性的初始值。如果属性不存在,则返回[code]null[/code]。"

#: doc/classes/ProjectSettings.xml:129
msgid ""
"Saves the configuration to the [code]project.godot[/code] file.\n"
"[b]Note:[/b] This method is intended to be used by editor plugins, as "
"modified [ProjectSettings] can't be loaded back in the running app. If you "
"want to change project settings in exported projects, use [method "
"save_custom] to save [code]override.cfg[/code] file."
msgstr ""

#: doc/classes/ProjectSettings.xml:137
#, fuzzy
msgid ""
"Saves the configuration to a custom file. The file extension must be [code]."
"godot[/code] (to save in text-based [ConfigFile] format) or [code].binary[/"
"code] (to save in binary format). You can also save [code]override.cfg[/"
"code] file, which is also text, but can be used in exported projects unlike "
"other formats."
msgstr ""
"将配置保存到自定义文件中。文件扩展名必须是[code].godot[/code](以基于文本的"
"[ConfigFile]格式保存)或[code].binary[/code](以二进制格式保存)。"

#: doc/classes/ProjectSettings.xml:145
msgid ""
"Sets the specified property's initial value. This is the value the property "
"reverts to."
msgstr "设置指定属性的初始值。这是属性恢复到的值。"

#: doc/classes/ProjectSettings.xml:153
msgid ""
"Sets the order of a configuration value (influences when saved to the config "
"file)."
msgstr "设置配置值的顺序(保存到配置文件时会产生影响)。"

#: doc/classes/ProjectSettings.xml:161
msgid ""
"Sets the value of a setting.\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"ProjectSettings.set_setting(\"application/config/name\", \"Example\")\n"
"[/codeblock]"
msgstr ""
"设置给定配置项的值。\n"
"[b]示例:[/b]\n"
"[codeblock]\n"
"ProjectSettings.set_setting(\"application/config/name\", \"Example\")\n"
"[/codeblock]"

#: doc/classes/ProjectSettings.xml:171
msgid ""
"Comma-separated list of custom Android modules (which must have been built "
"in the Android export templates) using their Java package path, e.g. "
"[code]\"org/godotengine/godot/MyCustomSingleton,com/example/foo/"
"FrenchFriesFactory\"[/code].\n"
"[b]Note:[/b] Since Godot 3.2.2, the [code]org/godotengine/godot/"
"GodotPaymentV3[/code] module was deprecated and replaced by the "
"[code]GodotPayment[/code] plugin which should be enabled in the Android "
"export preset under [code]Plugins[/code] section. The singleton to access in "
"code was also renamed to [code]GodotPayment[/code]."
msgstr ""

#: doc/classes/ProjectSettings.xml:175
msgid "Background color for the boot splash."
msgstr "启动的背景色。"

#: doc/classes/ProjectSettings.xml:178
msgid ""
"If [code]true[/code], scale the boot splash image to the full window length "
"when engine starts. If [code]false[/code], the engine will leave it at the "
"default pixel size."
msgstr ""
"如果[code]true[/code],则在引擎启动时将启动图片扩展到整个窗口长度。如果"
"[code]false[/code],引擎将保持默认像素大小。"

#: doc/classes/ProjectSettings.xml:181
msgid "Path to an image used as the boot splash."
msgstr "用作启动图片的路径。"

#: doc/classes/ProjectSettings.xml:184
msgid ""
"If [code]true[/code], applies linear filtering when scaling the image "
"(recommended for high resolution artwork). If [code]false[/code], uses "
"nearest-neighbor interpolation (recommended for pixel art)."
msgstr ""
"如果[code]true[/code],则在缩放图像时应用线性过滤(推荐用于高分辨率图稿)。如果"
"[code]false[/code],则使用最近邻插值(推荐像素艺术)。"

#: doc/classes/ProjectSettings.xml:187
msgid ""
"This user directory is used for storing persistent data ([code]user://[/"
"code] filesystem). If left empty, [code]user://[/code] resolves to a project-"
"specific folder in Godot's own configuration folder (see [method OS."
"get_user_data_dir]). If a custom directory name is defined, this name will "
"be used instead and appended to the system-specific user data directory "
"(same parent folder as the Godot configuration folder documented in [method "
"OS.get_user_data_dir]).\n"
"The [member application/config/use_custom_user_dir] setting must be enabled "
"for this to take effect."
msgstr ""
"该用户目录用于存储持久数据([code]user://[/code]文件系统)。如果留空,"
"[code]user://[/code]将解析为Godot自己的配置文件夹中特定于项目的文件夹(请参见"
"[method OS.get_user_data_dir])。如果定义了自定义目录名,将使用该名称并将其附"
"加到系统特定的用户数据目录(与[method OS.get_user_data_dir]中记录的Godot配置文"
"件夹相同的父文件夹)。\n"
"必须启用 [member application/config/use_custom_user_dir]设置才能使其生效。"

#: doc/classes/ProjectSettings.xml:191
msgid ""
"The project's description, displayed as a tooltip in the Project Manager "
"when hovering the project."
msgstr "项目的描述,在项目管理器中悬停时显示为工具提示。"

#: doc/classes/ProjectSettings.xml:194
msgid ""
"Icon used for the project, set when project loads. Exporters will also use "
"this icon when possible."
msgstr "用于项目的图标,在项目加载时设置。导出时也将尽可能使用此图标。"

#: doc/classes/ProjectSettings.xml:197
#, fuzzy
msgid ""
"Icon set in [code].icns[/code] format used on macOS to set the game's icon. "
"This is done automatically on start by calling [method OS.set_native_icon]."
msgstr ""
"设置[code].icns[/code]格式图标,用于在macOS上设置游戏图标。这是在启动时通过调"
"用[method DisplayServer.set_native_icon]自动完成的。"

#: doc/classes/ProjectSettings.xml:200
msgid ""
"The project's name. It is used both by the Project Manager and by exporters. "
"The project name can be translated by translating its value in localization "
"files. The window title will be set to match the project name automatically "
"on startup.\n"
"[b]Note:[/b] Changing this value will also change the user data folder's "
"path if [member application/config/use_custom_user_dir] is [code]false[/"
"code]. After renaming the project, you will no longer be able to access "
"existing data in [code]user://[/code] unless you rename the old folder to "
"match the new project name. See [url=https://docs.godotengine.org/en/3.4/"
"tutorials/io/data_paths.html]Data paths[/url] in the documentation for more "
"information."
msgstr ""

#: doc/classes/ProjectSettings.xml:204
#, fuzzy
msgid ""
"Specifies a file to override project settings. For example: [code]user://"
"custom_settings.cfg[/code]. See \"Overriding\" in the [ProjectSettings] "
"class description at the top for more information.\n"
"[b]Note:[/b] Regardless of this setting's value, [code]res://override.cfg[/"
"code] will still be read to override the project settings."
msgstr ""
"指定要替代项目设置的文件。例如:[code]user://custom_settings.cfg[/code]。\n"
"[b] 注意:[/b]无论此设置的值是多少,[code]res://override.cfg[/code]仍将被读取"
"以覆盖项目设置(请参见顶部的此类说明)。"

#: doc/classes/ProjectSettings.xml:208
msgid ""
"If [code]true[/code], the project will save user data to its own user "
"directory (see [member application/config/custom_user_dir_name]). This "
"setting is only effective on desktop platforms. A name must be set in the "
"[member application/config/custom_user_dir_name] setting for this to take "
"effect. If [code]false[/code], the project will save user data to [code](OS "
"user data directory)/Godot/app_userdata/(project name)[/code]."
msgstr ""
"如果[code]true[/code],项目将把用户数据保存到自己的用户目录中(请参见[member "
"application/config/custom_user_dir_name])。此设置仅在桌面平台上有效。必须在"
"[member application/config/custom_user_dir_name]设置中设置名称才能生效。如果"
"[code]false[/code],项目将把用户数据保存到[code] (OS user data directory)/"
"Godot/app_userdata/(project name)[/code]。"

#: doc/classes/ProjectSettings.xml:211
#, fuzzy
msgid ""
"Icon set in [code].ico[/code] format used on Windows to set the game's icon. "
"This is done automatically on start by calling [method OS.set_native_icon]."
msgstr ""
"设置[code].ico[/code]格式图标,在Windows上用于设置游戏图标。这是在启动时通过"
"调用[method DisplayServer.set_native_icon]自动完成的。"

#: doc/classes/ProjectSettings.xml:214
msgid ""
"Time samples for frame deltas are subject to random variation introduced by "
"the platform, even when frames are displayed at regular intervals thanks to "
"V-Sync. This can lead to jitter. Delta smoothing can often give a better "
"result by filtering the input deltas to correct for minor fluctuations from "
"the refresh rate.\n"
"[b]Note:[/b] Delta smoothing is only attempted when [member display/window/"
"vsync/use_vsync] is switched on, as it does not work well without V-Sync.\n"
"It may take several seconds at a stable frame rate before the smoothing is "
"initially activated. It will only be active on machines where performance is "
"adequate to render frames at the refresh rate."
msgstr ""

#: doc/classes/ProjectSettings.xml:219
msgid ""
"[b]Experimental.[/b] Shifts the measurement of delta time for each frame to "
"just after the drawing has taken place. This may lead to more consistent "
"deltas and a reduction in frame stutters."
msgstr ""

#: doc/classes/ProjectSettings.xml:222
msgid ""
"If [code]true[/code], disables printing to standard error. If [code]true[/"
"code], this also hides error and warning messages printed by [method "
"@GDScript.push_error] and [method @GDScript.push_warning]. See also [member "
"application/run/disable_stdout].\n"
"Changes to this setting will only be applied upon restarting the application."
msgstr ""

#: doc/classes/ProjectSettings.xml:226
msgid ""
"If [code]true[/code], disables printing to standard output. This is "
"equivalent to starting the editor or project with the [code]--quiet[/code] "
"command line argument. See also [member application/run/disable_stderr].\n"
"Changes to this setting will only be applied upon restarting the application."
msgstr ""

#: doc/classes/ProjectSettings.xml:230
msgid ""
"If [code]true[/code], flushes the standard output stream every time a line "
"is printed. This affects both terminal logging and file logging.\n"
"When running a project, this setting must be enabled if you want logs to be "
"collected by service managers such as systemd/journalctl. This setting is "
"disabled by default on release builds, since flushing on every printed line "
"will negatively affect performance if lots of lines are printed in a rapid "
"succession. Also, if this setting is enabled, logged files will still be "
"written successfully if the application crashes or is otherwise killed by "
"the user (without being closed \"normally\").\n"
"[b]Note:[/b] Regardless of this setting, the standard error stream "
"([code]stderr[/code]) is always flushed when a line is printed to it.\n"
"Changes to this setting will only be applied upon restarting the application."
msgstr ""

#: doc/classes/ProjectSettings.xml:236
msgid ""
"Debug build override for [member application/run/flush_stdout_on_print], as "
"performance is less important during debugging.\n"
"Changes to this setting will only be applied upon restarting the application."
msgstr ""

#: doc/classes/ProjectSettings.xml:240
msgid ""
"Forces a delay between frames in the main loop (in milliseconds). This may "
"be useful if you plan to disable vertical synchronization."
msgstr ""
"强制主循环中帧之间的延迟(以毫秒为单位)。如果您计划禁用垂直同步,这可能很有"
"用。"

#: doc/classes/ProjectSettings.xml:243
msgid ""
"If [code]true[/code], enables low-processor usage mode. This setting only "
"works on desktop platforms. The screen is not redrawn if nothing changes "
"visually. This is meant for writing applications and editors, but is pretty "
"useless (and can hurt performance) in most games."
msgstr ""
"如果[code]true[/code],则启用低处理器使用模式。此设置仅适用于桌面平台。如果视"
"觉上没有任何变化,屏幕不会被重绘。这是为了编写应用程序和编辑器,但在大多数游"
"戏中这是非常无用的(并可能损害性能)。"

#: doc/classes/ProjectSettings.xml:246
msgid ""
"Amount of sleeping between frames when the low-processor usage mode is "
"enabled (in microseconds). Higher values will result in lower CPU usage."
msgstr "启用低处理器使用模式时帧间的睡眠量(以微秒计)。值越高,CPU占用率越低。"

#: doc/classes/ProjectSettings.xml:249
msgid "Path to the main scene file that will be loaded when the project runs."
msgstr "项目运行时将加载的主场景文件的路径。"

#: doc/classes/ProjectSettings.xml:252 doc/classes/ProjectSettings.xml:255
msgid ""
"Audio buses will disable automatically when sound goes below a given dB "
"threshold for a given time. This saves CPU as effects assigned to that bus "
"will no longer do any processing."
msgstr ""
"当声音在给定的时间内低于给定的dB阈值时,音频总线将自动关闭。这可以节省CPU,因"
"为分配给该总线的效果将不再做任何处理。"

#: doc/classes/ProjectSettings.xml:258
msgid ""
"Default [AudioBusLayout] resource file to use in the project, unless "
"overridden by the scene."
msgstr "项目中使用的默认[AudioBusLayout]资源文件,除非被场景覆盖。"

#: doc/classes/ProjectSettings.xml:261
msgid ""
"Specifies the audio driver to use. This setting is platform-dependent as "
"each platform supports different audio drivers. If left empty, the default "
"audio driver will be used."
msgstr ""
"指定要使用的音频驱动程序。此设置取决于平台,因为每个平台支持不同的音频驱动程"
"序。如果留空,将使用默认音频驱动程序。"

#: doc/classes/ProjectSettings.xml:264
msgid ""
"If [code]true[/code], microphone input will be allowed. This requires "
"appropriate permissions to be set when exporting to Android or iOS."
msgstr ""
"如果[code]true[/code],将允许麦克风输入。这需要在导出到Android或iOS时设置适当"
"的权限。"

#: doc/classes/ProjectSettings.xml:267
#, fuzzy
msgid ""
"The mixing rate used for audio (in Hz). In general, it's better to not touch "
"this and leave it to the host operating system."
msgstr "用于音频的混合速率。一般来说,最好不要碰这个,让操作系统来处理。"

#: doc/classes/ProjectSettings.xml:270
msgid ""
"Safer override for [member audio/mix_rate] in the Web platform. Here "
"[code]0[/code] means \"let the browser choose\" (since some browsers do not "
"like forcing the mix rate)."
msgstr ""

#: doc/classes/ProjectSettings.xml:273
msgid ""
"Output latency in milliseconds for audio. Lower values will result in lower "
"audio latency at the cost of increased CPU usage. Low values may result in "
"audible cracking on slower hardware."
msgstr ""
"音频的输出延迟(毫秒)。较低的值将导致较低的音频延迟,但代价是CPU使用率增加。较"
"低的值可能会导致较慢硬件上的声音破裂。"

#: doc/classes/ProjectSettings.xml:276
msgid ""
"Safer override for [member audio/output_latency] in the Web platform, to "
"avoid audio issues especially on mobile devices."
msgstr ""
"在网络平台中更安全地覆盖 [member audio/output_latency],以避免音频问题,尤其"
"是在移动设备上。"

#: doc/classes/ProjectSettings.xml:279
msgid ""
"Setting to hardcode audio delay when playing video. Best to leave this "
"untouched unless you know what you are doing."
msgstr ""
"播放视频时设置为硬编码音频延迟。除非你知道自己在做什么,否则最好不要动它。"

#: doc/classes/ProjectSettings.xml:282
msgid ""
"The default compression level for gzip. Affects compressed scenes and "
"resources. Higher levels result in smaller files at the cost of compression "
"speed. Decompression speed is mostly unaffected by the compression level. "
"[code]-1[/code] uses the default gzip compression level, which is identical "
"to [code]6[/code] but could change in the future due to underlying zlib "
"updates."
msgstr ""
"gzip的默认压缩级别。影响压缩的场景和资源。较高的级别会以压缩速度为代价导致文"
"件变小。解压缩速度大多不受压缩级别的影响。[code]-1[/code]使用默认的gzip压缩级"
"别,该级别与[code]6[/code]相同,但由于底层zlib更新,未来可能会发生变化。"

#: doc/classes/ProjectSettings.xml:285
msgid ""
"The default compression level for Zlib. Affects compressed scenes and "
"resources. Higher levels result in smaller files at the cost of compression "
"speed. Decompression speed is mostly unaffected by the compression level. "
"[code]-1[/code] uses the default gzip compression level, which is identical "
"to [code]6[/code] but could change in the future due to underlying zlib "
"updates."
msgstr ""
"Zlib的默认压缩级别。影响压缩的场景和资源。较高的级别会以压缩速度为代价导致文"
"件变小。解压缩速度大多不受压缩级别的影响。[code]-1[/code]使用默认的gzip压缩级"
"别,该级别与[code]6[/code]相同,但由于底层zlib更新,未来可能会发生变化。"

#: doc/classes/ProjectSettings.xml:288
msgid ""
"The default compression level for Zstandard. Affects compressed scenes and "
"resources. Higher levels result in smaller files at the cost of compression "
"speed. Decompression speed is mostly unaffected by the compression level."
msgstr ""
"Zstandard的默认压缩级别。影响压缩的场景和资源。较高的级别会以压缩速度为代价导"
"致文件变小。解压缩速度大多不受压缩级别的影响。"

#: doc/classes/ProjectSettings.xml:291
msgid ""
"Enables [url=https://github.com/facebook/zstd/releases/tag/v1.3.2]long-"
"distance matching[/url] in Zstandard."
msgstr ""
"在Zstandard中启用 [url=https://github.com/facebook/zstd/releases/tag/"
"v1.3.2]long-distance matching[/url] 。"

#: doc/classes/ProjectSettings.xml:294
msgid ""
"Largest size limit (in power of 2) allowed when compressing using long-"
"distance matching with Zstandard. Higher values can result in better "
"compression, but will require more memory when compressing and decompressing."
msgstr ""
"使用与Zstandard的长距离匹配进行压缩时,允许的最大大小限制(2的幂)。更高的值可"
"以产生更好的压缩,但是在压缩和解压缩时需要更多的内存。"

#: doc/classes/ProjectSettings.xml:297
msgid ""
"If [code]true[/code], displays getters and setters in autocompletion results "
"in the script editor. This setting is meant to be used when porting old "
"projects (Godot 2), as using member variables is the preferred style from "
"Godot 3 onwards."
msgstr ""
"如果[code]true[/code],则在脚本编辑器的自动完成结果中显示getters和setters。这"
"个设置是为了在移植旧项目(戈多2)时使用,因为使用成员变量是从戈多3开始的首选风"
"格。"

#: doc/classes/ProjectSettings.xml:300
msgid ""
"If [code]true[/code], enables warnings when a constant is used as a function."
msgstr "如果[code]true[/code],则当常量用作函数时会发出警告。"

#: doc/classes/ProjectSettings.xml:303
#, fuzzy
msgid ""
"If [code]true[/code], enables warnings when deprecated keywords such as "
"[code]slave[/code] are used."
msgstr "如果[code]true[/code],则在使用不推荐使用的关键字时启用警告。"

#: doc/classes/ProjectSettings.xml:306
msgid ""
"If [code]true[/code], enables specific GDScript warnings (see [code]debug/"
"gdscript/warnings/*[/code] settings). If [code]false[/code], disables all "
"GDScript warnings."
msgstr ""
"如果[code]true[/code],则启用特定的GDScript警告(请参见[code]debug/gdscript/"
"warnings/*[/code]设置)。如果[code]为false[/code],则禁用所有GDScript警告。"

#: doc/classes/ProjectSettings.xml:309
msgid ""
"If [code]true[/code], scripts in the [code]res://addons[/code] folder will "
"not generate warnings."
msgstr ""
"如果[code]true[/code],则[code]res://addons[/code]文件夹中的脚本不会生成警"
"告。"

#: doc/classes/ProjectSettings.xml:312
#, fuzzy
msgid ""
"If [code]true[/code], enables warnings when a function is declared with the "
"same name as a constant."
msgstr "如果[code]true[/code],则在使用函数时启用警告,就像它是属性一样。"

#: doc/classes/ProjectSettings.xml:315
msgid ""
"If [code]true[/code], enables warnings when a function is declared with the "
"same name as a variable. This will turn into an error in a future version "
"when first-class functions become supported in GDScript."
msgstr ""

#: doc/classes/ProjectSettings.xml:318
#, fuzzy
msgid ""
"If [code]true[/code], enables warnings when a function assigned to a "
"variable may yield and return a function state instead of a value."
msgstr ""
"如果[code]true[/code],则在将返回[code]void[/code]的函数的结果赋值给变量时启"
"用警告。"

#: doc/classes/ProjectSettings.xml:321
msgid ""
"If [code]true[/code], enables warnings when using a function as if it was a "
"property."
msgstr "如果[code]true[/code],则在使用函数时启用警告,就像它是属性一样。"

#: doc/classes/ProjectSettings.xml:324
msgid ""
"If [code]true[/code], enables warnings when a ternary operator may emit "
"values with incompatible types."
msgstr ""
"如果[code]true[/code],则当三元运算符可能发出类型不兼容的值时,将启用警告。"

#: doc/classes/ProjectSettings.xml:327
msgid ""
"If [code]true[/code], enables warnings when dividing an integer by another "
"integer (the decimal part will be discarded)."
msgstr ""
"如果[code]为true[/code],则在用一个整数除以另一个整数时启用警告(小数部分将被"
"丢弃)。"

#: doc/classes/ProjectSettings.xml:330
msgid ""
"If [code]true[/code], enables warnings when passing a floating-point value "
"to a function that expects an integer (it will be converted and lose "
"precision)."
msgstr ""
"如果[code]为true[/code],则在将浮点值传递给需要整数的函数时启用警告(它将被转"
"换并失去精度)。"

#: doc/classes/ProjectSettings.xml:333
msgid ""
"If [code]true[/code], enables warnings when using a property as if it was a "
"function."
msgstr "如果[code]true[/code],则在将属性当作函数使用时启用警告。"

#: doc/classes/ProjectSettings.xml:336
msgid ""
"If [code]true[/code], enables warnings when calling a function without using "
"its return value (by assigning it to a variable or using it as a function "
"argument). Such return values are sometimes used to denote possible errors "
"using the [enum Error] enum."
msgstr ""
"如果[code]true[/code],则在不使用函数返回值(通过将其赋值给变量或将其用作函数"
"参数)调用函数时启用警告。这样的返回值有时使用[enum Error] 枚举来表示可能的错"
"误。"

#: doc/classes/ProjectSettings.xml:339
msgid ""
"If [code]true[/code], enables warnings when defining a local or subclass "
"member variable that would shadow a variable at an upper level (such as a "
"member variable)."
msgstr ""
"如果[code]true[/code],则在定义局部或子类成员变量时启用警告,该局部或子类成员"
"变量将在上层阴影变量(如成员变量)。"

#: doc/classes/ProjectSettings.xml:342
msgid ""
"If [code]true[/code], enables warnings when calling an expression that has "
"no effect on the surrounding code, such as writing [code]2 + 2[/code] as a "
"statement."
msgstr ""
"如果[code]true[/code],则在调用对周围代码没有影响的表达式时启用警告,例如将"
"[code]2 + 2[/code]写成语句。"

#: doc/classes/ProjectSettings.xml:345
msgid ""
"If [code]true[/code], enables warnings when calling a ternary expression "
"that has no effect on the surrounding code, such as writing [code]42 if "
"active else 0[/code] as a statement."
msgstr ""
"如果[code]true[/code],则在调用对周围代码没有影响的三元表达式时启用警告,例如"
"将[code]42(如果激活else 0[/code])写入语句。"

#: doc/classes/ProjectSettings.xml:348
msgid ""
"If [code]true[/code], all warnings will be reported as if they were errors."
msgstr "如果[code]true[/code],所有警告将被报告为错误。"

#: doc/classes/ProjectSettings.xml:351
msgid ""
"If [code]true[/code], enables warnings when using a variable that wasn't "
"previously assigned."
msgstr "如果[code]true[/code],则在使用以前没有赋值的变量时启用警告。"

#: doc/classes/ProjectSettings.xml:354
msgid ""
"If [code]true[/code], enables warnings when assigning a variable using an "
"assignment operator like [code]+=[/code] if the variable wasn't previously "
"assigned."
msgstr ""
"如果[code]true[/code],则在使用赋值操作符[code]+=[/code](如果变量之前没有赋"
"值)为变量赋值时启用警告。"

#: doc/classes/ProjectSettings.xml:357
msgid ""
"If [code]true[/code], enables warnings when unreachable code is detected "
"(such as after a [code]return[/code] statement that will always be executed)."
msgstr ""
"如果[code]true[/code],则在检测到不可达的代码时启用警告(例如在始终执行的"
"[code]return[/code]语句之后)。"

#: doc/classes/ProjectSettings.xml:360
msgid ""
"If [code]true[/code], enables warnings when using an expression whose type "
"may not be compatible with the function parameter expected."
msgstr ""
"如果[code]true[/code],则在使用类型可能与期望的函数参数不兼容的表达式时启用警"
"告。"

#: doc/classes/ProjectSettings.xml:363
msgid "If [code]true[/code], enables warnings when performing an unsafe cast."
msgstr "如果[code]true[/code],则在执行不安全的强制转换时启用警告。"

#: doc/classes/ProjectSettings.xml:366
msgid ""
"If [code]true[/code], enables warnings when calling a method whose presence "
"is not guaranteed at compile-time in the class."
msgstr ""
"如果[code]true[/code],则在调用类中不能保证在编译时存在的方法时启用警告。"

#: doc/classes/ProjectSettings.xml:369
msgid ""
"If [code]true[/code], enables warnings when accessing a property whose "
"presence is not guaranteed at compile-time in the class."
msgstr ""
"如果[code]true[/code],则在访问类中不能保证在编译时存在的属性时启用警告。"

#: doc/classes/ProjectSettings.xml:372
#, fuzzy
msgid ""
"If [code]true[/code], enables warnings when a function parameter is unused."
msgstr "如果[code]true[/code],则在信号未使用时启用警告。"

#: doc/classes/ProjectSettings.xml:375
#, fuzzy
msgid ""
"If [code]true[/code], enables warnings when a member variable is unused."
msgstr "如果[code]true[/code],则在局部变量未使用时启用警告。"

#: doc/classes/ProjectSettings.xml:378
msgid "If [code]true[/code], enables warnings when a signal is unused."
msgstr "如果[code]true[/code],则在信号未使用时启用警告。"

#: doc/classes/ProjectSettings.xml:381
msgid "If [code]true[/code], enables warnings when a local variable is unused."
msgstr "如果[code]true[/code],则在局部变量未使用时启用警告。"

#: doc/classes/ProjectSettings.xml:384
msgid ""
"If [code]true[/code], enables warnings when a variable is declared with the "
"same name as a function. This will turn into an error in a future version "
"when first-class functions become supported in GDScript."
msgstr ""

#: doc/classes/ProjectSettings.xml:387
msgid ""
"If [code]true[/code], enables warnings when assigning the result of a "
"function that returns [code]void[/code] to a variable."
msgstr ""
"如果[code]true[/code],则在将返回[code]void[/code]的函数的结果赋值给变量时启"
"用警告。"

#: doc/classes/ProjectSettings.xml:390
msgid "Message to be displayed before the backtrace when the engine crashes."
msgstr "当引擎崩溃时,在回溯之前显示的消息。"

#: doc/classes/ProjectSettings.xml:393
#, fuzzy
msgid ""
"Maximum number of frames per second allowed. The actual number of frames per "
"second may still be below this value if the game is lagging.\n"
"If [member display/window/vsync/use_vsync] is enabled, it takes precedence "
"and the forced FPS number cannot exceed the monitor's refresh rate.\n"
"This setting is therefore mostly relevant for lowering the maximum FPS below "
"VSync, e.g. to perform non-real-time rendering of static frames, or test the "
"project under lag conditions."
msgstr ""
"每秒允许的最大帧数。如果游戏是卡顿的,每秒的实际帧数可能仍然低于这个值。\n"
"如果[member display/window/vsync/use_vsync]被启用,它将优先且强制帧数不能超过"
"监视器的刷新率。\n"
"因此,这个设置主要用于将最大FPS降低到垂直同步以下,例如执行静态帧的非实时渲"
"染,或在延迟条件下测试项目。"

#: doc/classes/ProjectSettings.xml:398
msgid "Maximum call stack allowed for debugging GDScript."
msgstr "调试GDScript时允许的最大调用堆栈。"

#: doc/classes/ProjectSettings.xml:401
msgid "Maximum amount of functions per frame allowed when profiling."
msgstr "分析时每个帧允许的最大函数数量。"

#: doc/classes/ProjectSettings.xml:404
msgid "Print frames per second to standard output every second."
msgstr "每秒钟打印帧到标准输出。"

#: doc/classes/ProjectSettings.xml:407
msgid ""
"Print more information to standard output when running. It displays "
"information such as memory leaks, which scenes and resources are being "
"loaded, etc."
msgstr ""
"运行时打印更多信息到标准输出。它显示诸如内存泄漏、哪些场景和资源正在加载等信"
"息。"

#: doc/classes/ProjectSettings.xml:410
msgid "Maximum call stack in visual scripting, to avoid infinite recursion."
msgstr "最大的可视脚本调用堆栈,以避免无限递归。"

#: doc/classes/ProjectSettings.xml:413
msgid ""
"Color of the contact points between collision shapes, visible when \"Visible "
"Collision Shapes\" is enabled in the Debug menu."
msgstr "碰撞形状之间接触点的颜色,在调试菜单中启用“可见碰撞形状”时可见。"

#: doc/classes/ProjectSettings.xml:416
#, fuzzy
msgid ""
"Sets whether 2D physics will display collision outlines in game when "
"\"Visible Collision Shapes\" is enabled in the Debug menu."
msgstr "碰撞形状的颜色,当在调试菜单中启用“可见碰撞形状”时可见。"

#: doc/classes/ProjectSettings.xml:419
msgid ""
"Maximum number of contact points between collision shapes to display when "
"\"Visible Collision Shapes\" is enabled in the Debug menu."
msgstr "当在调试菜单中启用“可见碰撞形状”时,碰撞形状之间显示的最大接触点数。"

#: doc/classes/ProjectSettings.xml:422
msgid ""
"Color of the collision shapes, visible when \"Visible Collision Shapes\" is "
"enabled in the Debug menu."
msgstr "碰撞形状的颜色,当在调试菜单中启用“可见碰撞形状”时可见。"

#: doc/classes/ProjectSettings.xml:425
msgid ""
"Color of the disabled navigation geometry, visible when \"Visible Navigation"
"\" is enabled in the Debug menu."
msgstr "被禁用的导航几何图形的颜色,在调试菜单中启用“可见导航”时可见。"

#: doc/classes/ProjectSettings.xml:428
msgid ""
"Color of the navigation geometry, visible when \"Visible Navigation\" is "
"enabled in the Debug menu."
msgstr "导航几何图形的颜色,在调试菜单中启用“可见导航”时可见。"

#: doc/classes/ProjectSettings.xml:431
msgid "Custom image for the mouse cursor (limited to 256×256)."
msgstr "鼠标光标的自定义图像(最大256×256)。"

#: doc/classes/ProjectSettings.xml:434
msgid "Hotspot for the custom mouse cursor image."
msgstr "自定义鼠标光标图像的热点。"

#: doc/classes/ProjectSettings.xml:437
msgid "Position offset for tooltips, relative to the mouse cursor's hotspot."
msgstr "工具提示相对于鼠标光标热点的位置偏移量。"

#: doc/classes/ProjectSettings.xml:440
#, fuzzy
msgid ""
"If [code]true[/code], allows HiDPI display on Windows, macOS, and the HTML5 "
"platform. This setting has no effect on desktop Linux, as DPI-awareness "
"fallbacks are not supported there."
msgstr ""
"如果[code]true[/code],允许在Windows和macOS上显示HiDPI。这个设置对桌面Linux没"
"有影响,因为dpi感知回退在那里不受支持。"

#: doc/classes/ProjectSettings.xml:443
msgid ""
"If [code]true[/code], keeps the screen on (even in case of inactivity), so "
"the screensaver does not take over. Works on desktop and mobile platforms."
msgstr ""
"如果[code]true[/code],则保持屏幕打开(即使在不活动的情况下),因此屏幕保护程序"
"不会接管。适用于桌面和移动平台。"

#: doc/classes/ProjectSettings.xml:446
msgid ""
"The default screen orientation to use on mobile devices.\n"
"[b]Note:[/b] When set to a portrait orientation, this project setting does "
"not flip the project resolution's width and height automatically. Instead, "
"you have to set [member display/window/size/width] and [member display/"
"window/size/height] accordingly."
msgstr ""

#: doc/classes/ProjectSettings.xml:450
msgid ""
"If [code]true[/code], the home indicator is hidden automatically. This only "
"affects iOS devices without a physical home button."
msgstr ""
"如果[code]true[/code],主指示器将自动隐藏。这只会影响没有物理home键的iOS设"
"备。"

#: doc/classes/ProjectSettings.xml:453
msgid ""
"If [code]true[/code], allows per-pixel transparency for the window "
"background. This affects performance, so leave it on [code]false[/code] "
"unless you need it.\n"
"See [member OS.window_per_pixel_transparency_enabled] for more details.\n"
"[b]Note:[/b] This feature is implemented on HTML5, Linux, macOS, Windows, "
"and Android."
msgstr ""

#: doc/classes/ProjectSettings.xml:458
msgid ""
"Sets the window background to transparent when it starts.\n"
"See [member OS.window_per_pixel_transparency_enabled] for more details.\n"
"[b]Note:[/b] This feature is implemented on HTML5, Linux, macOS, Windows, "
"and Android."
msgstr ""

#: doc/classes/ProjectSettings.xml:463
msgid ""
"Forces the main window to be always on top.\n"
"[b]Note:[/b] This setting is ignored on iOS, Android, and HTML5."
msgstr ""

#: doc/classes/ProjectSettings.xml:467
msgid ""
"Forces the main window to be borderless.\n"
"[b]Note:[/b] This setting is ignored on iOS, Android, and HTML5."
msgstr ""

#: doc/classes/ProjectSettings.xml:471
msgid ""
"Sets the main window to full screen when the project starts. Note that this "
"is not [i]exclusive[/i] fullscreen. On Windows and Linux, a borderless "
"window is used to emulate fullscreen. On macOS, a new desktop is used to "
"display the running project.\n"
"Regardless of the platform, enabling fullscreen will change the window size "
"to match the monitor's size. Therefore, make sure your project supports "
"[url=https://docs.godotengine.org/en/3.4/tutorials/rendering/"
"multiple_resolutions.html]multiple resolutions[/url] when enabling "
"fullscreen mode.\n"
"[b]Note:[/b] This setting is ignored on iOS, Android, and HTML5."
msgstr ""

#: doc/classes/ProjectSettings.xml:476
msgid ""
"Sets the game's main viewport height. On desktop platforms, this is the "
"default window size. Stretch mode settings also use this as a reference when "
"enabled."
msgstr ""
"设置游戏的主视口高度。在桌面平台上,这是默认的窗口大小。当启用拉伸模式设置"
"时,也使用此参数作为参考。"

#: doc/classes/ProjectSettings.xml:479
#, fuzzy
msgid ""
"Allows the window to be resizable by default.\n"
"[b]Note:[/b] This setting is ignored on iOS and Android."
msgstr "默认情况下允许窗口可调整大小。"

#: doc/classes/ProjectSettings.xml:483
msgid ""
"If greater than zero, overrides the window height when running the game. "
"Useful for testing stretch modes."
msgstr "如果大于0,则在运行游戏时覆盖窗口高度。用于测试拉伸模式。"

#: doc/classes/ProjectSettings.xml:486
msgid ""
"If greater than zero, overrides the window width when running the game. "
"Useful for testing stretch modes."
msgstr "如果大于0,则在运行游戏时覆盖窗口宽度。用于测试拉伸模式。"

#: doc/classes/ProjectSettings.xml:489
msgid ""
"Sets the game's main viewport width. On desktop platforms, this is the "
"default window size. Stretch mode settings also use this as a reference when "
"enabled."
msgstr ""
"设置游戏的主视窗宽度。在桌面平台上,这是默认的窗口大小。当启用拉伸模式设置"
"时,也使用此参数作为参考。"

#: doc/classes/ProjectSettings.xml:492
msgid ""
"Specifies the tablet driver to use. If left empty, the default driver will "
"be used."
msgstr "指定要使用的平板驱动程序。如果为空,将使用默认驱动程序。"

#: doc/classes/ProjectSettings.xml:495
msgid ""
"If [code]true[/code], enables vertical synchronization. This eliminates "
"tearing that may appear in moving scenes, at the cost of higher input "
"latency and stuttering at lower framerates. If [code]false[/code], vertical "
"synchronization will be disabled, however, many platforms will enforce it "
"regardless (such as mobile platforms and HTML5)."
msgstr ""
"如果[code]true[/code],则启用垂直同步。这消除了在移动场景中可能出现的撕裂,以"
"较高的输入延迟和较低的帧率为代价。如果[code]false[/code],垂直同步将被禁用,"
"然而,许多平台仍将执行它(如手机平台和HTML5)。"

#: doc/classes/ProjectSettings.xml:498
msgid ""
"If [code]Use Vsync[/code] is enabled and this setting is [code]true[/code], "
"enables vertical synchronization via the operating system's window "
"compositor when in windowed mode and the compositor is enabled. This will "
"prevent stutter in certain situations. (Windows only.)\n"
"[b]Note:[/b] This option is experimental and meant to alleviate stutter "
"experienced by some users. However, some users have experienced a Vsync "
"framerate halving (e.g. from 60 FPS to 30 FPS) when using it."
msgstr ""
"如果[code]Use Vsync[/code]已启用,且[code]true[/code],则在窗口模式下启用排字"
"器时,可通过操作系统的窗口排字器实现垂直同步。这将防止在某些情况下卡顿。"
"(Windows)。\n"
"[b]注:[/b]这个选项是实验性的,旨在缓解一些用户的卡顿体验。然而,有些用户在使"
"用它时体验到垂直同步帧率减半(例如从60 FPS降至30 FPS)。"

#: doc/classes/ProjectSettings.xml:502
msgid ""
"The command-line arguments to append to Godot's own command line when "
"running the project. This doesn't affect the editor itself.\n"
"It is possible to make another executable run Godot by using the "
"[code]%command%[/code] placeholder. The placeholder will be replaced with "
"Godot's own command line. Program-specific arguments should be placed "
"[i]before[/i] the placeholder, whereas Godot-specific arguments should be "
"placed [i]after[/i] the placeholder.\n"
"For example, this can be used to force the project to run on the dedicated "
"GPU in a NVIDIA Optimus system on Linux:\n"
"[codeblock]\n"
"prime-run %command%\n"
"[/codeblock]"
msgstr ""

#: doc/classes/ProjectSettings.xml:510
#, fuzzy
msgid ""
"Search path for project-specific script templates. Godot will search for "
"script templates both in the editor-specific path and in this project-"
"specific path."
msgstr ""
"搜索特定于项目的脚本模板路径。脚本模板将在特定于编辑器的路径和特定于项目的路"
"径中进行搜索。"

#: doc/classes/ProjectSettings.xml:513
msgid ""
"Text-based file extensions to include in the script editor's \"Find in Files"
"\" feature. You can add e.g. [code]tscn[/code] if you wish to also parse "
"your scene files, especially if you use built-in scripts which are "
"serialized in the scene files."
msgstr ""
"脚本编辑器的“在文件中查找”特性中包含的基于文本的文件扩展名。你可以添加例如"
"[code]tscn[/code],如果你也想解析你的场景文件,特别是如果你使用的是在场景文件"
"中序列化的内置脚本。"

#: doc/classes/ProjectSettings.xml:516
msgid ""
"Default value for [member ScrollContainer.scroll_deadzone], which will be "
"used for all [ScrollContainer]s unless overridden."
msgstr ""
"[member ScrollContainer.scroll_deadzone],它将用于所有[ScrollContainer]s,除"
"非重写。"

#: doc/classes/ProjectSettings.xml:519
#, fuzzy
msgid ""
"If [code]true[/code], swaps OK and Cancel buttons in dialogs on Windows and "
"UWP to follow interface conventions."
msgstr ""
"如果[code]为true[/code],则切换Windows和UWP对话框中的Cancel和OK按钮,以遵循界"
"面约定。"

#: doc/classes/ProjectSettings.xml:524
msgid ""
"Path to a custom [Theme] resource file to use for the project ([code]theme[/"
"code] or generic [code]tres[/code]/[code]res[/code] extension)."
msgstr ""
"用于项目的自定义[Theme]资源文件的路径([code]theme[/code]或通用[code]tres[/"
"code]/[code]res[/code]扩展名)。"

#: doc/classes/ProjectSettings.xml:527
msgid ""
"Path to a custom [Font] resource to use as default for all GUI elements of "
"the project."
msgstr "自定义[Font]资源的路径,用于项目的所有GUI元素的默认字体。"

#: doc/classes/ProjectSettings.xml:530
msgid "If [code]true[/code], makes sure the theme used works with HiDPI."
msgstr "如果[code]true[/code],确保使用的主题将在HiDPI下工作。"

#: doc/classes/ProjectSettings.xml:533
msgid ""
"Timer setting for incremental search in [Tree], [ItemList], etc. controls "
"(in milliseconds)."
msgstr "在[Tree], [ItemList]等控件中为增量搜索设置计时器(以毫秒为单位)。"

#: doc/classes/ProjectSettings.xml:536
msgid "Timer for detecting idle in [TextEdit] (in seconds)."
msgstr "检测[TextEdit]空闲的计时器(单位为秒)。"

#: doc/classes/ProjectSettings.xml:539
msgid "Default delay for tooltips (in seconds)."
msgstr "工具提示的默认延迟(以秒为单位)。"

#: doc/classes/ProjectSettings.xml:542
msgid ""
"Default [InputEventAction] to confirm a focused button, menu or list item, "
"or validate input.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认用于确认焦点按钮、菜单或列表项,或验证输入的[InputEventAction]。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:546
msgid ""
"Default [InputEventAction] to discard a modal or pending input.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认放弃一个模态或挂起的输入的[InputEventAction]。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:550
msgid ""
"Default [InputEventAction] to move down in the UI.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认在UI中向下移动的[InputEventAction]。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:554
msgid ""
"Default [InputEventAction] to go to the end position of a [Control] (e.g. "
"last item in an [ItemList] or a [Tree]), matching the behavior of [constant "
"KEY_END] on typical desktop UI systems.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认[InputEventAction]去[Control]的结束位置(例如[ItemList]或[Tree]中的最后一"
"项),匹配典型桌面UI系统中[constant KEY_END]的行为。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:558
msgid ""
"Default [InputEventAction] to focus the next [Control] in the scene. The "
"focus behavior can be configured via [member Control.focus_next].\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认聚焦场景中的下一个[Control]的[InputEventAction]。焦点行为可以通过[member "
"Control.focus_next]配置。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:562
msgid ""
"Default [InputEventAction] to focus the previous [Control] in the scene. The "
"focus behavior can be configured via [member Control.focus_previous].\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认聚焦场景中的前一个[Control]的[InputEventAction]。焦点行为可以通过[member "
"Control.focus_previous]配置。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:566
msgid ""
"Default [InputEventAction] to go to the start position of a [Control] (e.g. "
"first item in an [ItemList] or a [Tree]), matching the behavior of [constant "
"KEY_HOME] on typical desktop UI systems.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认的将进入[Control]的起始位置(例如[ItemList]或[Tree]中的第一个项目)时的"
"[InputEventAction],与典型的桌面UI系统中[constant KEY_HOME]的行为相匹配。\n"
"[b]注意:[/b] 默认的[code]ui_*[/code]动作不能被删除,因为它们对于几个"
"[Control]的内部逻辑是必要的。然而,分配给动作的事件可以被修改。"

#: doc/classes/ProjectSettings.xml:570
msgid ""
"Default [InputEventAction] to move left in the UI.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认在UI中向左移动的[InputEventAction]。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:574
msgid ""
"Default [InputEventAction] to go down a page in a [Control] (e.g. in an "
"[ItemList] or a [Tree]), matching the behavior of [constant KEY_PAGEDOWN] on "
"typical desktop UI systems.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认的在[Control](例如[ItemList]或[Tree])中下拉页面的[InputEventAction],与典"
"型桌面UI系统中[constant KEY_PAGEDOWN]的行为相匹配。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:578
msgid ""
"Default [InputEventAction] to go up a page in a [Control] (e.g. in an "
"[ItemList] or a [Tree]), matching the behavior of [constant KEY_PAGEUP] on "
"typical desktop UI systems.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认在[Control](例如[ItemList]或[Tree])中上移页面的[InputEventAction],与典型"
"桌面UI系统中[constant KEY_PAGEUP]的行为相匹配。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:582
msgid ""
"Default [InputEventAction] to move right in the UI.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认在UI中右移的[InputEventAction]。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:586
msgid ""
"Default [InputEventAction] to select an item in a [Control] (e.g. in an "
"[ItemList] or a [Tree]).\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认选择[Control](例如[ItemList]或[Tree])中的一个项目[InputEventAction]。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:590
msgid ""
"Default [InputEventAction] to move up in the UI.\n"
"[b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are "
"necessary for the internal logic of several [Control]s. The events assigned "
"to the action can however be modified."
msgstr ""
"默认在UI中向上移动[InputEventAction]。\n"
"[b]注意:[/b]默认的[code]ui_*[/code]动作不能被删除,因为它们是几个[Control]的"
"内部逻辑所必需的。但是,可以修改分配给该操作的事件。"

#: doc/classes/ProjectSettings.xml:594
msgid ""
"If [code]true[/code], key/touch/joystick events will be flushed just before "
"every idle and physics frame.\n"
"If [code]false[/code], such events will be flushed only once per idle frame, "
"between iterations of the engine.\n"
"Enabling this can greatly improve the responsiveness to input, specially in "
"devices that need to run multiple physics frames per visible (idle) frame, "
"because they can't run at the target frame rate.\n"
"[b]Note:[/b] Currently implemented only in Android."
msgstr ""

#: doc/classes/ProjectSettings.xml:600
msgid ""
"If [code]true[/code], sends mouse input events when tapping or swiping on "
"the touchscreen."
msgstr "如果[code]true[/code],则在点击或滑动触摸屏时发送鼠标输入事件。"

#: doc/classes/ProjectSettings.xml:603
msgid ""
"If [code]true[/code], sends touch input events when clicking or dragging the "
"mouse."
msgstr "如果[code]true[/code],则在点击或拖动鼠标时发送触摸输入事件。"

#: doc/classes/ProjectSettings.xml:606
#, fuzzy
msgid "Default delay for touch events. This only affects iOS devices."
msgstr "工具提示的默认延迟(以秒为单位)。"

#: doc/classes/ProjectSettings.xml:609
msgid "Optional name for the 2D physics layer 1."
msgstr "2D物理层1的可选名称。"

#: doc/classes/ProjectSettings.xml:612
msgid "Optional name for the 2D physics layer 10."
msgstr "2D物理层10的可选名称。"

#: doc/classes/ProjectSettings.xml:615
msgid "Optional name for the 2D physics layer 11."
msgstr "2D物理层11的可选名称。"

#: doc/classes/ProjectSettings.xml:618
msgid "Optional name for the 2D physics layer 12."
msgstr "2D物理层12的可选名称。"

#: doc/classes/ProjectSettings.xml:621
msgid "Optional name for the 2D physics layer 13."
msgstr "2D物理层13的可选名称。"

#: doc/classes/ProjectSettings.xml:624
msgid "Optional name for the 2D physics layer 14."
msgstr "2D物理层14的可选名称。"

#: doc/classes/ProjectSettings.xml:627
msgid "Optional name for the 2D physics layer 15."
msgstr "2D物理层15的可选名称。"

#: doc/classes/ProjectSettings.xml:630
msgid "Optional name for the 2D physics layer 16."
msgstr "2D物理层16的可选名称。"

#: doc/classes/ProjectSettings.xml:633
msgid "Optional name for the 2D physics layer 17."
msgstr "2D物理层17的可选名称。"

#: doc/classes/ProjectSettings.xml:636
msgid "Optional name for the 2D physics layer 18."
msgstr "2D物理层18的可选名称。"

#: doc/classes/ProjectSettings.xml:639
msgid "Optional name for the 2D physics layer 19."
msgstr "2D物理层19的可选名称。"

#: doc/classes/ProjectSettings.xml:642
msgid "Optional name for the 2D physics layer 2."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:645
msgid "Optional name for the 2D physics layer 20."
msgstr "2D物理层20的可选名称。"

#: doc/classes/ProjectSettings.xml:648
#, fuzzy
msgid "Optional name for the 2D physics layer 21."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:651
#, fuzzy
msgid "Optional name for the 2D physics layer 22."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:654
#, fuzzy
msgid "Optional name for the 2D physics layer 23."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:657
#, fuzzy
msgid "Optional name for the 2D physics layer 24."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:660
#, fuzzy
msgid "Optional name for the 2D physics layer 25."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:663
#, fuzzy
msgid "Optional name for the 2D physics layer 26."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:666
#, fuzzy
msgid "Optional name for the 2D physics layer 27."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:669
#, fuzzy
msgid "Optional name for the 2D physics layer 28."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:672
#, fuzzy
msgid "Optional name for the 2D physics layer 29."
msgstr "2D物理层2的可选名称。"

#: doc/classes/ProjectSettings.xml:675
msgid "Optional name for the 2D physics layer 3."
msgstr "2D物理层3的可选名称。"

#: doc/classes/ProjectSettings.xml:678
#, fuzzy
msgid "Optional name for the 2D physics layer 30."
msgstr "2D物理层3的可选名称。"

#: doc/classes/ProjectSettings.xml:681
#, fuzzy
msgid "Optional name for the 2D physics layer 31."
msgstr "2D物理层3的可选名称。"

#: doc/classes/ProjectSettings.xml:684
#, fuzzy
msgid "Optional name for the 2D physics layer 32."
msgstr "2D物理层3的可选名称。"

#: doc/classes/ProjectSettings.xml:687
msgid "Optional name for the 2D physics layer 4."
msgstr "2D物理层4的可选名称。"

#: doc/classes/ProjectSettings.xml:690
msgid "Optional name for the 2D physics layer 5."
msgstr "2D物理层5的可选名称。"

#: doc/classes/ProjectSettings.xml:693
msgid "Optional name for the 2D physics layer 6."
msgstr "2D物理层6的可选名称。"

#: doc/classes/ProjectSettings.xml:696
msgid "Optional name for the 2D physics layer 7."
msgstr "2D物理层7的可选名称。"

#: doc/classes/ProjectSettings.xml:699
msgid "Optional name for the 2D physics layer 8."
msgstr "2D物理层8的可选名称。"

#: doc/classes/ProjectSettings.xml:702
msgid "Optional name for the 2D physics layer 9."
msgstr "2D物理层9的可选名称。"

#: doc/classes/ProjectSettings.xml:705
msgid "Optional name for the 2D render layer 1."
msgstr "2D物理层1的可选名称。"

#: doc/classes/ProjectSettings.xml:708
msgid "Optional name for the 2D render layer 10."
msgstr "2D渲染层10的可选名称。"

#: doc/classes/ProjectSettings.xml:711
msgid "Optional name for the 2D render layer 11."
msgstr "2D渲染层11的可选名称。"

#: doc/classes/ProjectSettings.xml:714
msgid "Optional name for the 2D render layer 12."
msgstr "2D渲染层12的可选名称。"

#: doc/classes/ProjectSettings.xml:717
msgid "Optional name for the 2D render layer 13."
msgstr "2D渲染层13的可选名称。"

#: doc/classes/ProjectSettings.xml:720
msgid "Optional name for the 2D render layer 14."
msgstr "2D渲染层14的可选名称。"

#: doc/classes/ProjectSettings.xml:723
msgid "Optional name for the 2D render layer 15."
msgstr "2D渲染层15的可选名称。"

#: doc/classes/ProjectSettings.xml:726
msgid "Optional name for the 2D render layer 16."
msgstr "2D渲染层16的可选名称。"

#: doc/classes/ProjectSettings.xml:729
msgid "Optional name for the 2D render layer 17."
msgstr "2D渲染层17的可选名称。"

#: doc/classes/ProjectSettings.xml:732
msgid "Optional name for the 2D render layer 18."
msgstr "2D渲染层18的可选名称。"

#: doc/classes/ProjectSettings.xml:735
msgid "Optional name for the 2D render layer 19."
msgstr "2D渲染层19的可选名称。"

#: doc/classes/ProjectSettings.xml:738
msgid "Optional name for the 2D render layer 2."
msgstr "2D 渲染层 2 的可选名称。"

#: doc/classes/ProjectSettings.xml:741
msgid "Optional name for the 2D render layer 20."
msgstr "2D 渲染层 20 的可选名称。"

#: doc/classes/ProjectSettings.xml:744
msgid "Optional name for the 2D render layer 3."
msgstr "2D 渲染层 3 的可选名称。"

#: doc/classes/ProjectSettings.xml:747
msgid "Optional name for the 2D render layer 4."
msgstr "2D 渲染层 4 的可选名称。"

#: doc/classes/ProjectSettings.xml:750
msgid "Optional name for the 2D render layer 5."
msgstr "2D 渲染层 5 的可选名称。"

#: doc/classes/ProjectSettings.xml:753
msgid "Optional name for the 2D render layer 6."
msgstr "2D 渲染层 6 的可选名称。"

#: doc/classes/ProjectSettings.xml:756
msgid "Optional name for the 2D render layer 7."
msgstr "2D 渲染层 7 的可选名称。"

#: doc/classes/ProjectSettings.xml:759
msgid "Optional name for the 2D render layer 8."
msgstr "2D 渲染层 8 的可选名称。"

#: doc/classes/ProjectSettings.xml:762
msgid "Optional name for the 2D render layer 9."
msgstr "2D 渲染层 9 的可选名称。"

#: doc/classes/ProjectSettings.xml:765
msgid "Optional name for the 3D physics layer 1."
msgstr "3D物理层1 的可选名称。"

#: doc/classes/ProjectSettings.xml:768
msgid "Optional name for the 3D physics layer 10."
msgstr "3D物理层10 的可选名称。"

#: doc/classes/ProjectSettings.xml:771
msgid "Optional name for the 3D physics layer 11."
msgstr "3D物理层11 的可选名称。"

#: doc/classes/ProjectSettings.xml:774
msgid "Optional name for the 3D physics layer 12."
msgstr "3D物理层12 的可选名称。"

#: doc/classes/ProjectSettings.xml:777
msgid "Optional name for the 3D physics layer 13."
msgstr "3D物理层13 的可选名称。"

#: doc/classes/ProjectSettings.xml:780
msgid "Optional name for the 3D physics layer 14."
msgstr "3D物理层14 的可选名称。"

#: doc/classes/ProjectSettings.xml:783
msgid "Optional name for the 3D physics layer 15."
msgstr "3D物理层15 的可选名称。"

#: doc/classes/ProjectSettings.xml:786
msgid "Optional name for the 3D physics layer 16."
msgstr "3D物理层16 的可选名称。"

#: doc/classes/ProjectSettings.xml:789
msgid "Optional name for the 3D physics layer 17."
msgstr "3D物理层17 的可选名称。"

#: doc/classes/ProjectSettings.xml:792
msgid "Optional name for the 3D physics layer 18."
msgstr "3D物理层18 的可选名称。"

#: doc/classes/ProjectSettings.xml:795
msgid "Optional name for the 3D physics layer 19."
msgstr "3D物理层19 的可选名称。"

#: doc/classes/ProjectSettings.xml:798
msgid "Optional name for the 3D physics layer 2."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:801
msgid "Optional name for the 3D physics layer 20."
msgstr "3D物理层20 的可选名称。"

#: doc/classes/ProjectSettings.xml:804
#, fuzzy
msgid "Optional name for the 3D physics layer 21."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:807
#, fuzzy
msgid "Optional name for the 3D physics layer 22."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:810
#, fuzzy
msgid "Optional name for the 3D physics layer 23."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:813
#, fuzzy
msgid "Optional name for the 3D physics layer 24."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:816
#, fuzzy
msgid "Optional name for the 3D physics layer 25."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:819
#, fuzzy
msgid "Optional name for the 3D physics layer 26."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:822
#, fuzzy
msgid "Optional name for the 3D physics layer 27."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:825
#, fuzzy
msgid "Optional name for the 3D physics layer 28."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:828
#, fuzzy
msgid "Optional name for the 3D physics layer 29."
msgstr "3D物理层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:831
msgid "Optional name for the 3D physics layer 3."
msgstr "3D物理层3 的可选名称。"

#: doc/classes/ProjectSettings.xml:834
#, fuzzy
msgid "Optional name for the 3D physics layer 30."
msgstr "3D物理层3 的可选名称。"

#: doc/classes/ProjectSettings.xml:837
#, fuzzy
msgid "Optional name for the 3D physics layer 31."
msgstr "3D物理层3 的可选名称。"

#: doc/classes/ProjectSettings.xml:840
#, fuzzy
msgid "Optional name for the 3D physics layer 32."
msgstr "3D物理层3 的可选名称。"

#: doc/classes/ProjectSettings.xml:843
msgid "Optional name for the 3D physics layer 4."
msgstr "3D物理层4 的可选名称。"

#: doc/classes/ProjectSettings.xml:846
msgid "Optional name for the 3D physics layer 5."
msgstr "3D物理层5 的可选名称。"

#: doc/classes/ProjectSettings.xml:849
msgid "Optional name for the 3D physics layer 6."
msgstr "3D物理层6 的可选名称。"

#: doc/classes/ProjectSettings.xml:852
msgid "Optional name for the 3D physics layer 7."
msgstr "3D物理层7 的可选名称。"

#: doc/classes/ProjectSettings.xml:855
msgid "Optional name for the 3D physics layer 8."
msgstr "3D物理层8 的可选名称。"

#: doc/classes/ProjectSettings.xml:858
msgid "Optional name for the 3D physics layer 9."
msgstr "3D物理层9 的可选名称。"

#: doc/classes/ProjectSettings.xml:861
msgid "Optional name for the 3D render layer 1."
msgstr "3D渲染层1 的可选名称。"

#: doc/classes/ProjectSettings.xml:864
msgid "Optional name for the 3D render layer 10."
msgstr "3D渲染层10 的可选名称。"

#: doc/classes/ProjectSettings.xml:867
msgid "Optional name for the 3D render layer 11."
msgstr "3D渲染层11 的可选名称。"

#: doc/classes/ProjectSettings.xml:870
msgid "Optional name for the 3D render layer 12."
msgstr "3D渲染层12 的可选名称。"

#: doc/classes/ProjectSettings.xml:873
msgid "Optional name for the 3D render layer 13."
msgstr "3D渲染层13 的可选名称。"

#: doc/classes/ProjectSettings.xml:876
msgid "Optional name for the 3D render layer 14"
msgstr "3D渲染层14 的可选名称"

#: doc/classes/ProjectSettings.xml:879
msgid "Optional name for the 3D render layer 15."
msgstr "3D渲染层15 的可选名称。"

#: doc/classes/ProjectSettings.xml:882
msgid "Optional name for the 3D render layer 16."
msgstr "3D渲染层16 的可选名称。"

#: doc/classes/ProjectSettings.xml:885
msgid "Optional name for the 3D render layer 17."
msgstr "3D渲染层17 的可选名称。"

#: doc/classes/ProjectSettings.xml:888
msgid "Optional name for the 3D render layer 18."
msgstr "3D渲染层18 的可选名称。"

#: doc/classes/ProjectSettings.xml:891
msgid "Optional name for the 3D render layer 19."
msgstr "3D渲染层19 的可选名称。"

#: doc/classes/ProjectSettings.xml:894
msgid "Optional name for the 3D render layer 2."
msgstr "3D渲染层2 的可选名称。"

#: doc/classes/ProjectSettings.xml:897
msgid "Optional name for the 3D render layer 20."
msgstr "3D渲染层20 的可选名称。"

#: doc/classes/ProjectSettings.xml:900
msgid "Optional name for the 3D render layer 3."
msgstr "3D渲染层3 的可选名称。"

#: doc/classes/ProjectSettings.xml:903
msgid "Optional name for the 3D render layer 4."
msgstr "3D渲染层4 的可选名称。"

#: doc/classes/ProjectSettings.xml:906
msgid "Optional name for the 3D render layer 5."
msgstr "3D渲染层5 的可选名称。"

#: doc/classes/ProjectSettings.xml:909
msgid "Optional name for the 3D render layer 6."
msgstr "3D渲染层6 的可选名称。"

#: doc/classes/ProjectSettings.xml:912
msgid "Optional name for the 3D render layer 7."
msgstr "3D渲染层7 的可选名称。"

#: doc/classes/ProjectSettings.xml:915
msgid "Optional name for the 3D render layer 8."
msgstr "3D渲染层8 的可选名称。"

#: doc/classes/ProjectSettings.xml:918
msgid "Optional name for the 3D render layer 9."
msgstr "3D渲染层9 的可选名称。"

#: doc/classes/ProjectSettings.xml:921
msgid ""
"The locale to fall back to if a translation isn't available in a given "
"language. If left empty, [code]en[/code] (English) will be used."
msgstr ""
"如果给定语言的翻译不可用,则使用默认地域。如果留空,将使用 [code]en[/code],"
"即英文。"

#: doc/classes/ProjectSettings.xml:924
msgid ""
"If non-empty, this locale will be used when running the project from the "
"editor."
msgstr "如果不为空,那么当从编辑器中运行项目时,将使用该语言。"

#: doc/classes/ProjectSettings.xml:927
msgid "If [code]true[/code], logs all output to files."
msgstr "如果[code]true[/code],将所有输出记录到文件中。"

#: doc/classes/ProjectSettings.xml:930
msgid ""
"Desktop override for [member logging/file_logging/enable_file_logging], as "
"log files are not readily accessible on mobile/Web platforms."
msgstr ""

#: doc/classes/ProjectSettings.xml:933
msgid ""
"Path to logs within the project. Using an [code]user://[/code] path is "
"recommended."
msgstr "项目中的日志的路径。建议使用[code]user://[/code]作为路径。"

#: doc/classes/ProjectSettings.xml:936
msgid "Specifies the maximum amount of log files allowed (used for rotation)."
msgstr "指定允许的日志文件的最大数量(用于旋转)。"

#: doc/classes/ProjectSettings.xml:941
msgid ""
"Godot uses a message queue to defer some function calls. If you run out of "
"space on it (you will see an error), you can increase the size here."
msgstr ""
"Godot使用一个消息队列来延迟一些函数调用。如果你的空间用完了(你会看到一个错"
"误),你可以在这里增加大小。"

#: doc/classes/ProjectSettings.xml:944
msgid ""
"This is used by servers when used in multi-threading mode (servers and "
"visual). RIDs are preallocated to avoid stalling the server requesting them "
"on threads. If servers get stalled too often when loading resources in a "
"thread, increase this number."
msgstr ""
"在多线程模式下使用时,服务器会使用它(服务器和可视化端)。 RID 是预先分配的,"
"以避免在线程上停止请求它们的服务器。如果在线程中加载资源时服务器经常卡顿,请"
"增加此数字。"

#: doc/classes/ProjectSettings.xml:947
msgid ""
"Maximum amount of characters allowed to send as output from the debugger. "
"Over this value, content is dropped. This helps not to stall the debugger "
"connection."
msgstr ""
"允许调试器输出的最大字符量。超过这个值,内容就会被放弃。这有助于避免调试器的"
"连接停滞。"

#: doc/classes/ProjectSettings.xml:950
#, fuzzy
msgid ""
"Maximum number of errors allowed to be sent as output from the debugger. "
"Over this value, content is dropped. This helps not to stall the debugger "
"connection."
msgstr ""
"允许调试器发送的最大错误数。超过这个值,内容就会被抛弃。这有助于避免调试器的"
"连接停滞。"

#: doc/classes/ProjectSettings.xml:953
#, fuzzy
msgid ""
"Maximum amount of messages allowed to send as output from the debugger. Over "
"this value, content is dropped. This helps not to stall the debugger "
"connection."
msgstr ""
"允许调试器输出的最大字符量。超过这个值,内容就会被放弃。这有助于避免调试器的"
"连接停滞。"

#: doc/classes/ProjectSettings.xml:956
#, fuzzy
msgid ""
"Maximum number of warnings allowed to be sent as output from the debugger. "
"Over this value, content is dropped. This helps not to stall the debugger "
"connection."
msgstr ""
"允许从调试器发送的最大警告数。超过这个值,内容就会被抛弃。这有助于避免调试器"
"的连接停滞。"

#: doc/classes/ProjectSettings.xml:959
#, fuzzy
msgid ""
"Default size of packet peer stream for deserializing Godot data (in bytes, "
"specified as a power of two). The default value [code]16[/code] is equal to "
"65,536 bytes. Over this size, data is dropped."
msgstr ""
"用于反序列化Godot数据的数据包对等流的默认大小。超过这个大小,数据会被丢弃。"

#: doc/classes/ProjectSettings.xml:962
msgid "Timeout (in seconds) for connection attempts using TCP."
msgstr "使用TCP的连接尝试的超时(以秒为单位)。"

#: doc/classes/ProjectSettings.xml:965
msgid "Maximum size (in kiB) for the [WebRTCDataChannel] input buffer."
msgstr "[WebRTCDataChannel]输入缓冲区的最大尺寸(单位:千字节)。"

#: doc/classes/ProjectSettings.xml:968
#, fuzzy
msgid "Maximum size (in kiB) for the [WebSocketClient] input buffer."
msgstr "[WebRTCDataChannel]输入缓冲区的最大尺寸(单位:千字节)。"

#: doc/classes/ProjectSettings.xml:971
msgid "Maximum number of concurrent input packets for [WebSocketClient]."
msgstr ""

#: doc/classes/ProjectSettings.xml:974
#, fuzzy
msgid "Maximum size (in kiB) for the [WebSocketClient] output buffer."
msgstr "[WebRTCDataChannel]输入缓冲区的最大尺寸(单位:千字节)。"

#: doc/classes/ProjectSettings.xml:977
msgid "Maximum number of concurrent output packets for [WebSocketClient]."
msgstr ""

#: doc/classes/ProjectSettings.xml:980
#, fuzzy
msgid "Maximum size (in kiB) for the [WebSocketServer] input buffer."
msgstr "[WebRTCDataChannel]输入缓冲区的最大尺寸(单位:千字节)。"

#: doc/classes/ProjectSettings.xml:983
msgid "Maximum number of concurrent input packets for [WebSocketServer]."
msgstr ""

#: doc/classes/ProjectSettings.xml:986
#, fuzzy
msgid "Maximum size (in kiB) for the [WebSocketServer] output buffer."
msgstr "[WebRTCDataChannel]输入缓冲区的最大尺寸(单位:千字节)。"

#: doc/classes/ProjectSettings.xml:989
msgid "Maximum number of concurrent output packets for [WebSocketServer]."
msgstr ""

#: doc/classes/ProjectSettings.xml:992
msgid ""
"Amount of read ahead used by remote filesystem. Higher values decrease the "
"effects of latency at the cost of higher bandwidth usage."
msgstr ""
"对远程文件系统的预读取量。更高的值可以减少延迟的影响,但代价是更高的带宽消"
"耗。"

#: doc/classes/ProjectSettings.xml:995
msgid "Page size used by remote filesystem (in bytes)."
msgstr "远程文件系统使用的页面大小(字节)。"

#: doc/classes/ProjectSettings.xml:998
msgid ""
"The CA certificates bundle to use for SSL connections. If this is set to a "
"non-empty value, this will [i]override[/i] Godot's default [url=https://"
"github.com/godotengine/godot/blob/master/thirdparty/certs/ca-certificates."
"crt]Mozilla certificate bundle[/url]. If left empty, the default certificate "
"bundle will be used.\n"
"If in doubt, leave this setting empty."
msgstr ""
"用于SSL连接的CA证书包。如果设置为非空值,这将[i]覆盖[/i]Godot默认的"
"[url=https://github.com/godotengine/godot/blob/master/thirdparty/certs/ca-"
"certificates.crt]Mozilla证书包[/url]。如果留空,将使用默认的证书包。\n"
"如果有疑问,让这个设置为空。"

#: doc/classes/ProjectSettings.xml:1002
msgid ""
"When creating node names automatically, set the type of casing in this "
"project. This is mostly an editor setting."
msgstr ""
"当自动创建节点名称时,在这个项目中设置大小写的类型。这主要是编辑器设置。"

#: doc/classes/ProjectSettings.xml:1005
msgid ""
"What to use to separate node name from number. This is mostly an editor "
"setting."
msgstr "用什么来分隔节点名称和编号。这主要是一个编辑器的设置。"

#: doc/classes/ProjectSettings.xml:1008
#, fuzzy
msgid ""
"Size of the hash table used for the broad-phase 2D hash grid algorithm.\n"
"[b]Note:[/b] Not used if [member ProjectSettings.physics/2d/use_bvh] is "
"enabled."
msgstr "用于broad-phase 2D 哈希网格算法的哈希表的大小。"

#: doc/classes/ProjectSettings.xml:1012
msgid ""
"Cell size used for the broad-phase 2D hash grid algorithm (in pixels).\n"
"[b]Note:[/b] Not used if [member ProjectSettings.physics/2d/use_bvh] is "
"enabled."
msgstr ""

#: doc/classes/ProjectSettings.xml:1016
msgid ""
"The default angular damp in 2D.\n"
"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
"At value [code]0[/code] objects will keep moving with the same velocity. "
"Values greater than [code]1[/code] will aim to reduce the velocity to "
"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
"or greater than the physics frame rate ([member ProjectSettings.physics/"
"common/physics_fps], [code]60[/code] by default) will bring the object to a "
"stop in one iteration."
msgstr ""

#: doc/classes/ProjectSettings.xml:1020
#, fuzzy
msgid ""
"The default gravity strength in 2D (in pixels per second squared).\n"
"[b]Note:[/b] This property is only read when the project starts. To change "
"the default gravity at runtime, use the following code sample:\n"
"[codeblock]\n"
"# Set the default gravity strength to 98.\n"
"Physics2DServer.area_set_param(get_viewport().find_world_2d().get_space(), "
"Physics2DServer.AREA_PARAM_GRAVITY, 98)\n"
"[/codeblock]"
msgstr ""
"2D中默认的重力强度。\n"
"[b]注意:[/b]这个属性只在项目启动时被读取。若要在运行时改变默认的重力,请使用"
"以下代码示例。\n"
"[codeblock]\n"
"# 设置默认的重力强度为98。\n"
"PhysicsServer2D.area_set_param(get_viewport().find_world_2d().get_space(), "
"PhysicsServer2D.area_PARAM_GRAVITY, 98)\n"
"[/codeblock]"

#: doc/classes/ProjectSettings.xml:1028
#, fuzzy
msgid ""
"The default gravity direction in 2D.\n"
"[b]Note:[/b] This property is only read when the project starts. To change "
"the default gravity vector at runtime, use the following code sample:\n"
"[codeblock]\n"
"# Set the default gravity direction to `Vector2(0, 1)`.\n"
"Physics2DServer.area_set_param(get_viewport().find_world_2d().get_space(), "
"Physics2DServer.AREA_PARAM_GRAVITY_VECTOR, Vector2(0, 1))\n"
"[/codeblock]"
msgstr ""
"2D中默认的重力方向。\n"
"[b]注意:[/b]这个属性只在项目启动时被读取。若要在运行时改变默认的重力向量,请"
"使用下面的代码示例。\n"
"[codeblock]\n"
"# 设置默认的重力方向为`Vector2(0, 1)`。\n"
"PhysicsServer2D.area_set_param(get_viewport().find_world_2d().get_space(), "
"PhysicsServer2D.area_PARAM_GRAVITY_VECTOR, Vector2(0, 1))\n"
"[/codeblock]"

#: doc/classes/ProjectSettings.xml:1036
msgid ""
"The default linear damp in 2D.\n"
"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
"At value [code]0[/code] objects will keep moving with the same velocity. "
"Values greater than [code]1[/code] will aim to reduce the velocity to "
"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
"or greater than the physics frame rate ([member ProjectSettings.physics/"
"common/physics_fps], [code]60[/code] by default) will bring the object to a "
"stop in one iteration."
msgstr ""

#: doc/classes/ProjectSettings.xml:1040
#, fuzzy
msgid ""
"Threshold defining the surface size that constitutes a large object with "
"regard to cells in the broad-phase 2D hash grid algorithm.\n"
"[b]Note:[/b] Not used if [member ProjectSettings.physics/2d/use_bvh] is "
"enabled."
msgstr ""
"在broad-phase 2D哈希网格算法中,定义相对于单元而言的构成大型物体的表面尺寸的"
"阈值。"

#: doc/classes/ProjectSettings.xml:1044
#, fuzzy
msgid ""
"Sets which physics engine to use for 2D physics.\n"
"\"DEFAULT\" and \"GodotPhysics\" are the same, as there is currently no "
"alternative 2D physics server implemented."
msgstr ""
"设置用于2D物理的物理引擎。\n"
"\"DEFAULT \"和 \"GodotPhysics2D \"是一样的,因为目前还没有使用其他的2D物理引"
"擎。"

#: doc/classes/ProjectSettings.xml:1048
#, fuzzy
msgid ""
"Threshold angular velocity under which a 2D physics body will be considered "
"inactive. See [constant Physics2DServer."
"SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD]."
msgstr ""
"角速度阈值。在此阈值以下,2D物理体将被视为不活动。参见[constant "
"physicsServer2D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD]。"

#: doc/classes/ProjectSettings.xml:1051
#, fuzzy
msgid ""
"Threshold linear velocity under which a 2D physics body will be considered "
"inactive. See [constant Physics2DServer."
"SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD]."
msgstr ""
"线性速度的阈值。在此阈值下二维物理体被认为是不活动的。参见[constant "
"PhysicsServer2D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD]。"

#: doc/classes/ProjectSettings.xml:1054
msgid ""
"Sets whether physics is run on the main thread or a separate one. Running "
"the server on a thread increases performance, but restricts API access to "
"only physics process.\n"
"[b]Warning:[/b] As of Godot 3.2, there are mixed reports about the use of a "
"Multi-Threaded thread model for physics. Be sure to assess whether it does "
"give you extra performance and no regressions when using it."
msgstr ""
"设置物理运算是在主线程上运行还是单独的线程上运行。在一个线程上运行服务器可以"
"提高性能,但限制了对物理过程的API访问。\n"
"[b]警告:[/b] 从Godot 3.2开始,关于物理运算使用多线程的反馈不一。请务必评估它"
"是否确实给你带来了额外的性能,并且在使用它时没有过时。"

#: doc/classes/ProjectSettings.xml:1058
#, fuzzy
msgid ""
"Time (in seconds) of inactivity before which a 2D physics body will put to "
"sleep. See [constant Physics2DServer.SPACE_PARAM_BODY_TIME_TO_SLEEP]."
msgstr ""
"2D物理物体不活动的时间(以秒为单位)。在此之前,2D物理体将进入睡眠状态。参见"
"[constant PhysicsServer2D.SPACE_PARAM_BODY_TIME_TO_SLEEP]。"

#: doc/classes/ProjectSettings.xml:1061
msgid ""
"Enables the use of bounding volume hierarchy instead of hash grid for 2D "
"physics spatial partitioning. This may give better performance."
msgstr ""

#: doc/classes/ProjectSettings.xml:1064
#, fuzzy
msgid ""
"Sets whether the 3D physics world will be created with support for "
"[SoftBody] physics. Only applies to the Bullet physics engine."
msgstr ""
"设置三维物理世界的创建是否支持[SoftBody3D]物理运算(只适用于Bullet物理引擎)。"

#: doc/classes/ProjectSettings.xml:1067
msgid ""
"The default angular damp in 3D.\n"
"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
"At value [code]0[/code] objects will keep moving with the same velocity. "
"Values greater than [code]1[/code] will aim to reduce the velocity to "
"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
"or greater than the physics frame rate ([member ProjectSettings.physics/"
"common/physics_fps], [code]60[/code] by default) will bring the object to a "
"stop in one iteration."
msgstr ""

#: doc/classes/ProjectSettings.xml:1071
#, fuzzy
msgid ""
"The default gravity strength in 3D (in meters per second squared).\n"
"[b]Note:[/b] This property is only read when the project starts. To change "
"the default gravity at runtime, use the following code sample:\n"
"[codeblock]\n"
"# Set the default gravity strength to 9.8.\n"
"PhysicsServer.area_set_param(get_viewport().find_world().get_space(), "
"PhysicsServer.AREA_PARAM_GRAVITY, 9.8)\n"
"[/codeblock]"
msgstr ""
"3D中默认的重力强度。\n"
"[b]注意:[/b]这个属性只在项目启动时被读取。若要在运行时改变默认的重力,请使用"
"以下代码示例。\n"
"[codeblock]\n"
"# 设置默认的重力强度为9.8。\n"
"PhysicsServer3D.area_set_param(get_viewport().find_world().get_space(), "
"PhysicsServer3D.AREA_PARAM_GRAVITY, 9.8)\n"
"[/codeblock]"

#: doc/classes/ProjectSettings.xml:1079
#, fuzzy
msgid ""
"The default gravity direction in 3D.\n"
"[b]Note:[/b] This property is only read when the project starts. To change "
"the default gravity vector at runtime, use the following code sample:\n"
"[codeblock]\n"
"# Set the default gravity direction to `Vector3(0, -1, 0)`.\n"
"PhysicsServer.area_set_param(get_viewport().find_world().get_space(), "
"PhysicsServer.AREA_PARAM_GRAVITY_VECTOR, Vector3(0, -1, 0))\n"
"[/codeblock]"
msgstr ""
"3D中默认的重力方向。\n"
"[b]注意:[/b]这个属性只在项目启动时被读取。若要在运行时改变默认的重力向量,请"
"使用下面的代码示例。\n"
"[codeblock]\n"
"# 设置默认的重力方向为`Vector3(0, -1, 0)`。\n"
"PhysicsServer3D.area_set_param(get_viewport().find_world().get_space(), "
"PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR, Vector3(0, -1, 0))\n"
"[/codeblock]"

#: doc/classes/ProjectSettings.xml:1087
msgid ""
"The default linear damp in 3D.\n"
"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
"At value [code]0[/code] objects will keep moving with the same velocity. "
"Values greater than [code]1[/code] will aim to reduce the velocity to "
"[code]0[/code] in less than a second e.g. a value of [code]2[/code] will aim "
"to reduce the velocity to [code]0[/code] in half a second. A value equal to "
"or greater than the physics frame rate ([member ProjectSettings.physics/"
"common/physics_fps], [code]60[/code] by default) will bring the object to a "
"stop in one iteration."
msgstr ""

#: doc/classes/ProjectSettings.xml:1091
msgid ""
"Enables the use of bounding volume hierarchy instead of octree for 3D "
"physics spatial partitioning. This may give better performance."
msgstr ""

#: doc/classes/ProjectSettings.xml:1094
#, fuzzy
msgid ""
"Sets which physics engine to use for 3D physics.\n"
"\"DEFAULT\" is currently the [url=https://bulletphysics.org]Bullet[/url] "
"physics engine. The \"GodotPhysics\" engine is still supported as an "
"alternative."
msgstr ""
"设置3D物理学的物理引擎。\n"
"目前 \"DEFAULT \"是[url=https://bulletphysics.org]Bullet[/url]物理引擎。仍然"
"支持 \"GodotPhysics3D \"引擎作为替代。"

#: doc/classes/ProjectSettings.xml:1098
msgid "Enables [member Viewport.physics_object_picking] on the root viewport."
msgstr "在根视图上启用 [member Viewport.physics_object_picking]。"

#: doc/classes/ProjectSettings.xml:1101
msgid ""
"If enabled, 2D and 3D physics picking behaves this way in relation to "
"pause:\n"
"- When pause is started, every collision object that is hovered or captured "
"(3D only) is released from that condition, getting the relevant mouse-exit "
"callback, unless its pause mode makes it immune to pause.\n"
"- During pause, picking only considers collision objects immune to pause, "
"sending input events and enter/exit callbacks to them as expected.\n"
"If disabled, the legacy behavior is used, which consists in queuing the "
"picking input events during pause (so nodes won't get them) and flushing "
"that queue on resume, against the state of the 2D/3D world at that point."
msgstr ""

#: doc/classes/ProjectSettings.xml:1107
msgid ""
"The number of fixed iterations per second. This controls how often physics "
"simulation and [method Node._physics_process] methods are run.\n"
"[b]Note:[/b] This property is only read when the project starts. To change "
"the physics FPS at runtime, set [member Engine.iterations_per_second] "
"instead."
msgstr ""
"每秒的固定迭代次数。这控制了物理模拟和[method Node._physics_process]方法的运"
"行频率。\n"
"[b]注意:[/b] 这个属性只在项目启动时被读取。要在运行时改变物理FPS,请设置"
"[member Engine.iterations_per_second]来代替。"

#: doc/classes/ProjectSettings.xml:1111
#, fuzzy
msgid ""
"Controls how much physics ticks are synchronized with real time. For 0 or "
"less, the ticks are synchronized. Such values are recommended for network "
"games, where clock synchronization matters. Higher values cause higher "
"deviation of in-game clock and real clock, but allows smoothing out "
"framerate jitters. The default value of 0.5 should be fine for most; values "
"above 2 could cause the game to react to dropped frames with a noticeable "
"delay and are not recommended.\n"
"[b]Note:[/b] For best results, when using a custom physics interpolation "
"solution, the physics jitter fix should be disabled by setting [member "
"physics/common/physics_jitter_fix] to [code]0[/code].\n"
"[b]Note:[/b] This property is only read when the project starts. To change "
"the physics FPS at runtime, set [member Engine.physics_jitter_fix] instead."
msgstr ""
"控制物理时钟与实时同步的程度。为0或更少,则是同步的。这样的值建议用于网络游"
"戏,因为时钟同步很重要。较高的数值会导致游戏中的时钟和真实时钟有较大的偏差,"
"但允许平滑帧率抖动。默认值0.5对大多数人来说应该是没有问题的;高于2的值可能会"
"导致游戏对掉帧的反应有明显的延迟,不建议使用。"

#: doc/classes/ProjectSettings.xml:1116
msgid ""
"[b]Experimental.[/b] Calls [code]glBufferData[/code] with NULL data prior to "
"uploading batching data. This may not be necessary but can be used for "
"safety.\n"
"[b]Note:[/b] Use with care. You are advised to leave this as default for "
"exports. A non-default setting that works better on your machine may "
"adversely affect performance for end users."
msgstr ""

#: doc/classes/ProjectSettings.xml:1120
msgid ""
"[b]Experimental.[/b] If set to on, uses the [code]GL_STREAM_DRAW[/code] flag "
"for batching buffer uploads. If off, uses the [code]GL_DYNAMIC_DRAW[/code] "
"flag.\n"
"[b]Note:[/b] Use with care. You are advised to leave this as default for "
"exports. A non-default setting that works better on your machine may "
"adversely affect performance for end users."
msgstr ""

#: doc/classes/ProjectSettings.xml:1124
msgid ""
"[b]Experimental.[/b] If set to on, this applies buffer orphaning - "
"[code]glBufferData[/code] is called with NULL data and the full buffer size "
"prior to uploading new data. This can be important to avoid stalling on some "
"hardware.\n"
"[b]Note:[/b] Use with care. You are advised to leave this as default for "
"exports. A non-default setting that works better on your machine may "
"adversely affect performance for end users."
msgstr ""

#: doc/classes/ProjectSettings.xml:1128
msgid ""
"[b]Experimental.[/b] If set to on, uses the [code]GL_STREAM_DRAW[/code] flag "
"for legacy buffer uploads. If off, uses the [code]GL_DYNAMIC_DRAW[/code] "
"flag.\n"
"[b]Note:[/b] Use with care. You are advised to leave this as default for "
"exports. A non-default setting that works better on your machine may "
"adversely affect performance for end users."
msgstr ""

#: doc/classes/ProjectSettings.xml:1132
msgid ""
"Choose between fixed mode where corner scalings are preserved matching the "
"artwork, and scaling mode.\n"
"Not available in GLES3 when [member rendering/batching/options/use_batching] "
"is off."
msgstr ""

#: doc/classes/ProjectSettings.xml:1136
#, fuzzy
msgid ""
"Some NVIDIA GPU drivers have a bug which produces flickering issues for the "
"[code]draw_rect[/code] method, especially as used in [TileMap]. Refer to "
"[url=https://github.com/godotengine/godot/issues/9913]GitHub issue 9913[/"
"url] for details.\n"
"If [code]true[/code], this option enables a \"safe\" code path for such "
"NVIDIA GPUs at the cost of performance. This option affects GLES2 and GLES3 "
"rendering, but only on desktop platforms."
msgstr ""
"一些NVIDIA GPU驱动有一个bug,对[code]draw_rect[/code]方法产生闪烁问题,特别是"
"在[TileMap]中使用时。详情请参考[url=https://github.com/godotengine/godot/"
"issues/9913]GitHub issue 9913[/url]。\n"
"如果为[code]true[/code],该选项将为此类NVIDIA GPU启用一个 \"安全 \"的代码路"
"径,但会牺牲性能。这个选项只影响GLES2渲染后端,而且只影响桌面平台。在使用"
"Vulkan后端时,它是不必要的。"

#: doc/classes/ProjectSettings.xml:1140
msgid ""
"If [code]true[/code], performs 2D skinning on the CPU rather than the GPU. "
"This provides greater compatibility with a wide range of hardware, and also "
"may be faster in some circumstances.\n"
"Currently only available when [member rendering/batching/options/"
"use_batching] is active.\n"
"[b]Note:[/b] Antialiased software skinned polys are not supported, and will "
"be rendered without antialiasing.\n"
"[b]Note:[/b] Custom shaders that use the [code]VERTEX[/code] built-in "
"operate with [code]VERTEX[/code] position [i]after[/i] skinning, whereas "
"with hardware skinning, [code]VERTEX[/code] is the position [i]before[/i] "
"skinning."
msgstr ""

#: doc/classes/ProjectSettings.xml:1146
msgid ""
"If [code]true[/code], forces snapping of vertices to pixels in 2D rendering. "
"May help in some pixel art styles.\n"
"This snapping is performed on the GPU in the vertex shader.\n"
"Consider using the project setting [member rendering/batching/precision/"
"uv_contract] to prevent artifacts."
msgstr ""

#: doc/classes/ProjectSettings.xml:1151
msgid ""
"When batching is on, this regularly prints a frame diagnosis log. Note that "
"this will degrade performance."
msgstr ""

#: doc/classes/ProjectSettings.xml:1154
msgid ""
"[b]Experimental.[/b] For regression testing against the old renderer. If "
"this is switched on, and [code]use_batching[/code] is set, the renderer will "
"swap alternately between using the old renderer, and the batched renderer, "
"on each frame. This makes it easy to identify visual differences. "
"Performance will be degraded."
msgstr ""

#: doc/classes/ProjectSettings.xml:1157
msgid ""
"Lights have the potential to prevent joining items, and break many of the "
"performance benefits of batching. This setting enables some complex logic to "
"allow joining items if their lighting is similar, and overlap tests pass. "
"This can significantly improve performance in some games. Set to 0 to switch "
"off. With large values the cost of overlap tests may lead to diminishing "
"returns."
msgstr ""

#: doc/classes/ProjectSettings.xml:1160
msgid ""
"Sets the proportion of the total screen area (in pixels) that must be saved "
"by a scissor operation in order to activate light scissoring. This can "
"prevent parts of items being rendered outside the light area. Lower values "
"scissor more aggressively. A value of 1 scissors none of the items, a value "
"of 0 scissors every item. The power of 4 of the value is used, in order to "
"emphasize the lower range, and multiplied by the total screen area in pixels "
"to give the threshold. This can reduce fill rate requirements in scenes with "
"a lot of lighting."
msgstr ""

#: doc/classes/ProjectSettings.xml:1163
msgid ""
"Enabling this setting uses the legacy method to draw batches containing only "
"one rect. The legacy method is faster (approx twice as fast), but can cause "
"flicker on some systems. In order to directly compare performance with the "
"non-batching renderer you can set this to true, but it is recommended to "
"turn this off unless you can guarantee your target hardware will work with "
"this method."
msgstr ""

#: doc/classes/ProjectSettings.xml:1166
msgid ""
"Turns 2D batching on and off. Batching increases performance by reducing the "
"amount of graphics API drawcalls."
msgstr ""

#: doc/classes/ProjectSettings.xml:1169
msgid "Switches on 2D batching within the editor."
msgstr ""

#: doc/classes/ProjectSettings.xml:1172
msgid ""
"Size of buffer reserved for batched vertices. Larger size enables larger "
"batches, but there are diminishing returns for the memory used. This should "
"only have a minor effect on performance."
msgstr ""

#: doc/classes/ProjectSettings.xml:1175
msgid ""
"Including color in the vertex format has a cost, however, not including "
"color prevents batching across color changes. This threshold determines the "
"ratio of [code]number of vertex color changes / total number of vertices[/"
"code] above which vertices will be translated to colored format. A value of "
"0 will always use colored vertices, 1 will never use colored vertices."
msgstr ""

#: doc/classes/ProjectSettings.xml:1178
msgid ""
"In certain circumstances, the batcher can reorder items in order to better "
"join them. This may result in better performance. An overlap test is needed "
"however for each item lookahead, so there is a trade off, with diminishing "
"returns. If you are getting no benefit, setting this to 0 will switch it off."
msgstr ""

#: doc/classes/ProjectSettings.xml:1181
msgid ""
"Sets the number of commands to lookahead to determine whether to batch "
"render items. A value of 1 can join items consisting of single commands, 0 "
"turns off joining. Higher values are in theory more likely to join, however "
"this has diminishing returns and has a runtime cost so a small value is "
"recommended."
msgstr ""

#: doc/classes/ProjectSettings.xml:1184
msgid ""
"On some platforms (especially mobile), precision issues in shaders can lead "
"to reading 1 texel outside of bounds, particularly where rects are scaled. "
"This can particularly lead to border artifacts around tiles in tilemaps.\n"
"This adjustment corrects for this by making a small contraction to the UV "
"coordinates used. Note that this can result in a slight squashing of border "
"texels."
msgstr ""

#: doc/classes/ProjectSettings.xml:1188
msgid ""
"The amount of UV contraction. This figure is divided by 1000000, and is a "
"proportion of the total texture dimensions, where the width and height are "
"both ranged from 0.0 to 1.0.\n"
"Use the default unless correcting for a problem on particular hardware."
msgstr ""

#: doc/classes/ProjectSettings.xml:1192
msgid ""
"Amount of light samples taken when using [constant BakedLightmap."
"BAKE_QUALITY_HIGH]."
msgstr ""

#: doc/classes/ProjectSettings.xml:1195
msgid ""
"Amount of light samples taken when using [constant BakedLightmap."
"BAKE_QUALITY_LOW]."
msgstr ""

#: doc/classes/ProjectSettings.xml:1198
msgid ""
"Amount of light samples taken when using [constant BakedLightmap."
"BAKE_QUALITY_MEDIUM]."
msgstr ""

#: doc/classes/ProjectSettings.xml:1201
msgid ""
"Amount of light samples taken when using [constant BakedLightmap."
"BAKE_QUALITY_ULTRA]."
msgstr ""

#: doc/classes/ProjectSettings.xml:1204
#, fuzzy
msgid ""
"Default background clear color. Overridable per [Viewport] using its "
"[Environment]. See [member Environment.background_mode] and [member "
"Environment.background_color] in particular. To change this default color "
"programmatically, use [method VisualServer.set_default_clear_color]."
msgstr ""
"默认背景透明颜色。使用[Environment]可覆盖每个[Viewport]。具体请参见[member "
"Environment.background_mode]和[member Environment.background_color]。要以代码"
"方式更改此默认颜色,请使用use [method RenderingServer."
"set_default_clear_color]。"

#: doc/classes/ProjectSettings.xml:1207
msgid ""
"[Environment] that will be used as a fallback environment in case a scene "
"does not specify its own environment. The default environment is loaded in "
"at scene load time regardless of whether you have set an environment or not. "
"If you do not rely on the fallback environment, it is best to delete "
"[code]default_env.tres[/code], or to specify a different default environment "
"here."
msgstr ""
"[Environment] 将用作后备环境,以防场景未指定自己的环境。无论您是否设置了环"
"境,都会在场景加载时加载默认环境。如果不依赖默认环境,最好删除"
"[code]default_env.tres[/code],或者在这里指定不同的默认环境。"

#: doc/classes/ProjectSettings.xml:1210
msgid ""
"The use of half-float vertex compression may be producing rendering errors "
"on some platforms (especially iOS). These have been seen particularly in "
"particles. Disabling half-float may resolve these problems."
msgstr ""

#: doc/classes/ProjectSettings.xml:1213
msgid ""
"If [code]true[/code] and available on the target device, enables high "
"floating point precision for all shader computations in GLES2.\n"
"[b]Warning:[/b] High floating point precision can be extremely slow on older "
"devices and is often not available at all. Use with caution."
msgstr ""

#: doc/classes/ProjectSettings.xml:1217
msgid ""
"Max buffer size for blend shapes. Any blend shape bigger than this will not "
"work."
msgstr ""

#: doc/classes/ProjectSettings.xml:1220
msgid ""
"Max buffer size for drawing polygons. Any polygon bigger than this will not "
"work."
msgstr ""

#: doc/classes/ProjectSettings.xml:1223
msgid ""
"Max index buffer size for drawing polygons. Any polygon bigger than this "
"will not work."
msgstr ""

#: doc/classes/ProjectSettings.xml:1226
msgid ""
"Max buffer size for drawing immediate objects (ImmediateGeometry nodes). "
"Nodes using more than this size will not work."
msgstr ""

#: doc/classes/ProjectSettings.xml:1229
msgid ""
"Max number of lights renderable per object. This is further limited by "
"hardware support. Most devices only support 409 lights, while many devices "
"(especially mobile) only support 102. Setting this low will slightly reduce "
"memory usage and may decrease shader compile times."
msgstr ""

#: doc/classes/ProjectSettings.xml:1232
msgid ""
"Max amount of elements renderable in a frame. If more elements than this are "
"visible per frame, they will not be drawn. Keep in mind elements refer to "
"mesh surfaces and not meshes themselves. Setting this low will slightly "
"reduce memory usage and may decrease shader compile times, particularly on "
"web. For most uses, the default value is suitable, but consider lowering as "
"much as possible on web export."
msgstr ""

#: doc/classes/ProjectSettings.xml:1235
msgid ""
"Max number of lights renderable in a frame. If more lights than this number "
"are used, they will be ignored. Setting this low will slightly reduce memory "
"usage and may decrease shader compile times, particularly on web. For most "
"uses, the default value is suitable, but consider lowering as much as "
"possible on web export."
msgstr ""

#: doc/classes/ProjectSettings.xml:1238
msgid ""
"Max number of reflection probes renderable in a frame. If more reflection "
"probes than this number are used, they will be ignored. Setting this low "
"will slightly reduce memory usage and may decrease shader compile times, "
"particularly on web. For most uses, the default value is suitable, but "
"consider lowering as much as possible on web export."
msgstr ""

#: doc/classes/ProjectSettings.xml:1241
msgid ""
"Shaders have a time variable that constantly increases. At some point, it "
"needs to be rolled back to zero to avoid precision errors on shader "
"animations. This setting specifies when (in seconds)."
msgstr ""

#: doc/classes/ProjectSettings.xml:1244
#, fuzzy
msgid ""
"If [code]true[/code], the texture importer will import lossless textures "
"using the PNG format. Otherwise, it will default to using WebP."
msgstr ""
"如果[code]true[/code],纹理导入器将使用S3纹理压缩算法导入VRAM压缩的纹理。这种"
"算法只在桌面平台和游戏机上支持。"

#: doc/classes/ProjectSettings.xml:1247
#, fuzzy
msgid ""
"The default compression level for lossless WebP. Higher levels result in "
"smaller files at the cost of compression speed. Decompression speed is "
"mostly unaffected by the compression level. Supported values are 0 to 9. "
"Note that compression levels above 6 are very slow and offer very little "
"savings."
msgstr ""
"Zlib的默认压缩级别。影响压缩的场景和资源。较高的级别会以压缩速度为代价导致文"
"件变小。解压缩速度大多不受压缩级别的影响。[code]-1[/code]使用默认的gzip压缩级"
"别,该级别与[code]6[/code]相同,但由于底层zlib更新,未来可能会发生变化。"

#: doc/classes/ProjectSettings.xml:1250
msgid ""
"On import, mesh vertex data will be split into two streams within a single "
"vertex buffer, one for position data and the other for interleaved "
"attributes data. Recommended to be enabled if targeting mobile devices. "
"Requires manual reimport of meshes after toggling."
msgstr ""

#: doc/classes/ProjectSettings.xml:1253
msgid ""
"Determines the maximum number of sphere occluders that will be used at any "
"one time.\n"
"Although you can have many occluders in a scene, each frame the system will "
"choose from these the most relevant based on a screen space metric, in order "
"to give the best overall performance."
msgstr ""

#: doc/classes/ProjectSettings.xml:1257
msgid ""
"The default convention is for portal normals to point outward (face outward) "
"from the source room.\n"
"If you accidentally build your level with portals facing the wrong way, this "
"setting can fix the problem.\n"
"It will flip named portal meshes (i.e. [code]-portal[/code]) on the initial "
"convertion to [Portal] nodes."
msgstr ""

#: doc/classes/ProjectSettings.xml:1262
msgid ""
"Show conversion logs.\n"
"[b]Note:[/b] This will automatically be disabled in exports."
msgstr ""

#: doc/classes/ProjectSettings.xml:1266
#, fuzzy
msgid ""
"If [code]true[/code], gameplay callbacks will be sent as [code]signals[/"
"code]. If [code]false[/code], they will be sent as [code]notifications[/"
"code]."
msgstr ""
"如果[code]true[/code],图块地图的碰撞将被当作运动体处理。如果[code]false[/"
"code],碰撞将被当作静态体来处理。"

#: doc/classes/ProjectSettings.xml:1269
msgid ""
"If enabled, while merging meshes, the system will also attempt to remove "
"[Spatial] nodes that no longer have any children.\n"
"Reducing the number of [Node]s in the scene tree can make traversal more "
"efficient, but can be switched off in case you wish to use empty [Spatial]s "
"for markers or some other purpose."
msgstr ""

#: doc/classes/ProjectSettings.xml:1273
msgid ""
"Show logs during PVS generation.\n"
"[b]Note:[/b] This will automatically be disabled in exports."
msgstr ""

#: doc/classes/ProjectSettings.xml:1277
msgid ""
"Uses a simplified method of generating PVS (potentially visible set) data. "
"The results may not be accurate where more than one portal join adjacent "
"rooms.\n"
"[b]Note:[/b] Generally you should only use this option if you encounter bugs "
"when it is set to [code]false[/code], i.e. there are problems with the "
"default method."
msgstr ""

#: doc/classes/ProjectSettings.xml:1281
msgid ""
"If [code]true[/code], allocates the main framebuffer with high dynamic "
"range. High dynamic range allows the use of [Color] values greater than 1.\n"
"[b]Note:[/b] Only available on the GLES3 backend."
msgstr ""

#: doc/classes/ProjectSettings.xml:1285
#, fuzzy
msgid ""
"Lower-end override for [member rendering/quality/depth/hdr] on mobile "
"devices, due to performance concerns or driver support."
msgstr ""
"由于性能或驱动支持问题,在移动设备上将对 [member rendering/quality/"
"shadow_atlas/size]以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1288
msgid ""
"Disables depth pre-pass for some GPU vendors (usually mobile), as their "
"architecture already does this."
msgstr ""
"对一些GPU供应商(通常是移动设备)禁用深度预处理,因为他们的架构已经做了这个。"

#: doc/classes/ProjectSettings.xml:1291
msgid ""
"If [code]true[/code], performs a previous depth pass before rendering "
"materials. This increases performance in scenes with high overdraw, when "
"complex materials and lighting are used."
msgstr ""
"如果 [code]true[/code],则在渲染材质之前执行先前的深度传递。当使用复杂的材料"
"和照明时,这会提高高透支场景的性能。"

#: doc/classes/ProjectSettings.xml:1294
msgid ""
"The directional shadow's size in pixels. Higher values will result in "
"sharper shadows, at the cost of performance. The value will be rounded up to "
"the nearest power of 2."
msgstr ""
"方向性阴影的大小,以像素为单位。更高的值会导致更清晰的阴影,但会以性能为代"
"价。该值将被四舍五入到最接近的2次方。"

#: doc/classes/ProjectSettings.xml:1297
msgid ""
"Lower-end override for [member rendering/quality/directional_shadow/size] on "
"mobile devices, due to performance concerns or driver support."
msgstr ""
"由于性能和驱动支持的问题,在移动设备上会对[member rendering/quality/"
"directional_shadow/size] 以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1300
#, fuzzy
msgid ""
"The video driver to use (\"GLES2\" or \"GLES3\").\n"
"[b]Note:[/b] The backend in use can be overridden at runtime via the [code]--"
"video-driver[/code] command line argument, or by the [member rendering/"
"quality/driver/fallback_to_gles2] option if the target system does not "
"support GLES3 and falls back to GLES2. In such cases, this property is not "
"updated, so use [method OS.get_current_video_driver] to query it at run-time."
msgstr ""
"要使用的视频驱动(\"GLES2 \"或 \"Vulkan\")。\n"
"[b]注意:[/b] 使用中的后端可以在运行时通过[code]--rendering-driver[/code]命令"
"行参数来覆盖。\n"
"[b]修订说明:[/b] 在DisplayServer分离后不再有效。\n"
"在这种情况下,这个属性不会被更新,所以使用[code]OS.get_current_video_driver[/"
"code]来在运行时查询它。"

#: doc/classes/ProjectSettings.xml:1304
msgid ""
"If [code]true[/code], allows falling back to the GLES2 driver if the GLES3 "
"driver is not supported.\n"
"[b]Note:[/b] The two video drivers are not drop-in replacements for each "
"other, so a game designed for GLES3 might not work properly when falling "
"back to GLES2. In particular, some features of the GLES3 backend are not "
"available in GLES2. Enabling this setting also means that both ETC and ETC2 "
"VRAM-compressed textures will be exported on Android and iOS, increasing the "
"data pack's size."
msgstr ""

#: doc/classes/ProjectSettings.xml:1308
msgid ""
"Maximum anisotropic filter level used for textures with anisotropy enabled. "
"Higher values will result in sharper textures when viewed from oblique "
"angles, at the cost of performance. Only power-of-two values are valid (2, "
"4, 8, 16)."
msgstr ""

#: doc/classes/ProjectSettings.xml:1311
#, fuzzy
msgid ""
"Sets the number of MSAA samples to use. MSAA is used to reduce aliasing "
"around the edges of polygons. A higher MSAA value results in smoother edges "
"but can be significantly slower on some hardware.\n"
"[b]Note:[/b] MSAA is not available on HTML5 export using the GLES2 backend."
msgstr ""
"设置要使用的MSAA样本数(2的n次幂)。MSAA用于减少多边形边缘的锯齿。较高的MSAA"
"值可以使边缘更平滑,但在某些硬件上会明显变慢。\n"
"[b]注意:[/b] MSAA在使用GLES2后端的HTML5导出中不可用。"

#: doc/classes/ProjectSettings.xml:1315
msgid ""
"If set to a value greater than [code]0.0[/code], contrast-adaptive "
"sharpening will be applied to the 3D viewport. This has a low performance "
"cost and can be used to recover some of the sharpness lost from using FXAA. "
"Values around [code]0.5[/code] generally give the best results. See also "
"[member rendering/quality/filters/use_fxaa]."
msgstr ""

#: doc/classes/ProjectSettings.xml:1318
msgid ""
"If [code]true[/code], uses a fast post-processing filter to make banding "
"significantly less visible. In some cases, debanding may introduce a "
"slightly noticeable dithering pattern. It's recommended to enable debanding "
"only when actually needed since the dithering pattern will make lossless-"
"compressed screenshots larger.\n"
"[b]Note:[/b] Only available on the GLES3 backend. [member rendering/quality/"
"depth/hdr] must also be [code]true[/code] for debanding to be effective.\n"
"[b]Note:[/b] There are known issues with debanding breaking rendering on "
"mobile platforms. Due to this, it is recommended to leave this option "
"disabled when targeting mobile platforms."
msgstr ""

#: doc/classes/ProjectSettings.xml:1323
#, fuzzy
msgid ""
"Enables FXAA in the root Viewport. FXAA is a popular screen-space "
"antialiasing method, which is fast but will make the image look blurry, "
"especially at lower resolutions. It can still work relatively well at large "
"resolutions such as 1440p and 4K. Some of the lost sharpness can be "
"recovered by enabling contrast-adaptive sharpening (see [member rendering/"
"quality/filters/sharpen_intensity])."
msgstr ""
"使用快速的近似抗锯齿。FXAA是一种流行的屏幕空间抗锯齿方法,它的速度很快,但会"
"使图像看起来很模糊,特别是在较低的分辨率。在1440p和4K等大分辨率下,仍然可以相"
"对良好地工作。"

#: doc/classes/ProjectSettings.xml:1326
msgid ""
"If [code]true[/code], uses nearest-neighbor mipmap filtering when using "
"mipmaps (also called \"bilinear filtering\"), which will result in visible "
"seams appearing between mipmap stages. This may increase performance in "
"mobile as less memory bandwidth is used. If [code]false[/code], linear "
"mipmap filtering (also called \"trilinear filtering\") is used."
msgstr ""
"如果 [code]true[/code],则在使用 mipmap 时使用最近邻 mipmap 过滤(也称为“双线"
"性过滤”),这将导致 mipmap 阶段之间出现可见的接缝。由于使用较少的内存带宽,这"
"可能会提高移动设备的性能。如果 [code]false[/code],则使用线性 mipmap 过滤(也"
"称为“三线性过滤”)。"

#: doc/classes/ProjectSettings.xml:1329
msgid ""
"Strategy used for framebuffer allocation. The simpler it is, the less "
"resources it uses (but the less features it supports). If set to \"2D "
"Without Sampling\" or \"3D Without Effects\", sample buffers will not be "
"allocated. This means [code]SCREEN_TEXTURE[/code] and [code]DEPTH_TEXTURE[/"
"code] will not be available in shaders and post-processing effects will not "
"be available in the [Environment]."
msgstr ""
"用于帧缓冲区分配的策略。它越简单,使用的资源就越少(但支持的功能也越少)。如"
"果设置为 \"2D无采样 \"或 \"3D无特效\",将不分配采样缓冲区。这意味着"
"[code]SCREEN_TEXTURE[/code]和[code]DEPTH_TEXTURE[/code]将不能在着色器中使用,"
"而后处理效果将不能在[Environment]中使用。"

#: doc/classes/ProjectSettings.xml:1332
msgid ""
"Lower-end override for [member rendering/quality/intended_usage/"
"framebuffer_allocation] on mobile devices, due to performance concerns or "
"driver support."
msgstr ""
"由于性能或驱动支持问题,在移动设备上对[member rendering/quality/"
"intended_usage/framebuffer_allocation]以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1335
msgid ""
"Enable usage of bicubic sampling in baked lightmaps. This results in "
"smoother looking lighting at the expense of more bandwidth usage. On GLES2, "
"changes to this setting will only be applied upon restarting the application."
msgstr ""

#: doc/classes/ProjectSettings.xml:1338
#, fuzzy
msgid ""
"Lower-end override for [member rendering/quality/lightmapping/"
"use_bicubic_sampling] on mobile devices, in order to reduce bandwidth usage."
msgstr ""
"由于性能问题或驱动支持,在移动设备上将对[member rendering/quality/shading/"
"force_vertex_shading]以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1341
msgid ""
"Size of the atlas used by reflection probes. A larger size can result in "
"higher visual quality, while a smaller size will be faster and take up less "
"memory."
msgstr ""

#: doc/classes/ProjectSettings.xml:1344
msgid ""
"Number of subdivisions to use for the reflection atlas. A higher number "
"lowers the quality of each atlas, but allows you to use more."
msgstr ""

#: doc/classes/ProjectSettings.xml:1347
msgid ""
"If [code]true[/code], uses a high amount of samples to create blurred "
"variants of reflection probes and panorama backgrounds (sky). Those blurred "
"variants are used by rough materials."
msgstr ""

#: doc/classes/ProjectSettings.xml:1350
#, fuzzy
msgid ""
"Lower-end override for [member rendering/quality/reflections/"
"high_quality_ggx] on mobile devices, due to performance concerns or driver "
"support."
msgstr ""
"由于性能问题或驱动程序支持,移动设备上将对 [member rendering/quality/"
"reflections/ggx_samples] 以低性能数值覆盖。"

#: doc/classes/ProjectSettings.xml:1353
msgid ""
"Limits the size of the irradiance map which is normally determined by "
"[member Sky.radiance_size]. A higher size results in a higher quality "
"irradiance map similarly to [member rendering/quality/reflections/"
"high_quality_ggx]. Use a higher value when using high-frequency HDRI maps, "
"otherwise keep this as low as possible.\n"
"[b]Note:[/b] Low and mid range hardware do not support complex irradiance "
"maps well and may crash if this is set too high."
msgstr ""

#: doc/classes/ProjectSettings.xml:1357
#, fuzzy
msgid ""
"If [code]true[/code], uses texture arrays instead of mipmaps for reflection "
"probes and panorama backgrounds (sky). This reduces jitter noise on "
"reflections, but costs more performance and memory."
msgstr ""
"如果 [code]true[/code],则对反射探测器和全景背景(天空)使用纹理数组而不是 "
"mipmap。这减少了反射上的抖动噪声和放大伪影,但计算速度要慢得多,并且使用 "
"[member rendering/quality/reflections/roughness_layers]时要花费更多的内存。"

#: doc/classes/ProjectSettings.xml:1360
msgid ""
"Lower-end override for [member rendering/quality/reflections/"
"texture_array_reflections] on mobile devices, due to performance concerns or "
"driver support."
msgstr ""
"由于性能问题或驱动支持,在移动设备上将对[member rendering/quality/"
"reflections/texture_array_reflections]以低性能数值覆盖。"

#: doc/classes/ProjectSettings.xml:1363
msgid ""
"If [code]true[/code], uses faster but lower-quality Blinn model to generate "
"blurred reflections instead of the GGX model."
msgstr ""
"如果 [code]true[/code],则使用速度更快但质量较低的 Blinn 模型而不是 GGX 模型"
"来生成模糊反射。"

#: doc/classes/ProjectSettings.xml:1366
msgid ""
"Lower-end override for [member rendering/quality/shading/"
"force_blinn_over_ggx] on mobile devices, due to performance concerns or "
"driver support."
msgstr ""
"由于性能或驱动支持问题,在移动设备上将对[member rendering/quality/shading/"
"force_blinn_over_ggx]以低值覆盖。"

#: doc/classes/ProjectSettings.xml:1369
msgid ""
"If [code]true[/code], uses faster but lower-quality Lambert material "
"lighting model instead of Burley."
msgstr ""
"如果 [code]true[/code],则使用速度更快但质量较低的 Lambert 材质照明模型而不"
"是 Burley。"

#: doc/classes/ProjectSettings.xml:1372
msgid ""
"Lower-end override for [member rendering/quality/shading/"
"force_lambert_over_burley] on mobile devices, due to performance concerns or "
"driver support."
msgstr ""
"由于性能问题或驱动支持,在移动设备上将对[member rendering/quality/shading/"
"force_lambert_over_burley]以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1375
msgid ""
"If [code]true[/code], forces vertex shading for all rendering. This can "
"increase performance a lot, but also reduces quality immensely. Can be used "
"to optimize performance on low-end mobile devices."
msgstr ""
"如果 [code]true[/code],则为所有渲染强制顶点着色。这可以大大提高性能,但也会"
"极大地降低质量。可用于优化低端移动设备的性能。"

#: doc/classes/ProjectSettings.xml:1378
msgid ""
"Lower-end override for [member rendering/quality/shading/"
"force_vertex_shading] on mobile devices, due to performance concerns or "
"driver support."
msgstr ""
"由于性能问题或驱动支持,在移动设备上将对[member rendering/quality/shading/"
"force_vertex_shading]以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1381
msgid ""
"Size for cubemap into which the shadow is rendered before being copied into "
"the shadow atlas. A higher number can result in higher resolution shadows "
"when used with a higher [member rendering/quality/shadow_atlas/size]. "
"Setting higher than a quarter of the [member rendering/quality/shadow_atlas/"
"size] will not result in a perceptible increase in visual quality."
msgstr ""

#: doc/classes/ProjectSettings.xml:1384 doc/classes/ProjectSettings.xml:1387
#: doc/classes/ProjectSettings.xml:1390 doc/classes/ProjectSettings.xml:1393
msgid ""
"Subdivision quadrant size for shadow mapping. See shadow mapping "
"documentation."
msgstr "阴影贴图的细分象限大小。请参阅阴影映射文档。"

#: doc/classes/ProjectSettings.xml:1396
msgid ""
"Size for shadow atlas (used for OmniLights and SpotLights). See "
"documentation."
msgstr "阴影图集的尺寸(用于OmniLights和SpotLights)。见文档。"

#: doc/classes/ProjectSettings.xml:1399
msgid ""
"Lower-end override for [member rendering/quality/shadow_atlas/size] on "
"mobile devices, due to performance concerns or driver support."
msgstr ""
"由于性能或驱动支持问题,在移动设备上将对 [member rendering/quality/"
"shadow_atlas/size]以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1402
msgid ""
"Shadow filter mode. Higher-quality settings result in smoother shadows that "
"flicker less when moving. \"Disabled\" is the fastest option, but also has "
"the lowest quality. \"PCF5\" is smoother but is also slower. \"PCF13\" is "
"the smoothest option, but is also the slowest.\n"
"[b]Note:[/b] When using the GLES2 backend, the \"PCF13\" option actually "
"uses 16 samples to emulate linear filtering in the shader. This results in a "
"shadow appearance similar to the one produced by the GLES3 backend."
msgstr ""

#: doc/classes/ProjectSettings.xml:1406
#, fuzzy
msgid ""
"Lower-end override for [member rendering/quality/shadows/filter_mode] on "
"mobile devices, due to performance concerns or driver support."
msgstr ""
"由于性能或驱动支持问题,在移动设备上将对 [member rendering/quality/"
"shadow_atlas/size]以低配数值覆盖。"

#: doc/classes/ProjectSettings.xml:1409
msgid ""
"Forces [MeshInstance] to always perform skinning on the CPU (applies to both "
"GLES2 and GLES3).\n"
"See also [member rendering/quality/skinning/software_skinning_fallback]."
msgstr ""

#: doc/classes/ProjectSettings.xml:1413
msgid ""
"Allows [MeshInstance] to perform skinning on the CPU when the hardware "
"doesn't support the default GPU skinning process with GLES2.\n"
"If [code]false[/code], an alternative skinning process on the GPU is used in "
"this case (slower in most cases).\n"
"See also [member rendering/quality/skinning/force_software_skinning].\n"
"[b]Note:[/b] When the software skinning fallback is triggered, custom vertex "
"shaders will behave in a different way, because the bone transform will be "
"already applied to the modelview matrix."
msgstr ""

#: doc/classes/ProjectSettings.xml:1419
msgid ""
"The rendering octree balance can be changed to favor smaller ([code]0[/"
"code]), or larger ([code]1[/code]) branches.\n"
"Larger branches can increase performance significantly in some projects."
msgstr ""

#: doc/classes/ProjectSettings.xml:1423
msgid ""
"Enables the use of bounding volume hierarchy instead of octree for rendering "
"spatial partitioning. This may give better performance."
msgstr ""

#: doc/classes/ProjectSettings.xml:1426
msgid ""
"Improves quality of subsurface scattering, but cost significantly increases."
msgstr ""

#: doc/classes/ProjectSettings.xml:1429
#, fuzzy
msgid "Quality setting for subsurface scattering (samples taken)."
msgstr "地下散射效应的强度。"

#: doc/classes/ProjectSettings.xml:1432
#, fuzzy
msgid "Max radius used for subsurface scattering samples."
msgstr "地下散射效应的强度。"

#: doc/classes/ProjectSettings.xml:1435
msgid ""
"Weight subsurface scattering samples. Helps to avoid reading samples from "
"unrelated parts of the screen."
msgstr ""

#: doc/classes/ProjectSettings.xml:1438
msgid ""
"Use high-quality voxel cone tracing. This results in better-looking "
"reflections, but is much more expensive on the GPU."
msgstr ""

#: doc/classes/ProjectSettings.xml:1441
msgid ""
"Thread model for rendering. Rendering on a thread can vastly improve "
"performance, but synchronizing to the main thread can cause a bit more "
"jitter."
msgstr ""
"渲染的线程模型。在线程上进行渲染可以极大地提高性能,但同步到主线程上会导致更"
"多的抖动。"

#: doc/classes/ProjectSettings.xml:1444
msgid ""
"If [code]true[/code], a thread safe version of BVH (bounding volume "
"hierarchy) will be used in rendering and Godot physics.\n"
"Try enabling this option if you see any visual anomalies in 3D (such as "
"incorrect object visibility)."
msgstr ""

#: doc/classes/ProjectSettings.xml:1448
#, fuzzy
msgid ""
"If [code]true[/code], the texture importer will import VRAM-compressed "
"textures using the BPTC algorithm. This texture compression algorithm is "
"only supported on desktop platforms, and only when using the GLES3 "
"renderer.\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].import/[/code] folder "
"located inside the project folder then restart the editor."
msgstr ""
"如果[code]true[/code],纹理导入器将使用BPTC算法导入VRAM压缩的纹理。这种纹理压"
"缩算法只在桌面平台上支持,而且只在使用Vulkan渲染器时支持。"

#: doc/classes/ProjectSettings.xml:1452
msgid ""
"If [code]true[/code], the texture importer will import VRAM-compressed "
"textures using the Ericsson Texture Compression algorithm. This algorithm "
"doesn't support alpha channels in textures.\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].import/[/code] folder "
"located inside the project folder then restart the editor."
msgstr ""

#: doc/classes/ProjectSettings.xml:1456
msgid ""
"If [code]true[/code], the texture importer will import VRAM-compressed "
"textures using the Ericsson Texture Compression 2 algorithm. This texture "
"compression algorithm is only supported when using the GLES3 renderer.\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].import/[/code] folder "
"located inside the project folder then restart the editor."
msgstr ""

#: doc/classes/ProjectSettings.xml:1460
msgid ""
"If [code]true[/code], the texture importer will import VRAM-compressed "
"textures using the PowerVR Texture Compression algorithm. This texture "
"compression algorithm is only supported on iOS.\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].import/[/code] folder "
"located inside the project folder then restart the editor."
msgstr ""

#: doc/classes/ProjectSettings.xml:1464
msgid ""
"If [code]true[/code], the texture importer will import VRAM-compressed "
"textures using the S3 Texture Compression algorithm. This algorithm is only "
"supported on desktop platforms and consoles.\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].import/[/code] folder "
"located inside the project folder then restart the editor."
msgstr ""

#: doc/classes/ProjectSettings.xml:1468
#, fuzzy
msgid ""
"Cell size used for the 2D hash grid that [VisibilityNotifier2D] uses (in "
"pixels)."
msgstr "用于[VisibilityNotifier2D]的二维哈希网格的单元格大小。"

#: doc/classes/ProximityGroup.xml:4 doc/classes/ProximityGroup.xml:7
msgid "General-purpose proximity detection node."
msgstr "通用的靠近检测节点。"

#: doc/classes/QuadMesh.xml:4
msgid "Class representing a square mesh."
msgstr "表示方形网格的类。"

#: doc/classes/QuadMesh.xml:7
msgid ""
"Class representing a square [PrimitiveMesh]. This flat mesh does not have a "
"thickness. By default, this mesh is aligned on the X and Y axes; this "
"default rotation is more suited for use with billboarded materials. Unlike "
"[PlaneMesh], this mesh doesn't provide subdivision options."
msgstr ""
"代表一个正方形的类[PrimitiveMesh]。这个平面网格没有厚度。默认情况下,这个网格"
"在X轴和Y轴上是对齐的;这个默认的旋转方式更适合于使用广告牌的材质。与"
"[PlaneMesh]不同,这个网格不提供细分选项。"

#: doc/classes/QuadMesh.xml:11 doc/classes/Viewport.xml:19
#: doc/classes/ViewportTexture.xml:13
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/129"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/QuadMesh.xml:17
#, fuzzy
msgid "Offset of the generated Quad. Useful for particles."
msgstr "生成的纹理的高度。"

#: doc/classes/QuadMesh.xml:20
msgid "Size on the X and Y axes."
msgstr "X 和 Y 轴上的大小。"

#: doc/classes/Quat.xml:4
msgid "Quaternion."
msgstr "四元数."

#: doc/classes/Quat.xml:7
msgid ""
"A unit quaternion used for representing 3D rotations. Quaternions need to be "
"normalized to be used for rotation.\n"
"It is similar to Basis, which implements matrix representation of rotations, "
"and can be parametrized using both an axis-angle pair or Euler angles. Basis "
"stores rotation, scale, and shearing, while Quat only stores rotation.\n"
"Due to its compactness and the way it is stored in memory, certain "
"operations (obtaining axis-angle and performing SLERP, in particular) are "
"more efficient and robust against floating-point errors."
msgstr ""
"一个用于表示三维旋转的单位四元数。四元数需要经过归一化才能用于旋转。\n"
"它类似于Basis,后者实现了旋转的矩阵表示,并且可以使用轴-角对或欧拉角进行参数"
"化。Basis可以存储旋转、缩放和错切,而Quat只存储旋转。\n"
"由于它的紧凑性和在内存中的存储方式,某些操作(特别是获得轴角和执行SLERP)更加"
"有效,并且对浮点错误有很强的抵抗力。"

#: doc/classes/Quat.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/using_transforms."
"html#interpolating-with-quaternions"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/using_transforms."
"html#interpolating-with-quaternions"

#: doc/classes/Quat.xml:20
msgid "Constructs a quaternion from the given [Basis]."
msgstr "从给定的 [Basis] 构造一个四元数。"

#: doc/classes/Quat.xml:27
msgid ""
"Constructs a quaternion that will perform a rotation specified by Euler "
"angles (in the YXZ convention: when decomposing, first Z, then X, and Y "
"last), given in the vector format as (X angle, Y angle, Z angle)."
msgstr ""
"构造一个四元数,该四元数将执行由欧拉角指定的旋转(按照YXZ惯例:分解时,首先是"
"Z,然后是X,最后是Y),以向量格式给出(X角,Y角,Z角)。"

#: doc/classes/Quat.xml:35
msgid ""
"Constructs a quaternion that will rotate around the given axis by the "
"specified angle. The axis must be a normalized vector."
msgstr ""
"构造一个四元数,它将围绕给定的轴旋转指定的角度。轴必须是一个归一化的向量。"

#: doc/classes/Quat.xml:45
msgid "Constructs a quaternion defined by the given values."
msgstr "构建一个由给定值定义的四元数。"

#: doc/classes/Quat.xml:52
msgid ""
"Returns the angle between this quaternion and [code]to[/code]. This is the "
"magnitude of the angle you would need to rotate by to get from one to the "
"other.\n"
"[b]Note:[/b] This method has an abnormally high amount of floating-point "
"error, so methods such as [method @GDScript.is_zero_approx] will not work "
"reliably."
msgstr ""

#: doc/classes/Quat.xml:63
#, fuzzy
msgid ""
"Performs a cubic spherical interpolation between quaternions [code]pre_a[/"
"code], this vector, [code]b[/code], and [code]post_b[/code], by the given "
"amount [code]weight[/code]."
msgstr ""
"在四元数[code]preA[/code]、此向量、[code]b[/code]和[code]postB[/code]之间,通"
"过给定的量[code]t[/code],执行一个三维球面插值。"

#: doc/classes/Quat.xml:70
msgid "Returns the dot product of two quaternions."
msgstr "返回两个四元数的点积。"

#: doc/classes/Quat.xml:76
msgid ""
"Returns Euler angles (in the YXZ convention: when decomposing, first Z, then "
"X, and Y last) corresponding to the rotation represented by the unit "
"quaternion. Returned vector contains the rotation angles in the format (X "
"angle, Y angle, Z angle)."
msgstr ""
"返回与单位四元数所代表的旋转相对应的欧拉角(按照YXZ惯例:分解时,先Z后X,最后"
"是Y)。返回的向量包含格式为(X角、Y角、Z角)的旋转角。"

#: doc/classes/Quat.xml:82
msgid "Returns the inverse of the quaternion."
msgstr "返回四元数的取逆。(译注:即xyz的值分别取反)."

#: doc/classes/Quat.xml:89
#, fuzzy
msgid ""
"Returns [code]true[/code] if this quaternion and [code]quat[/code] are "
"approximately equal, by running [method @GDScript.is_equal_approx] on each "
"component."
msgstr ""
"通过对每个组件运行[method @GDScript.is_equal_approx],如果这个四元组和"
"[code]quat[/code]大致相等,则返回[code]true[/code]。"

#: doc/classes/Quat.xml:95
msgid "Returns whether the quaternion is normalized or not."
msgstr "返回四元数是否被归一化。"

#: doc/classes/Quat.xml:101
msgid "Returns the length of the quaternion."
msgstr "返回四元数的长度。"

#: doc/classes/Quat.xml:107
msgid "Returns the length of the quaternion, squared."
msgstr "返回四元数的长度的平方。"

#: doc/classes/Quat.xml:113
msgid "Returns a copy of the quaternion, normalized to unit length."
msgstr "返回四元数的副本,归一化为单位长度。"

#: doc/classes/Quat.xml:120
msgid ""
"Sets the quaternion to a rotation which rotates around axis by the specified "
"angle, in radians. The axis must be a normalized vector."
msgstr ""
"将四元数设置为绕轴旋转指定角度(以弧度为单位)的旋转。轴必须是归一化向量。"

#: doc/classes/Quat.xml:126
msgid ""
"Sets the quaternion to a rotation specified by Euler angles (in the YXZ "
"convention: when decomposing, first Z, then X, and Y last), given in the "
"vector format as (X angle, Y angle, Z angle)."
msgstr ""
"将四元数设置为由欧拉角指定的旋转(按照惯例:分解时,首先是 Z,然后是 X,最后"
"是 Y),以向量格式给出(X 角、Y 角、Z 角)。"

#: doc/classes/Quat.xml:134
msgid ""
"Returns the result of the spherical linear interpolation between this "
"quaternion and [code]to[/code] by amount [code]weight[/code].\n"
"[b]Note:[/b] Both quaternions must be normalized."
msgstr ""
"返回四元数 [code]to[/code]和 [code]weight[/code]值的球面线性插值的结果。\n"
"[b]注意:[/b] 四元数必须被归一化。"

#: doc/classes/Quat.xml:143
msgid ""
"Returns the result of the spherical linear interpolation between this "
"quaternion and [code]to[/code] by amount [code]weight[/code], but without "
"checking if the rotation path is not bigger than 90 degrees."
msgstr ""
"以[code]weight[/code]值为权重,返回这个四元数和[code]to[/code]之间的球面线性插"
"值的结果,但不会检查旋转路径是否不大于90度。"

#: doc/classes/Quat.xml:150
msgid "Returns a vector transformed (multiplied) by this quaternion."
msgstr "返回一个由该四元数转换(相乘)的向量。"

#: doc/classes/Quat.xml:156
msgid ""
"W component of the quaternion (real part).\n"
"Quaternion components should usually not be manipulated directly."
msgstr ""
"四元数的W分量(实数部分)。\n"
"四元数分量通常不应该被直接操作。"

#: doc/classes/Quat.xml:160
msgid ""
"X component of the quaternion (imaginary [code]i[/code] axis part).\n"
"Quaternion components should usually not be manipulated directly."
msgstr ""
"四元数的X分量(虚轴[code]i[/code]部分)。\n"
"四元数分量通常不应直接操作。"

#: doc/classes/Quat.xml:164
msgid ""
"Y component of the quaternion (imaginary [code]j[/code] axis part).\n"
"Quaternion components should usually not be manipulated directly."
msgstr ""
"四元数的Y分量(虚轴[code]j[/code]部分)。\n"
"四元数分量通常不应直接操作。"

#: doc/classes/Quat.xml:168
msgid ""
"Z component of the quaternion (imaginary [code]k[/code] axis part).\n"
"Quaternion components should usually not be manipulated directly."
msgstr ""
"四元数的Z分量(虚轴[code]k[/code]部分)。\n"
"四元数分量通常不应该被直接操作。"

#: doc/classes/Quat.xml:174
msgid ""
"The identity quaternion, representing no rotation. Equivalent to an identity "
"[Basis] matrix. If a vector is transformed by an identity quaternion, it "
"will not change."
msgstr ""
"单位四元数,代表无旋转。等效于单位 [Basis] 矩阵。如果一个向量被一个单位四元数"
"变换,它不会改变。"

#: doc/classes/RandomNumberGenerator.xml:4
msgid "A class for generating pseudo-random numbers."
msgstr "一个用于生成伪随机数的类。"

#: doc/classes/RandomNumberGenerator.xml:7
#, fuzzy
msgid ""
"RandomNumberGenerator is a class for generating pseudo-random numbers. It "
"currently uses [url=http://www.pcg-random.org/]PCG32[/url].\n"
"[b]Note:[/b] The underlying algorithm is an implementation detail. As a "
"result, it should not be depended upon for reproducible random streams "
"across Godot versions.\n"
"To generate a random float number (within a given range) based on a time-"
"dependant seed:\n"
"[codeblock]\n"
"var rng = RandomNumberGenerator.new()\n"
"func _ready():\n"
"    rng.randomize()\n"
"    var my_random_number = rng.randf_range(-10.0, 10.0)\n"
"[/codeblock]\n"
"[b]Note:[/b] The default values of [member seed] and [member state] "
"properties are pseudo-random, and changes when calling [method randomize]. "
"The [code]0[/code] value documented here is a placeholder, and not the "
"actual default seed."
msgstr ""
"RandomNumberGenerator是一个用于生成伪随机数的类。它目前使用[url=http://www."
"pcg-random.org/]PCG32[/url]。\n"
"[b]注意:[/b] 底层算法是一个实现细节。因此,它不应该被用来在不同的Godot版本中"
"产生可重复的随机流。\n"
"基于一个与时间有关的种子,生成一个随机的浮点数(在一个给定的范围内)。\n"
"[codeblock]\n"
"var rng = RandomNumberGenerator.new()\n"
"func _ready():\n"
"    rng.randomize()\n"
"    var my_random_number = rng.randf_range(-10.0, 10.0)\n"
"[/codeblock]"

#: doc/classes/RandomNumberGenerator.xml:19
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/math/random_number_generation."
"html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/math/index.html"

#: doc/classes/RandomNumberGenerator.xml:25
msgid ""
"Generates a pseudo-random float between [code]0.0[/code] and [code]1.0[/"
"code] (inclusive)."
msgstr ""
"产生一个[code]0.0[/code]和[code]1.0[/code](包括端点)之间的伪随机浮点数。"

#: doc/classes/RandomNumberGenerator.xml:33
msgid ""
"Generates a pseudo-random float between [code]from[/code] and [code]to[/"
"code] (inclusive)."
msgstr ""
"产生一个[code]from[/code]和[code]to[/code](包括端点)之间的伪随机浮点数。"

#: doc/classes/RandomNumberGenerator.xml:41
msgid ""
"Generates a [url=https://en.wikipedia.org/wiki/Normal_distribution]normally-"
"distributed[/url] pseudo-random number, using Box-Muller transform with the "
"specified [code]mean[/code] and a standard [code]deviation[/code]. This is "
"also called Gaussian distribution."
msgstr ""
"产生一个[url=https://en.wikipedia.org/wiki/Normal_distribution]正态分布[/url]"
"的伪随机数,使用Box-Muller变换,具有指定的[code]平均值[/code]和标准[code]偏差"
"[/code]。这也被称为高斯分布。"

#: doc/classes/RandomNumberGenerator.xml:47
msgid ""
"Generates a pseudo-random 32-bit unsigned integer between [code]0[/code] and "
"[code]4294967295[/code] (inclusive)."
msgstr ""
"产生一个[code]0[/code]和[code]4294967295[/code](含端点)之间的伪随机32位无符"
"号整数。"

#: doc/classes/RandomNumberGenerator.xml:55
msgid ""
"Generates a pseudo-random 32-bit signed integer between [code]from[/code] "
"and [code]to[/code] (inclusive)."
msgstr ""
"产生一个[code]to[/code]和[code]from[/code](含端点)之间的伪随机32位有符号整"
"数。"

#: doc/classes/RandomNumberGenerator.xml:61
msgid "Setups a time-based seed to generator."
msgstr "为生成器设置一个基于时间的种子。"

#: doc/classes/RandomNumberGenerator.xml:67
msgid ""
"Initializes the random number generator state based on the given seed value. "
"A given seed will give a reproducible sequence of pseudo-random numbers.\n"
"[b]Note:[/b] The RNG does not have an avalanche effect, and can output "
"similar random streams given similar seeds. Consider using a hash function "
"to improve your seed quality if they're sourced externally.\n"
"[b]Note:[/b] Setting this property produces a side effect of changing the "
"internal [member state], so make sure to initialize the seed [i]before[/i] "
"modifying the [member state]:\n"
"[codeblock]\n"
"var rng = RandomNumberGenerator.new()\n"
"rng.seed = hash(\"Godot\")\n"
"rng.state = 100 # Restore to some previously saved state.\n"
"[/codeblock]\n"
"[b]Warning:[/b] the getter of this property returns the previous [member "
"state], and not the initial seed value, which is going to be fixed in Godot "
"4.0."
msgstr ""

#: doc/classes/RandomNumberGenerator.xml:78
msgid ""
"The current state of the random number generator. Save and restore this "
"property to restore the generator to a previous state:\n"
"[codeblock]\n"
"var rng = RandomNumberGenerator.new()\n"
"print(rng.randf())\n"
"var saved_state = rng.state # Store current state.\n"
"print(rng.randf()) # Advance internal state.\n"
"rng.state = saved_state # Restore the state.\n"
"print(rng.randf()) # Prints the same value as in previous.\n"
"[/codeblock]\n"
"[b]Note:[/b] Do not set state to arbitrary values, since the random number "
"generator requires the state to have certain qualities to behave properly. "
"It should only be set to values that came from the state property itself. To "
"initialize the random number generator with arbitrary input, use [member "
"seed] instead."
msgstr ""

#: doc/classes/Range.xml:4
msgid "Abstract base class for range-based controls."
msgstr "基于范围的控件的抽象基类。"

#: doc/classes/Range.xml:7
msgid ""
"Range is a base class for [Control] nodes that change a floating-point "
"[i]value[/i] between a [i]minimum[/i] and a [i]maximum[/i], using [i]step[/"
"i] and [i]page[/i], for example a [ScrollBar]."
msgstr ""
"Range是一个用于[Control]节点的基类,它在[i]最小值[/i]和[i]最大值[/i]之间改变"
"一个浮点[i]值[/i],用于[i]步进[/i]和[i]页面[/i],例如[ScrollBar]。"

#: doc/classes/Range.xml:16
msgid ""
"Binds two ranges together along with any ranges previously grouped with "
"either of them. When any of range's member variables change, it will share "
"the new value with all other ranges in its group."
msgstr ""
"将两个范围和之前与它们中任何一个分组的任何范围绑定在一起。当任何一个范围的成"
"员变量改变时,它将与它的组中的所有其他范围共享新的值。"

#: doc/classes/Range.xml:22
msgid "Stops range from sharing its member variables with any other."
msgstr "停止与任何其他成员变量共享其成员变量的范围。"

#: doc/classes/Range.xml:28
msgid ""
"If [code]true[/code], [member value] may be greater than [member max_value]."
msgstr "如果[code]true[/code],[member value]可能大于[member max_value]。"

#: doc/classes/Range.xml:31
msgid ""
"If [code]true[/code], [member value] may be less than [member min_value]."
msgstr "如果[code]true[/code],[member value]可能小于[member min_value]。"

#: doc/classes/Range.xml:34
msgid ""
"If [code]true[/code], and [code]min_value[/code] is greater than 0, "
"[code]value[/code] will be represented exponentially rather than linearly."
msgstr ""
"如果[code]true[/code],并且[code]min_value[/code]大于0,[code]value[/code]将"
"以指数方式而不是线性方式表示。"

#: doc/classes/Range.xml:37
msgid ""
"Maximum value. Range is clamped if [code]value[/code] is greater than "
"[code]max_value[/code]."
msgstr ""
"最大值。如果[code]value[/code]大于[code]max_value[/code],则会被范围限制。"

#: doc/classes/Range.xml:40
msgid ""
"Minimum value. Range is clamped if [code]value[/code] is less than "
"[code]min_value[/code]."
msgstr ""
"最小值。如果[code]value[/code]小于[code]min_value[/code],则会被范围限制。"

#: doc/classes/Range.xml:43
msgid ""
"Page size. Used mainly for [ScrollBar]. ScrollBar's length is its size "
"multiplied by [code]page[/code] over the difference between [code]min_value[/"
"code] and [code]max_value[/code]."
msgstr ""
"页面大小。主要用于[ScrollBar]。ScrollBar的长度是它的尺寸乘以[code]page[/code]"
"超过[code]min_value[/code]和[code]max_value[/code]之间的差值。"

#: doc/classes/Range.xml:46
msgid "The value mapped between 0 and 1."
msgstr "该值在0和1之间进行映射。"

#: doc/classes/Range.xml:49
msgid ""
"If [code]true[/code], [code]value[/code] will always be rounded to the "
"nearest integer."
msgstr ""
"如果 [code]true[/code],[code]value[/code] 将始终四舍五入到最接近的整数。"

#: doc/classes/Range.xml:52
msgid ""
"If greater than 0, [code]value[/code] will always be rounded to a multiple "
"of [code]step[/code]. If [code]rounded[/code] is also [code]true[/code], "
"[code]value[/code] will first be rounded to a multiple of [code]step[/code] "
"then rounded to the nearest integer."
msgstr ""
"如果大于0,[code]value[/code]将总是被四舍五入为[code]step[/code]的倍数。如果"
"[code]rounded[/code]也是[code]true[/code],[code]value[/code]将首先被四舍五入"
"为[code]step[/code]的倍数,然后舍入为最近的整数。"

#: doc/classes/Range.xml:55
msgid "Range's current value."
msgstr "当前的范围值。"

#: doc/classes/Range.xml:61
msgid ""
"Emitted when [member min_value], [member max_value], [member page], or "
"[member step] change."
msgstr ""
"在 [member min_value], [member max_value], [member page], 或 [member step] 改"
"变时释放信号。"

#: doc/classes/Range.xml:67
msgid "Emitted when [member value] changes."
msgstr "在 [member value] 改变时释放信号。"

#: doc/classes/RayCast.xml:4 doc/classes/RayCast2D.xml:4
msgid "Query the closest object intersecting a ray."
msgstr "查询与射线相交的最近物体。"

#: doc/classes/RayCast.xml:7
#, fuzzy
msgid ""
"A RayCast represents a line from its origin to its destination position, "
"[code]cast_to[/code]. It is used to query the 3D space in order to find the "
"closest object along the path of the ray.\n"
"RayCast can ignore some objects by adding them to the exception list via "
"[code]add_exception[/code] or by setting proper filtering with collision "
"layers and masks.\n"
"RayCast can be configured to report collisions with [Area]s ([member "
"collide_with_areas]) and/or [PhysicsBody]s ([member collide_with_bodies]).\n"
"Only enabled raycasts will be able to query the space and report "
"collisions.\n"
"RayCast calculates intersection every physics frame (see [Node]), and the "
"result is cached so it can be used later until the next frame. If multiple "
"queries are required between physics frames (or during the same frame), use "
"[method force_raycast_update] after adjusting the raycast."
msgstr ""
"RayCast表示一条从原点到目标位置[code]cast_to[/code]的直线。它被用来查询3D空"
"间,以便沿着射线的路径找到最近的物体。\n"
"RayCast3D可以忽略一些物体,通过[code]add_exception[/code]将它们添加到异常列表"
"中,通过设置碰撞层进行适当的过滤,或者通过类型掩码过滤物体类型。\n"
"RayCast3D可以被配置为报告[Area3D]([member collide_with_areas])和"
"[PhysicsBody2D]([member collide_with_bodies])之间或彼此间的碰撞。\n"
"只有被激活的Raycast才能够查询空间并报告碰撞情况。\n"
"RayCast2D在每一个物理帧中计算交集(见[Node]),结果被缓存起来,以便以后可以用"
"到下一帧。如果在物理帧之间需要多次查询(或在同一帧中),请在调整射线广播后使"
"用[method force_raycast_update]。"

#: doc/classes/RayCast.xml:22 doc/classes/RayCast2D.xml:21
msgid ""
"Adds a collision exception so the ray does not report collisions with the "
"specified node."
msgstr "添加一个碰撞异常,这样射线就不会报告与指定节点的碰撞情况。"

#: doc/classes/RayCast.xml:29 doc/classes/RayCast2D.xml:28
msgid ""
"Adds a collision exception so the ray does not report collisions with the "
"specified [RID]."
msgstr "添加一个碰撞异常,这样射线就不会报告与指定的[RID]发生碰撞。"

#: doc/classes/RayCast.xml:35 doc/classes/RayCast2D.xml:34
msgid "Removes all collision exceptions for this ray."
msgstr "删除此射线的所有碰撞异常。"

#: doc/classes/RayCast.xml:41
#, fuzzy
msgid ""
"Updates the collision information for the ray.\n"
"Use this method to update the collision information immediately instead of "
"waiting for the next [code]_physics_process[/code] call, for example if the "
"ray or its parent has changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
"更新光线的碰撞信息。\n"
"使用这个方法可以立即更新碰撞信息,而不是等待下一次[code]_physics_process[/"
"code]调用,例如当射线或它的父进程状态改变时。\n"
"[b]注意:[/b] 并不需要[member enabled]为[code]true[/code]才能工作。"

#: doc/classes/RayCast.xml:49 doc/classes/RayCast2D.xml:47
msgid ""
"Returns the first object that the ray intersects, or [code]null[/code] if no "
"object is intersecting the ray (i.e. [method is_colliding] returns "
"[code]false[/code])."
msgstr ""
"返回射线相交的第一个对象,如果没有对象与射线相交,则返回 [code]null[/code]"
"(即 [method is_colliding] 返回 [code]false[/code])。"

#: doc/classes/RayCast.xml:55 doc/classes/RayCast2D.xml:53
msgid ""
"Returns the shape ID of the first object that the ray intersects, or "
"[code]0[/code] if no object is intersecting the ray (i.e. [method "
"is_colliding] returns [code]false[/code])."
msgstr ""
"返回射线相交的第一个对象的形状 ID,如果没有对象与射线相交,则返回 [code]0[/"
"code](即 [method is_colliding] 返回 [code]false[/code])。"

#: doc/classes/RayCast.xml:62
msgid ""
"Returns [code]true[/code] if the bit index passed is turned on.\n"
"[b]Note:[/b] Bit indices range from 0-19."
msgstr ""
"如果通过的位索引被打开,则返回[code]true[/code]。\n"
"[b]注意:[/b] 位指数范围为0-19。"

#: doc/classes/RayCast.xml:69 doc/classes/RayCast2D.xml:66
msgid ""
"Returns the normal of the intersecting object's shape at the collision point."
msgstr "返回碰撞点相交物体形状的法线。"

#: doc/classes/RayCast.xml:75 doc/classes/RayCast2D.xml:72
msgid ""
"Returns the collision point at which the ray intersects the closest object.\n"
"[b]Note:[/b] This point is in the [b]global[/b] coordinate system."
msgstr ""
"返回射线与最近的物体相交的碰撞点。\n"
"[b]注意:[/b]这个点是在[b]全局[/b]坐标系中。"

#: doc/classes/RayCast.xml:82 doc/classes/RayCast2D.xml:79
msgid ""
"Returns whether any object is intersecting with the ray's vector "
"(considering the vector length)."
msgstr "返回是否有任何对象与射线的向量相交(考虑向量长度)。"

#: doc/classes/RayCast.xml:89 doc/classes/RayCast2D.xml:86
msgid ""
"Removes a collision exception so the ray does report collisions with the "
"specified node."
msgstr "移除碰撞异常,这样射线就会报告与指定节点的碰撞。"

#: doc/classes/RayCast.xml:96 doc/classes/RayCast2D.xml:93
msgid ""
"Removes a collision exception so the ray does report collisions with the "
"specified [RID]."
msgstr "移除一个碰撞异常,这样射线就会用指定的[RID]报告碰撞。"

#: doc/classes/RayCast.xml:104
msgid ""
"Sets the bit index passed to the [code]value[/code] passed.\n"
"[b]Note:[/b] Bit indexes range from 0-19."
msgstr ""
"将传递的位索引设置为传递的[code]值[/code]。\n"
"[b]注意:[/b] 位索引的范围是0-19。"

#: doc/classes/RayCast.xml:111 doc/classes/RayCast2D.xml:107
msgid ""
"The ray's destination point, relative to the RayCast's [code]position[/code]."
msgstr "光线相对于光线投射的 [code]position[/code]的目标点,。"

#: doc/classes/RayCast.xml:114
#, fuzzy
msgid "If [code]true[/code], collision with [Area]s will be reported."
msgstr "如果[code]true[/code],将报告与[Area2D]的碰撞。"

#: doc/classes/RayCast.xml:117
#, fuzzy
msgid "If [code]true[/code], collision with [PhysicsBody]s will be reported."
msgstr "如果[code]true[/code],会报告与[PhysicsBody2D]的碰撞。"

#: doc/classes/RayCast.xml:120 doc/classes/RayCast2D.xml:116
msgid ""
"The ray's collision mask. Only objects in at least one collision layer "
"enabled in the mask will be detected. See [url=https://docs.godotengine.org/"
"en/3.4/tutorials/physics/physics_introduction.html#collision-layers-and-"
"masks]Collision layers and masks[/url] in the documentation for more "
"information."
msgstr ""

#: doc/classes/RayCast.xml:123
msgid ""
"The custom color to use to draw the shape in the editor and at run-time if "
"[b]Visible Collision Shapes[/b] is enabled in the [b]Debug[/b] menu. This "
"color will be highlighted at run-time if the [RayCast] is colliding with "
"something.\n"
"If set to [code]Color(0.0, 0.0, 0.0)[/code] (by default), the color set in "
"[member ProjectSettings.debug/shapes/collision/shape_color] is used."
msgstr ""

#: doc/classes/RayCast.xml:127
msgid ""
"If set to [code]1[/code], a line is used as the debug shape. Otherwise, a "
"truncated pyramid is drawn to represent the [RayCast]. Requires [b]Visible "
"Collision Shapes[/b] to be enabled in the [b]Debug[/b] menu for the debug "
"shape to be visible at run-time."
msgstr ""

#: doc/classes/RayCast.xml:130 doc/classes/RayCast2D.xml:119
msgid "If [code]true[/code], collisions will be reported."
msgstr "如果 [code]true[/code],将报告碰撞。"

#: doc/classes/RayCast.xml:133
#, fuzzy
msgid ""
"If [code]true[/code], collisions will be ignored for this RayCast's "
"immediate parent."
msgstr "如果 [code]true[/code],则此 RayCast3D 的直接父级的碰撞将被忽略。"

#: doc/classes/RayCast2D.xml:7
msgid ""
"A RayCast represents a line from its origin to its destination position, "
"[code]cast_to[/code]. It is used to query the 2D space in order to find the "
"closest object along the path of the ray.\n"
"RayCast2D can ignore some objects by adding them to the exception list via "
"[code]add_exception[/code], by setting proper filtering with collision "
"layers, or by filtering object types with type masks.\n"
"RayCast2D can be configured to report collisions with [Area2D]s ([member "
"collide_with_areas]) and/or [PhysicsBody2D]s ([member "
"collide_with_bodies]).\n"
"Only enabled raycasts will be able to query the space and report "
"collisions.\n"
"RayCast2D calculates intersection every physics frame (see [Node]), and the "
"result is cached so it can be used later until the next frame. If multiple "
"queries are required between physics frames (or during the same frame) use "
"[method force_raycast_update] after adjusting the raycast."
msgstr ""
"RayCast表示一条从原点到目标位置[code]cast_to[/code]的直线。它被用来查询2D空"
"间,以便沿着射线的路径找到最近的物体。\n"
"RayCast2D可以忽略一些物体,通过[code]add_exception[/code]将它们添加到异常列表"
"中,通过设置碰撞层进行适当的过滤,或者通过类型掩码过滤物体类型。\n"
"RayCast2D可以被配置为报告[Area2D]([member collide_with_areas])和"
"[PhysicsBody2D]([member collide_with_bodies])之间或彼此间的碰撞。\n"
"只有被激活的Raycast才能够查询空间并报告碰撞情况。\n"
"RayCast2D在每一个物理帧中计算交集(见[Node]),结果被缓存起来,以便以后可以用"
"到下一帧。如果在物理帧之间需要多次查询(或在同一帧中),请在调整射线广播后使"
"用[method force_raycast_update]。"

#: doc/classes/RayCast2D.xml:40
#, fuzzy
msgid ""
"Updates the collision information for the ray. Use this method to update the "
"collision information immediately instead of waiting for the next "
"[code]_physics_process[/code] call, for example if the ray or its parent has "
"changed state.\n"
"[b]Note:[/b] [code]enabled[/code] is not required for this to work."
msgstr ""
"更新光线的碰撞信息。使用这个方法可以立即更新碰撞信息,而不是等待下一次"
"[code]_physics_process[/code]调用,例如当射线或它的父进程状态改变时。\n"
"[b]注意:[/b] 并不需要[member enabled]为[code]true[/code]才能工作。"

#: doc/classes/RayCast2D.xml:101
msgid ""
"Sets or clears individual bits on the collision mask. This makes selecting "
"the areas scanned easier."
msgstr "设置或清除碰撞掩码上的单个位。这使得选择扫描区域更容易。"

#: doc/classes/RayCast2D.xml:110
msgid "If [code]true[/code], collision with [Area2D]s will be reported."
msgstr "如果[code]true[/code],将报告与[Area2D]的碰撞。"

#: doc/classes/RayCast2D.xml:113
msgid "If [code]true[/code], collision with [PhysicsBody2D]s will be reported."
msgstr "如果[code]true[/code],会报告与[PhysicsBody2D]的碰撞。"

#: doc/classes/RayCast2D.xml:122
msgid ""
"If [code]true[/code], the parent node will be excluded from collision "
"detection."
msgstr "如果[code]true[/code],父节点将被排除在碰撞检测之外。"

#: doc/classes/RayShape.xml:4
msgid "Ray shape for 3D collisions."
msgstr "用于 3D 碰撞的射线形状。"

#: doc/classes/RayShape.xml:7
#, fuzzy
msgid ""
"Ray shape for 3D collisions, which can be set into a [PhysicsBody] or "
"[Area]. A ray is not really a collision body; instead, it tries to separate "
"itself from whatever is touching its far endpoint. It's often useful for "
"characters."
msgstr ""
"3D 碰撞的射线形状,可以设置为 [PhysicsBody3D] 或 [Area3D]。射线并不是真正的碰"
"撞体;相反,它试图将自己与接触其远端的任何东西分开。它通常对角色很有用。"

#: doc/classes/RayShape.xml:15 doc/classes/RayShape2D.xml:15
msgid "The ray's length."
msgstr "射线的长度。"

#: doc/classes/RayShape.xml:18 doc/classes/RayShape2D.xml:18
msgid "If [code]true[/code], allow the shape to return the correct normal."
msgstr "如果 [code]true[/code],则允许形状返回正确的法线。"

#: doc/classes/RayShape2D.xml:4
msgid "Ray shape for 2D collisions."
msgstr "用于 2D 碰撞的射线形状。"

#: doc/classes/RayShape2D.xml:7
msgid ""
"Ray shape for 2D collisions. A ray is not really a collision body; instead, "
"it tries to separate itself from whatever is touching its far endpoint. It's "
"often useful for characters."
msgstr ""
"二维碰撞的射线形状。射线并不是真正的碰撞体;相反,它试图将自己与接触其远端的"
"任何东西分开。它通常对角色很有用。"

#: doc/classes/Rect2.xml:4
#, fuzzy
msgid "2D axis-aligned bounding box."
msgstr "轴对齐包围盒。"

#: doc/classes/Rect2.xml:7
#, fuzzy
msgid ""
"[Rect2] consists of a position, a size, and several utility functions. It is "
"typically used for fast overlap tests.\n"
"It uses floating-point coordinates.\n"
"The 3D counterpart to [Rect2] is [AABB]."
msgstr ""
"[Rect2] 由一个位置、一个大小和几个实用功能组成。它通常用于快速重叠测试。\n"
"它使用浮点坐标。"

#: doc/classes/Rect2.xml:22
msgid "Constructs a [Rect2] by position and size."
msgstr "按位置和大小构造一个[Rect2]。"

#: doc/classes/Rect2.xml:32
msgid "Constructs a [Rect2] by x, y, width, and height."
msgstr "通过x、y、宽度和高度构造一个[Rect2]。"

#: doc/classes/Rect2.xml:38
msgid ""
"Returns a [Rect2] with equivalent position and area, modified so that the "
"top-left corner is the origin and [code]width[/code] and [code]height[/code] "
"are positive."
msgstr ""
"返回具有相同位置和面积的 [Rect2],经过修改,使左上角为原点,[code] width [/"
"code] 和 [code] height [/code] 为正数。"

#: doc/classes/Rect2.xml:45
msgid "Returns the intersection of this [Rect2] and b."
msgstr "返回此 [Rect2] 和 b 的交集。"

#: doc/classes/Rect2.xml:52
msgid ""
"Returns [code]true[/code] if this [Rect2] completely encloses another one."
msgstr "如果此 [Rect2] 完全包含另一个,则返回 [code]true[/code]。"

#: doc/classes/Rect2.xml:59
msgid "Returns this [Rect2] expanded to include a given point."
msgstr "返回包含给定点的此 [Rect2] 的扩展。"

#: doc/classes/Rect2.xml:65
msgid "Returns the area of the [Rect2]."
msgstr "返回 [Rect2] 面积。"

#: doc/classes/Rect2.xml:72
msgid ""
"Returns a copy of the [Rect2] grown a given amount of units towards all the "
"sides."
msgstr "返回 [Rect2] 的副本,该副本向所有边增长了给定数量的单位。"

#: doc/classes/Rect2.xml:82
msgid ""
"Returns a copy of the [Rect2] grown a given amount of units towards each "
"direction individually."
msgstr "返回 [Rect2] 的副本,该副本分别向各边增长了给定数量的单位。"

#: doc/classes/Rect2.xml:90
msgid ""
"Returns a copy of the [Rect2] grown a given amount of units towards the "
"[enum Margin] direction."
msgstr "返回[Rect2]向[enum Margin]方向增长给定数量单位的副本。"

#: doc/classes/Rect2.xml:96
msgid "Returns [code]true[/code] if the [Rect2] is flat or empty."
msgstr "如果[Rect2]为flat或空,则返回[code]true[/code]。"

#: doc/classes/Rect2.xml:103
msgid "Returns [code]true[/code] if the [Rect2] contains a point."
msgstr "如果 [Rect2] 包含点,则返回 [code]true[/code]。"

#: doc/classes/Rect2.xml:111
msgid ""
"Returns [code]true[/code] if the [Rect2] overlaps with [code]b[/code] (i.e. "
"they have at least one point in common).\n"
"If [code]include_borders[/code] is [code]true[/code], they will also be "
"considered overlapping if their borders touch, even without intersection."
msgstr ""
"如果 [Rect2] 与 [code]b[/code] 重叠(即它们至少有一个共同点),则返回 "
"[code]true[/code]。\n"
"如果 [code]include_borders[/code] 是 [code]true[/code],如果它们的边界接触,"
"即使没有交叉,它们也会被视为重叠。"

#: doc/classes/Rect2.xml:119
msgid ""
"Returns [code]true[/code] if this [Rect2] and [code]rect[/code] are "
"approximately equal, by calling [code]is_equal_approx[/code] on each "
"component."
msgstr ""
"通过在每个组件上调用 [code]is_equal_approx[/code],如果此 [Rect2] 和 "
"[code]rect[/code] 大致相等,则返回 [code]true[/code]。"

#: doc/classes/Rect2.xml:126
msgid "Returns a larger [Rect2] that contains this [Rect2] and [code]b[/code]."
msgstr "返回一个更大的 [Rect2],其中包含这个 [Rect2] 和 [code]b[/code]。"

#: doc/classes/RectangleShape2D.xml:4
msgid "Rectangle shape for 2D collisions."
msgstr "二维碰撞的矩形。"

#: doc/classes/RectangleShape2D.xml:7
msgid ""
"Rectangle shape for 2D collisions. This shape is useful for modeling box-"
"like 2D objects."
msgstr "二维碰撞的矩形。这个形状对于建模盒状2D对象很有用。"

#: doc/classes/RectangleShape2D.xml:17
msgid ""
"The rectangle's half extents. The width and height of this shape is twice "
"the half extents."
msgstr "矩形大小的一半。即该形状的宽度和高度是该一半数值的两倍。"

#: doc/classes/Reference.xml:4
msgid "Base class for reference-counted objects."
msgstr "引用计数对象的基类。"

#: doc/classes/Reference.xml:7
#, fuzzy
msgid ""
"Base class for any object that keeps a reference count. [Resource] and many "
"other helper objects inherit this class.\n"
"Unlike other [Object] types, References keep an internal reference counter "
"so that they are automatically released when no longer in use, and only "
"then. References therefore do not need to be freed manually with [method "
"Object.free].\n"
"In the vast majority of use cases, instantiating and using [Reference]-"
"derived types is all you need to do. The methods provided in this class are "
"only for advanced users, and can cause issues if misused.\n"
"[b]Note:[/b] In C#, references will not be freed instantly after they are no "
"longer in use. Instead, garbage collection will run periodically and will "
"free references that are no longer in use. This means that unused references "
"will linger on for a while before being removed."
msgstr ""
"任何保持引用计数的对象的基类。[Resource]和许多其他辅助对象都继承了这个类。\n"
"与[Object]不同的是,引用保留了一个内部引用计数器,因此当且仅当它们不再被使用"
"时就会被自动释放。因此,引用不需要通过[method Object.free]手动释放。\n"
"在绝大多数的使用情况下,实例化和使用[Reference]派生的类型就是你需要做的全部事"
"情。这个类中提供的方法只适用于高级用户,如果误用的话会导致问题。"

#: doc/classes/Reference.xml:19
msgid ""
"Initializes the internal reference counter. Use this only if you really know "
"what you are doing.\n"
"Returns whether the initialization was successful."
msgstr ""
"初始化内部引用计数器。只有在你真的知道你在做什么的时候才使用这个。\n"
"返回初始化是否成功。"

#: doc/classes/Reference.xml:26
msgid ""
"Increments the internal reference counter. Use this only if you really know "
"what you are doing.\n"
"Returns [code]true[/code] if the increment was successful, [code]false[/"
"code] otherwise."
msgstr ""
"内部引用增量计数器。只有在你真的知道你在做什么的时候才使用这个。\n"
"如果增量成功,返回[code]true[/code],否则返回[code]false[/code]。"

#: doc/classes/Reference.xml:33
msgid ""
"Decrements the internal reference counter. Use this only if you really know "
"what you are doing.\n"
"Returns [code]true[/code] if the decrement was successful, [code]false[/"
"code] otherwise."
msgstr ""
"内部引用减量计数器。只有在你真的知道你在做什么的时候才使用这个。\n"
"如果减量成功,返回[code]true[/code],否则返回[code]false[/code]。"

#: doc/classes/ReferenceRect.xml:4
msgid "Reference frame for GUI."
msgstr "GUI的引用框架。"

#: doc/classes/ReferenceRect.xml:7
#, fuzzy
msgid ""
"A rectangle box that displays only a [member border_color] border color "
"around its rectangle. [ReferenceRect] has no fill [Color]. If you need to "
"display a rectangle filled with a solid color, consider using [ColorRect] "
"instead."
msgstr ""
"一个矩形框,只在其矩形周围显示一个[member border_color]边框颜色。"
"[ReferenceRect]没有填充[Color]。"

#: doc/classes/ReferenceRect.xml:15
msgid "Sets the border [Color] of the [ReferenceRect]."
msgstr "设置 [ReferenceRect] 的边框 [Color]。"

#: doc/classes/ReferenceRect.xml:18
msgid ""
"Sets the border width of the [ReferenceRect]. The border grows both inwards "
"and outwards with respect to the rectangle box."
msgstr ""

#: doc/classes/ReferenceRect.xml:21
msgid ""
"If set to [code]true[/code], the [ReferenceRect] will only be visible while "
"in editor. Otherwise, [ReferenceRect] will be visible in game."
msgstr ""
"如果设置为[code]true[/code],[ReferenceRect]将只在编辑器中可见。否则,"
"[ReferenceRect]将在游戏中可见。"

#: doc/classes/ReflectionProbe.xml:4
msgid "Captures its surroundings to create reflections."
msgstr "捕捉其周围的环境,以创造反射。"

#: doc/classes/ReflectionProbe.xml:7
#, fuzzy
msgid ""
"Capture its surroundings as a dual paraboloid image, and stores versions of "
"it with increasing levels of blur to simulate different material "
"roughnesses.\n"
"The [ReflectionProbe] is used to create high-quality reflections at the cost "
"of performance. It can be combined with [GIProbe]s and Screen Space "
"Reflections to achieve high quality reflections. [ReflectionProbe]s render "
"all objects within their [member cull_mask], so updating them can be quite "
"expensive. It is best to update them once with the important static objects "
"and then leave them.\n"
"[b]Note:[/b] By default Godot will only render 16 reflection probes. If you "
"need more, increase the number of atlas subdivisions. This setting can be "
"found in [member ProjectSettings.rendering/quality/reflections/atlas_subdiv]."
msgstr ""
"将其周围环境捕获为立方体图,并存储其版本,使其模糊程度增加,以模拟不同的材料"
"粗糙度。\n"
"[ReflectionProbe] 用于以性能为代价创建高质量的反射。它可以与 [GIProbe] 和屏幕"
"空间反射相结合,实现高质量的反射。[ReflectionProbe]渲染其[member cull_mask]中"
"的所有对象,因此更新它们可能相当昂贵。最好用重要的静态对象更新它们一次,然后"
"放下它们。"

#: doc/classes/ReflectionProbe.xml:12
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/3d/reflection_probes.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/reflection_probes.html"

#: doc/classes/ReflectionProbe.xml:18
msgid ""
"If [code]true[/code], enables box projection. This makes reflections look "
"more correct in rectangle-shaped rooms by offsetting the reflection center "
"depending on the camera's location."
msgstr ""
"如果 [code]true[/code],则启用箱体投影。通过根据相机的位置偏移反射中心,这使"
"得在矩形房间中的反射看起来更正确。"

#: doc/classes/ReflectionProbe.xml:21
#, fuzzy
msgid ""
"Sets the cull mask which determines what objects are drawn by this probe. "
"Every [VisualInstance] with a layer included in this cull mask will be "
"rendered by the probe. It is best to only include large objects which are "
"likely to take up a lot of space in the reflection in order to save on "
"rendering cost."
msgstr ""
"设置剔除蒙版,它决定了探测所绘制的对象。每个包含在这个剔除蒙版中的图层"
"[VisualInstance3D]都将被探针渲染。为了节省渲染成本,最好只包含大的物体,因为"
"它们很可能会占用大量的反射空间。"

#: doc/classes/ReflectionProbe.xml:24
msgid ""
"If [code]true[/code], computes shadows in the reflection probe. This makes "
"the reflection probe slower to render; you may want to disable this if using "
"the [constant UPDATE_ALWAYS] [member update_mode]."
msgstr ""
"如果[code]true[/code],则在反射探测中计算阴影。这使得反射探针渲染更慢;如果想"
"禁用它,可以使用[constant UPDATE ALWAYS] [member update_mode]。"

#: doc/classes/ReflectionProbe.xml:27
msgid ""
"The size of the reflection probe. The larger the extents the more space "
"covered by the probe which will lower the perceived resolution. It is best "
"to keep the extents only as large as you need them."
msgstr ""
"反射探测器的大小。范围越大,探测器覆盖的空间就越大,这将降低感知的分辨率。最"
"好的办法是把范围保持在你需要的程度上。"

#: doc/classes/ReflectionProbe.xml:30
msgid ""
"Defines the reflection intensity. Intensity modulates the strength of the "
"reflection."
msgstr "定义反射强度。"

#: doc/classes/ReflectionProbe.xml:33
msgid ""
"Sets the ambient light color to be used when this probe is set to [member "
"interior_enable]."
msgstr ""

#: doc/classes/ReflectionProbe.xml:36
msgid ""
"Sets the contribution value for how much the reflection affects the ambient "
"light for this reflection probe when set to [member interior_enable]. Useful "
"so that ambient light matches the color of the room."
msgstr ""

#: doc/classes/ReflectionProbe.xml:39
msgid ""
"Sets the energy multiplier for this reflection probe's ambient light "
"contribution when set to [member interior_enable]."
msgstr ""

#: doc/classes/ReflectionProbe.xml:42
#, fuzzy
msgid ""
"If [code]true[/code], reflections will ignore sky contribution. Ambient "
"lighting is then controlled by the [code]interior_ambient_*[/code] "
"properties."
msgstr ""
"如果 [code]true[/code],反射将忽略天空因素。等效于 [member ReflectionProbe."
"interior]。"

#: doc/classes/ReflectionProbe.xml:45
msgid ""
"Sets the max distance away from the probe an object can be before it is "
"culled."
msgstr "设置对象在被删除之前与探测器的最大距离。"

#: doc/classes/ReflectionProbe.xml:48
msgid ""
"Sets the origin offset to be used when this reflection probe is in box "
"project mode."
msgstr "设置该反射探测器在盒式(box)项目模式下使用的原点偏移。"

#: doc/classes/ReflectionProbe.xml:51
msgid ""
"Sets how frequently the probe is updated. Can be [constant UPDATE_ONCE] or "
"[constant UPDATE_ALWAYS]."
msgstr ""
"设置探测更新的频率。可以是[constant UPDATE ONCE](一次)或[constant UPDATE "
"ALWAYS](一直)。"

#: doc/classes/ReflectionProbe.xml:56
#, fuzzy
msgid "Update the probe once on the next frame."
msgstr "更新一次视窗,然后设置为禁用。"

#: doc/classes/ReflectionProbe.xml:59
msgid ""
"Update the probe every frame. This is needed when you want to capture "
"dynamic objects. However, it results in an increased render time. Use "
"[constant UPDATE_ONCE] whenever possible."
msgstr ""
"在每一帧更新探针。当你想捕捉动态物体时,就需要这样做。然而,这将导致渲染时间"
"的增加。所以尽量使用[constant UPDATE ONCE]。"

#: modules/regex/doc_classes/RegEx.xml:4
msgid "Class for searching text for patterns using regular expressions."
msgstr "使用正则表达式搜索文本的类。"

#: modules/regex/doc_classes/RegEx.xml:7
#, fuzzy
msgid ""
"A regular expression (or regex) is a compact language that can be used to "
"recognise strings that follow a specific pattern, such as URLs, email "
"addresses, complete sentences, etc. For instance, a regex of [code]ab[0-9][/"
"code] would find any string that is [code]ab[/code] followed by any number "
"from [code]0[/code] to [code]9[/code]. For a more in-depth look, you can "
"easily find various tutorials and detailed explanations on the Internet.\n"
"To begin, the RegEx object needs to be compiled with the search pattern "
"using [method compile] before it can be used.\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"\\\\w-(\\\\d+)\")\n"
"[/codeblock]\n"
"The search pattern must be escaped first for GDScript before it is escaped "
"for the expression. For example, [code]compile(\"\\\\d+\")[/code] would be "
"read by RegEx as [code]\\d+[/code]. Similarly, [code]compile(\"\\\"(?:\\\\\\"
"\\.|[^\\\"])*\\\"\")[/code] would be read as [code]\"(?:\\\\.|[^\"])*\"[/"
"code].\n"
"Using [method search], you can find the pattern within the given text. If a "
"pattern is found, [RegExMatch] is returned and you can retrieve details of "
"the results using methods such as [method RegExMatch.get_string] and [method "
"RegExMatch.get_start].\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"\\\\w-(\\\\d+)\")\n"
"var result = regex.search(\"abc n-0123\")\n"
"if result:\n"
"    print(result.get_string()) # Would print n-0123\n"
"[/codeblock]\n"
"The results of capturing groups [code]()[/code] can be retrieved by passing "
"the group number to the various methods in [RegExMatch]. Group 0 is the "
"default and will always refer to the entire pattern. In the above example, "
"calling [code]result.get_string(1)[/code] would give you [code]0123[/code].\n"
"This version of RegEx also supports named capturing groups, and the names "
"can be used to retrieve the results. If two or more groups have the same "
"name, the name would only refer to the first one with a match.\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)\")\n"
"var result = regex.search(\"the number is x2f\")\n"
"if result:\n"
"    print(result.get_string(\"digit\")) # Would print 2f\n"
"[/codeblock]\n"
"If you need to process multiple results, [method search_all] generates a "
"list of all non-overlapping results. This can be combined with a [code]for[/"
"code] loop for convenience.\n"
"[codeblock]\n"
"for result in regex.search_all(\"d01, d03, d0c, x3f and x42\"):\n"
"    print(result.get_string(\"digit\"))\n"
"# Would print 01 03 0 3f 42\n"
"[/codeblock]\n"
"[b]Example of splitting a string using a RegEx:[/b]\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"\\\\S+\") # Negated whitespace character class.\n"
"var results = []\n"
"for result in regex.search_all(\"One  Two \\n\\tThree\"):\n"
"    results.push_back(result.get_string())\n"
"# The `results` array now contains \"One\", \"Two\", \"Three\".\n"
"[/codeblock]\n"
"[b]Note:[/b] Godot's regex implementation is based on the [url=https://www."
"pcre.org/]PCRE2[/url] library. You can view the full pattern reference "
"[url=https://www.pcre.org/current/doc/html/pcre2pattern.html]here[/url].\n"
"[b]Tip:[/b] You can use [url=https://regexr.com/]Regexr[/url] to test "
"regular expressions online."
msgstr ""
"正则表达式(或称regex)是一种紧凑的语言,可用于识别符合特定表达式的字符串,如"
"URL、电子邮件地址、完整句子等。例如,一个[code]ab[0-9][/code]的正则表达式可以"
"找到[code]ab[/code]后面跟着[code]0[/code]到[code]9[/code]的任何数字的字符串。"
"要想更深入地了解,你可以很容易地在互联网上找到各种教程和详细解释。\n"
"首先,在使用RegEx对象之前,需要用[method compile]对其进行搜索模式的编译。\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"\\\\w-(\\\\d+)\")\n"
"[/codeblock]\n"
"在为表达式转义之前,必须先为GDScript转义搜索模式。例如,[code]compile(\"\\\\d"
"+\")[/code]会被RegEx读成[code]\\d+[/code]。同样,[code]compile(\"\\\"(?:\\\\"
"\\\\.|[^\\\"])*\\\")[/code]会被读作[code]\"(?:\\.|[^\"])*\"[/code]。\n"
"使用[method search],你可以在给定的文本中找到表达式。如果找到一个表达式,将返"
"回[RegExMatch],你可以使用[method RegExMatch.get_string]和[method RegExMatch."
"get_start]等方法检索结果的细节。\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"\\\\w-(\\\\d+)\")\n"
"var result = regex.search(\"abc n-0123\")\n"
"if result:\n"
"    print(result.get_string()) # 这会输出n-0123\n"
"[/codeblock]\n"
"捕获组的结果[code]()[/code]可以通过向[RegExMatch]中的各种方法传递组号来检索。"
"组0是默认的,并且将总是指整个表达式。在上面的例子中,调用[code]result."
"get_string(1)[/code]会得到[code]0123[/code]。\n"
"这个版本的RegEx也支持命名的捕获组,名称可以用来检索结果。如果两个或更多的组有"
"相同的名称,那么这个名称将只指第一个有匹配的组。\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)\")\n"
"var result = regex.search(\"the number is x2f\")\n"
"if result:\n"
"    print(result.get_string(\"digit\")) # 这会输出 2f\n"
"[/codeblock]\n"
"如果你需要处理多个结果,[method search_all]会生成所有不重叠的结果的列表。为了"
"方便起见,这可以和一个[code]for[/code]循环结合起来。\n"
"[codeblock]\n"
"for result in regex.search_all(\"d01, d03, d0c, x3f and x42\"):\n"
"    print(result.get_string(\"digit\"))\n"
"# 这会输出 01 03 0 3f 42\n"
"[/codeblock]\n"
"[b]使用RegEx分割字符串的例子:[/b]\n"
"[codeblock]\n"
"var regex = RegEx.new()\n"
"regex.compile(\"\\\\S+\") # Negated whitespace character class.\n"
"var results = []\n"
"for match in regex.search_all(\"One  Two \\n\\tThree\"):\n"
"    results.push_back(match.get_string())\n"
"# `results`数组现在包含 \"One\", \"Two\", \"Three\".\n"
"[/codeblock]\n"
"[b]注意:[/b] Godot的regex实现是基于[url=https://www.pcre.org/]PCRE2[/url] "
"库。你可以查看完整的表达式参考[url=https://www.pcre.org/current/doc/html/"
"pcre2pattern.html]这里[/url]。\n"
"[b]提示:[/b] 你可以使用[url=https://regexr.com/]Regexr[/url]来在线测试正则表"
"达式。"

#: modules/regex/doc_classes/RegEx.xml:55
msgid ""
"This method resets the state of the object, as if it was freshly created. "
"Namely, it unassigns the regular expression of this object."
msgstr ""
"这个方法重置了对象的状态,就像它是新创建的一样。也就是说,它取消了这个对象的"
"正则表达式的赋值。"

#: modules/regex/doc_classes/RegEx.xml:62
msgid ""
"Compiles and assign the search pattern to use. Returns [constant OK] if the "
"compilation is successful. If an error is encountered, details are printed "
"to standard output and an error is returned."
msgstr ""
"编译并指定要使用的搜索模式。如果编译成功,返回[constant OK]。如果遇到错误,细"
"节将被打印到标准输出,并返回一个错误。"

#: modules/regex/doc_classes/RegEx.xml:68
msgid "Returns the number of capturing groups in compiled pattern."
msgstr "返回编译模式中捕获组的数量。"

#: modules/regex/doc_classes/RegEx.xml:74
msgid ""
"Returns an array of names of named capturing groups in the compiled pattern. "
"They are ordered by appearance."
msgstr ""
"返回一个数组,该数组是编译模式中命名的捕获组的名称。它们是按外观排序的。"

#: modules/regex/doc_classes/RegEx.xml:80
msgid "Returns the original search pattern that was compiled."
msgstr "返回被编译的原始搜索模式。"

#: modules/regex/doc_classes/RegEx.xml:86
msgid "Returns whether this object has a valid search pattern assigned."
msgstr "返回此对象是否分配了有效的搜索模式。"

#: modules/regex/doc_classes/RegEx.xml:95
msgid ""
"Searches the text for the compiled pattern. Returns a [RegExMatch] container "
"of the first matching result if found, otherwise [code]null[/code]. The "
"region to search within can be specified without modifying where the start "
"and end anchor would be."
msgstr ""
"在文本中搜索编译后的模式。如果找到,返回第一个匹配结果的[RegExMatch]容器,否"
"则返回[code]null[/code]。可以指定要搜索的区域,而不需要修改开始和结束锚点的位"
"置。"

#: modules/regex/doc_classes/RegEx.xml:104
msgid ""
"Searches the text for the compiled pattern. Returns an array of [RegExMatch] "
"containers for each non-overlapping result. If no results were found, an "
"empty array is returned instead. The region to search within can be "
"specified without modifying where the start and end anchor would be."
msgstr ""
"在文本中搜索编译过的模式。为每个不重叠的结果返回一个[RegExMatch]容器数组。如"
"果没有发现任何结果,则返回一个空数组。可以指定要搜索的区域,而不需要修改开始"
"和结束锚点的位置。"

#: modules/regex/doc_classes/RegEx.xml:115
msgid ""
"Searches the text for the compiled pattern and replaces it with the "
"specified string. Escapes and backreferences such as [code]$1[/code] and "
"[code]$name[/code] are expanded and resolved. By default, only the first "
"instance is replaced, but it can be changed for all instances (global "
"replacement). The region to search within can be specified without modifying "
"where the start and end anchor would be."
msgstr ""
"搜索文本中的编译模式,并将其替换为指定的字符串。诸如[code]$1[/code]和"
"[code]$name[/code]等转义和反向引用会被展开和解决。默认情况下,只有第一个实例"
"被替换,但可以对所有实例进行修改(全局替换)。可以指定要搜索的区域,而不需要"
"修改开始和结束锚的位置。"

#: modules/regex/doc_classes/RegExMatch.xml:4
msgid "Contains the results of a [RegEx] search."
msgstr "包含[RegEx]搜索的结果。"

#: modules/regex/doc_classes/RegExMatch.xml:7
msgid ""
"Contains the results of a single [RegEx] match returned by [method RegEx."
"search] and [method RegEx.search_all]. It can be used to find the position "
"and range of the match and its capturing groups, and it can extract its "
"substring for you."
msgstr ""
"包含由[method RegEx.search]和[method RegEx.search_all]返回的单个[RegEx]匹配结"
"果。它可以用来查找匹配的位置和范围以及它的捕获组,并且可以提取其子字符串。"

#: modules/regex/doc_classes/RegExMatch.xml:16
msgid ""
"Returns the end position of the match within the source string. The end "
"position of capturing groups can be retrieved by providing its group number "
"as an integer or its string name (if it's a named group). The default value "
"of 0 refers to the whole pattern.\n"
"Returns -1 if the group did not match or doesn't exist."
msgstr ""
"返回源字符串中匹配的结束位置。捕获组的结束位置可以通过提供其组号的整数或其字"
"符串名称(如果它是一个命名组)来检索。默认值为0,指的是整个表达式。\n"
"如果该组没有匹配或不存在,则返回-1。"

#: modules/regex/doc_classes/RegExMatch.xml:23
msgid "Returns the number of capturing groups."
msgstr "返回捕获组的数量。"

#: modules/regex/doc_classes/RegExMatch.xml:30
msgid ""
"Returns the starting position of the match within the source string. The "
"starting position of capturing groups can be retrieved by providing its "
"group number as an integer or its string name (if it's a named group). The "
"default value of 0 refers to the whole pattern.\n"
"Returns -1 if the group did not match or doesn't exist."
msgstr ""
"返回源字符串中匹配的起始位置。捕获组的起始位置可以通过提供它的组号作为一个整"
"数或它的字符串名称(如果它是一个命名组)来检索。默认值为0,指的是整个表达"
"式。\n"
"如果组没有匹配或不存在,返回-1。"

#: modules/regex/doc_classes/RegExMatch.xml:38
msgid ""
"Returns the substring of the match from the source string. Capturing groups "
"can be retrieved by providing its group number as an integer or its string "
"name (if it's a named group). The default value of 0 refers to the whole "
"pattern.\n"
"Returns an empty string if the group did not match or doesn't exist."
msgstr ""
"返回源字符串中匹配的子串。捕获组可以通过提供它的组号作为整数或它的字符串名称"
"(如果它是一个命名组)来检索。默认值为0,指的是整个表达式。\n"
"如果组没有匹配或不存在,则返回一个空字符串。"

#: modules/regex/doc_classes/RegExMatch.xml:45
msgid ""
"A dictionary of named groups and its corresponding group number. Only groups "
"that were matched are included. If multiple groups have the same name, that "
"name would refer to the first matching one."
msgstr ""
"一个命名组的字典和它相应的组号。只有被匹配的组才被包括在内。如果多个组有相同"
"的名称,该名称将指第一个匹配的组。"

#: modules/regex/doc_classes/RegExMatch.xml:48
msgid "An [Array] of the match and its capturing groups."
msgstr "匹配项及其捕获组的 [Array]。"

#: modules/regex/doc_classes/RegExMatch.xml:51
msgid ""
"The source string used with the search pattern to find this matching result."
msgstr "与搜索模式一起使用的源字符串,以找到这个匹配结果。"

#: doc/classes/RemoteTransform.xml:4
#, fuzzy
msgid ""
"RemoteTransform pushes its own [Transform] to another [Spatial] derived Node "
"in the scene."
msgstr ""
"RemoteTransform3D 将自己的 [Transform] 推送到场景中的另一个 [Node3D] 派生节"
"点。"

#: doc/classes/RemoteTransform.xml:7
#, fuzzy
msgid ""
"RemoteTransform pushes its own [Transform] to another [Spatial] derived Node "
"(called the remote node) in the scene.\n"
"It can be set to update another Node's position, rotation and/or scale. It "
"can use either global or local coordinates."
msgstr ""
"RemoteTransform3D将自己的[Transform]推送到场景中另一个[Node3D]派生的节点(称"
"为远程节点)。\n"
"它可以被设置为更新另一个Node的位置、旋转和/或比例。它可以使用全局坐标或局部坐"
"标。"

#: doc/classes/RemoteTransform.xml:16
#, fuzzy
msgid ""
"[RemoteTransform] caches the remote node. It may not notice if the remote "
"node disappears; [method force_update_cache] forces it to update the cache "
"again."
msgstr ""
"[RemoteTransform2D] 缓存了远程节点。如果远程节点消失了,它可能不会通知;"
"[method force_update_cache] 强制它再次更新缓存。"

#: doc/classes/RemoteTransform.xml:22
#, fuzzy
msgid ""
"The [NodePath] to the remote node, relative to the RemoteTransform's "
"position in the scene."
msgstr "到远程节点的[NodePath],相对于远程Transform2D在场景中的位置。"

#: doc/classes/RemoteTransform.xml:25 doc/classes/RemoteTransform2D.xml:25
msgid "If [code]true[/code], the remote node's position is updated."
msgstr "如果 [code]true[/code],则更新远程节点的位置。"

#: doc/classes/RemoteTransform.xml:28 doc/classes/RemoteTransform2D.xml:28
msgid "If [code]true[/code], the remote node's rotation is updated."
msgstr "如果 [code]true[/code],则更新远程节点的旋转。"

#: doc/classes/RemoteTransform.xml:31 doc/classes/RemoteTransform2D.xml:31
msgid "If [code]true[/code], the remote node's scale is updated."
msgstr "如果 [code]true[/code],则更新远程节点的比例。"

#: doc/classes/RemoteTransform.xml:34 doc/classes/RemoteTransform2D.xml:34
msgid ""
"If [code]true[/code], global coordinates are used. If [code]false[/code], "
"local coordinates are used."
msgstr ""
"如果 [code]true[/code],则使用全局坐标。如果 [code]false[/code],则使用本地坐"
"标。"

#: doc/classes/RemoteTransform2D.xml:4
msgid ""
"RemoteTransform2D pushes its own [Transform2D] to another [CanvasItem] "
"derived Node in the scene."
msgstr ""
"RemoteTransform2D将自己的[Transform2D]推送到场景中另一个[CanvasItem]派生节"
"点。"

#: doc/classes/RemoteTransform2D.xml:7
msgid ""
"RemoteTransform2D pushes its own [Transform2D] to another [CanvasItem] "
"derived Node (called the remote node) in the scene.\n"
"It can be set to update another Node's position, rotation and/or scale. It "
"can use either global or local coordinates."
msgstr ""
"RemoteTransform2D 将自己的 [Transform2D] 推送到场景中另一个 [CanvasItem] 派生"
"的节点(称为远程节点)。\n"
"它可以被设置为更新另一个Node的位置、旋转或比例。它可以使用全局坐标或局部坐"
"标。"

#: doc/classes/RemoteTransform2D.xml:16
msgid ""
"[RemoteTransform2D] caches the remote node. It may not notice if the remote "
"node disappears; [method force_update_cache] forces it to update the cache "
"again."
msgstr ""
"[RemoteTransform2D] 缓存了远程节点。如果远程节点消失了,它可能不会通知;"
"[method force_update_cache] 强制它再次更新缓存。"

#: doc/classes/RemoteTransform2D.xml:22
msgid ""
"The [NodePath] to the remote node, relative to the RemoteTransform2D's "
"position in the scene."
msgstr "到远程节点的[NodePath],相对于远程Transform2D在场景中的位置。"

#: doc/classes/Resource.xml:4
msgid "Base class for all resources."
msgstr "所有资源的基类。"

#: doc/classes/Resource.xml:7
#, fuzzy
msgid ""
"Resource is the base class for all Godot-specific resource types, serving "
"primarily as data containers. Since they inherit from [Reference], resources "
"are reference-counted and freed when no longer in use. They are also cached "
"once loaded from disk, so that any further attempts to load a resource from "
"a given path will return the same reference (all this in contrast to a "
"[Node], which is not reference-counted and can be instanced from disk as "
"many times as desired). Resources can be saved externally on disk or bundled "
"into another object, such as a [Node] or another resource.\n"
"[b]Note:[/b] In C#, resources will not be freed instantly after they are no "
"longer in use. Instead, garbage collection will run periodically and will "
"free resources that are no longer in use. This means that unused resources "
"will linger on for a while before being removed."
msgstr ""
"资源是所有Godot特定资源类型的基类,主要作为数据容器。与[Object]不同的是,它们"
"被引用计数,并在不再使用时被释放。一旦从磁盘加载,它们也会被缓存,因此任何从"
"给定路径加载资源的尝试都会返回相同的引用(这与[Node]相反,[Node]没有引用计"
"数,可以根据需要多次从磁盘实例化)。资源可以从外部保存在磁盘上,也可以捆绑在"
"另一个对象中,如[Node]或另一个资源。"

#: doc/classes/Resource.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/step_by_step/resources."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/step_by_step/"
"resources.html"

#: doc/classes/Resource.xml:18
msgid ""
"Virtual function which can be overridden to customize the behavior value of "
"[method setup_local_to_scene]."
msgstr "可以重写的虚拟函数,用于自定义 [method setup_local_to_scene] 的行为值。"

#: doc/classes/Resource.xml:25
#, fuzzy
msgid ""
"Duplicates the resource, returning a new resource with the exported members "
"copied. [b]Note:[/b] To duplicate the resource the constructor is called "
"without arguments. This method will error when the constructor doesn't have "
"default values.\n"
"By default, sub-resources are shared between resource copies for efficiency. "
"This can be changed by passing [code]true[/code] to the [code]subresources[/"
"code] argument which will copy the subresources.\n"
"[b]Note:[/b] If [code]subresources[/code] is [code]true[/code], this method "
"will only perform a shallow copy. Nested resources within subresources will "
"not be duplicated and will still be shared.\n"
"[b]Note:[/b] When duplicating a resource, only [code]export[/code]ed "
"properties are copied. Other properties will be set to their default value "
"in the new resource."
msgstr ""
"复制资源,返回一个新的资源。默认情况下,为了提高效率,子资源会在资源副本之间"
"共享。这可以通过向[code]subresources[/code]参数传递[code]true[/code]来改变,"
"它将复制子资源。\n"
"[b]注意:[/b]如果[code]subresources[/code]是[code]true[/code],这个方法将只执"
"行一个浅层拷贝。嵌套在子资源中的资源将不会被复制,仍将被共享。"

#: doc/classes/Resource.xml:34
msgid ""
"Emits the [signal changed] signal.\n"
"If external objects which depend on this resource should be updated, this "
"method must be called manually whenever the state of this resource has "
"changed (such as modification of properties).\n"
"The method is equivalent to:\n"
"[codeblock]\n"
"emit_signal(\"changed\")\n"
"[/codeblock]\n"
"[b]Note:[/b] This method is called automatically for built-in resources."
msgstr ""

#: doc/classes/Resource.xml:46
msgid ""
"If [member resource_local_to_scene] is enabled and the resource was loaded "
"from a [PackedScene] instantiation, returns the local scene where this "
"resource's unique copy is in use. Otherwise, returns [code]null[/code]."
msgstr ""
"如果[member resource_local_to_scene]被启用,并且该资源是从一个[PackedScene]实"
"例中加载的,则返回该资源的唯一副本正在使用的本地场景。否则,返回[code]null[/"
"code]。"

#: doc/classes/Resource.xml:52
#, fuzzy
msgid ""
"Returns the RID of the resource (or an empty RID). Many resources (such as "
"[Texture], [Mesh], etc) are high-level abstractions of resources stored in a "
"server, so this function will return the original RID."
msgstr ""
"返回资源的RID(或者一个空的RID)。许多资源(如[Texture2D]、[Mesh]等)是存储在"
"服务器中的资源的高级抽象,所以这个函数将返回原始的RID。"

#: doc/classes/Resource.xml:58
msgid ""
"This method is called when a resource with [member resource_local_to_scene] "
"enabled is loaded from a [PackedScene] instantiation. Its behavior can be "
"customized by overriding [method _setup_local_to_scene] from script.\n"
"For most resources, this method performs no base logic. [ViewportTexture] "
"performs custom logic to properly set the proxy texture and flags in the "
"local viewport."
msgstr ""
"当启用了[member resource_local_to_scene]的资源从[PackedScene]实例化中加载时,"
"这个方法会被调用。它的行为可以通过覆盖脚本中的[method _setup_local_to_scene]"
"进行定制。\n"
"对于大多数资源,该方法不执行任何基本逻辑。[ViewportTexture]执行自定义逻辑以正"
"确设置本地视口中的代理纹理和标志。"

#: doc/classes/Resource.xml:66
msgid ""
"Sets the path of the resource, potentially overriding an existing cache "
"entry for this path. This differs from setting [member resource_path], as "
"the latter would error out if another resource was already cached for the "
"given path."
msgstr ""
"设置资源的路径,可能会覆盖这个路径的现有缓存条目。这与设置[member "
"resource_path]不同,因为后者会在其他资源已经被缓存在给定的路径上时出错。"

#: doc/classes/Resource.xml:72
msgid ""
"If [code]true[/code], the resource will be made unique in each instance of "
"its local scene. It can thus be modified in a scene instance without "
"impacting other instances of that same scene."
msgstr ""
"如果 [code]true[/code],则资源在其本地场景的每个实例中都将是唯一的。因此,它"
"可以在场景实例中进行修改,而不会影响同一场景的其他实例。"

#: doc/classes/Resource.xml:75
msgid ""
"The name of the resource. This is an optional identifier. If [member "
"resource_name] is not empty, its value will be displayed to represent the "
"current resource in the editor inspector. For built-in scripts, the [member "
"resource_name] will be displayed as the tab name in the script editor."
msgstr ""

#: doc/classes/Resource.xml:78
msgid ""
"The path to the resource. In case it has its own file, it will return its "
"filepath. If it's tied to the scene, it will return the scene's path, "
"followed by the resource's index."
msgstr ""
"资源的路径。如果它有自己的文件,它将返回其文件路径。如果它是与场景绑定的,它"
"将返回场景的路径和资源的索引。"

#: doc/classes/Resource.xml:84
msgid ""
"Emitted whenever the resource changes.\n"
"[b]Note:[/b] This signal is not emitted automatically for custom resources, "
"which means that you need to create a setter and emit the signal yourself."
msgstr ""

#: doc/classes/ResourceFormatLoader.xml:4
msgid "Loads a specific resource type from a file."
msgstr "从文件中加载特定资源类型。"

#: doc/classes/ResourceFormatLoader.xml:7
#, fuzzy
msgid ""
"Godot loads resources in the editor or in exported games using "
"ResourceFormatLoaders. They are queried automatically via the "
"[ResourceLoader] singleton, or when a resource with internal dependencies is "
"loaded. Each file type may load as a different resource type, so multiple "
"ResourceFormatLoaders are registered in the engine.\n"
"Extending this class allows you to define your own loader. Be sure to "
"respect the documented return types and values. You should give it a global "
"class name with [code]class_name[/code] for it to be registered. Like built-"
"in ResourceFormatLoaders, it will be called automatically when loading "
"resources of its handled type(s). You may also implement a "
"[ResourceFormatSaver].\n"
"[b]Note:[/b] You can also extend [EditorImportPlugin] if the resource type "
"you need exists but Godot is unable to load its format. Choosing one way "
"over another depends on if the format is suitable or not for the final "
"exported game. For example, it's better to import [code].png[/code] textures "
"as [code].stex[/code] ([StreamTexture]) first, so they can be loaded with "
"better efficiency on the graphics card."
msgstr ""
"Godot使用ResourceFormatLoaders在编辑器或导出的游戏中加载资源。它们通过"
"[ResourceLoader]单例自动查询,或者在加载具有内部依赖性的资源时被查询。每个文"
"件类型可以作为不同的资源类型加载,因此在引擎中注册了多个"
"ResourceFormatLoaders。\n"
"扩展这个类允许你定义你自己的加载器。请确保遵照文档中的返回类型和值进行处理。"
"你应该给它一个带有[code]class_name[/code]的全局类名,这样它才能被注册。像内置"
"的ResourceFormatLoaders一样,它将在加载其处理的类型的资源时被自动调用。你也可"
"以实现一个[ResourceFormatSaver]。\n"
"[b]注意:[/b] 如果你需要的资源类型存在,但Godot无法加载其格式,你也可以扩展"
"[EditorImportPlugin]。选择一种方式而不是另一种方式取决于该格式是否适合于最终"
"导出的游戏。例如,最好先把[code].png[/code]纹理导入为[code].stex[/code]"
"([StreamTexture2D]),这样它们在显卡上的加载效率会更好。"

#: doc/classes/ResourceFormatLoader.xml:19
msgid ""
"If implemented, gets the dependencies of a given resource. If "
"[code]add_types[/code] is [code]true[/code], paths should be appended "
"[code]::TypeName[/code], where [code]TypeName[/code] is the class name of "
"the dependency.\n"
"[b]Note:[/b] Custom resource types defined by scripts aren't known by the "
"[ClassDB], so you might just return [code]\"Resource\"[/code] for them."
msgstr ""
"如果实现,则获取给定资源的依赖项。如果 [code]add_types[/code] 是 [code]true[/"
"code],路径应该附加 [code]::TypeName[/code],其中 [code]TypeName[/code] 是依"
"赖的类名。\n"
"[b]注意:[/b] [ClassDB] 不知道脚本定义的自定义资源类型,因此您可能只为它们返"
"回 [code]\"Resource\"[/code]。"

#: doc/classes/ResourceFormatLoader.xml:26
msgid "Gets the list of extensions for files this loader is able to read."
msgstr "获取该加载器能够读取的文件的扩展名列表。"

#: doc/classes/ResourceFormatLoader.xml:33
msgid ""
"Gets the class name of the resource associated with the given path. If the "
"loader cannot handle it, it should return [code]\"\"[/code].\n"
"[b]Note:[/b] Custom resource types defined by scripts aren't known by the "
"[ClassDB], so you might just return [code]\"Resource\"[/code] for them."
msgstr ""
"获取与给定路径相关的资源的类名。如果加载器不能处理它,它应该返回[code]\"\"[/"
"code]。\n"
"[b]注意:[/b] [ClassDB] 不知道脚本定义的自定义资源类型,因此您可能只为它们返"
"回 [code]\"Resource\"[/code]。"

#: doc/classes/ResourceFormatLoader.xml:41
msgid ""
"Tells which resource class this loader can load.\n"
"[b]Note:[/b] Custom resource types defined by scripts aren't known by the "
"[ClassDB], so you might just handle [code]\"Resource\"[/code] for them."
msgstr ""
"说明这个加载器可以加载哪个资源类。\n"
"[b]注意:[/b] [ClassDB] 不知道脚本定义的自定义资源类型,因此您可以只为它们处"
"理 [code]\"Resource\"[/code]。"

#: doc/classes/ResourceFormatLoader.xml:50
msgid ""
"Loads a resource when the engine finds this loader to be compatible. If the "
"loaded resource is the result of an import, [code]original_path[/code] will "
"target the source file. Returns a [Resource] object on success, or an [enum "
"Error] constant in case of failure."
msgstr ""
"当引擎发现这个加载器是兼容的,就会加载一个资源。如果加载的资源是导入的结果,"
"[code]original_path[/code]将针对源文件。成功时返回一个[Resource]对象,失败时"
"返回一个[enum Error]常量。"

#: doc/classes/ResourceFormatLoader.xml:58
msgid ""
"If implemented, renames dependencies within the given resource and saves it. "
"[code]renames[/code] is a dictionary [code]{ String => String }[/code] "
"mapping old dependency paths to new paths.\n"
"Returns [constant OK] on success, or an [enum Error] constant in case of "
"failure."
msgstr ""
"如果实现,重命名给定资源中的依赖项并保存它。 [code]renames[/code] 是一个将旧"
"的依赖路径映射到新的路径的 [code]{ String => String }[/code]的字典 。\n"
"成功时返回 [constant OK],失败时返回 [enum Error] 常量。"

#: doc/classes/ResourceFormatSaver.xml:4
msgid "Saves a specific resource type to a file."
msgstr "将特定资源类型保存到文件。"

#: doc/classes/ResourceFormatSaver.xml:7
msgid ""
"The engine can save resources when you do it from the editor, or when you "
"use the [ResourceSaver] singleton. This is accomplished thanks to multiple "
"[ResourceFormatSaver]s, each handling its own format and called "
"automatically by the engine.\n"
"By default, Godot saves resources as [code].tres[/code] (text-based), [code]."
"res[/code] (binary) or another built-in format, but you can choose to create "
"your own format by extending this class. Be sure to respect the documented "
"return types and values. You should give it a global class name with "
"[code]class_name[/code] for it to be registered. Like built-in "
"ResourceFormatSavers, it will be called automatically when saving resources "
"of its recognized type(s). You may also implement a [ResourceFormatLoader]."
msgstr ""
"当您从编辑器执行此操作或使用 [ResourceSaver] 单例时,引擎可以节省资源。这要归"
"功于多个 [ResourceFormatSaver],每个都处理自己的格式并由引擎自动调用。\n"
"默认情况下,Godot 将资源保存为 [code].tres[/code](基于文本)、[code].res[/"
"code](二进制)或其他内置格式,但您可以选择通过扩展这个类来创建自己的格式。请"
"务必遵守记录的返回类型和值。你应该给它一个全局类名 [code]class_name[/code] 以"
"便它被注册。与内置的 ResourceFormatSavers 一样,它会在保存其识别类型的资源时"
"自动调用。你也可以实现一个 [ResourceFormatLoader]。"

#: doc/classes/ResourceFormatSaver.xml:17
msgid ""
"Returns the list of extensions available for saving the resource object, "
"provided it is recognized (see [method recognize])."
msgstr ""
"返回可用于保存资源对象的扩展列表,前提是它被识别(见[method recognize])。"

#: doc/classes/ResourceFormatSaver.xml:24
msgid "Returns whether the given resource object can be saved by this saver."
msgstr "返回此保存程序能否保存给定的资源对象。"

#: doc/classes/ResourceFormatSaver.xml:33
msgid ""
"Saves the given resource object to a file at the target [code]path[/code]. "
"[code]flags[/code] is a bitmask composed with [enum ResourceSaver."
"SaverFlags] constants.\n"
"Returns [constant OK] on success, or an [enum Error] constant in case of "
"failure."
msgstr ""
"将给定的资源对象保存到目标[code]path[/code]处的文件。[code]flags[/code]是一个"
"由[enum ResourceSaver.SaverFlags]常量组成的位掩码。\n"
"成功时返回[constant OK],失败时返回[enum Error]常量。"

#: doc/classes/ResourceImporter.xml:4
#, fuzzy
msgid "Base class for the implementation of core resource importers."
msgstr "所有 3D 形状资源的基类。"

#: doc/classes/ResourceImporter.xml:7
msgid ""
"This is the base class for the resource importers implemented in core. To "
"implement your own resource importers using editor plugins, see "
"[EditorImportPlugin]."
msgstr ""

#: doc/classes/ResourceImporter.xml:16
#, fuzzy
msgid "The default import order."
msgstr "默认文本颜色。"

#: doc/classes/ResourceImporter.xml:19
msgid ""
"The import order for scenes, which ensures scenes are imported [i]after[/i] "
"all other core resources such as textures. Custom importers should generally "
"have an import order lower than [code]100[/code] to avoid issues when "
"importing scenes that rely on custom resources."
msgstr ""

#: doc/classes/ResourceInteractiveLoader.xml:4
#, fuzzy
msgid "Interactive [Resource] loader."
msgstr "要加载的[Resource]资源。"

#: doc/classes/ResourceInteractiveLoader.xml:7
msgid ""
"Interactive [Resource] loader. This object is returned by [ResourceLoader] "
"when performing an interactive load. It allows loading resources with high "
"granularity, which makes it mainly useful for displaying loading bars or "
"percentages."
msgstr ""

#: doc/classes/ResourceInteractiveLoader.xml:15
#, fuzzy
msgid ""
"Returns the loaded resource if the load operation completed successfully, "
"[code]null[/code] otherwise."
msgstr ""
"如果域正在被最终确定,返回 [code]true[/code] ,否则返回 [code]false[/code] 。"

#: doc/classes/ResourceInteractiveLoader.xml:21
#, fuzzy
msgid ""
"Returns the load stage. The total amount of stages can be queried with "
"[method get_stage_count]."
msgstr ""
"如果已经使用 [method set_popup] 设置了节点实例,则返回 [Popup] 节点实例。"

#: doc/classes/ResourceInteractiveLoader.xml:27
msgid ""
"Returns the total amount of stages (calls to [method poll]) needed to "
"completely load this resource."
msgstr ""

#: doc/classes/ResourceInteractiveLoader.xml:33
msgid ""
"Polls the loading operation, i.e. loads a data chunk up to the next stage.\n"
"Returns [constant OK] if the poll is successful but the load operation has "
"not finished yet (intermediate stage). This means [method poll] will have to "
"be called again until the last stage is completed.\n"
"Returns [constant ERR_FILE_EOF] if the load operation has completed "
"successfully. The loaded resource can be obtained by calling [method "
"get_resource].\n"
"Returns another [enum Error] code if the poll has failed."
msgstr ""

#: doc/classes/ResourceInteractiveLoader.xml:42
msgid ""
"Polls the loading operation successively until the resource is completely "
"loaded or a [method poll] fails.\n"
"Returns [constant ERR_FILE_EOF] if the load operation has completed "
"successfully. The loaded resource can be obtained by calling [method "
"get_resource].\n"
"Returns another [enum Error] code if a poll has failed, aborting the "
"operation."
msgstr ""

#: doc/classes/ResourceLoader.xml:4
msgid "Singleton used to load resource files."
msgstr "用于加载资源文件的单例。"

#: doc/classes/ResourceLoader.xml:7
#, fuzzy
msgid ""
"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."
msgstr ""
"用于从文件系统加载资源文件的单例。\n"
"它使用引擎中注册的许多[ResourceFormatLoader]类(无论是内置的还是来自插件的)"
"将文件加载到内存中,并将其转换为引擎可以使用的格式。\n"
"GDScript有一个简化的[method @GDScript.load]内置方法,可以在大多数情况下使用,"
"把[ResourceLoader]的使用留给更高级的场景。"

#: doc/classes/ResourceLoader.xml:19
msgid ""
"Returns whether a recognized resource exists for the given [code]path[/"
"code].\n"
"An optional [code]type_hint[/code] can be used to further specify the "
"[Resource] type that should be handled by the [ResourceFormatLoader]."
msgstr ""
"返回给定的[code]path[/code]是否存在已识别的资源。\n"
"一个可选的[code]type_hint[/code]可以用来进一步指定[ResourceFormatLoader]应该"
"处理的[Resource]类型。"

#: doc/classes/ResourceLoader.xml:27
msgid ""
"Returns the dependencies for the resource at the given [code]path[/code]."
msgstr "返回给定[code]path[/code]处资源的依赖关系。"

#: doc/classes/ResourceLoader.xml:34
msgid "Returns the list of recognized extensions for a resource type."
msgstr "返回资源类型的已识别扩展名列表。"

#: doc/classes/ResourceLoader.xml:41
msgid ""
"[i]Deprecated method.[/i] Use [method has_cached] or [method exists] instead."
msgstr ""

#: doc/classes/ResourceLoader.xml:48
#, fuzzy
msgid ""
"Returns whether a cached resource is available for the given [code]path[/"
"code].\n"
"Once a resource has been loaded by the engine, it is cached in memory for "
"faster access, and future calls to the [method load] or [method "
"load_interactive] methods will use the cached version. The cached resource "
"can be overridden by using [method Resource.take_over_path] on a new "
"resource for that same path."
msgstr ""
"返回给定[code]path[/code]的缓存资源是否可用。\n"
"一旦一个资源被引擎加载,它就会被缓存在内存中,以便更快地访问,未来对[method "
"load]方法的调用将使用缓存的版本。缓存的资源可以通过对同一路径的新资源使用"
"[method Resource.take_over_path]来覆盖。"

#: doc/classes/ResourceLoader.xml:58
#, fuzzy
msgid ""
"Loads a resource at the given [code]path[/code], caching the result for "
"further access.\n"
"The registered [ResourceFormatLoader]s are queried sequentially to find the "
"first one which can handle the file's extension, and then attempt loading. "
"If loading fails, the remaining ResourceFormatLoaders are also attempted.\n"
"An optional [code]type_hint[/code] can be used to further specify the "
"[Resource] type that should be handled by the [ResourceFormatLoader]. "
"Anything that inherits from [Resource] can be used as a type hint, for "
"example [Image].\n"
"If [code]no_cache[/code] is [code]true[/code], the resource cache will be "
"bypassed and the resource will be loaded anew. Otherwise, the cached "
"resource will be returned if it exists.\n"
"Returns an empty resource if no [ResourceFormatLoader] could handle the "
"file.\n"
"GDScript has a simplified [method @GDScript.load] built-in method which can "
"be used in most situations, leaving the use of [ResourceLoader] for more "
"advanced scenarios."
msgstr ""
"在给定的[code]path[/code]上加载一个资源,缓存结果以便进一步访问。\n"
"依次查询注册的[ResourceFormatLoader],找到第一个可以处理该文件扩展名的,然后"
"尝试加载。如果加载失败,其余的ResourceFormatLoaders也会被尝试。\n"
"一个可选的[code]type_hint[/code]可以用来进一步指定应该由"
"[ResourceFormatLoader]处理的[Resource]类型。\n"
"如果[code]no_cache[/code]是[code]true[/code],资源缓存将被绕过,资源将被重新"
"加载。否则,如果缓存的资源存在,将被返回。\n"
"如果没有ResourceFormatLoader可以处理该文件,则返回一个空资源。"

#: doc/classes/ResourceLoader.xml:71
msgid ""
"Starts loading a resource interactively. The returned "
"[ResourceInteractiveLoader] object allows to load with high granularity, "
"calling its [method ResourceInteractiveLoader.poll] method successively to "
"load chunks.\n"
"An optional [code]type_hint[/code] can be used to further specify the "
"[Resource] type that should be handled by the [ResourceFormatLoader]. "
"Anything that inherits from [Resource] can be used as a type hint, for "
"example [Image]."
msgstr ""

#: doc/classes/ResourceLoader.xml:79
msgid ""
"Changes the behavior on missing sub-resources. The default behavior is to "
"abort loading."
msgstr "更改缺少子资源时的行为。默认行为是中止加载。"

#: doc/classes/ResourcePreloader.xml:4
msgid "Resource Preloader Node."
msgstr "资源预加载器节点。"

#: doc/classes/ResourcePreloader.xml:7
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 "
"preloader.\n"
"GDScript has a simplified [method @GDScript.preload] built-in method which "
"can be used in most situations, leaving the use of [ResourcePreloader] for "
"more advanced scenarios."
msgstr ""
"该节点用于预加载场景内的子资源,因此当场景加载时,所有资源都可以使用并且可以"
"从预加载器中检索。\n"
"GDScript 有一个简化的 [method @GDScript.preload] 内置方法,可以在大多数情况下"
"使用,让 [ResourcePreloader] 用于更高级的场景。"

#: doc/classes/ResourcePreloader.xml:18
msgid ""
"Adds a resource to the preloader with the given [code]name[/code]. If a "
"resource with the given [code]name[/code] already exists, the new resource "
"will be renamed to \"[code]name[/code] N\" where N is an incrementing number "
"starting from 2."
msgstr ""
"将一个资源添加到预加载器中,并给出[code]name[/code]。如果给定的[code]name[/"
"code]的资源已经存在,新的资源将被重命名为\"[code]name[/code] N\",其中N是一个"
"从2开始的递增数字。"

#: doc/classes/ResourcePreloader.xml:25
msgid "Returns the resource associated to [code]name[/code]."
msgstr "返回与 [code]name[/code] 关联的资源。"

#: doc/classes/ResourcePreloader.xml:31
msgid "Returns the list of resources inside the preloader."
msgstr "返回预加载器内的资源列表。"

#: doc/classes/ResourcePreloader.xml:38
msgid ""
"Returns [code]true[/code] if the preloader contains a resource associated to "
"[code]name[/code]."
msgstr ""
"如果预加载器包含一个与[code]name[/code]相关的资源,则返回[code]true[/code]。"

#: doc/classes/ResourcePreloader.xml:45
msgid ""
"Removes the resource associated to [code]name[/code] from the preloader."
msgstr "从预加载器中删除与[code]name[/code]有关的资源。"

#: doc/classes/ResourcePreloader.xml:53
msgid ""
"Renames a resource inside the preloader from [code]name[/code] to "
"[code]newname[/code]."
msgstr "将预加载器中的资源从[code]name[/code]重命名为[code]newname[/code]。"

#: doc/classes/ResourceSaver.xml:4
msgid "Singleton for saving Godot-specific resource types."
msgstr "用于保存Godot特定资源类型的单例。"

#: doc/classes/ResourceSaver.xml:7
msgid ""
"Singleton for saving Godot-specific resource types to the filesystem.\n"
"It uses the many [ResourceFormatSaver] classes registered in the engine "
"(either built-in or from a plugin) to save engine-specific resource data to "
"text-based (e.g. [code].tres[/code] or [code].tscn[/code]) or binary files "
"(e.g. [code].res[/code] or [code].scn[/code])."
msgstr ""
"用于将Godot特定的资源类型保存到文件系统的单例。\n"
"它使用在引擎中注册的许多[ResourceFormatSaver]类(无论是内置的还是来自插件"
"的),将引擎特定的资源数据保存到基于文本(如[code].res[/code]或[code].tscn[/"
"code])或二进制文件(如[code].res[/code]或[code].scn[/code])。"

#: doc/classes/ResourceSaver.xml:17
msgid ""
"Returns the list of extensions available for saving a resource of a given "
"type."
msgstr "返回可用于保存给定类型的资源的扩展列表。"

#: doc/classes/ResourceSaver.xml:26
msgid ""
"Saves a resource to disk to the given path, using a [ResourceFormatSaver] "
"that recognizes the resource object.\n"
"The [code]flags[/code] bitmask can be specified to customize the save "
"behavior.\n"
"Returns [constant OK] on success."
msgstr ""
"使用识别资源对象的[ResourceFormatSaver]将资源保存到给定路径的磁盘。\n"
"可以指定 [code] flags [/code] 位掩码来自定义保存行为。\n"
"成功后返回[constant OK]。"

#: doc/classes/ResourceSaver.xml:34
msgid "Save the resource with a path relative to the scene which uses it."
msgstr "用相对于使用该资源的场景的路径来保存该资源。"

#: doc/classes/ResourceSaver.xml:37
msgid "Bundles external resources."
msgstr "捆绑外部资源。"

#: doc/classes/ResourceSaver.xml:40
msgid ""
"Changes the [member Resource.resource_path] of the saved resource to match "
"its new location."
msgstr "更改已保存资源的 [member Resource.resource_path] 以匹配其新位置。"

#: doc/classes/ResourceSaver.xml:43
msgid ""
"Do not save editor-specific metadata (identified by their [code]__editor[/"
"code] prefix)."
msgstr "不要保存编辑器特定的元数据(由其 [code]__editor [/code] 前缀标识)。"

#: doc/classes/ResourceSaver.xml:46
msgid "Save as big endian (see [member File.endian_swap])."
msgstr "保存为大端(参见 [member File.endian_swap])。"

#: doc/classes/ResourceSaver.xml:49
msgid ""
"Compress the resource on save using [constant File.COMPRESSION_ZSTD]. Only "
"available for binary resource types."
msgstr ""
"在保存时使用 [constant File.COMPRESSION_ZSTD] 压缩资源。仅适用于二进制资源类"
"型。"

#: doc/classes/ResourceSaver.xml:52
msgid ""
"Take over the paths of the saved subresources (see [method Resource."
"take_over_path])."
msgstr "接管保存的子资源的路径(见[method Resource.take_over_path])。"

#: doc/classes/RichTextEffect.xml:4
msgid "A custom effect for use with [RichTextLabel]."
msgstr "与 [RichTextLabel] 一起使用的自定义效果。"

#: doc/classes/RichTextEffect.xml:7
msgid ""
"A custom effect for use with [RichTextLabel].\n"
"[b]Note:[/b] For a [RichTextEffect] to be usable, a BBCode tag must be "
"defined as a member variable called [code]bbcode[/code] in the script.\n"
"[codeblock]\n"
"# The RichTextEffect will be usable like this: `[example]Some text[/"
"example]`\n"
"var bbcode = \"example\"\n"
"[/codeblock]\n"
"[b]Note:[/b] As soon as a [RichTextLabel] contains at least one "
"[RichTextEffect], it will continuously process the effect unless the project "
"is paused. This may impact battery life negatively."
msgstr ""
"一个用于[RichTextLabel]的自定义效果。\n"
"[b]注意:[/b] 为了使[RichTextEffect]能够使用,必须在脚本中定义一个名为"
"[code]bbcode[/code]的BBCode标签作为成员变量。\n"
"[codeblock]\n"
"# RichTextEffect将可以像这样使用:`[example]一些文本[/example]`.\n"
"var bbcode = \"example\"\n"
"[/codeblock]\n"
"[b]注意:[/b]只要一个[RichTextLabel]包含至少一个[RichTextEffect],它就会持续"
"处理这个效果,除非项目暂停。这可能会对电池寿命产生负面影响。"

#: doc/classes/RichTextEffect.xml:24
msgid ""
"Override this method to modify properties in [code]char_fx[/code]. The "
"method must return [code]true[/code] if the character could be transformed "
"successfully. If the method returns [code]false[/code], it will skip "
"transformation to avoid displaying broken text."
msgstr ""
"覆盖这个方法来修改[code]char_fx[/code]中的属性。如果字符可以被成功转换,该方"
"法必须返回[code]true[/code]。如果该方法返回[code]false[/code],它将跳过转换,"
"以避免显示破碎的文本。"

#: doc/classes/RichTextLabel.xml:4
msgid "Label that displays rich text."
msgstr "显示富文本的标签。"

#: doc/classes/RichTextLabel.xml:7
msgid ""
"Rich text can contain custom text, fonts, images and some basic formatting. "
"The label manages these as an internal tag stack. It also adapts itself to "
"given width/heights.\n"
"[b]Note:[/b] Assignments to [member bbcode_text] clear the tag stack and "
"reconstruct it from the property's contents. Any edits made to [member "
"bbcode_text] will erase previous edits made from other manual sources such "
"as [method append_bbcode] 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_height] property.\n"
"[b]Note:[/b] Unicode characters after [code]0xffff[/code] (such as most "
"emoji) are [i]not[/i] supported on Windows. They will display as unknown "
"characters instead. This will be resolved in Godot 4.0."
msgstr ""

#: doc/classes/RichTextLabel.xml:16
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/132"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/RichTextLabel.xml:26
#, fuzzy
msgid ""
"Adds an image's opening and closing tags to the tag stack, optionally "
"providing a [code]width[/code] and [code]height[/code] to resize the image.\n"
"If [code]width[/code] or [code]height[/code] is set to 0, the image size "
"will be adjusted in order to keep the original aspect ratio."
msgstr ""
"将图像的开头和结尾标签添加到标签堆中,可选择提供[code]width[/code]和"
"[code]height[/code]来调整图像的大小,并提供[code]color[/code]来修改图像。\n"
"如果[code]width[/code]或[code]height[/code]被设置为0,图像的大小将被调整,以"
"保持原始长宽比。"

#: doc/classes/RichTextLabel.xml:34
msgid "Adds raw non-BBCode-parsed text to the tag stack."
msgstr "将非BBCode解析的原始文本添加到标签堆中。"

#: doc/classes/RichTextLabel.xml:41
msgid ""
"Parses [code]bbcode[/code] and adds tags to the tag stack as needed. Returns "
"the result of the parsing, [constant OK] if successful.\n"
"[b]Note:[/b] Using this method, you can't close a tag that was opened in a "
"previous [method append_bbcode] call. This is done to improve performance, "
"especially when updating large RichTextLabels since rebuilding the whole "
"BBCode every time would be slower. If you absolutely need to close a tag in "
"a future method call, append the [member bbcode_text] instead of using "
"[method append_bbcode]."
msgstr ""

#: doc/classes/RichTextLabel.xml:48
msgid "Clears the tag stack and sets [member bbcode_text] to an empty string."
msgstr "清除标记堆栈并将 [member bbcode_text] 设置为空字符串。"

#: doc/classes/RichTextLabel.xml:54
msgid "Returns the height of the content."
msgstr "返回内容的高度。"

#: doc/classes/RichTextLabel.xml:60
msgid ""
"Returns the total number of newlines in the tag stack's text tags. Considers "
"wrapped text as one line."
msgstr "返回标签栈中文本标签的换行总数。将被包裹的文本视为一行。"

#: doc/classes/RichTextLabel.xml:66
msgid ""
"Returns the total number of characters from text tags. Does not include "
"BBCodes."
msgstr "返回文本标签的总字符数。不包括 BBCode。"

#: doc/classes/RichTextLabel.xml:72
msgid "Returns the vertical scrollbar."
msgstr "返回垂直滚动条。"

#: doc/classes/RichTextLabel.xml:78
msgid "Returns the number of visible lines."
msgstr "返回可见行数。"

#: doc/classes/RichTextLabel.xml:85
msgid ""
"Installs a custom effect. [code]effect[/code] should be a valid "
"[RichTextEffect]."
msgstr ""
"安装自定义效果。 [code]effect[/code] 应该是一个有效的 [RichTextEffect]。"

#: doc/classes/RichTextLabel.xml:91
msgid "Adds a newline tag to the tag stack."
msgstr "在标签堆中添加一个换行标签。"

#: doc/classes/RichTextLabel.xml:98
msgid ""
"The assignment version of [method append_bbcode]. Clears the tag stack and "
"inserts the new content. Returns [constant OK] if parses [code]bbcode[/code] "
"successfully."
msgstr ""
"[method append_bbcode] 的指定版本。清除标记堆栈并插入新内容。如果成功解析 "
"[code]bbcode[/code],则返回 [constant OK]。"

#: doc/classes/RichTextLabel.xml:105
msgid "Parses BBCode parameter [code]expressions[/code] into a dictionary."
msgstr "将 BBCode 参数 [code]expressions[/code] 解析为字典。"

#: doc/classes/RichTextLabel.xml:111
msgid ""
"Terminates the current tag. Use after [code]push_*[/code] methods to close "
"BBCodes manually. Does not need to follow [code]add_*[/code] methods."
msgstr ""
"终止当前标签。使用 [code]push_*[/code] 方法之后手动关闭 BBCodes。不需要遵循 "
"[code]add_*[/code] 方法。"

#: doc/classes/RichTextLabel.xml:118
msgid ""
"Adds an [code][align][/code] tag based on the given [code]align[/code] "
"value. See [enum Align] for possible values."
msgstr ""
"根据给定的[code][align][/code]值,添加一个[code]align[/code]标签。可能的值见"
"[enum Align]。"

#: doc/classes/RichTextLabel.xml:124
msgid ""
"Adds a [code][font][/code] tag with a bold font to the tag stack. This is "
"the same as adding a [code][b][/code] tag if not currently in a [code][i][/"
"code] tag."
msgstr ""
"在标签堆中添加一个[code][font][/code]标签,字体为黑体。如果当前没有[code][i]"
"[/code]标签,这与添加一个[code][b][/code]标签相同。"

#: doc/classes/RichTextLabel.xml:130
msgid ""
"Adds a [code][font][/code] tag with a bold italics font to the tag stack."
msgstr "在标签堆中添加一个[code][font][/code]标签,字体为粗斜体。"

#: doc/classes/RichTextLabel.xml:136
msgid ""
"Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code]"
"[table][/code] tag. See [method push_table] for details."
msgstr ""
"将一个[code][cell][/code]标签添加到标签堆中。必须在一个[code][table][/code]标"
"签内。详情见[method push_table]。"

#: doc/classes/RichTextLabel.xml:143
msgid "Adds a [code][color][/code] tag to the tag stack."
msgstr "将一个[code][color][/code]标签添加到标签堆。"

#: doc/classes/RichTextLabel.xml:150
msgid ""
"Adds a [code][font][/code] tag to the tag stack. Overrides default fonts for "
"its duration."
msgstr ""
"将一个[code][font][/code]标签添加到标签堆中。在其有效期内覆盖默认字体。"

#: doc/classes/RichTextLabel.xml:157
msgid ""
"Adds an [code][indent][/code] tag to the tag stack. Multiplies [code]level[/"
"code] by current [member tab_size] to determine new margin length."
msgstr ""
"将 [code][indent][/code] 标签添加到标签堆栈。将 [code]level[/code] 乘以当前 "
"[member tab_size] 以确定新的边距长度。"

#: doc/classes/RichTextLabel.xml:163
msgid ""
"Adds a [code][font][/code] tag with a italics font to the tag stack. This is "
"the same as adding a [code][i][/code] tag if not currently in a [code][b][/"
"code] tag."
msgstr ""
"在标签堆中添加一个[code][font][/code]标签,字体为斜体。如果当前没有[code][b]"
"[/code]标签,这与添加[code][i][/code]标签相同。"

#: doc/classes/RichTextLabel.xml:170
msgid ""
"Adds a [code][list][/code] tag to the tag stack. Similar to the BBCodes "
"[code][ol][/code] or [code][ul][/code], but supports more list types. Not "
"fully implemented!"
msgstr ""
"在标签栈中添加一个[code][list][/code]标签。类似于BBCodes [code][ol][/code] "
"或 [code][ul][/code] ,但支持更多的列表类型。未完全实现!"

#: doc/classes/RichTextLabel.xml:177
msgid ""
"Adds a [code][meta][/code] tag to the tag stack. Similar to the BBCode [code]"
"[url=something]{text}[/url][/code], but supports non-[String] metadata types."
msgstr ""
"添加一个[code][meta][/code]标签到标签堆中。类似于BBCode [code][url=something]"
"{text}[/url][/code],但支持非[String]元数据类型。"

#: doc/classes/RichTextLabel.xml:183
msgid "Adds a [code][font][/code] tag with a monospace font to the tag stack."
msgstr "在标签堆中添加一个[code][font][/code]标签,该标签为等宽字体。"

#: doc/classes/RichTextLabel.xml:189
msgid "Adds a [code][font][/code] tag with a normal font to the tag stack."
msgstr "在标签堆中添加一个具有正常字体的[code][font][/code]标签。"

#: doc/classes/RichTextLabel.xml:195
msgid "Adds a [code][s][/code] tag to the tag stack."
msgstr "将一个[code][s][/code]标签添加到标签堆中。"

#: doc/classes/RichTextLabel.xml:202
msgid "Adds a [code][table=columns][/code] tag to the tag stack."
msgstr "将一个[code][table=columns][/code]标签添加到标签栈。"

#: doc/classes/RichTextLabel.xml:208
msgid "Adds a [code][u][/code] tag to the tag stack."
msgstr "将一个[code][u][/code]标签添加到标签堆中。"

#: doc/classes/RichTextLabel.xml:215
msgid ""
"Removes a line of content from the label. Returns [code]true[/code] if the "
"line exists.\n"
"The [code]line[/code] argument is the index of the line to remove, it can "
"take values in the interval [code][0, get_line_count() - 1][/code]."
msgstr ""
"删除标签中的一行内容。如果该行存在,返回[code]true[/code]。\n"
"[code]line[/code]参数是要删除的行的索引,它可以在[code][0, get_line_count() "
"- 1][/code]的区间内取值。"

#: doc/classes/RichTextLabel.xml:223
msgid "Scrolls the window's top line to match [code]line[/code]."
msgstr "滚动窗口的顶行以匹配[code]line[/code]。"

#: doc/classes/RichTextLabel.xml:232
msgid ""
"Edits the selected column's expansion options. If [code]expand[/code] is "
"[code]true[/code], the column expands in proportion to its expansion ratio "
"versus the other columns' ratios.\n"
"For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width "
"would expand 30 and 40 pixels, respectively.\n"
"If [code]expand[/code] is [code]false[/code], the column will not contribute "
"to the total ratio."
msgstr ""
"编辑选中的列的扩展选项。如果[code]expand[/code]是[code]true[/code],该列会按"
"其扩展比例与其他列的比例进行扩展。\n"
"例如,2个比率为3和4的列加上70像素的可用宽度将分别扩展30和40像素。\n"
"如果[code]expand[/code]是[code]false[/code],该列将不会对总的比例产生影响。"

#: doc/classes/RichTextLabel.xml:240
msgid ""
"If [code]true[/code], the label uses BBCode formatting.\n"
"[b]Note:[/b] Trying to alter the [RichTextLabel]'s text with [method "
"add_text] will reset this to [code]false[/code]. Use instead [method "
"append_bbcode] to preserve BBCode formatting."
msgstr ""

#: doc/classes/RichTextLabel.xml:244
#, fuzzy
msgid ""
"The label's text in BBCode format. Is not representative of manual "
"modifications to the internal tag stack. Erases changes made by other "
"methods when edited.\n"
"[b]Note:[/b] It is unadvised to use the [code]+=[/code] operator with "
"[code]bbcode_text[/code] (e.g. [code]bbcode_text += \"some string\"[/code]) "
"as it replaces the whole text and can cause slowdowns. Use [method "
"append_bbcode] for adding text instead, unless you absolutely need to close "
"a tag that was opened in an earlier method call."
msgstr ""
"标签的文本为BBCode格式。不代表对内部标签栈的手动修改。在编辑时,会删除其他方"
"法所做的修改。\n"
"[b]注意:[/b] 不建议使用[code]+=[/code]操作符和[code]bbcode_text[/code](例如"
"[code]bbcode_text += \"some string\"[/code]),因为它取代了整个文本,会导致速"
"度降低。使用[method append_bbcode]来代替添加文本。"

#: doc/classes/RichTextLabel.xml:248
msgid ""
"The currently installed custom effects. This is an array of "
"[RichTextEffect]s.\n"
"To add a custom effect, it's more convenient to use [method install_effect]."
msgstr ""
"当前配置的自定义效果。这是一个[RichTextEffect]的数组。\n"
"要添加一个自定义效果,使用[method install_effect]会更方便。"

#: doc/classes/RichTextLabel.xml:252
msgid ""
"If [code]true[/code], the label's height will be automatically updated to "
"fit its content.\n"
"[b]Note:[/b] This property is used as a workaround to fix issues with "
"[RichTextLabel] in [Container]s, but it's unreliable in some cases and will "
"be removed in future versions."
msgstr ""
"如果 [code]true[/code],标签的高度将自动更新以适应其内容。\n"
"[b]注意:[/b] 此属性用作解决 [Container] 中 [RichTextLabel] 问题的解决方法,"
"但在某些情况下不可靠,将在未来版本中删除。"

#: doc/classes/RichTextLabel.xml:256
msgid ""
"If [code]true[/code], the label underlines meta tags such as [code][url]"
"{text}[/url][/code]."
msgstr ""
"如果 [code]true[/code],则会在元标签下划线,例如 [code][url]{text}[/url][/"
"code]。"

#: doc/classes/RichTextLabel.xml:259
msgid "If [code]true[/code], the label uses the custom font color."
msgstr "如果 [code]true[/code],则标签使用自定义字体颜色。"

#: doc/classes/RichTextLabel.xml:262
msgid ""
"The range of characters to display, as a [float] between 0.0 and 1.0. When "
"assigned an out of range value, it's the same as assigning 1.0.\n"
"[b]Note:[/b] Setting this property updates [member visible_characters] based "
"on current [method get_total_character_count]."
msgstr ""
"要显示的字符范围,数值为0.0和1.0之间的[float]。当分配一个超出范围的值时,它和"
"分配1.0是一样的。\n"
"[b]注意:[/b] 设置这个属性会根据当前的[method get_total_character_count]更新"
"[member visible_characters]。"

#: doc/classes/RichTextLabel.xml:267
msgid ""
"If [code]true[/code], the scrollbar is visible. Setting this to [code]false[/"
"code] does not block scrolling completely. See [method scroll_to_line]."
msgstr ""
"如果 [code]true[/code],则滚动条可见。将此设置为 [code]false[/code] 不会完全"
"阻止滚动。见[method scroll_to_line]。"

#: doc/classes/RichTextLabel.xml:270
msgid ""
"If [code]true[/code], the window scrolls down to display new content "
"automatically."
msgstr "如果 [code]true[/code],则窗口向下滚动以自动显示新内容。"

#: doc/classes/RichTextLabel.xml:273
msgid "If [code]true[/code], the label allows text selection."
msgstr "如果 [code]true[/code],标签允许文本选择。"

#: doc/classes/RichTextLabel.xml:276
msgid ""
"The number of spaces associated with a single tab length. Does not affect "
"[code]\\t[/code] in text tags, only indent tags."
msgstr ""
"与单个制表符长度关联的空格数。不影响文本标签中的 [code]\\t[/code],只影响缩进"
"标签。"

#: doc/classes/RichTextLabel.xml:279
msgid ""
"The raw text of the label.\n"
"When set, clears the tag stack and adds a raw text tag to the top of it. "
"Does not parse BBCodes. Does not modify [member bbcode_text]."
msgstr ""
"标签的原始文本。\n"
"设置后,清除标签堆栈并在其顶部添加一个原始文本标签。不解析 BBCode。不修改 "
"[member bbcode_text]。"

#: doc/classes/RichTextLabel.xml:283
#, fuzzy
msgid ""
"The restricted number of characters to display in the label. If [code]-1[/"
"code], all characters will be displayed.\n"
"[b]Note:[/b] Setting this property updates [member percent_visible] based on "
"current [method get_total_character_count]."
msgstr ""
"要显示的字符范围,数值为0.0和1.0之间的[float]。当分配一个超出范围的值时,它和"
"分配1.0是一样的。\n"
"[b]注意:[/b] 设置这个属性会根据当前的[method get_total_character_count]更新"
"[member visible_characters]。"

#: doc/classes/RichTextLabel.xml:291
msgid ""
"Triggered when the user clicks on content between meta tags. If the meta is "
"defined in text, e.g. [code][url={\"data\"=\"hi\"}]hi[/url][/code], then the "
"parameter for this signal will be a [String] type. If a particular type or "
"an object is desired, the [method push_meta] method must be used to manually "
"insert the data into the tag stack."
msgstr ""
"当用户点击元标记之间的内容时触发。如果元是在文本中定义的,例如[code]"
"[url={\"data\"=\"hi\"}]hi[/url][/code],则该信号的参数为[String]类型。如果需"
"要特定类型或对象,则必须使用 [method push_meta] 方法将数据手动插入标签堆栈。"

#: doc/classes/RichTextLabel.xml:297
msgid "Triggers when the mouse exits a meta tag."
msgstr "当鼠标退出元标签时触发。"

#: doc/classes/RichTextLabel.xml:303
msgid "Triggers when the mouse enters a meta tag."
msgstr "当鼠标进入元标签时触发。"

#: doc/classes/RichTextLabel.xml:309
msgid "Makes text left aligned."
msgstr "使文本左对齐。"

#: doc/classes/RichTextLabel.xml:312
msgid "Makes text centered."
msgstr "使文本居中。"

#: doc/classes/RichTextLabel.xml:315
msgid "Makes text right aligned."
msgstr "使文本右对齐。"

#: doc/classes/RichTextLabel.xml:318
msgid "Makes text fill width."
msgstr "使文本填充宽度。"

#: doc/classes/RichTextLabel.xml:321
msgid "Each list item has a number marker."
msgstr "每个列表项都有一个数字标记。"

#: doc/classes/RichTextLabel.xml:324
msgid "Each list item has a letter marker."
msgstr "每个列表项都有一个字母标记。"

#: doc/classes/RichTextLabel.xml:327
msgid "Each list item has a filled circle marker."
msgstr "每个列表项都有一个实心圆圈标记。"

#: doc/classes/RichTextLabel.xml:370
msgid "The font used for bold text."
msgstr "用于粗体字的字体。"

#: doc/classes/RichTextLabel.xml:373
msgid "The font used for bold italics text."
msgstr "用于粗斜体文字的字体。"

#: doc/classes/RichTextLabel.xml:376
msgid "The default text color."
msgstr "默认文本颜色。"

#: doc/classes/RichTextLabel.xml:379
msgid "The background The background used when the [RichTextLabel] is focused."
msgstr "[RichTextLabel] 获得焦点时使用的背景。"

#: doc/classes/RichTextLabel.xml:382
msgid ""
"The color of selected text, used when [member selection_enabled] is "
"[code]true[/code]."
msgstr ""
"选定文本的颜色(当[member selection_enabled]为[code]true[/code]时使用)。"

#: doc/classes/RichTextLabel.xml:385
msgid "The color of the font's shadow."
msgstr "字体阴影的颜色。"

#: doc/classes/RichTextLabel.xml:388
msgid "The font used for italics text."
msgstr "用于斜体字的字体。"

#: doc/classes/RichTextLabel.xml:391
msgid "The vertical space between lines."
msgstr "行之间的垂直空间。"

#: doc/classes/RichTextLabel.xml:394
msgid "The font used for monospace text."
msgstr "用于等宽文本的字体。"

#: doc/classes/RichTextLabel.xml:397
msgid "The normal background for the [RichTextLabel]."
msgstr "[RichTextLabel] 的正常背景。"

#: doc/classes/RichTextLabel.xml:400
msgid "The default text font."
msgstr "默认的文本字体。"

#: doc/classes/RichTextLabel.xml:403
msgid "The color of the selection box."
msgstr "选择框的颜色。"

#: doc/classes/RichTextLabel.xml:406
msgid ""
"Boolean value. If 1 ([code]true[/code]), the shadow will be displayed around "
"the whole text as an outline."
msgstr ""
"布尔值。如果是1([code]true[/code]),阴影将以轮廓的形式围绕整个文本显示。"

#: doc/classes/RichTextLabel.xml:409
msgid "The horizontal offset of the font's shadow."
msgstr "字体阴影的水平偏移量。"

#: doc/classes/RichTextLabel.xml:412
msgid "The vertical offset of the font's shadow."
msgstr "字体阴影的垂直偏移。"

#: doc/classes/RichTextLabel.xml:415
msgid "The horizontal separation of elements in a table."
msgstr "表中元素的水平间距。"

#: doc/classes/RichTextLabel.xml:418
msgid "The vertical separation of elements in a table."
msgstr "表中元素的垂直间距。"

#: doc/classes/RID.xml:4
msgid "Handle for a [Resource]'s unique ID."
msgstr "[Resource] 的唯一 ID 的句柄。"

#: doc/classes/RID.xml:7
#, fuzzy
msgid ""
"The RID type is used to access the unique integer ID of a resource. They are "
"opaque, which means they do not grant access to the associated resource by "
"themselves. They are used by and with the low-level Server classes such as "
"[VisualServer]."
msgstr ""
"该RID类型用于访问资源的唯一整数ID。它们是不透明的,这意味着它们本身并不授予对"
"相关资源的访问。它们被低级别的服务器类使用,如[RenderingServer]。"

#: doc/classes/RID.xml:16
msgid ""
"Creates a new RID instance with the ID of a given resource. When not handed "
"a valid resource, silently stores the unused ID 0."
msgstr ""
"用给定资源的ID创建一个新的RID实例。当没有得到一个有效的资源时,默认存储未使用"
"的ID 0。"

#: doc/classes/RID.xml:22
msgid "Returns the ID of the referenced resource."
msgstr "返回引用资源的 ID。"

#: doc/classes/RigidBody.xml:4
msgid ""
"Physics Body whose position is determined through physics simulation in 3D "
"space."
msgstr "物理物体,其位置是通过 3D 空间中的物理模拟确定的。"

#: doc/classes/RigidBody.xml:7
#, fuzzy
msgid ""
"This is the node that implements full 3D physics. This means that you do not "
"control a RigidBody directly. Instead, you can apply forces to it (gravity, "
"impulses, etc.), and the physics simulation will calculate the resulting "
"movement, collision, bouncing, rotating, etc.\n"
"A RigidBody has 4 behavior [member mode]s: Rigid, Static, Character, and "
"Kinematic.\n"
"[b]Note:[/b] Don't change a RigidBody's position every frame or very often. "
"Sporadic changes work fine, but physics runs at a different granularity "
"(fixed Hz) than usual rendering (process callback) and maybe even in a "
"separate thread, so changing this from a process loop may result in strange "
"behavior. If you need to directly affect the body's state, use [method "
"_integrate_forces], which allows you to directly access the physics state.\n"
"If you need to override the default physics behavior, you can write a custom "
"force integration function. See [member custom_integrator].\n"
"With Bullet physics (the default), the center of mass is the RigidBody3D "
"center. With GodotPhysics, the center of mass is the average of the "
"[CollisionShape] centers."
msgstr ""
"这是实现完整 3D 物理的节点。这意味着您不应直接控制 RigidBody3D。相反,您可以"
"对其施加力(重力、冲量等),物理模拟将计算由此产生的运动、碰撞、弹跳、旋转"
"等。\n"
"RigidBody3D 有 4 种行为 [member mode]:刚体、静态、角色和运动。\n"
"[b]注意:[/b] 不要每帧或非常频繁地更改 RigidBody3D 的位置。零星的更改工作正"
"常,但物理运行的粒度(固定 Hz)与通常的渲染(进程回调)不同,甚至可能在单独的"
"线程中运行,因此从进程循环更改它可能会导致奇怪的行为。如果需要直接影响body的"
"状态,使用[method _integrate_forces],可以直接访问物理状态。\n"
"如果您需要覆盖默认的物理行为,您可以编写自定义力积分函数。见[member "
"custom_integrator]。"

#: doc/classes/RigidBody.xml:23
msgid ""
"Called during physics processing, allowing you to read and safely modify the "
"simulation state for the object. By default, it works in addition to the "
"usual physics behavior, but the [member custom_integrator] property allows "
"you to disable the default behavior and do fully custom force integration "
"for a body."
msgstr ""
"在物理处理过程中被调用,允许你读取并安全地修改对象的模拟状态。默认情况下,它"
"是在通常的物理行为之外工作的,但是[member custom_integrator]属性允许你禁用默"
"认行为,为一个物体施加完全自定义的合力。"

#: doc/classes/RigidBody.xml:30
msgid ""
"Adds a constant directional force (i.e. acceleration) without affecting "
"rotation.\n"
"This is equivalent to [code]add_force(force, Vector3(0,0,0))[/code]."
msgstr ""
"在不影响旋转的情况下添加恒定的方向力(即加速度)。\n"
"这相当于 [code]add_force(force, Vector3(0,0,0))[/code]。"

#: doc/classes/RigidBody.xml:39
msgid ""
"Adds a constant directional force (i.e. acceleration).\n"
"The position uses the rotation of the global coordinate system, but is "
"centered at the object's origin."
msgstr ""
"添加一个恒定的方向力(即加速度)。\n"
"位置使用全局坐标系的旋转,但以物体的原点为中心。"

#: doc/classes/RigidBody.xml:47
msgid ""
"Adds a constant rotational force (i.e. a motor) without affecting position."
msgstr "在不影响位置的情况下添加恒定的旋转力。"

#: doc/classes/RigidBody.xml:54
msgid ""
"Applies a directional impulse without affecting rotation.\n"
"This is equivalent to [code]apply_impulse(Vector3(0,0,0), impulse)[/code]."
msgstr ""
"施加单一方向的冲量而不影响旋转。\n"
"这等价于[code]apply_impulse(Vector3(0,0,0), impulse)[/code]。"

#: doc/classes/RigidBody.xml:63
msgid ""
"Applies a positioned impulse to the body. An impulse is time independent! "
"Applying an impulse every frame would result in a framerate-dependent force. "
"For this reason it should only be used when simulating one-time impacts. The "
"position uses the rotation of the global coordinate system, but is centered "
"at the object's origin."
msgstr ""
"对物体施加一个有向的冲量。冲量是与时间无关的! 在每一帧中施加一个冲量将产生一"
"个与帧率相关的力。出于这个原因,它应该只在模拟一次性影响时使用。该位置使用全"
"局坐标系的旋转,但以物体的原点为中心。"

#: doc/classes/RigidBody.xml:70
msgid ""
"Applies a torque impulse which will be affected by the body mass and shape. "
"This will rotate the body around the [code]impulse[/code] vector passed."
msgstr ""
"施加一个冲量矩,它将受到物体质量和形状的影响。这将使物体围绕所传递的"
"[code]impulse[/code]向量进行旋转。"

#: doc/classes/RigidBody.xml:77
msgid ""
"Returns [code]true[/code] if the specified linear or rotational axis is "
"locked."
msgstr "如果指定的线性或旋转轴被锁定,则返回 [code]true[/code]。"

#: doc/classes/RigidBody.xml:83 doc/classes/RigidBody2D.xml:73
msgid ""
"Returns a list of the bodies colliding with this one. Requires [member "
"contact_monitor] to be set to [code]true[/code] and [member "
"contacts_reported] to be set high enough to detect all the collisions.\n"
"[b]Note:[/b] The result of this test is not immediate after moving objects. "
"For performance, list of collisions is updated once per frame and before the "
"physics step. Consider using signals instead."
msgstr ""
"返回一个与此碰撞的物体的列表。要求[member contact_monitor]设置为[code]true[/"
"code],[member contacts_reported]设置得足够高,以检测所有碰撞。\n"
"[b]注意:[/b] 在移动物体后,这个测试的结果不是立即的。为了性能,碰撞列表每帧"
"在物理运算之前更新一次。可以考虑使用信号来代替。"

#: doc/classes/RigidBody.xml:90
#, fuzzy
msgid ""
"Returns the inverse inertia tensor basis. This is used to calculate the "
"angular acceleration resulting from a torque applied to the RigidBody."
msgstr ""
"返回反惯性张量基数。这被用来计算施加在[RigidBody3D]上的力矩所产生的角加速度。"

#: doc/classes/RigidBody.xml:98
msgid "Locks the specified linear or rotational axis."
msgstr "锁定指定的线性或旋转轴。"

#: doc/classes/RigidBody.xml:111
msgid ""
"Damps RigidBody's rotational forces.\n"
"See [member ProjectSettings.physics/3d/default_angular_damp] for more "
"details about damping."
msgstr ""

#: doc/classes/RigidBody.xml:115
#, fuzzy
msgid "RigidBody's rotational velocity."
msgstr "RigidBody3D的旋转速度。"

#: doc/classes/RigidBody.xml:118
msgid "Lock the body's rotation in the X axis."
msgstr "锁定实体在X轴上的旋转。"

#: doc/classes/RigidBody.xml:121
msgid "Lock the body's rotation in the Y axis."
msgstr "锁定实体在Y轴上的旋转。"

#: doc/classes/RigidBody.xml:124
msgid "Lock the body's rotation in the Z axis."
msgstr "锁定实体在Z轴上的旋转。"

#: doc/classes/RigidBody.xml:127
msgid "Lock the body's movement in the X axis."
msgstr "锁定实体在X轴上的移动。"

#: doc/classes/RigidBody.xml:130
msgid "Lock the body's movement in the Y axis."
msgstr "锁定实体在Y轴上的移动。"

#: doc/classes/RigidBody.xml:133
msgid "Lock the body's movement in the Z axis."
msgstr "锁定实体在Z轴上的移动。"

#: doc/classes/RigidBody.xml:136 doc/classes/RigidBody2D.xml:110
#: doc/classes/StaticBody.xml:19 doc/classes/StaticBody2D.xml:16
#, fuzzy
msgid ""
"The body's bounciness. Values range from [code]0[/code] (no bounce) to "
"[code]1[/code] (full bounciness).\n"
"Deprecated, use [member PhysicsMaterial.bounce] instead via [member "
"physics_material_override]."
msgstr ""
"实体的弹性。值的范围从[code]0[/code](无反弹)到[code]1[/code](完全反弹)。"

#: doc/classes/RigidBody.xml:140
msgid ""
"If [code]true[/code], the body can enter sleep mode when there is no "
"movement. See [member sleeping].\n"
"[b]Note:[/b] A RigidBody3D will never enter sleep mode automatically if its "
"[member mode] is [constant MODE_CHARACTER]. It can still be put to sleep "
"manually by setting its [member sleeping] property to [code]true[/code]."
msgstr ""

#: doc/classes/RigidBody.xml:144
#, fuzzy
msgid ""
"If [code]true[/code], the RigidBody will emit signals when it collides with "
"another RigidBody. See also [member contacts_reported]."
msgstr ""
"如果 [code]true[/code],当 RigidBody3D 与另一个 RigidBody3D 碰撞时,它会发出"
"信号。另见[member contacts_reported]。"

#: doc/classes/RigidBody.xml:147
msgid ""
"The maximum number of contacts that will be recorded. Requires [member "
"contact_monitor] to be set to [code]true[/code].\n"
"[b]Note:[/b] The number of contacts is different from the number of "
"collisions. Collisions between parallel edges will result in two contacts "
"(one at each end), and collisions between parallel faces will result in four "
"contacts (one at each corner)."
msgstr ""
"将被记录的最大接触次数。需要将 [member contact_monitor] 设置为 [code]true[/"
"code]。\n"
"[b]注:[/b]接触次数与碰撞次数不同。平行边之间的碰撞将导致两个接触(每端一"
"个),平行面之间的碰撞将导致四个接触(每个角一个)。"

#: doc/classes/RigidBody.xml:151
msgid ""
"If [code]true[/code], continuous collision detection is used.\n"
"Continuous collision detection tries to predict where a moving body will "
"collide, instead of moving it and correcting its movement if it collided. "
"Continuous collision detection is more precise, and misses fewer impacts by "
"small, fast-moving objects. Not using continuous collision detection is "
"faster to compute, but can miss small, fast-moving objects."
msgstr ""
"如果 [code]true[/code],则使用连续碰撞检测。\n"
"连续碰撞检测尝试预测一个移动的物体会在哪里碰撞,而不是移动它并在它发生碰撞时"
"纠正它的运动。连续碰撞检测更精确,并且错过了较小的、快速移动的物体的撞击。不"
"使用连续碰撞检测的计算速度更快,但可能会错过小的、快速移动的物体。"

#: doc/classes/RigidBody.xml:155
msgid ""
"If [code]true[/code], internal force integration will be disabled (like "
"gravity or air friction) for this body. Other than collision response, the "
"body will only move as determined by the [method _integrate_forces] "
"function, if defined."
msgstr ""
"如果 [code]true[/code],则该物体的内力积分将被禁用(如重力或空气摩擦)。除了"
"碰撞响应之外,身体将仅根据 [method _integrate_forces] 函数确定的方式移动(如"
"果已定义)。"

#: doc/classes/RigidBody.xml:158
msgid ""
"The body's friction, from 0 (frictionless) to 1 (max friction).\n"
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""

#: doc/classes/RigidBody.xml:162
#, fuzzy
msgid ""
"This is multiplied by the global 3D gravity setting found in [b]Project > "
"Project Settings > Physics > 3d[/b] to produce RigidBody's gravity. For "
"example, a value of 1 will be normal gravity, 2 will apply double gravity, "
"and 0.5 will apply half gravity to this object."
msgstr ""
"这与在[b]Project(项目) > Project Settings(项目设置) > Physics(物理) > 3d>[/b]"
"中找到的全局3D重力设置相乘,产生RigidBody3D的重力。例如,1的值将是正常的重"
"力,2将应用双倍的重力,0.5将对这个物体应用一半的重力。"

#: doc/classes/RigidBody.xml:165
#, fuzzy
msgid ""
"The body's linear damp. Cannot be less than -1.0. If this value is different "
"from -1.0, any linear damp derived from the world or areas will be "
"overridden.\n"
"See [member ProjectSettings.physics/3d/default_linear_damp] for more details "
"about damping."
msgstr ""
"物体的线性阻尼。不能小于-1.0。如果这个值与-1.0不同,任何从world或area派生出来"
"的线性阻尼都会被覆盖。"

#: doc/classes/RigidBody.xml:169
msgid ""
"The body's linear velocity. Can be used sporadically, but [b]don't set this "
"every frame[/b], because physics may run in another thread and runs at a "
"different granularity. Use [method _integrate_forces] as your process loop "
"for precise control of the body state."
msgstr ""
"物体的线速度。可以偶尔使用,但是[b]不要每一帧都设置它[/b],因为物理学可能在另"
"一个线程中运行,并且以不同间隔的运行。使用[method _integrate_forces]作为你的"
"进程循环,以精确控制身体状态。"

#: doc/classes/RigidBody.xml:172 doc/classes/RigidBody2D.xml:149
msgid "The body's mass."
msgstr "实体的质量。"

#: doc/classes/RigidBody.xml:175
msgid "The body mode. See [enum Mode] for possible values."
msgstr "物体的模式。可能的值见[enum Mode]。"

#: doc/classes/RigidBody.xml:178 doc/classes/RigidBody2D.xml:155
#: doc/classes/StaticBody.xml:33 doc/classes/StaticBody2D.xml:30
msgid ""
"The physics material override for the body.\n"
"If a material is assigned to this property, it will be used instead of any "
"other physics material, such as an inherited one."
msgstr ""
"物体的物理材质。\n"
"如果为该属性指定了一种材质,则将使用该材质代替任何其他物理材质,例如继承的材"
"质。"

#: doc/classes/RigidBody.xml:182 doc/classes/RigidBody2D.xml:159
msgid ""
"If [code]true[/code], the body will not move and will not calculate forces "
"until woken up by another body through, for example, a collision, or by "
"using the [method apply_impulse] or [method add_force] methods."
msgstr ""
"如果 [code]true[/code],物体不会移动并且不会计算力,直到被另一个物体唤醒,例"
"如碰撞,或使用 [method apply_impulse] 或 [method add_force] 方法。"

#: doc/classes/RigidBody.xml:185
msgid ""
"The body's weight based on its mass and the global 3D gravity. Global values "
"are set in [b]Project > Project Settings > Physics > 3d[/b]."
msgstr ""
"实体的重量基于其质量和全局3D重力。全局值在[b]项目>项目设置>物理>三维[/b]中设"
"置。"

#: doc/classes/RigidBody.xml:192
#, fuzzy
msgid ""
"Emitted when a collision with another [PhysicsBody] or [GridMap] occurs. "
"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
"contacts_reported] to be set high enough to detect all the collisions. "
"[GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap]."
msgstr ""
"当一个物体与这个物体接触时发出。需要将 [member contact_monitor] 设置为 "
"[code]true[/code] 并将 [member contacts_reported] 设置为足够高以检测所有碰"
"撞。\n"
"此信号不仅接收与此碰撞的物体,还接收其 [RID] ([code]body_id[/code])、碰撞物体"
"的形状索引 ([code]body_shape[/code]) 和形状索引从这个身体 "
"([code]local_shape[/code]) 另一个身体碰撞。"

#: doc/classes/RigidBody.xml:199
#, fuzzy
msgid ""
"Emitted when the collision with another [PhysicsBody] or [GridMap] ends. "
"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
"contacts_reported] to be set high enough to detect all the collisions. "
"[GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap]."
msgstr ""
"当一个物体与这个物体接触时发出。需要将 [member contact_monitor] 设置为 "
"[code]true[/code] 并将 [member contacts_reported] 设置为足够高以检测所有碰"
"撞。\n"
"此信号不仅接收与此碰撞的物体,还接收其 [RID] ([code]body_id[/code])、碰撞物体"
"的形状索引 ([code]body_shape[/code]) 和形状索引从这个身体 "
"([code]local_shape[/code]) 另一个身体碰撞。"

#: doc/classes/RigidBody.xml:209
msgid ""
"Emitted when one of this RigidBody's [Shape]s collides with another "
"[PhysicsBody] or [GridMap]'s [Shape]s. Requires [member contact_monitor] to "
"be set to [code]true[/code] and [member contacts_reported] to be set high "
"enough to detect all the collisions. [GridMap]s are detected if the "
"[MeshLibrary] has Collision [Shape]s.\n"
"[code]body_id[/code] the [RID] of the other [PhysicsBody] or [MeshLibrary]'s "
"[CollisionObject] used by the [PhysicsServer].\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap].\n"
"[code]body_shape[/code] the index of the [Shape] of the other [PhysicsBody] "
"or [GridMap] used by the [PhysicsServer].\n"
"[code]local_shape[/code] the index of the [Shape] of this RigidBody used by "
"the [PhysicsServer].\n"
"[b]Note:[/b] Bullet physics cannot identify the shape index when using a "
"[ConcavePolygonShape]. Don't use multiple [CollisionShape]s when using a "
"[ConcavePolygonShape] with Bullet physics if you need shape indices."
msgstr ""

#: doc/classes/RigidBody.xml:223
msgid ""
"Emitted when the collision between one of this RigidBody's [Shape]s and "
"another [PhysicsBody] or [GridMap]'s [Shape]s ends. Requires [member "
"contact_monitor] to be set to [code]true[/code] and [member "
"contacts_reported] to be set high enough to detect all the collisions. "
"[GridMap]s are detected if the [MeshLibrary] has Collision [Shape]s.\n"
"[code]body_id[/code] the [RID] of the other [PhysicsBody] or [MeshLibrary]'s "
"[CollisionObject] used by the [PhysicsServer]. [GridMap]s are detected if "
"the Meshes have [Shape]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap].\n"
"[code]body_shape[/code] the index of the [Shape] of the other [PhysicsBody] "
"or [GridMap] used by the [PhysicsServer].\n"
"[code]local_shape[/code] the index of the [Shape] of this RigidBody used by "
"the [PhysicsServer].\n"
"[b]Note:[/b] Bullet physics cannot identify the shape index when using a "
"[ConcavePolygonShape]. Don't use multiple [CollisionShape]s when using a "
"[ConcavePolygonShape] with Bullet physics if you need shape indices."
msgstr ""

#: doc/classes/RigidBody.xml:233 doc/classes/RigidBody2D.xml:208
msgid ""
"Emitted when the physics engine changes the body's sleeping state.\n"
"[b]Note:[/b] Changing the value [member sleeping] will not trigger this "
"signal. It is only emitted if the sleeping state is changed by the physics "
"engine or [code]emit_signal(\"sleeping_state_changed\")[/code] is used."
msgstr ""
"当物理引擎改变物体的睡眠状态时发出。\n"
"[b]注意:[/b]改变[member sleeping]的值不会触发这个信号。只有当物理引擎改变了"
"睡眠状态或者使用了[code]emit_signal(\"sleeping_state_changed\")[/code]时,它"
"才会被发出。"

#: doc/classes/RigidBody.xml:240
msgid ""
"Rigid body mode. This is the \"natural\" state of a rigid body. It is "
"affected by forces, and can move, rotate, and be affected by user code."
msgstr ""
"刚体模式。这是一个刚体的 \"自然 \"状态。它受到力的影响,可以移动、旋转,并受"
"到用户代码的影响。"

#: doc/classes/RigidBody.xml:243
#, fuzzy
msgid ""
"Static mode. The body behaves like a [StaticBody], and can only move by user "
"code."
msgstr "静态模式。物体的行为就像一个[StaticBody3D],只能通过用户代码来移动。"

#: doc/classes/RigidBody.xml:246
msgid ""
"Character body mode. This behaves like a rigid body, but can not rotate."
msgstr "角色模式。这与刚体的行为类似,但不能旋转。"

#: doc/classes/RigidBody.xml:249
#, fuzzy
msgid ""
"Kinematic body mode. The body behaves like a [KinematicBody], and can only "
"move by user code."
msgstr ""
"运动学模式。这个物体的行为就像一个[KinematicBody2D],必须通过代码来移动。"

#: doc/classes/RigidBody2D.xml:4
msgid "A body that is controlled by the 2D physics engine."
msgstr "由2D物理引擎控制的实体。"

#: doc/classes/RigidBody2D.xml:7
#, fuzzy
msgid ""
"This node implements simulated 2D physics. You do not control a RigidBody2D "
"directly. Instead, you apply forces to it (gravity, impulses, etc.) and the "
"physics simulation calculates the resulting movement based on its mass, "
"friction, and other physical properties.\n"
"A RigidBody2D has 4 behavior [member mode]s: Rigid, Static, Character, and "
"Kinematic.\n"
"[b]Note:[/b] You should not change a RigidBody2D's [code]position[/code] or "
"[code]linear_velocity[/code] every frame or even very often. If you need to "
"directly affect the body's state, use [method _integrate_forces], which "
"allows you to directly access the physics state.\n"
"Please also keep in mind that physics bodies manage their own transform "
"which overwrites the ones you set. So any direct or indirect transformation "
"(including scaling of the node or its parent) will be visible in the editor "
"only, and immediately reset at runtime.\n"
"If you need to override the default physics behavior or add a transformation "
"at runtime, you can write a custom force integration. See [member "
"custom_integrator].\n"
"The center of mass is always located at the node's origin without taking "
"into account the [CollisionShape2D] centroid offsets."
msgstr ""
"这个节点实现了模拟的2D物理运算。你不能直接控制一个RigidBody2D。相反,你对它施"
"加力(重力、冲力等),物理模拟会根据它的质量、摩擦力和其他物理属性来计算出结"
"果的运动。\n"
"一个RigidBody2D有4种行为[member mode]。刚性、静态、角色和运动。\n"
"[b]注意:[/b]你不应该每一帧甚至经常改变RigidBody2D的[code]位置[/code]或[code]"
"线性速度[/code]。如果你需要直接影响身体的状态,请使用[method "
"_integrate_forces],它允许你直接访问物理学状态。\n"
"也请记住,物理体管理自己的变换,它覆盖了你设置的变换。所以任何直接或间接的变"
"换(包括节点或其父体的缩放)将只在编辑器中可见,并在运行时立即重置。\n"
"如果你需要覆盖默认的物理行为或者在运行时添加一个变换,你可以写一个自定义的合"
"力。参见[member custom_integrator]。"

#: doc/classes/RigidBody2D.xml:15
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/119"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/RigidBody2D.xml:16 doc/classes/Sprite.xml:10
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/148"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/RigidBody2D.xml:23
msgid ""
"Allows you to read and safely modify the simulation state for the object. "
"Use this instead of [method Node._physics_process] if you need to directly "
"change the body's [code]position[/code] or other physics properties. By "
"default, it works in addition to the usual physics behavior, but [member "
"custom_integrator] allows you to disable the default behavior and write "
"custom force integration for a body."
msgstr ""
"允许你读取并安全地修改对象的模拟状态。如果你需要直接改变物体的"
"[code]position[/code]或其他物理属性,请使用它代替[method Node."
"_physics_process]。默认情况下,它是在通常的物理行为之外工作的,但是[member "
"custom_integrator]允许你禁用默认行为并为一个物体编写自定义的合力。"

#: doc/classes/RigidBody2D.xml:60
msgid ""
"Applies a positioned impulse to the body. An impulse is time-independent! "
"Applying an impulse every frame would result in a framerate-dependent force. "
"For this reason it should only be used when simulating one-time impacts (use "
"the \"_force\" functions otherwise). The position uses the rotation of the "
"global coordinate system, but is centered at the object's origin."
msgstr ""
"对物体施加一个有向的冲量。冲量是与时间无关的。每一帧应用一个冲量会有一个与帧"
"相关的力。由于这个原因,它只应该在模拟一次性冲击时使用(否则就使用\"_force "
"\"函数)。位置使用全局坐标系的旋转,但以物体的原点为中心。"

#: doc/classes/RigidBody2D.xml:81
msgid ""
"Sets the body's velocity on the given axis. The velocity in the given vector "
"axis will be set as the given vector length. This is useful for jumping "
"behavior."
msgstr ""
"设置物体在给定轴上的速度。给定矢量轴上的速度将设置为给定矢量长度。这对于跳跃"
"行为很有用。"

#: doc/classes/RigidBody2D.xml:91
#, fuzzy
msgid ""
"Returns [code]true[/code] if a collision would result from moving in the "
"given vector. [code]margin[/code] increases the size of the shapes involved "
"in the collision detection, and [code]result[/code] is an object of type "
"[Physics2DTestMotionResult], which contains additional information about the "
"collision (should there be one)."
msgstr ""
"如果在给定的向量中移动会导致碰撞,则返回[code]true[/code]。[code]margin[/"
"code]增加参与碰撞检测的形状的大小,[code]result[/code]是一个"
"[PhysicsTestMotionResult2D]类型的对象,它包含关于碰撞的额外信息(如果有的"
"话)。"

#: doc/classes/RigidBody2D.xml:97
#, fuzzy
msgid ""
"Damps the body's [member angular_velocity]. If [code]-1[/code], the body "
"will use the [b]Default Angular Damp[/b] defined in [b]Project > Project "
"Settings > Physics > 2d[/b].\n"
"See [member ProjectSettings.physics/2d/default_angular_damp] for more "
"details about damping."
msgstr ""
"对物体的 [member angular_velocity]进行阻尼运算。如果 [code]-1[/code],主体将"
"使用 [b]Project(项目) > Project Settings(项目设置) > Physics(物理)> 2d[/b] 中"
"定义的 [b]Default Angular Damp(默认角度阻尼)[/b]。"

#: doc/classes/RigidBody2D.xml:104
msgid "The body's total applied force."
msgstr "对物体施加的合力。"

#: doc/classes/RigidBody2D.xml:107
msgid "The body's total applied torque."
msgstr "对物体施加总力矩。"

#: doc/classes/RigidBody2D.xml:114
msgid ""
"If [code]true[/code], the body can enter sleep mode when there is no "
"movement. See [member sleeping].\n"
"[b]Note:[/b] A RigidBody2D will never enter sleep mode automatically if its "
"[member mode] is [constant MODE_CHARACTER]. It can still be put to sleep "
"manually by setting its [member sleeping] property to [code]true[/code]."
msgstr ""

#: doc/classes/RigidBody2D.xml:118
msgid ""
"If [code]true[/code], the body will emit signals when it collides with "
"another RigidBody2D. See also [member contacts_reported]."
msgstr ""
"如果[code]true[/code],则物体在与另一个RigidBody2D碰撞时会发出信号。另见"
"[member contacts_reported]。"

#: doc/classes/RigidBody2D.xml:121
#, fuzzy
msgid ""
"The maximum number of contacts that will be recorded. Requires [member "
"contact_monitor] to be set to [code]true[/code].\n"
"[b]Note:[/b] The number of contacts is different from the number of "
"collisions. Collisions between parallel edges will result in two contacts "
"(one at each end)."
msgstr ""
"将被记录的最大接触次数。需要将 [member contact_monitor] 设置为 [code]true[/"
"code]。\n"
"[b]注:[/b]接触次数与碰撞次数不同。平行边之间的碰撞将导致两个接触(每端一"
"个),平行面之间的碰撞将导致四个接触(每个角一个)。"

#: doc/classes/RigidBody2D.xml:125
msgid ""
"Continuous collision detection mode.\n"
"Continuous collision detection tries to predict where a moving body will "
"collide instead of moving it and correcting its movement after collision. "
"Continuous collision detection is slower, but more precise and misses fewer "
"collisions with small, fast-moving objects. Raycasting and shapecasting "
"methods are available. See [enum CCDMode] for details."
msgstr ""
"连续碰撞检测模式。\n"
"连续碰撞检测尝试预测一个移动的物体会在哪里碰撞,而不是移动它并在碰撞后纠正它"
"的运动。连续碰撞检测速度较慢,但更精确,并且与快速移动的小物体发生碰撞时遗漏"
"更少。可以使用光线投射和形状投射方法。有关详细信息,请参阅 [enum CCDMode]。"

#: doc/classes/RigidBody2D.xml:129
msgid ""
"If [code]true[/code], internal force integration is disabled for this body. "
"Aside from collision response, the body will only move as determined by the "
"[method _integrate_forces] function."
msgstr ""
"如果 [code]true[/code],则禁用该物体的内力积分。除了碰撞响应,物体只会按照 "
"[method _integrate_forces] 函数确定的方式移动。"

#: doc/classes/RigidBody2D.xml:132
#, fuzzy
msgid ""
"The body's friction. Values range from [code]0[/code] (frictionless) to "
"[code]1[/code] (maximum friction).\n"
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""
"物体的摩擦。取值范围从[code]0[/code](无摩擦)到[code]1[/code](最大摩擦)。"

#: doc/classes/RigidBody2D.xml:136
msgid ""
"Multiplies the gravity applied to the body. The body's gravity is calculated "
"from the [b]Default Gravity[/b] value in [b]Project > Project Settings > "
"Physics > 2d[/b] and/or any additional gravity vector applied by [Area2D]s."
msgstr ""
"乘以施加在物体上的重力。物体的重力是由[b]Project(项目) > Project Settings (项"
"目设置)> Physics(物理) > 2d>[/b]中的[b]Default Gravity(默认重力)[/b]值和/或任"
"何由[Area2D]应用的额外重力矢量计算出来的。"

#: doc/classes/RigidBody2D.xml:139
msgid ""
"The body's moment of inertia. This is like mass, but for rotation: it "
"determines how much torque it takes to rotate the body. The moment of "
"inertia is usually computed automatically from the mass and the shapes, but "
"this function allows you to set a custom value. Set 0 inertia to return to "
"automatically computing it."
msgstr ""
"物体的惯性矩。这就像质量,但对于旋转来说:它决定了旋转身体需要多大的力矩。惯"
"性矩通常是由质量和形状自动计算出来的,但是这个函数允许你设置一个自定义值。设"
"置0惯性会切换回自动计算。"

#: doc/classes/RigidBody2D.xml:142
#, fuzzy
msgid ""
"Damps the body's [member linear_velocity]. If [code]-1[/code], the body will "
"use the [b]Default Linear Damp[/b] in [b]Project > Project Settings > "
"Physics > 2d[/b].\n"
"See [member ProjectSettings.physics/2d/default_linear_damp] for more details "
"about damping."
msgstr ""
"对物体的[member linear_velocity]进行阻尼运算。如果[code]-1[/code],物体将使用"
"[b]Project(项目) > Project Settings(项目设置) > Physics(物理)> 2d[/b]中的"
"[b]Default Linear Damp(默认线性阻尼)[/b]。"

#: doc/classes/RigidBody2D.xml:152
msgid "The body's mode. See [enum Mode] for possible values."
msgstr "物体的模式。可能的值见[enum Mode]。"

#: doc/classes/RigidBody2D.xml:162
msgid ""
"The body's weight based on its mass and the [b]Default Gravity[/b] value in "
"[b]Project > Project Settings > Physics > 2d[/b]."
msgstr ""
"物体的重量基于其质量和 [b] Project(项目) > Project Settings(项目设置) > "
"Physics(物理)> 2d[/b] 中的 [b] Default Gravity(默认重力) [/b] 值。"

#: doc/classes/RigidBody2D.xml:169
#, fuzzy
msgid ""
"Emitted when a collision with another [PhysicsBody2D] or [TileMap] occurs. "
"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
"contacts_reported] to be set high enough to detect all the collisions. "
"[TileMap]s are detected if the [TileSet] has Collision [Shape2D]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody2D] or [TileMap]."
msgstr ""
"当一个物体与这个物体接触时发出。需要将 [member contact_monitor] 设置为 "
"[code]true[/code] 并将 [member contacts_reported] 设置为足够高以检测所有碰"
"撞。\n"
"此信号不仅接收与此碰撞的物体,还接收其 [RID] ([code]body_id[/code])、碰撞物体"
"的形状索引 ([code]body_shape[/code]) 和形状索引从这个身体 "
"([code]local_shape[/code]) 另一个身体碰撞。"

#: doc/classes/RigidBody2D.xml:176
#, fuzzy
msgid ""
"Emitted when the collision with another [PhysicsBody2D] or [TileMap] ends. "
"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
"contacts_reported] to be set high enough to detect all the collisions. "
"[TileMap]s are detected if the [TileSet] has Collision [Shape2D]s.\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody2D] or [TileMap]."
msgstr ""
"当一个物体与这个物体接触时发出。需要将 [member contact_monitor] 设置为 "
"[code]true[/code] 并将 [member contacts_reported] 设置为足够高以检测所有碰"
"撞。\n"
"此信号不仅接收与此碰撞的物体,还接收其 [RID] ([code]body_id[/code])、碰撞物体"
"的形状索引 ([code]body_shape[/code]) 和形状索引从这个身体 "
"([code]local_shape[/code]) 另一个身体碰撞。"

#: doc/classes/RigidBody2D.xml:186
msgid ""
"Emitted when one of this RigidBody2D's [Shape2D]s collides with another "
"[PhysicsBody2D] or [TileMap]'s [Shape2D]s. Requires [member contact_monitor] "
"to be set to [code]true[/code] and [member contacts_reported] to be set high "
"enough to detect all the collisions. [TileMap]s are detected if the "
"[TileSet] has Collision [Shape2D]s.\n"
"[code]body_id[/code] the [RID] of the other [PhysicsBody2D] or [TileSet]'s "
"[CollisionObject2D] used by the [Physics2DServer].\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody2D] or [TileMap].\n"
"[code]body_shape[/code] the index of the [Shape2D] of the other "
"[PhysicsBody2D] or [TileMap] used by the [Physics2DServer].\n"
"[code]local_shape[/code] the index of the [Shape2D] of this RigidBody2D used "
"by the [Physics2DServer]."
msgstr ""

#: doc/classes/RigidBody2D.xml:199
msgid ""
"Emitted when the collision between one of this RigidBody2D's [Shape2D]s and "
"another [PhysicsBody2D] or [TileMap]'s [Shape2D]s ends. Requires [member "
"contact_monitor] to be set to [code]true[/code] and [member "
"contacts_reported] to be set high enough to detect all the collisions. "
"[TileMap]s are detected if the [TileSet] has Collision [Shape2D]s.\n"
"[code]body_id[/code] the [RID] of the other [PhysicsBody2D] or [TileSet]'s "
"[CollisionObject2D] used by the [Physics2DServer].\n"
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody2D] or [TileMap].\n"
"[code]body_shape[/code] the index of the [Shape2D] of the other "
"[PhysicsBody2D] or [TileMap] used by the [Physics2DServer].\n"
"[code]local_shape[/code] the index of the [Shape2D] of this RigidBody2D used "
"by the [Physics2DServer]."
msgstr ""

#: doc/classes/RigidBody2D.xml:215
msgid ""
"Rigid mode. The body behaves as a physical object. It collides with other "
"bodies and responds to forces applied to it. This is the default mode."
msgstr ""
"刚性模式。物体的行为就像一个物理物体。它与其他物体发生碰撞,并对施加在它身上"
"的力做出反应。这是默认模式。"

#: doc/classes/RigidBody2D.xml:218
msgid "Static mode. The body behaves like a [StaticBody2D] and does not move."
msgstr "静态模式。物体的行为就像一个[StaticBody2D],不会移动。"

#: doc/classes/RigidBody2D.xml:221
msgid ""
"Character mode. Similar to [constant MODE_RIGID], but the body can not "
"rotate."
msgstr "角色模式。与[constant MODE_RIGID]类似,但主体不能旋转。"

#: doc/classes/RigidBody2D.xml:224
msgid ""
"Kinematic mode. The body behaves like a [KinematicBody2D], and must be moved "
"by code."
msgstr ""
"运动学模式。这个物体的行为就像一个[KinematicBody2D],必须通过代码来移动。"

#: doc/classes/RigidBody2D.xml:227
msgid ""
"Continuous collision detection disabled. This is the fastest way to detect "
"body collisions, but can miss small, fast-moving objects."
msgstr ""
"禁用连续碰撞检测。这是检测身体碰撞的最快方法,但可能会错过小型、快速移动的物"
"体。"

#: doc/classes/RigidBody2D.xml:230
msgid ""
"Continuous collision detection enabled using raycasting. This is faster than "
"shapecasting but less precise."
msgstr "使用射线投射启用连续碰撞检测。这比 shapecasting 快,但精度较低。"

#: doc/classes/RigidBody2D.xml:233
msgid ""
"Continuous collision detection enabled using shapecasting. This is the "
"slowest CCD method and the most precise."
msgstr ""
"使用 shapecasting 启用连续碰撞检测。这是最慢的 CCD 方法,也是最精确的。"

#: doc/classes/Room.xml:4
msgid "Room node, used to group objects together locally for [Portal] culling."
msgstr ""

#: doc/classes/Room.xml:7
msgid ""
"The [Portal] culling system requires levels to be built using objects "
"grouped together by location in areas called [Room]s. In many cases these "
"will correspond to actual rooms in buildings, but not necessarily (a canyon "
"area may be treated as a room).\n"
"Any [VisualInstance] that is a child or grandchild of a [Room] will be "
"assigned to that room, if the [code]portal_mode[/code] of that "
"[VisualInstance] is set to [code]STATIC[/code] (does not move) or "
"[code]DYNAMIC[/code] (moves only within the room).\n"
"Internally the room boundary must form a [b]convex hull[/b], and by default "
"this is determined automatically by the geometry of the objects you place "
"within the room.\n"
"You can alternatively precisely specify a [b]manual bound[/b]. If you place "
"a [MeshInstance] with a name prefixed by [code]Bound_[/code], it will turn "
"off the bound generation from geometry, and instead use the vertices of this "
"MeshInstance to directly calculate a convex hull during the conversion stage "
"(see [RoomManager]).\n"
"In order to see from one room into an adjacent room, [Portal]s must be "
"placed over non-occluded openings between rooms. These will often be placed "
"over doors and windows."
msgstr ""

#: doc/classes/Room.xml:27
msgid ""
"If [code]points[/code] are set, the [Room] bounding convex hull will be "
"built from these points. If no points are set, the room bound will either be "
"derived from a manual bound ([MeshInstance] with name prefix [code]Bound_[/"
"code]), or from the geometry within the room.\n"
"Note that you can use the [code]Generate Points[/code] editor button to get "
"started. This will use either the geometry or manual bound to generate the "
"room hull, and save the resulting points, allowing you to edit them to "
"further refine the bound."
msgstr ""

#: doc/classes/Room.xml:31
msgid ""
"The [code]simplify[/code] value determines to what degree room hulls "
"(bounds) are simplified, by removing similar planes. A value of 0 gives no "
"simplification, 1 gives maximum simplification."
msgstr ""

#: doc/classes/Room.xml:34
msgid ""
"The room hull simplification can either use the default value set in the "
"[RoomManager], or override this and use the per room setting."
msgstr ""

#: doc/classes/RoomGroup.xml:4
msgid "Groups [Room]s together to allow common functionality."
msgstr ""

#: doc/classes/RoomGroup.xml:7
msgid ""
"Although [Room] behaviour can be specified individually, sometimes it is "
"faster and more convenient to write functionality for a group of rooms.\n"
"[RoomGroup]s should be placed as children of the [b]room list[/b] (the "
"parent [Node] of your [Room]s), and [Room]s should be placed in turn as "
"children of a [RoomGroup] in order to assign them to the RoomGroup.\n"
"A [RoomGroup] can for example be used to specify [Room]s that are "
"[b]outside[/b], and switch on or off a directional light, sky, or rain "
"effect as the player enters / exits the area.\n"
"[RoomGroup]s receive [b]gameplay callbacks[/b] when the "
"[code]gameplay_monitor[/code] is switched on, as [code]signal[/code]s or "
"[code]notification[/code]s as they enter and exit the [b]gameplay area[/b] "
"(see [RoomManager] for details)."
msgstr ""

#: doc/classes/RoomGroup.xml:18
msgid ""
"This priority will be applied to [Room]s within the group. The [Room] "
"priority allows the use of [b]internal rooms[/b], rooms [i]within[/i] "
"another room or rooms.\n"
"When the [Camera] is within more than one room (regular and internal), the "
"higher priority room will take precedence. So with for example, a house "
"inside a terrain 'room', you would make the house higher priority, so that "
"when the camera is within the house, the house is used as the source room, "
"but outside the house, the terrain room would be used instead."
msgstr ""

#: doc/classes/RoomManager.xml:4
msgid "The RoomManager node is used to control the portal culling system."
msgstr ""

#: doc/classes/RoomManager.xml:7
msgid ""
"In order to utilize the portal occlusion culling system, you must build your "
"level using [Room]s and [Portal]s. Before these can be used at runtime, they "
"must undergo a short conversion process to build the [code]room graph[/"
"code], runtime data needed for portal culling. The [code]room graph[/code] "
"is controlled by the [RoomManager] node, and the [RoomManager] also contains "
"settings that are common throughout the portal system."
msgstr ""

#: doc/classes/RoomManager.xml:15
msgid ""
"This function clears all converted data from the [b]room graph[/b]. Use this "
"before unloading a level, when transitioning from level to level, or "
"returning to a main menu."
msgstr ""

#: doc/classes/RoomManager.xml:21
msgid ""
"This is the most important function in the whole portal culling system. "
"Without it, the system cannot function.\n"
"First it goes through every [Room] that is a child of the [code]room list[/"
"code] node (and [RoomGroup]s within) and converts and adds it to the "
"[code]room graph[/code].\n"
"This works for both [Room] nodes, and [Spatial] nodes that follow a special "
"naming convention. They should begin with the prefix [i]'Room_'[/i], "
"followed by the name you wish to give the room, e.g. [i]'Room_lounge'[/i]. "
"This will automatically convert such [Spatial]s to [Room] nodes for you. "
"This is useful if you want to build you entire room system in e.g. Blender, "
"and reimport multiple times as you work on the level.\n"
"The conversion will try to assign [VisualInstance]s that are children and "
"grandchildren of the [Room] to the room. These should be given a suitable "
"[code]portal mode[/code] (see the [CullInstance] documentation). The default "
"[code]portal mode[/code] is [code]STATIC[/code] - objects which are not "
"expected to move while the level is played, which will typically be most "
"objects.\n"
"The conversion will usually use the geometry of these [VisualInstance]s (and "
"the [Portal]s) to calculate a convex hull bound for the room. These bounds "
"will be shown in the editor with a wireframe. Alternatively you can specify "
"a manual custom bound for any room, see the [Room] documentation.\n"
"By definition, [Camera]s within a room can see everything else within the "
"room (that is one advantage to using convex hulls). However, in order to see "
"from one room into adjacent rooms, you must place [Portal]s, which represent "
"openings that the camera can see through, like windows and doors.\n"
"[Portal]s are really just specialized [MeshInstance]s. In fact you will "
"usually first create a portal by creating a [MeshInstance], especially a "
"[code]plane[/code] mesh instance. You would move the plane in the editor to "
"cover a window or doorway, with the front face pointing outward from the "
"room. To let the conversion process know you want this mesh to be a portal, "
"again we use a special naming convention. [MeshInstance]s to be converted to "
"a [Portal] should start with the prefix [i]'Portal_'[/i].\n"
"You now have a choice - you can leave the name as [i]'Portal_'[/i] and allow "
"the system to automatically detect the nearest [Room] to link. In most cases "
"this will work fine.\n"
"An alternative method is to specify the [Room] to link to manually, "
"appending a suffix to the portal name, which should be the name of the room "
"you intend to link to. For example [i]'Portal_lounge'[/i] will attempt to "
"link to the room named [i]'Room_lounge'[/i].\n"
"There is a special case here - Godot does not allow two nodes to share the "
"same name. What if you want to manually have more than one portal leading "
"into the same room? Surely they will need to both be called, e.g. "
"[i]'Portal_lounge'[/i]?\n"
"The solution is a wildcard character. After the room name, if you use the "
"character [i]'*'[/i], this character and anything following it will be "
"ignored. So you can use for example [i]'Portal_lounge*0'[/i], "
"[i]'Portal_lounge*1'[/i] etc.\n"
"Note that [Portal]s that have already been converted to [Portal] nodes "
"(rather than [MeshInstance]s) still need to follow the same naming "
"convention, as they will be relinked each time during conversion.\n"
"It is recommended that you only place objects in rooms that are desired to "
"stay within those rooms - i.e. [code]portal mode[/code]s [code]STATIC[/code] "
"or [code]DYNAMIC[/code] (not crossing portals). [code]GLOBAL[/code] and "
"[code]ROAMING[/code] objects are best placed in another part of the scene "
"tree, to avoid confusion. See [CullInstance] for a full description of "
"portal modes."
msgstr ""

#: doc/classes/RoomManager.xml:39
msgid ""
"Switches the portal culling system on and off.\n"
"It is important to note that when portal culling is active, it is "
"responsible for [b]all[/b] the 3d culling. Some editor functionality may be "
"more difficult to use, so switching the active flag is intended to be used "
"to make sure your [Room] / [Portal] layout works within the editor.\n"
"Switching to [code]active[/code] will have no effect when the [code]room "
"graph[/code] is unloaded (the rooms have not yet been converted)."
msgstr ""

#: doc/classes/RoomManager.xml:44
msgid ""
"Large objects can 'sprawl' over (be present in) more than one room. It can "
"be useful to visualize which objects are sprawling outside the current "
"room.\n"
"Toggling this setting turns this debug view on and off."
msgstr ""

#: doc/classes/RoomManager.xml:48
msgid ""
"Usually we don't want objects that only [b]just[/b] cross a boundary into an "
"adjacent [Room] to sprawl into that room. To prevent this, each [Portal] has "
"an extra margin, or tolerance zone where objects can enter without sprawling "
"to a neighbouring room.\n"
"In most cases you can set this here for all portals. It is possible to "
"override the margin for each portal."
msgstr ""

#: doc/classes/RoomManager.xml:52
msgid ""
"When using a partial or full PVS, the gameplay monitor allows you to receive "
"callbacks when roaming objects or rooms enter or exit the [b]gameplay area[/"
"b]. The gameplay area is defined as either the primary, or secondary PVS.\n"
"These callbacks allow you to, for example, reduce processing for objects "
"that are far from the player, or turn on and off AI.\n"
"You can either choose to receive callbacks as notifications through the "
"[code]_notification[/code] function, or as signals.\n"
"[code]NOTIFICATION_ENTER_GAMEPLAY[/code]\n"
"[code]NOTIFICATION_EXIT_GAMEPLAY[/code]\n"
"Signals: [code]\"gameplay_entered\"[/code], [code]\"gameplay_exited\"[/code]"
msgstr ""

#: doc/classes/RoomManager.xml:60
msgid ""
"If enabled, the system will attempt to merge similar meshes (particularly in "
"terms of materials) within [Room]s during conversion. This can significantly "
"reduce the number of drawcalls and state changes required during rendering, "
"albeit at a cost of reduced culling granularity.\n"
"[b]Note:[/b] This operates at runtime during the conversion process, and "
"will only operate on exported or running projects, in order to prevent "
"accidental alteration to the scene and loss of data."
msgstr ""

#: doc/classes/RoomManager.xml:64
msgid ""
"When converting rooms, the editor will warn you if overlap is detected "
"between rooms. Overlap can interfere with determining the room that cameras "
"and objects are within. A small amount can be acceptable, depending on your "
"level. Here you can alter the threshold at which the editor warning appears. "
"There are no other side effects."
msgstr ""

#: doc/classes/RoomManager.xml:67
msgid ""
"Portal rendering is recursive - each time a portal is seen through an "
"earlier portal there is some cost. For this reason, and to prevent the "
"possibility of infinite loops, this setting provides a hard limit on the "
"recursion depth.\n"
"[b]Note:[/b] This value is unused when using [code]Full[/code] PVS mode."
msgstr ""

#: doc/classes/RoomManager.xml:71
msgid ""
"Portal culling normally operates using the current [Camera] / [Camera]s, "
"however for debugging purposes within the editor, you can use this setting "
"to override this behaviour and force it to use a particular camera to get a "
"better idea of what the occlusion culling is doing."
msgstr ""

#: doc/classes/RoomManager.xml:75
msgid ""
"Optionally during conversion the potentially visible set (PVS) of rooms that "
"are potentially visible from each room can be calculated. This can be used "
"either to aid in dynamic portal culling, or to totally replace portal "
"culling.\n"
"In [code]Full[/code] PVS Mode, all objects within the potentially visible "
"rooms will be frustum culled, and rendered if they are within the view "
"frustum."
msgstr ""

#: doc/classes/RoomManager.xml:79
msgid ""
"During the conversion process, the geometry of objects within [Room]s, or a "
"custom specified manual bound, are used to generate a [b]convex hull bound[/"
"b].\n"
"This convex hull is [b]required[/b] in the visibility system, and is used "
"for many purposes. Most importantly, it is used to decide whether the "
"[Camera] (or an object) is within a [Room]. The convex hull generating "
"algorithm is good, but occasionally it can create too many (or too few) "
"planes to give a good representation of the room volume.\n"
"The [code]room_simplify[/code] value can be used to gain fine control over "
"this process. It determines how similar planes can be for them to be "
"considered the same (and duplicates removed). The value can be set between 0 "
"(no simplification) and 1 (maximum simplification).\n"
"The value set here is the default for all rooms, but individual rooms can "
"override this value if desired.\n"
"The room convex hulls are shown as a wireframe in the editor."
msgstr ""

#: doc/classes/RoomManager.xml:86
msgid ""
"For the [Room] conversion process to succeed, you must point the "
"[RoomManager] to the parent [Node] of your [Room]s and [RoomGroup]s, which "
"we refer to as the [code]roomlist[/code] (the roomlist is not a special node "
"type, it is normally just a [Spatial])."
msgstr ""

#: doc/classes/RoomManager.xml:89
msgid "Shows the [Portal] margins when the portal gizmo is used in the editor."
msgstr ""

#: doc/classes/RoomManager.xml:92
msgid ""
"When receiving gameplay callbacks when objects enter and exit gameplay, the "
"[b]gameplay area[/b] can be defined by either the primary PVS (potentially "
"visible set) of [Room]s, or the secondary PVS (the primary PVS and their "
"neighbouring [Room]s).\n"
"Sometimes using the larger gameplay area of the secondary PVS may be "
"preferable."
msgstr ""

#: doc/classes/RoomManager.xml:98
msgid ""
"Use only [Portal]s at runtime to determine visibility. PVS will not be "
"generated at [Room]s conversion, and gameplay notifications cannot be used."
msgstr ""

#: doc/classes/RoomManager.xml:101
msgid ""
"Use a combination of PVS and [Portal]s to determine visibility (this is "
"usually fastest and most accurate)."
msgstr ""

#: doc/classes/RoomManager.xml:104
msgid ""
"Use only the PVS (potentially visible set) of [Room]s to determine "
"visibility."
msgstr ""

#: doc/classes/RootMotionView.xml:4
msgid "Editor-only helper for setting up root motion in [AnimationTree]."
msgstr ""

#: doc/classes/RootMotionView.xml:7
msgid ""
"[i]Root motion[/i] refers to an animation technique where a mesh's skeleton "
"is used to give impulse to a character. When working with 3D animations, a "
"popular technique is for animators to use the root skeleton bone to give "
"motion to the rest of the skeleton. This allows animating characters in a "
"way where steps actually match the floor below. It also allows precise "
"interaction with objects during cinematics. See also [AnimationTree].\n"
"[b]Note:[/b] [RootMotionView] is only visible in the editor. It will be "
"hidden automatically in the running project, and will also be converted to a "
"plain [Node] in the running project. This means a script attached to a "
"[RootMotionView] node [i]must[/i] have [code]extends Node[/code] instead of "
"[code]extends RootMotionView[/code]. Additionally, it must not be a "
"[code]@tool[/code] script."
msgstr ""

#: doc/classes/RootMotionView.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree."
"html#root-motion"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/animation/animation_tree."
"html"

#: doc/classes/RootMotionView.xml:17
msgid "Path to an [AnimationTree] node to use as a basis for root motion."
msgstr ""

#: doc/classes/RootMotionView.xml:20
#, fuzzy
msgid "The grid's cell size in 3D units."
msgstr "图块地图的单元大小。"

#: doc/classes/RootMotionView.xml:23
#, fuzzy
msgid "The grid's color."
msgstr "线的颜色。"

#: doc/classes/RootMotionView.xml:26
msgid ""
"The grid's radius in 3D units. The grid's opacity will fade gradually as the "
"distance from the origin increases until this [member radius] is reached."
msgstr ""

#: doc/classes/RootMotionView.xml:29
#, fuzzy
msgid ""
"If [code]true[/code], the grid's points will all be on the same Y coordinate "
"([i]local[/i] Y = 0). If [code]false[/code], the points' original Y "
"coordinate is preserved."
msgstr ""
"如果[code] true [/code],则粒子将使用父节点的坐标空间。如果[code]false[/"
"code],则使用全局坐标。"

#: doc/classes/SceneState.xml:4
msgid "A script interface to a scene file's data."
msgstr "场景文件数据的脚本接口。"

#: doc/classes/SceneState.xml:7
msgid ""
"Maintains a list of resources, nodes, exported, and overridden properties, "
"and built-in scripts associated with a scene.\n"
"This class cannot be instantiated directly, it is retrieved for a given "
"scene as the result of [method PackedScene.get_state]."
msgstr ""
"维护一个与场景相关的资源、节点、导出的和重写的属性以及内置脚本的列表。\n"
"这个类不能直接实例化,它是作为[method PackedScene.get_state]的结果为一个给定"
"的场景检索的。"

#: doc/classes/SceneState.xml:17
msgid ""
"Returns the list of bound parameters for the signal at [code]idx[/code]."
msgstr "返回 [code]idx[/code] 处信号的绑定参数列表。"

#: doc/classes/SceneState.xml:23
msgid ""
"Returns the number of signal connections in the scene.\n"
"The [code]idx[/code] argument used to query connection metadata in other "
"[code]get_connection_*[/code] methods in the interval [code][0, "
"get_connection_count() - 1][/code]."
msgstr ""
"返回场景中的信号连接数。\n"
"用于查询其他[code]get_connection_*[/code]方法中的连接元数据的[code]idx[/code]"
"参数,其间隔时间为[code][0, get_connection_count() - 1][/code]。"

#: doc/classes/SceneState.xml:31
msgid ""
"Returns the connection flags for the signal at [code]idx[/code]. See [enum "
"Object.ConnectFlags] constants."
msgstr ""
"返回[code]idx[/code]处的信号的连接标志。参见[enum Object.ConnectFlags]常数。"

#: doc/classes/SceneState.xml:38
msgid "Returns the method connected to the signal at [code]idx[/code]."
msgstr "返回连接到[code]idx[/code]处信号的方法。"

#: doc/classes/SceneState.xml:45
msgid "Returns the name of the signal at [code]idx[/code]."
msgstr "返回 [code]idx[/code] 处的信号名称。"

#: doc/classes/SceneState.xml:52
msgid ""
"Returns the path to the node that owns the signal at [code]idx[/code], "
"relative to the root node."
msgstr "返回拥有[code]idx[/code]处信号的节点的相对于根节点的路径。"

#: doc/classes/SceneState.xml:59
msgid ""
"Returns the path to the node that owns the method connected to the signal at "
"[code]idx[/code], relative to the root node."
msgstr ""
"返回到拥有连接到 [code]idx[/code] 处的信号的方法的节点的相对于根节点的路径。"

#: doc/classes/SceneState.xml:65
msgid ""
"Returns the number of nodes in the scene.\n"
"The [code]idx[/code] argument used to query node data in other "
"[code]get_node_*[/code] methods in the interval [code][0, get_node_count() - "
"1][/code]."
msgstr ""
"返回场景中节点的数量。\n"
"[code]idx[/code]参数用于在其他[code]get_node_*[/code]方法中查询节点数据,其间"
"隔为[code][0, get_node_count() - 1][/code]。"

#: doc/classes/SceneState.xml:73
msgid ""
"Returns the list of group names associated with the node at [code]idx[/code]."
msgstr "返回与 [code]idx[/code] 处的节点关联的组名列表。"

#: doc/classes/SceneState.xml:80
msgid ""
"Returns the node's index, which is its position relative to its siblings. "
"This is only relevant and saved in scenes for cases where new nodes are "
"added to an instanced or inherited scene among siblings from the base scene. "
"Despite the name, this index is not related to the [code]idx[/code] argument "
"used here and in other methods."
msgstr ""
"返回节点的索引,即它相对于其兄弟节点的位置。这仅在将新节点添加到基础场景的兄"
"弟节点之间的实例化或继承场景中的情况下,才关联并保存在场景中。尽管名称如此,"
"但该索引与此处和其他方法中使用的 [code]idx[/code] 参数无关。"

#: doc/classes/SceneState.xml:87
msgid ""
"Returns a [PackedScene] for the node at [code]idx[/code] (i.e. the whole "
"branch starting at this node, with its child nodes and resources), or "
"[code]null[/code] if the node is not an instance."
msgstr ""
"返回[code]idx[/code]处的节点的[PackedScene](即从该节点开始的整个分支,包括其"
"子节点和资源),如果该节点不是一个实例,则返回[code]null[/code]。"

#: doc/classes/SceneState.xml:94
msgid ""
"Returns the path to the represented scene file if the node at [code]idx[/"
"code] is an [InstancePlaceholder]."
msgstr ""
"如果[code]idx[/code]处的节点是一个[InstancePlaceholder],返回所代表的场景文件"
"的路径。"

#: doc/classes/SceneState.xml:101
msgid "Returns the name of the node at [code]idx[/code]."
msgstr "返回[code]idx[/code]处的节点名称。"

#: doc/classes/SceneState.xml:108
msgid ""
"Returns the path to the owner of the node at [code]idx[/code], relative to "
"the root node."
msgstr "返回相对于根节点的 在[code]idx[/code] 处节点的所有者的路径。"

#: doc/classes/SceneState.xml:116
msgid ""
"Returns the path to the node at [code]idx[/code].\n"
"If [code]for_parent[/code] is [code]true[/code], returns the path of the "
"[code]idx[/code] node's parent instead."
msgstr ""
"返回[code]idx[/code]处的节点的路径。\n"
"如果[code]for_parent[/code]是[code]true[/code],则返回[code]idx[/code]节点的"
"父节点的路径。"

#: doc/classes/SceneState.xml:124
msgid ""
"Returns the number of exported or overridden properties for the node at "
"[code]idx[/code].\n"
"The [code]prop_idx[/code] argument used to query node property data in other "
"[code]get_node_property_*[/code] methods in the interval [code][0, "
"get_node_property_count() - 1][/code]."
msgstr ""
"返回节点在 [code]idx[/code] 处导出或覆盖的属性数。\n"
"[code]prop_idx[/code] 参数用于在区间 [code][0, get_node_property_count() - 1]"
"[/code] 的其他 [code]get_node_property_*[/code] 方法中查询节点属性数据。"

#: doc/classes/SceneState.xml:133
msgid ""
"Returns the name of the property at [code]prop_idx[/code] for the node at "
"[code]idx[/code]."
msgstr "返回[code]prop_idx[/code]处的属性名称,用于[code]idx[/code]处的节点。"

#: doc/classes/SceneState.xml:141
msgid ""
"Returns the value of the property at [code]prop_idx[/code] for the node at "
"[code]idx[/code]."
msgstr "返回 [code]idx[/code] 节点的 [code]prop_idx[/code] 属性值。"

#: doc/classes/SceneState.xml:148
msgid "Returns the type of the node at [code]idx[/code]."
msgstr "返回[code]idx[/code]处节点的类型。"

#: doc/classes/SceneState.xml:155
msgid ""
"Returns [code]true[/code] if the node at [code]idx[/code] is an "
"[InstancePlaceholder]."
msgstr ""
"如果[code]idx[/code]处的节点是一个[InstancePlaceholder],返回[code]true[/"
"code]。"

#: doc/classes/SceneState.xml:161
msgid ""
"If passed to [method PackedScene.instance], blocks edits to the scene state."
msgstr "如果传递给[method PackedScene.instance],则阻止对场景状态的编辑。"

#: doc/classes/SceneState.xml:164
msgid ""
"If passed to [method PackedScene.instance], provides inherited scene "
"resources to the local scene.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
"如果传递给[method PackedScene.instance],提供继承的场景资源给本地场景。\n"
"[b]注意:[/b] 只在编辑器构建中可用。"

#: doc/classes/SceneState.xml:168
msgid ""
"If passed to [method PackedScene.instance], provides local scene resources "
"to the local scene. Only the main scene should receive the main edit state.\n"
"[b]Note:[/b] Only available in editor builds."
msgstr ""
"如果传递给[method PackedScene.instance],向本地场景提供本地场景资源。只有主场"
"景应该接收主编辑状态。\n"
"[b]注意:[/b] 只在编辑器构建中可用。"

#: doc/classes/SceneTree.xml:4
msgid "Manages the game loop via a hierarchy of nodes."
msgstr "通过节点层次结构管理游戏循环。"

#: doc/classes/SceneTree.xml:7
#, fuzzy
msgid ""
"As one of the most important classes, the [SceneTree] manages the hierarchy "
"of nodes in a scene as well as scenes themselves. Nodes can be added, "
"retrieved and removed. The whole scene tree (and thus the current scene) can "
"be paused. Scenes can be loaded, switched and reloaded.\n"
"You can also use the [SceneTree] to organize your nodes into groups: every "
"node can be assigned as many groups as you want to create, e.g. an \"enemy\" "
"group. You can then iterate these groups or even call methods and set "
"properties on all the group's members at once.\n"
"[SceneTree] is the default [MainLoop] implementation used by scenes, and is "
"thus in charge of the game loop."
msgstr ""
"作为最重要的类之一,[SceneTree]管理着场景中节点的层次结构以及场景本身。节点可"
"以被添加、检索和删除。整个场景树(以及当前场景)可以被暂停。场景可以被加载、"
"切换和重新加载。\n"
"你也可以使用[SceneTree]将你的节点组织成组:每个节点都可以被分配到你想要创建的"
"组,例如一个 \"敌人 \"组。然后你可以迭代这些组,甚至可以一次调用方法并设置所"
"有组成员的属性。\n"
"[SceneTree]是场景使用的默认[MainLoop]实现,因此负责游戏的循环。"

#: doc/classes/SceneTree.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/step_by_step/scene_tree."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/step_by_step/"
"scene_tree.html"

#: doc/classes/SceneTree.xml:13
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/viewports/multiple_resolutions."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/viewports/"
"multiple_resolutions.html"

#: doc/classes/SceneTree.xml:21
msgid ""
"Calls [code]method[/code] on each member of the given group. You can pass "
"arguments to [code]method[/code] by specifying them at the end of the method "
"call. This method is equivalent of calling [method call_group_flags] with "
"[constant GROUP_CALL_DEFAULT] flag.\n"
"[b]Note:[/b] [code]method[/code] may only have 5 arguments at most (7 "
"arguments passed to this method in total).\n"
"[b]Note:[/b] [method call_group] will always call methods with an one-frame "
"delay, in a way similar to [method Object.call_deferred]. To call methods "
"immediately, use [method call_group_flags] with the [constant "
"GROUP_CALL_REALTIME] flag."
msgstr ""

#: doc/classes/SceneTree.xml:32
msgid ""
"Calls [code]method[/code] on each member of the given group, respecting the "
"given [enum GroupCallFlags]. You can pass arguments to [code]method[/code] "
"by specifying them at the end of the method call.\n"
"[b]Note:[/b] [code]method[/code] may only have 5 arguments at most (8 "
"arguments passed to this method in total).\n"
"[codeblock]\n"
"get_tree().call_group_flags(SceneTree.GROUP_CALL_REALTIME | SceneTree."
"GROUP_CALL_REVERSE, \"bases\", \"destroy\") # Call the method immediately "
"and in reverse order.\n"
"[/codeblock]"
msgstr ""

#: doc/classes/SceneTree.xml:43
#, fuzzy
msgid ""
"Changes the running scene to the one at the given [code]path[/code], after "
"loading it into a [PackedScene] and creating a new instance.\n"
"Returns [constant OK] on success, [constant ERR_CANT_OPEN] if the "
"[code]path[/code] 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 on the next idle frame. You won't be able to access it "
"immediately after the [method change_scene] call."
msgstr ""
"将正在运行的场景改变为给定的[code]path[/code]上的场景,在将其加载到一个"
"[PackedScene]中并创建一个新的实例。\n"
"成功时返回[constant OK],如果[code]path[/code]不能被加载到一个[PackedScene]"
"中,则返回[constant ERR_CANT_CREATE],如果该场景不能被实例化。"

#: doc/classes/SceneTree.xml:52
#, fuzzy
msgid ""
"Changes the running scene to a new instance of the given [PackedScene].\n"
"Returns [constant OK] on success or [constant ERR_CANT_CREATE] if the scene "
"cannot be instantiated.\n"
"[b]Note:[/b] The scene change is deferred, which means that the new scene "
"node is added on the next idle frame. You won't be able to access it "
"immediately after the [method change_scene_to] call."
msgstr ""
"将正在运行的场景改变为一个给定的[PackedScene]的新实例。\n"
"成功时返回[constant OK],如果场景不能被实例化,则返回[constant "
"ERR_CANT_CREATE]。"

#: doc/classes/SceneTree.xml:62
#, fuzzy
msgid ""
"Returns a [SceneTreeTimer] which will [signal SceneTreeTimer.timeout] after "
"the given time in seconds elapsed in this [SceneTree]. If "
"[code]pause_mode_process[/code] is set to [code]false[/code], pausing the "
"[SceneTree] will also pause the timer.\n"
"Commonly used to create a one-shot delay timer as in the following example:\n"
"[codeblock]\n"
"func some_function():\n"
"    print(\"start\")\n"
"    yield(get_tree().create_timer(1.0), \"timeout\")\n"
"    print(\"end\")\n"
"[/codeblock]\n"
"The timer will be automatically freed after its time elapses."
msgstr ""
"返回一个[SceneTreeTimer],在这个[SceneTree]中经过给定的时间(秒)后,该"
"[SceneTreeTimer.timeout]将发出信号。如果[code]pause_mode_process[/code]被设置"
"为[code]false[/code],暂停[SceneTree]也将暂停该定时器。\n"
"常用于创建一个一次性的延迟定时器,如下面的例子。\n"
"[codeblock]\n"
"func some_function():\n"
"    print(\"start\")\n"
"    yield(get_tree().create_timer(1.0), \"timeout\")\n"
"    print(\"end\")\n"
"[/codeblock]"

#: doc/classes/SceneTree.xml:76
msgid ""
"Returns the current frame number, i.e. the total frame count since the "
"application started."
msgstr "返回当前的帧数,即自应用程序启动以来的总帧数。"

#: doc/classes/SceneTree.xml:82
msgid ""
"Returns the peer IDs of all connected peers of this [SceneTree]'s [member "
"network_peer]."
msgstr ""
"返回此 [SceneTree] 的 [member network_peer] 的所有连接对等方的对等 ID。"

#: doc/classes/SceneTree.xml:88
msgid "Returns the unique peer ID of this [SceneTree]'s [member network_peer]."
msgstr "返回此 [SceneTree] 的 [member network_peer] 的唯一对等 ID。"

#: doc/classes/SceneTree.xml:94
msgid "Returns the number of nodes in this [SceneTree]."
msgstr "返回此[SceneTree]中的节点数。"

#: doc/classes/SceneTree.xml:101
msgid "Returns a list of all nodes assigned to the given group."
msgstr "返回一个分配给给定组的所有节点的列表。"

#: doc/classes/SceneTree.xml:107
msgid "Returns the sender's peer ID for the most recently received RPC call."
msgstr "返回最近收到的RPC调用的发送者的对等ID。"

#: doc/classes/SceneTree.xml:114
msgid "Returns [code]true[/code] if the given group exists."
msgstr "如果给定的组存在,返回[code]true[/code]。"

#: doc/classes/SceneTree.xml:126
#, fuzzy
msgid ""
"Returns [code]true[/code] if the most recent [InputEvent] was marked as "
"handled with [method set_input_as_handled]."
msgstr ""
"如果节点正在处理未被处理的输入(参见[方法set_process_unhandled_input]),则返回"
"[code]true[/code]。"

#: doc/classes/SceneTree.xml:132
msgid ""
"Returns [code]true[/code] if this [SceneTree]'s [member network_peer] is in "
"server mode (listening for connections)."
msgstr ""
"如果此 [SceneTree] 的 [member network_peer] 处于服务器模式(侦听连接),则返"
"回 [code]true[/code]。"

#: doc/classes/SceneTree.xml:140
msgid "Sends the given notification to all members of the [code]group[/code]."
msgstr "将给定的通知发送给 [code] group [/code] 的所有成员。"

#: doc/classes/SceneTree.xml:149
msgid ""
"Sends the given notification to all members of the [code]group[/code], "
"respecting the given [enum GroupCallFlags]."
msgstr ""
"将给定的通知发送给 [code] group [/code] 的所有成员,遵从给定的 [enum "
"GroupCallFlags]。"

#: doc/classes/SceneTree.xml:156
msgid ""
"Queues the given object for deletion, delaying the call to [method Object."
"free] to after the current frame."
msgstr "将给定的对象排队准备删除,即在当前帧之后调用 [method Object.free] 。"

#: doc/classes/SceneTree.xml:163
#, fuzzy
msgid ""
"Quits the application at the end of the current iteration. A process "
"[code]exit_code[/code] can optionally be passed as an argument. If this "
"argument is [code]0[/code] or greater, it will override the [member OS."
"exit_code] defined before quitting the application.\n"
"[b]Note:[/b] On iOS this method doesn't work. Instead, as recommended by the "
"iOS Human Interface Guidelines, the user is expected to close apps via the "
"Home button."
msgstr ""
"退出应用程序。进程 [code]exit_code[/code] 可以选择作为参数传递。如果此参数为 "
"[code]0[/code] 或更大,它将覆盖在退出应用程序之前定义的 [member OS."
"exit_code]。"

#: doc/classes/SceneTree.xml:170
msgid ""
"Reloads the currently active scene.\n"
"Returns [constant OK] on success, [constant ERR_UNCONFIGURED] if no [member "
"current_scene] was defined yet, [constant ERR_CANT_OPEN] if [member "
"current_scene] cannot be loaded into a [PackedScene], or [constant "
"ERR_CANT_CREATE] if the scene cannot be instantiated."
msgstr ""
"重新加载当前活动的场景。\n"
"成功时返回 [constant OK],如果尚未定义 [member current_scene],则返回 "
"[constant ERR_UNCONFIGURED],如果 [member current_scene] 无法加载到 "
"[PackedScene] 中,则返回 [constant ERR_CANT_OPEN],如果场景无法加载,则返回 "
"[constant ERR_CANT_CREATE]。"

#: doc/classes/SceneTree.xml:178
msgid ""
"If [code]true[/code], the application automatically accepts quitting. "
"Enabled by default.\n"
"For mobile platforms, see [method set_quit_on_go_back]."
msgstr ""
"如果[code]true[/code],应用程序自动接受退出。默认启用。\n"
"对于移动平台,请参见 [method set_quit_on_go_back]。"

#: doc/classes/SceneTree.xml:188
msgid ""
"Sets the given [code]property[/code] to [code]value[/code] on all members of "
"the given group."
msgstr ""
"在给定组的所有成员上将给定的 [code] property [/code] 设置为 [code] value [/"
"code]。"

#: doc/classes/SceneTree.xml:198
msgid ""
"Sets the given [code]property[/code] to [code]value[/code] on all members of "
"the given group, respecting the given [enum GroupCallFlags]."
msgstr ""
"将给定的 [code] property [/code] 设置为给定组的所有成员的 [code] value [/"
"code],尊重给定的 [enum GroupCallFlags]。"

#: doc/classes/SceneTree.xml:204
#, fuzzy
msgid "Marks the most recent [InputEvent] as handled."
msgstr "将快捷方式的 [InputEvent] 作为 [String] 返回。"

#: doc/classes/SceneTree.xml:211
#, fuzzy
msgid ""
"If [code]true[/code], the application quits automatically on going back (e."
"g. on Android). Enabled by default.\n"
"To handle 'Go Back' button when this option is disabled, use [constant "
"MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST]."
msgstr ""
"如果 [code]true[/code],应用程序会在返回时自动退出(例如在 Android 上)。默认"
"启用。\n"
"要在禁用此选项时处理“返回”按钮,请使用 [constant DisplayServer."
"WINDOW_EVENT_GO_BACK_REQUEST]。"

#: doc/classes/SceneTree.xml:222
msgid ""
"Configures screen stretching to the given [enum StretchMode], [enum "
"StretchAspect], minimum size and [code]scale[/code]."
msgstr ""

#: doc/classes/SceneTree.xml:228
msgid "The current scene."
msgstr "当前场景。"

#: doc/classes/SceneTree.xml:231
msgid ""
"If [code]true[/code], collision shapes will be visible when running the game "
"from the editor for debugging purposes."
msgstr ""
"如果 [code]true[/code],以调试为目的从编辑器运行游戏时,碰撞形状将是可见的。"

#: doc/classes/SceneTree.xml:234
msgid ""
"If [code]true[/code], navigation polygons will be visible when running the "
"game from the editor for debugging purposes."
msgstr ""
"如果 [code]true[/code],以调试为目的从编辑器运行游戏时,导航多边形将是可见"
"的。"

#: doc/classes/SceneTree.xml:237
msgid "The root of the edited scene."
msgstr "编辑场景的根。"

#: doc/classes/SceneTree.xml:240
msgid "The default [MultiplayerAPI] instance for this [SceneTree]."
msgstr "此 [SceneTree] 的默认 [MultiplayerAPI] 实例。"

#: doc/classes/SceneTree.xml:243
msgid ""
"If [code]true[/code] (default value), enables automatic polling of the "
"[MultiplayerAPI] for this SceneTree during [signal idle_frame].\n"
"If [code]false[/code], you need to manually call [method MultiplayerAPI."
"poll] to process network packets and deliver RPCs/RSETs. This allows running "
"RPCs/RSETs in a different loop (e.g. physics, thread, specific time step) "
"and for manual [Mutex] protection when accessing the [MultiplayerAPI] from "
"threads."
msgstr ""
"如果 [code]true[/code](默认值),则在 [signal idle_frame] 期间启用此 "
"SceneTree 的 [MultiplayerAPI] 自动轮询。\n"
"如果[code]false[/code],则需要手动调用[method MultiplayerAPI.poll]来处理网络"
"数据包并投递RPCs/RSETs。这允许在不同的循环(例如物理、线程、特定时间步长)中"
"运行 RPC/RSET,并在从线程访问 [MultiplayerAPI] 时进行手动 [Mutex] 保护。"

#: doc/classes/SceneTree.xml:247
msgid ""
"The peer object to handle the RPC system (effectively enabling networking "
"when set). Depending on the peer itself, the [SceneTree] will become a "
"network server (check with [method is_network_server]) and will set the root "
"node's network mode to master, or it will become a regular peer with the "
"root node set to puppet. All child nodes are set to inherit the network mode "
"by default. Handling of networking-related events (connection, "
"disconnection, new clients) is done by connecting to [SceneTree]'s signals."
msgstr ""
"处理 RPC 系统的对等对象(设置后有效地启用网络)。根据peer本身的不同,"
"[SceneTree]将成为网络服务器(检查[method is_network_server])并将根节点的网络"
"模式设置为master,或者它将成为根节点被设置为puppet的普通对等体。所有子节点默"
"认设置为继承网络模式。与网络相关的事件(连接、断开连接、新客户端)的处理是通"
"过连接到 [SceneTree] 的信号来完成的。"

#: doc/classes/SceneTree.xml:250
#, fuzzy
msgid ""
"If [code]true[/code], the [SceneTree] is paused. Doing so will have the "
"following behavior:\n"
"- 2D and 3D physics will be stopped. This includes signals and collision "
"detection.\n"
"- [method Node._process], [method Node._physics_process] and [method Node."
"_input] will not be called anymore in nodes."
msgstr ""
"如果 [code]true[/code],则暂停 [SceneTree]。这样做将有以下行为:\n"
"- 2D 和 3D 物理将停止。\n"
"- [method Node._process]、[method Node._physics_process] 和[method Node."
"_input] 将不再在节点中调用。"

#: doc/classes/SceneTree.xml:255
msgid ""
"If [code]true[/code], the [SceneTree]'s [member network_peer] refuses new "
"incoming connections."
msgstr ""
"如果 [code]true[/code],则 [SceneTree] 的 [member network_peer] 拒绝新的传入"
"连接。"

#: doc/classes/SceneTree.xml:258
#, fuzzy
msgid "The [SceneTree]'s root [Viewport]."
msgstr "[SceneTree] 的根 [Window]。"

#: doc/classes/SceneTree.xml:261
#, fuzzy
msgid "If [code]true[/code], font oversampling is used."
msgstr "如果[code]true[/code],则启用法线映射。"

#: doc/classes/SceneTree.xml:267
msgid ""
"Emitted whenever this [SceneTree]'s [member network_peer] successfully "
"connected to a server. Only emitted on clients."
msgstr ""
"当这个[SceneTree]的[member network_peer]成功连接到一个服务器时发出。只在客户"
"端发出。"

#: doc/classes/SceneTree.xml:272
msgid ""
"Emitted whenever this [SceneTree]'s [member network_peer] fails to establish "
"a connection to a server. Only emitted on clients."
msgstr ""
"每当此 [SceneTree] 的 [member network_peer] 无法与服务器建立连接时发出。仅在"
"客户端上发出。"

#: doc/classes/SceneTree.xml:279
msgid ""
"Emitted when files are dragged from the OS file manager and dropped in the "
"game window. The arguments are a list of file paths and the identifier of "
"the screen where the drag originated."
msgstr ""
"当文件从操作系统的文件管理器中被拖到游戏窗口中时发出。参数是一个文件路径列表"
"和拖动文件的屏幕标识符。"

#: doc/classes/SceneTree.xml:286
#, fuzzy
msgid "Emitted whenever global menu item is clicked."
msgstr "当项目被选中时触发。"

#: doc/classes/SceneTree.xml:291
msgid ""
"Emitted immediately before [method Node._process] is called on every node in "
"the [SceneTree]."
msgstr "在对[SceneTree]中的每个节点调用[method Node._process]之前立即发出。"

#: doc/classes/SceneTree.xml:297
msgid ""
"Emitted whenever this [SceneTree]'s [member network_peer] connects with a "
"new peer. ID is the peer ID of the new peer. Clients get notified when other "
"clients connect to the same server. Upon connecting to a server, a client "
"also receives this signal for the server (with ID being 1)."
msgstr ""
"当这个[SceneTree]的[member network_peer]与一个新的对等体连接时发出。ID是新对"
"等体的对等体ID。当其他客户端连接到同一个服务器时,客户端会得到通知。当连接到"
"一个服务器时,客户端也会收到该服务器的这个信号(ID为1)。"

#: doc/classes/SceneTree.xml:303
msgid ""
"Emitted whenever this [SceneTree]'s [member network_peer] disconnects from a "
"peer. Clients get notified when other clients disconnect from the same "
"server."
msgstr ""
"每当此 [SceneTree] 的 [member network_peer] 与对等方断开连接时发出。当其他客"
"户端与同一服务器断开连接时,客户端会收到通知。"

#: doc/classes/SceneTree.xml:309
msgid "Emitted whenever a node is added to the [SceneTree]."
msgstr "当将节点添加到 [SceneTree] 时发出。"

#: doc/classes/SceneTree.xml:315
msgid ""
"Emitted when a node's configuration changed. Only emitted in [code]tool[/"
"code] mode."
msgstr "当节点的配置更改时发出。仅在 [code]tool[/code] 模式下发射。"

#: doc/classes/SceneTree.xml:321
msgid "Emitted whenever a node is removed from the [SceneTree]."
msgstr "当从 [SceneTree] 中删除节点时发出。"

#: doc/classes/SceneTree.xml:327
msgid "Emitted whenever a node is renamed."
msgstr "当节点重命名时发出。"

#: doc/classes/SceneTree.xml:332
msgid ""
"Emitted immediately before [method Node._physics_process] is called on every "
"node in the [SceneTree]."
msgstr ""
"在 [SceneTree] 中的每个节点上调用 [method Node._physics_process] 之前立即发"
"出。"

#: doc/classes/SceneTree.xml:337
msgid ""
"Emitted when the screen resolution (fullscreen) or window size (windowed) "
"changes."
msgstr ""

#: doc/classes/SceneTree.xml:342
msgid ""
"Emitted whenever this [SceneTree]'s [member network_peer] disconnected from "
"server. Only emitted on clients."
msgstr ""
"当此 [SceneTree] 的 [member network_peer] 与服务器断开连接时发出。仅在客户端"
"上发出。"

#: doc/classes/SceneTree.xml:347
msgid ""
"Emitted whenever the [SceneTree] hierarchy changed (children being moved or "
"renamed, etc.)."
msgstr "当 [SceneTree] 层次结构发生变化(移动或重命名子项等)时发出。"

#: doc/classes/SceneTree.xml:353
msgid "Call a group with no flags (default)."
msgstr "调用没有标志的组(默认)。"

#: doc/classes/SceneTree.xml:356
msgid "Call a group in reverse scene order."
msgstr "以相反的场景顺序调用组。"

#: doc/classes/SceneTree.xml:359
msgid "Call a group immediately (calls are normally made on idle)."
msgstr "立即调用一个组(调用通常在空闲时进行)。"

#: doc/classes/SceneTree.xml:362
msgid "Call a group only once even if the call is executed many times."
msgstr "即使调用多次执行,也只调用一次组。"

#: doc/classes/SceneTree.xml:365
#, fuzzy
msgid "No stretching."
msgstr "停止监听。"

#: doc/classes/SceneTree.xml:368
msgid "Render stretching in higher resolution (interpolated)."
msgstr ""

#: doc/classes/SceneTree.xml:371
msgid ""
"Keep the specified display resolution. No interpolation. Content may appear "
"pixelated."
msgstr ""

#: doc/classes/SceneTree.xml:374
msgid ""
"Fill the window with the content stretched to cover excessive space. Content "
"may appear stretched."
msgstr ""

#: doc/classes/SceneTree.xml:377
msgid ""
"Retain the same aspect ratio by padding with black bars on either axis. This "
"prevents distortion."
msgstr ""

#: doc/classes/SceneTree.xml:380
msgid ""
"Expand vertically. Left/right black bars may appear if the window is too "
"wide."
msgstr ""

#: doc/classes/SceneTree.xml:383
msgid ""
"Expand horizontally. Top/bottom black bars may appear if the window is too "
"tall."
msgstr ""

#: doc/classes/SceneTree.xml:386
msgid ""
"Expand in both directions, retaining the same aspect ratio. This prevents "
"distortion while avoiding black bars."
msgstr ""

#: doc/classes/SceneTreeTimer.xml:4
msgid "One-shot timer."
msgstr "一次性定时器。"

#: doc/classes/SceneTreeTimer.xml:7
msgid ""
"A one-shot timer managed by the scene tree, which emits [signal timeout] on "
"completion. See also [method SceneTree.create_timer].\n"
"As opposed to [Timer], it does not require the instantiation of a node. "
"Commonly used to create a one-shot delay timer as in the following example:\n"
"[codeblock]\n"
"func some_function():\n"
"    print(\"Timer started.\")\n"
"    yield(get_tree().create_timer(1.0), \"timeout\")\n"
"    print(\"Timer ended.\")\n"
"[/codeblock]"
msgstr ""
"一个由场景树管理的一次性定时器,它在完成时发出[signal timeout]。也请参见"
"[method SceneTree.create_timer]。\n"
"与[Timer]相反,它不需要实例化节点。常用于创建一个一次性的延迟定时器,如下面的"
"例子。\n"
"[codeblock]\n"
"func some_function():\n"
"    print(\"计时器开始.\")\n"
"    yield(get_tree().create_timer(1.0), \"timeout\")\n"
"    print(\"计时器结束。\")\n"
"[/codeblock]"

#: doc/classes/SceneTreeTimer.xml:22
msgid "The time remaining."
msgstr "剩余时间。"

#: doc/classes/SceneTreeTimer.xml:28 doc/classes/Timer.xml:60
msgid "Emitted when the timer reaches 0."
msgstr "当计时器到 0 时发出。"

#: doc/classes/Script.xml:4
msgid "A class stored as a resource."
msgstr "作为资源存储的类。"

#: doc/classes/Script.xml:7
msgid ""
"A class stored as a resource. A script extends the functionality of all "
"objects that instance it.\n"
"The [code]new[/code] method of a script subclass creates a new instance. "
"[method Object.set_script] extends an existing object, if that object's "
"class matches one of the script's base classes."
msgstr ""
"一个存储为资源的类。用脚本扩展所有以它为实例的对象的功能。\n"
"脚本子类的[code]new[/code]方法创建一个新的实例。如果一个现有的对象的类与脚本"
"的基类之一相匹配,[method Object.set_script] 会扩展该对象。"

#: doc/classes/Script.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/step_by_step/scripting."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/step_by_step/"
"scripting.html"

#: doc/classes/Script.xml:17
msgid "Returns [code]true[/code] if the script can be instanced."
msgstr "如果脚本可以实例化,则返回 [code]true[/code]。"

#: doc/classes/Script.xml:23
msgid "Returns the script directly inherited by this script."
msgstr "返回由该脚本直接继承的脚本。"

#: doc/classes/Script.xml:29
msgid "Returns the script's base type."
msgstr "返回脚本的基类类型。"

#: doc/classes/Script.xml:36
msgid "Returns the default value of the specified property."
msgstr "返回指定属性的默认值。"

#: doc/classes/Script.xml:42
msgid "Returns a dictionary containing constant names and their values."
msgstr "返回一个包含常量名称及其值的字典。"

#: doc/classes/Script.xml:48
msgid "Returns the list of methods in this [Script]."
msgstr "返回此 [Script] 中的方法列表。"

#: doc/classes/Script.xml:54
msgid "Returns the list of properties in this [Script]."
msgstr "返回此 [Script] 中的属性列表。"

#: doc/classes/Script.xml:60
msgid "Returns the list of user signals defined in this [Script]."
msgstr "返回在此 [Script] 中定义的用户信号列表。"

#: doc/classes/Script.xml:67
msgid ""
"Returns [code]true[/code] if the script, or a base class, defines a signal "
"with the given name."
msgstr "如果脚本或基类定义了具有给定名称的信号,则返回 [code]true[/code]。"

#: doc/classes/Script.xml:73
msgid "Returns [code]true[/code] if the script contains non-empty source code."
msgstr "如果脚本包含非空源代码,则返回 [code]true[/code]。"

#: doc/classes/Script.xml:80
msgid ""
"Returns [code]true[/code] if [code]base_object[/code] is an instance of this "
"script."
msgstr ""
"如果 [code]base_object[/code] 是此脚本的实例,则返回 [code]true[/code]。"

#: doc/classes/Script.xml:86
msgid ""
"Returns [code]true[/code] if the script is a tool script. A tool script can "
"run in the editor."
msgstr ""
"如果脚本是工具脚本,则返回 [code]true[/code]。工具脚本可以在编辑器中运行。"

#: doc/classes/Script.xml:93
msgid "Reloads the script's class implementation. Returns an error code."
msgstr "重新加载脚本的类的实现。返回一个错误代码。"

#: doc/classes/Script.xml:99
msgid ""
"The script source code or an empty string if source code is not available. "
"When set, does not reload the class implementation automatically."
msgstr ""
"脚本的源代码,如果源代码不可用,则为空字符串。当设置时,不会自动重新加载类的"
"实现。"

#: doc/classes/ScriptCreateDialog.xml:4
msgid "The Editor's popup dialog for creating new [Script] files."
msgstr "用于创建新 [Script] 文件的编辑器弹出对话框。"

#: doc/classes/ScriptCreateDialog.xml:7
#, fuzzy
msgid ""
"The [ScriptCreateDialog] creates script files according to a given template "
"for a given scripting language. The standard use is to configure its fields "
"prior to calling one of the [method Popup.popup] methods.\n"
"[codeblock]\n"
"func _ready():\n"
"    dialog.config(\"Node\", \"res://new_node.gd\") # For in-engine types\n"
"    dialog.config(\"\\\"res://base_node.gd\\\"\", \"res://derived_node.gd\") "
"# For script types\n"
"    dialog.popup_centered()\n"
"[/codeblock]"
msgstr ""
"[ScriptCreateDialog] 根据给定脚本语言的给定模板创建脚本文件。标准用法是在调"
"用 [method Window.popup] 方法之一之前配置其字段。\n"
"[codeblock]\n"
"func _ready():\n"
"    dialog.config(\"Node\", \"res://new_node.gd\") # 用于引擎内类型\n"
"    dialog.config(\"\\\"res://base_node.gd\\\"\", \"res://derived_node.gd\") "
"# 用于脚本类型\n"
"    dialog.popup_center()\n"
"[/codeblock]"

#: doc/classes/ScriptCreateDialog.xml:25
msgid "Prefills required fields to configure the ScriptCreateDialog for use."
msgstr "预填必填字段以配置 ScriptCreateDialog 以供使用。"

#: doc/classes/ScriptCreateDialog.xml:40
msgid "Emitted when the user clicks the OK button."
msgstr "当用户点击OK按钮时发出。"

#: doc/classes/ScriptEditor.xml:4
msgid "Godot editor's script editor."
msgstr "Godot编辑器的脚本编辑器。"

#: doc/classes/ScriptEditor.xml:7
msgid ""
"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
"the singleton using [method EditorInterface.get_script_editor]."
msgstr ""
"[b]注意:[/b] 这个类不应该被直接实例化。相反,使用[method EditorInterface."
"get_script_editor]来访问这个单例。"

#: doc/classes/ScriptEditor.xml:31
msgid "Returns a [Script] that is currently active in editor."
msgstr "返回当前在编辑器中处于活动状态的 [Script]。"

#: doc/classes/ScriptEditor.xml:44
msgid ""
"Returns an array with all [Script] objects which are currently open in "
"editor."
msgstr "返回一个包含当前在编辑器中打开的所有 [Script] 对象的数组。"

#: doc/classes/ScriptEditor.xml:51
msgid "Goes to the specified line in the current script."
msgstr "转到当前脚本中的指定行。"

#: doc/classes/ScriptEditor.xml:59
msgid ""
"Opens the script create dialog. The script will extend [code]base_name[/"
"code]. The file extension can be omitted from [code]base_path[/code]. It "
"will be added based on the selected scripting language."
msgstr ""

#: doc/classes/ScriptEditor.xml:67
msgid ""
"Emitted when user changed active script. Argument is a freshly activated "
"[Script]."
msgstr "当用户更改活动脚本时发出。参数是新激活的 [Script]。"

#: doc/classes/ScriptEditor.xml:73
msgid ""
"Emitted when editor is about to close the active script. Argument is a "
"[Script] that is going to be closed."
msgstr "当编辑器即将关闭活动脚本时发出。参数是将要关闭的 [Script]。"

#: doc/classes/ScrollBar.xml:4
msgid "Base class for scroll bars."
msgstr "滚动条的基类。"

#: doc/classes/ScrollBar.xml:7
msgid ""
"Scrollbars are a [Range]-based [Control], that display a draggable area (the "
"size of the page). Horizontal ([HScrollBar]) and Vertical ([VScrollBar]) "
"versions are available."
msgstr ""
"滚动条是基于 [Range] 的 [Control],显示可拖动区域(页面大小)。提供水平 "
"([HScrollBar]) 和垂直 ([VScrollBar]) 版本。"

#: doc/classes/ScrollBar.xml:15
msgid ""
"Overrides the step used when clicking increment and decrement buttons or "
"when using arrow keys when the [ScrollBar] is focused."
msgstr ""
"覆盖 在按下增和减按钮时或在 [ScrollBar] 已获得焦点且使用箭头键时 的步长。"

#: doc/classes/ScrollBar.xml:23
msgid "Emitted when the scrollbar is being scrolled."
msgstr "当滚动条滚动时发出。"

#: doc/classes/ScrollContainer.xml:4
msgid "A helper node for displaying scrollable elements such as lists."
msgstr "用于显示可滚动元素(例如列表)的辅助节点。"

#: doc/classes/ScrollContainer.xml:7
#, fuzzy
msgid ""
"A ScrollContainer node meant to contain a [Control] child. ScrollContainers "
"will automatically create a scrollbar child ([HScrollBar], [VScrollBar], or "
"both) when needed and will only draw the Control within the ScrollContainer "
"area. Scrollbars will automatically be drawn at the right (for vertical) or "
"bottom (for horizontal) and will enable dragging to move the viewable "
"Control (and its children) within the ScrollContainer. Scrollbars will also "
"automatically resize the grabber based on the [member Control.rect_min_size] "
"of the Control relative to the ScrollContainer. Works great with a [Panel] "
"control. You can set [code]EXPAND[/code] on the children's size flags, so "
"they will upscale to the ScrollContainer's size if it's larger (scroll is "
"invisible for the chosen dimension)."
msgstr ""
"ScrollContainer 节点用于容纳一个 [Control] 子节点。\n"
"ScrollContainers 将在需要时自动创建一个滚动条子项([HScrollBar]、"
"[VScrollBar] ),并且只会在 ScrollContainer 区域内绘制控件。滚动条将自动绘制"
"在右侧(垂直)或底部(水平),并允许拖动以在 ScrollContainer 内移动可视控件"
"(及其子项)。滚动条还将根据控件相对于 ScrollContainer 的 [member Control."
"rect_min_size] 自动调整抓取器的大小。\n"
"与 [Panel] 控件配合使用效果很好。您可以在子项的大小标志上设置 [code]EXPAND[/"
"code],因此如果 ScrollContainer 的大小更大(滚动对于所选维度不可见),它们将"
"放大到 ScrollContainer 的大小。"

#: doc/classes/ScrollContainer.xml:16
msgid ""
"Ensures the given [code]control[/code] is visible (must be a direct or "
"indirect child of the ScrollContainer). Used by [member follow_focus]."
msgstr ""

#: doc/classes/ScrollContainer.xml:22
msgid ""
"Returns the horizontal scrollbar [HScrollBar] of this [ScrollContainer]."
msgstr "返回此 [ScrollContainer] 的水平滚动条 [HScrollBar]。"

#: doc/classes/ScrollContainer.xml:28
msgid "Returns the vertical scrollbar [VScrollBar] of this [ScrollContainer]."
msgstr "返回此 [ScrollContainer] 的垂直滚动条 [VScrollBar]。"

#: doc/classes/ScrollContainer.xml:34
msgid ""
"If [code]true[/code], the ScrollContainer will automatically scroll to "
"focused children (including indirect children) to make sure they are fully "
"visible."
msgstr ""
"如果 [code]true[/code],则 ScrollContainer 将自动滚动到获得焦点的子项(包括间"
"接子项)以确保它们完全可见。"

#: doc/classes/ScrollContainer.xml:40
msgid "The current horizontal scroll value."
msgstr "当前水平滚动值。"

#: doc/classes/ScrollContainer.xml:43
msgid "If [code]true[/code], enables horizontal scrolling."
msgstr "如果 [code]true[/code],启用水平滚动。"

#: doc/classes/ScrollContainer.xml:46
msgid "The current vertical scroll value."
msgstr "当前垂直滚动值。"

#: doc/classes/ScrollContainer.xml:49
msgid "If [code]true[/code], enables vertical scrolling."
msgstr "如果 [code]true[/code],则启用垂直滚动。"

#: doc/classes/ScrollContainer.xml:55
msgid "Emitted when scrolling stops."
msgstr "滚动停止时发出。"

#: doc/classes/ScrollContainer.xml:60
msgid "Emitted when scrolling is started."
msgstr "滚动开始时发出。"

#: doc/classes/ScrollContainer.xml:68
msgid "The background [StyleBox] of the [ScrollContainer]."
msgstr "[ScrollContainer] 的背景 [StyleBox]。"

#: doc/classes/SegmentShape2D.xml:4
msgid "Segment shape for 2D collisions."
msgstr "2D 碰撞的分段形状。"

#: doc/classes/SegmentShape2D.xml:7
msgid ""
"Segment shape for 2D collisions. Consists of two points, [code]a[/code] and "
"[code]b[/code]."
msgstr "2D 碰撞的分段形状。由[code]a[/code] 和 [code]b[/code]两点组成。"

#: doc/classes/SegmentShape2D.xml:15
msgid "The segment's first point position."
msgstr "该段的第一点的位置。"

#: doc/classes/SegmentShape2D.xml:18
msgid "The segment's second point position."
msgstr "该段的第二个点的位置。"

#: doc/classes/Semaphore.xml:4
msgid "A synchronization semaphore."
msgstr "同步信号量。"

#: doc/classes/Semaphore.xml:7
msgid ""
"A synchronization semaphore which can be used to synchronize multiple "
"[Thread]s. Initialized to zero on creation. Be careful to avoid deadlocks. "
"For a binary version, see [Mutex]."
msgstr ""
"可用于同步多个 [Thread] 的同步信号量。创建时初始化为零。小心避免死锁。对于二"
"进制版本,请参阅 [Mutex]。"

#: doc/classes/Semaphore.xml:16
#, fuzzy
msgid ""
"Lowers the [Semaphore], allowing one more thread in. Returns [constant OK] "
"on success, [constant ERR_BUSY] otherwise."
msgstr ""
"试图锁定这个[Mutex],但并不阻塞。成功时返回[常量OK],否则返回[常量ERR_BUSY]。"

#: doc/classes/Semaphore.xml:22
#, fuzzy
msgid ""
"Tries to wait for the [Semaphore], if its value is zero, blocks until non-"
"zero. Returns [constant OK] on success, [constant ERR_BUSY] otherwise."
msgstr ""
"试图锁定这个[Mutex],但并不阻塞。成功时返回[常量OK],否则返回[常量ERR_BUSY]。"

#: doc/classes/Separator.xml:4
msgid "Base class for separators."
msgstr "分离器的基类。"

#: doc/classes/Separator.xml:7
msgid ""
"Separator is a [Control] used for separating other controls. It's purely a "
"visual decoration. Horizontal ([HSeparator]) and Vertical ([VSeparator]) "
"versions are available."
msgstr ""
"Separator 是一个用于分隔其他控件的[Control] 。它纯粹是一种视觉装饰。提供水平 "
"([HSeparator]) 和垂直 ([VSeparator]) 版本。"

#: doc/classes/Shader.xml:4
msgid "A custom shader program."
msgstr "自定义着色器程序。"

#: doc/classes/Shader.xml:7
msgid ""
"This class allows you to define a custom shader program that can be used by "
"a [ShaderMaterial]. Shaders allow you to write your own custom behavior for "
"rendering objects or updating particle information. For a detailed "
"explanation and usage, please see the tutorials linked below."
msgstr ""
"此类允许您定义一个 [ShaderMaterial] 可以使用的自定义着色器程序。着色器允许您"
"编写自己的自定义行为来渲染对象或更新粒子信息。有关详细说明和用法,请参阅下面"
"链接的教程。"

#: doc/classes/Shader.xml:10 doc/classes/ShaderMaterial.xml:11
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/shading/index.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/shading/index.html"

#: doc/classes/Shader.xml:11
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/shading/your_first_shader/"
"what_are_shaders.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/shading/"
"your_first_shader/what_are_shaders.html"

#: doc/classes/Shader.xml:18
msgid ""
"Returns the texture that is set as default for the specified parameter.\n"
"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
"code exactly."
msgstr ""
"返回被设置为指定参数的默认纹理。\n"
"[b]注意:[/b] [code]param[/code]必须与代码中的uniform名称完全匹配。"

#: doc/classes/Shader.xml:25
msgid ""
"Returns the shader mode for the shader, either [constant MODE_CANVAS_ITEM], "
"[constant MODE_SPATIAL] or [constant MODE_PARTICLES]."
msgstr ""
"返回着色器的着色器模式,[constant MODE_CANVAS_ITEM]、[constant MODE_SPATIAL] "
"或 [constant MODE_PARTICLES]。"

#: doc/classes/Shader.xml:32
msgid ""
"Returns [code]true[/code] if the shader has this param defined as a uniform "
"in its code.\n"
"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
"code exactly."
msgstr ""
"如果着色器在其代码中把这个参数定义为uniform,则返回[code]true[/code]。\n"
"[b]注意:[/b] [code]param[/code] 必须与代码中的uniform名称完全匹配。"

#: doc/classes/Shader.xml:41
msgid ""
"Sets the default texture to be used with a texture uniform. The default is "
"used if a texture is not set in the [ShaderMaterial].\n"
"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
"code exactly."
msgstr ""
"设置默认纹理,以用于纹理统一。如果[ShaderMaterial]中没有设置纹理,则使用默认"
"值。\n"
"[b]注意:[/b] [code]param[/code]必须与代码中的uniform名称完全匹配。"

#: doc/classes/Shader.xml:48
msgid ""
"Returns the shader's code as the user has written it, not the full generated "
"code used internally."
msgstr "返回用户编写的着色器代码,而不是内部使用的完整生成代码。"

#: doc/classes/Shader.xml:51
msgid ""
"Returns the shader's custom defines. Custom defines can be used in Godot to "
"add GLSL preprocessor directives (e.g: extensions) required for the shader "
"logic.\n"
"[b]Note:[/b] Custom defines are not validated by the Godot shader parser, so "
"care should be taken when using them."
msgstr ""

#: doc/classes/Shader.xml:57
msgid "Mode used to draw all 3D objects."
msgstr "用于绘制所有 3D 对象的模式。"

#: doc/classes/Shader.xml:60
msgid "Mode used to draw all 2D objects."
msgstr "用于绘制所有 2D 对象的模式。"

#: doc/classes/Shader.xml:63
msgid ""
"Mode used to calculate particle information on a per-particle basis. Not "
"used for drawing."
msgstr "用于基于每个粒子计算粒子信息的模式。不用于绘图。"

#: doc/classes/ShaderMaterial.xml:4
msgid "A material that uses a custom [Shader] program."
msgstr "使用自定义 [Shader] 程序的材质。"

#: doc/classes/ShaderMaterial.xml:7
#, fuzzy
msgid ""
"A material that uses a custom [Shader] program to render either items to "
"screen or process particles. You can create multiple materials for the same "
"shader but configure different values for the uniforms defined in the "
"shader.\n"
"[b]Note:[/b] Due to a renderer limitation, emissive [ShaderMaterial]s cannot "
"emit light when used in a [GIProbe]. Only emissive [SpatialMaterial]s can "
"emit light in a [GIProbe]."
msgstr ""
"使用自定义[Shader]程序来渲染屏幕上的物品或粒子的材质。你可以为同一个着色器创"
"建多个材质,但要为着色器中定义的uniform配置不同的值。"

#: doc/classes/ShaderMaterial.xml:18
msgid ""
"Returns the current value set for this material of a uniform in the shader."
msgstr "返回在着色器中此uniform材质的当前值。"

#: doc/classes/ShaderMaterial.xml:25
msgid ""
"Returns [code]true[/code] if the property identified by [code]name[/code] "
"can be reverted to a default value."
msgstr ""
"如果由[code]name[/code]标识的属性可以恢复到默认值,则返回[code]true[/code]。"

#: doc/classes/ShaderMaterial.xml:32
msgid ""
"Returns the default value of the material property with given [code]name[/"
"code]."
msgstr "返回具有给定 [code] name [/code] 的材质属性的默认值。"

#: doc/classes/ShaderMaterial.xml:40
#, fuzzy
msgid ""
"Changes the value set for this material of a uniform in the shader.\n"
"[b]Note:[/b] [code]param[/code] must match the name of the uniform in the "
"code exactly."
msgstr ""
"改变着色器中uniform的材质的值。[b]注意:[/b] [code]param[/code]必须与代码中的"
"uniform名称完全匹配。"

#: doc/classes/ShaderMaterial.xml:47
msgid "The [Shader] program used to render this material."
msgstr "用于渲染此材质的 [Shader] 程序。"

#: doc/classes/Shape.xml:4
msgid "Base class for all 3D shape resources."
msgstr "所有 3D 形状资源的基类。"

#: doc/classes/Shape.xml:7
#, fuzzy
msgid ""
"Base class for all 3D shape resources. Nodes that inherit from this can be "
"used as shapes for a [PhysicsBody] or [Area] objects."
msgstr ""
"所有 3D 形状资源的基类。继承自此的节点可用作 [PhysicsBody3D] 或 [Area3D] 对象"
"的形状。"

#: doc/classes/Shape.xml:16
msgid ""
"Returns the [ArrayMesh] used to draw the debug collision for this [Shape]."
msgstr ""

#: doc/classes/Shape.xml:22
msgid ""
"The collision margin for the shape. Used in Bullet Physics only.\n"
"Collision margins allow collision detection to be more efficient by adding "
"an extra shell around shapes. Collision algorithms are more expensive when "
"objects overlap by more than their margin, so a higher value for margins is "
"better for performance, at the cost of accuracy around edges as it makes "
"them less sharp."
msgstr ""

#: doc/classes/Shape2D.xml:4
msgid "Base class for all 2D shapes."
msgstr "所有2D形状的基类。"

#: doc/classes/Shape2D.xml:7
msgid "Base class for all 2D shapes. All 2D shape types inherit from this."
msgstr "所有2D形状的基类。所有的2D形状类型都继承于此。"

#: doc/classes/Shape2D.xml:19
msgid ""
"Returns [code]true[/code] if this shape is colliding with another.\n"
"This method needs the transformation matrix for this shape "
"([code]local_xform[/code]), the shape to check collisions with "
"([code]with_shape[/code]), and the transformation matrix of that shape "
"([code]shape_xform[/code])."
msgstr ""
"如果这个形状与另一个形状发生碰撞,返回[code]true[/code]。\n"
"这个方法需要这个形状的变换矩阵([code]local_xform[/code]),要检查碰撞的形状"
"([code]with_shape[/code]),以及那个形状的变换矩阵([code]shape_xform[/"
"code])。"

#: doc/classes/Shape2D.xml:29
msgid ""
"Returns a list of the points where this shape touches another. If there are "
"no collisions the list is empty.\n"
"This method needs the transformation matrix for this shape "
"([code]local_xform[/code]), the shape to check collisions with "
"([code]with_shape[/code]), and the transformation matrix of that shape "
"([code]shape_xform[/code])."
msgstr ""
"返回这个形状与另一个形状相接触的点的列表。如果没有碰撞,则列表为空。\n"
"这个方法需要这个形状的变换矩阵([code]local_xform[/code]),要检查碰撞的形状"
"([code]with_shape[/code]),以及那个形状的变换矩阵([code]shape_xform[/"
"code])。"

#: doc/classes/Shape2D.xml:41
msgid ""
"Returns whether this shape would collide with another, if a given movement "
"was applied.\n"
"This method needs the transformation matrix for this shape "
"([code]local_xform[/code]), the movement to test on this shape "
"([code]local_motion[/code]), the shape to check collisions with "
"([code]with_shape[/code]), the transformation matrix of that shape "
"([code]shape_xform[/code]), and the movement to test onto the other object "
"([code]shape_motion[/code])."
msgstr ""
"如果应用一个给定的运动,返回这个形状是否会与另一个形状发生碰撞。\n"
"这个方法需要这个形状的变换矩阵([code]local_xform[/code]),要在这个形状上测"
"试的运动([code]local_motion[/code]),检查碰撞的形状([code]with_shape[/"
"code]),那个形状的变换矩阵([code]shape_xform[/code]),以及用于测试其他物体"
"的运动([code]shape_motion[/code])。"

#: doc/classes/Shape2D.xml:53
msgid ""
"Returns a list of the points where this shape would touch another, if a "
"given movement was applied. If there are no collisions the list is empty.\n"
"This method needs the transformation matrix for this shape "
"([code]local_xform[/code]), the movement to test on this shape "
"([code]local_motion[/code]), the shape to check collisions with "
"([code]with_shape[/code]), the transformation matrix of that shape "
"([code]shape_xform[/code]), and the movement to test onto the other object "
"([code]shape_motion[/code])."
msgstr ""
"如果应用了给定的移动,则返回此形状将与另一个形状接触的点的列表。如果没有碰"
"撞,则列表为空。\n"
"这个方法需要这个形状的变换矩阵([code]local_xform[/code]),这个形状上测试的"
"运动([code]local_motion[/code]),检查碰撞的形状([code]with_shape[/"
"code] )、那个形状的变换矩阵 ([code]shape_xform[/code]),以及在另一个对象上测"
"试的运动 ([code]shape_motion[/code])。"

#: doc/classes/Shape2D.xml:62
#, fuzzy
msgid ""
"Draws a solid shape onto a [CanvasItem] with the [VisualServer] API filled "
"with the specified [code]color[/code]. The exact drawing method is specific "
"for each shape and cannot be configured."
msgstr ""
"使用填充了指定 [code] color [/code] 的 [RenderingServer] API 在 [CanvasItem] "
"上绘制实体形状。确切的绘制方法是针对每个形状的,无法配置。"

#: doc/classes/Shape2D.xml:68
msgid "The shape's custom solver bias."
msgstr "形状的自定义求解器偏差。"

#: doc/classes/ShortCut.xml:4
msgid "A shortcut for binding input."
msgstr "绑定输入的快捷方式。"

#: doc/classes/ShortCut.xml:7
msgid ""
"A shortcut for binding input.\n"
"Shortcuts are commonly used for interacting with a [Control] element from a "
"[InputEvent]."
msgstr ""
"绑定输入的快捷方式。\n"
"快捷方式通常用于与来自 [InputEvent] 的 [Control] 元素进行交互。"

#: doc/classes/ShortCut.xml:16
msgid "Returns the shortcut's [InputEvent] as a [String]."
msgstr "将快捷方式的 [InputEvent] 作为 [String] 返回。"

#: doc/classes/ShortCut.xml:23
msgid ""
"Returns [code]true[/code] if the shortcut's [InputEvent] equals [code]event[/"
"code]."
msgstr ""
"如果快捷方式的 [InputEvent] 等于 [code]event[/code],则返回 [code]true[/"
"code]。"

#: doc/classes/ShortCut.xml:29
msgid "If [code]true[/code], this shortcut is valid."
msgstr "如果 [code]true[/code],则此快捷方式有效。"

#: doc/classes/ShortCut.xml:35
msgid ""
"The shortcut's [InputEvent].\n"
"Generally the [InputEvent] is a keyboard key, though it can be any "
"[InputEvent]."
msgstr ""
"快捷方式的 [InputEvent]。\n"
"通常 [InputEvent] 是一个键盘按键,但它可以是任何 [InputEvent]。"

#: doc/classes/Skeleton.xml:4
msgid "Skeleton for characters and animated objects."
msgstr "角色和动画对象的骨架。"

#: doc/classes/Skeleton.xml:7
#, fuzzy
msgid ""
"Skeleton provides a hierarchical interface for managing 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 the following hierarchical order: rest pose, custom pose and pose.\n"
"Note that \"global pose\" below refers to the overall transform of the bone "
"with respect to skeleton, so it not the actual global/world transform of the "
"bone."
msgstr ""
"Skeleton3D 提供了用于管理骨骼的分层界面,包括姿势、休息和动画(参见 "
"[Animation])。它还可以使用布娃娃物理(ragdoll physics)。\n"
"骨骼相对于骨架的整体变换由以下层次顺序确定:静止姿势、自定义姿势和姿势。\n"
"请注意,下面的“全局姿势”是指骨骼相对于骨骼的整体变换,因此它不是骨骼的实际全"
"局/世界变换。"

#: doc/classes/Skeleton.xml:20
msgid ""
"Adds a bone, with name [code]name[/code]. [method get_bone_count] will "
"become the bone index."
msgstr ""
"添加一个骨骼,名称为 [code]name[/code]。 [method get_bone_count] 将成为骨骼索"
"引。"

#: doc/classes/Skeleton.xml:28 doc/classes/Skeleton.xml:109
#: doc/classes/Skeleton.xml:212
msgid "[i]Deprecated soon.[/i]"
msgstr "[i]很快就会弃用。[/i]"

#: doc/classes/Skeleton.xml:34
msgid "Clear all the bones in this skeleton."
msgstr "清除这个骨架上的所有骨骼。"

#: doc/classes/Skeleton.xml:46
msgid "Returns the bone index that matches [code]name[/code] as its name."
msgstr "返回[code]name[/code]与其名称匹配的的骨骼索引。"

#: doc/classes/Skeleton.xml:52
msgid "Returns the amount of bones in the skeleton."
msgstr "返回骨架中的骨骼数量。"

#: doc/classes/Skeleton.xml:59
msgid ""
"Returns the custom pose of the specified bone. Custom pose is applied on top "
"of the rest pose."
msgstr "返回指定骨骼的自定义姿势。自定义姿势应用于休息姿势的顶部。"

#: doc/classes/Skeleton.xml:66
msgid ""
"Returns the overall transform of the specified bone, with respect to the "
"skeleton. Being relative to the skeleton frame, this is not the actual "
"\"global\" transform of the bone."
msgstr ""
"返回相对于骨架的指定骨骼的整体变换。由于是相对于骨架的,这不是该骨骼的实际 "
"\"全局 \"变换。"

#: doc/classes/Skeleton.xml:73
#, fuzzy
msgid ""
"Returns the overall transform of the specified bone, with respect to the "
"skeleton, but without any global pose overrides. Being relative to the "
"skeleton frame, this is not the actual \"global\" transform of the bone."
msgstr ""
"返回相对于骨架的指定骨骼的整体变换。由于是相对于骨架的,这不是该骨骼的实际 "
"\"全局 \"变换。"

#: doc/classes/Skeleton.xml:80
msgid "Returns the name of the bone at index [code]index[/code]."
msgstr "返回索引 [code] index [/code] 处的骨骼名称。"

#: doc/classes/Skeleton.xml:87
msgid ""
"Returns the bone index which is the parent of the bone at [code]bone_idx[/"
"code]. If -1, then bone has no parent.\n"
"[b]Note:[/b] The parent bone returned will always be less than "
"[code]bone_idx[/code]."
msgstr ""
"返回在[code]bone_idx[/code]处的骨骼的父级索引。如果是-1,那么骨骼就没有父骨"
"骼。\n"
"[b]注意:[/b]返回的父骨骼将总是小于[code] bone_idx[/code]。"

#: doc/classes/Skeleton.xml:95
msgid ""
"Returns the pose transform of the specified bone. Pose is applied on top of "
"the custom pose, which is applied on top the rest pose."
msgstr ""
"返回指定骨骼的姿势变换。姿势应用于自定义姿势的顶部,自定义姿势应用于静止姿势"
"的顶部。"

#: doc/classes/Skeleton.xml:102
msgid "Returns the rest transform for a bone [code]bone_idx[/code]."
msgstr "返回骨骼 [code]bone_idx[/code] 的休息变换。"

#: doc/classes/Skeleton.xml:187
msgid ""
"Sets the bone index [code]parent_idx[/code] as the parent of the bone at "
"[code]bone_idx[/code]. If -1, then bone has no parent.\n"
"[b]Note:[/b] [code]parent_idx[/code] must be less than [code]bone_idx[/code]."
msgstr ""
"将骨骼索引 [code]parent_idx[/code] 设置为 [code]bone_idx[/code] 处骨骼的父"
"级。如果 -1,则骨骼没有父级。\n"
"[b]注意:[/b] [code]parent_idx[/code] 必须小于 [code]bone_idx[/code]。"

#: doc/classes/Skeleton.xml:196
#, fuzzy
msgid "Sets the pose transform for bone [code]bone_idx[/code]."
msgstr "为骨骼[code]bone_idx[/code]设置休息变换。"

#: doc/classes/Skeleton.xml:204
msgid "Sets the rest transform for bone [code]bone_idx[/code]."
msgstr "为骨骼[code]bone_idx[/code]设置休息变换。"

#: doc/classes/Skeleton2D.xml:4
msgid "Skeleton for 2D characters and animated objects."
msgstr "2D 角色和动画对象的骨架。"

#: doc/classes/Skeleton2D.xml:7
msgid ""
"Skeleton2D parents a hierarchy of [Bone2D] objects. It is a requirement of "
"[Bone2D]. Skeleton2D holds a reference to the rest pose of its children and "
"acts as a single point of access to its bones."
msgstr ""
"Skeleton2D是[Bone2D]对象的层次结构。它是[Bone2D]的要求。Skeleton2D持有对其子"
"项的休息姿势的引用,并作为对其骨骼的单一访问点。"

#: doc/classes/Skeleton2D.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/animation/2d_skeletons.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/animation/2d_skeletons."
"html"

#: doc/classes/Skeleton2D.xml:17
msgid ""
"Returns a [Bone2D] from the node hierarchy parented by Skeleton2D. The "
"object to return is identified by the parameter [code]idx[/code]. Bones are "
"indexed by descending the node hierarchy from top to bottom, adding the "
"children of each branch before moving to the next sibling."
msgstr ""
"从由 Skeleton2D 为父节点的节点层次结构中返回 [Bone2D]。要返回的对象由参数 "
"[code]idx[/code] 标识。骨骼通过从上到下降低节点层次结构来索引,在移动到下一个"
"兄弟节点之前添加每个分支的子节点。"

#: doc/classes/Skeleton2D.xml:23
msgid ""
"Returns the number of [Bone2D] nodes in the node hierarchy parented by "
"Skeleton2D."
msgstr "返回由 Skeleton2D 为父节点的节点层次结构中 [Bone2D] 节点的数量。"

#: doc/classes/Skeleton2D.xml:29
msgid "Returns the [RID] of a Skeleton2D instance."
msgstr "返回 Skeleton2D 实例的 [RID]。"

#: doc/classes/SkeletonIK.xml:4
msgid ""
"SkeletonIK is used to place the end bone of a [Skeleton] bone chain at a "
"certain point in 3D by rotating all bones in the chain accordingly."
msgstr ""

#: doc/classes/SkeletonIK.xml:7
msgid ""
"SkeletonIK is used to place the end bone of a [Skeleton] bone chain at a "
"certain point in 3D by rotating all bones in the chain accordingly. A "
"typical scenario for IK in games is to place a characters feet on the ground "
"or a characters hands on a currently hold object. SkeletonIK uses "
"FabrikInverseKinematic internally to solve the bone chain and applies the "
"results to the [Skeleton] [code]bones_global_pose_override[/code] property "
"for all affected bones in the chain. If fully applied this overwrites any "
"bone transform from [Animation]s or bone custom poses set by users. The "
"applied amount can be controlled with the [code]interpolation[/code] "
"property.\n"
"[codeblock]\n"
"# Apply IK effect automatically on every new frame (not the current)\n"
"skeleton_ik_node.start()\n"
"\n"
"# Apply IK effect only on the current frame\n"
"skeleton_ik_node.start(true)\n"
"\n"
"# Stop IK effect and reset bones_global_pose_override on Skeleton\n"
"skeleton_ik_node.stop()\n"
"\n"
"# Apply full IK effect\n"
"skeleton_ik_node.set_interpolation(1.0)\n"
"\n"
"# Apply half IK effect\n"
"skeleton_ik_node.set_interpolation(0.5)\n"
"\n"
"# Apply zero IK effect (a value at or below 0.01 also removes "
"bones_global_pose_override on Skeleton)\n"
"skeleton_ik_node.set_interpolation(0.0)\n"
"[/codeblock]"
msgstr ""

#: doc/classes/SkeletonIK.xml:35
msgid ""
"Returns the parent [Skeleton] Node that was present when SkeletonIK entered "
"the [SceneTree]. Returns null if the parent node was not a [Skeleton] Node "
"when SkeletonIK entered the [SceneTree]."
msgstr ""

#: doc/classes/SkeletonIK.xml:41
msgid ""
"Returns [code]true[/code] if SkeletonIK is applying IK effects on continues "
"frames to the [Skeleton] bones. Returns [code]false[/code] if SkeletonIK is "
"stopped or [method start] was used with the [code]one_time[/code] parameter "
"set to [code]true[/code]."
msgstr ""

#: doc/classes/SkeletonIK.xml:48
msgid ""
"Starts applying IK effects on each frame to the [Skeleton] bones but will "
"only take effect starting on the next frame. If [code]one_time[/code] is "
"[code]true[/code], this will take effect immediately but also reset on the "
"next frame."
msgstr ""

#: doc/classes/SkeletonIK.xml:54
msgid ""
"Stops applying IK effects on each frame to the [Skeleton] bones and also "
"calls [method Skeleton.clear_bones_global_pose_override] to remove existing "
"overrides on all bones."
msgstr ""

#: doc/classes/SkeletonIK.xml:60
msgid ""
"Interpolation value for how much the IK results are applied to the current "
"skeleton bone chain. A value of [code]1.0[/code] will overwrite all skeleton "
"bone transforms completely while a value of [code]0.0[/code] will visually "
"disable the SkeletonIK. A value at or below [code]0.01[/code] also calls "
"[method Skeleton.clear_bones_global_pose_override]."
msgstr ""

#: doc/classes/SkeletonIK.xml:63
msgid ""
"Secondary target position (first is [member target] property or [member "
"target_node]) for the IK chain. Use magnet position (pole target) to control "
"the bending of the IK chain. Only works if the bone chain has more than 2 "
"bones. The middle chain bone position will be linearly interpolated with the "
"magnet position."
msgstr ""

#: doc/classes/SkeletonIK.xml:66
msgid ""
"Number of iteration loops used by the IK solver to produce more accurate "
"(and elegant) bone chain results."
msgstr ""

#: doc/classes/SkeletonIK.xml:69
msgid ""
"The minimum distance between bone and goal target. If the distance is below "
"this value, the IK solver stops further iterations."
msgstr ""

#: doc/classes/SkeletonIK.xml:72
msgid ""
"If [code]true[/code] overwrites the rotation of the tip bone with the "
"rotation of the [member target] (or [member target_node] if defined)."
msgstr ""

#: doc/classes/SkeletonIK.xml:75
msgid "The name of the current root bone, the first bone in the IK chain."
msgstr ""

#: doc/classes/SkeletonIK.xml:78
msgid ""
"First target of the IK chain where the tip bone is placed and, if [member "
"override_tip_basis] is [code]true[/code], how the tip bone is rotated. If a "
"[member target_node] path is available the nodes transform is used instead "
"and this property is ignored."
msgstr ""

#: doc/classes/SkeletonIK.xml:81
msgid ""
"Target node [NodePath] for the IK chain. If available, the node's current "
"[Transform] is used instead of the [member target] property."
msgstr ""

#: doc/classes/SkeletonIK.xml:84
msgid ""
"The name of the current tip bone, the last bone in the IK chain placed at "
"the [member target] transform (or [member target_node] if defined)."
msgstr ""

#: doc/classes/SkeletonIK.xml:87
msgid ""
"If [code]true[/code], instructs the IK solver to consider the secondary "
"magnet target (pole target) when calculating the bone chain. Use the magnet "
"position (pole target) to control the bending of the IK chain."
msgstr ""

#: doc/classes/Sky.xml:4 doc/classes/Sky.xml:7
msgid "The base class for [PanoramaSky] and [ProceduralSky]."
msgstr ""

#: doc/classes/Sky.xml:15
#, fuzzy
msgid ""
"The [Sky]'s radiance map size. The higher the radiance map size, the more "
"detailed the lighting from the [Sky] will be.\n"
"See [enum RadianceSize] constants for values.\n"
"[b]Note:[/b] You will only benefit from high radiance sizes if you have "
"perfectly sharp reflective surfaces in your project and are not using "
"[ReflectionProbe]s or [GIProbe]s. For most projects, keeping [member "
"radiance_size] to the default value is the best compromise between visuals "
"and performance. Be careful when using high radiance size values as these "
"can cause crashes on low-end GPUs."
msgstr ""
"[Sky]的辐照度贴图大小。辐照度贴图尺寸越大,[Sky]的照明就越细致。\n"
"有关值,请参阅 [enum RadianceSize] 常量。\n"
"[b]注意:[/b] 某些硬件在更高的辐照度尺寸下会出现问题,尤其是 [constant "
"RADIANCE_SIZE_512] 及以上。仅在高端硬件上使用如此高的值。"

#: doc/classes/Sky.xml:22
msgid "Radiance texture size is 32×32 pixels."
msgstr "辐照度纹理尺寸为 32×32 像素。"

#: doc/classes/Sky.xml:25
msgid "Radiance texture size is 64×64 pixels."
msgstr "辐照度纹理尺寸为 64×64 像素。"

#: doc/classes/Sky.xml:28
msgid "Radiance texture size is 128×128 pixels."
msgstr "辐照度纹理尺寸为128×128像素。"

#: doc/classes/Sky.xml:31
msgid "Radiance texture size is 256×256 pixels."
msgstr "辐照度纹理大小为 256×256 像素。"

#: doc/classes/Sky.xml:34
msgid "Radiance texture size is 512×512 pixels."
msgstr "辐照度纹理大小为 512×512 像素。"

#: doc/classes/Sky.xml:37
msgid ""
"Radiance texture size is 1024×1024 pixels.\n"
"[b]Note:[/b] [constant RADIANCE_SIZE_1024] is not exposed in the inspector "
"as it is known to cause GPU hangs on certain systems."
msgstr ""

#: doc/classes/Sky.xml:41
msgid ""
"Radiance texture size is 2048×2048 pixels.\n"
"[b]Note:[/b] [constant RADIANCE_SIZE_2048] is not exposed in the inspector "
"as it is known to cause GPU hangs on certain systems."
msgstr ""

#: doc/classes/Sky.xml:45
msgid "Represents the size of the [enum RadianceSize] enum."
msgstr "代表[enum RadianceSize]枚举的大小。"

#: doc/classes/Slider.xml:4
msgid "Base class for GUI sliders."
msgstr "GUI滑块的基类。"

#: doc/classes/Slider.xml:7
msgid ""
"Base class for GUI sliders.\n"
"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
"signals are part of the [Range] class which this class inherits from."
msgstr ""

#: doc/classes/Slider.xml:16
msgid ""
"If [code]true[/code], the slider can be interacted with. If [code]false[/"
"code], the value can be changed only by code."
msgstr ""
"如果[code]true[/code],滑块可以交互。如果[code]false[/code],则只能通过代码更"
"改该值。"

#: doc/classes/Slider.xml:20
msgid "If [code]true[/code], the value can be changed using the mouse wheel."
msgstr "如果 [code]true[/code],则可以使用鼠标滚轮更改该值。"

#: doc/classes/Slider.xml:24
msgid ""
"Number of ticks displayed on the slider, including border ticks. Ticks are "
"uniformly-distributed value markers."
msgstr "滑块上显示的刻度线数量,包括边界刻度线。刻度是均匀分布的数值标记。"

#: doc/classes/Slider.xml:27
msgid ""
"If [code]true[/code], the slider will display ticks for minimum and maximum "
"values."
msgstr "如果 [code]true[/code],滑块将显示最小值和最大值的刻度。"

#: doc/classes/SliderJoint.xml:4
#, fuzzy
msgid "Slider between two PhysicsBodies in 3D."
msgstr "3D 中两个物体之间的活塞式滑块。"

#: doc/classes/SliderJoint.xml:7
#, fuzzy
msgid ""
"Slides across the X axis of the pivot object. See also [Generic6DOFJoint]."
msgstr "在中心对象的 X 轴上滑动。"

#: doc/classes/SliderJoint.xml:28
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 B slower."
msgstr ""
"超过限制时旋转的阻尼量。\n"
"较低的阻尼值允许由主体 A 发起的旋转以较慢的速度传播到主体 B。"

#: doc/classes/SliderJoint.xml:35
msgid ""
"The amount of restitution of the rotation when the limit is surpassed.\n"
"Does not affect damping."
msgstr ""
"当超过极限时,旋转的恢复量。\n"
"不影响阻尼。"

#: doc/classes/SliderJoint.xml:39
msgid ""
"A factor applied to the all rotation once the limit is surpassed.\n"
"Makes all rotation slower when between 0 and 1."
msgstr ""
"应用于所有旋转超过限制后的系数。\n"
"在 0 和 1 之间时使所有旋转变慢。"

#: doc/classes/SliderJoint.xml:52 doc/classes/SliderJoint.xml:147
msgid "A factor applied to the all rotation in the limits."
msgstr "应用于所有受限旋转的系数。"

#: doc/classes/SliderJoint.xml:61 doc/classes/SliderJoint.xml:156
msgid ""
"A factor applied to the all rotation across axes orthogonal to the slider."
msgstr "应用于与滑块正交的轴的所有旋转的系数。"

#: doc/classes/SliderJoint.xml:64
msgid ""
"The amount of damping that happens once the limit defined by [member "
"linear_limit/lower_distance] and [member linear_limit/upper_distance] is "
"surpassed."
msgstr ""
"一旦超过[member linear_limit/lower_distance]和[member linear_limit/"
"upper_distance]所定义的极限,就会产生的阻尼量。"

#: doc/classes/SliderJoint.xml:70
msgid ""
"The amount of restitution once the limits are surpassed. The lower, the more "
"velocity-energy gets lost."
msgstr "超出限制后的补偿。数值越低,损失的速度能量越多。"

#: doc/classes/SoftBody.xml:4
msgid "A soft mesh physics body."
msgstr "柔性网格物理体。"

#: doc/classes/SoftBody.xml:7
msgid ""
"A deformable physics body. Used to create elastic or deformable objects such "
"as cloth, rubber, or other flexible materials."
msgstr ""
"一个可变形的物理体。用于创建弹性或可变形的物体,如布、橡胶或其他柔性材料。"

#: doc/classes/SoftBody.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/physics/soft_body.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/physics/soft_body.html"

#: doc/classes/SoftBody.xml:44
#, fuzzy
msgid "Returns local translation of a vertex in the surface array."
msgstr "返回当前地域对指定信息,即key的翻译。"

#: doc/classes/SoftBody.xml:51
#, fuzzy
msgid "Returns [code]true[/code] if vertex is set to pinned."
msgstr "如果定时器被停止,返回[code]true[/code]。"

#: doc/classes/SoftBody.xml:83
msgid ""
"Sets the pinned state of a surface vertex. When set to [code]true[/code], "
"the optional [code]attachment_path[/code] can define a [Spatial] the pinned "
"vertex will be attached to."
msgstr ""

#: doc/classes/SoftBody.xml:91
#, fuzzy
msgid ""
"The physics layers this SoftBody is in.\n"
"Collidable objects can exist in any of 32 different layers. These layers "
"work like a tagging system, and are not visual. A collidable can use these "
"layers to select with which objects it can collide, using the collision_mask "
"property.\n"
"A contact is detected if object A is in any of the layers that object B "
"scans, or object B is in any layer scanned by object A. See [url=https://"
"docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction."
"html#collision-layers-and-masks]Collision layers and masks[/url] in the "
"documentation for more information."
msgstr ""
"SoftBody3D 所在的物理层。\n"
"可碰撞对象可以存在于 32 个不同层中的任何层中。这些层像标记系统一样工作,而不"
"是可视化的。 collidable 可以使用这些层来选择它可以与哪些对象发生碰撞,使用"
"collids_mask 属性。\n"
"如果对象 A 位于对象 B 扫描的任何层中,或者对象 B 位于对象 A 扫描的任何层中,"
"则会检测到接触。"

#: doc/classes/SoftBody.xml:96
msgid ""
"The physics layers this SoftBody scans for collisions. See [url=https://docs."
"godotengine.org/en/3.4/tutorials/physics/physics_introduction.html#collision-"
"layers-and-masks]Collision layers and masks[/url] in the documentation for "
"more information."
msgstr ""

#: doc/classes/SoftBody.xml:105
#, fuzzy
msgid "[NodePath] to a [CollisionObject] this SoftBody should avoid clipping."
msgstr "[NodePath] 到 [CollisionObject3D] 此 SoftBody3D 应避免剪裁。"

#: doc/classes/SoftBody.xml:108
#, fuzzy
msgid ""
"If [code]true[/code], the [SoftBody] is simulated in physics. Can be set to "
"[code]false[/code] to pause the physics simulation."
msgstr ""
"如果[code]true[/code],触摸的状态为按下。如果[code]false[/code],触摸的状态被"
"释放。"

#: doc/classes/SoftBody.xml:115
#, fuzzy
msgid "If [code]true[/code], the [SoftBody] will respond to [RayCast]s."
msgstr "如果 [code]true[/code],则 [SoftBody3D] 将响应 [RayCast3D]。"

#: doc/classes/SoftBody.xml:118
msgid ""
"Increasing this value will improve the resulting simulation, but can affect "
"performance. Use with care."
msgstr "增加这个值会改善模拟结果,但会影响性能。使用时要注意。"

#: doc/classes/SoftBody.xml:121
#, fuzzy
msgid "The SoftBody's mass."
msgstr "SoftBody3D的质量。"

#: doc/classes/Spatial.xml:4
msgid "Most basic 3D game object, parent of all 3D-related nodes."
msgstr "最基本的3D游戏对象,所有与3D节点相关的父节点。"

#: doc/classes/Spatial.xml:7
#, fuzzy
msgid ""
"Most basic 3D game object, with a 3D [Transform] and visibility settings. "
"All other 3D game objects inherit from Spatial. Use [Spatial] as a parent "
"node to move, scale, rotate and show/hide children in a 3D project.\n"
"Affine operations (rotate, scale, translate) happen in parent's local "
"coordinate system, unless the [Spatial] object is set as top-level. Affine "
"operations in this coordinate system correspond to direct affine operations "
"on the [Spatial]'s transform. The word local below refers to this coordinate "
"system. The coordinate system that is attached to the [Spatial] object "
"itself is referred to as object-local coordinate system.\n"
"[b]Note:[/b] Unless otherwise specified, all methods that have angle "
"parameters must have angles specified as [i]radians[/i]. To convert degrees "
"to radians, use [method @GDScript.deg2rad]."
msgstr ""
"最基本的3D游戏对象,具有3D[Transform]和可见性设置。所有其他的3D游戏对象都继承"
"自Node3D。使用[Node3D]作为父节点,在3D项目中移动、缩放、旋转和显示/隐藏子节"
"点。\n"
"除非[Node3D]对象被设置为顶层,否则平差操作(旋转、缩放、平移)会在父节点的本"
"地坐标系中进行。在这个坐标系中的仿射操作对应于对[Node3D]的变换的直接仿射操"
"作。下面的本地一词指的是这个坐标系。附加到[Node3D]对象本身的坐标系被称为对象-"
"本地坐标系。\n"
"[b]注意:[/b]除非另有规定,所有有角度参数的方法必须将角度指定为[i]弧度[/i]。"
"要将度数转换为弧度,请使用[method @GDScript.deg2rad]。"

#: doc/classes/Spatial.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/3d/introduction_to_3d.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/introduction_to_3d."
"html"

#: doc/classes/Spatial.xml:13 doc/classes/Vector3.xml:16
#, fuzzy
msgid "https://github.com/godotengine/godot-demo-projects/tree/master/3d"
msgstr ""
"https://github.com/godotengine/godot-demo-projects/tree/master/audio/"
"generator"

#: doc/classes/Spatial.xml:25
#, fuzzy
msgid ""
"Returns the parent [Spatial], or an empty [Object] if no parent exists or "
"parent is not of type [Spatial]."
msgstr ""
"返回父节点[Node3D],如果不存在父节点或者父节点不是[Node3D]类型,则返回空的"
"[Object]。"

#: doc/classes/Spatial.xml:31
#, fuzzy
msgid ""
"Returns the current [World] resource this [Spatial] node is registered to."
msgstr "返回这个[Node3D]节点所注册的当前[World3D]资源。"

#: doc/classes/Spatial.xml:39
msgid ""
"Rotates the global (world) transformation around axis, a unit [Vector3], by "
"specified angle in radians. The rotation axis is in global coordinate system."
msgstr ""
"围绕轴(一个单位[Vector3])旋转全局(世界)变换,指定角度(弧度)。旋转轴是在"
"全局坐标系中。"

#: doc/classes/Spatial.xml:46
msgid ""
"Scales the global (world) transformation by the given [Vector3] scale "
"factors."
msgstr "通过给定的[Vector3]比例因子对全局(世界)变换进行缩放。"

#: doc/classes/Spatial.xml:53
msgid ""
"Moves the global (world) transformation by [Vector3] offset. The offset is "
"in global coordinate system."
msgstr "通过[Vector3]偏移量移动全局(世界)变换。偏移量是在全局坐标系中。"

#: doc/classes/Spatial.xml:59
msgid ""
"Disables rendering of this node. Changes [member visible] to [code]false[/"
"code]."
msgstr "禁用该节点的渲染。它将[member visible]改为[code]false[/code]。"

#: doc/classes/Spatial.xml:65
#, fuzzy
msgid ""
"Returns whether node notifies about its local transformation changes. "
"[Spatial] will not propagate this by default."
msgstr "返回节点是否通知其局部变换的变化。[Node3D]默认情况下不会对其进行通知。"

#: doc/classes/Spatial.xml:71
msgid ""
"Returns whether this node uses a scale of [code](1, 1, 1)[/code] or its "
"local transformation scale."
msgstr "返回该节点是否使用[code](1, 1, 1)[/code]的比例或其本地转换比例。"

#: doc/classes/Spatial.xml:77
msgid ""
"Returns whether this node is set as Toplevel, that is whether it ignores its "
"parent nodes transformations."
msgstr "返回该节点是否被设置为Toplevel,也就是是否忽略其父节点的变换。"

#: doc/classes/Spatial.xml:83
#, fuzzy
msgid ""
"Returns whether the node notifies about its global and local transformation "
"changes. [Spatial] will not propagate this by default."
msgstr ""
"返回节点是否通知其全局和局部的变换变化。[Node3D]默认情况下不会传播这个。"

#: doc/classes/Spatial.xml:97
msgid ""
"Rotates itself so that the local -Z axis points towards the [code]target[/"
"code] position.\n"
"The transform will first be rotated around the given [code]up[/code] vector, "
"and then fully aligned to the target by a further rotation around an axis "
"perpendicular to both the [code]target[/code] and [code]up[/code] vectors.\n"
"Operations take place in global space."
msgstr ""
"旋转自身,使局部-Z轴指向[code]target[/code]位置。\n"
"变换将首先围绕给定的[code]up[/code]矢量进行旋转,然后通过进一步围绕垂直于"
"[code]target[/code]和[code]up[/code]矢量的轴进行旋转来完全对准目标。\n"
"操作是在全局空间进行的。"

#: doc/classes/Spatial.xml:108
msgid ""
"Moves the node to the specified [code]position[/code], and then rotates "
"itself to point toward the [code]target[/code] as per [method look_at]. "
"Operations take place in global space."
msgstr ""
"将节点移动到指定的[code]position[/code],然后按照[method look_at]的要求旋转自"
"己以指向[code]target[/code]。操作是在全局空间进行的。"

#: doc/classes/Spatial.xml:114
msgid ""
"Resets this node's transformations (like scale, skew and taper) preserving "
"its rotation and translation by performing Gram-Schmidt orthonormalization "
"on this node's [Transform]."
msgstr ""
"通过对该节点的[Transform]进行Gram-Schmidt正则化,重新设置该节点的变换(如比"
"例、倾斜和锥度),保留其旋转和平移。"

#: doc/classes/Spatial.xml:122
msgid ""
"Rotates the local transformation around axis, a unit [Vector3], by specified "
"angle in radians."
msgstr "围绕轴(一个单位[Vector3])旋转局部变换,指定角度(弧度)。"

#: doc/classes/Spatial.xml:130
msgid ""
"Rotates the local transformation around axis, a unit [Vector3], by specified "
"angle in radians. The rotation axis is in object-local coordinate system."
msgstr ""
"围绕轴(一个单位[Vector3])旋转本地变换,指定角度(弧度)。旋转轴是在物体的本"
"地坐标系中。"

#: doc/classes/Spatial.xml:137
msgid "Rotates the local transformation around the X axis by angle in radians."
msgstr "围绕X轴旋转局部变换,旋转角度为弧度。"

#: doc/classes/Spatial.xml:144
msgid "Rotates the local transformation around the Y axis by angle in radians."
msgstr "围绕Y轴旋转局部变换,旋转角度为弧度。"

#: doc/classes/Spatial.xml:151
msgid "Rotates the local transformation around the Z axis by angle in radians."
msgstr "围绕Z轴旋转局部变换,旋转角度为弧度。"

#: doc/classes/Spatial.xml:158
msgid ""
"Scales the local transformation by given 3D scale factors in object-local "
"coordinate system."
msgstr "在物体局部坐标系中,通过给定的三维比例因子来缩放局部变换。"

#: doc/classes/Spatial.xml:165
msgid ""
"Makes the node ignore its parents transformations. Node transformations are "
"only in global space."
msgstr "使得节点忽略其父级的变换。节点的变换只在全局空间进行。"

#: doc/classes/Spatial.xml:172
msgid ""
"Sets whether the node uses a scale of [code](1, 1, 1)[/code] or its local "
"transformation scale. Changes to the local transformation scale are "
"preserved."
msgstr ""
"设置节点是否使用[code](1, 1, 1)[/code]的比例或其本地变换比例。对本地变换比例"
"的改变会被保留下来。"

#: doc/classes/Spatial.xml:178
msgid ""
"Reset all transformations for this node (sets its [Transform] to the "
"identity matrix)."
msgstr "重置该节点的所有变换(将其[Transform]重置为单位矩阵)。"

#: doc/classes/Spatial.xml:185
msgid ""
"Sets whether the node ignores notification that its transformation (global "
"or local) changed."
msgstr "设置节点是否忽略其转换(全局或局部)改变的通知。"

#: doc/classes/Spatial.xml:192
#, fuzzy
msgid ""
"Sets whether the node notifies about its local transformation changes. "
"[Spatial] will not propagate this by default."
msgstr "设置节点是否通知其本地转换更改。[ Node3D ]默认情况下不会传播此更改。"

#: doc/classes/Spatial.xml:199
#, fuzzy
msgid ""
"Sets whether the node notifies about its global and local transformation "
"changes. [Spatial] will not propagate this by default, unless it is in the "
"editor context and it has a valid gizmo."
msgstr ""
"设置节点是否通知其全局和本地转换更改。[ Node3D ]默认情况下不会传播此更改。"

#: doc/classes/Spatial.xml:205
msgid ""
"Enables rendering of this node. Changes [member visible] to [code]true[/"
"code]."
msgstr "启用此节点的呈现。将[member visible]更改为[code]true[/code]。"

#: doc/classes/Spatial.xml:212
msgid ""
"Transforms [code]local_point[/code] from this node's local space to world "
"space."
msgstr "将[code]local_point[/code]从该节点的本地空间转换为世界空间。"

#: doc/classes/Spatial.xml:219
msgid ""
"Transforms [code]global_point[/code] from world space to this node's local "
"space."
msgstr "将[code]global_point[/code]从世界空间转换到这个节点的本地空间。"

#: doc/classes/Spatial.xml:226
msgid ""
"Changes the node's position by the given offset [Vector3].\n"
"Note that the translation [code]offset[/code] is affected by the node's "
"scale, so if scaled by e.g. [code](10, 1, 1)[/code], a translation by an "
"offset of [code](2, 0, 0)[/code] would actually add 20 ([code]2 * 10[/code]) "
"to the X coordinate."
msgstr ""
"通过给定的偏移量[Vector3]改变节点的位置。\n"
"注意,平移[code]offset[/code]受节点比例因子(scale)的影响,所以如果按例如"
"[code](10,1,1)[/code]进行缩放,平移[code](2,0,0)[/code]实际上会在X坐标上增加"
"20 ([code]2 * 10[/code])。"

#: doc/classes/Spatial.xml:234
msgid ""
"Changes the node's position by the given offset [Vector3] in local space."
msgstr "通过给定的偏移量[Vector3]改变节点在局部空间中的位置。"

#: doc/classes/Spatial.xml:240
#, fuzzy
msgid "Updates the [SpatialGizmo] of this node."
msgstr "更新该节点的[Node3DGizmo]。"

#: doc/classes/Spatial.xml:246
#, fuzzy
msgid ""
"The [SpatialGizmo] for this node. Used for example in [EditorSpatialGizmo] "
"as custom visualization and editing handles in Editor."
msgstr ""
"这个节点的[Node3DGizmo]。例如在[EditorNode3DGizmo]中作为自定义可视化和编辑句"
"柄使用。"

#: doc/classes/Spatial.xml:249
#, fuzzy
msgid "World space (global) [Transform] of this node."
msgstr "这个节点的World3D空间(全局)[Transform]。"

#: doc/classes/Spatial.xml:252
msgid ""
"Rotation part of the local transformation in radians, specified in terms of "
"YXZ-Euler angles in the format (X angle, Y angle, Z angle).\n"
"[b]Note:[/b] In the mathematical sense, rotation is a matrix and not a "
"vector. The three Euler angles, which are the three independent parameters "
"of the Euler-angle parametrization of the rotation matrix, are stored in a "
"[Vector3] data structure not because the rotation is a vector, but only "
"because [Vector3] exists as a convenient data-structure to store 3 floating-"
"point numbers. Therefore, applying affine operations on the rotation \"vector"
"\" is not meaningful."
msgstr ""
"局部变换的旋转部分以弧度表示,以YXZ-Euler角的形式表示(X角、Y角、Z角)。\n"
"[b]注:[/b]在数学意义上,旋转是一个矩阵而不是一个向量。这三个欧拉角是旋转矩阵"
"欧拉角参数化的三个独立参数,存储在[Vector3]数据结构中并不是因为旋转是一个矢"
"量,而是因为[Vector3]是一种方便存储3个浮点数的数据结构。因此,对旋转“向量”应"
"用仿射操作是没有意义的。"

#: doc/classes/Spatial.xml:256
msgid ""
"Rotation part of the local transformation in degrees, specified in terms of "
"YXZ-Euler angles in the format (X angle, Y angle, Z angle)."
msgstr "旋转部分局部变换为度,按YXZ-Euler角格式指定(X角、Y角、Z角)。"

#: doc/classes/Spatial.xml:259
msgid "Scale part of the local transformation."
msgstr "局部变换的缩放部分。"

#: doc/classes/Spatial.xml:262
msgid "Local space [Transform] of this node, with respect to the parent node."
msgstr "该节点相对于父节点的局部空间[Transform]。"

#: doc/classes/Spatial.xml:265
msgid "Local translation of this node."
msgstr "此节点的局部变换。"

#: doc/classes/Spatial.xml:268
msgid ""
"If [code]true[/code], this node is drawn. The node is only visible if all of "
"its antecedents are visible as well (in other words, [method "
"is_visible_in_tree] must return [code]true[/code])."
msgstr ""
"如果[code]true[/code],这个节点就会被画出来。只有当它的所有前项也是可见的时"
"候,这个节点才是可见的(换句话说,[method is_visible_in_tree]必须返回"
"[code]true[/code])。"

#: doc/classes/Spatial.xml:274
msgid ""
"Emitted by portal system gameplay monitor when a node enters the gameplay "
"area."
msgstr ""

#: doc/classes/Spatial.xml:279
msgid ""
"Emitted by portal system gameplay monitor when a node exits the gameplay "
"area."
msgstr ""

#: doc/classes/Spatial.xml:284
msgid "Emitted when node visibility changes."
msgstr "当节点可见性更改时触发。"

#: doc/classes/Spatial.xml:290
#, fuzzy
msgid ""
"Spatial nodes receives this notification when their global transform "
"changes. This means that either the current or a parent node changed its "
"transform.\n"
"In order for [constant NOTIFICATION_TRANSFORM_CHANGED] to work, users first "
"need to ask for it, with [method set_notify_transform]. The notification is "
"also sent if the node is in the editor context and it has a valid gizmo."
msgstr ""
"当Node3D节点的全局变换发生变化时,会收到这个通知。这意味着当前节点或父节点改"
"变了它的变换。\n"
"为了使[constant NOTIFICATION_TRANSFORM_CHANGED]发挥作用,用户首先需要通过"
"[method set_notify_transform]来要求它。"

#: doc/classes/Spatial.xml:294
#, fuzzy
msgid ""
"Spatial nodes receives this notification when they are registered to new "
"[World] resource."
msgstr "当Node3D节点被注册到新的[World3D]资源时,它们会收到这个通知。"

#: doc/classes/Spatial.xml:297
#, fuzzy
msgid ""
"Spatial nodes receives this notification when they are unregistered from "
"current [World] resource."
msgstr "当Node3D节点从当前[World3D]资源中取消注册时,它们会收到这个通知。"

#: doc/classes/Spatial.xml:300
#, fuzzy
msgid "Spatial nodes receives this notification when their visibility changes."
msgstr "当Node3D节点的可见性发生变化时,会收到这个通知。"

#: doc/classes/Spatial.xml:303
msgid ""
"Spatial nodes receives this notification if the portal system gameplay "
"monitor detects they have entered the gameplay area."
msgstr ""

#: doc/classes/Spatial.xml:306
msgid ""
"Spatial nodes receives this notification if the portal system gameplay "
"monitor detects they have exited the gameplay area."
msgstr ""

#: doc/classes/SpatialMaterial.xml:4
msgid "Default 3D rendering material."
msgstr "默认的3D渲染材料。"

#: doc/classes/SpatialMaterial.xml:7
msgid ""
"This provides a default material with a wide variety of rendering features "
"and properties without the need to write shader code. See the tutorial below "
"for details."
msgstr ""
"这提供了一个默认的材质,具有多种渲染功能和属性,无需编写着色器代码。详情请看"
"下面的教程。"

#: doc/classes/SpatialMaterial.xml:10
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/3d/spatial_material.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/3d/spatial_material.html"

#: doc/classes/SpatialMaterial.xml:17
msgid "Returns [code]true[/code], if the specified [enum Feature] is enabled."
msgstr "如果指定的 [enum Feature] 被启用,返回 [code]true[/code]。"

#: doc/classes/SpatialMaterial.xml:24
msgid ""
"Returns [code]true[/code], if the specified flag is enabled. See [enum "
"Flags] enumerator for options."
msgstr ""
"如果指定的标志被启用,返回 [code]true[/code]。参见 [enum Flags] 枚举器的选"
"项。"

#: doc/classes/SpatialMaterial.xml:31
msgid ""
"Returns the [Texture] associated with the specified [enum TextureParam]."
msgstr "返回与指定的 [enum TextureParam] 关联的 [Texture]。"

#: doc/classes/SpatialMaterial.xml:39
#, fuzzy
msgid ""
"If [code]true[/code], enables the specified [enum Feature]. Many features "
"that are available in [SpatialMaterial]s need to be enabled before use. This "
"way the cost for using the feature is only incurred when specified. Features "
"can also be enabled by setting the corresponding member to [code]true[/code]."
msgstr ""
"如果为 [code]true[/code],启用指定的 [enum Feature]。很多在 [BaseMaterial3D] "
"中可以使用的特性都需要在使用前启用。这样该特性的成本只有在指定时才会产生。也"
"可以通过将相应的成员设置为 [code]true[/code] 来启用特征。"

#: doc/classes/SpatialMaterial.xml:47
#, fuzzy
msgid ""
"If [code]true[/code], enables the specified flag. Flags are optional "
"behaviour that can be turned on and off. Only one flag can be enabled at a "
"time with this function, the flag enumerators cannot be bit-masked together "
"to enable or disable multiple flags at once. Flags can also be enabled by "
"setting the corresponding member to [code]true[/code]. See [enum Flags] "
"enumerator for options."
msgstr ""
"如果 [code]true[/code],启用指定的标志。标志是可选的行为,可以打开和关闭。使"
"用该函数一次只能启用一个标志,不能将标志枚举器进行位掩码,以一次启用或禁用多"
"个标志。也可以通过将相应的成员设置为[code]true[/code]来启用标志。选项参见 "
"[enum Flags] 枚举器。"

#: doc/classes/SpatialMaterial.xml:55
msgid ""
"Sets the [Texture] to be used by the specified [enum TextureParam]. This "
"function is called when setting members ending in [code]*_texture[/code]."
msgstr ""

#: doc/classes/SpatialMaterial.xml:61
msgid "The material's base color."
msgstr "材料的底色。"

#: doc/classes/SpatialMaterial.xml:64
msgid ""
"Texture to multiply by [member albedo_color]. Used for basic texturing of "
"objects."
msgstr "纹理乘以 [member albedo_color]。用于对象的基本纹理。"

#: doc/classes/SpatialMaterial.xml:67
msgid "The strength of the anisotropy effect."
msgstr "各向异性效应的强度。"

#: doc/classes/SpatialMaterial.xml:70
msgid ""
"If [code]true[/code], anisotropy is enabled. Changes the shape of the "
"specular blob and aligns it to tangent space. Mesh tangents are needed for "
"this to work. If the mesh does not contain tangents the anisotropy effect "
"will appear broken."
msgstr ""
"如果 [code]true[/code],则启用各向异性。改变镜面小球的形状,并使其与切线空间"
"对齐。此功能需要有网格切线才行。如果网格不包含切线,各向异性的效果就会被破"
"坏。"

#: doc/classes/SpatialMaterial.xml:73
msgid "Texture that offsets the tangent map for anisotropy calculations."
msgstr "用于各向异性计算的偏移切线图的纹理。"

#: doc/classes/SpatialMaterial.xml:76
msgid ""
"If [code]true[/code], ambient occlusion is enabled. Ambient occlusion "
"darkens areas based on the [member ao_texture]."
msgstr ""
"如果 [code]true[/code],启用环境遮挡。环境遮挡根据 [member ao_texture] 使区域"
"变暗。"

#: doc/classes/SpatialMaterial.xml:79
msgid ""
"Amount that ambient occlusion affects lighting from lights. If [code]0[/"
"code], ambient occlusion only affects ambient light. If [code]1[/code], "
"ambient occlusion affects lights just as much as it affects ambient light. "
"This can be used to impact the strength of the ambient occlusion effect, but "
"typically looks unrealistic."
msgstr ""
"环境遮挡对灯光照明的影响程度。如果 [code]0[/code],环境遮挡只影响环境光。如"
"果 [code]1[/code],环境遮挡对灯光的影响和对环境光的影响一样大。这可以用来影响"
"环境遮挡效果的强度,但通常看起来不真实。"

#: doc/classes/SpatialMaterial.xml:82
msgid ""
"If [code]true[/code], use [code]UV2[/code] coordinates to look up from the "
"[member ao_texture]."
msgstr ""
"如果 [code]true[/code],请使用 [code] UV2 [/code] 坐标从[member ao_texture]中"
"查找。"

#: doc/classes/SpatialMaterial.xml:85
msgid ""
"Texture that defines the amount of ambient occlusion for a given point on "
"the object."
msgstr "定义物体上给定点的环境遮挡量的纹理。"

#: doc/classes/SpatialMaterial.xml:88 doc/classes/SpatialMaterial.xml:325
msgid ""
"Specifies the channel of the [member ao_texture] in which the ambient "
"occlusion information is stored. This is useful when you store the "
"information for multiple effects in a single texture. For example if you "
"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通道中,就可以减少您使用的纹理数量。"

#: doc/classes/SpatialMaterial.xml:91
msgid ""
"Sets the strength of the clearcoat effect. Setting to [code]0[/code] looks "
"the same as disabling the clearcoat effect."
msgstr "设置清漆效果的强度。设置为 [code]0[/code] 与禁用清漆效果相同。"

#: doc/classes/SpatialMaterial.xml:94
#, fuzzy
msgid ""
"If [code]true[/code], clearcoat rendering is enabled. Adds a secondary "
"transparent pass to the lighting calculation resulting in an added specular "
"blob. This makes materials appear as if they have a clear layer on them that "
"can be either glossy or rough.\n"
"[b]Note:[/b] Clearcoat rendering is not visible if the material has [member "
"flags_unshaded] set to [code]true[/code]."
msgstr ""
"如果[code]true[/code],则启用透明涂层渲染。在光照计算中添加一个二级透明通道,"
"从而产生一个额外的镜面斑点。这使得材质看起来好像有一个透明层,可以是光滑或粗"
"糙的。"

#: doc/classes/SpatialMaterial.xml:98
msgid ""
"Sets the roughness of the clearcoat pass. A higher value results in a "
"smoother clearcoat while a lower value results in a rougher clearcoat."
msgstr ""
"设置清漆通道的粗糙度,数值越高,清漆越光滑,数值越低,清漆越粗糙。值越高,清"
"漆越光滑,值越低,清漆越粗糙。"

#: doc/classes/SpatialMaterial.xml:101
msgid ""
"Texture that defines the strength of the clearcoat effect and the glossiness "
"of the clearcoat. Strength is specified in the red channel while glossiness "
"is specified in the green channel."
msgstr ""
"定义清漆效果的强度和清漆的光泽度的纹理。强度在红色通道中指定,光泽度在绿色通"
"道中指定。"

#: doc/classes/SpatialMaterial.xml:104
msgid ""
"If [code]true[/code], the shader will read depth texture at multiple points "
"along the view ray to determine occlusion and parrallax. This can be very "
"performance demanding, but results in more realistic looking depth mapping."
msgstr ""

#: doc/classes/SpatialMaterial.xml:107
msgid ""
"If [code]true[/code], depth mapping is enabled (also called \"parallax "
"mapping\" or \"height mapping\"). See also [member normal_enabled].\n"
"[b]Note:[/b] Depth mapping is not supported if triplanar mapping is used on "
"the same material. The value of [member depth_enabled] will be ignored if "
"[member uv1_triplanar] is enabled."
msgstr ""

#: doc/classes/SpatialMaterial.xml:111
msgid ""
"If [code]true[/code], direction of the binormal is flipped before using in "
"the depth effect. This may be necessary if you have encoded your binormals "
"in a way that is conflicting with the depth effect."
msgstr ""

#: doc/classes/SpatialMaterial.xml:114
msgid ""
"If [code]true[/code], direction of the tangent is flipped before using in "
"the depth effect. This may be necessary if you have encoded your tangents in "
"a way that is conflicting with the depth effect."
msgstr ""

#: doc/classes/SpatialMaterial.xml:117
msgid ""
"Number of layers to use when using [member depth_deep_parallax] and the view "
"direction is perpendicular to the surface of the object. A higher number "
"will be more performance demanding while a lower number may not look as "
"crisp."
msgstr ""

#: doc/classes/SpatialMaterial.xml:120
msgid ""
"Number of layers to use when using [member depth_deep_parallax] and the view "
"direction is parallel to the surface of the object. A higher number will be "
"more performance demanding while a lower number may not look as crisp."
msgstr ""

#: doc/classes/SpatialMaterial.xml:123
msgid ""
"Scales the depth offset effect. A higher number will create a larger depth."
msgstr ""

#: doc/classes/SpatialMaterial.xml:126
msgid ""
"Texture used to determine depth at a given pixel. Depth is always stored in "
"the red channel."
msgstr ""

#: doc/classes/SpatialMaterial.xml:129
msgid "Texture that specifies the color of the detail overlay."
msgstr "指定细节叠加的颜色的纹理。"

#: doc/classes/SpatialMaterial.xml:132
msgid ""
"Specifies how the [member detail_albedo] should blend with the current "
"[code]ALBEDO[/code]. See [enum BlendMode] for options."
msgstr ""
"指定 [member detail_albedo] 应如何与当前 [code]ALBEDO[/code] 混合。参见 "
"[enum BlendMode] 选项。"

#: doc/classes/SpatialMaterial.xml:135
msgid ""
"If [code]true[/code], enables the detail overlay. Detail is a second texture "
"that gets mixed over the surface of the object based on [member "
"detail_mask]. This can be used to add variation to objects, or to blend "
"between two different albedo/normal textures."
msgstr ""
"如果[code]true[/code],启用细节叠加。Detail是基于[member detail_mask]在对象表"
"面混合的第二个纹理。这可以用来给物体增加变化,或者在两种不同的反射率/法线纹理"
"之间进行混合。"

#: doc/classes/SpatialMaterial.xml:138
msgid ""
"Texture used to specify how the detail textures get blended with the base "
"textures."
msgstr "纹理用于指定细节纹理与基础纹理的混合方式。"

#: doc/classes/SpatialMaterial.xml:141
msgid ""
"Texture that specifies the per-pixel normal of the detail overlay.\n"
"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
"See [url=http://wiki.polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
"a comparison of normal map coordinates expected by popular engines."
msgstr ""
"指定细节叠加层每像素法线的纹理。\n"
"[b]注意:[/b] Godot希望法线贴图使用X +,Y-和Z +坐标。请参阅[url=http://wiki."
"polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url],以比"
"较流行引擎期望的法线地图坐标。"

#: doc/classes/SpatialMaterial.xml:145
msgid ""
"Specifies whether to use [code]UV[/code] or [code]UV2[/code] for the detail "
"layer. See [enum DetailUV] for options."
msgstr ""
"指定细节层是使用[code]UV[/code]还是[code]UV2[/code]。选项请参见[enum "
"DetailUV]。"

#: doc/classes/SpatialMaterial.xml:148
msgid ""
"Distance at which the object appears fully opaque.\n"
"[b]Note:[/b] If [code]distance_fade_max_distance[/code] is less than "
"[code]distance_fade_min_distance[/code], the behavior will be reversed. The "
"object will start to fade away at [code]distance_fade_max_distance[/code] "
"and will fully disappear once it reaches [code]distance_fade_min_distance[/"
"code]."
msgstr ""

#: doc/classes/SpatialMaterial.xml:152
msgid ""
"Distance at which the object starts to become visible. If the object is less "
"than this distance away, it will be invisible.\n"
"[b]Note:[/b] If [code]distance_fade_min_distance[/code] is greater than "
"[code]distance_fade_max_distance[/code], the behavior will be reversed. The "
"object will start to fade away at [code]distance_fade_max_distance[/code] "
"and will fully disappear once it reaches [code]distance_fade_min_distance[/"
"code]."
msgstr ""

#: doc/classes/SpatialMaterial.xml:156
msgid ""
"Specifies which type of fade to use. Can be any of the [enum "
"DistanceFadeMode]s."
msgstr "指定要使用的淡入淡出类型。可以是任何一个[enum DistanceFadeMode]。"

#: doc/classes/SpatialMaterial.xml:159
msgid "The emitted light's color. See [member emission_enabled]."
msgstr "发出的光的颜色。参见[member emission_enabled]。"

#: doc/classes/SpatialMaterial.xml:162
#, fuzzy
msgid ""
"If [code]true[/code], the body emits light. Emitting light makes the object "
"appear brighter. The object can also cast light on other objects if a "
"[GIProbe] or [BakedLightmap] is used and this object is used in baked "
"lighting."
msgstr ""
"如果[code]true[/code],则物体会发出光。发光会使物体显得更亮。如果使用了"
"[GIProbe],并且该物体在烘焙照明中使用,那么该物体也可以向其他物体投光。"

#: doc/classes/SpatialMaterial.xml:165
msgid "The emitted light's strength. See [member emission_enabled]."
msgstr "发出的光的强度。参见[member emission_enabled]。"

#: doc/classes/SpatialMaterial.xml:168
msgid "Use [code]UV2[/code] to read from the [member emission_texture]."
msgstr "使用[code]UV2[/code]从[member emission_texture]中读取。"

#: doc/classes/SpatialMaterial.xml:171
msgid ""
"Sets how [member emission] interacts with [member emission_texture]. Can "
"either add or multiply. See [enum EmissionOperator] for options."
msgstr ""
"设置[member emission]与[member emission_texture]的交互方式。可以是加法或乘"
"法。选项参见 [enum EmissionOperator] 。"

#: doc/classes/SpatialMaterial.xml:174
msgid "Texture that specifies how much surface emits light at a given point."
msgstr "纹理,指定某点的表面发光的程度。"

#: doc/classes/SpatialMaterial.xml:177
msgid ""
"Forces a conversion of the [member albedo_texture] from sRGB space to linear "
"space."
msgstr "强制将 [member albedo_texture] 从sRGB空间转换为线性空间。"

#: doc/classes/SpatialMaterial.xml:180
msgid "If [code]true[/code], the object receives no ambient light."
msgstr "如果[code]true[/code],则对象不接收环境光。"

#: doc/classes/SpatialMaterial.xml:183
msgid ""
"If [code]true[/code], the object receives no shadow that would otherwise be "
"cast onto it."
msgstr "如果[code]true[/code],则对象不会收到投射到其上的阴影。"

#: doc/classes/SpatialMaterial.xml:186
msgid ""
"If [code]true[/code], the shader will compute extra operations to make sure "
"the normal stays correct when using a non-uniform scale. Only enable if "
"using non-uniform scaling."
msgstr ""

#: doc/classes/SpatialMaterial.xml:189
msgid ""
"If [code]true[/code], the object is rendered at the same size regardless of "
"distance."
msgstr "如果[code]true[/code],则无论距离远近,对象都以相同的尺寸呈现。"

#: doc/classes/SpatialMaterial.xml:192
msgid ""
"If [code]true[/code], depth testing is disabled and the object will be drawn "
"in render order."
msgstr "如果[code]true[/code],深度测试被禁用,对象将按渲染顺序绘制。"

#: doc/classes/SpatialMaterial.xml:195
#, fuzzy
msgid ""
"If [code]true[/code], transparency is enabled on the body. See also [member "
"params_blend_mode]."
msgstr "如果[code]true[/code],则启用主体的透明度。另见[member blend_mode]。"

#: doc/classes/SpatialMaterial.xml:198
#, fuzzy
msgid "If [code]true[/code], the object is unaffected by lighting."
msgstr "如果[code]true[/code],则对象不接收环境光。"

#: doc/classes/SpatialMaterial.xml:201
#, fuzzy
msgid ""
"If [code]true[/code], render point size can be changed.\n"
"[b]Note:[/b] This is only effective for objects whose geometry is point-"
"based rather than triangle-based. See also [member params_point_size]."
msgstr ""
"如果[code]true[/code],可以改变渲染点的大小。\n"
"[b]注意:[/b]这只对几何体是基于点而不是基于三角形的对象有效。另见[member "
"point_size]。"

#: doc/classes/SpatialMaterial.xml:205
msgid ""
"If [code]true[/code], enables the \"shadow to opacity\" render mode where "
"lighting modifies the alpha so shadowed areas are opaque and non-shadowed "
"areas are transparent. Useful for overlaying shadows onto a camera feed in "
"AR."
msgstr ""
"如果 [code]true[/code],启用 \"阴影到不透明度 \"的渲染模式,在该模式下,光照"
"会修改 alpha,使阴影区域不透明,非阴影区域透明。对于在AR中把阴影叠加到摄像机"
"画面上很有用。"

#: doc/classes/SpatialMaterial.xml:208
msgid ""
"If [code]true[/code], lighting is calculated per vertex rather than per "
"pixel. This may increase performance on low-end devices."
msgstr ""

#: doc/classes/SpatialMaterial.xml:211
#, fuzzy
msgid ""
"If [code]true[/code], triplanar mapping is calculated in world space rather "
"than object local space. See also [member uv1_triplanar]."
msgstr ""
"如果 [code]true[/code],[code]UV[/code]的三平面贴图是在世界空间而不是对象局部"
"空间计算的。另请参阅 [member uv1_triplanar]。"

#: doc/classes/SpatialMaterial.xml:214
msgid ""
"A high value makes the material appear more like a metal. Non-metals use "
"their albedo as the diffuse color and add diffuse to the specular "
"reflection. With non-metals, the reflection appears on top of the albedo "
"color. Metals use their albedo as a multiplier to the specular reflection "
"and set the diffuse color to black resulting in a tinted reflection. "
"Materials work better when fully metal or fully non-metal, values between "
"[code]0[/code] and [code]1[/code] should only be used for blending between "
"metal and non-metal sections. To alter the amount of reflection use [member "
"roughness]."
msgstr ""
"高值使材料看起来更像金属。非金属使用其反射率作为漫射色,并在镜面反射上添加漫"
"射。对于非金属,反射出现在反照率颜色之上。金属使用其反射率作为镜面反射的倍"
"数,并将漫射色设置为黑色,从而产生有色反射。材料在全金属或全非金属时效果更"
"好,介于[code]0[/code]和[code]1[/code]之间的值只能用于金属和非金属部分之间的"
"混合。要改变反射量,请使用[member roughness]。"

#: doc/classes/SpatialMaterial.xml:217
#, fuzzy
msgid ""
"Sets the size of the specular lobe. The specular lobe is the bright spot "
"that is reflected from light sources.\n"
"[b]Note:[/b] Unlike [member metallic], this is not energy-conserving, so it "
"should be left at [code]0.5[/code] in most cases. See also [member "
"roughness]."
msgstr ""
"设置镜面光叶的大小。镜面叶是光源反射的亮点。\n"
"[b]注意:[/b]与[member metallic]不同,这不是能量守恒,所以在大多数情况下,应该"
"将其保留在[code]0.5[/code]。另见[member roughness]。"

#: doc/classes/SpatialMaterial.xml:221
msgid ""
"Texture used to specify metallic for an object. This is multiplied by "
"[member metallic]."
msgstr "用于指定对象的金属质感。此值乘[member metallic]。"

#: doc/classes/SpatialMaterial.xml:224
msgid ""
"Specifies the channel of the [member metallic_texture] in which the metallic "
"information is stored. This is useful when you store the information for "
"multiple effects in a single texture. For example if you 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 metallic_texture] 的通道。当您在一个纹理中存储多个"
"效果的信息时,这很有用。例如,如果您将金属效果存储在红色通道中,将粗糙度存储"
"在蓝色通道中,将环境遮挡存储在绿色通道中,就可以减少您使用的纹理数量。"

#: doc/classes/SpatialMaterial.xml:227
msgid "If [code]true[/code], normal mapping is enabled."
msgstr "如果[code]true[/code],则启用法线映射。"

#: doc/classes/SpatialMaterial.xml:230
msgid "The strength of the normal map's effect."
msgstr "法线贴图的效果强度。"

#: doc/classes/SpatialMaterial.xml:233
#, fuzzy
msgid ""
"Texture used to specify the normal at a given pixel. The "
"[code]normal_texture[/code] only uses the red and green channels; the blue "
"and alpha channels are ignored. The normal read from [code]normal_texture[/"
"code] is oriented around the surface normal provided by the [Mesh].\n"
"[b]Note:[/b] The mesh must have both normals and tangents defined in its "
"vertex data. Otherwise, the normal map won't render correctly and will only "
"appear to darken the whole surface. If creating geometry with [SurfaceTool], "
"you can use [method SurfaceTool.generate_normals] and [method SurfaceTool."
"generate_tangents] to automatically generate normals and tangents "
"respectively.\n"
"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
"See [url=http://wiki.polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
"a comparison of normal map coordinates expected by popular engines."
msgstr ""
"纹理用于指定给定像素的法线。[code]normal_texture[/code] 只使用红色和绿色通"
"道。从[code]normal_texture[/code]读取的法线是围绕[Mesh]提供的表面法线的。\n"
"[b]注意:[/b] Godot希望法线图使用X+、Y-和Z+坐标。参见[url=http://wiki."
"polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url],以了"
"解流行引擎所期望的法线图坐标的比较。"

#: doc/classes/SpatialMaterial.xml:238
msgid "Threshold at which the alpha scissor will discard values."
msgstr "alpha scissor 会丢弃数值的阈值。"

#: doc/classes/SpatialMaterial.xml:241
#, fuzzy
msgid ""
"If [code]true[/code], the shader will keep the scale set for the mesh. "
"Otherwise the scale is lost when billboarding. Only applies when [member "
"params_billboard_mode] is [constant BILLBOARD_ENABLED]."
msgstr ""
"如果 [code]true[/code],着色器将保持为网格设置的比例。否则,在做广告牌时,比"
"例尺会丢失。只有当 [member billboard_mode] 为 [constant BILLBOARD_ENABLED] 时"
"才适用。"

#: doc/classes/SpatialMaterial.xml:244
msgid ""
"Controls how the object faces the camera. See [enum BillboardMode].\n"
"[b]Note:[/b] Billboard mode is not suitable for VR because the left-right "
"vector of the camera is not horizontal when the screen is attached to your "
"head instead of on the table. See [url=https://github.com/godotengine/godot/"
"issues/41567]GitHub issue #41567[/url] for details."
msgstr ""

#: doc/classes/SpatialMaterial.xml:248
msgid ""
"The material's blend mode.\n"
"[b]Note:[/b] Values other than [code]Mix[/code] force the object into the "
"transparent pipeline. See [enum BlendMode]."
msgstr ""
"材质的混合模式。\n"
"[b]注意:[/b]除 [code]Mix[/code] 以外的值会强制对象进入透明管道。参见 [enum "
"BlendMode]。"

#: doc/classes/SpatialMaterial.xml:252
msgid ""
"Which side of the object is not drawn when backfaces are rendered. See [enum "
"CullMode]."
msgstr "渲染背面时,不绘制对象的哪一面。参见 [enum CullMode]。"

#: doc/classes/SpatialMaterial.xml:255
#, fuzzy
msgid ""
"Determines when depth rendering takes place. See [enum DepthDrawMode]. See "
"also [member flags_transparent]."
msgstr ""
"确定何时进行深度渲染。参见 [enum DepthDrawMode]。也请参见 [member "
"transparency]。"

#: doc/classes/SpatialMaterial.xml:258
msgid ""
"The algorithm used for diffuse light scattering. See [enum DiffuseMode]."
msgstr "用于漫射光散射的算法。参见[enum DiffuseMode]。"

#: doc/classes/SpatialMaterial.xml:261
#, fuzzy
msgid ""
"If [code]true[/code], enables the vertex grow setting. See [member "
"params_grow_amount]."
msgstr "如果[code]true[/code],启用顶点生长设置。参见[member grow_amount]。"

#: doc/classes/SpatialMaterial.xml:264
msgid "Grows object vertices in the direction of their normals."
msgstr "沿着法线的方向生长对象顶点。"

#: doc/classes/SpatialMaterial.xml:267
#, fuzzy
msgid "Currently unimplemented in Godot."
msgstr "目前在 Godot 3.x 中未实现。"

#: doc/classes/SpatialMaterial.xml:270
#, fuzzy
msgid "The point size in pixels. See [member flags_use_point_size]."
msgstr "点的大小,单位为像素。参见[member use_point_size]。"

#: doc/classes/SpatialMaterial.xml:273
msgid "The method for rendering the specular blob. See [enum SpecularMode]."
msgstr "镜面小球的渲染方法。参见[enum SpecularMode]。"

#: doc/classes/SpatialMaterial.xml:276
msgid ""
"If [code]true[/code], the shader will discard all pixels that have an alpha "
"value less than [member params_alpha_scissor_threshold]."
msgstr ""

#: doc/classes/SpatialMaterial.xml:279
#, fuzzy
msgid ""
"The number of horizontal frames in the particle sprite sheet. Only enabled "
"when using [constant BILLBOARD_PARTICLES]. See [member "
"params_billboard_mode]."
msgstr ""
"粒子精灵表的水平帧数。仅当使用[constant BILLBOARD_PARTICLES]时启用。参见"
"[member billboard_mode]。"

#: doc/classes/SpatialMaterial.xml:282
#, fuzzy
msgid ""
"If [code]true[/code], particle animations are looped. Only enabled when "
"using [constant BILLBOARD_PARTICLES]. See [member params_billboard_mode]."
msgstr ""
"如果[code]true[/code],则循环播放粒子动画。仅当使用[constant "
"BILLBOARD_PARTICLES]时启用。参见[member billboard_mode]。"

#: doc/classes/SpatialMaterial.xml:285
#, fuzzy
msgid ""
"The number of vertical frames in the particle sprite sheet. Only enabled "
"when using [constant BILLBOARD_PARTICLES]. See [member "
"params_billboard_mode]."
msgstr ""
"粒子精灵表的垂直帧数。仅当使用[constant BILLBOARD_PARTICLES]时启用。参见"
"[member billboard_mode]。"

#: doc/classes/SpatialMaterial.xml:288
msgid ""
"Distance over which the fade effect takes place. The larger the distance the "
"longer it takes for an object to fade."
msgstr "渐变效果发生的距离。距离越大,物体褪色的时间越长。"

#: doc/classes/SpatialMaterial.xml:291
msgid ""
"If [code]true[/code], the proximity fade effect is enabled. The proximity "
"fade effect fades out each pixel based on its distance to another object."
msgstr ""
"如果[code]true[/code],则启用接近淡出效果。邻近淡出效果会根据每个像素与另一个"
"对象的距离淡出。"

#: doc/classes/SpatialMaterial.xml:294
msgid ""
"If [code]true[/code], the refraction effect is enabled. Refraction distorts "
"transparency based on light from behind the object. When using the GLES3 "
"backend, the material's roughness value will affect the blurriness of the "
"refraction. Higher roughness values will make the refraction look blurrier."
msgstr ""

#: doc/classes/SpatialMaterial.xml:297
msgid ""
"The strength of the refraction effect. Higher values result in a more "
"distorted appearance for the refraction."
msgstr ""

#: doc/classes/SpatialMaterial.xml:300
msgid ""
"Texture that controls the strength of the refraction per-pixel. Multiplied "
"by [member refraction_scale]."
msgstr "控制每个像素折射强度的纹理。乘以[member refraction_scale]。"

#: doc/classes/SpatialMaterial.xml:303
#, fuzzy
msgid ""
"Specifies the channel of the [member refraction_texture] in which the "
"refraction information is stored. This is useful when you store the "
"information for multiple effects in a single texture. For example if you "
"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 metallic_texture] 的通道。当您在一个纹理中存储多个"
"效果的信息时,这很有用。例如,如果您将金属效果存储在红色通道中,将粗糙度存储"
"在蓝色通道中,将环境遮挡存储在绿色通道中,就可以减少您使用的纹理数量。"

#: doc/classes/SpatialMaterial.xml:306
msgid "Sets the strength of the rim lighting effect."
msgstr "设置边缘照明效果的强度。"

#: doc/classes/SpatialMaterial.xml:309
#, fuzzy
msgid ""
"If [code]true[/code], rim effect is enabled. Rim lighting increases the "
"brightness at glancing angles on an object.\n"
"[b]Note:[/b] Rim lighting is not visible if the material has [member "
"flags_unshaded] set to [code]true[/code]."
msgstr ""
"如果[code]true[/code],则启用边缘效果。边框照明会增加物体上的斜角亮度。"

#: doc/classes/SpatialMaterial.xml:313
msgid ""
"Texture used to set the strength of the rim lighting effect per-pixel. "
"Multiplied by [member rim]."
msgstr "纹理用于设置每个像素的边缘光照效果的强度。乘以[member rim]。"

#: doc/classes/SpatialMaterial.xml:316
msgid ""
"The amount of to blend light and albedo color when rendering rim effect. If "
"[code]0[/code] the light color is used, while [code]1[/code] means albedo "
"color is used. An intermediate value generally works best."
msgstr ""
"渲染边缘效果时,混合光照色和反射色的数量。如果[code]0[/code]表示使用光色,"
"[code]1[/code]表示使用反照色。一般来说,中间值的效果最好。"

#: doc/classes/SpatialMaterial.xml:319
msgid ""
"Surface reflection. A value of [code]0[/code] represents a perfect mirror "
"while a value of [code]1[/code] completely blurs the reflection. See also "
"[member metallic]."
msgstr ""
"表面反射。[code]0 [/code] 值表示一面完美的镜像,而 [code]1[/code] 值则完全模"
"糊了反射。另请参阅[member metallic]。"

#: doc/classes/SpatialMaterial.xml:322
msgid ""
"Texture used to control the roughness per-pixel. Multiplied by [member "
"roughness]."
msgstr "用于控制每个像素粗糙度的纹理。乘以[member roughness]。"

#: doc/classes/SpatialMaterial.xml:328
msgid ""
"If [code]true[/code], subsurface scattering is enabled. Emulates light that "
"penetrates an object's surface, is scattered, and then emerges."
msgstr ""
"如果[code]true[/code],则启用次表面散射。模拟光线穿透物体表面,被散射,然后出"
"现。"

#: doc/classes/SpatialMaterial.xml:331
msgid "The strength of the subsurface scattering effect."
msgstr "地下散射效应的强度。"

#: doc/classes/SpatialMaterial.xml:334
msgid ""
"Texture used to control the subsurface scattering strength. Stored in the "
"red texture channel. Multiplied by [member subsurf_scatter_strength]."
msgstr ""
"用于控制次表面散射强度的纹理。存储在红色纹理通道中。乘以[member "
"subsurf_scatter_strength]。"

#: doc/classes/SpatialMaterial.xml:337
#, fuzzy
msgid ""
"The color used by the transmission effect. Represents the light passing "
"through an object."
msgstr "背光效果使用的颜色。表示穿过物体的光线。"

#: doc/classes/SpatialMaterial.xml:340
#, fuzzy
msgid "If [code]true[/code], the transmission effect is enabled."
msgstr "如果为[code]true[/code],则启用glow效果。"

#: doc/classes/SpatialMaterial.xml:343
#, fuzzy
msgid ""
"Texture used to control the transmission effect per-pixel. Added to [member "
"transmission]."
msgstr "用于控制每个像素的背光效果的纹理。添加到 [member backlight]。"

#: doc/classes/SpatialMaterial.xml:346
msgid ""
"How much to offset the [code]UV[/code] coordinates. This amount will be "
"added to [code]UV[/code] in the vertex function. This can be used to offset "
"a texture."
msgstr ""
"[code]UV[/code]坐标的偏移量。这个量将被添加到顶点函数中的 [code]UV[/code] "
"中。这可以用来偏移纹理。"

#: doc/classes/SpatialMaterial.xml:349
msgid ""
"How much to scale the [code]UV[/code] coordinates. This is multiplied by "
"[code]UV[/code] in the vertex function."
msgstr ""
"缩放 [code]UV[/code] 坐标的多少。这个值乘以顶点函数中的[code]UV[/code]。"

#: doc/classes/SpatialMaterial.xml:352
msgid ""
"If [code]true[/code], instead of using [code]UV[/code] textures will use a "
"triplanar texture lookup to determine how to apply textures. Triplanar uses "
"the orientation of the object's surface to blend between texture "
"coordinates. It reads from the source texture 3 times, once for each axis "
"and then blends between the results based on how closely the pixel aligns "
"with each axis. This is often used for natural features to get a realistic "
"blend of materials. Because triplanar texturing requires many more texture "
"reads per-pixel it is much slower than normal UV texturing. Additionally, "
"because it is blending the texture between the three axes, it is unsuitable "
"when you are trying to achieve crisp texturing."
msgstr ""
"如果[code]true[/code],纹理将不使用[code]UV[/code],而是使用三平面纹理查找来"
"确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理"
"中读取3次,每个轴一次,然后根据像素与每个轴的紧密程度在结果之间进行混合。这通"
"常用于自然特征,以获得真实的材料混合。由于三平面纹理处理每一个像素需要更多的"
"纹理读取,所以它比普通的UV纹理处理要慢得多。此外,由于它是在三个轴之间混合纹"
"理,所以当你试图实现清晰的纹理时,它是不合适的。"

#: doc/classes/SpatialMaterial.xml:355 doc/classes/SpatialMaterial.xml:367
msgid ""
"A lower number blends the texture more softly while a higher number blends "
"the texture more sharply."
msgstr "较低的数字能使纹理更加柔和,而较高的数字则能使纹理更加锐利。"

#: doc/classes/SpatialMaterial.xml:358
msgid ""
"How much to offset the [code]UV2[/code] coordinates. This amount will be "
"added to [code]UV2[/code] in the vertex function. This can be used to offset "
"a texture."
msgstr ""
"[code]UV2[/code]坐标的偏移量。这个量将被添加到顶点函数中的 [code]UV2[/code] "
"中。这可以用来偏移纹理。"

#: doc/classes/SpatialMaterial.xml:361
msgid ""
"How much to scale the [code]UV2[/code] coordinates. This is multiplied by "
"[code]UV2[/code] in the vertex function."
msgstr ""
"缩放 [code]UV[/code] 坐标的多少。这个值乘以顶点函数中的[code]UV[/code]。"

#: doc/classes/SpatialMaterial.xml:364
msgid ""
"If [code]true[/code], instead of using [code]UV2[/code] textures will use a "
"triplanar texture lookup to determine how to apply textures. Triplanar uses "
"the orientation of the object's surface to blend between texture "
"coordinates. It reads from the source texture 3 times, once for each axis "
"and then blends between the results based on how closely the pixel aligns "
"with each axis. This is often used for natural features to get a realistic "
"blend of materials. Because triplanar texturing requires many more texture "
"reads per-pixel it is much slower than normal UV texturing. Additionally, "
"because it is blending the texture between the three axes, it is unsuitable "
"when you are trying to achieve crisp texturing."
msgstr ""
"如果[code]true[/code],纹理将不使用[code]UV[/code],而是使用三平面纹理查找来"
"确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理"
"中读取3次,每个轴一次,然后根据像素与每个轴的紧密程度在结果之间进行混合。这通"
"常用于自然特征,以获得真实的材料混合。由于三平面纹理处理每一个像素需要更多的"
"纹理读取,所以它比普通的UV纹理处理要慢得多。此外,由于它是在三个轴之间混合纹"
"理,所以当你试图实现清晰的纹理时,它是不合适的。"

#: doc/classes/SpatialMaterial.xml:370
msgid ""
"If [code]true[/code], the model's vertex colors are processed as sRGB mode."
msgstr "如果[code]true[/code],则模型的顶点颜色将作为 sRGB 模式处理。"

#: doc/classes/SpatialMaterial.xml:373
msgid "If [code]true[/code], the vertex color is used as albedo color."
msgstr "如果[code]true[/code],则使用顶点颜色作为反射率颜色。"

#: doc/classes/SpatialMaterial.xml:378
msgid "Texture specifying per-pixel color."
msgstr "指定每个像素颜色的纹理。"

#: doc/classes/SpatialMaterial.xml:381
msgid "Texture specifying per-pixel metallic value."
msgstr "指定每个像素金属值的纹理。"

#: doc/classes/SpatialMaterial.xml:384
msgid "Texture specifying per-pixel roughness value."
msgstr "指定每个像素粗糙度值的纹理。"

#: doc/classes/SpatialMaterial.xml:387
msgid "Texture specifying per-pixel emission color."
msgstr "指定每个像素发射颜色的纹理。"

#: doc/classes/SpatialMaterial.xml:390
msgid "Texture specifying per-pixel normal vector."
msgstr "指定每像素法向量的纹理。"

#: doc/classes/SpatialMaterial.xml:393
msgid "Texture specifying per-pixel rim value."
msgstr "指定每个像素边缘值的纹理。"

#: doc/classes/SpatialMaterial.xml:396
msgid "Texture specifying per-pixel clearcoat value."
msgstr "指定每像素清漆值的纹理。"

#: doc/classes/SpatialMaterial.xml:399
msgid ""
"Texture specifying per-pixel flowmap direction for use with [member "
"anisotropy]."
msgstr "指定每个像素流图方向的纹理,用于[member anisotropy]。"

#: doc/classes/SpatialMaterial.xml:402
msgid "Texture specifying per-pixel ambient occlusion value."
msgstr "指定每个像素环境遮挡值的纹理。"

#: doc/classes/SpatialMaterial.xml:405
#, fuzzy
msgid "Texture specifying per-pixel depth."
msgstr "指定每个像素高度的纹理。"

#: doc/classes/SpatialMaterial.xml:408
msgid "Texture specifying per-pixel subsurface scattering."
msgstr "指定每个像素的亚表面散射的纹理。"

#: doc/classes/SpatialMaterial.xml:411
#, fuzzy
msgid "Texture specifying per-pixel transmission color."
msgstr "指定每个像素发射颜色的纹理。"

#: doc/classes/SpatialMaterial.xml:414
msgid "Texture specifying per-pixel refraction strength."
msgstr "指定每个像素折射强度的纹理。"

#: doc/classes/SpatialMaterial.xml:417
msgid "Texture specifying per-pixel detail mask blending value."
msgstr "指定每像素细节蒙版混合值的纹理。"

#: doc/classes/SpatialMaterial.xml:420
msgid "Texture specifying per-pixel detail color."
msgstr "指定每个像素细节颜色的纹理。"

#: doc/classes/SpatialMaterial.xml:423
msgid "Texture specifying per-pixel detail normal."
msgstr "指定每个像素细节法线的纹理。"

#: doc/classes/SpatialMaterial.xml:426
msgid "Represents the size of the [enum TextureParam] enum."
msgstr "表示[enum TextureParam]枚举的大小。"

#: doc/classes/SpatialMaterial.xml:429
msgid "Use [code]UV[/code] with the detail texture."
msgstr "使用[code]UV[/code]与细节纹理。"

#: doc/classes/SpatialMaterial.xml:432
msgid "Use [code]UV2[/code] with the detail texture."
msgstr "使用[code]UV2[/code]与细节纹理。"

#: doc/classes/SpatialMaterial.xml:435
#, fuzzy
msgid "Constant for setting [member flags_transparent]."
msgstr "用于设置[member ao_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:438
msgid "Constant for setting [member emission_enabled]."
msgstr "常量,用于设置[member emission_enabled]。"

#: doc/classes/SpatialMaterial.xml:441
msgid "Constant for setting [member normal_enabled]."
msgstr "用于设置[member normal_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:444
msgid "Constant for setting [member rim_enabled]."
msgstr "用于设置[member rim_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:447
msgid "Constant for setting [member clearcoat_enabled]."
msgstr "用于设置[member clearcoat_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:450
msgid "Constant for setting [member anisotropy_enabled]."
msgstr "用于设置[ember anisotropy_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:453
msgid "Constant for setting [member ao_enabled]."
msgstr "用于设置[member ao_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:456
#, fuzzy
msgid "Constant for setting [member depth_enabled]."
msgstr "常量,用于设置[member detail_enabled]。"

#: doc/classes/SpatialMaterial.xml:459
msgid "Constant for setting [member subsurf_scatter_enabled]."
msgstr "用于设置[member subsurf_scatter_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:462
#, fuzzy
msgid "Constant for setting [member transmission_enabled]."
msgstr "常量,用于设置[member emission_enabled]。"

#: doc/classes/SpatialMaterial.xml:465
msgid "Constant for setting [member refraction_enabled]."
msgstr "用于设置[member refraction_enabled]的常量。"

#: doc/classes/SpatialMaterial.xml:468
msgid "Constant for setting [member detail_enabled]."
msgstr "常量,用于设置[member detail_enabled]。"

#: doc/classes/SpatialMaterial.xml:474
msgid ""
"Default blend mode. The color of the object is blended over the background "
"based on the object's alpha value."
msgstr "默认的混合模式。根据对象的alpha值,在背景上混合对象的颜色。"

#: doc/classes/SpatialMaterial.xml:477
msgid "The color of the object is added to the background."
msgstr "对象的颜色被添加到背景中。"

#: doc/classes/SpatialMaterial.xml:480
msgid "The color of the object is subtracted from the background."
msgstr "从背景中减去对象的颜色。"

#: doc/classes/SpatialMaterial.xml:483
msgid "The color of the object is multiplied by the background."
msgstr "对象的颜色与背景相乘。"

#: doc/classes/SpatialMaterial.xml:486
msgid "Default depth draw mode. Depth is drawn only for opaque objects."
msgstr "默认的深度绘制模式。深度只针对不透明的对象绘制。"

#: doc/classes/SpatialMaterial.xml:489
msgid "Depth draw is calculated for both opaque and transparent objects."
msgstr "不透明和透明的对象都要计算深度绘制。"

#: doc/classes/SpatialMaterial.xml:492
msgid "No depth draw."
msgstr "没有深度的绘制。"

#: doc/classes/SpatialMaterial.xml:495
msgid ""
"For transparent objects, an opaque pass is made first with the opaque parts, "
"then transparency is drawn."
msgstr ""

#: doc/classes/SpatialMaterial.xml:498
msgid "Default cull mode. The back of the object is culled when not visible."
msgstr "默认的裁剪模式。当不可见时,对象的背面会被剔除。"

#: doc/classes/SpatialMaterial.xml:501
msgid "The front of the object is culled when not visible."
msgstr "物体的正面不可见时,就会被剔除。"

#: doc/classes/SpatialMaterial.xml:504
msgid "No culling is performed."
msgstr "不进行剔除。"

#: doc/classes/SpatialMaterial.xml:507
msgid ""
"No lighting is used on the object. Color comes directly from [code]ALBEDO[/"
"code]."
msgstr ""

#: doc/classes/SpatialMaterial.xml:510
msgid ""
"Lighting is calculated per-vertex rather than per-pixel. This can be used to "
"increase the speed of the shader at the cost of quality."
msgstr ""

#: doc/classes/SpatialMaterial.xml:513
msgid ""
"Disables the depth test, so this object is drawn on top of all others. "
"However, objects drawn after it in the draw order may cover it."
msgstr ""
"禁用深度测试,所以这个对象被画在所有其他对象的上面。但是,在绘制顺序中,在它"
"之后绘制的对象可能会覆盖它。"

#: doc/classes/SpatialMaterial.xml:516
msgid "Set [code]ALBEDO[/code] to the per-vertex color specified in the mesh."
msgstr "将 [code]ALBEDO[/code] 设置为网格中指定的每顶点颜色。"

#: doc/classes/SpatialMaterial.xml:519
#, fuzzy
msgid ""
"Vertex color is in sRGB space and needs to be converted to linear. Only "
"applies in the GLES3 renderer."
msgstr "顶点颜色在sRGB空间,需要转换为线性颜色。仅适用于Vulkan渲染器。"

#: doc/classes/SpatialMaterial.xml:522
msgid ""
"Uses point size to alter the size of primitive points. Also changes the "
"albedo texture lookup to use [code]POINT_COORD[/code] instead of [code]UV[/"
"code]."
msgstr ""
"使用点大小来改变原始点的大小。同时改变反射率纹理查找,使用 "
"[code]POINT_COORD[/code] 而不是 [code]UV[/code]。"

#: doc/classes/SpatialMaterial.xml:525
msgid ""
"Object is scaled by depth so that it always appears the same size on screen."
msgstr "按深度缩放对象,使其在屏幕上显示的大小始终相同。"

#: doc/classes/SpatialMaterial.xml:528
#, fuzzy
msgid ""
"Shader will keep the scale set for the mesh. Otherwise the scale is lost "
"when billboarding. Only applies when [member params_billboard_mode] is "
"[constant BILLBOARD_ENABLED]."
msgstr ""
"Shader会保持网格的比例设置。否则,在做广告牌时,比例尺会丢失。只有当[member "
"billboard_mode]为[constant BILLBOARD_ENABLED]时,才适用。"

#: doc/classes/SpatialMaterial.xml:531
msgid ""
"Use triplanar texture lookup for all texture lookups that would normally use "
"[code]UV[/code]."
msgstr "对所有通常会使用[code]UV[/code]的纹理查找使用三平面纹理查找。"

#: doc/classes/SpatialMaterial.xml:534
msgid ""
"Use triplanar texture lookup for all texture lookups that would normally use "
"[code]UV2[/code]."
msgstr "对所有通常会使用[code]UV2[/code]的纹理查找使用三平面纹理查找。"

#: doc/classes/SpatialMaterial.xml:537
msgid ""
"Use [code]UV2[/code] coordinates to look up from the [member ao_texture]."
msgstr "使用[code]UV2[/code]坐标从[member ao_texture]中查找。"

#: doc/classes/SpatialMaterial.xml:540
msgid ""
"Use [code]UV2[/code] coordinates to look up from the [member "
"emission_texture]."
msgstr "使用[code]UV2[/code]坐标,从[member emission_texture]中查找。"

#: doc/classes/SpatialMaterial.xml:543
msgid "Use alpha scissor. Set by [member params_use_alpha_scissor]."
msgstr ""

#: doc/classes/SpatialMaterial.xml:546
msgid ""
"Use world coordinates in the triplanar texture lookup instead of local "
"coordinates."
msgstr ""

#: doc/classes/SpatialMaterial.xml:549
msgid "Forces the shader to convert albedo from sRGB space to linear space."
msgstr "强制着色器将反射率从sRGB空间转换为线性空间。"

#: doc/classes/SpatialMaterial.xml:552
msgid "Disables receiving shadows from other objects."
msgstr "禁用从其他对象接收阴影。"

#: doc/classes/SpatialMaterial.xml:555
msgid "Disables receiving ambient light."
msgstr "禁用接收环境光。"

#: doc/classes/SpatialMaterial.xml:558
msgid "Ensures that normals appear correct, even with non-uniform scaling."
msgstr ""

#: doc/classes/SpatialMaterial.xml:561
msgid "Enables the shadow to opacity feature."
msgstr "启用阴影到不透明度功能。"

#: doc/classes/SpatialMaterial.xml:567
msgid "Default diffuse scattering algorithm."
msgstr "默认的漫反射散射算法。"

#: doc/classes/SpatialMaterial.xml:570
msgid "Diffuse scattering ignores roughness."
msgstr "漫散射忽略了粗糙度。"

#: doc/classes/SpatialMaterial.xml:573
msgid "Extends Lambert to cover more than 90 degrees when roughness increases."
msgstr "当粗糙度增加时,将Lambert延伸到90度以上。"

#: doc/classes/SpatialMaterial.xml:576
msgid "Attempts to use roughness to emulate microsurfacing."
msgstr "尝试使用粗糙度来模拟微表面处理。"

#: doc/classes/SpatialMaterial.xml:579
msgid "Uses a hard cut for lighting, with smoothing affected by roughness."
msgstr "使用硬切口进行照明,平滑度受粗糙度影响。"

#: doc/classes/SpatialMaterial.xml:582
msgid "Default specular blob."
msgstr "默认镜面反射Blob。"

#: doc/classes/SpatialMaterial.xml:585 doc/classes/SpatialMaterial.xml:588
msgid "Older specular algorithm, included for compatibility."
msgstr "旧的镜面算法,为了兼容而加入。"

#: doc/classes/SpatialMaterial.xml:591
msgid "Toon blob which changes size based on roughness."
msgstr "基于粗糙度更改大小的 Toon 斑点。"

#: doc/classes/SpatialMaterial.xml:594
msgid "No specular blob."
msgstr "无镜面斑点。"

#: doc/classes/SpatialMaterial.xml:597
msgid "Billboard mode is disabled."
msgstr "广告牌模式被禁用。"

#: doc/classes/SpatialMaterial.xml:600
msgid "The object's Z axis will always face the camera."
msgstr "对象的Z轴将始终面向摄像机。"

#: doc/classes/SpatialMaterial.xml:603
msgid "The object's X axis will always face the camera."
msgstr "对象的X轴将始终面向摄像机。"

#: doc/classes/SpatialMaterial.xml:606
#, fuzzy
msgid ""
"Used for particle systems when assigned to [Particles] and [CPUParticles] "
"nodes. Enables [code]particles_anim_*[/code] properties.\n"
"The [member ParticlesMaterial.anim_speed] or [member CPUParticles."
"anim_speed] should also be set to a positive value for the animation to play."
msgstr ""
"分配给 [GPUParticles3D] 和 [CPUParticles3D] 节点时,用于粒子系统。启用"
"[code]particles_anim_*[/code]属性。\n"
"[member ParticlesMaterial.anim_speed]或[member CPUParticles3D.anim_speed]也应"
"设置为正值才能播放动画。"

#: doc/classes/SpatialMaterial.xml:610
msgid "Used to read from the red channel of a texture."
msgstr "用来读取纹理的红色通道。"

#: doc/classes/SpatialMaterial.xml:613
msgid "Used to read from the green channel of a texture."
msgstr "用来读取纹理的绿色通道。"

#: doc/classes/SpatialMaterial.xml:616
msgid "Used to read from the blue channel of a texture."
msgstr "用来读取纹理的蓝色通道。"

#: doc/classes/SpatialMaterial.xml:619
msgid "Used to read from the alpha channel of a texture."
msgstr "用来读取纹理的alpha通道。"

#: doc/classes/SpatialMaterial.xml:625
msgid "Adds the emission color to the color from the emission texture."
msgstr "将发射颜色添加到发射纹理的颜色上。"

#: doc/classes/SpatialMaterial.xml:628
msgid "Multiplies the emission color by the color from the emission texture."
msgstr "将发射颜色乘以发射纹理的颜色。"

#: doc/classes/SpatialMaterial.xml:631
msgid "Do not use distance fade."
msgstr "不要使用距离淡化。"

#: doc/classes/SpatialMaterial.xml:634
msgid ""
"Smoothly fades the object out based on each pixel's distance from the camera "
"using the alpha channel."
msgstr "根据每个像素与摄像机的距离,使用alpha通道平滑地淡化对象。"

#: doc/classes/SpatialMaterial.xml:637
msgid ""
"Smoothly fades the object out based on each pixel's distance from the camera "
"using a dither approach. Dithering discards pixels based on a set pattern to "
"smoothly fade without enabling transparency. On certain hardware this can be "
"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
msgstr ""
"根据每个像素与相机的距离,使用抖动方法平滑地淡化对象。抖动会根据设定的模式丢"
"弃像素,在不启用透明的情况下平滑淡化。在某些硬件上,这比 [constant "
"DISTANCE_FADE_PIXEL_ALPHA] 更快。"

#: doc/classes/SpatialMaterial.xml:640
msgid ""
"Smoothly fades the object out based on the object's distance from the camera "
"using a dither approach. Dithering discards pixels based on a set pattern to "
"smoothly fade without enabling transparency. On certain hardware this can be "
"faster than [constant DISTANCE_FADE_PIXEL_ALPHA]."
msgstr ""
"根据对象与摄像机的距离,使用抖动的方法平滑地淡化对象。抖动根据设定的模式丢弃"
"像素,在不启用透明度的情况下平滑淡化。在某些硬件上,这可能比[constant "
"DISTANCE_FADE_PIXEL_ALPHA]更快。"

#: doc/classes/SphereMesh.xml:4 doc/classes/SphereMesh.xml:7
msgid "Class representing a spherical [PrimitiveMesh]."
msgstr "表示球形 [PrimitiveMesh] 的类。"

#: doc/classes/SphereMesh.xml:15
msgid "Full height of the sphere."
msgstr "球体的全高。"

#: doc/classes/SphereMesh.xml:18
msgid ""
"If [code]true[/code], a hemisphere is created rather than a full sphere.\n"
"[b]Note:[/b] To get a regular hemisphere, the height and radius of the "
"sphere must be equal."
msgstr ""
"如果 [code]true[/code],则创建一个半球而不是一个完整的球体。\n"
"[b]注:[/b]要得到一个规则的半球,球体的高度和半径必须相等。"

#: doc/classes/SphereMesh.xml:22
msgid "Number of radial segments on the sphere."
msgstr "球体上的径向段数。"

#: doc/classes/SphereMesh.xml:25
msgid "Radius of sphere."
msgstr "球体半径."

#: doc/classes/SphereMesh.xml:28
msgid "Number of segments along the height of the sphere."
msgstr "沿着球体高度的段数。"

#: doc/classes/SphereShape.xml:4
msgid "Sphere shape for 3D collisions."
msgstr "用于 3D 碰撞的球形。"

#: doc/classes/SphereShape.xml:7
#, fuzzy
msgid ""
"Sphere shape for 3D collisions, which can be set into a [PhysicsBody] or "
"[Area]. This shape is useful for modeling sphere-like 3D objects."
msgstr ""
"用于3D碰撞的球体形状,可以设置成[PhysicsBody3D]或[Area3D]。这种形状对于建模类"
"似球体的三维物体很有用。"

#: doc/classes/SphereShape.xml:16
msgid "The sphere's radius. The shape's diameter is double the radius."
msgstr "球体的半径。形状的直径是半径的两倍。"

#: doc/classes/SpinBox.xml:4
msgid "Numerical input text field."
msgstr "数值输入文本字段。"

#: doc/classes/SpinBox.xml:7
#, fuzzy
msgid ""
"SpinBox is a numerical input text field. It allows entering integers and "
"floats.\n"
"[b]Example:[/b]\n"
"[codeblock]\n"
"var spin_box = SpinBox.new()\n"
"add_child(spin_box)\n"
"var line_edit = spin_box.get_line_edit()\n"
"line_edit.context_menu_enabled = false\n"
"spin_box.align = LineEdit.ALIGN_RIGHT\n"
"[/codeblock]\n"
"The above code will create a [SpinBox], disable context menu on it and set "
"the text alignment to right.\n"
"See [Range] class for more options over the [SpinBox].\n"
"[b]Note:[/b] [SpinBox] relies on an underlying [LineEdit] node. To theme a "
"[SpinBox]'s background, add theme items for [LineEdit] and customize them."
msgstr ""
"SpinBox是一个数字输入文本字段。它允许输入整数和浮点数。\n"
"[b]例如:[/b]\n"
"[codeblock]\n"
"var spin_box = SpinBox.new()\n"
"add_child(spin_box)\n"
"var line_edit = spin_box.get_line_edit()\n"
"line_edit.context_menu_enabled = false\n"
"spin_box.align = LineEdit.ALIGN_RIGHT\n"
"[/codeblock]\n"
"上面的代码将创建一个[SpinBox],禁用其上的上下文菜单,并将文本对齐方式设置为右"
"对齐。\n"
"关于[SpinBox]的更多选项,请参见[Range]类。"

#: doc/classes/SpinBox.xml:26
msgid "Applies the current value of this [SpinBox]."
msgstr "应用此 [SpinBox] 的当前值。"

#: doc/classes/SpinBox.xml:32
msgid ""
"Returns the [LineEdit] instance from this [SpinBox]. You can use it to "
"access properties and methods of [LineEdit]."
msgstr ""
"从此 [SpinBox] 返回 [LineEdit] 实例。您可以使用它来访问 [LineEdit] 的属性和方"
"法。"

#: doc/classes/SpinBox.xml:38
msgid "Sets the text alignment of the [SpinBox]."
msgstr "设置 [SpinBox] 的文本对齐方式。"

#: doc/classes/SpinBox.xml:41
msgid ""
"If [code]true[/code], the [SpinBox] will be editable. Otherwise, it will be "
"read only."
msgstr ""
"如果 [code]true[/code],则 [SpinBox] 将是可编辑的。否则,它将是只读的。"

#: doc/classes/SpinBox.xml:44
msgid ""
"Adds the specified [code]prefix[/code] string before the numerical value of "
"the [SpinBox]."
msgstr "在 [SpinBox] 的数值前添加指定的 [code]prefix[/code] 字符串。"

#: doc/classes/SpinBox.xml:47
msgid ""
"Adds the specified [code]suffix[/code] string after the numerical value of "
"the [SpinBox]."
msgstr "在 [SpinBox] 的数值后添加指定的 [code] suffix [/code] 字符串。"

#: doc/classes/SpinBox.xml:54
#, fuzzy
msgid "Sets a custom [Texture] for up and down arrows of the [SpinBox]."
msgstr "为 [SpinBox] 的上下箭头设置自定义 [Texture2D]。"

#: doc/classes/SplitContainer.xml:4
msgid "Container for splitting and adjusting."
msgstr "用于拆分和调整的容器。"

#: doc/classes/SplitContainer.xml:7
msgid ""
"Container for splitting two [Control]s vertically or horizontally, with a "
"grabber that allows adjusting the split offset or ratio."
msgstr ""
"用于垂直或水平拆分两个 [Control] 的容器,带有允许调整拆分偏移或比率的抓取器。"

#: doc/classes/SplitContainer.xml:15
msgid ""
"Clamps the [member split_offset] value to not go outside the currently "
"possible minimal and maximum values."
msgstr "限制 [member split_offset] 值不超出当前可能的最小值和最大值。"

#: doc/classes/SplitContainer.xml:21
msgid ""
"If [code]true[/code], the area of the first [Control] will be collapsed and "
"the dragger will be disabled."
msgstr ""
"如果 [code]true[/code],第一个 [Control] 的区域将被折叠并且拖动器将被禁用。"

#: doc/classes/SplitContainer.xml:24
msgid ""
"Determines the dragger's visibility. See [enum DraggerVisibility] for "
"details."
msgstr "确定拖动器的可见性。有关详细信息,请参阅 [enum DraggerVisibility]。"

#: doc/classes/SplitContainer.xml:27
msgid ""
"The initial offset of the splitting between the two [Control]s, with "
"[code]0[/code] being at the end of the first [Control]."
msgstr ""
"两个 [Control] 之间拆分的初始偏移量,[code]0[/code] 位于第一个 [Control] 的末"
"尾。"

#: doc/classes/SplitContainer.xml:34
msgid "Emitted when the dragger is dragged by user."
msgstr "当用户拖动拖动器时发出。"

#: doc/classes/SplitContainer.xml:40
msgid "The split dragger is visible when the cursor hovers it."
msgstr "当光标悬停时,拆分拖动器是可见的。"

#: doc/classes/SplitContainer.xml:43
msgid "The split dragger is never visible."
msgstr "拆分拖动器永远不可见。"

#: doc/classes/SplitContainer.xml:46
msgid "The split dragger is never visible and its space collapsed."
msgstr "拆分拖动器永远不可见,其空间也被折叠。"

#: doc/classes/SpotLight.xml:4
msgid "A spotlight, such as a reflector spotlight or a lantern."
msgstr "聚光灯,如反射器聚光灯或灯笼。"

#: doc/classes/SpotLight.xml:7
msgid ""
"A Spotlight is a type of [Light] node that emits lights in a specific "
"direction, in the shape of a cone. The light is attenuated through the "
"distance. This attenuation can be configured by changing the energy, radius "
"and attenuation parameters of [Light].\n"
"[b]Note:[/b] By default, only 32 SpotLights may affect a single mesh "
"[i]resource[/i] at once. Consider splitting your level into several meshes "
"to decrease the likelihood that more than 32 lights will affect the same "
"mesh resource. Splitting the level mesh will also improve frustum culling "
"effectiveness, leading to greater performance. If you need to use more "
"lights per mesh, you can increase [member ProjectSettings.rendering/limits/"
"rendering/max_lights_per_object] at the cost of shader compilation times."
msgstr ""

#: doc/classes/SpotLight.xml:18
msgid "The spotlight's angle in degrees."
msgstr "聚光灯的角度,单位是度。"

#: doc/classes/SpotLight.xml:21
msgid "The spotlight's angular attenuation curve."
msgstr "聚光灯的角度衰减曲线。"

#: doc/classes/SpotLight.xml:24
msgid "The spotlight's light energy attenuation curve."
msgstr "聚光灯的光量衰减曲线。"

#: doc/classes/SpotLight.xml:27
msgid ""
"The maximal range that can be reached by the spotlight. Note that the "
"effectively lit area may appear to be smaller depending on the [member "
"spot_attenuation] in use. No matter the [member spot_attenuation] in use, "
"the light will never reach anything outside this range."
msgstr ""
"聚光灯可以达到的最大范围。请注意,根据使用的 [member spot_attenuation],有效"
"照明区域可能看起来更小。无论使用[member spot_attenuation],光都不会到达此范围"
"之外的任何东西。"

#: doc/classes/SpringArm.xml:4
msgid "A helper node, mostly used in 3rd person cameras."
msgstr "辅助节点,主要用于第三人称相机。"

#: doc/classes/SpringArm.xml:7
#, fuzzy
msgid ""
"The SpringArm node is a node that casts a ray (or collision shape) along its "
"z axis and moves all its direct children to the collision point, minus a "
"margin.\n"
"The most common use case for this is to make a 3rd person camera that reacts "
"to collisions in the environment.\n"
"The SpringArm will either cast a ray, or if a shape is given, it will cast "
"the shape in the direction of its z axis.\n"
"If you use the SpringArm as a camera controller for your player, you might "
"need to exclude the player's collider from the SpringArm's collision check."
msgstr ""
"SpringArm3D 节点会沿其 z 轴投射一条射线(或碰撞形状)并将其所有直接子节点移动"
"到碰撞点,减去一个边距。\n"
"最常见的用例是制作一个对环境中的碰撞做出反应的第三人称相机。\n"
"SpringArm3D 将投射一条射线,或者如果给定了一个形状,它将沿其 z 轴的方向投射该"
"形状。\n"
"如果您使用 SpringArm3D 作为播放器的相机控制器,您可能需要从 SpringArm3D 的碰"
"撞检查中排除播放器的碰撞器。"

#: doc/classes/SpringArm.xml:19
#, fuzzy
msgid ""
"Adds the [PhysicsBody] object with the given [RID] to the list of "
"[PhysicsBody] objects excluded from the collision check."
msgstr ""
"将具有给定[RID]的[PhysicsBody3D]对象添加到排除在碰撞检查之外的[PhysicsBody3D]"
"对象列表中。"

#: doc/classes/SpringArm.xml:25
#, fuzzy
msgid ""
"Clears the list of [PhysicsBody] objects excluded from the collision check."
msgstr "清除从碰撞检查中排除的 [PhysicsBody3D] 对象列表。"

#: doc/classes/SpringArm.xml:31
msgid "Returns the spring arm's current length."
msgstr "返回弹簧臂的当前长度。"

#: doc/classes/SpringArm.xml:38
#, fuzzy
msgid ""
"Removes the given [RID] from the list of [PhysicsBody] objects excluded from "
"the collision check."
msgstr "从碰撞检查排除的 [PhysicsBody3D] 对象列表中删除给定的 [RID]。"

#: doc/classes/SpringArm.xml:44
msgid ""
"The layers against which the collision check shall be done. See [url=https://"
"docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction."
"html#collision-layers-and-masks]Collision layers and masks[/url] in the "
"documentation for more information."
msgstr ""

#: doc/classes/SpringArm.xml:47
#, fuzzy
msgid ""
"When the collision check is made, a candidate length for the SpringArm is "
"given.\n"
"The margin is then subtracted to this length and the translation is applied "
"to the child objects of the SpringArm.\n"
"This margin is useful for when the SpringArm has a [Camera] as a child node: "
"without the margin, the [Camera] would be placed on the exact point of "
"collision, while with the margin the [Camera] would be placed close to the "
"point of collision."
msgstr ""
"进行碰撞检查时,会给出 SpringArm3D 的候选长度。\n"
"然后将边距减去此长度,并将平移应用于 SpringArm3D 的子对象。\n"
"当 SpringArm3D 将 [Camera3D] 作为子节点时,此边距很有用:没有边距,"
"[Camera3D] 将放置在碰撞的确切点上,而有边距时,[Camera3D] 将放置在靠近碰撞"
"点。"

#: doc/classes/SpringArm.xml:52
#, fuzzy
msgid ""
"The [Shape] to use for the SpringArm.\n"
"When the shape is set, the SpringArm will cast the [Shape] on its z axis "
"instead of performing a ray cast."
msgstr ""
"用于SpringArm3D的[Shape3D]。\n"
"当形状被设置时,SpringArm3D将在其Z轴上投射[Shape3D],而不是执行射线投射。"

#: doc/classes/SpringArm.xml:56
#, fuzzy
msgid ""
"The maximum extent of the SpringArm. This is used as a length for both the "
"ray and the shape cast used internally to calculate the desired position of "
"the SpringArm's child nodes.\n"
"To know more about how to perform a shape cast or a ray cast, please consult "
"the [PhysicsDirectSpaceState] documentation."
msgstr ""
"SpringArm3D 的最大范围。这用作内部使用的射线和形状投射的长度,以计算 "
"SpringArm3D 子节点的所需位置。\n"
"要了解有关如何执行形状投射或光线投射的更多信息,请参阅 "
"[PhysicsDirectSpaceState3D] 文档。"

#: doc/classes/Sprite.xml:4
msgid "General-purpose sprite node."
msgstr "通用精灵图节点。"

#: doc/classes/Sprite.xml:7
msgid ""
"A node that displays a 2D texture. The texture displayed can be a region "
"from a larger atlas texture, or a frame from a sprite sheet animation."
msgstr ""
"显示 2D 纹理的节点。显示的纹理可以是来自较大图集纹理的区域,也可以是来自精灵"
"表动画的帧。"

#: doc/classes/Sprite.xml:16
#, fuzzy
msgid ""
"Returns a [Rect2] representing the Sprite's boundary in local coordinates. "
"Can be used to detect if the Sprite was clicked. Example:\n"
"[codeblock]\n"
"func _input(event):\n"
"    if event is InputEventMouseButton and event.pressed and event."
"button_index == BUTTON_LEFT:\n"
"        if get_rect().has_point(to_local(event.position)):\n"
"            print(\"A click!\")\n"
"[/codeblock]"
msgstr ""
"返回一个 [Rect2],在局部坐标中表示 Sprite2D 的边界。可用于检测 Sprite2D 是否"
"被点击。例子:\n"
"[codeblock]\n"
"func _input(event):\n"
"    if event is InputEventMouseButton and event.pressed and event."
"button_index == BUTTON_LEFT:\n"
"        if get_rect().has_point(to_local(event.position)):\n"
"            print(\"点击!\")\n"
"[/codeblock]"

#: doc/classes/Sprite.xml:29
msgid ""
"Returns [code]true[/code], if the pixel at the given position is opaque and "
"[code]false[/code] in other case.\n"
"[b]Note:[/b] It also returns [code]false[/code], if the sprite's texture is "
"[code]null[/code] or if the given position is invalid."
msgstr ""
"如果给定位置的像素不透明,则返回 [code]true[/code],其他情况下返回 "
"[code]false[/code]。\n"
"[b]注意:[/b]如果精灵的纹理为[code]null[/code]或者给定的位置无效,它也会返回"
"[code]false[/code]。"

#: doc/classes/Sprite.xml:36
msgid "If [code]true[/code], texture is centered."
msgstr "如果 [code]true[/code],纹理居中。"

#: doc/classes/Sprite.xml:45 doc/classes/Sprite3D.xml:15
#, fuzzy
msgid ""
"Current frame to display from sprite sheet. [member hframes] or [member "
"vframes] must be greater than 1."
msgstr ""
"从精灵表显示的当前帧。 [member vframes] 或 [member hframes] 必须大于 1。"

#: doc/classes/Sprite.xml:48 doc/classes/Sprite3D.xml:18
#, fuzzy
msgid ""
"Coordinates of the frame to display from sprite sheet. This is as an alias "
"for the [member frame] property. [member hframes] or [member vframes] must "
"be greater than 1."
msgstr ""
"从精灵表显示的帧坐标。这是 [member frame] 属性的别名。 [member vframes] 或 "
"[member hframes] 必须大于 1。"

#: doc/classes/Sprite.xml:51 doc/classes/Sprite3D.xml:21
msgid "The number of columns in the sprite sheet."
msgstr "精灵表中的列数。"

#: doc/classes/Sprite.xml:54
#, fuzzy
msgid ""
"The normal map gives depth to the Sprite.\n"
"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
"See [url=http://wiki.polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
"a comparison of normal map coordinates expected by popular engines."
msgstr ""
"为 Sprite2D 提供深度的法线贴图。\n"
"[b]注:[/b] Godot 期望法线贴图使用 X+、Y- 和 Z+ 坐标。参见[url=http://wiki."
"polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]这"
"个页面[/url] 比较流行引擎所期望的法线地图坐标。"

#: doc/classes/Sprite.xml:61
msgid ""
"If [code]true[/code], texture is cut from a larger atlas texture. See "
"[member region_rect]."
msgstr ""
"如果 [code]true[/code],则从较大的图集纹理中剪切纹理。参见 [member "
"region_rect]。"

#: doc/classes/Sprite.xml:64
msgid "If [code]true[/code], the outermost pixels get blurred out."
msgstr "如果 [code]true[/code],最外面的像素会变得模糊。"

#: doc/classes/Sprite.xml:67 doc/classes/Sprite3D.xml:27
msgid ""
"The region of the atlas texture to display. [member region_enabled] must be "
"[code]true[/code]."
msgstr ""
"要显示的图集纹理区域。 [member region_enabled] 必须是 [code]true[/code]。"

#: doc/classes/Sprite.xml:70
#, fuzzy
msgid "[Texture] object to draw."
msgstr "[Texture2D] 要绘制的对象。"

#: doc/classes/Sprite.xml:73 doc/classes/Sprite3D.xml:33
msgid "The number of rows in the sprite sheet."
msgstr "精灵表中的行数。"

#: doc/classes/Sprite.xml:79 doc/classes/Sprite3D.xml:39
msgid "Emitted when the [member frame] changes."
msgstr "当 [member frame] 更改时发出。"

#: doc/classes/Sprite.xml:84
msgid "Emitted when the [member texture] changes."
msgstr "[member texture] 更改时发出。"

#: doc/classes/Sprite3D.xml:4
msgid "2D sprite node in a 3D world."
msgstr "3D 世界中的 2D 精灵节点。"

#: doc/classes/Sprite3D.xml:7
#, fuzzy
msgid ""
"A node that displays a 2D texture in a 3D environment. The texture displayed "
"can be a region from a larger atlas texture, or a frame from a sprite sheet "
"animation."
msgstr ""
"显示 2D 纹理的节点。显示的纹理可以是来自较大图集纹理的区域,也可以是来自精灵"
"表动画的帧。"

#: doc/classes/Sprite3D.xml:24
msgid ""
"If [code]true[/code], texture will be cut from a larger atlas texture. See "
"[member region_rect]."
msgstr ""
"如果 [code]true[/code],纹理将从较大的图集纹理中剪切。参见 [member "
"region_rect]。"

#: doc/classes/Sprite3D.xml:30
msgid ""
"[Texture] object to draw. If [member GeometryInstance.material_override] is "
"used, this will be overridden."
msgstr ""

#: doc/classes/SpriteBase3D.xml:4
msgid "2D sprite node in 3D environment."
msgstr "3D 环境中的 2D 精灵节点。"

#: doc/classes/SpriteBase3D.xml:7
msgid "A node that displays 2D texture information in a 3D environment."
msgstr "在 3D 环境中显示 2D 纹理信息的节点。"

#: doc/classes/SpriteBase3D.xml:27
msgid "Returns the rectangle representing this sprite."
msgstr "返回表示此精灵的矩形。"

#: doc/classes/SpriteBase3D.xml:35
msgid "If [code]true[/code], the specified flag will be enabled."
msgstr "如果[code]true[/code],指定的标志将被启用。"

#: doc/classes/SpriteBase3D.xml:43
msgid "The direction in which the front of the texture faces."
msgstr "纹理正面朝向的方向。"

#: doc/classes/SpriteBase3D.xml:51
msgid ""
"If [code]true[/code], texture can be seen from the back as well, if "
"[code]false[/code], it is invisible when looking at it from behind."
msgstr ""
"如果[code]true[/code],从后面也可以看到纹理,如果[code]false[/code],从后面看"
"它是不可见的。"

#: doc/classes/SpriteBase3D.xml:60
msgid ""
"A color value that gets multiplied on, could be used for mood-coloring or to "
"simulate the color of light."
msgstr "乘以颜色值,用于色调调制和模拟光的颜色。"

#: doc/classes/SpriteBase3D.xml:66
#, fuzzy
msgid ""
"The objects' visibility on a scale from [code]0[/code] fully invisible to "
"[code]1[/code] fully visible."
msgstr "物体的能见度,从[code]0[/code]完全不可见到[code]1[/code]完全可见。"

#: doc/classes/SpriteBase3D.xml:69
msgid "The size of one pixel's width on the sprite to scale it in 3D."
msgstr "精灵上一个像素宽度的大小,以 3D 缩放。"

#: doc/classes/SpriteBase3D.xml:72
#, fuzzy
msgid ""
"If [code]true[/code], the [Light] in the [Environment] has effects on the "
"sprite."
msgstr "如果[code]true[/code],则[Environment]中的[Light3D]对精灵有影响。"

#: doc/classes/SpriteBase3D.xml:75
msgid ""
"If [code]true[/code], the texture's transparency and the opacity are used to "
"make those parts of the sprite invisible."
msgstr ""
"如果 [code]true[/code],纹理的透明度和不透明度用于使精灵的这些部分不可见。"

#: doc/classes/SpriteBase3D.xml:80
msgid ""
"If set, the texture's transparency and the opacity are used to make those "
"parts of the sprite invisible."
msgstr "如果设置,纹理的透明度和不透明性用于使精灵的这些部分不可见。"

#: doc/classes/SpriteBase3D.xml:83
msgid "If set, lights in the environment affect the sprite."
msgstr "如果设置,环境中的灯光会影响精灵。"

#: doc/classes/SpriteBase3D.xml:86
msgid ""
"If set, texture can be seen from the back as well, if not, it is invisible "
"when looking at it from behind."
msgstr "如果设置,从后面也可以看到纹理,如果没有,从后面看它是不可见的。"

#: doc/classes/SpriteBase3D.xml:89
msgid "Represents the size of the [enum DrawFlags] enum."
msgstr "代表[enum DrawFlags]枚举的大小。"

#: doc/classes/SpriteFrames.xml:4
#, fuzzy
msgid "Sprite frame library for AnimatedSprite."
msgstr "AnimatedSprite2D 的精灵帧库。"

#: doc/classes/SpriteFrames.xml:7
msgid ""
"Sprite frame library for [AnimatedSprite]. Contains frames and animation "
"data for playback.\n"
"[b]Note:[/b] You can associate a set of normal maps by creating additional "
"[SpriteFrames] resources with a [code]_normal[/code] suffix. For example, "
"having 2 [SpriteFrames] resources [code]run[/code] and [code]run_normal[/"
"code] will make it so the [code]run[/code] animation uses the normal map."
msgstr ""

#: doc/classes/SpriteFrames.xml:17
msgid "Adds a new animation to the library."
msgstr "向库添加新动画。"

#: doc/classes/SpriteFrames.xml:26
msgid "Adds a frame to the given animation."
msgstr "为给定的动画添加一帧。"

#: doc/classes/SpriteFrames.xml:33
msgid "Removes all frames from the given animation."
msgstr "删除给定动画中的所有帧。"

#: doc/classes/SpriteFrames.xml:39
msgid "Removes all animations. A \"default\" animation will be created."
msgstr "删除所有动画。将创建一个“默认”动画。"

#: doc/classes/SpriteFrames.xml:46
#, fuzzy
msgid ""
"Returns [code]true[/code] if the given animation is configured to loop when "
"it finishes playing. Otherwise, returns [code]false[/code]."
msgstr ""
"如果addon准备好响应函数调用,返回[code]true[/code],否则返回[code]false[/"
"code]。"

#: doc/classes/SpriteFrames.xml:52
msgid ""
"Returns an array containing the names associated to each animation. Values "
"are placed in alphabetical order."
msgstr "返回一个包含每个动画的名称的数组。值按字母顺序排列。"

#: doc/classes/SpriteFrames.xml:59 doc/classes/SpriteFrames.xml:120
msgid "The animation's speed in frames per second."
msgstr "动画的每秒帧数。"

#: doc/classes/SpriteFrames.xml:67
msgid "Returns the animation's selected frame."
msgstr "返回动画所选帧。"

#: doc/classes/SpriteFrames.xml:74
msgid "Returns the number of frames in the animation."
msgstr "返回动画中的帧数。"

#: doc/classes/SpriteFrames.xml:81
msgid "If [code]true[/code], the named animation exists."
msgstr "如果 [code]true[/code],则命名动画存在。"

#: doc/classes/SpriteFrames.xml:88
msgid "Removes the given animation."
msgstr "移除给定的动画。"

#: doc/classes/SpriteFrames.xml:96
msgid "Removes the animation's selected frame."
msgstr "移除动画的选定帧。"

#: doc/classes/SpriteFrames.xml:104
msgid "Changes the animation's name to [code]newname[/code]."
msgstr "将动画的名称更改为 [code]newname[/code]。"

#: doc/classes/SpriteFrames.xml:112
msgid "If [code]true[/code], the animation will loop."
msgstr "如果 [code]true[/code],动画将循环播放。"

#: doc/classes/SpriteFrames.xml:129
msgid "Sets the texture of the given frame."
msgstr "设置给定帧的纹理。"

#: doc/classes/SpriteFrames.xml:135
msgid "Compatibility property, always equals to an empty array."
msgstr "兼容性属性,总是等于一个空数组。"

#: doc/classes/StaticBody.xml:4
msgid "Static body for 3D physics."
msgstr "用于 3D 物理的静态物体。"

#: doc/classes/StaticBody.xml:7
#, fuzzy
msgid ""
"Static body for 3D physics. A static body is a simple body that is not "
"intended to move. In contrast to [RigidBody], they don't consume any CPU "
"resources as long as they don't move.\n"
"Additionally, a constant linear or angular velocity can be set for the "
"static body, so even if it doesn't move, it affects other bodies as if it "
"was moving (this is useful for simulating conveyor belts or conveyor wheels)."
msgstr ""
"用于 3D 物理的静态物体。静态物体是不移动的简单物体。与 [RigidBody3D] 相比,它"
"们只要不动就不会消耗任何 CPU 资源。\n"
"此外,可以为静态物体设置恒定的线速度或角速度,因此即使它不移动,也会像移动一"
"样影响其他物体(这对于模拟传送带或传送轮很有用)。"

#: doc/classes/StaticBody.xml:23
msgid ""
"The body's constant angular velocity. This does not rotate the body, but "
"affects other bodies that touch it, as if it was in a state of rotation."
msgstr ""
"物体的恒定角速度。这不会旋转物体,但会影响其他接触它的物体,就好像它处于旋转"
"状态一样。"

#: doc/classes/StaticBody.xml:26
msgid ""
"The body's constant linear velocity. This does not move the body, but "
"affects other bodies that touch it, as if it was in a state of movement."
msgstr ""
"物体的恒定线速度。这不会移动物体,但会影响接触它的其他物体,就好像它处于运动"
"状态一样。"

#: doc/classes/StaticBody.xml:29
msgid ""
"The body's friction, from 0 (frictionless) to 1 (full friction).\n"
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""

#: doc/classes/StaticBody2D.xml:4
msgid "Static body for 2D physics."
msgstr "用于 2D 物理的静态物体。"

#: doc/classes/StaticBody2D.xml:7
msgid ""
"Static body for 2D physics. A StaticBody2D is a body that is not intended to "
"move. It is ideal for implementing objects in the environment, such as walls "
"or platforms.\n"
"Additionally, a constant linear or angular velocity can be set for the "
"static body, which will affect colliding bodies as if it were moving (for "
"example, a conveyor belt)."
msgstr ""
"用于 2D 物理的静态物体。 StaticBody2D 是一个不移动的物体。它是实现环境对象的"
"理想方式,例如墙壁或平台。\n"
"此外,可以为静态物体设置恒定的线速度或角速度,这将影响碰撞物体,就像它在移动"
"一样(例如,传送带)。"

#: doc/classes/StaticBody2D.xml:20
msgid ""
"The body's constant angular velocity. This does not rotate the body, but "
"affects colliding bodies, as if it were rotating."
msgstr ""
"物体的恒定角速度。这不会使物体旋转,但会影响碰撞的物体,就像它在旋转一样。"

#: doc/classes/StaticBody2D.xml:23
msgid ""
"The body's constant linear velocity. This does not move the body, but "
"affects colliding bodies, as if it were moving."
msgstr ""
"物体的恒定线速度。这不会移动物体,但会影响碰撞的物体,就像它在移动一样。"

#: doc/classes/StaticBody2D.xml:26
#, fuzzy
msgid ""
"The body's friction. Values range from [code]0[/code] (no friction) to "
"[code]1[/code] (full friction).\n"
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""
"物体的摩擦。取值范围从[code]0[/code](无摩擦)到[code]1[/code](最大摩擦)。"

#: doc/classes/StreamPeer.xml:4
msgid "Abstraction and base class for stream-based protocols."
msgstr "基于流的协议的抽象和基类。"

#: doc/classes/StreamPeer.xml:7
#, fuzzy
msgid ""
"StreamPeer is an abstraction and base class for stream-based protocols (such "
"as TCP). It provides an API for sending and receiving data through streams "
"as raw data or strings."
msgstr ""
"StreamPeer是基于流协议(如TCP或UNIX套接字)的一个抽象和基类。它提供了一个"
"API,用于通过流发送和接收原始数据或字符串的数据。"

#: doc/classes/StreamPeer.xml:15
msgid "Gets a signed 16-bit value from the stream."
msgstr "从流中获取一个有符号 16 位值。"

#: doc/classes/StreamPeer.xml:21
msgid "Gets a signed 32-bit value from the stream."
msgstr "从流中获取一个有符号 32 位值。"

#: doc/classes/StreamPeer.xml:27
msgid "Gets a signed 64-bit value from the stream."
msgstr "从流中获取一个有符号 64 位值。"

#: doc/classes/StreamPeer.xml:33
msgid "Gets a signed byte from the stream."
msgstr "从流中获取一个有符号字节。"

#: doc/classes/StreamPeer.xml:39
msgid "Returns the amount of bytes this [StreamPeer] has available."
msgstr "返回该 [StreamPeer] 可用的字节数。"

#: doc/classes/StreamPeer.xml:46
msgid ""
"Returns a chunk data with the received bytes. The amount of bytes to be "
"received can be requested in the [code]bytes[/code] argument. If not enough "
"bytes are available, the function will block until the desired amount is "
"received. This function returns two values, an [enum @GlobalScope.Error] "
"code and a data array."
msgstr ""
"返回接收到的块数据。可以使用 [code]bytes[/code] 参数设置所需接收的字节数。如"
"果可用的字节数不足,函数会阻塞至接收到所需字节数为止。该函数返回两个值,一个 "
"[enum @GlobalScope.Error] 错误码以及一个数据数组。"

#: doc/classes/StreamPeer.xml:52
msgid "Gets a double-precision float from the stream."
msgstr "从流中获取一个双精度浮点数。"

#: doc/classes/StreamPeer.xml:58
msgid "Gets a single-precision float from the stream."
msgstr "从流中获取一个单精度浮点数。"

#: doc/classes/StreamPeer.xml:65
msgid ""
"Returns a chunk data with the received bytes. The amount of bytes to be "
"received can be requested in the \"bytes\" argument. If not enough bytes are "
"available, the function will return how many were actually received. This "
"function returns two values, an [enum @GlobalScope.Error] code, and a data "
"array."
msgstr ""
"返回接收到的块数据。可以使用“bytes”参数设置所需接收的字节数。如果可用的字节数"
"不足,函数会阻塞至接收到所需字节数为止。该函数返回两个值,一个 [enum "
"@GlobalScope.Error] 错误码以及一个数据数组。"

#: doc/classes/StreamPeer.xml:72
msgid ""
"Gets a string with byte-length [code]bytes[/code] from the stream. If "
"[code]bytes[/code] is negative (default) the length will be read from the "
"stream using the reverse process of [method put_string]."
msgstr ""
"从流中获取一个字节长度为 [code]bytes[/code] 的字符串。如果 [code]bytes[/"
"code] 为负(默认),会按照 [method put_string] 的逆向操作从流中读取长度。"

#: doc/classes/StreamPeer.xml:78
msgid "Gets an unsigned 16-bit value from the stream."
msgstr "从流中获取一个无符号 16 位值。"

#: doc/classes/StreamPeer.xml:84
msgid "Gets an unsigned 32-bit value from the stream."
msgstr "从流中获取一个无符号 32 位值。"

#: doc/classes/StreamPeer.xml:90
msgid "Gets an unsigned 64-bit value from the stream."
msgstr "从流中获取一个无符号 64 位值。"

#: doc/classes/StreamPeer.xml:96
msgid "Gets an unsigned byte from the stream."
msgstr "从流中获取一个无符号字节。"

#: doc/classes/StreamPeer.xml:103
msgid ""
"Gets an UTF-8 string with byte-length [code]bytes[/code] from the stream "
"(this decodes the string sent as UTF-8). If [code]bytes[/code] is negative "
"(default) the length will be read from the stream using the reverse process "
"of [method put_utf8_string]."
msgstr ""
"从流中获取一个字节长度为 [code]bytes[/code] 的 UTF-8 字符串(将发送的字符串解"
"码为 UTF-8)。如果 [code]bytes[/code] 为负(默认),会按照 [method "
"put_utf8_string] 的逆向操作从流中读取长度。"

#: doc/classes/StreamPeer.xml:110
msgid ""
"Gets a Variant from the stream. If [code]allow_objects[/code] is [code]true[/"
"code], decoding objects is allowed.\n"
"[b]Warning:[/b] Deserialized objects can contain code which gets executed. "
"Do not use this option if the serialized object comes from untrusted sources "
"to avoid potential security threats such as remote code execution."
msgstr ""
"从流中获取一个 Variant。如果 [code]allow_object[/code] 为 [code]true[/code],"
"则会允许解码出对象。\n"
"[b]警告:[/b] 反序列化的对象可能包含会被执行的代码。如果序列化的对象来自不可"
"信的来源,请勿使用该选项,以免造成远程代码执行等安全威胁。"

#: doc/classes/StreamPeer.xml:118
msgid "Puts a signed 16-bit value into the stream."
msgstr "向流中放入一个有符号 16 位值。"

#: doc/classes/StreamPeer.xml:125
msgid "Puts a signed 32-bit value into the stream."
msgstr "向流中放入一个有符号 32 位值。"

#: doc/classes/StreamPeer.xml:132
msgid "Puts a signed 64-bit value into the stream."
msgstr "向流中放入一个有符号 64 位值。"

#: doc/classes/StreamPeer.xml:139
msgid "Puts a signed byte into the stream."
msgstr "向流中放入一个有符号字节。"

#: doc/classes/StreamPeer.xml:146
msgid ""
"Sends a chunk of data through the connection, blocking if necessary until "
"the data is done sending. This function returns an [enum @GlobalScope.Error] "
"code."
msgstr ""
"通过连接发送块数据,数据完成发送前会阻塞。该函数返回 [enum @GlobalScope."
"Error] 错误码。"

#: doc/classes/StreamPeer.xml:153
msgid "Puts a double-precision float into the stream."
msgstr "向流中放入一个双精度浮点数。"

#: doc/classes/StreamPeer.xml:160
msgid "Puts a single-precision float into the stream."
msgstr "向流中放入一个单精度浮点数。"

#: doc/classes/StreamPeer.xml:167
msgid ""
"Sends a chunk of data through the connection. If all the data could not be "
"sent at once, only part of it will. This function returns two values, an "
"[enum @GlobalScope.Error] code and an integer, describing how much data was "
"actually sent."
msgstr ""
"通过连接发送数据。如果数据无法一次性发完,则仅会发送部分数据。该函数返回两个"
"值,一个 [enum @GlobalScope.Error] 错误码以及一个整数,表示实际发送的数据量。"

#: doc/classes/StreamPeer.xml:174
#, fuzzy
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"
"[codeblock]\n"
"put_data(\"Hello world\".to_ascii())\n"
"[/codeblock]"
msgstr ""
"向流中放入一个以零结尾的 ASCII 字符串,前缀一个表示其长度的 32 位无符号整"
"数。\n"
"注意:如果想发送不包含长度前缀的 ASCII 字符串,可以使用 [method put_data]:\n"
"[codeblock]\n"
"put_data(\"Hello world\".to_ascii())\n"
"[/codeblock]"

#: doc/classes/StreamPeer.xml:185
msgid "Puts an unsigned 16-bit value into the stream."
msgstr "向流中放入一个无符号 16 位值。"

#: doc/classes/StreamPeer.xml:192
msgid "Puts an unsigned 32-bit value into the stream."
msgstr "向流中放入一个无符号 32 位值。"

#: doc/classes/StreamPeer.xml:199
msgid "Puts an unsigned 64-bit value into the stream."
msgstr "向流中放入一个无符号 64 位值。"

#: doc/classes/StreamPeer.xml:206
msgid "Puts an unsigned byte into the stream."
msgstr "向流中放入一个无符号字节。"

#: doc/classes/StreamPeer.xml:213
#, fuzzy
msgid ""
"Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits "
"unsigned integer representing its size.\n"
"[b]Note:[/b] To put an UTF-8 string without prepending its size, you can use "
"[method put_data]:\n"
"[codeblock]\n"
"put_data(\"Hello world\".to_utf8())\n"
"[/codeblock]"
msgstr ""
"向流中放入一个以零结尾的 UTF-8 字符串,前缀一个表示其长度的 32 位无符号整"
"数。\n"
"注意:如果想发送不包含长度前缀的 UTF-8 字符串,可以使用 [method put_data]:\n"
"[codeblock]\n"
"put_data(\"Hello world\".to_utf8())\n"
"[/codeblock]"

#: doc/classes/StreamPeer.xml:225
msgid ""
"Puts a Variant into the stream. If [code]full_objects[/code] is [code]true[/"
"code] encoding objects is allowed (and can potentially include code)."
msgstr ""
"向流中放入一个 Variant。如果 [code]full_objects[/code] 为 [code]true[/code],"
"则会允许将对象编码(其中可能包含代码)。"

#: doc/classes/StreamPeer.xml:231
msgid ""
"If [code]true[/code], this [StreamPeer] will using big-endian format for "
"encoding and decoding."
msgstr "为 [code]true[/code] 时,该 [StreamPeer] 进行编解码时会使用大端格式。"

#: doc/classes/StreamPeerSSL.xml:4
msgid "SSL stream peer."
msgstr "SSL流对等体。"

#: doc/classes/StreamPeerSSL.xml:7
msgid ""
"SSL stream peer. This object can be used to connect to an SSL server or "
"accept a single SSL client connection."
msgstr "SSL 流对等体。此对象可用于连接到 SSL 服务器或接受单个 SSL 客户端连接。"

#: doc/classes/StreamPeerSSL.xml:20
msgid ""
"Accepts a peer connection as a server using the given [code]private_key[/"
"code] and providing the given [code]certificate[/code] to the client. You "
"can pass the optional [code]chain[/code] parameter to provide additional CA "
"chain information along with the certificate."
msgstr ""
"使用给定的 [code]private_key[/code] 接受对等连接作为服务器,并向客户端提供给"
"定的 [code] certificate [/code]。您可以传递可选的 [code]chain[/code] 参数以提"
"供额外的 CA 链信息以及证书。"

#: doc/classes/StreamPeerSSL.xml:30
msgid ""
"Connects to a peer using an underlying [StreamPeer] [code]stream[/code]. If "
"[code]validate_certs[/code] is [code]true[/code], [StreamPeerSSL] will "
"validate that the certificate presented by the peer matches the "
"[code]for_hostname[/code].\n"
"[b]Note:[/b] Specifying a custom [code]valid_certificate[/code] is not "
"supported in HTML5 exports due to browsers restrictions."
msgstr ""
"使用底层 [StreamPeer] [code]stream[/code] 连接到对等点。如果 "
"[code]validate_certs[/code] 是 [code]true[/code],[StreamPeerSSL] 将验证对等"
"方提供的证书是否与 [code]for_hostname[/code] 匹配。\n"
"[b]注意:[/b] 由于浏览器限制,HTML5 导出不支持指定自定义 "
"[code]valid_certificate[/code]。"

#: doc/classes/StreamPeerSSL.xml:37 doc/classes/StreamPeerTCP.xml:23
msgid "Disconnects from host."
msgstr "与主机断开连接。"

#: doc/classes/StreamPeerSSL.xml:49
msgid ""
"Poll the connection to check for incoming bytes. Call this right before "
"[method StreamPeer.get_available_bytes] for it to work properly."
msgstr ""
"轮询连接以检查传入的字节。在 [method StreamPeer.get_available_bytes] 之前调用"
"它以使其正常工作。"

#: doc/classes/StreamPeerSSL.xml:59
msgid "A status representing a [StreamPeerSSL] that is disconnected."
msgstr "表示已断开连接的 [StreamPeerSSL] 的状态。"

#: doc/classes/StreamPeerSSL.xml:62
msgid "A status representing a [StreamPeerSSL] during handshaking."
msgstr "代表在握手期间[StreamPeerSSL]的状态。"

#: doc/classes/StreamPeerSSL.xml:65
msgid "A status representing a [StreamPeerSSL] that is connected to a host."
msgstr "表示连接到主机的 [StreamPeerSSL] 的状态。"

#: doc/classes/StreamPeerSSL.xml:68
msgid "A status representing a [StreamPeerSSL] in error state."
msgstr "代表[StreamPeerSSL]处于错误状态的状态。"

#: doc/classes/StreamPeerSSL.xml:71
msgid ""
"An error status that shows a mismatch in the SSL certificate domain "
"presented by the host and the domain requested for validation."
msgstr "一种错误状态,显示主机提交的SSL证书域与请求验证的域不匹配。"

#: doc/classes/StreamPeerTCP.xml:4
msgid "TCP stream peer."
msgstr "TCP流对等体。"

#: doc/classes/StreamPeerTCP.xml:7
msgid ""
"TCP stream peer. This object can be used to connect to TCP servers, or also "
"is returned by a TCP server."
msgstr "TCP 流对等体。此对象可用于连接到 TCP 服务器,也可由 TCP 服务器返回。"

#: doc/classes/StreamPeerTCP.xml:17
msgid ""
"Connects to the specified [code]host:port[/code] pair. A hostname will be "
"resolved if valid. Returns [constant OK] on success or [constant FAILED] on "
"failure."
msgstr ""
"连接到指定的 [code] host:port [/code] 对。如果有效,将解析主机名。成功或失败"
"时返回[constant OK]或[constant FAILED]。"

#: doc/classes/StreamPeerTCP.xml:29
msgid "Returns the IP of this peer."
msgstr "返回该对等体的IP。"

#: doc/classes/StreamPeerTCP.xml:35
msgid "Returns the port of this peer."
msgstr "返回该对等体的端口。"

#: doc/classes/StreamPeerTCP.xml:41
msgid "Returns the status of the connection, see [enum Status]."
msgstr "返回连接的状态,见[enum Status]。"

#: doc/classes/StreamPeerTCP.xml:47
#, fuzzy
msgid ""
"Returns [code]true[/code] if this peer is currently connected or is "
"connecting to a host, [code]false[/code] otherwise."
msgstr ""
"如果这个对等体当前连接到一个主机,返回[code]true[/code],否则返回"
"[code]false[/code]。"

#: doc/classes/StreamPeerTCP.xml:54
msgid ""
"If [code]enabled[/code] is [code]true[/code], packets will be sent "
"immediately. If [code]enabled[/code] is [code]false[/code] (the default), "
"packet transfers will be delayed and combined using [url=https://en."
"wikipedia.org/wiki/Nagle%27s_algorithm]Nagle's algorithm[/url].\n"
"[b]Note:[/b] It's recommended to leave this disabled for applications that "
"send large packets or need to transfer a lot of data, as enabling this can "
"decrease the total available bandwidth."
msgstr ""

#: doc/classes/StreamPeerTCP.xml:61
msgid ""
"The initial status of the [StreamPeerTCP]. This is also the status after "
"disconnecting."
msgstr "[StreamPeerTCP]的初始状态。这也是断开连接后的状态。"

#: doc/classes/StreamPeerTCP.xml:64
msgid "A status representing a [StreamPeerTCP] that is connecting to a host."
msgstr "表示连接到主机的 [StreamPeerTCP] 的状态。"

#: doc/classes/StreamPeerTCP.xml:67
msgid "A status representing a [StreamPeerTCP] that is connected to a host."
msgstr "表示连接到主机的 [StreamPeerSSL] 的状态。"

#: doc/classes/StreamPeerTCP.xml:70
msgid "A status representing a [StreamPeerTCP] in error state."
msgstr "表示处于错误状态的 [StreamPeerTCP] 的状态。"

#: doc/classes/StreamTexture.xml:4
msgid "A [code].stex[/code] texture."
msgstr "[code].stex[/code]纹理."

#: doc/classes/StreamTexture.xml:7
msgid "A texture that is loaded from a [code].stex[/code] file."
msgstr "从[code].stex[/code]文件加载的纹理。"

#: doc/classes/StreamTexture.xml:16
msgid "Loads the texture from the given path."
msgstr "从给定的路径加载纹理。"

#: doc/classes/StreamTexture.xml:23
msgid "The StreamTexture's file path to a [code].stex[/code] file."
msgstr "StreamTexture 到 [code].stex[/code] 文件的文件路径。"

#: doc/classes/String.xml:4
msgid "Built-in string class."
msgstr "内置字符串类。"

#: doc/classes/String.xml:7
msgid ""
"This is the built-in string class (and the one used by GDScript). It "
"supports Unicode and provides all necessary means for string handling. "
"Strings are reference-counted and use a copy-on-write approach, so passing "
"them around is cheap in resources."
msgstr ""
"这是一个内置的字符串类(也是GDScript使用的字符串类)。它支持Unicode,并提供了"
"处理字符串的所有必要手段。字符串是有引用计数的,并使用写时复制的方法,所以在"
"资源上传递它们很节省资源。"

#: doc/classes/String.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/gdscript/"
"gdscript_format_string.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/scripting/gdscript/"
"gdscript_format_string.html"

#: doc/classes/String.xml:17
msgid "Constructs a new String from the given [bool]."
msgstr "从给定的 [bool] 构造一个新的 String。"

#: doc/classes/String.xml:24
msgid "Constructs a new String from the given [int]."
msgstr "从给定的[int]构造一个新的字符串。"

#: doc/classes/String.xml:31
msgid "Constructs a new String from the given [float]."
msgstr "从给定的[float]构造一个新的字符串。"

#: doc/classes/String.xml:38
msgid "Constructs a new String from the given [Vector2]."
msgstr "从给定的[Vector2]构造一个新的字符串。"

#: doc/classes/String.xml:45
msgid "Constructs a new String from the given [Rect2]."
msgstr "从给定的 [Rect2] 构造一个新字符串。"

#: doc/classes/String.xml:52
msgid "Constructs a new String from the given [Vector3]."
msgstr "从给定的 [Vector3] 构造一个新字符串。"

#: doc/classes/String.xml:59
msgid "Constructs a new String from the given [Transform2D]."
msgstr "从给定的 [Transform2D] 构造一个新字符串。"

#: doc/classes/String.xml:66
msgid "Constructs a new String from the given [Plane]."
msgstr "从给定的 [Plane] 构造一个新字符串。"

#: doc/classes/String.xml:73
msgid "Constructs a new String from the given [Quat]."
msgstr "从给定的 [Quat] 构造一个新字符串。"

#: doc/classes/String.xml:80
msgid "Constructs a new String from the given [AABB]."
msgstr "从给定的 [AABB] 构造一个新字符串。"

#: doc/classes/String.xml:87
msgid "Constructs a new String from the given [Basis]."
msgstr "从给定的 [Basis] 构造一个新字符串。"

#: doc/classes/String.xml:94
msgid "Constructs a new String from the given [Transform]."
msgstr "从给定的 [Transform] 构造一个新字符串。"

#: doc/classes/String.xml:101
msgid "Constructs a new String from the given [Color]."
msgstr "从给定的 [Color] 构造一个新字符串。"

#: doc/classes/String.xml:108
msgid "Constructs a new String from the given [NodePath]."
msgstr "从给定的 [NodePath] 构造一个新字符串。"

#: doc/classes/String.xml:115
msgid "Constructs a new String from the given [RID]."
msgstr "从给定的 [RID] 构造一个新字符串。"

#: doc/classes/String.xml:122
msgid "Constructs a new String from the given [Dictionary]."
msgstr "从给定的 [Dictionary] 构造一个新字符串。"

#: doc/classes/String.xml:129
msgid "Constructs a new String from the given [Array]."
msgstr "从给定的 [Array] 构造一个新字符串。"

#: doc/classes/String.xml:136
#, fuzzy
msgid "Constructs a new String from the given [PoolByteArray]."
msgstr "从给定的 [PackedByteArray] 构造一个新字符串。"

#: doc/classes/String.xml:143
#, fuzzy
msgid "Constructs a new String from the given [PoolIntArray]."
msgstr "从给定的 [Array] 构造一个新字符串。"

#: doc/classes/String.xml:150
#, fuzzy
msgid "Constructs a new String from the given [PoolRealArray]."
msgstr "从给定的 [Array] 构造一个新字符串。"

#: doc/classes/String.xml:157
#, fuzzy
msgid "Constructs a new String from the given [PoolStringArray]."
msgstr "从给定的 [PackedStringArray] 构造一个新字符串。"

#: doc/classes/String.xml:164
#, fuzzy
msgid "Constructs a new String from the given [PoolVector2Array]."
msgstr "从给定的 [PackedVector2Array] 构造一个新字符串。"

#: doc/classes/String.xml:171
#, fuzzy
msgid "Constructs a new String from the given [PoolVector3Array]."
msgstr "从给定的 [PackedVector3Array] 构造一个新字符串。"

#: doc/classes/String.xml:178
#, fuzzy
msgid "Constructs a new String from the given [PoolColorArray]."
msgstr "从给定的 [PackedColorArray] 构造一个新字符串。"

#: doc/classes/String.xml:185
msgid "Returns [code]true[/code] if the string begins with the given string."
msgstr "该字符串以指定字符串开头时,返回 [code]true[/code]。"

#: doc/classes/String.xml:191
msgid "Returns the bigrams (pairs of consecutive letters) of this string."
msgstr "返回此字符串的二元组(连续字母对)。"

#: doc/classes/String.xml:197
msgid ""
"Returns a copy of the string with special characters escaped using the C "
"language standard."
msgstr "返回一个使用C语言标准转义的特殊字符的字符串的副本。"

#: doc/classes/String.xml:203
msgid ""
"Returns a copy of the string with escaped characters replaced by their "
"meanings. Supported escape sequences are [code]\\'[/code], [code]\\\"[/"
"code], [code]\\?[/code], [code]\\\\[/code], [code]\\a[/code], [code]\\b[/"
"code], [code]\\f[/code], [code]\\n[/code], [code]\\r[/code], [code]\\t[/"
"code], [code]\\v[/code].\n"
"[b]Note:[/b] Unlike the GDScript parser, this method doesn't support the "
"[code]\\uXXXX[/code] escape sequence."
msgstr ""
"返回用转义字符替换其含义的字符串副本。支持的转义序列有 [code]\\'[/code]、"
"[code]\\\"[/code]、[code]\\?[/code]、[code]\\\\[/code]、[code]\\a[/code]、"
"[code]\\b[/code]、[code]\\f[/code]、[code]\\n[/code]、[code]\\r[/code]、"
"[code]\\t[/code]、[code]\\v[/code]。\n"
"[b]注意:[/b]与GDScript解析器不同,该方法不支持[code]\\uXXXX[/code]转义序列。"

#: doc/classes/String.xml:210
msgid ""
"Changes the case of some letters. Replaces underscores with spaces, adds "
"spaces before in-word uppercase characters, converts all letters to "
"lowercase, then capitalizes the first letter and every letter following a "
"space character. For [code]capitalize camelCase mixed_with_underscores[/"
"code], it will return [code]Capitalize Camel Case Mixed With Underscores[/"
"code]."
msgstr ""
"更改某些字母的大小写。用空格替换下划线,在词内大写字符之前添加空格,将所有字"
"母转换为小写,然后将第一个字母和空格字符后面的每个字母大写。对于"
"[code]capitalize camelCase mixed_with_underscores[/code],它将返回"
"[code]Capitalize Camel Case Mixed With Underscores[/code]。"

#: doc/classes/String.xml:217
msgid ""
"Performs a case-sensitive comparison to another string. Returns [code]-1[/"
"code] if less than, [code]1[/code] if greater than, or [code]0[/code] if "
"equal. \"less than\" or \"greater than\" are determined by the [url=https://"
"en.wikipedia.org/wiki/List_of_Unicode_characters]Unicode code points[/url] "
"of each string, which roughly matches the alphabetical order.\n"
"[b]Behavior with different string lengths:[/b] Returns [code]1[/code] if the "
"\"base\" string is longer than the [code]to[/code] string or [code]-1[/code] "
"if the \"base\" string is shorter than the [code]to[/code] string. Keep in "
"mind this length is determined by the number of Unicode codepoints, [i]not[/"
"i] the actual visible characters.\n"
"[b]Behavior with empty strings:[/b] Returns [code]-1[/code] if the \"base\" "
"string is empty, [code]1[/code] if the [code]to[/code] string is empty or "
"[code]0[/code] if both strings are empty.\n"
"To get a boolean result from a string comparison, use the [code]==[/code] "
"operator instead. See also [method nocasecmp_to]."
msgstr ""

#: doc/classes/String.xml:229
msgid ""
"Returns the number of occurrences of substring [code]what[/code] between "
"[code]from[/code] and [code]to[/code] positions. If [code]from[/code] and "
"[code]to[/code] equals 0 the whole string will be used. If only [code]to[/"
"code] equals 0 the remained substring will be used."
msgstr ""
"返回子串 [code]what[/code] 在 [code]from[/code] 和 [code]to[/code] 位置之间出"
"现的次数。如果 [code]from[/code] 和 [code]to[/code] 等于 0,则将使用整个字符"
"串。如果只有 [code]to[/code] 等于 0,则将使用剩余的子串。"

#: doc/classes/String.xml:238
msgid ""
"Returns the number of occurrences of substring [code]what[/code] (ignoring "
"case) between [code]from[/code] and [code]to[/code] positions. If "
"[code]from[/code] and [code]to[/code] equals 0 the whole string will be "
"used. If only [code]to[/code] equals 0 the remained substring will be used."
msgstr ""
"返回子串 [code]what[/code](忽略大小写)在 [code]from[/code] 和 [code]to[/"
"code] 位置之间出现的次数。如果 [code]from[/code] 和 [code]to[/code] 等于 0,"
"则将使用整个字符串。如果只有 [code]to[/code] 等于 0,则将使用剩余的子串。"

#: doc/classes/String.xml:244
msgid ""
"Returns a copy of the string with indentation (leading tabs and spaces) "
"removed."
msgstr "返回删除了缩进(前导制表符和空格)的字符串副本。"

#: doc/classes/String.xml:250
msgid ""
"Returns [code]true[/code] if the length of the string equals [code]0[/code]."
msgstr "该字符串的长度为 [code]0[/code] 时,返回 [code]true[/code]。"

#: doc/classes/String.xml:257
msgid "Returns [code]true[/code] if the string ends with the given string."
msgstr "该字符串以指定字符串结尾时,返回 [code]true[/code]。"

#: doc/classes/String.xml:264
msgid ""
"Erases [code]chars[/code] characters from the string starting from "
"[code]position[/code]."
msgstr ""
"从该字符串的 [code]position[/code] 位置开始,擦除 [code]chars[/code] 个字符。"

#: doc/classes/String.xml:272
#, fuzzy
msgid ""
"Finds the first occurrence of a substring. Returns the starting position of "
"the substring or [code]-1[/code] if not found. Optionally, the initial "
"search index can be passed.\n"
"[b]Note:[/b] If you just want to know whether a string contains a substring, "
"use the [code]in[/code] operator as follows:\n"
"[codeblock]\n"
"# Will evaluate to `false`.\n"
"if \"i\" in \"team\":\n"
"    pass\n"
"[/codeblock]"
msgstr ""
"返回此实例中指定字符串的 [b]first[/b] 出现的索引(区分大小写),或 [code]-1[/"
"code]。可以指定起始搜索索引,一直到字符串的结尾。\n"
"[b]注:[/b] 如果只想知道字符串是否包含子字符串,请使用 [code]in[/code] 运算"
"符,如下所示:\n"
"[codeblock]\n"
"# 将判断为 `false`.\n"
"if \"i\" in \"team\":\n"
"    pass\n"
"[/codeblock]"

#: doc/classes/String.xml:285
msgid ""
"Finds the last occurrence of a substring. Returns the starting position of "
"the substring or [code]-1[/code] if not found."
msgstr ""

#: doc/classes/String.xml:293
#, fuzzy
msgid ""
"Finds the first occurrence of a substring, ignoring case. Returns the "
"starting position of the substring or [code]-1[/code] if not found. "
"Optionally, the initial search index can be passed."
msgstr ""
"在数组中查找指定的值,返回对应的索引,未找到时返回 [code]-1[/code]。还可以传"
"入搜索起始位置的索引。"

#: doc/classes/String.xml:301
msgid ""
"Formats the string by replacing all occurrences of [code]placeholder[/code] "
"with [code]values[/code]."
msgstr ""
"格式化字符串,将所有的 [code]placeholder[/code] 替换为 [code]values[/code]。"

#: doc/classes/String.xml:307
msgid "If the string is a valid file path, returns the base directory name."
msgstr "字符串为有效文件路径时,返回基础目录名。"

#: doc/classes/String.xml:313
msgid ""
"If the string is a valid file path, returns the full file path without the "
"extension."
msgstr "字符串为有效文件路径时,返回完整的文件路径,不带扩展名。"

#: doc/classes/String.xml:319
msgid ""
"Returns the extension without the leading period character ([code].[/code]) "
"if the string is a valid file name or path. If the string does not contain "
"an extension, returns an empty string instead.\n"
"[codeblock]\n"
"print(\"/path/to/file.txt\".get_extension())  # \"txt\"\n"
"print(\"file.txt\".get_extension())  # \"txt\"\n"
"print(\"file.sample.txt\".get_extension())  # \"txt\"\n"
"print(\".txt\".get_extension())  # \"txt\"\n"
"print(\"file.txt.\".get_extension())  # \"\" (empty string)\n"
"print(\"file.txt..\".get_extension())  # \"\" (empty string)\n"
"print(\"txt\".get_extension())  # \"\" (empty string)\n"
"print(\"\".get_extension())  # \"\" (empty string)\n"
"[/codeblock]"
msgstr ""

#: doc/classes/String.xml:335
msgid "If the string is a valid file path, returns the filename."
msgstr "字符串为有效文件路径时,返回文件名。"

#: doc/classes/String.xml:341
msgid "Hashes the string and returns a 32-bit integer."
msgstr "以32位整数形式返回字符串的哈希值。"

#: doc/classes/String.xml:347
msgid ""
"Converts a string containing a hexadecimal number into an integer. "
"Hexadecimal strings are expected to be prefixed with \"[code]0x[/code]\" "
"otherwise [code]0[/code] is returned.\n"
"[codeblock]\n"
"print(\"0xff\".hex_to_int()) # Print \"255\"\n"
"[/codeblock]"
msgstr ""
"将包含十六进制数的字符串转换为整数。十六进制字符串应以“[code]0x[/code]”为前"
"缀,否则返回 [code]0[/code]。\n"
"[codeblock]\n"
"print(\"0xff\".hex_to_int()) # 打印 \"255\"\n"
"[/codeblock]"

#: doc/classes/String.xml:356
msgid ""
"Escapes (encodes) a string to URL friendly format. Also referred to as 'URL "
"encode'.\n"
"[codeblock]\n"
"print(\"https://example.org/?escaped=\" + \"Godot Engine:'docs'\"."
"http_escape())\n"
"[/codeblock]"
msgstr ""
"对字符串进行转义(编码),使之成为适合URL的格式。也被称为 \"URL编码\"。\n"
"[codeblock]\n"
"print(\"https://example.org/?escaped=\" + \"Godot Engine:'docs'\"."
"http_escape())\n"
"[/codeblock]"

#: doc/classes/String.xml:365
msgid ""
"Unescapes (decodes) a string in URL encoded format. Also referred to as 'URL "
"decode'.\n"
"[codeblock]\n"
"print(\"https://example.org/?escaped=\" + \"Godot%20Engine%3A%27docs%27\"."
"http_unescape())\n"
"[/codeblock]"
msgstr ""
"解除(解码)一个URL编码格式的字符串。也被称为 \"URL解码\"。\n"
"[codeblock]\n"
"print(\"https://example.org/?escaped=\" + \"Godot%20Engine%3A%27docs%27\"."
"http_unescape())\n"
"[/codeblock]"

#: doc/classes/String.xml:375
msgid ""
"Converts [code]size[/code] represented as number of bytes to human-readable "
"format using internationalized set of data size units, namely: B, KiB, MiB, "
"GiB, TiB, PiB, EiB. Note that the next smallest unit is picked automatically "
"to hold at most 1024 units.\n"
"[codeblock]\n"
"var bytes = 133790307\n"
"var size = String.humanize_size(bytes)\n"
"print(size) # prints \"127.5 MiB\"\n"
"[/codeblock]"
msgstr ""
"将以字节数表示的[code]大小[/code]转换为人类可读的格式,使用国际化的数据大小单"
"位集,即。B, KiB, MiB, GiB, TiB, PiB, EiB。请注意,下一个最小的单位是自动挑选"
"的,最多可容纳1024个单位。\n"
"[codeblock]\n"
"var bytes = 133790307\n"
"var size = String.humanize_size(bytes)\n"
"print(size) # 打印 \"127.5 MiB\"\n"
"[/codeblock]"

#: doc/classes/String.xml:388
msgid ""
"Returns a copy of the string with the substring [code]what[/code] inserted "
"at the given position."
msgstr "返回在给定位置插入子字符串 [code]what[/code] 后的字符串副本。"

#: doc/classes/String.xml:394
msgid ""
"If the string is a path to a file or directory, returns [code]true[/code] if "
"the path is absolute."
msgstr ""
"如果字符串是文件或目录的路径,且路径是绝对路径,则返回 [code]true[/code]。"

#: doc/classes/String.xml:400
msgid ""
"If the string is a path to a file or directory, returns [code]true[/code] if "
"the path is relative."
msgstr ""
"如果字符串是文件或目录的路径,且路径是相对的,则返回 [code]true[/code]。"

#: doc/classes/String.xml:407
msgid ""
"Returns [code]true[/code] if this string is a subsequence of the given "
"string."
msgstr "该字符串为指定字符串的子串时,返回 [code]true[/code]。"

#: doc/classes/String.xml:414
msgid ""
"Returns [code]true[/code] if this string is a subsequence of the given "
"string, without considering case."
msgstr ""
"不考虑大小写的前提下,该字符串为指定字符串的子串时,返回 [code]true[/code]。"

#: doc/classes/String.xml:420
msgid ""
"Returns [code]true[/code] if this string is free from characters that aren't "
"allowed in file names, those being:\n"
"[code]: / \\ ? * \" | % < >[/code]"
msgstr ""
"该字符串不包含文件名中所禁止的字符时,返回 [code]true[/code]。禁止的字符"
"有:\n"
"[code]: / \\ ? * \" | % < >[/code]"

#: doc/classes/String.xml:427
msgid "Returns [code]true[/code] if this string contains a valid float."
msgstr "该字符串包含有效浮点数时,返回 [code]true[/code]。"

#: doc/classes/String.xml:434
msgid ""
"Returns [code]true[/code] if this string contains a valid hexadecimal "
"number. If [code]with_prefix[/code] is [code]true[/code], then a validity of "
"the hexadecimal number is determined by [code]0x[/code] prefix, for "
"instance: [code]0xDEADC0DE[/code]."
msgstr ""
"该字符串包含有效十六进制数时,返回 [code]true[/code]。如果 "
"[code]with_prefix[/code] 为 [code]true[/code],则有效的十六进制数还需要包含 "
"[code]0x[/code] 前缀,例如:[code]0xDEADC0DE[/code]。"

#: doc/classes/String.xml:440
msgid ""
"Returns [code]true[/code] if this string contains a valid color in "
"hexadecimal HTML notation. Other HTML notations such as named colors or "
"[code]hsl()[/code] colors aren't considered valid by this method and will "
"return [code]false[/code]."
msgstr ""
"该字符串包含有效 HTML 十六进制颜色记号时,返回 [code]true[/code]。本方法认为"
"具名颜色以及 [code]hsl()[/code] 颜色等其它 HTML 记号无效,会返回 "
"[code]false[/code]。"

#: doc/classes/String.xml:446
msgid ""
"Returns [code]true[/code] if this string is a valid identifier. A valid "
"identifier may contain only letters, digits and underscores ([code]_[/code]) "
"and the first character may not be a digit."
msgstr ""
"该字符串为有效标识符时,返回 [code]true[/code]。有效标识符仅能够包含字母、数"
"字、下划线([code]_[/code]),并且不能以数字开头。"

#: doc/classes/String.xml:452
msgid "Returns [code]true[/code] if this string contains a valid integer."
msgstr "该字符串包含有效整数时,返回 [code]true[/code]。"

#: doc/classes/String.xml:458
msgid ""
"Returns [code]true[/code] if this string contains only a well-formatted IPv4 "
"or IPv6 address. This method considers [url=https://en.wikipedia.org/wiki/"
"Reserved_IP_addresses]reserved IP addresses[/url] such as [code]0.0.0.0[/"
"code] as valid."
msgstr ""

#: doc/classes/String.xml:464
msgid ""
"Returns a copy of the string with special characters escaped using the JSON "
"standard."
msgstr "返回一个使用JSON标准转义的特殊字符的字符串的副本。"

#: doc/classes/String.xml:471
msgid "Returns a number of characters from the left of the string."
msgstr "返回该字符串自左侧起的若干个字符。"

#: doc/classes/String.xml:477
msgid "Returns the string's amount of characters."
msgstr "返回字符串的字符数。"

#: doc/classes/String.xml:484
msgid ""
"Returns a copy of the string with characters removed from the left. The "
"[code]chars[/code] argument is a string specifying the set of characters to "
"be removed.\n"
"[b]Note:[/b] The [code]chars[/code] is not a prefix. See [method "
"trim_prefix] method that will remove a single prefix string rather than a "
"set of characters."
msgstr ""

#: doc/classes/String.xml:492
msgid ""
"Does a simple case-sensitive expression match, where [code]\"*\"[/code] "
"matches zero or more arbitrary characters and [code]\"?\"[/code] matches any "
"single character except a period ([code]\".\"[/code])."
msgstr ""
"判断表达式是否匹配(区分大小写),其中 [code]\"*\"[/code] 匹配零个或多个任意字"
"符并且 [code]\"?\"[/code] 匹配除句点( [code]\".\"[/code] )外的任意字符。"

#: doc/classes/String.xml:499
msgid ""
"Does a simple case-insensitive expression match, where [code]\"*\"[/code] "
"matches zero or more arbitrary characters and [code]\"?\"[/code] matches any "
"single character except a period ([code]\".\"[/code])."
msgstr ""
"判断表达式是否匹配(不区分大小写),其中 [code]\"*\"[/code] 匹配零个或多个任意"
"字符并且 [code]\"?\"[/code] 匹配除句点( [code]\".\"[/code] )外的任意字符。"

#: doc/classes/String.xml:505
msgid "Returns the MD5 hash of the string as an array of bytes."
msgstr "以一个字节数组的形式返回字符串的MD5哈希值。"

#: doc/classes/String.xml:511
msgid "Returns the MD5 hash of the string as a string."
msgstr "以一个字符串的形式返回字符串的MD5哈希值。"

#: doc/classes/String.xml:518
msgid ""
"Performs a case-insensitive [i]natural order[/i] comparison to another "
"string. Returns [code]-1[/code] if less than, [code]1[/code] if greater "
"than, or [code]0[/code] if equal. \"less than\" or \"greater than\" are "
"determined by the [url=https://en.wikipedia.org/wiki/"
"List_of_Unicode_characters]Unicode code points[/url] of each string, which "
"roughly matches the alphabetical order. Internally, lowercase characters "
"will be converted to uppercase during the comparison.\n"
"When used for sorting, natural order comparison will order suites of numbers "
"as expected by most people. If you sort the numbers from 1 to 10 using "
"natural order, you will get [code][1, 2, 3, ...][/code] instead of [code][1, "
"10, 2, 3, ...][/code].\n"
"[b]Behavior with different string lengths:[/b] Returns [code]1[/code] if the "
"\"base\" string is longer than the [code]to[/code] string or [code]-1[/code] "
"if the \"base\" string is shorter than the [code]to[/code] string. Keep in "
"mind this length is determined by the number of Unicode codepoints, [i]not[/"
"i] the actual visible characters.\n"
"[b]Behavior with empty strings:[/b] Returns [code]-1[/code] if the \"base\" "
"string is empty, [code]1[/code] if the [code]to[/code] string is empty or "
"[code]0[/code] if both strings are empty.\n"
"To get a boolean result from a string comparison, use the [code]==[/code] "
"operator instead. See also [method nocasecmp_to] and [method casecmp_to]."
msgstr ""

#: doc/classes/String.xml:529
msgid ""
"Performs a case-insensitive comparison to another string. Returns [code]-1[/"
"code] if less than, [code]1[/code] if greater than, or [code]0[/code] if "
"equal. \"less than\" or \"greater than\" are determined by the [url=https://"
"en.wikipedia.org/wiki/List_of_Unicode_characters]Unicode code points[/url] "
"of each string, which roughly matches the alphabetical order. Internally, "
"lowercase characters will be converted to uppercase during the comparison.\n"
"[b]Behavior with different string lengths:[/b] Returns [code]1[/code] if the "
"\"base\" string is longer than the [code]to[/code] string or [code]-1[/code] "
"if the \"base\" string is shorter than the [code]to[/code] string. Keep in "
"mind this length is determined by the number of Unicode codepoints, [i]not[/"
"i] the actual visible characters.\n"
"[b]Behavior with empty strings:[/b] Returns [code]-1[/code] if the \"base\" "
"string is empty, [code]1[/code] if the [code]to[/code] string is empty or "
"[code]0[/code] if both strings are empty.\n"
"To get a boolean result from a string comparison, use the [code]==[/code] "
"operator instead. See also [method casecmp_to]."
msgstr ""

#: doc/classes/String.xml:539
msgid "Returns the character code at position [code]at[/code]."
msgstr "返回 [code]at[/code] 处的字符代码。"

#: doc/classes/String.xml:546
msgid ""
"Formats a number to have an exact number of [code]digits[/code] after the "
"decimal point."
msgstr "格式化数字,在小数点后具有 [code]digits[/code] 的确切数字。"

#: doc/classes/String.xml:553
msgid ""
"Formats a number to have an exact number of [code]digits[/code] before the "
"decimal point."
msgstr "格式化数字,在小数点前具有 [code]digits[/code] 的确切数字。"

#: doc/classes/String.xml:559
msgid "Decode a percent-encoded string. See [method percent_encode]."
msgstr "解码一个百分比编码的字符串。参见[method percent_encode]。"

#: doc/classes/String.xml:565
msgid ""
"Percent-encodes a string. Encodes parameters in a URL when sending a HTTP "
"GET request (and bodies of form-urlencoded POST requests)."
msgstr ""
"对字符串进行百分比编码。发送 HTTP GET 请求(以及表单 urlencoded POST 请求的主"
"体)时在 URL 中编码参数。"

#: doc/classes/String.xml:572
msgid ""
"If the string is a path, this concatenates [code]file[/code] at the end of "
"the string as a subpath. E.g. [code]\"this/is\".plus_file(\"path\") == "
"\"this/is/path\"[/code]."
msgstr ""
"如果字符串是路径,则在字符串末尾连接 [code]file[/code] 作为子路径。例如。 "
"[code]\"this/is\".plus_file(\"path\") == \"this/is/path\"[/code]。"

#: doc/classes/String.xml:579
msgid ""
"Returns original string repeated a number of times. The number of "
"repetitions is given by the argument."
msgstr "返回重复多次的原始字符串。重复次数由参数给出。"

#: doc/classes/String.xml:587
msgid ""
"Replaces occurrences of a case-sensitive substring with the given one inside "
"the string."
msgstr "将出现的子字符串替换为字符串中给定的子字符串(区分大小写)。"

#: doc/classes/String.xml:595
msgid ""
"Replaces occurrences of a case-insensitive substring with the given one "
"inside the string."
msgstr "将出现的子字符串替换为字符串中给定的子字符串(不区分大小写)。"

#: doc/classes/String.xml:603
msgid ""
"Performs a case-sensitive search for a substring, but starts from the end of "
"the string instead of the beginning."
msgstr ""

#: doc/classes/String.xml:611
msgid ""
"Performs a case-insensitive search for a substring, but starts from the end "
"of the string instead of the beginning."
msgstr ""

#: doc/classes/String.xml:618
msgid "Returns the right side of the string from a given position."
msgstr "返回该字符串指定位置右侧的内容。"

#: doc/classes/String.xml:627
msgid ""
"Splits the string by a [code]delimiter[/code] string and returns an array of "
"the substrings, starting from right.\n"
"The splits in the returned array are sorted in the same order as the "
"original string, from left to right.\n"
"If [code]maxsplit[/code] is specified, it defines the number of splits to do "
"from the right up to [code]maxsplit[/code]. The default value of 0 means "
"that all items are split, thus giving the same result as [method split].\n"
"Example:\n"
"[codeblock]\n"
"var some_string = \"One,Two,Three,Four\"\n"
"var some_array = some_string.rsplit(\",\", true, 1)\n"
"print(some_array.size()) # Prints 2\n"
"print(some_array[0]) # Prints \"Four\"\n"
"print(some_array[1]) # Prints \"Three,Two,One\"\n"
"[/codeblock]"
msgstr ""
"从右侧开始,通过 [code]delimiter[/code] 字符串拆分字符串并返回子字符串数"
"组。\n"
"返回数组中的拆分按与原始字符串相同的顺序从左到右排序。\n"
"如果指定了 [code]maxsplit[/code],它定义了从右边到 [code]maxsplit[/code] 的分"
"割数。默认值 0 表示所有项目都被拆分,因此给出与 [method split] 相同的结果。\n"
"例子:\n"
"[codeblock]\n"
"var some_string = \"One,Two,Three,Four\"\n"
"var some_array = some_string.rsplit(\",\", true, 1)\n"
"print(some_array.size()) # 打印 2\n"
"print(some_array[0]) # 打印 \"Four\"\n"
"print(some_array[1]) # 打印 \"Three,Two,One\"\n"
"[/codeblock]"

#: doc/classes/String.xml:644
msgid ""
"Returns a copy of the string with characters removed from the right. The "
"[code]chars[/code] argument is a string specifying the set of characters to "
"be removed.\n"
"[b]Note:[/b] The [code]chars[/code] is not a suffix. See [method "
"trim_suffix] method that will remove a single suffix string rather than a "
"set of characters."
msgstr ""

#: doc/classes/String.xml:651
msgid "Returns the SHA-1 hash of the string as an array of bytes."
msgstr "以字节数组的形式返回字符串的 SHA-1 哈希值。"

#: doc/classes/String.xml:657
msgid "Returns the SHA-1 hash of the string as a string."
msgstr "以字符串形式返回字符串的 SHA-1 哈希值。"

#: doc/classes/String.xml:663
msgid "Returns the SHA-256 hash of the string as an array of bytes."
msgstr "以字节数组的形式返回字符串的 SHA-256 哈希值。"

#: doc/classes/String.xml:669
msgid "Returns the SHA-256 hash of the string as a string."
msgstr "以字符串形式返回字符串的 SHA-256 哈希值。"

#: doc/classes/String.xml:676
msgid ""
"Returns the similarity index of the text compared to this string. 1 means "
"totally similar and 0 means totally dissimilar."
msgstr "返回与此字符串相比的文本的相似度指数。 1表示完全相似,0表示完全不同。"

#: doc/classes/String.xml:682
msgid "Returns a simplified canonical path."
msgstr ""

#: doc/classes/String.xml:691
msgid ""
"Splits the string by a [code]delimiter[/code] string and returns an array of "
"the substrings. The [code]delimiter[/code] can be of any length.\n"
"If [code]maxsplit[/code] is specified, it defines the number of splits to do "
"from the left up to [code]maxsplit[/code]. The default value of [code]0[/"
"code] means that all items are split.\n"
"Example:\n"
"[codeblock]\n"
"var some_string = \"One,Two,Three,Four\"\n"
"var some_array = some_string.split(\",\", true, 1)\n"
"print(some_array.size()) # Prints 2\n"
"print(some_array[0]) # Prints \"One\"\n"
"print(some_array[1]) # Prints \"Two,Three,Four\"\n"
"[/codeblock]\n"
"If you need to split strings with more complex rules, use the [RegEx] class "
"instead."
msgstr ""
"通过 [code]delimiter[/code] 字符串拆分字符串并返回子字符串数组。 [code] "
"delimiter [/code] 可以是任意长度。\n"
"如果指定了 [code]maxsplit[/code],它定义了从左边到 [code]maxsplit[/code] 的分"
"割次数。默认值 [code]0[/code] 表示所有项目都被拆分。\n"
"例子:\n"
"[codeblock]\n"
"var some_string = \"One,Two,Three,Four\"\n"
"var some_array = some_string.split(\",\", true, 1)\n"
"print(some_array.size()) # 打印 2\n"
"print(some_array[0]) # 打印 \"One\"\n"
"print(some_array[1]) # 打印 \"Two,Three,Four\"\n"
"[/codeblock]\n"
"如果您需要使用更复杂的规则拆分字符串,请改用 [RegEx] 类。"

#: doc/classes/String.xml:709
msgid ""
"Splits the string in floats by using a delimiter string and returns an array "
"of the substrings.\n"
"For example, [code]\"1,2.5,3\"[/code] will return [code][1,2.5,3][/code] if "
"split by [code]\",\"[/code]."
msgstr ""
"使用分隔符字符串将字符串拆分为浮点数,并返回子字符串数组。\n"
"例如,如果被 [code]\",\"[/code] 分割,[code]\"1,2.5,3\"[/code] 将返回 [code]"
"[1,2.5,3][/code] 。"

#: doc/classes/String.xml:718
msgid ""
"Returns a copy of the string stripped of any non-printable character "
"(including tabulations, spaces and line breaks) at the beginning and the "
"end. The optional arguments are used to toggle stripping on the left and "
"right edges respectively."
msgstr ""
"返回在开头和结尾去除了任何不可打印字符(包括制表符、空格和换行符)的字符串的"
"副本。可选参数分别用于切换左右边缘的删除。"

#: doc/classes/String.xml:724
msgid ""
"Returns a copy of the string stripped of any escape character. These include "
"all non-printable control characters of the first page of the ASCII table (< "
"32), such as tabulation ([code]\\t[/code] in C) and newline ([code]\\n[/"
"code] and [code]\\r[/code]) characters, but not spaces."
msgstr ""
"返回去除了任何转义字符的字符串的副本。这些包括 ASCII 表第一页的所有不可打印控"
"制字符(< 32),例如制表符(C 中的 [code]\\t[/code])和换行符([code]\\n[/"
"code] 和 [code] ]\\r[/code]) 字符,但不是空格。"

#: doc/classes/String.xml:732
msgid ""
"Returns part of the string from the position [code]from[/code] with length "
"[code]len[/code]. Argument [code]len[/code] is optional and using [code]-1[/"
"code] will return remaining characters from given position."
msgstr ""
"从 [code]from[/code] 返回字符串的一部分,长度为 [code]len[/code]。参数 "
"[code]len[/code] 是可选的,使用 [code]-1[/code] 将返回给定位置的剩余字符。"

#: doc/classes/String.xml:738
#, fuzzy
msgid ""
"Converts the String (which is a character array) to [PoolByteArray] (which "
"is an array of bytes). The conversion is faster compared to [method "
"to_utf8], as this method assumes that all the characters in the String are "
"ASCII characters."
msgstr ""
"将 String(它是一个字符数组)转换为 [PackedByteArray](它是一个字节数组)。"
"与 [method to_utf8] 相比,转换速度更快,因为此方法假定 String 中的所有字符都"
"是 ASCII 字符。"

#: doc/classes/String.xml:744
msgid ""
"Converts a string containing a decimal number into a [code]float[/code]."
msgstr "将包含十进制数的字符串转换为 [code]float[/code]。"

#: doc/classes/String.xml:750
msgid ""
"Converts a string containing an integer number into an [code]int[/code]."
msgstr "将包含整数的字符串转换为 [code]int[/code]。"

#: doc/classes/String.xml:756
msgid "Returns the string converted to lowercase."
msgstr "返回转换为小写的字符串。"

#: doc/classes/String.xml:762
msgid "Returns the string converted to uppercase."
msgstr "返回转换为大写的字符串。"

#: doc/classes/String.xml:768
#, fuzzy
msgid ""
"Converts the String (which is an array of characters) to [PoolByteArray] "
"(which is an array of bytes). The conversion is a bit slower than [method "
"to_ascii], but supports all UTF-8 characters. Therefore, you should prefer "
"this function over [method to_ascii]."
msgstr ""
"将字符串(字符数组)转换为 [PackedByteArray](字节数组)。转换比 [method "
"to_ascii] 慢一点,但支持所有 UTF-8 字符。因此,您应该更喜欢这个函数而不是 "
"[method to_ascii]。"

#: doc/classes/String.xml:774
msgid ""
"Converts the String (which is an array of characters) to [PoolByteArray] "
"(which is an array of bytes)."
msgstr ""

#: doc/classes/String.xml:781
msgid ""
"Removes a given string from the start if it starts with it or leaves the "
"string unchanged."
msgstr "如果以一个给定的字符串为开头,则从该字符串中删除,或者不改变该字符串。"

#: doc/classes/String.xml:788
msgid ""
"Removes a given string from the end if it ends with it or leaves the string "
"unchanged."
msgstr "如果以一个给定的字符串为结尾,则从该字符串中删除,或者不改变该字符串。"

#: doc/classes/String.xml:794
#, fuzzy
msgid ""
"Removes any characters from the string that are prohibited in [Node] names "
"([code].[/code] [code]:[/code] [code]@[/code] [code]/[/code] [code]\"[/"
"code])."
msgstr ""
"返回当前日期作为键的字典:[code]year[/code], [code]month[/code], [code]day[/"
"code], [code]weekday[/code], [code]dst[/code](夏令时)。"

#: doc/classes/String.xml:800
msgid ""
"Returns a copy of the string with special characters escaped using the XML "
"standard."
msgstr "返回带有使用 XML 标准转义的特殊字符的字符串的副本。"

#: doc/classes/String.xml:806
msgid ""
"Returns a copy of the string with escaped characters replaced by their "
"meanings according to the XML standard."
msgstr "返回根据 XML 标准将转义字符替换为其含义的字符串副本。"

#: doc/classes/StyleBox.xml:4
msgid "Base class for drawing stylized boxes for the UI."
msgstr "用于为 UI 绘制风格化框的基类。"

#: doc/classes/StyleBox.xml:7
#, fuzzy
msgid ""
"StyleBox is [Resource] that provides an abstract base class for drawing "
"stylized boxes for the UI. StyleBoxes are used for drawing the styles of "
"buttons, line edit backgrounds, tree backgrounds, etc. and also for testing "
"a transparency mask for pointer signals. If mask test fails on a StyleBox "
"assigned as mask to a control, clicks and motion signals will go through it "
"to the one below.\n"
"[b]Note:[/b] For children of [Control] that have [i]Theme Properties[/i], "
"the [code]focus[/code] [StyleBox] is displayed over the [code]normal[/code], "
"[code]hover[/code] or [code]pressed[/code] [StyleBox]. This makes the "
"[code]focus[/code] [StyleBox] more reusable across different nodes."
msgstr ""
"StyleBox 是 [Resource],它提供了一个抽象基类,用于为 UI 绘制风格化的框。 "
"StyleBox 用于绘制按钮样式、线条编辑背景、树背景等,也用于测试指针信号的透明掩"
"码。如果在指定为控件的掩码的 StyleBox 上的掩码测试失败,点击和运动信号将通过"
"它传递到下面的一个。"

#: doc/classes/StyleBox.xml:18
msgid ""
"Draws this stylebox using a [CanvasItem] with given [RID].\n"
"You can get a [RID] value using [method Object.get_instance_id] on a "
"[CanvasItem]-derived node."
msgstr ""
"使用具有给定 [RID] 的 [CanvasItem] 绘制此StyleBox。\n"
"您可以在 [CanvasItem] 派生节点上使用 [method Object.get_instance_id] 获取 "
"[RID] 值。"

#: doc/classes/StyleBox.xml:25
msgid "Returns the size of this [StyleBox] without the margins."
msgstr "返回没有边距的 [StyleBox] 的大小。"

#: doc/classes/StyleBox.xml:31
msgid ""
"Returns the [CanvasItem] that handles its [constant CanvasItem."
"NOTIFICATION_DRAW] or [method CanvasItem._draw] callback at this moment."
msgstr ""
"返回此时处理其 [constant CanvasItem.NOTIFICATION_DRAW] 或 [method CanvasItem."
"_draw] 回调的 [CanvasItem]。"

#: doc/classes/StyleBox.xml:38
msgid "Returns the default value of the specified [enum Margin]."
msgstr "返回指定 [enum Margin] 的默认值。"

#: doc/classes/StyleBox.xml:45
msgid ""
"Returns the content margin offset for the specified [enum Margin].\n"
"Positive values reduce size inwards, unlike [Control]'s margin values."
msgstr ""
"返回指定 [enum Margin] 的内容边距偏移量。\n"
"与 [Control] 的边距值不同,正值会向内减小尺寸。"

#: doc/classes/StyleBox.xml:52
msgid "Returns the minimum size that this stylebox can be shrunk to."
msgstr "返回此StyleBox可以缩小到的最小尺寸。"

#: doc/classes/StyleBox.xml:58
msgid ""
"Returns the \"offset\" of a stylebox. This helper function returns a value "
"equivalent to [code]Vector2(style.get_margin(MARGIN_LEFT), style."
"get_margin(MARGIN_TOP))[/code]."
msgstr ""
"返回样式框的“偏移量”。这个辅助函数返回一个等价于 [code]Vector2(style."
"get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))[/code] 的值。"

#: doc/classes/StyleBox.xml:66
msgid ""
"Sets the default value of the specified [enum Margin] to given [code]offset[/"
"code] in pixels."
msgstr ""
"将指定的 [enum Margin] 的默认值设置为给定的 [code]offset[/code](以像素为单"
"位)。"

#: doc/classes/StyleBox.xml:74
msgid "Test a position in a rectangle, return whether it passes the mask test."
msgstr "测试矩形中的一个位置,返回它是否通过掩码测试。"

#: doc/classes/StyleBox.xml:80
msgid ""
"The bottom margin for the contents of this style box. Increasing this value "
"reduces the space available to the contents from the bottom.\n"
"If this value is negative, it is ignored and a child-specific margin is used "
"instead. For example for [StyleBoxFlat] the border thickness (if any) is "
"used instead.\n"
"It is up to the code using this style box to decide what these contents are: "
"for example, a [Button] respects this content margin for the textual "
"contents of the button.\n"
"[method get_margin] should be used to fetch this value as consumer instead "
"of reading these properties directly. This is because it correctly respects "
"negative values and the fallback mentioned above."
msgstr ""
"此样式框内容的底部边距。增加此值会减少底部内容的可用空间。\n"
"如果此值为负,则将其忽略并改为使用特定于子节点的边距。例如,对于 "
"[StyleBoxFlat],使用边框厚度(如果有)。\n"
"由使用此样式框的代码决定这些内容是什么:例如,[Button] 遵从按钮文本内容的此内"
"容边距。\n"
"[method get_margin] 应该用于作为使用者获取这个值,而不是直接读取这些属性。这"
"是因为它正确地遵从了负值和上述回退。"

#: doc/classes/StyleBox.xml:86
msgid ""
"The left margin for the contents of this style box.Increasing this value "
"reduces the space available to the contents from the left.\n"
"Refer to [member content_margin_bottom] for extra considerations."
msgstr ""
"此stylebox内容的左边距。增加此值会减少左侧内容的可用空间。\n"
"有关额外注意事项,请参阅 [member content_margin_bottom]。"

#: doc/classes/StyleBox.xml:90
msgid ""
"The right margin for the contents of this style box. Increasing this value "
"reduces the space available to the contents from the right.\n"
"Refer to [member content_margin_bottom] for extra considerations."
msgstr ""
"此stylebox内容的右边距。增加此值会减少右侧内容的可用空间。\n"
"有关额外注意事项,请参阅 [member content_margin_bottom]。"

#: doc/classes/StyleBox.xml:94
msgid ""
"The top margin for the contents of this style box. Increasing this value "
"reduces the space available to the contents from the top.\n"
"Refer to [member content_margin_bottom] for extra considerations."
msgstr ""
"这个样式框的内容的上边距。增加这个值可以减少内容从顶部的可用空间。\n"
"请参考[member content_margin_bottom]以获得额外的考虑。"

#: doc/classes/StyleBoxEmpty.xml:4
msgid "Empty stylebox (does not display anything)."
msgstr "空的StyleBox(不显示任何东西)。"

#: doc/classes/StyleBoxEmpty.xml:7
msgid "Empty stylebox (really does not display anything)."
msgstr "空的StyleBox(真的不显示任何东西)。"

#: doc/classes/StyleBoxFlat.xml:4
msgid ""
"Customizable [StyleBox] with a given set of parameters (no texture required)."
msgstr "可自定义 [StyleBox] 与给定参数集 (无需纹理) 。"

#: doc/classes/StyleBoxFlat.xml:7
#, fuzzy
msgid ""
"This [StyleBox] can be used to achieve all kinds of looks without the need "
"of a texture. The following properties are customizable:\n"
"- Color\n"
"- Border width (individual width for each border)\n"
"- Rounded corners (individual radius for each corner)\n"
"- Shadow (with blur and offset)\n"
"Setting corner radius to high values is allowed. As soon as corners overlap, "
"the stylebox will switch to a relative system. Example:\n"
"[codeblock]\n"
"height = 30\n"
"corner_radius_top_left = 50\n"
"corner_radius_bottom_left = 100\n"
"[/codeblock]\n"
"The relative system now would take the 1:2 ratio of the two left corners to "
"calculate the actual corner width. Both corners added will [b]never[/b] be "
"more than the height. Result:\n"
"[codeblock]\n"
"corner_radius_top_left: 10\n"
"corner_radius_bottom_left: 20\n"
"[/codeblock]"
msgstr ""
"这个 [StyleBox] 可以用来实现各种外观,无需纹理。这些属性是可定制的:\n"
"- 颜色\n"
"- 边框宽度(每个边框的单独宽度)\n"
"- 圆角(每个角的单独半径)\n"
"- 阴影(带有模糊和偏移)\n"
"允许将拐角半径设置为高值。一旦角重叠,样式框将切换到相关系统。例子:\n"
"[codeblock]\n"
"height = 30\n"
"corner_radius_top_left = 50\n"
"corner_radius_bottom_left = 100\n"
"[/codeblock]\n"
"相关系统现在将采用两个左角的 1:2 比率来计算实际角宽度。添加的两个角将 [b] 永"
"远 [/b] 不会超过高度。结果:\n"
"[codeblock]\n"
"corner_radius_top_left: 10\n"
"corner_radius_bottom_left: 20\n"
"[/codeblock]"

#: doc/classes/StyleBoxFlat.xml:31
msgid ""
"Returns the given [code]margin[/code]'s border width. See [enum Margin] for "
"possible values."
msgstr ""
"返回给定的 [code]margin[/code] 的边框宽度。有关可能的值,请参阅 [enum "
"Margin]。"

#: doc/classes/StyleBoxFlat.xml:37
msgid "Returns the smallest border width out of all four borders."
msgstr "返回所有四个边界中最小的边框宽度。"

#: doc/classes/StyleBoxFlat.xml:44
msgid ""
"Returns the given [code]corner[/code]'s radius. See [enum Corner] for "
"possible values."
msgstr ""
"返回给定的 [code] corner [/code] 的半径。有关可能的值,请参阅 [enum Corner]。"

#: doc/classes/StyleBoxFlat.xml:51 doc/classes/StyleBoxTexture.xml:16
msgid ""
"Returns the size of the given [code]margin[/code]'s expand margin. See [enum "
"Margin] for possible values."
msgstr ""
"返回给定的[code]margin[/code]的扩展边距的大小。可能的值见[enum Margin]。"

#: doc/classes/StyleBoxFlat.xml:59
msgid ""
"Sets the border width to [code]width[/code] pixels for the given "
"[code]margin[/code]. See [enum Margin] for possible values."
msgstr ""
"用给定的[code]margin[/code]设置边界宽度为[code]width[/code]像素。可能的值见"
"[enum Margin]。"

#: doc/classes/StyleBoxFlat.xml:66
msgid "Sets the border width to [code]width[/code] pixels for all margins."
msgstr "将所有边距的边框宽度设置为 [code]width[/code] 像素。"

#: doc/classes/StyleBoxFlat.xml:74
msgid ""
"Sets the corner radius to [code]radius[/code] pixels for the given "
"[code]corner[/code]. See [enum Corner] for possible values."
msgstr ""
"用给定的[code]corner[/code]设置角的半径为[code]radius[/code]像素。可能的值见"
"[enum Corner]。"

#: doc/classes/StyleBoxFlat.xml:81
msgid "Sets the corner radius to [code]radius[/code] pixels for all corners."
msgstr "将所有角的角半径设置为 [code]radius[/code] 像素。"

#: doc/classes/StyleBoxFlat.xml:91
msgid ""
"Sets the corner radius for each corner to [code]radius_top_left[/code], "
"[code]radius_top_right[/code], [code]radius_bottom_right[/code], and "
"[code]radius_bottom_left[/code] pixels."
msgstr ""
"将每个角的角半径设置为 [code]radius_top_left[/code]、[code]radius_top_right[/"
"code]、[code]radius_bottom_right[/code] 和 [code]radius_bottom_left[/code] 像"
"素。"

#: doc/classes/StyleBoxFlat.xml:99 doc/classes/StyleBoxTexture.xml:48
msgid ""
"Sets the expand margin to [code]size[/code] pixels for the given "
"[code]margin[/code]. See [enum Margin] for possible values."
msgstr ""
"将给定的 [code]margin[/code] 的扩展边距设置为 [code]size[/code] 像素。有关可"
"能的值,请参阅 [enum Margin]。"

#: doc/classes/StyleBoxFlat.xml:106 doc/classes/StyleBoxTexture.xml:30
msgid "Sets the expand margin to [code]size[/code] pixels for all margins."
msgstr "将所有边距的扩展边距设置为 [code]size[/code] 像素。"

#: doc/classes/StyleBoxFlat.xml:116 doc/classes/StyleBoxTexture.xml:40
msgid ""
"Sets the expand margin for each margin to [code]size_left[/code], "
"[code]size_top[/code], [code]size_right[/code], and [code]size_bottom[/code] "
"pixels."
msgstr ""
"将每个边距的扩展边距设置为 [code]size_left[/code]、[code]size_top[/code]、"
"[code]size_right[/code] 和 [code]size_bottom[/code] 像素。"

#: doc/classes/StyleBoxFlat.xml:122
#, fuzzy
msgid ""
"Antialiasing draws a small ring around the edges, which fades to "
"transparency. As a result, edges look much smoother. This is only noticeable "
"when using rounded corners.\n"
"[b]Note:[/b] When using beveled corners with 45-degree angles ([member "
"corner_detail] = 1), it is recommended to set [member anti_aliasing] to "
"[code]false[/code] to ensure crisp visuals and avoid possible visual "
"glitches."
msgstr ""
"抗锯齿在边缘周围绘制一个小环,它逐渐变透明。最后边缘看起来会更加平滑。这仅在"
"使用圆角时才明显。"

#: doc/classes/StyleBoxFlat.xml:126
msgid ""
"This changes the size of the faded ring. Higher values can be used to "
"achieve a \"blurry\" effect."
msgstr "这将改变褪色环的大小。更高的数值可以用来实现 \"模糊 \"的效果。"

#: doc/classes/StyleBoxFlat.xml:129
msgid "The background color of the stylebox."
msgstr "StyleBox的背景颜色。"

#: doc/classes/StyleBoxFlat.xml:132
msgid "If [code]true[/code], the border will fade into the background color."
msgstr "如果[code]true[/code],边框会淡入背景色。"

#: doc/classes/StyleBoxFlat.xml:135
msgid "Sets the color of the border."
msgstr "设置边框的颜色。"

#: doc/classes/StyleBoxFlat.xml:138
msgid "Border width for the bottom border."
msgstr "底部边框的宽度。"

#: doc/classes/StyleBoxFlat.xml:141
msgid "Border width for the left border."
msgstr "左边框的宽度。"

#: doc/classes/StyleBoxFlat.xml:144
msgid "Border width for the right border."
msgstr "右边框的宽度。"

#: doc/classes/StyleBoxFlat.xml:147
msgid "Border width for the top border."
msgstr "顶部边框的宽度。"

#: doc/classes/StyleBoxFlat.xml:150
#, fuzzy
msgid ""
"This sets the number of vertices used for each corner. Higher values result "
"in rounder corners but take more processing power to compute. When choosing "
"a value, you should take the corner radius ([method set_corner_radius_all]) "
"into account.\n"
"For corner radii less than 10, [code]4[/code] or [code]5[/code] should be "
"enough. For corner radii less than 30, values between [code]8[/code] and "
"[code]12[/code] should be enough.\n"
"A corner detail of [code]1[/code] will result in chamfered corners instead "
"of rounded corners, which is useful for some artistic effects."
msgstr ""
"这将设置用于每个角的顶点数量。更高的值会形成更圆的角,但需要更多的处理能力来"
"计算。选择值时,应考虑角半径([method set_corner_radius_all])。\n"
"对于小于 10 的角半径,[code]4[/code] 或 [code]5[/code] 应该就足够了。对于小"
"于 30 的角半径,[code]8[/code] 和 [code]12[/code] 之间的值应该足够了。\n"
"[code]1[/code]的corner detail 会导致倒角而不是圆角,这对于某些艺术效果很有"
"用。"

#: doc/classes/StyleBoxFlat.xml:155
msgid ""
"The bottom-left corner's radius. If [code]0[/code], the corner is not "
"rounded."
msgstr "左下角的半径。如果[code]0[/code],则角不圆滑。"

#: doc/classes/StyleBoxFlat.xml:158
msgid ""
"The bottom-right corner's radius. If [code]0[/code], the corner is not "
"rounded."
msgstr "右下角的半径。如果[code]0[/code],则角不圆滑。"

#: doc/classes/StyleBoxFlat.xml:161
msgid ""
"The top-left corner's radius. If [code]0[/code], the corner is not rounded."
msgstr "左上角的半径。如果[code]0[/code],则角不圆滑。"

#: doc/classes/StyleBoxFlat.xml:164
msgid ""
"The top-right corner's radius. If [code]0[/code], the corner is not rounded."
msgstr "右上角的半径。如果[code]0[/code],则角不圆滑。"

#: doc/classes/StyleBoxFlat.xml:167
msgid "Toggles drawing of the inner part of the stylebox."
msgstr "切换绘制StyleBox的内部部分。"

#: doc/classes/StyleBoxFlat.xml:170
msgid ""
"Expands the stylebox outside of the control rect on the bottom edge. Useful "
"in combination with [member border_width_bottom] to draw a border outside "
"the control rect."
msgstr ""
"在底部边缘的控件矩形之外扩展StyleBox。与 [member border_width_bottom] 结合使"
"用可在控件 rect 外绘制边框。"

#: doc/classes/StyleBoxFlat.xml:173
msgid ""
"Expands the stylebox outside of the control rect on the left edge. Useful in "
"combination with [member border_width_left] to draw a border outside the "
"control rect."
msgstr ""
"在左边缘的控件矩形之外扩展StyleBox。与 [member border_width_left] 结合使用可"
"在控件矩形外绘制边框。"

#: doc/classes/StyleBoxFlat.xml:176
msgid ""
"Expands the stylebox outside of the control rect on the right edge. Useful "
"in combination with [member border_width_right] to draw a border outside the "
"control rect."
msgstr ""
"在右边缘的控件矩形之外扩展StyleBox。与 [member border_width_right] 结合使用可"
"在控件矩形外绘制边框。"

#: doc/classes/StyleBoxFlat.xml:179
msgid ""
"Expands the stylebox outside of the control rect on the top edge. Useful in "
"combination with [member border_width_top] to draw a border outside the "
"control rect."
msgstr ""
"在顶部边缘的控件矩形之外扩展StyleBox。与 [member border_width_top] 结合使用可"
"在控件 rect 外绘制边框。"

#: doc/classes/StyleBoxFlat.xml:182
msgid ""
"The color of the shadow. This has no effect if [member shadow_size] is lower "
"than 1."
msgstr "阴影的颜色。如果 [member shadow_size] 小于 1,这将不起作用。"

#: doc/classes/StyleBoxFlat.xml:185
msgid ""
"The shadow offset in pixels. Adjusts the position of the shadow relatively "
"to the stylebox."
msgstr "以像素为单位的阴影偏移。相对于StyleBox调整阴影的位置。"

#: doc/classes/StyleBoxFlat.xml:188
msgid "The shadow size in pixels."
msgstr "以像素为单位的阴影大小。"

#: doc/classes/StyleBoxLine.xml:4
msgid "[StyleBox] that displays a single line."
msgstr "显示单线的 [StyleBox] 。"

#: doc/classes/StyleBoxLine.xml:7
msgid ""
"[StyleBox] that displays a single line of a given color and thickness. It "
"can be used to draw things like separators."
msgstr "显示给定颜色和粗细的单线[StyleBox] 。它可用于绘制分隔符之类的东西。"

#: doc/classes/StyleBoxLine.xml:15
msgid "The line's color."
msgstr "线的颜色。"

#: doc/classes/StyleBoxLine.xml:18
msgid ""
"The number of pixels the line will extend before the [StyleBoxLine]'s "
"bounds. If set to a negative value, the line will begin inside the "
"[StyleBoxLine]'s bounds."
msgstr ""
"线将在 [StyleBoxLine] 的边界之前延伸的像素数。如果设置为负值,则该线将从 "
"[StyleBoxLine] 的边界内开始。"

#: doc/classes/StyleBoxLine.xml:21
msgid ""
"The number of pixels the line will extend past the [StyleBoxLine]'s bounds. "
"If set to a negative value, the line will end inside the [StyleBoxLine]'s "
"bounds."
msgstr ""
"线将超出 [StyleBoxLine] 边界的像素数。如果设置为负值,则该线将在 "
"[StyleBoxLine] 的边界内结束。"

#: doc/classes/StyleBoxLine.xml:24
msgid "The line's thickness in pixels."
msgstr "线条的粗细(以像素为单位)。"

#: doc/classes/StyleBoxLine.xml:27
msgid ""
"If [code]true[/code], the line will be vertical. If [code]false[/code], the "
"line will be horizontal."
msgstr ""
"如果 [code]true[/code],则该线将是垂直的。如果 [code]false[/code],该线将是水"
"平的。"

#: doc/classes/StyleBoxTexture.xml:4
msgid "Texture-based nine-patch [StyleBox]."
msgstr "基于纹理的九宫格[StyleBox]。"

#: doc/classes/StyleBoxTexture.xml:7
msgid ""
"Texture-based nine-patch [StyleBox], in a way similar to [NinePatchRect]. "
"This stylebox performs a 3×3 scaling of a texture, where only the center "
"cell is fully stretched. This makes it possible to design bordered styles "
"regardless of the stylebox's size."
msgstr ""
"基于纹理的九宫格 [StyleBox],类似于 [NinePatchRect]。这个样式框对纹理执行 "
"3×3 缩放,其中只有中心单元被完全拉伸。这使得无论样式框的大小如何,都可以设计"
"有边框的样式。"

#: doc/classes/StyleBoxTexture.xml:23
msgid ""
"Returns the size of the given [code]margin[/code]. See [enum Margin] for "
"possible values."
msgstr ""
"返回给定 [code]margin[/code] 的大小。有关可能的值,请参阅 [enum Margin]。"

#: doc/classes/StyleBoxTexture.xml:56
msgid ""
"Sets the margin to [code]size[/code] pixels for the given [code]margin[/"
"code]. See [enum Margin] for possible values."
msgstr ""
"将给定的 [code]margin[/code] 的边距设置为 [code]size[/code] 像素。有关可能的"
"值,请参阅 [enum Margin]。"

#: doc/classes/StyleBoxTexture.xml:62
msgid ""
"Controls how the stylebox's texture will be stretched or tiled horizontally. "
"See [enum AxisStretchMode] for possible values."
msgstr ""
"控制如何水平拉伸或平铺样式框的纹理。有关可能的值,请参阅 [enum "
"AxisStretchMode]。"

#: doc/classes/StyleBoxTexture.xml:65
msgid ""
"Controls how the stylebox's texture will be stretched or tiled vertically. "
"See [enum AxisStretchMode] for possible values."
msgstr ""
"控制如何垂直拉伸或平铺StyleBox的纹理。有关可能的值,请参阅 [enum "
"AxisStretchMode]。"

#: doc/classes/StyleBoxTexture.xml:68
msgid ""
"If [code]true[/code], the nine-patch texture's center tile will be drawn."
msgstr "如果[code]true[/code],将绘制九宫格纹理的中心瓦片。"

#: doc/classes/StyleBoxTexture.xml:71
msgid ""
"Expands the bottom margin of this style box when drawing, causing it to be "
"drawn larger than requested."
msgstr "绘制时扩展此样式框的底部边距,使其绘制得比请求的大。"

#: doc/classes/StyleBoxTexture.xml:74
msgid ""
"Expands the left margin of this style box when drawing, causing it to be "
"drawn larger than requested."
msgstr "绘制时扩展此样式框的左边距,使其绘制得比请求的大。"

#: doc/classes/StyleBoxTexture.xml:77
msgid ""
"Expands the right margin of this style box when drawing, causing it to be "
"drawn larger than requested."
msgstr "绘制时扩展此样式框的右边距,使其绘制得比请求的大。"

#: doc/classes/StyleBoxTexture.xml:80
msgid ""
"Expands the top margin of this style box when drawing, causing it to be "
"drawn larger than requested."
msgstr "绘制时扩展此样式框的上边距,使其绘制得比请求的大。"

#: doc/classes/StyleBoxTexture.xml:83
msgid ""
"Increases the bottom margin of the 3×3 texture box.\n"
"A higher value means more of the source texture is considered to be part of "
"the bottom border of the 3×3 box.\n"
"This is also the value used as fallback for [member StyleBox."
"content_margin_bottom] if it is negative."
msgstr ""
"增加3×3 StyleBox的底边距。\n"
"更高的值意味着更多的源纹理被认为是3×3 box的底边的一部分。\n"
"如果[member StyleBox.content_margin_bottom]为负值,这个值也是作为后备值使用。"

#: doc/classes/StyleBoxTexture.xml:88
msgid ""
"Increases the left margin of the 3×3 texture box.\n"
"A higher value means more of the source texture is considered to be part of "
"the left border of the 3×3 box.\n"
"This is also the value used as fallback for [member StyleBox."
"content_margin_left] if it is negative."
msgstr ""
"增加 3×3 StyleBox的左边距。\n"
"较高的值意味着更多的源纹理被认为是 3×3 box左边框的一部分。\n"
"如果[member StyleBox.content_margin_left]为负值,这个值也是作为后备值使用。"

#: doc/classes/StyleBoxTexture.xml:93
msgid ""
"Increases the right margin of the 3×3 texture box.\n"
"A higher value means more of the source texture is considered to be part of "
"the right border of the 3×3 box.\n"
"This is also the value used as fallback for [member StyleBox."
"content_margin_right] if it is negative."
msgstr ""
"增加 3×3 StyleBox的右边距。\n"
"较高的值意味着更多的源纹理被认为是 3×3 box右边框的一部分。\n"
"如果[member StyleBox.content_margin_right]为负值,这个值也是作为后备值使用。"

#: doc/classes/StyleBoxTexture.xml:98
msgid ""
"Increases the top margin of the 3×3 texture box.\n"
"A higher value means more of the source texture is considered to be part of "
"the top border of the 3×3 box.\n"
"This is also the value used as fallback for [member StyleBox."
"content_margin_top] if it is negative."
msgstr ""
"增加 3×3 StyleBox的上边距。\n"
"较高的值意味着更多的源纹理被认为是 3×3 box上边框的一部分。\n"
"如果[member StyleBox.content_margin_top]为负值,这个值也是作为后备值使用。"

#: doc/classes/StyleBoxTexture.xml:103
msgid "Modulates the color of the texture when this style box is drawn."
msgstr "绘制此样式框时调制纹理的颜色。"

#: doc/classes/StyleBoxTexture.xml:106
msgid ""
"The normal map to use when drawing this style box.\n"
"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
"See [url=http://wiki.polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
"a comparison of normal map coordinates expected by popular engines."
msgstr ""
"绘制此StyleBox时使用的法线贴图。\n"
"[b]注:[/b] Godot 期望法线贴图使用 X+、Y- 和 Z+ 坐标。参见[url=http://wiki."
"polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]这"
"个页面[/url] 比较流行引擎所期望的法线地图坐标。"

#: doc/classes/StyleBoxTexture.xml:110
msgid ""
"Species a sub-region of the texture to use.\n"
"This is equivalent to first wrapping the texture in an [AtlasTexture] with "
"the same region."
msgstr ""
"指定要使用的纹理的子区域。\n"
"这相当于首先将纹理包裹在具有相同区域的 [AtlasTexture] 中。"

#: doc/classes/StyleBoxTexture.xml:114
msgid "The texture to use when drawing this style box."
msgstr "绘制此Style时要使用的纹理。"

#: doc/classes/StyleBoxTexture.xml:120
msgid "Emitted when the stylebox's texture is changed."
msgstr "当stylebox的纹理被改变时发出。"

#: doc/classes/StyleBoxTexture.xml:126
msgid ""
"Stretch the stylebox's texture. This results in visible distortion unless "
"the texture size matches the stylebox's size perfectly."
msgstr ""
"拉伸样式框的纹理。这会导致可见的失真,除非纹理大小与样式框的大小完美匹配。"

#: doc/classes/StyleBoxTexture.xml:129
msgid ""
"Repeats the stylebox's texture to match the stylebox's size according to the "
"nine-patch system."
msgstr "根据九宫格,重复样式框的纹理,以匹配样式框的大小。"

#: doc/classes/StyleBoxTexture.xml:132
msgid ""
"Repeats the stylebox's texture to match the stylebox's size according to the "
"nine-patch system. Unlike [constant AXIS_STRETCH_MODE_TILE], the texture may "
"be slightly stretched to make the nine-patch texture tile seamlessly."
msgstr ""
"根据九宫格重复样式框的纹理以匹配样式框的大小。与 [constant "
"AXIS_STRETCH_MODE_TILE] 不同,纹理可能会稍微拉伸以使九宫格纹理平铺无缝。"

#: doc/classes/SurfaceTool.xml:4
msgid "Helper tool to create geometry."
msgstr "创建几何图形的辅助工具。"

#: doc/classes/SurfaceTool.xml:7
#, fuzzy
msgid ""
"The [SurfaceTool] is used to construct a [Mesh] by specifying vertex "
"attributes individually. It can be used to construct a [Mesh] from a script. "
"All properties except indices need to be added before calling [method "
"add_vertex]. For example, to add vertex colors and UVs:\n"
"[codeblock]\n"
"var st = SurfaceTool.new()\n"
"st.begin(Mesh.PRIMITIVE_TRIANGLES)\n"
"st.add_color(Color(1, 0, 0))\n"
"st.add_uv(Vector2(0, 0))\n"
"st.add_vertex(Vector3(0, 0, 0))\n"
"[/codeblock]\n"
"The above [SurfaceTool] now contains one vertex of a triangle which has a UV "
"coordinate and a specified [Color]. If another vertex were added without "
"calling [method add_uv] or [method add_color], then the last values would be "
"used.\n"
"Vertex attributes must be passed [b]before[/b] calling [method add_vertex]. "
"Failure to do so will result in an error when committing the vertex "
"information to a mesh.\n"
"Additionally, the attributes used before the first vertex is added determine "
"the format of the mesh. For example, if you only add UVs to the first "
"vertex, you cannot add color to any of the subsequent vertices.\n"
"See also [ArrayMesh], [ImmediateGeometry] and [MeshDataTool] for procedural "
"geometry generation.\n"
"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
"OpenGL/Face-culling]winding order[/url] for front faces of triangle "
"primitive modes."
msgstr ""
"[SurfaceTool] 用于通过单独指定顶点属性来构建 [Mesh]。它可用于从脚本构建 "
"[Mesh]。在调用 [method add_vertex] 之前,需要添加除索引以外的所有属性。例如,"
"要添加顶点颜色和 UV:\n"
"[codeblock]\n"
"var st = SurfaceTool.new()\n"
"st.begin(Mesh.PRIMITIVE_TRIANGLES)\n"
"st.add_color(Color(1, 0, 0))\n"
"st.add_uv(Vector2(0, 0))\n"
"st.add_vertex(Vector3(0, 0, 0))\n"
"[/codeblock]\n"
"上面的 [SurfaceTool] 现在包含一个三角形的顶点,它具有 UV 坐标和指定的 "
"[Color]。如果在没有调用 [method add_uv] 或 [method add_color] 的情况下添加了"
"另一个顶点,则将使用最后一个值。\n"
"顶点属性必须在调用[method add_vertex][b]之前[/b]传递[b]。如果不这样做,将在将"
"顶点信息提交到网格时会导致错误。\n"
"此外,在添加第一个顶点之前使用的属性决定了网格的格式。例如,如果仅向第一个顶"
"点添加 UV,则无法向任何后续顶点添加颜色。\n"
"另请参阅 [ArrayMesh]、[ImmediateGeometry3D] 和 [MeshDataTool] 以了解程序几何"
"生成。\n"
"[b]注意:[/b]Godot使用顺时针[url=https://learnopengl.com/Advanced-OpenGL/"
"Face-culling]缠绕顺序[/url]用于三角形基元模式的正面。"

#: doc/classes/SurfaceTool.xml:29
#, fuzzy
msgid ""
"Specifies an array of bones to use for the [i]next[/i] vertex. [code]bones[/"
"code] must contain 4 integers."
msgstr ""
"为下一个要使用的顶点添加一组骨骼。 [code]bones[/code] 必须包含 4 个整数。"

#: doc/classes/SurfaceTool.xml:36
msgid ""
"Specifies a [Color] to use for the [i]next[/i] vertex. If every 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.\n"
"[b]Note:[/b] The material must have [member SpatialMaterial."
"vertex_color_use_as_albedo] enabled for the vertex color to be visible."
msgstr ""

#: doc/classes/SurfaceTool.xml:44
msgid ""
"Adds an index to index array if you are using indexed vertices. Does not "
"need to be called before adding vertices."
msgstr "如果您使用索引顶点,则向索引数组添加索引。在添加顶点之前不需要调用。"

#: doc/classes/SurfaceTool.xml:51
msgid ""
"Specifies a normal to use for the [i]next[/i] vertex. If every 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 ""

#: doc/classes/SurfaceTool.xml:58
msgid ""
"Specifies whether the current vertex (if using only vertex arrays) or "
"current index (if also using index arrays) should use smooth normals for "
"normal calculation."
msgstr ""
"指定当前顶点(如果仅使用顶点数组)或当前索引(如果还使用索引数组)是否应使用"
"平滑法线进行法线计算。"

#: doc/classes/SurfaceTool.xml:65
msgid ""
"Specifies a tangent to use for the [i]next[/i] vertex. If every 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 ""

#: doc/classes/SurfaceTool.xml:77
msgid ""
"Inserts a triangle fan made of array data into [Mesh] being constructed.\n"
"Requires the primitive type be set to [constant Mesh.PRIMITIVE_TRIANGLES]."
msgstr ""
"将一个由数组数据组成的三角扇插入正在构建的 [Mesh] 中。\n"
"需要将基本类型设置为 [constant Mesh.PRIMITIVE_TRIANGLES]。"

#: doc/classes/SurfaceTool.xml:85
msgid ""
"Specifies a set of UV coordinates to use for the [i]next[/i] vertex. If "
"every 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 ""

#: doc/classes/SurfaceTool.xml:92
msgid ""
"Specifies an optional second set of UV coordinates to use for the [i]next[/"
"i] vertex. If every 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 ""

#: doc/classes/SurfaceTool.xml:99
msgid ""
"Specifies the position of current vertex. Should be called after specifying "
"other vertex properties (e.g. Color, UV)."
msgstr "指定当前顶点的位置。应在指定其他顶点属性(例如颜色、UV)后调用。"

#: doc/classes/SurfaceTool.xml:106
msgid ""
"Specifies weight values to use for the [i]next[/i] vertex. [code]weights[/"
"code] must contain 4 values. If every 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 ""

#: doc/classes/SurfaceTool.xml:115
msgid ""
"Append vertices from a given [Mesh] surface onto the current vertex array "
"with specified [Transform]."
msgstr "将给定 [Mesh] 表面的顶点附加到具有指定 [Transform] 的当前顶点数组。"

#: doc/classes/SurfaceTool.xml:122
msgid ""
"Called before adding any vertices. Takes the primitive type as an argument "
"(e.g. [constant Mesh.PRIMITIVE_TRIANGLES])."
msgstr ""
"在添加任何顶点之前被调用。接收原始类型作为参数(例如:原始三角形[constant "
"Mesh.PRIMITIVE_TRIANGLES])。"

#: doc/classes/SurfaceTool.xml:128
msgid "Clear all information passed into the surface tool so far."
msgstr "清除到目前为止传入表面工具(surface tool)的所有信息。"

#: doc/classes/SurfaceTool.xml:136
#, fuzzy
msgid ""
"Returns a constructed [ArrayMesh] from current information passed in. If an "
"existing [ArrayMesh] is passed in as an argument, will add an extra surface "
"to the existing [ArrayMesh].\n"
"Default flag is [constant Mesh.ARRAY_COMPRESS_DEFAULT] if compression is "
"enabled. If compression is disabled the default flag is [constant Mesh."
"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION]. See [code]ARRAY_COMPRESS_*[/code] "
"constants in [enum Mesh.ArrayFormat] for other flags."
msgstr ""
"从传入的当前信息返回构造的 [ArrayMesh]。如果现有的 [ArrayMesh] 作为参数传入,"
"则会向现有的 [ArrayMesh] 添加额外的表面。\n"
"默认标志是 [constant Mesh.ARRAY_COMPRESS_DEFAULT]。有关其他标志,请参阅 "
"[enum Mesh.ArrayFormat] 中的 [code]ARRAY_COMPRESS_*[/code] 常量。"

#: doc/classes/SurfaceTool.xml:143
msgid ""
"Commits the data to the same format used by [method ArrayMesh."
"add_surface_from_arrays]. This way you can further process the mesh data "
"using the [ArrayMesh] API."
msgstr ""
"将数据提交给[method ArrayMesh.add_surface_from_arrays]使用的相同格式。这样你"
"就可以使用[ArrayMesh]的API接口进一步处理网格数据。"

#: doc/classes/SurfaceTool.xml:151
msgid "Creates a vertex array from an existing [Mesh]."
msgstr "从现有的网格 [Mesh] 创建一个顶点数组。"

#: doc/classes/SurfaceTool.xml:160
msgid ""
"Creates a vertex array from the specified blend shape of an existing [Mesh]. "
"This can be used to extract a specific pose from a blend shape."
msgstr ""
"从现有 [Mesh] 的指定混合形状创建一个顶点数组。这可用于从混合形状中提取特定姿"
"势。"

#: doc/classes/SurfaceTool.xml:166
msgid "Removes the index array by expanding the vertex array."
msgstr "通过扩展顶点数组移除索引数组。"

#: doc/classes/SurfaceTool.xml:173
msgid ""
"Generates normals from vertices so you do not have to do it manually. If "
"[code]flip[/code] is [code]true[/code], the resulting normals will be "
"inverted. [method generate_normals] should be called [i]after[/i] generating "
"geometry and [i]before[/i] committing the mesh using [method commit] or "
"[method commit_to_arrays]. For correct display of normal-mapped surfaces, "
"you will also have to generate tangents using [method generate_tangents].\n"
"[b]Note:[/b] [method generate_normals] only works if the primitive type to "
"be set to [constant Mesh.PRIMITIVE_TRIANGLES]."
msgstr ""

#: doc/classes/SurfaceTool.xml:180
#, fuzzy
msgid ""
"Generates a tangent vector for each vertex. Requires that each vertex have "
"UVs and normals set already (see [method generate_normals])."
msgstr "为每个顶点生成一个切向量。要求每个顶点都已经设置了 UV 和法线。"

#: doc/classes/SurfaceTool.xml:186
#, fuzzy
msgid ""
"Shrinks the vertex array by creating an index array. This can improve "
"performance by avoiding vertex reuse."
msgstr "通过创建索引阵列(避免重复使用顶点)收缩顶点阵列。"

#: doc/classes/SurfaceTool.xml:193
msgid "Sets [Material] to be used by the [Mesh] you are constructing."
msgstr "设置要由您正在构建的 [Mesh] 使用的 [Material]。"

#: doc/classes/TabContainer.xml:4
msgid "Tabbed container."
msgstr "标签容器。"

#: doc/classes/TabContainer.xml:7
#, fuzzy
msgid ""
"Sets the active tab's [code]visible[/code] property to the value [code]true[/"
"code]. Sets all other children's to [code]false[/code].\n"
"Ignores non-[Control] children."
msgstr ""
"当前标签索引。设置后,此索引的 [Control] 节点的 [code]visible[/code] 属性设置"
"为 [code]true[/code],其他所有设置为 [code]false[/code]。"

#: doc/classes/TabContainer.xml:16
msgid "Returns the child [Control] node located at the active tab index."
msgstr "返回位于活动选项卡索引处的子 [Control] 节点。"

#: doc/classes/TabContainer.xml:22
msgid ""
"Returns the [Popup] node instance if one has been set already with [method "
"set_popup]."
msgstr ""
"如果已经使用 [method set_popup] 设置了节点实例,则返回 [Popup] 节点实例。"

#: doc/classes/TabContainer.xml:28 doc/classes/Tabs.xml:36
msgid "Returns the previously active tab index."
msgstr "返回以前已激活的选项卡索引。"

#: doc/classes/TabContainer.xml:35
msgid "Returns the [Control] node from the tab at index [code]tab_idx[/code]."
msgstr "从索引 [code]tab_idx[/code] 处的选项卡返回 [Control] 节点。"

#: doc/classes/TabContainer.xml:41 doc/classes/Tabs.xml:48
msgid "Returns the number of tabs."
msgstr "返回选项卡的数量。"

#: doc/classes/TabContainer.xml:48 doc/classes/Tabs.xml:55
msgid ""
"Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is "
"disabled."
msgstr ""
"如果索引 [code]tab_idx[/code] 处的选项卡被禁用,则返回 [code]true[/code]。"

#: doc/classes/TabContainer.xml:55
#, fuzzy
msgid ""
"Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is hidden."
msgstr ""
"如果索引 [code]tab_idx[/code] 处的选项卡被禁用,则返回 [code]true[/code]。"

#: doc/classes/TabContainer.xml:62 doc/classes/Tabs.xml:62
#, fuzzy
msgid ""
"Returns the [Texture] for the tab at index [code]tab_idx[/code] or "
"[code]null[/code] if the tab has no [Texture]."
msgstr ""
"如果选项卡没有 [Texture2D],则返回索引 [code]tab_idx[/code] 或 [code]null[/"
"code] 处的选项卡的 [Texture2D]。"

#: doc/classes/TabContainer.xml:69
msgid ""
"Returns the index of the tab at local coordinates [code]point[/code]. "
"Returns [code]-1[/code] if the point is outside the control boundaries or if "
"there's no tab at the queried position."
msgstr ""

#: doc/classes/TabContainer.xml:76
msgid ""
"Returns the title of the tab at index [code]tab_idx[/code]. Tab titles "
"default to the name of the indexed child node, but this can be overridden "
"with [method set_tab_title]."
msgstr ""
"返回索引 [code]tab_idx[/code] 处的选项卡的标题。标签标题默认为索引子节点的名"
"称,但这可以用 [method set_tab_title] 覆盖。"

#: doc/classes/TabContainer.xml:82
msgid "Returns the [TabContainer] rearrange group id."
msgstr "返回 [TabContainer] 重新排列组 ID。"

#: doc/classes/TabContainer.xml:89
msgid ""
"If set on a [Popup] node instance, a popup menu icon appears in the top-"
"right corner of the [TabContainer]. Clicking it will expand the [Popup] node."
msgstr ""
"如果在 [Popup] 节点实例上设置,则在 [TabContainer] 的右上角会出现一个弹出菜单"
"图标。单击它会展开 [Popup] 节点。"

#: doc/classes/TabContainer.xml:97 doc/classes/Tabs.xml:118
#, fuzzy
msgid ""
"If [code]disabled[/code] is [code]true[/code], disables the tab at index "
"[code]tab_idx[/code], making it non-interactable."
msgstr ""
"如果索引 [code]tab_idx[/code] 处的选项卡被禁用,则返回 [code]true[/code]。"

#: doc/classes/TabContainer.xml:105
#, fuzzy
msgid ""
"If [code]hidden[/code] is [code]true[/code], hides the tab at index "
"[code]tab_idx[/code], making it disappear from the tab area."
msgstr ""
"如果索引 [code]tab_idx[/code] 处的选项卡被禁用,则返回 [code]true[/code]。"

#: doc/classes/TabContainer.xml:113
msgid "Sets an icon for the tab at index [code]tab_idx[/code]."
msgstr "为索引 [code]tab_idx[/code] 处的选项卡设置图标。"

#: doc/classes/TabContainer.xml:121
#, fuzzy
msgid ""
"Sets a title for the tab at index [code]tab_idx[/code]. Tab titles default "
"to the name of the indexed child node."
msgstr ""
"为索引 [code]tab_idx[/code] 处的选项卡设置标题。标签标题默认为索引子节点的名"
"称,但这可以用 [method set_tab_title] 覆盖。"

#: doc/classes/TabContainer.xml:128
#, fuzzy
msgid ""
"Defines rearrange group id, choose for each [TabContainer] the same value to "
"enable tab drag between [TabContainer]. Enable drag with [member "
"drag_to_rearrange_enabled]."
msgstr ""
"定义重新排列组id,为每个[TabContainer]选择相同的值以启用[TabContainer]之间的"
"标签拖动。使用 [code]set_drag_to_rearrange_enabled(true)[/code] 启用拖动。"

#: doc/classes/TabContainer.xml:134
#, fuzzy
msgid ""
"If [code]true[/code], all tabs are drawn in front of the panel. If "
"[code]false[/code], inactive tabs are drawn behind the panel."
msgstr ""
"如果 [code]true[/code],选项卡可见。如果 [code]false[/code],选项卡的内容和标"
"题被隐藏。"

#: doc/classes/TabContainer.xml:137
msgid ""
"The current tab index. When set, this index's [Control] node's "
"[code]visible[/code] property is set to [code]true[/code] and all others are "
"set to [code]false[/code]."
msgstr ""
"当前标签索引。设置后,此索引的 [Control] 节点的 [code]visible[/code] 属性设置"
"为 [code]true[/code],其他所有设置为 [code]false[/code]。"

#: doc/classes/TabContainer.xml:140 doc/classes/Tabs.xml:150
msgid "If [code]true[/code], tabs can be rearranged with mouse drag."
msgstr "如果 [code]true[/code],可以通过鼠标拖动重新排列选项卡。"

#: doc/classes/TabContainer.xml:143
msgid ""
"The alignment of all tabs in the tab container. See the [enum TabAlign] "
"constants for details."
msgstr ""
"选项卡容器中所有选项卡的对齐方式。有关详细信息,请参阅 [enum TabAlign] 常量。"

#: doc/classes/TabContainer.xml:146
msgid ""
"If [code]true[/code], tabs are visible. If [code]false[/code], tabs' content "
"and titles are hidden."
msgstr ""
"如果 [code]true[/code],选项卡可见。如果 [code]false[/code],选项卡的内容和标"
"题被隐藏。"

#: doc/classes/TabContainer.xml:149
msgid ""
"If [code]true[/code], children [Control] nodes that are hidden have their "
"minimum size take into account in the total, instead of only the currently "
"visible one."
msgstr ""
"如果 [code]true[/code],隐藏的子 [Control] 节点在总数中考虑其最小大小,而不是"
"仅考虑当前可见的一个。"

#: doc/classes/TabContainer.xml:155
msgid ""
"Emitted when the [TabContainer]'s [Popup] button is clicked. See [method "
"set_popup] for details."
msgstr ""
"单击 [TabContainer] 的 [Popup] 按钮时发出。有关详细信息,请参阅 [method "
"set_popup]。"

#: doc/classes/TabContainer.xml:161 doc/classes/Tabs.xml:178
msgid "Emitted when switching to another tab."
msgstr "切换到另一个选项卡时发出。"

#: doc/classes/TabContainer.xml:167
msgid "Emitted when a tab is selected, even if it is the current tab."
msgstr "选择选项卡时发出,即使它是当前选项卡。"

#: doc/classes/TabContainer.xml:173 doc/classes/Tabs.xml:202
msgid "Align the tabs to the left."
msgstr "将选项卡对齐到左侧。"

#: doc/classes/TabContainer.xml:176 doc/classes/Tabs.xml:205
msgid "Align the tabs to the center."
msgstr "将选项卡对齐到中心。"

#: doc/classes/TabContainer.xml:179 doc/classes/Tabs.xml:208
msgid "Align the tabs to the right."
msgstr "将标签对齐到右侧。"

#: doc/classes/TabContainer.xml:184 doc/classes/Tabs.xml:237
msgid ""
"Icon for the left arrow button that appears when there are too many tabs to "
"fit in the container width. When the button is disabled (i.e. the first tab "
"is visible), it appears semi-transparent."
msgstr ""
"左边的箭头按钮的图标,当有太多的标签无法容纳在容器的宽度内时出现。当该按钮被"
"禁用时(即第一个标签是可见的),它显示为半透明的。"

#: doc/classes/TabContainer.xml:187 doc/classes/Tabs.xml:240
msgid ""
"Icon for the left arrow button that appears when there are too many tabs to "
"fit in the container width. Used when the button is being hovered with the "
"cursor."
msgstr ""
"当标签太多无法适应容器宽度时出现的左箭头按钮图标。当鼠标悬停在按钮上时使用。"

#: doc/classes/TabContainer.xml:190 doc/classes/Tabs.xml:243
msgid "The font used to draw tab names."
msgstr "用于绘制选项卡名称的字体。"

#: doc/classes/TabContainer.xml:193 doc/classes/Tabs.xml:246
msgid "Font color of inactive tabs."
msgstr "非活动标签的字体颜色。"

#: doc/classes/TabContainer.xml:196 doc/classes/Tabs.xml:249
msgid "Font color of disabled tabs."
msgstr "禁用选项卡的字体颜色。"

#: doc/classes/TabContainer.xml:199 doc/classes/Tabs.xml:252
msgid "Font color of the currently selected tab."
msgstr "当前所选选项卡的字体颜色。"

#: doc/classes/TabContainer.xml:202
#, fuzzy
msgid "Horizontal separation between tabs."
msgstr "选项卡之间的水平间隔。"

#: doc/classes/TabContainer.xml:205 doc/classes/Tabs.xml:258
msgid ""
"Icon for the right arrow button that appears when there are too many tabs to "
"fit in the container width. When the button is disabled (i.e. the last tab "
"is visible) it appears semi-transparent."
msgstr ""
"右箭头按钮的图标,当有太多的标签无法容纳在容器的宽度内时出现。当该按钮被禁用"
"时(即最后一个标签是可见的),它显示为半透明的。"

#: doc/classes/TabContainer.xml:208 doc/classes/Tabs.xml:261
msgid ""
"Icon for the right arrow button that appears when there are too many tabs to "
"fit in the container width. Used when the button is being hovered with the "
"cursor."
msgstr ""
"当标签太多无法适应容器宽度时出现的右箭头按钮图标。当鼠标悬停在按钮上时使用。"

#: doc/classes/TabContainer.xml:215
msgid "The icon for the menu button (see [method set_popup])."
msgstr "菜单按钮的图标(见[method set_popup])。"

#: doc/classes/TabContainer.xml:218
msgid ""
"The icon for the menu button (see [method set_popup]) when it's being "
"hovered with the cursor."
msgstr "当光标悬停时菜单按钮的图标(参见 [method set_popup])。"

#: doc/classes/TabContainer.xml:221
msgid "The style for the background fill."
msgstr "背景填充的样式。"

#: doc/classes/TabContainer.xml:224
msgid "The space at the left and right edges of the tab bar."
msgstr "标签栏左右边缘的空间。"

#: doc/classes/TabContainer.xml:227
msgid "The style of inactive tabs."
msgstr "非活动选项卡的样式。"

#: doc/classes/TabContainer.xml:230
msgid "The style of disabled tabs."
msgstr "禁用标签的样式。"

#: doc/classes/TabContainer.xml:233 doc/classes/Tabs.xml:274
msgid "The style of the currently selected tab."
msgstr "当前所选标签的样式。"

#: doc/classes/Tabs.xml:4
msgid "Tabs control."
msgstr "选项卡控件。"

#: doc/classes/Tabs.xml:7
#, fuzzy
msgid ""
"Simple tabs control, similar to [TabContainer] but is only in charge of "
"drawing tabs, not interacting with children."
msgstr "简单的标签控件,类似于[TabContainer],但只负责绘制标签,不与子项互动。"

#: doc/classes/Tabs.xml:17
msgid "Adds a new tab."
msgstr "添加新选项卡。"

#: doc/classes/Tabs.xml:24
msgid "Moves the scroll view to make the tab visible."
msgstr "移动滚动视图,使标签可见。"

#: doc/classes/Tabs.xml:30
msgid ""
"Returns [code]true[/code] if the offset buttons (the ones that appear when "
"there's not enough space for all tabs) are visible."
msgstr ""
"如果偏移按钮(所有选项卡没有足够空间时出现的按钮)可见,则返回 [code]true[/"
"code]。"

#: doc/classes/Tabs.xml:42
msgid "Returns [code]true[/code] if select with right mouse button is enabled."
msgstr "如果启用鼠标右键选择,则返回 [code]true[/code]。"

#: doc/classes/Tabs.xml:68
msgid "Returns the number of hidden tabs offsetted to the left."
msgstr "返回向左偏移的隐藏选项卡的数量。"

#: doc/classes/Tabs.xml:75
msgid "Returns tab [Rect2] with local position and size."
msgstr "返回带有局部位置和大小的选项卡 [Rect2]。"

#: doc/classes/Tabs.xml:82
#, fuzzy
msgid "Returns the title of the tab at index [code]tab_idx[/code]."
msgstr "返回索引[code]idx[/code]处项目的文本。"

#: doc/classes/Tabs.xml:88
msgid "Returns the [Tabs]' rearrange group ID."
msgstr "返回 [Tabs] 的重新排列组 ID。"

#: doc/classes/Tabs.xml:96
msgid "Moves a tab from [code]from[/code] to [code]to[/code]."
msgstr "将选项卡从 [code] from [/code] 移动到 [code] to [/code]。"

#: doc/classes/Tabs.xml:103
msgid "Removes the tab at index [code]tab_idx[/code]."
msgstr "删除索引 [code]tab_idx[/code] 处的选项卡。"

#: doc/classes/Tabs.xml:110
msgid ""
"If [code]true[/code], enables selecting a tab with the right mouse button."
msgstr "如果 [code]true[/code],启用鼠标右键选择选项卡。"

#: doc/classes/Tabs.xml:126
msgid "Sets an [code]icon[/code] for the tab at index [code]tab_idx[/code]."
msgstr "为索引 [code]tab_idx[/code] 处的选项卡设置 [code] icon [/code]。"

#: doc/classes/Tabs.xml:134
msgid "Sets a [code]title[/code] for the tab at index [code]tab_idx[/code]."
msgstr "为索引 [code]tab_idx[/code] 处的选项卡设置 [code]title[/code]。"

#: doc/classes/Tabs.xml:141
#, fuzzy
msgid ""
"Defines the rearrange group ID. Choose for each [Tabs] the same value to "
"dragging tabs between [Tabs]. Enable drag with [member "
"drag_to_rearrange_enabled]."
msgstr ""
"定义重新排列组 ID。为每个 [Tabs] 选择相同的值以在 [Tabs] 之间拖动标签。使用 "
"[code]set_drag_to_rearrange_enabled(true)[/code] 启用拖动。"

#: doc/classes/Tabs.xml:147
msgid "Select tab at index [code]tab_idx[/code]."
msgstr "选择索引 [code]tab_idx[/code] 处的选项卡。"

#: doc/classes/Tabs.xml:153
#, fuzzy
msgid ""
"if [code]true[/code], the mouse's scroll wheel can be used to navigate the "
"scroll view."
msgstr "如果[code]true[/code],鼠标的滚轮用于导航滚动视图。"

#: doc/classes/Tabs.xml:156
msgid "The alignment of all tabs. See [enum TabAlign] for details."
msgstr "所有选项卡的对齐方式。有关详细信息,请参阅 [enum TabAlign]。"

#: doc/classes/Tabs.xml:159
msgid ""
"Sets when the close button will appear on the tabs. See [enum "
"CloseButtonDisplayPolicy] for details."
msgstr ""
"设置关闭按钮何时出现在选项卡上。有关详细信息,请参阅 [enum "
"CloseButtonDisplayPolicy]。"

#: doc/classes/Tabs.xml:166
msgid ""
"Emitted when the active tab is rearranged via mouse drag. See [member "
"drag_to_rearrange_enabled]."
msgstr ""
"通过鼠标拖动重新排列活动选项卡时发出。参见 [member "
"drag_to_rearrange_enabled]。"

#: doc/classes/Tabs.xml:172
msgid "Emitted when a tab is right-clicked."
msgstr "当选项卡被右键单击时发出。"

#: doc/classes/Tabs.xml:184
msgid "Emitted when a tab is clicked, even if it is the current tab."
msgstr "单击选项卡时发出,即使它是当前选项卡。"

#: doc/classes/Tabs.xml:190
msgid "Emitted when a tab is closed."
msgstr "当选项卡关闭时发出。"

#: doc/classes/Tabs.xml:196
msgid "Emitted when a tab is hovered by the mouse."
msgstr "当鼠标悬停选项卡时发出。"

#: doc/classes/Tabs.xml:211
msgid "Represents the size of the [enum TabAlign] enum."
msgstr "表示 [enum TabAlign] 枚举的大小。"

#: doc/classes/Tabs.xml:214
msgid "Never show the close buttons."
msgstr "永远不会显示关闭按钮。"

#: doc/classes/Tabs.xml:217
msgid "Only show the close button on the currently active tab."
msgstr "仅在当前活动选项卡上显示关闭按钮。"

#: doc/classes/Tabs.xml:220
msgid "Show the close button on all tabs."
msgstr "在所有选项卡上显示关闭按钮。"

#: doc/classes/Tabs.xml:223
msgid "Represents the size of the [enum CloseButtonDisplayPolicy] enum."
msgstr "表示 [enum CloseButtonDisplayPolicy] 枚举的大小。"

#: doc/classes/Tabs.xml:228
msgid "Background of the close button when it's being hovered with the cursor."
msgstr "当光标悬停时关闭按钮的背景。"

#: doc/classes/Tabs.xml:231
msgid "Background of the close button when it's being pressed."
msgstr "按下关闭按钮时的背景。"

#: doc/classes/Tabs.xml:234
msgid "The icon for the close button (see [member tab_close_display_policy])."
msgstr "关闭按钮的图标(参见 [member tab_close_display_policy])。"

#: doc/classes/Tabs.xml:255
msgid "The horizontal separation between the tabs."
msgstr "选项卡之间的水平间隔。"

#: doc/classes/Tabs.xml:268
msgid "The style of an inactive tab."
msgstr "非活动选项卡的样式。"

#: doc/classes/Tabs.xml:271
msgid "The style of a disabled tab"
msgstr "禁用选项卡的样式"

#: doc/classes/TCP_Server.xml:4
msgid "A TCP server."
msgstr "TCP服务器。"

#: doc/classes/TCP_Server.xml:7
msgid ""
"A TCP server. Listens to connections on a port and returns a [StreamPeerTCP] "
"when it gets an incoming connection."
msgstr ""
"一个TCP服务器。在一个端口上监听连接,当它得到一个传入的连接时返回一个"
"[StreamPeerTCP]。"

#: doc/classes/TCP_Server.xml:15
msgid "Returns [code]true[/code] if a connection is available for taking."
msgstr "如果有一个连接可用,返回[code]true[/code]。"

#: doc/classes/TCP_Server.xml:21
msgid ""
"Returns [code]true[/code] if the server is currently listening for "
"connections."
msgstr "如果服务器当前正在侦听连接,则返回 [code]true[/code]。"

#: doc/classes/TCP_Server.xml:29
msgid ""
"Listen on the [code]port[/code] binding to [code]bind_address[/code].\n"
"If [code]bind_address[/code] is set as [code]\"*\"[/code] (default), the "
"server will listen on all available addresses (both IPv4 and IPv6).\n"
"If [code]bind_address[/code] is set as [code]\"0.0.0.0\"[/code] (for IPv4) "
"or [code]\"::\"[/code] (for IPv6), the server will listen on all available "
"addresses matching that IP type.\n"
"If [code]bind_address[/code] is set to any valid address (e.g. "
"[code]\"192.168.1.101\"[/code], [code]\"::1\"[/code], etc), the server will "
"only listen on the interface with that addresses (or fail if no interface "
"with the given address exists)."
msgstr ""
"在[code]port[/code]上监听与[code]bind_address[/code]绑定的地址。\n"
"如果[code]bind_address[/code]被设置为[code]\"*\"[/code](默认),服务器将监听"
"所有可用地址(包括IPv4和IPv6)。\n"
"如果[code]bind_address[/code]被设置为[code]\"0.0.0.0\"[/code](用于IPv4)或"
"[code]\":\"[/code](用于IPv6),服务器将监听所有符合该IP类型的可用地址。\n"
"如果[code]bind_address[/code]被设置为任何有效的地址(例如"
"[code]\"192.168.1.101\"[/code],[code]\":1\"[/code],等等),服务器将只在具有"
"该地址的接口上监听(如果不存在具有该地址的接口则失败)。"

#: doc/classes/TCP_Server.xml:38
msgid "Stops listening."
msgstr "停止监听。"

#: doc/classes/TCP_Server.xml:44
msgid ""
"If a connection is available, returns a StreamPeerTCP with the connection."
msgstr "如果连接可用,则返回带有该连接的 StreamPeerTCP。"

#: doc/classes/TextEdit.xml:4
msgid "Multiline text editing control."
msgstr "多行文本编辑控件。"

#: doc/classes/TextEdit.xml:7
#, fuzzy
msgid ""
"TextEdit is meant for editing large, multiline text. It also has facilities "
"for editing code, such as syntax highlighting support and multiple levels of "
"undo/redo.\n"
"[b]Note:[/b] When holding down [code]Alt[/code], the vertical scroll wheel "
"will scroll 5 times as fast as it would normally do. This also works in the "
"Godot script editor."
msgstr ""
"TextEdit 用于编辑大的多行文本。它还具有编辑代码的功能,例如语法高亮支持和多级"
"撤消/重做。"

#: doc/classes/TextEdit.xml:20
msgid "Adds color region (given the delimiters) and its colors."
msgstr ""

#: doc/classes/TextEdit.xml:28
#, fuzzy
msgid "Adds a [code]keyword[/code] and its [Color]."
msgstr "将一个[code][color][/code]标签添加到标签堆。"

#: doc/classes/TextEdit.xml:35
msgid ""
"Returns if the given line is foldable, that is, it has indented lines right "
"below it."
msgstr "返回给定的行是否可折叠,也就是说,它在它的正下方有缩进的行。"

#: doc/classes/TextEdit.xml:41
msgid ""
"Centers the viewport on the line the editing cursor is at. This also resets "
"the [member scroll_horizontal] value to [code]0[/code]."
msgstr ""
"将视口置于编辑光标所在的线上。这也会将 [member scroll_horizontal] 值重置为 "
"[code]0[/code]。"

#: doc/classes/TextEdit.xml:47
msgid ""
"Clears all custom syntax coloring information previously added with [method "
"add_color_region] or [method add_keyword_color]."
msgstr ""

#: doc/classes/TextEdit.xml:53
msgid "Clears the undo history."
msgstr "清除撤销历史。"

#: doc/classes/TextEdit.xml:59
msgid "Copy's the current text selection."
msgstr "复制当前的文本选择。"

#: doc/classes/TextEdit.xml:65
msgid "Returns the column the editing cursor is at."
msgstr "返回编辑光标所在的列。"

#: doc/classes/TextEdit.xml:71
msgid "Returns the line the editing cursor is at."
msgstr "返回编辑光标所在的行。"

#: doc/classes/TextEdit.xml:79
msgid ""
"Moves the cursor at the specified [code]column[/code] index.\n"
"If [code]adjust_viewport[/code] is set to [code]true[/code], the viewport "
"will center at the cursor position after the move occurs."
msgstr ""
"将光标移动到指定的 [code] column [/code] 索引处。\n"
"如果 [code]adjust_viewport[/code] 设置为 [code]true[/code],则移动发生后视口"
"将以光标位置为中心。"

#: doc/classes/TextEdit.xml:90
msgid ""
"Moves the cursor at the specified [code]line[/code] index.\n"
"If [code]adjust_viewport[/code] is set to [code]true[/code], the viewport "
"will center at the cursor position after the move occurs.\n"
"If [code]can_be_hidden[/code] is set to [code]true[/code], the specified "
"[code]line[/code] can be hidden using [method set_line_as_hidden]."
msgstr ""
"在指定的 [code] line [/code] 索引处移动光标。\n"
"如果 [code]adjust_viewport[/code] 设置为 [code]true[/code],则移动发生后视口"
"将以光标位置为中心。\n"
"如果 [code]can_be_hidden[/code] 设置为 [code]true[/code],则可以使用 [method "
"set_line_as_hidden] 隐藏指定的 [code] line [/code]。"

#: doc/classes/TextEdit.xml:98
msgid "Cut's the current selection."
msgstr "剪切当前选择。"

#: doc/classes/TextEdit.xml:104
msgid "Deselects the current selection."
msgstr "取消当前选择。"

#: doc/classes/TextEdit.xml:110
msgid "Folds all lines that are possible to be folded (see [method can_fold])."
msgstr "折叠所有可能被折叠的行(参见 [method can_fold])。"

#: doc/classes/TextEdit.xml:117
msgid "Folds the given line, if possible (see [method can_fold])."
msgstr "如果可能,折叠给定的行(参见 [method can_fold])。"

#: doc/classes/TextEdit.xml:123
msgid "Returns an array containing the line number of each breakpoint."
msgstr "返回一个包含每个断点行号的数组。"

#: doc/classes/TextEdit.xml:130
#, fuzzy
msgid "Returns the [Color] of the specified [code]keyword[/code]."
msgstr "返回带有指定[code]name[/code]的子节点。"

#: doc/classes/TextEdit.xml:137
msgid "Returns the text of a specific line."
msgstr "返回特定行的文本。"

#: doc/classes/TextEdit.xml:143
msgid "Returns the amount of total lines in the text."
msgstr "返回文本中的总行数。"

#: doc/classes/TextEdit.xml:149
msgid ""
"Returns the [PopupMenu] of this [TextEdit]. By default, this menu is "
"displayed when right-clicking on the [TextEdit]."
msgstr ""
"返回此 [TextEdit] 的 [PopupMenu]。默认情况下,右键单击 [TextEdit] 时会显示此"
"菜单。"

#: doc/classes/TextEdit.xml:155
msgid "Returns the selection begin column."
msgstr "返回选择的开始列。"

#: doc/classes/TextEdit.xml:161
msgid "Returns the selection begin line."
msgstr "返回选择开始行。"

#: doc/classes/TextEdit.xml:167
msgid "Returns the text inside the selection."
msgstr "返回选择内的文本。"

#: doc/classes/TextEdit.xml:173
msgid "Returns the selection end column."
msgstr "返回选择结束列。"

#: doc/classes/TextEdit.xml:179
msgid "Returns the selection end line."
msgstr "返回选择结束行。"

#: doc/classes/TextEdit.xml:185
#, fuzzy
msgid ""
"Returns a [String] text with the word under the caret (text cursor) location."
msgstr "返回带有鼠标光标位置下的单词的 [String] 文本。"

#: doc/classes/TextEdit.xml:192
#, fuzzy
msgid ""
"Returns whether the specified [code]keyword[/code] has a color set to it or "
"not."
msgstr "返回指定的[code] class [/code]是否可用。"

#: doc/classes/TextEdit.xml:198 doc/classes/UndoRedo.xml:121
msgid "Returns [code]true[/code] if a \"redo\" action is available."
msgstr "如果有 \"redo\" 动作,返回[code]true[/code]。"

#: doc/classes/TextEdit.xml:204 doc/classes/UndoRedo.xml:127
msgid "Returns [code]true[/code] if an \"undo\" action is available."
msgstr "如果有 \"undo\" 动作,返回[code]true[/code]。"

#: doc/classes/TextEdit.xml:211
msgid "Insert the specified text at the cursor position."
msgstr "在光标位置插入指定的文本。"

#: doc/classes/TextEdit.xml:218
msgid "Returns whether the line at the specified index is folded or not."
msgstr "返回指定索引处的行是否折叠。"

#: doc/classes/TextEdit.xml:225
msgid "Returns whether the line at the specified index is hidden or not."
msgstr "返回指定索引处的行是否隐藏。"

#: doc/classes/TextEdit.xml:232
#, fuzzy
msgid ""
"Returns [code]true[/code] when the specified [code]line[/code] is bookmarked."
msgstr "如果存在指定[code]name[/code]的子节点,返回[code]true[/code]。"

#: doc/classes/TextEdit.xml:239
#, fuzzy
msgid ""
"Returns [code]true[/code] when the specified [code]line[/code] has a "
"breakpoint."
msgstr "如果存在指定[code]name[/code]的子节点,返回[code]true[/code]。"

#: doc/classes/TextEdit.xml:246
#, fuzzy
msgid ""
"Returns [code]true[/code] when the specified [code]line[/code] is marked as "
"safe."
msgstr "如果存在指定[code]name[/code]的子节点,返回[code]true[/code]。"

#: doc/classes/TextEdit.xml:252
msgid "Returns [code]true[/code] if the selection is active."
msgstr "如果选择处于活动状态,则返回 [code]true[/code]。"

#: doc/classes/TextEdit.xml:259
msgid ""
"Triggers a right-click menu action by the specified index. See [enum "
"MenuItems] for a list of available indexes."
msgstr ""
"按指定的索引触发右键单击菜单操作。有关可用索引的列表,请参阅 [enum "
"MenuItems]。"

#: doc/classes/TextEdit.xml:265
msgid "Paste the current selection."
msgstr "粘贴当前选择。"

#: doc/classes/TextEdit.xml:271
msgid "Perform redo operation."
msgstr "执行重做操作。"

#: doc/classes/TextEdit.xml:277
msgid ""
"Removes all the breakpoints. This will not fire the [signal "
"breakpoint_toggled] signal."
msgstr "删除所有断点。这不会触发 [signal breakpoint_toggled] 信号。"

#: doc/classes/TextEdit.xml:287
#, fuzzy
msgid ""
"Perform a search inside the text. Search flags can be specified in the [enum "
"SearchFlags] enum.\n"
"Returns an empty [code]PoolIntArray[/code] if no result was found. "
"Otherwise, the result line and column can be accessed at indices specified "
"in the [enum SearchResult] enum, e.g:\n"
"[codeblock]\n"
"var result = search(key, flags, line, column)\n"
"if result.size() > 0:\n"
"    # Result found.\n"
"    var res_line = result[TextEdit.SEARCH_RESULT_LINE]\n"
"    var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]\n"
"[/codeblock]"
msgstr ""
"在文本内执行搜索。可以在 [enum SearchFlags] 枚举中指定搜索标志。\n"
"如果未找到结果,则返回空的 [code]Dictionary[/code]。否则,返回一个 "
"[code]Dictionary[/code] 包含 [code]line[/code] 和 [code]column[/code] 条目,"
"例如:\n"
"[codeblock]\n"
"var result = search(key, flags, line, column)\n"
"if !result.empty():\n"
"    # Result found.\n"
"    var line_number = result.line\n"
"    var column_number = result.column\n"
"[/codeblock]"

#: doc/classes/TextEdit.xml:305
msgid ""
"Perform selection, from line/column to line/column.\n"
"If [member selecting_enabled] is [code]false[/code], no selection will occur."
msgstr ""
"执行选择,从行/列到行/列。\n"
"如果 [member selection_enabled] 为 [code]false[/code],则不会发生选择。"

#: doc/classes/TextEdit.xml:312
msgid ""
"Select all the text.\n"
"If [member selecting_enabled] is [code]false[/code], no selection will occur."
msgstr ""
"选择所有文本。\n"
"如果 [member selection_enabled] 为 [code]false[/code],则不会发生选择。"

#: doc/classes/TextEdit.xml:321
msgid "Sets the text for a specific line."
msgstr "设置特定行的文本。"

#: doc/classes/TextEdit.xml:329
msgid ""
"Bookmarks the [code]line[/code] if [code]bookmark[/code] is true. Deletes "
"the bookmark if [code]bookmark[/code] is false.\n"
"Bookmarks are shown in the [member breakpoint_gutter]."
msgstr ""

#: doc/classes/TextEdit.xml:338
msgid ""
"Adds or removes the breakpoint in [code]line[/code]. Breakpoints are shown "
"in the [member breakpoint_gutter]."
msgstr ""

#: doc/classes/TextEdit.xml:346
msgid "If [code]true[/code], hides the line of the specified index."
msgstr "如果[code]true[/code],隐藏指定索引的行。"

#: doc/classes/TextEdit.xml:354
msgid ""
"If [code]true[/code], marks the [code]line[/code] as safe.\n"
"This will show the line number with the color provided in the "
"[code]safe_line_number_color[/code] theme property."
msgstr ""

#: doc/classes/TextEdit.xml:362
msgid "Toggle the folding of the code block at the given line."
msgstr "在给定行切换代码块的折叠。"

#: doc/classes/TextEdit.xml:368
msgid "Perform undo operation."
msgstr "执行撤销操作。"

#: doc/classes/TextEdit.xml:375
msgid "Unfolds the given line, if folded."
msgstr "如果折叠,展开给定的线。"

#: doc/classes/TextEdit.xml:381
msgid ""
"Unhide all lines that were previously set to hidden by [method "
"set_line_as_hidden]."
msgstr "取消隐藏之前由 [method set_line_as_hidden] 设置为隐藏的所有行。"

#: doc/classes/TextEdit.xml:387
msgid "If [code]true[/code], the breakpoint gutter is visible."
msgstr "如果 [code]true[/code],断点所在的空白栏可见。"

#: doc/classes/TextEdit.xml:396
msgid ""
"If [code]true[/code], the caret displays as a rectangle.\n"
"If [code]false[/code], the caret displays as a bar."
msgstr ""
"如果 [code]true[/code],插入符号显示为矩形。\n"
"如果 [code]false[/code],插入符号显示为条形。"

#: doc/classes/TextEdit.xml:400
msgid ""
"If [code]true[/code], a right-click moves the cursor at the mouse position "
"before displaying the context menu.\n"
"If [code]false[/code], the context menu disregards mouse location."
msgstr ""
"如果 [code]true[/code],则在显示上下文菜单之前右键单击将光标移动到鼠标位"
"置。\n"
"如果 [code]false[/code],上下文菜单忽略鼠标位置。"

#: doc/classes/TextEdit.xml:404
msgid "If [code]true[/code], a right-click displays the context menu."
msgstr "如果 [code]true[/code],右键单击会显示上下文菜单。"

#: doc/classes/TextEdit.xml:407
msgid ""
"If [code]true[/code], the \"space\" character will have a visible "
"representation."
msgstr "如果 [code]true[/code],“空格”字符将具有可见表示形式。"

#: doc/classes/TextEdit.xml:410
msgid ""
"If [code]true[/code], the \"tab\" character will have a visible "
"representation."
msgstr "如果 [code]true[/code],“制表符”字符将具有可见表示形式。"

#: doc/classes/TextEdit.xml:414
msgid ""
"If [code]true[/code], the fold gutter is visible. This enables folding "
"groups of indented lines."
msgstr "如果 [code]true[/code],则折叠边栏可见。这允许折叠缩进行。"

#: doc/classes/TextEdit.xml:417
msgid ""
"If [code]true[/code], all lines that have been set to hidden by [method "
"set_line_as_hidden], will not be visible."
msgstr ""
"如果 [code]true[/code],所有已被 [method set_line_as_hidden] 设置为隐藏的行将"
"不可见。"

#: doc/classes/TextEdit.xml:420
msgid ""
"If [code]true[/code], all occurrences of the selected text will be "
"highlighted."
msgstr "如果 [code]true[/code],所选文本的所有匹配项都将突出显示。"

#: doc/classes/TextEdit.xml:423
msgid "If [code]true[/code], the line containing the cursor is highlighted."
msgstr "如果 [code]true[/code],则包含光标的行会突出显示。"

#: doc/classes/TextEdit.xml:426
msgid ""
"If [code]true[/code], a minimap is shown, providing an outline of your "
"source code."
msgstr "如果 [code]true[/code],则显示小地图,提供源代码的概要。"

#: doc/classes/TextEdit.xml:429
msgid "The width, in pixels, of the minimap."
msgstr "小地图的宽度(以像素为单位)。"

#: doc/classes/TextEdit.xml:433
msgid ""
"If [code]true[/code], custom [code]font_color_selected[/code] will be used "
"for selected text."
msgstr ""
"如果 [code]true[/code],自定义 [code]font_color_selected[/code] 将用于所选文"
"本。"

#: doc/classes/TextEdit.xml:436
msgid ""
"If [code]true[/code], read-only mode is enabled. Existing text cannot be "
"modified and new text cannot be added."
msgstr ""
"如果[code]true[/code],启用只读模式。现有的文本不能被修改,新的文本不能被添"
"加。"

#: doc/classes/TextEdit.xml:439
msgid ""
"If there is a horizontal scrollbar, this determines the current horizontal "
"scroll value in pixels."
msgstr ""

#: doc/classes/TextEdit.xml:442
msgid ""
"If there is a vertical scrollbar, this determines the current vertical "
"scroll value in line numbers, starting at 0 for the top line."
msgstr ""

#: doc/classes/TextEdit.xml:445
msgid ""
"If [code]true[/code], text can be selected.\n"
"If [code]false[/code], text can not be selected by the user or by the "
"[method select] or [method select_all] methods."
msgstr ""
"如果[code]true[/code],文本可以被选择。\n"
"如果[code]false[/code],用户或使用[method select]或[method select_all]方法都"
"不能选择文本。"

#: doc/classes/TextEdit.xml:449
msgid ""
"If [code]true[/code], shortcut keys for context menu items are enabled, even "
"if the context menu is disabled."
msgstr ""
"为 [code]true[/code] 时,即使上下文菜单已被禁用,也会启用该上下文菜单的快捷"
"键。"

#: doc/classes/TextEdit.xml:452
msgid ""
"If [code]true[/code], line numbers are displayed to the left of the text."
msgstr "如果 [code]true[/code],行号显示在文本的左侧。"

#: doc/classes/TextEdit.xml:455
msgid ""
"If [code]true[/code], sets the [code]step[/code] of the scrollbars to "
"[code]0.25[/code] which results in smoother scrolling."
msgstr ""
"如果 [code]true[/code],将滚动条的步长 [code]step[/code] 设置为 [code]0.25[/"
"code],从而使滚动更加平滑。"

#: doc/classes/TextEdit.xml:458
#, fuzzy
msgid ""
"If [code]true[/code], any custom color properties that have been set for "
"this [TextEdit] will be visible."
msgstr ""
"如果 [code]true[/code],所有已被 [method set_line_as_hidden] 设置为隐藏的行将"
"不可见。"

#: doc/classes/TextEdit.xml:461
msgid "String value of the [TextEdit]."
msgstr "[TextEdit] 的字符串值。"

#: doc/classes/TextEdit.xml:464
msgid "Vertical scroll sensitivity."
msgstr "垂直滚动的灵敏度。"

#: doc/classes/TextEdit.xml:470
msgid ""
"If [code]true[/code], enables text wrapping when it goes beyond the edge of "
"what is visible."
msgstr "如果 [code]true[/code],当文本超出可见边缘时启用文本换行。"

#: doc/classes/TextEdit.xml:477
msgid "Emitted when a breakpoint is placed via the breakpoint gutter."
msgstr "当通过断点边栏放置断点时发出。"

#: doc/classes/TextEdit.xml:482
msgid "Emitted when the cursor changes."
msgstr "光标更改时发出。"

#: doc/classes/TextEdit.xml:489
msgid "Emitted when the info icon is clicked."
msgstr "单击信息图标时发出。"

#: doc/classes/TextEdit.xml:511
msgid "Match case when searching."
msgstr "搜索时匹配大小写。"

#: doc/classes/TextEdit.xml:514
msgid "Match whole words when searching."
msgstr "搜索时匹配整个单词。"

#: doc/classes/TextEdit.xml:517
msgid "Search from end to beginning."
msgstr "从头到尾搜索。"

#: doc/classes/TextEdit.xml:520
msgid "Used to access the result column from [method search]."
msgstr ""

#: doc/classes/TextEdit.xml:523
msgid "Used to access the result line from [method search]."
msgstr ""

#: doc/classes/TextEdit.xml:532
msgid ""
"Pastes the clipboard text over the selected text (or at the cursor's "
"position)."
msgstr "将剪贴板上的文本粘贴在选定的文本上(或光标的位置)。"

#: doc/classes/TextEdit.xml:535
msgid "Erases the whole [TextEdit] text."
msgstr "擦除整个[TextEdit]文本。"

#: doc/classes/TextEdit.xml:538
msgid "Selects the whole [TextEdit] text."
msgstr "选择整个[TextEdit]文本。"

#: doc/classes/TextEdit.xml:544
msgid "Redoes the previous action."
msgstr "重做前一个动作。"

#: doc/classes/TextEdit.xml:552
msgid ""
"Sets the background [Color] of this [TextEdit]. [member syntax_highlighting] "
"has to be enabled."
msgstr ""
"设置这个[TextEdit]的背景颜色[Color]。必须启用语法高亮[member "
"syntax_highlighting]。"

#: doc/classes/TextEdit.xml:555
msgid ""
"Sets the [Color] of the bookmark marker. [member syntax_highlighting] has to "
"be enabled."
msgstr ""
"设置书签标记的颜色[Color]。必须启用语法高亮[member syntax_highlighting]。"

#: doc/classes/TextEdit.xml:560 doc/classes/TextEdit.xml:587
msgid ""
"Sets the [Color] of the breakpoints. [member breakpoint_gutter] has to be "
"enabled."
msgstr "设置断点的颜色[Color]。必须启用断点槽[member breakpoint_gutter]。"

#: doc/classes/TextEdit.xml:598
msgid "Sets the default [Font]."
msgstr "设置默认的字体[Font]。"

#: doc/classes/TextEdit.xml:601
msgid "Sets the font [Color]."
msgstr "设置字体颜色[Color]。"

#: doc/classes/TextEdit.xml:606
msgid ""
"Sets the [Color] of the selected text. [member override_selected_font_color] "
"has to be enabled."
msgstr ""
"设置所选文本的颜色[Color]。必须启用覆盖所选文字字体颜色[member "
"override_selected_font_color]。"

#: doc/classes/TextEdit.xml:611
msgid ""
"Sets the [Color] of the line numbers. [member show_line_numbers] has to be "
"enabled."
msgstr "设置行号颜色[Color]。[member show_line_numbers] 显示行号必须被启用。"

#: doc/classes/TextEdit.xml:614
msgid "Sets the spacing between the lines."
msgstr "设置行间距。"

#: doc/classes/TextEdit.xml:617
msgid "Sets the [Color] of marked text."
msgstr "设置标记文本的颜色[Color]。"

#: doc/classes/TextEdit.xml:622
msgid "Sets the [StyleBox] of this [TextEdit]."
msgstr "设置这个[TextEdit]的[StyleBox]。"

#: doc/classes/TextEdit.xml:627
msgid ""
"Sets the [StyleBox] of this [TextEdit] when [member readonly] is enabled."
msgstr "当[member readonly]启用时,设置这个[TextEdit]的[StyleBox]。"

#: doc/classes/TextEdit.xml:632
msgid "Sets the highlight [Color] of text selections."
msgstr "设置文本选择的高亮[Color]颜色。"

#: doc/classes/TextEdit.xml:639
#, fuzzy
msgid "Sets a custom [Texture] for tab text characters."
msgstr "为选项卡文本字符设置一个自定义的[Texture2D]。"

#: doc/classes/TextEdit.xml:642
msgid ""
"Sets the highlight [Color] of multiple occurrences. [member "
"highlight_all_occurrences] has to be enabled."
msgstr ""
"设置多次出现的高亮[Color]颜色。须启用[member highlight_all_occurrences] 。"

#: doc/classes/Texture.xml:4
msgid "Texture for 2D and 3D."
msgstr "用于2D和3D的纹理。"

#: doc/classes/Texture.xml:7
#, fuzzy
msgid ""
"A texture works by registering an image in the video hardware, which then "
"can be used in 3D models or 2D [Sprite] or GUI [Control].\n"
"Textures are often created by loading them from a file. See [method "
"@GDScript.load].\n"
"[Texture] is a base for other resources. It cannot be used directly.\n"
"[b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics "
"hardware limitations. Larger textures may fail to import."
msgstr ""
"纹理的作用是在视频硬件中注册一个图像,而后在3D模型或2D[Sprite2D]或"
"GUI[Control]中使用。\n"
"纹理通常通过从文件中加载来创建。参见[method @GDScript.load]。\n"
"[Texture2D]是其他资源的基础。它不能被直接使用。"

#: doc/classes/Texture.xml:23
msgid ""
"Draws the texture using a [CanvasItem] with the [VisualServer] API at the "
"specified [code]position[/code]. Equivalent to [method VisualServer."
"canvas_item_add_texture_rect] with a rect at [code]position[/code] and the "
"size of this [Texture]."
msgstr ""

#: doc/classes/Texture.xml:35
#, fuzzy
msgid ""
"Draws the texture using a [CanvasItem] with the [VisualServer] API. "
"Equivalent to [method VisualServer.canvas_item_add_texture_rect]."
msgstr ""
"使用[RenderingServer]API在指定的[code]position[/code]坐标用[CanvasItem]绘制纹"
"理。"

#: doc/classes/Texture.xml:48
#, fuzzy
msgid ""
"Draws a part of the texture using a [CanvasItem] with the [VisualServer] "
"API. Equivalent to [method VisualServer.canvas_item_add_texture_rect_region]."
msgstr ""
"使用[RenderingServer]API在指定的[code]position[/code]坐标用[CanvasItem]绘制纹"
"理。"

#: doc/classes/Texture.xml:54
#, fuzzy
msgid ""
"Returns an [Image] that is a copy of data from this [Texture]. [Image]s can "
"be accessed and manipulated directly."
msgstr "返回一个带有该[Texture2D]数据的[Image]。可以直接访问和操作[Image]。"

#: doc/classes/Texture.xml:60
msgid "Returns the texture height."
msgstr "返回纹理高度。"

#: doc/classes/Texture.xml:66
msgid "Returns the texture size."
msgstr "返回纹理尺寸。"

#: doc/classes/Texture.xml:72
msgid "Returns the texture width."
msgstr "返回纹理宽度。"

#: doc/classes/Texture.xml:78
#, fuzzy
msgid "Returns [code]true[/code] if this [Texture] has an alpha channel."
msgstr "如果这个[Texture2D]有一个alpha通道,返回[code]true[/code]。"

#: doc/classes/Texture.xml:84
msgid ""
"The texture's [enum Flags]. [enum Flags] are used to set various properties "
"of the [Texture]."
msgstr ""

#: doc/classes/Texture.xml:89
msgid ""
"Default flags. [constant FLAG_MIPMAPS], [constant FLAG_REPEAT] and [constant "
"FLAG_FILTER] are enabled."
msgstr ""

#: doc/classes/Texture.xml:92 doc/classes/VisualServer.xml:3205
msgid ""
"Generates mipmaps, which are smaller versions of the same texture to use "
"when zoomed out, keeping the aspect ratio."
msgstr ""

#: doc/classes/Texture.xml:95
msgid ""
"Repeats the texture (instead of clamp to edge).\n"
"[b]Note:[/b] Ignored when using an [AtlasTexture] as these don't support "
"repetition."
msgstr ""

#: doc/classes/Texture.xml:99 doc/classes/VisualServer.xml:3211
msgid "Uses a magnifying filter, to enable smooth zooming in of the texture."
msgstr ""

#: doc/classes/Texture.xml:102 doc/classes/TextureLayered.xml:88
#: doc/classes/VisualServer.xml:3214
msgid ""
"Uses anisotropic mipmap filtering. Generates smaller versions of the same "
"texture with different aspect ratios.\n"
"This results in better-looking textures when viewed from oblique angles."
msgstr ""

#: doc/classes/Texture.xml:106 doc/classes/VisualServer.xml:3218
#, fuzzy
msgid "Converts the texture to the sRGB color space."
msgstr "将原始数据从 sRGB 色彩空间转换为线性比例。"

#: doc/classes/Texture.xml:109
msgid ""
"Repeats the texture with alternate sections mirrored.\n"
"[b]Note:[/b] Ignored when using an [AtlasTexture] as these don't support "
"repetition."
msgstr ""

#: doc/classes/Texture.xml:113 doc/classes/VisualServer.xml:3224
#, fuzzy
msgid "Texture is a video surface."
msgstr "设置给定曲面的名称。"

#: doc/classes/Texture3D.xml:4
#, fuzzy
msgid "Texture with 3 dimensions."
msgstr "返回位图的尺寸。"

#: doc/classes/Texture3D.xml:7
msgid ""
"Texture3D is a 3-dimensional texture that has a width, height, and depth."
msgstr ""

#: doc/classes/Texture3D.xml:20
msgid ""
"Creates the Texture3D with specified [code]width[/code], [code]height[/"
"code], and [code]depth[/code]. See [enum Image.Format] for [code]format[/"
"code] options. See [enum TextureLayered.Flags] enumerator for [code]flags[/"
"code] options."
msgstr ""

#: doc/classes/TextureArray.xml:4
#, fuzzy
msgid "Array of textures stored in a single primitive."
msgstr "在单个帧中绘制的顶点数。"

#: doc/classes/TextureArray.xml:7
msgid ""
"[TextureArray]s store an array of [Image]s in a single [Texture] primitive. "
"Each layer of the texture array has its own mipmap chain. This makes it is a "
"good alternative to texture atlases.\n"
"[TextureArray]s must be displayed using shaders. After importing your file "
"as a [TextureArray] and setting the appropriate Horizontal and Vertical "
"Slices, display it by setting it as a uniform to a shader, for example:\n"
"[codeblock]\n"
"shader_type canvas_item;\n"
"\n"
"uniform sampler2DArray tex;\n"
"uniform int index;\n"
"\n"
"void fragment() {\n"
"    COLOR = texture(tex, vec3(UV.x, UV.y, float(index)));\n"
"}\n"
"[/codeblock]\n"
"Set the integer uniform \"index\" to show a particular part of the texture "
"as defined by the Horizontal and Vertical Slices in the importer."
msgstr ""

#: doc/classes/TextureArray.xml:32
msgid ""
"Creates the TextureArray with specified [code]width[/code], [code]height[/"
"code], and [code]depth[/code]. See [enum Image.Format] for [code]format[/"
"code] options. See [enum TextureLayered.Flags] enumerator for [code]flags[/"
"code] options."
msgstr ""

#: doc/classes/TextureButton.xml:4
msgid ""
"Texture-based button. Supports Pressed, Hover, Disabled and Focused states."
msgstr "基于纹理的按钮。支持按下、悬停、停用和焦点状态。"

#: doc/classes/TextureButton.xml:7
#, fuzzy
msgid ""
"[TextureButton] has the same functionality as [Button], except it uses "
"sprites instead of Godot's [Theme] resource. It is faster to create, but it "
"doesn't support localization like more complex [Control]s.\n"
"The \"normal\" state must contain a texture ([member texture_normal]); other "
"textures are optional.\n"
"See also [BaseButton] which contains common properties and methods "
"associated with this node."
msgstr ""
"[TextureButton]的功能与[Button]相同,只是它使用精灵而不是Godot的[Theme]资源。"
"它的创建速度更快,但它不像更复杂的[Control]那样支持本地化。\n"
"\"正常\"状态必须包含一个纹理[member texture_normal];其他纹理是可选的。"

#: doc/classes/TextureButton.xml:18
msgid ""
"If [code]true[/code], the texture stretches to the edges of the node's "
"bounding rectangle using the [member stretch_mode]. If [code]false[/code], "
"the texture will not scale with the node."
msgstr ""
"如果[code]true[/code],纹理会使用[member stretch_mode]拉伸到节点的边界矩形的"
"边缘。如果[code]false[/code],纹理将不随节点缩放。"

#: doc/classes/TextureButton.xml:27
msgid ""
"Controls the texture's behavior when you resize the node's bounding "
"rectangle, [b]only if[/b] [member expand] is [code]true[/code]. Set it to "
"one of the [enum StretchMode] constants. See the constants to learn more."
msgstr ""
"控制纹理在你调整节点的边界矩形时的行为,[b]只有在[/b][member expand]为"
"[code]true[/code]的情况下。把它设置为[enum StretchMode]常量之一。请看常量来了"
"解更多。"

#: doc/classes/TextureButton.xml:30
msgid ""
"Pure black and white [BitMap] image to use for click detection. On the mask, "
"white pixels represent the button's clickable area. Use it to create buttons "
"with curved shapes."
msgstr ""
"用于点击检测的纯黑白[BitMap]图像。在遮罩上,白色像素代表按钮的可点击区域。可"
"用它来创建具有弯曲形状的按钮。"

#: doc/classes/TextureButton.xml:33
msgid ""
"Texture to display when the node is disabled. See [member BaseButton."
"disabled]."
msgstr "节点被禁用时显示的纹理。参见[member BaseButton.disabled]。"

#: doc/classes/TextureButton.xml:36
msgid "Texture to display when the node has mouse or keyboard focus."
msgstr "当节点具有鼠标或键盘焦点时显示的纹理。"

#: doc/classes/TextureButton.xml:39
msgid "Texture to display when the mouse hovers the node."
msgstr "当鼠标悬停在节点上时显示的纹理。"

#: doc/classes/TextureButton.xml:42
msgid ""
"Texture to display by default, when the node is [b]not[/b] in the disabled, "
"focused, hover or pressed state."
msgstr "当节点[b]not[/b]未处于禁用、焦点、悬停或按下的状态时,默认显示的纹理。"

#: doc/classes/TextureButton.xml:45
msgid ""
"Texture to display on mouse down over the node, if the node has keyboard "
"focus and the player presses the Enter key or if the player presses the "
"[member BaseButton.shortcut] key."
msgstr ""
"如果节点有键盘焦点且玩家按下回车键,或者玩家按下[member BaseButton.shortcut]"
"键,则鼠标悬停在节点上时显示的纹理。"

#: doc/classes/TextureButton.xml:50 doc/classes/TextureRect.xml:38
msgid "Scale to fit the node's bounding rectangle."
msgstr "缩放以适应节点的边界矩形。"

#: doc/classes/TextureButton.xml:53 doc/classes/TextureRect.xml:41
msgid "Tile inside the node's bounding rectangle."
msgstr "在节点的边界矩形内平铺。"

#: doc/classes/TextureButton.xml:56 doc/classes/TextureRect.xml:44
msgid ""
"The texture keeps its original size and stays in the bounding rectangle's "
"top-left corner."
msgstr "纹理保持它的原始尺寸,并保持在边界矩形的左上角。"

#: doc/classes/TextureButton.xml:59 doc/classes/TextureRect.xml:47
msgid ""
"The texture keeps its original size and stays centered in the node's "
"bounding rectangle."
msgstr "纹理保持其原始大小,并在节点的边界矩形中保持居中。"

#: doc/classes/TextureButton.xml:62 doc/classes/TextureRect.xml:50
msgid ""
"Scale the texture to fit the node's bounding rectangle, but maintain the "
"texture's aspect ratio."
msgstr "缩放纹理以适应节点的边界矩形,但保持纹理的长宽比。"

#: doc/classes/TextureButton.xml:65
msgid ""
"Scale the texture to fit the node's bounding rectangle, center it, and "
"maintain its aspect ratio."
msgstr "缩放纹理以适应节点的边界矩形,使其居中,并保持长宽比。"

#: doc/classes/TextureButton.xml:68 doc/classes/TextureRect.xml:56
msgid ""
"Scale the texture so that the shorter side fits the bounding rectangle. The "
"other side clips to the node's limits."
msgstr "缩放纹理,使较短的一边适应边界矩形。另一边则裁剪到节点的界限内。"

#: doc/classes/TextureLayered.xml:4
msgid "Base class for 3D texture types."
msgstr "3D纹理类型的基类。"

#: doc/classes/TextureLayered.xml:7
#, fuzzy
msgid ""
"Base class for [Texture3D] and [TextureArray]. Cannot be used directly, but "
"contains all the functions necessary for accessing and using [Texture3D] and "
"[TextureArray]. Data is set on a per-layer basis. For [Texture3D]s, the "
"layer specifies the depth or Z-index, they can be treated as a bunch of 2D "
"slices. Similarly, for [TextureArray]s, the layer specifies the array layer."
msgstr ""
"[Texture2DArray]、[Cubemap]和[CubemapArray]的基类。不能直接使用,但包含了所有"
"访问派生资源类型的必要功能。数据按层设置。对于多层[Texture2DArray]指定数组"
"层。"

#: doc/classes/TextureLayered.xml:15
#, fuzzy
msgid ""
"Returns the depth of the texture. Depth is the 3rd dimension (typically Z-"
"axis)."
msgstr "返回纹理的宽度。宽度通常由X轴表示。"

#: doc/classes/TextureLayered.xml:21
msgid ""
"Returns the current format being used by this texture. See [enum Image."
"Format] for details."
msgstr "返回纹理当前使用的格式。详情见[enum Image.Format]。"

#: doc/classes/TextureLayered.xml:27
msgid ""
"Returns the height of the texture. Height is typically represented by the Y-"
"axis."
msgstr "返回纹理的高度。高度通常由Y轴表示。"

#: doc/classes/TextureLayered.xml:34
msgid ""
"Returns an [Image] resource with the data from specified [code]layer[/code]."
msgstr "返回一个带有指定[code]layer[/code]层数据的[Image]图像资源。"

#: doc/classes/TextureLayered.xml:40
msgid ""
"Returns the width of the texture. Width is typically represented by the X-"
"axis."
msgstr "返回纹理的宽度。宽度通常由X轴表示。"

#: doc/classes/TextureLayered.xml:51
msgid ""
"Partially sets the data for a specified [code]layer[/code] by overwriting "
"using the data of the specified [code]image[/code]. [code]x_offset[/code] "
"and [code]y_offset[/code] determine where the [Image] is \"stamped\" over "
"the texture. The [code]image[/code] must fit within the texture."
msgstr ""

#: doc/classes/TextureLayered.xml:59
#, fuzzy
msgid ""
"Sets the data for the specified layer. Data takes the form of a 2-"
"dimensional [Image] resource."
msgstr "返回[Mesh]资源指定表面的覆盖后的[Material]。"

#: doc/classes/TextureLayered.xml:65
#, fuzzy
msgid "Returns a dictionary with all the data used by this texture."
msgstr "返回此层使用的画布的RID。"

#: doc/classes/TextureLayered.xml:68
msgid "Specifies which [enum Flags] apply to this texture."
msgstr ""

#: doc/classes/TextureLayered.xml:73
msgid ""
"Default flags for [TextureArray]. [constant FLAG_MIPMAPS], [constant "
"FLAG_REPEAT] and [constant FLAG_FILTER] are enabled."
msgstr ""

#: doc/classes/TextureLayered.xml:76
msgid "Default flags for [Texture3D]. [constant FLAG_FILTER] is enabled."
msgstr ""

#: doc/classes/TextureLayered.xml:79
#, fuzzy
msgid "Texture will generate mipmaps on creation."
msgstr "纹理不会重复。"

#: doc/classes/TextureLayered.xml:82
#, fuzzy
msgid "Texture will repeat when UV used is outside the 0-1 range."
msgstr "该指示器用于指示颜色值在0-1范围之外。"

#: doc/classes/TextureLayered.xml:85
msgid ""
"Use filtering when reading from texture. Filtering smooths out pixels. "
"Turning filtering off is slightly faster and more appropriate when you need "
"access to individual pixels."
msgstr ""

#: doc/classes/TextureProgress.xml:4
msgid ""
"Texture-based progress bar. Useful for loading screens and life or stamina "
"bars."
msgstr "基于纹理的进度条。适用于加载屏幕和生命或体力条。"

#: doc/classes/TextureProgress.xml:7
msgid ""
"TextureProgress works like [ProgressBar], but uses up to 3 textures instead "
"of Godot's [Theme] resource. It can be used to create horizontal, vertical "
"and radial progress bars."
msgstr ""
"TextureProgress的工作原理与[ProgressBar]类似,但最多使用3个纹理,而不是Godot"
"的[Theme]资源。它可以用来创建水平、垂直和径向的进度条。"

#: doc/classes/TextureProgress.xml:28
msgid "The fill direction. See [enum FillMode] for possible values."
msgstr "填充方向。有关可能的值,参见[enum FillMode]。"

#: doc/classes/TextureProgress.xml:32
msgid ""
"If [code]true[/code], Godot treats the bar's textures like in "
"[NinePatchRect]. Use the [code]stretch_margin_*[/code] properties like "
"[member stretch_margin_bottom] to set up the nine patch's 3×3 grid. When "
"using a radial [member fill_mode], this setting will enable stretching."
msgstr ""
"如果[code]true[/code],Godot会像在[NinePatchRect]中那样处理条形纹理。使用"
"[code]stretch_margin_*[/code]属性,如[member stretch_margin_bottom]来设置九宫"
"格的3×3网格。当使用径向的[member fill_mode]时,这个设置将启用拉伸功能。"

#: doc/classes/TextureProgress.xml:35
msgid ""
"Offsets [member texture_progress] if [member fill_mode] is [constant "
"FILL_CLOCKWISE] or [constant FILL_COUNTER_CLOCKWISE]."
msgstr ""
"如果[member fill_mode]是[constant FILL_CLOCKWISE]或[constant "
"FILL_COUNTER_CLOCKWISE],则对[member texture_progress]进行偏移。"

#: doc/classes/TextureProgress.xml:38
msgid ""
"Upper limit for the fill of [member texture_progress] if [member fill_mode] "
"is [constant FILL_CLOCKWISE] or [constant FILL_COUNTER_CLOCKWISE]. When the "
"node's [code]value[/code] is equal to its [code]max_value[/code], the "
"texture fills up to this angle.\n"
"See [member Range.value], [member Range.max_value]."
msgstr ""
"如果[member fill_mode]是[constant FILL_CLOCKWISE]或[constant "
"FILL_COUNTER_CLOCKWISE],则为[member texture_progress]的填充上限。当节点的"
"[code]value[/code]等于其[code]max_value[/code]时,纹理会填充到这个角度。\n"
"参见[member Range.value], [member Range.max_value]。"

#: doc/classes/TextureProgress.xml:42
msgid ""
"Starting angle for the fill of [member texture_progress] if [member "
"fill_mode] is [constant FILL_CLOCKWISE] or [constant "
"FILL_COUNTER_CLOCKWISE]. When the node's [code]value[/code] is equal to its "
"[code]min_value[/code], the texture doesn't show up at all. When the "
"[code]value[/code] increases, the texture fills and tends towards [member "
"radial_fill_degrees]."
msgstr ""
"如果[member fill_mode]是[constant FILL_CLOCKWISE]或[constant "
"FILL_COUNTER_CLOCKWISE],[member texture_progress]的填充起始角度。当节点的"
"[code]value[/code]等于其[code]min_value[/code]时,纹理根本不会显示出来。当"
"[code]value[/code]增加时,纹理会被填满并趋向于[member radial_fill_degrees]。"

#: doc/classes/TextureProgress.xml:45
msgid ""
"The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's "
"bottom corners and side will have a height of 16 pixels. You can set all 4 "
"margin values individually to create panels with non-uniform borders."
msgstr ""
"九宫格底行的高度。边距为16意味着九宫格的底角和侧面将有16像素的高度。你可以单"
"独设置所有4个边距值,来创建具有非统一边框的面板。"

#: doc/classes/TextureProgress.xml:48
msgid "The width of the 9-patch's left column."
msgstr "九宫格左列的宽度。"

#: doc/classes/TextureProgress.xml:51
msgid "The width of the 9-patch's right column."
msgstr "九宫格右列的宽度。"

#: doc/classes/TextureProgress.xml:54
msgid "The height of the 9-patch's top row."
msgstr "九宫格顶行的高度。"

#: doc/classes/TextureProgress.xml:57
#, fuzzy
msgid ""
"[Texture] that draws over the progress bar. Use it to add highlights or an "
"upper-frame that hides part of [member texture_progress]."
msgstr ""
"在进度条上绘制的[Texture2D]。用它来添加高亮或一个隐藏部分[member "
"texture_progress]上面的帧。"

#: doc/classes/TextureProgress.xml:60
#, fuzzy
msgid ""
"[Texture] that clips based on the node's [code]value[/code] and [member "
"fill_mode]. As [code]value[/code] increased, the texture fills up. It shows "
"entirely when [code]value[/code] reaches [code]max_value[/code]. It doesn't "
"show at all if [code]value[/code] is equal to [code]min_value[/code].\n"
"The [code]value[/code] property comes from [Range]. See [member Range."
"value], [member Range.min_value], [member Range.max_value]."
msgstr ""
"[Texture2D],根据节点的[code]value[/code]和[member fill_mode]进行裁剪。随着"
"[code]value[/code]的增加,纹理将被填满。当[code]value[/code]达到"
"[code]max_value[/code]时,将完全显示。如果[code]value[/code]等于"
"[code]min_value[/code],就完全不显示了。\n"
"[code]value[/code]属性来自[Range]。参见[member Range.value],[member Range."
"min_value],[member Range.max_value]。"

#: doc/classes/TextureProgress.xml:64
msgid ""
"The offset of [member texture_progress]. Useful for [member texture_over] "
"and [member texture_under] with fancy borders, to avoid transparent margins "
"in your progress texture."
msgstr ""

#: doc/classes/TextureProgress.xml:67
#, fuzzy
msgid "[Texture] that draws under the progress bar. The bar's background."
msgstr "[Texture2D],在进度条下面绘制的背景。"

#: doc/classes/TextureProgress.xml:70
msgid ""
"Multiplies the color of the bar's [code]texture_over[/code] texture. The "
"effect is similar to [member CanvasItem.modulate], except it only affects "
"this specific texture instead of the entire node."
msgstr ""
"将条形的 [code]texture_over[/code] 纹理的颜色相乘。其效果类似于 [member "
"CanvasItem.modulate] ,只是它只影响这个特定的纹理,而不是整个节点。"

#: doc/classes/TextureProgress.xml:73
msgid ""
"Multiplies the color of the bar's [code]texture_progress[/code] texture."
msgstr "将条形的 [code]texture_progress[/code] 纹理的颜色相乘。"

#: doc/classes/TextureProgress.xml:76
msgid "Multiplies the color of the bar's [code]texture_under[/code] texture."
msgstr "将条形的 [code]texture_under[/code] 纹理的颜色相乘。"

#: doc/classes/TextureProgress.xml:81
msgid "The [member texture_progress] fills from left to right."
msgstr "[member texture_progress]从左到右填充。"

#: doc/classes/TextureProgress.xml:84
msgid "The [member texture_progress] fills from right to left."
msgstr "[member texture_progress] 从右到左填充。"

#: doc/classes/TextureProgress.xml:87
msgid "The [member texture_progress] fills from top to bottom."
msgstr "[member texture_progress] 从上到下填充。"

#: doc/classes/TextureProgress.xml:90
msgid "The [member texture_progress] fills from bottom to top."
msgstr "[member texture_progress] 自下而上填充。"

#: doc/classes/TextureProgress.xml:93
msgid ""
"Turns the node into a radial bar. The [member texture_progress] fills "
"clockwise. See [member radial_center_offset], [member radial_initial_angle] "
"and [member radial_fill_degrees] to control the way the bar fills up."
msgstr ""
"将节点变成径向条形。[member texture_progress] 顺时针填充。参见[member "
"radial_center_offset]、[member radial_initial_angle]和[member "
"radial_fill_degrees]来控制条形填充的方式。"

#: doc/classes/TextureProgress.xml:96
msgid ""
"Turns the node into a radial bar. The [member texture_progress] fills "
"counterclockwise. See [member radial_center_offset], [member "
"radial_initial_angle] and [member radial_fill_degrees] to control the way "
"the bar fills up."
msgstr ""
"将节点变成径向条形。[member texture_progress]逆时针填充。参见[member "
"radial_center_offset]、[member radial_initial_angle]和[member "
"radial_fill_degrees]来控制条形填充的方式。"

#: doc/classes/TextureProgress.xml:99
msgid ""
"The [member texture_progress] fills from the center, expanding both towards "
"the left and the right."
msgstr "[member texture_progress]从中心开始填充,向左和向右扩展。"

#: doc/classes/TextureProgress.xml:102
msgid ""
"The [member texture_progress] fills from the center, expanding both towards "
"the top and the bottom."
msgstr "[member texture_progress]从中心开始填充,同时向顶部和底部扩展。"

#: doc/classes/TextureProgress.xml:105
msgid ""
"Turns the node into a radial bar. The [member texture_progress] fills "
"radially from the center, expanding both clockwise and counterclockwise. See "
"[member radial_center_offset], [member radial_initial_angle] and [member "
"radial_fill_degrees] to control the way the bar fills up."
msgstr ""
"将节点变成径向条形。[member texture_progress]从中心径向填充,顺时针和逆时针扩"
"展。参见[member radial_center_offset]、[member radial_initial_angle]和"
"[member radial_fill_degrees]来控制条形填充的方式。"

#: doc/classes/TextureRect.xml:4
msgid "Control for drawing textures."
msgstr "控件绘制纹理。"

#: doc/classes/TextureRect.xml:7
#, fuzzy
msgid ""
"Used to draw icons and sprites in a user interface. The texture's placement "
"can be controlled with the [member stretch_mode] property. It can scale, "
"tile, or stay centered inside its bounding rectangle.\n"
"[b]Note:[/b] You should enable [member flip_v] when using a TextureRect to "
"display a [ViewportTexture]. Alternatively, you can enable [member Viewport."
"render_target_v_flip] on the Viewport. Otherwise, the image will appear "
"upside down."
msgstr ""
"用于在用户界面上绘制图标和精灵。纹理的位置可以通过[member stretch_mode]属性来"
"控制。它可以缩放、平铺,或在其边界矩形内居中。"

#: doc/classes/TextureRect.xml:17
msgid "If [code]true[/code], the texture scales to fit its bounding rectangle."
msgstr "如果为 [code]true[/code],纹理缩放以适合其边界矩形。"

#: doc/classes/TextureRect.xml:27
msgid ""
"Controls the texture's behavior when resizing the node's bounding rectangle. "
"See [enum StretchMode]."
msgstr "控件纹理在调整节点边界矩形时的行为。参见[enum StretchMode]。"

#: doc/classes/TextureRect.xml:30
#, fuzzy
msgid "The node's [Texture] resource."
msgstr "节点的 [Texture2D] 资源。"

#: doc/classes/TextureRect.xml:35
msgid ""
"Scale to fit the node's bounding rectangle, only if [code]expand[/code] is "
"[code]true[/code]. Default [code]stretch_mode[/code], for backwards "
"compatibility. Until you set [code]expand[/code] to [code]true[/code], the "
"texture will behave like [constant STRETCH_KEEP]."
msgstr ""
"缩放以适应节点的边界矩形,只有当[code]expand[/code]为[code]true[/code]时生"
"效。默认为[code]stretch_mode[/code],用于向后兼容。在你将[code]expand[/code]"
"设置为[code]true[/code]之前,纹理会表现得像[constant STRETCH_KEEP]。"

#: doc/classes/TextureRect.xml:53
msgid ""
"Scale the texture to fit the node's bounding rectangle, center it and "
"maintain its aspect ratio."
msgstr "缩放纹理以适应节点的边界矩形,使其居中并保持其长宽比。"

#: doc/classes/Theme.xml:4
msgid "Theme for controls."
msgstr "控件的主题。"

#: doc/classes/Theme.xml:7
msgid ""
"A theme for skinning controls. Controls can be skinned individually, but for "
"complex applications, it's more practical to just create a global theme that "
"defines everything. This theme can be applied to any [Control]; the Control "
"and its children will automatically use it.\n"
"Theme resources can alternatively be loaded by writing them in a [code]."
"theme[/code] file, see the documentation for more information."
msgstr ""
"控件的外观主题。控件可以单独定制外观,单对于复杂应用程序而言,直接创建一个全"
"局的主题对整体进行定义更易于操作。主题可以应用于任何 [Control];该控件极其子"
"节点都会自动使用。\n"
"还可以通过编写 [code].theme[/code] 文件加载主题资源,更多信息见文档。"

#: doc/classes/Theme.xml:11
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/gui/gui_skinning.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/gui/gui_skinning.html"

#: doc/classes/Theme.xml:17
msgid "Clears all values on the theme."
msgstr "清除主题上的所有值。"

#: doc/classes/Theme.xml:25
#, fuzzy
msgid ""
"Clears the [Color] at [code]name[/code] if the theme has [code]node_type[/"
"code]."
msgstr ""
"如果主题包含 [code]type[/code],则清除名为 [code]name[/code] 的 [Color]颜色。"

#: doc/classes/Theme.xml:33
#, fuzzy
msgid ""
"Clears the constant at [code]name[/code] if the theme has [code]node_type[/"
"code]."
msgstr "如果主题包含 [code]type[/code],则清除名为 [code]name[/code] 的常量。"

#: doc/classes/Theme.xml:41
#, fuzzy
msgid ""
"Clears the [Font] at [code]name[/code] if the theme has [code]node_type[/"
"code]."
msgstr ""
"如果主题包含 [code]type[/code],则清除名为 [code]name[/code] 的 [Font]字体。"

#: doc/classes/Theme.xml:49
#, fuzzy
msgid ""
"Clears the icon at [code]name[/code] if the theme has [code]node_type[/code]."
msgstr "如果主题包含 [code]type[/code],则清除名为 [code]name[/code] 的图标。"

#: doc/classes/Theme.xml:57
#, fuzzy
msgid ""
"Clears [StyleBox] at [code]name[/code] if the theme has [code]node_type[/"
"code]."
msgstr ""
"如果主题包含 [code]type[/code],则清除名为 [code]name[/code] 的 [StyleBox]样"
"式盒。"

#: doc/classes/Theme.xml:66
#, fuzzy
msgid ""
"Clears the theme item of [code]data_type[/code] at [code]name[/code] if the "
"theme has [code]node_type[/code]."
msgstr "如果主题包含 [code]type[/code],则清除名为 [code]name[/code] 的常量。"

#: doc/classes/Theme.xml:72
msgid "Sets the theme's values to a copy of the default theme values."
msgstr "将主题的取值设置为默认主题的副本。"

#: doc/classes/Theme.xml:79
msgid "Sets the theme's values to a copy of a given theme."
msgstr "将主题的取值设置为指定主题的副本。"

#: doc/classes/Theme.xml:87
#, fuzzy
msgid ""
"Returns the [Color] at [code]name[/code] if the theme has [code]node_type[/"
"code]."
msgstr ""
"如果主题包含 [code]type[/code],则返回名为 [code]name[/code] 的 [Color]颜色。"

#: doc/classes/Theme.xml:94
#, fuzzy
msgid ""
"Returns all the [Color]s as a [PoolStringArray] filled with each [Color]'s "
"name, for use in [method get_color], if the theme has [code]node_type[/code]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的[Color]颜"
"色,并填入每个[Color]颜色的名称,供[method get_color]使用。"

#: doc/classes/Theme.xml:100
#, fuzzy
msgid ""
"Returns all the [Color] types as a [PoolStringArray] filled with unique type "
"names, for use in [method get_color] and/or [method get_color_list]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的[Color]颜"
"色,并填入每个[Color]颜色的名称,供[method get_color]使用。"

#: doc/classes/Theme.xml:108
#, fuzzy
msgid ""
"Returns the constant at [code]name[/code] if the theme has [code]node_type[/"
"code]."
msgstr "如果主题包含 [code]type[/code],则返回名为 [code]name[/code] 的常量。"

#: doc/classes/Theme.xml:115
#, fuzzy
msgid ""
"Returns all the constants as a [PoolStringArray] filled with each constant's "
"name, for use in [method get_constant], if the theme has [code]node_type[/"
"code]."
msgstr ""
"如果主题包含[code]type[/code],则将所有常量作为[PackedStringArray]返回,并填"
"充每个常量的名称,供[method get_constant]使用。"

#: doc/classes/Theme.xml:121
#, fuzzy
msgid ""
"Returns all the constant types as a [PoolStringArray] filled with unique "
"type names, for use in [method get_constant] and/or [method "
"get_constant_list]."
msgstr ""
"如果主题包含[code]type[/code],则将所有常量作为[PackedStringArray]返回,并填"
"充每个常量的名称,供[method get_constant]使用。"

#: doc/classes/Theme.xml:129
#, fuzzy
msgid ""
"Returns the [Font] at [code]name[/code] if the theme has [code]node_type[/"
"code]."
msgstr ""
"如果主题包含 [code]type[/code],则返回名为 [code]name[/code] 的 [Font]字体。"

#: doc/classes/Theme.xml:136
#, fuzzy
msgid ""
"Returns all the [Font]s as a [PoolStringArray] filled with each [Font]'s "
"name, for use in [method get_font], if the theme has [code]node_type[/code]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的[Font]字"
"体,并填入每个[Font]的名称,供[method get_font]使用。"

#: doc/classes/Theme.xml:142
#, fuzzy
msgid ""
"Returns all the [Font] types as a [PoolStringArray] filled with unique type "
"names, for use in [method get_font] and/or [method get_font_list]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的[Font]字"
"体,并填入每个[Font]的名称,供[method get_font]使用。"

#: doc/classes/Theme.xml:150
#, fuzzy
msgid ""
"Returns the icon [Texture] at [code]name[/code] if the theme has "
"[code]node_type[/code]."
msgstr ""
"如果主题包含 [code]type[/code],则返回名为 [code]name[/code] 的 [Texture2D] "
"图标。"

#: doc/classes/Theme.xml:157
#, fuzzy
msgid ""
"Returns all the icons as a [PoolStringArray] filled with each [Texture]'s "
"name, for use in [method get_icon], if the theme has [code]node_type[/code]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的图标,并填"
"充每个[Texture2D]的名称,供[method get_icon]使用。"

#: doc/classes/Theme.xml:163
#, fuzzy
msgid ""
"Returns all the icon types as a [PoolStringArray] filled with unique type "
"names, for use in [method get_icon] and/or [method get_icon_list]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的图标,并填"
"充每个[Texture2D]的名称,供[method get_icon]使用。"

#: doc/classes/Theme.xml:171
msgid ""
"Returns the [StyleBox] at [code]name[/code] if the theme has "
"[code]node_type[/code].\n"
"Valid [code]name[/code]s may be found using [method get_stylebox_list]. "
"Valid [code]node_type[/code]s may be found using [method get_stylebox_types]."
msgstr ""

#: doc/classes/Theme.xml:179
#, fuzzy
msgid ""
"Returns all the [StyleBox]s as a [PoolStringArray] filled with each "
"[StyleBox]'s name, for use in [method get_stylebox], if the theme has "
"[code]node_type[/code].\n"
"Valid [code]node_type[/code]s may be found using [method get_stylebox_types]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的"
"[StyleBox],并填充每个[StyleBox]的名称,供[method get_stylebox]使用。"

#: doc/classes/Theme.xml:186
#, fuzzy
msgid ""
"Returns all the [StyleBox] types as a [PoolStringArray] filled with unique "
"type names, for use in [method get_stylebox] and/or [method "
"get_stylebox_list]."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的[StyleBox]"
"类型,填充每个[StyleBox]的类型,供[method get_stylebox]和[method "
"get_stylebox_list]使用。"

#: doc/classes/Theme.xml:195
msgid ""
"Returns the theme item of [code]data_type[/code] at [code]name[/code] if the "
"theme has [code]node_type[/code].\n"
"Valid [code]name[/code]s may be found using [method get_theme_item_list] or "
"a data type specific method. Valid [code]node_type[/code]s may be found "
"using [method get_theme_item_types] or a data type specific method."
msgstr ""

#: doc/classes/Theme.xml:204
msgid ""
"Returns all the theme items of [code]data_type[/code] as a [PoolStringArray] "
"filled with each theme items's name, for use in [method get_theme_item] or a "
"data type specific method, if the theme has [code]node_type[/code].\n"
"Valid [code]node_type[/code]s may be found using [method "
"get_theme_item_types] or a data type specific method."
msgstr ""

#: doc/classes/Theme.xml:212
#, fuzzy
msgid ""
"Returns all the theme items of [code]data_type[/code] types as a "
"[PoolStringArray] filled with unique type names, for use in [method "
"get_theme_item], [method get_theme_item_list] or data type specific methods."
msgstr ""
"如果主题包含[code]type[/code],则返回[PackedStringArray],是所有的[StyleBox]"
"类型,填充每个[StyleBox]的类型,供[method get_stylebox]和[method "
"get_stylebox_list]使用。"

#: doc/classes/Theme.xml:219
#, fuzzy
msgid ""
"Returns all the theme types as a [PoolStringArray] filled with unique type "
"names, for use in other [code]get_*[/code] functions of this theme.\n"
"[b]Note:[/b] [code]node_type[/code] has no effect and will be removed in "
"future version."
msgstr ""
"如果该主题包含[code]type[/code],将[code]type[/code]中的所有类型作为"
"[PackedStringArray]返回,以便在任何[code]get_*[/code]函数中使用。"

#: doc/classes/Theme.xml:228
#, fuzzy
msgid ""
"Returns [code]true[/code] if [Color] with [code]name[/code] is in "
"[code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
"如果[code]type[/code]中有带[code]name[/code]的[Color],则返回[code]true[/"
"code]。\n"
"如果主题没有该[code]type[/code],则返回[code]false[/code]。"

#: doc/classes/Theme.xml:237
#, fuzzy
msgid ""
"Returns [code]true[/code] if constant with [code]name[/code] is in "
"[code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
"如果[code]type[/code]中有带[code]name[/code]的常量,则返回[code]true[/"
"code]。\n"
"如果主题没有该[code]type[/code],则返回[code]false[/code]。"

#: doc/classes/Theme.xml:244
#, fuzzy
msgid ""
"Returns [code]true[/code] if this theme has a valid [member default_font] "
"value."
msgstr "如果有一个[member network_peer]设置,返回[code]true[/code]。"

#: doc/classes/Theme.xml:252
#, fuzzy
msgid ""
"Returns [code]true[/code] if [Font] with [code]name[/code] is in "
"[code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
"如果[code]type[/code]中有带[code]name[/code]的[Font]字体,则返回[code]true[/"
"code]。\n"
"如果主题没有该[code]type[/code],则返回[code]false[/code]。"

#: doc/classes/Theme.xml:261
#, fuzzy
msgid ""
"Returns [code]true[/code] if icon [Texture] with [code]name[/code] is in "
"[code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
"如果[code]type[/code]中有带[code]name[/code]的图标[Texture2D],则返回"
"[code]true[/code]。\n"
"如果主题没有该[code]type[/code],则返回[code]false[/code]。"

#: doc/classes/Theme.xml:270
#, fuzzy
msgid ""
"Returns [code]true[/code] if [StyleBox] with [code]name[/code] is in "
"[code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
"如果[code]type[/code]中有带[code]name[/code]的[StyleBox]样式盒,则返回"
"[code]true[/code]。\n"
"如果主题没有该[code]type[/code],则返回[code]false[/code]。"

#: doc/classes/Theme.xml:280
#, fuzzy
msgid ""
"Returns [code]true[/code] if a theme item of [code]data_type[/code] with "
"[code]name[/code] is in [code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
"如果[code]type[/code]中有带[code]name[/code]的[StyleBox]样式盒,则返回"
"[code]true[/code]。\n"
"如果主题没有该[code]type[/code],则返回[code]false[/code]。"

#: doc/classes/Theme.xml:288
msgid ""
"Adds missing and overrides existing definitions with values from the "
"[code]other[/code] [Theme].\n"
"[b]Note:[/b] This modifies the current theme. If you want to merge two "
"themes together without modifying either one, create a new empty theme and "
"merge the other two into it one after another."
msgstr ""

#: doc/classes/Theme.xml:298
#, fuzzy
msgid ""
"Renames the [Color] at [code]old_name[/code] to [code]name[/code] if the "
"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr ""
"如果主题包含 [code]type[/code],则返回名为 [code]name[/code] 的 [Color]颜色。"

#: doc/classes/Theme.xml:307
#, fuzzy
msgid ""
"Renames the constant at [code]old_name[/code] to [code]name[/code] if the "
"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr "如果主题包含 [code]type[/code],则返回名为 [code]name[/code] 的常量。"

#: doc/classes/Theme.xml:316
#, fuzzy
msgid ""
"Renames the [Font] at [code]old_name[/code] to [code]name[/code] if the "
"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr ""
"如果主题包含 [code]type[/code],则返回名为 [code]name[/code] 的 [Font]字体。"

#: doc/classes/Theme.xml:325
#, fuzzy
msgid ""
"Renames the icon at [code]old_name[/code] to [code]name[/code] if the theme "
"has [code]node_type[/code]. If [code]name[/code] is already taken, this "
"method fails."
msgstr ""
"如果主题包含[code]type[/code],返回[code]name[/code]处图标[StyleBox]的样式"
"盒。"

#: doc/classes/Theme.xml:334
#, fuzzy
msgid ""
"Renames [StyleBox] at [code]old_name[/code] to [code]name[/code] if the "
"theme has [code]node_type[/code]. If [code]name[/code] is already taken, "
"this method fails."
msgstr ""
"在[code]type[/code]的[code]name[/code]处,将主题的[StyleBox]设置为"
"[code]stylebox[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:344
#, fuzzy
msgid ""
"Renames the theme item of [code]data_type[/code] at [code]old_name[/code] to "
"[code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/"
"code] is already taken, this method fails."
msgstr ""
"在[code]type[/code]中的[code]name[/code]处,将主题的常量设置为"
"[code]constant[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:353
#, fuzzy
msgid ""
"Sets the theme's [Color] to [code]color[/code] at [code]name[/code] in "
"[code]node_type[/code].\n"
"Creates [code]node_type[/code] if the theme does not have it."
msgstr ""
"在[code]type[/code]中的[code]name[/code]处,将主题的[Color]颜色设置为"
"[code]color[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:363
#, fuzzy
msgid ""
"Sets the theme's constant to [code]constant[/code] at [code]name[/code] in "
"[code]node_type[/code].\n"
"Creates [code]node_type[/code] if the theme does not have it."
msgstr ""
"在[code]type[/code]中的[code]name[/code]处,将主题的常量设置为"
"[code]constant[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:373
#, fuzzy
msgid ""
"Sets the theme's [Font] to [code]font[/code] at [code]name[/code] in "
"[code]node_type[/code].\n"
"Creates [code]node_type[/code] if the theme does not have it."
msgstr ""
"在[code]type[/code]中的[code]name[/code]处,将主题的[Font]字体设置为"
"[code]font[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:383
#, fuzzy
msgid ""
"Sets the theme's icon [Texture] to [code]texture[/code] at [code]name[/code] "
"in [code]node_type[/code].\n"
"Creates [code]node_type[/code] if the theme does not have it."
msgstr ""
"在[code]type[/code]的[code]name[/code]处,将主题的图标[Texture2D]设置为"
"[code]texture[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:393
#, fuzzy
msgid ""
"Sets theme's [StyleBox] to [code]stylebox[/code] at [code]name[/code] in "
"[code]node_type[/code].\n"
"Creates [code]node_type[/code] if the theme does not have it."
msgstr ""
"在[code]type[/code]的[code]name[/code]处,将主题的[StyleBox]设置为"
"[code]stylebox[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:404
#, fuzzy
msgid ""
"Sets the theme item of [code]data_type[/code] to [code]value[/code] at "
"[code]name[/code] in [code]node_type[/code].\n"
"Does nothing if the [code]value[/code] type does not match [code]data_type[/"
"code].\n"
"Creates [code]node_type[/code] if the theme does not have it."
msgstr ""
"在[code]type[/code]的[code]name[/code]处,将主题的图标[Texture2D]设置为"
"[code]texture[/code]。\n"
"如果主题没有该[code]type[/code],则没有任何作用。"

#: doc/classes/Theme.xml:412
msgid ""
"The default font of this [Theme] resource. Used as a fallback value for font "
"items defined in this theme, but having invalid values. If this value is "
"also invalid, the global default value is used.\n"
"Use [method has_default_font] to check if this value is valid."
msgstr ""

#: doc/classes/Theme.xml:418
#, fuzzy
msgid "Theme's [Color] item type."
msgstr "雾的[Color]。"

#: doc/classes/Theme.xml:421
#, fuzzy
msgid "Theme's constant item type."
msgstr "常量的类型。"

#: doc/classes/Theme.xml:424
#, fuzzy
msgid "Theme's [Font] item type."
msgstr "常量的类型。"

#: doc/classes/Theme.xml:427
#, fuzzy
msgid "Theme's icon [Texture] item type."
msgstr "节点的 [Texture2D] 资源。"

#: doc/classes/Theme.xml:430
msgid "Theme's [StyleBox] item type."
msgstr ""

#: doc/classes/Theme.xml:433
#, fuzzy
msgid "Maximum value for the DataType enum."
msgstr "模式列举的最大值。"

#: doc/classes/Thread.xml:4
msgid "A unit of execution in a process."
msgstr "执行过程中的执行单元。"

#: doc/classes/Thread.xml:7
#, fuzzy
msgid ""
"A unit of execution in a process. Can run methods on [Object]s "
"simultaneously. The use of synchronization via [Mutex] or [Semaphore] is "
"advised if working with shared objects.\n"
"[b]Note:[/b] Breakpoints won't break on code if it's running in a thread. "
"This is a current limitation of the GDScript debugger."
msgstr ""
"执行过程中的执行单元。可以同时运行数个[Object]上的方法。如果与共享对象一起工"
"作,建议通过[Mutex]或[Semaphore]进行同步。"

#: doc/classes/Thread.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/threads/thread_safe_apis.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/threads/thread_safe_apis."
"html"

#: doc/classes/Thread.xml:19
#, fuzzy
msgid ""
"Returns the current [Thread]'s ID, uniquely identifying it among all "
"threads. If the [Thread] is not running this returns an empty string."
msgstr "返回当前[Thread]的ID,在所有线程中唯一的标识。"

#: doc/classes/Thread.xml:25
msgid ""
"Returns [code]true[/code] if this [Thread] is currently active. An active "
"[Thread] cannot start work on a new method but can be joined with [method "
"wait_to_finish]."
msgstr ""
"如果这个[Thread]线程当前处于激活状态,返回[code]true[/code]。一个激活的"
"[Thread]不能在一个新方法上开始运行,但可以与[method wait_to_finish]一起。"

#: doc/classes/Thread.xml:35
msgid ""
"Starts a new [Thread] that runs [code]method[/code] on object "
"[code]instance[/code] with [code]userdata[/code] passed as an argument. Even "
"if no userdata is passed, [code]method[/code] must accept one argument and "
"it will be null. The [code]priority[/code] of the [Thread] can be changed by "
"passing a value from the [enum Priority] enum.\n"
"Returns [constant OK] on success, or [constant ERR_CANT_CREATE] on failure."
msgstr ""
"启动一个新的[Thread]线程,在对象[code]instance[/code]上运行[code]method[/"
"code],并将[code]userdata[/code]作为一个参数传递。即使没有传递userdata,"
"[code]method[/code]也必须接受一个空的参数。[Thread]的[code]priority[/code]优"
"先级可以通过传递[enum Priority]枚举中的一个值来改变。\n"
"成功时返回[constant OK],失败时返回[constant ERR_CANT_CREATE] 。"

#: doc/classes/Thread.xml:42
msgid ""
"Joins the [Thread] and waits for it to finish. Returns what the method "
"called returned.\n"
"Should either be used when you want to retrieve the value returned from the "
"method called by the [Thread] or before freeing the instance that contains "
"the [Thread].\n"
"[b]Note:[/b] After the [Thread] finishes joining it will be disposed. If you "
"want to use it again you will have to create a new instance of it."
msgstr ""

#: doc/classes/Thread.xml:50
msgid "A thread running with lower priority than normally."
msgstr "一个线程以比正常情况下更低的优先级运行。"

#: doc/classes/Thread.xml:53
msgid "A thread with a standard priority."
msgstr "具有标准优先级的线程。"

#: doc/classes/Thread.xml:56
msgid "A thread running with higher priority than normally."
msgstr "以比正常情况更高的优先级运行的线程。"

#: doc/classes/TileMap.xml:4
msgid "Node for 2D tile-based maps."
msgstr "基于2D图块地图的节点。"

#: doc/classes/TileMap.xml:7
msgid ""
"Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a list "
"of tiles (textures plus optional collision, navigation, and/or occluder "
"shapes) which are used to create grid-based maps.\n"
"When doing physics queries against the tilemap, the cell coordinates are "
"encoded as [code]metadata[/code] for each detected collision shape returned "
"by methods such as [method Physics2DDirectSpaceState.intersect_shape], "
"[method Physics2DDirectBodyState.get_contact_collider_shape_metadata], etc."
msgstr ""

#: doc/classes/TileMap.xml:11 doc/classes/TileSet.xml:11
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/2d/using_tilemaps.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/2d/using_tilemaps.html"

#: doc/classes/TileMap.xml:14 doc/classes/TileSet.xml:14
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/111"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/TileMap.xml:23
msgid "Clears all cells."
msgstr "清除所有单元格。"

#: doc/classes/TileMap.xml:29
msgid "Clears cells that do not exist in the tileset."
msgstr "清除图块集中不存在的单元格。"

#: doc/classes/TileMap.xml:37
msgid ""
"Returns the tile index of the given cell. If no tile exists in the cell, "
"returns [constant INVALID_CELL]."
msgstr ""
"返回指定单元格的图块索引。如果单元格中没有图块,则返回[constant "
"INVALID_CELL]。"

#: doc/classes/TileMap.xml:45
msgid ""
"Returns the coordinate (subtile column and row) of the autotile variation in "
"the tileset. Returns a zero vector if the cell doesn't have autotiling."
msgstr ""
"返回图块集中自动图块变化的坐标(子图块列和行)。如果单元格没有自动图块,则返"
"回向量零。"

#: doc/classes/TileMap.xml:52
msgid ""
"Returns the tile index of the cell given by a Vector2. If no tile exists in "
"the cell, returns [constant INVALID_CELL]."
msgstr ""
"返回由Vector2指定的单元格的图块索引。如果单元格中没有图块,则返回[constant "
"INVALID_CELL]。"

#: doc/classes/TileMap.xml:59
msgid "Returns [code]true[/code] if the given collision layer bit is set."
msgstr "如果指定碰撞层的bit位被设置,返回[code]true[/code]。"

#: doc/classes/TileMap.xml:66
msgid "Returns [code]true[/code] if the given collision mask bit is set."
msgstr "如果指定碰撞遮罩bit位被设置,返回[code]true[/code]。"

#: doc/classes/TileMap.xml:72
msgid ""
"Returns a [Vector2] array with the positions of all cells containing a tile "
"from the tileset (i.e. a tile index different from [code]-1[/code])."
msgstr ""
"返回一个[Vector2]数组,其中包含图块集中所有单元格的位置(图块索引非[code]-1[/"
"code])。"

#: doc/classes/TileMap.xml:79
#, fuzzy
msgid ""
"Returns an array of all cells with the given tile index specified in "
"[code]id[/code]."
msgstr "返回所有具有指定图块[code]index[/code]索引的单元格的数组。"

#: doc/classes/TileMap.xml:85
msgid "Returns a rectangle enclosing the used (non-empty) tiles of the map."
msgstr "返回一个包围着地图中已使用非空图块的矩形。"

#: doc/classes/TileMap.xml:93
msgid ""
"Returns [code]true[/code] if the given cell is transposed, i.e. the X and Y "
"axes are swapped."
msgstr "如果指定单元格被转置,即X轴和Y轴互换,则返回[code]true[/code]。"

#: doc/classes/TileMap.xml:101
msgid "Returns [code]true[/code] if the given cell is flipped in the X axis."
msgstr "如果指定单元格在X轴上被翻转,则返回[code]true[/code]。"

#: doc/classes/TileMap.xml:109
msgid "Returns [code]true[/code] if the given cell is flipped in the Y axis."
msgstr "如果指定单元格在Y轴上被翻转,则返回[code]true[/code]。"

#: doc/classes/TileMap.xml:117
msgid ""
"Returns the local position of the top left corner of the cell corresponding "
"to the given tilemap (grid-based) coordinates.\n"
"To get the global position, use [method Node2D.to_global]:\n"
"[codeblock]\n"
"var local_position = my_tilemap.map_to_world(map_position)\n"
"var global_position = my_tilemap.to_global(local_position)\n"
"[/codeblock]\n"
"Optionally, the tilemap's half offset can be ignored."
msgstr ""

#: doc/classes/TileMap.xml:136
#, fuzzy
msgid ""
"Sets the tile index for the cell given by a Vector2.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped, transposed, or given autotile "
"coordinates. The autotile coordinate refers to the column and row of the "
"subtile.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
"update_dirty_quadrants].\n"
"Overriding this method also overrides it internally, allowing custom logic "
"to be implemented when tiles are placed/removed:\n"
"[codeblock]\n"
"func set_cell(x, y, tile, flip_x=false, flip_y=false, transpose=false, "
"autotile_coord=Vector2()):\n"
"    # Write your custom logic here.\n"
"    # To call the default method:\n"
"    .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)\n"
"[/codeblock]"
msgstr ""
"设置由Vector2指定的单元格的图块索引。\n"
"索引[code]-1[/code]将清除该单元。\n"
"也可以选择翻转、移位,或者指定自动图块。自动图块指的是子图块的列和行。\n"
"[b]注意:[/b] 由于性能原因,导航多边形和碰撞形状等数据不会立即更新。\n"
"如果你需要这些被立即更新,可以调用[method update_dirty_quadrants]。\n"
"重写这个方法也会在内部重写它,允许在放置/移除图块时,实现自定义逻辑。\n"
"[codeblock]\n"
"func set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)\n"
"    # 在这里写下你的自定义逻辑。\n"
"    # 调用默认方法。\n"
"    .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)\n"
"[/codeblock]"

#: doc/classes/TileMap.xml:158
msgid ""
"Sets the tile index for the given cell.\n"
"An index of [code]-1[/code] clears the cell.\n"
"Optionally, the tile can also be flipped or transposed.\n"
"[b]Note:[/b] Data such as navigation polygons and collision shapes are not "
"immediately updated for performance reasons.\n"
"If you need these to be immediately updated, you can call [method "
"update_dirty_quadrants]."
msgstr ""
"设置给定单元格的瓦片索引。\n"
"索引[code]-1[/code]会清除该单元。\n"
"也可以选择翻转或转置图块。\n"
"[b]注意:[/b] 由于性能原因,导航多边形和碰撞形状等数据不会立即更新。\n"
"如果你需要立即更新这些数据,可以调用[method update_dirty_quadrants]。"

#: doc/classes/TileMap.xml:170
msgid "Sets the given collision layer bit."
msgstr "设置指定碰撞层bit位。"

#: doc/classes/TileMap.xml:178
msgid "Sets the given collision mask bit."
msgstr "设置指定碰撞遮罩bit位。"

#: doc/classes/TileMap.xml:185
msgid ""
"Applies autotiling rules to the cell (and its adjacent cells) referenced by "
"its grid-based X and Y coordinates."
msgstr "对基于网格的X和Y坐标所引用的单元格,及其相邻单元格,应用自动平移规则。"

#: doc/classes/TileMap.xml:193
msgid ""
"Applies autotiling rules to the cells in the given region (specified by grid-"
"based X and Y coordinates).\n"
"Calling with invalid (or missing) parameters applies autotiling rules for "
"the entire tilemap."
msgstr ""
"对指定区域内的单元格应用自动平移规则,由基于网格的X和Y坐标指定。\n"
"用无效的或缺失的参数调用时,自动平铺规则应用于整个图块地图。"

#: doc/classes/TileMap.xml:200
msgid ""
"Updates the tile map's quadrants, allowing things such as navigation and "
"collision shapes to be immediately used if modified."
msgstr "更新图块地图的象限,允许如导航和碰撞形状等内容,在修改后立即使用。"

#: doc/classes/TileMap.xml:207
msgid ""
"Returns the tilemap (grid-based) coordinates corresponding to the given "
"local position.\n"
"To use this with a global position, first determine the local position with "
"[method Node2D.to_local]:\n"
"[codeblock]\n"
"var local_position = my_tilemap.to_local(global_position)\n"
"var map_position = my_tilemap.world_to_map(local_position)\n"
"[/codeblock]"
msgstr ""

#: doc/classes/TileMap.xml:218
msgid "If [code]true[/code], the cell's UVs will be clipped."
msgstr "如果[code]true[/code],单元格的UV将被剪裁。"

#: doc/classes/TileMap.xml:221
msgid "The custom [Transform2D] to be applied to the TileMap's cells."
msgstr "将应用到图块地图的,单元格的自定义[Transform2D]。"

#: doc/classes/TileMap.xml:224
msgid ""
"Amount to offset alternating tiles. See [enum HalfOffset] for possible "
"values."
msgstr "依次排列的图块的偏移量。有关可能的值,参阅[enum HalfOffset]。"

#: doc/classes/TileMap.xml:227
msgid ""
"The TileMap's quadrant size. Optimizes drawing by batching, using chunks of "
"this size."
msgstr "图块地图的象限大小。使用这个尺寸的图块,通过批处理优化绘制。"

#: doc/classes/TileMap.xml:230
msgid "The TileMap's cell size."
msgstr "图块地图的单元大小。"

#: doc/classes/TileMap.xml:233
msgid "Position for tile origin. See [enum TileOrigin] for possible values."
msgstr "图块原点的坐标。有关可能的值,参阅[enum TileOrigin]。"

#: doc/classes/TileMap.xml:236
#, fuzzy
msgid ""
"If [code]true[/code], the TileMap's direct children will be drawn in order "
"of their Y coordinate."
msgstr "如果[code]true[/code],图块地图的子节点将按其Y坐标的顺序绘制。"

#: doc/classes/TileMap.xml:239
msgid ""
"If [code]true[/code], the textures will be centered in the middle of each "
"tile. This is useful for certain isometric or top-down modes when textures "
"are made larger or smaller than the tiles (e.g. to avoid flickering on tile "
"edges). The offset is still applied, but from the center of the tile. If "
"used, [member compatibility_mode] is ignored.\n"
"If [code]false[/code], the texture position start in the top-left corner "
"unless [member compatibility_mode] is enabled."
msgstr ""
"如果[code]true[/code],纹理将被集中在每个图块的中间。这对某些等距或上帝视角的"
"模式很有用,当纹理被做得比图块大或小时,例如,为了避免瓷砖边缘的闪烁。偏移量"
"仍被应用,但从瓦片的中心开始。如果使用,[member compatibility_mode]会被忽"
"略。\n"
"如果[code]false[/code],纹理坐标从左上角开始,除非[member compatibility_mode]"
"被启用。"

#: doc/classes/TileMap.xml:243
msgid ""
"Bounce value for static body collisions (see [code]collision_use_kinematic[/"
"code])."
msgstr "静态体碰撞的反弹值,参阅[code]collision_use_kinematic[/code]。"

#: doc/classes/TileMap.xml:246
msgid ""
"Friction value for static body collisions (see "
"[code]collision_use_kinematic[/code])."
msgstr "静态体碰撞的摩擦值,参阅[code]collision_use_kinematic[/code]。"

#: doc/classes/TileMap.xml:249
msgid ""
"The collision layer(s) for all colliders in the TileMap. See [url=https://"
"docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction."
"html#collision-layers-and-masks]Collision layers and masks[/url] in the "
"documentation for more information."
msgstr ""

#: doc/classes/TileMap.xml:252
msgid ""
"The collision mask(s) for all colliders in the TileMap. See [url=https://"
"docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction."
"html#collision-layers-and-masks]Collision layers and masks[/url] in the "
"documentation for more information."
msgstr ""

#: doc/classes/TileMap.xml:255
msgid ""
"If [code]true[/code], TileMap collisions will be handled as a kinematic "
"body. If [code]false[/code], collisions will be handled as static body."
msgstr ""
"如果[code]true[/code],图块地图的碰撞将被当作运动体处理。如果[code]false[/"
"code],碰撞将被当作静态体来处理。"

#: doc/classes/TileMap.xml:258
msgid ""
"If [code]true[/code], this tilemap's collision shape will be added to the "
"collision shape of the parent. The parent has to be a [CollisionObject2D]."
msgstr ""
"如果[code]true[/code],这个图块地图的碰撞形状将被添加到父级的碰撞形状中。父级"
"必须是一个[CollisionObject2D]。"

#: doc/classes/TileMap.xml:261
msgid ""
"If [code]true[/code], the compatibility with the tilemaps made in Godot 3.1 "
"or earlier is maintained (textures move when the tile origin changes and "
"rotate if the texture size is not homogeneous). This mode presents problems "
"when doing [code]flip_h[/code], [code]flip_v[/code] and [code]transpose[/"
"code] tile operations on non-homogeneous isometric tiles (e.g. 2:1), in "
"which the texture could not coincide with the collision, thus it is not "
"recommended for isometric or non-square tiles.\n"
"If [code]false[/code], the textures do not move when doing [code]flip_h[/"
"code], [code]flip_v[/code] operations if no offset is used, nor when "
"changing the tile origin.\n"
"The compatibility mode doesn't work with the [member centered_textures] "
"option, because displacing textures with the [member cell_tile_origin] "
"option or in irregular tiles is not relevant when centering those textures."
msgstr ""
"如果[code]为true[/code],则保持与Godot 3.1或更早版本的图块地图的兼容性,即当"
"图块原点改变时,纹理会移动,如果纹理大小不均匀,则会旋转。这种模式对非同质等"
"距图块(例如2:1)进行[code]flip_h[/code], [code]flip_v[/code] 和 "
"[code]transpose[/code] 图块操作时,将出现问题,在这种情况下,纹理不能与碰撞重"
"合,因此不推荐用于等距或非方形图块。\n"
"如果[code]false[/code],在进行[code]flip_h[/code]、[code]flip_v[/code]操作"
"时,如果不使用偏移量,纹理不会移动,在改变图块原点时也是如此。\n"
"兼容性模式对[member centered_textures]选项不起作用,因为用[member "
"cell_tile_origin]选项或不规则图块中的纹理进行替换时,与这些纹理的居中项没有关"
"系。"

#: doc/classes/TileMap.xml:266
msgid "The TileMap orientation mode. See [enum Mode] for possible values."
msgstr "图块地图的方向模式。有关可能的值,参阅[enum Mode]。"

#: doc/classes/TileMap.xml:269
msgid ""
"The light mask assigned to all light occluders in the TileMap. The TileSet's "
"light occluders will cast shadows only from Light2D(s) that have the same "
"light mask(s)."
msgstr ""
"分配给图块地图中所有光遮挡器的光线遮罩。图块集的光遮挡器将只从具有相同光线遮"
"挡的Light2D中投射阴影。"

#: doc/classes/TileMap.xml:272
msgid ""
"If [code]true[/code], collision shapes are visible in the editor. Doesn't "
"affect collision shapes visibility at runtime. To show collision shapes at "
"runtime, enable [b]Visible Collision Shapes[/b] in the [b]Debug[/b] menu "
"instead."
msgstr ""

#: doc/classes/TileMap.xml:275
msgid "The assigned [TileSet]."
msgstr "指定的[TileSet]图块集。"

#: doc/classes/TileMap.xml:281
msgid "Emitted when a tilemap setting has changed."
msgstr "当图块地图设置发生变化时触发。"

#: doc/classes/TileMap.xml:287
msgid "Returned when a cell doesn't exist."
msgstr "当一个单元不存在时返回。"

#: doc/classes/TileMap.xml:290
msgid "Orthogonal orientation mode."
msgstr "正交定向模式。"

#: doc/classes/TileMap.xml:293
msgid "Isometric orientation mode."
msgstr "等距定向模式。"

#: doc/classes/TileMap.xml:296
msgid "Custom orientation mode."
msgstr "自定义方向模式。"

#: doc/classes/TileMap.xml:299
msgid "Half offset on the X coordinate."
msgstr "X坐标上的一半偏移。"

#: doc/classes/TileMap.xml:302
msgid "Half offset on the Y coordinate."
msgstr "Y坐标上的一半偏移。"

#: doc/classes/TileMap.xml:305
msgid "Half offset disabled."
msgstr "禁用半偏移。"

#: doc/classes/TileMap.xml:308
msgid "Half offset on the X coordinate (negative)."
msgstr "X坐标上的半偏移,负数。"

#: doc/classes/TileMap.xml:311
msgid "Half offset on the Y coordinate (negative)."
msgstr "Y坐标上的半偏移,负数。"

#: doc/classes/TileMap.xml:314
msgid "Tile origin at its top-left corner."
msgstr "图块原点在其左上角。"

#: doc/classes/TileMap.xml:317
msgid "Tile origin at its center."
msgstr "图块原点在其中心。"

#: doc/classes/TileMap.xml:320
msgid "Tile origin at its bottom-left corner."
msgstr "图块原点在其左下角。"

#: doc/classes/TileSet.xml:4
msgid "Tile library for tilemaps."
msgstr "图块地图的图块库。"

#: doc/classes/TileSet.xml:7
msgid ""
"A TileSet is a library of tiles for a [TileMap]. It contains a list of "
"tiles, each consisting of a sprite and optional collision shapes.\n"
"Tiles are referenced by a unique integer ID."
msgstr ""
"图块集是[TileMap]图块地图的一个图块库。它包含图块的列表,每个图块由一个精灵和"
"可选的碰撞形状组成。\n"
"图块由唯一的整数ID引用。"

#: doc/classes/TileSet.xml:42
msgid ""
"Determines when the auto-tiler should consider two different auto-tile IDs "
"to be bound together.\n"
"[b]Note:[/b] [code]neighbor_id[/code] will be [code]-1[/code] ([constant "
"TileMap.INVALID_CELL]) when checking a tile against an empty neighbor tile."
msgstr ""
"确定什么时候自动图块器应该考虑将两个不同的自动图块器ID绑定在一起。\n"
"[b]注意:[/b] [code]neighbour_id[/code]当检查一个图块与一个空的相邻图块时,将"
"是[code]-1[/code],即[constant TileMap.INVALID_CELL]。"

#: doc/classes/TileSet.xml:50
msgid "Clears all bitmask information of the autotile."
msgstr "清除自动图块的所有bit位掩码信息。"

#: doc/classes/TileSet.xml:58
msgid ""
"Returns the bitmask of the subtile from an autotile given its coordinates.\n"
"The value is the sum of the values in [enum AutotileBindings] present in the "
"subtile (e.g. a value of 5 means the bitmask has bindings in both the top "
"left and top right)."
msgstr ""
"返回给定坐标的自动图块中的子图块的bit位掩码。\n"
"该值是子图块中存在的[enum AutotileBindings]值的总和,例如,值为5意味着该bit位"
"掩码在左上角和右上角都有绑定。"

#: doc/classes/TileSet.xml:66
msgid "Returns the [enum BitmaskMode] of the autotile."
msgstr "返回自动图块的[enum BitmaskMode]bit位掩码模式。"

#: doc/classes/TileSet.xml:73
msgid ""
"Returns the subtile that's being used as an icon in an atlas/autotile given "
"its coordinates.\n"
"The subtile defined as the icon will be used as a fallback when the atlas/"
"autotile's bitmask information is incomplete. It will also be used to "
"represent it in the TileSet editor."
msgstr ""
"返回在图集或自动图块中作为图标使用的子图块,并给出其坐标。\n"
"在图集或自动图块的bit位掩码信息不完整时,定义为图标的子图块将用作备用。它也被"
"用于在图块集编辑器中表示它。"

#: doc/classes/TileSet.xml:82
msgid ""
"Returns the light occluder of the subtile from an atlas/autotile given its "
"coordinates."
msgstr "返回给定坐标的图集或自动图块中的子图块的光遮挡物。"

#: doc/classes/TileSet.xml:90
msgid ""
"Returns the navigation polygon of the subtile from an atlas/autotile given "
"its coordinates."
msgstr "返回指定坐标的图集或自动图块中,子图块的导航多边形。"

#: doc/classes/TileSet.xml:97
msgid "Returns the size of the subtiles in an atlas/autotile."
msgstr "返回图集或自动图块中,子图块的大小。"

#: doc/classes/TileSet.xml:104
msgid "Returns the spacing between subtiles of the atlas/autotile."
msgstr "返回图集或自动图块的子图块之间的间距。"

#: doc/classes/TileSet.xml:112
msgid ""
"Returns the priority of the subtile from an autotile given its coordinates.\n"
"When more than one subtile has the same bitmask value, one of them will be "
"picked randomly for drawing. Its priority will define how often it will be "
"picked."
msgstr ""
"返回指定坐标自动图块中的子图层的优先级。\n"
"当一个以上的子图块具有相同的bit位掩码值时,期中一个将被随机挑选出来,进行绘"
"制。它的优先级将决定被选中的频率。"

#: doc/classes/TileSet.xml:121
msgid ""
"Returns the drawing index of the subtile from an atlas/autotile given its "
"coordinates."
msgstr "返回指定坐标的图集或自动图块中,子图块的绘制索引。"

#: doc/classes/TileSet.xml:130
msgid ""
"Sets the bitmask of the subtile from an autotile given its coordinates.\n"
"The value is the sum of the values in [enum AutotileBindings] present in the "
"subtile (e.g. a value of 5 means the bitmask has bindings in both the top "
"left and top right)."
msgstr ""
"设置给定自动图块的子图块的bit位掩码,指定其坐标。\n"
"这个值是子图块中[enum AutotileBindings]的值的总和,例如,值为5意味着bit位掩码"
"在左上方和右上方都有绑定。"

#: doc/classes/TileSet.xml:139
msgid "Sets the [enum BitmaskMode] of the autotile."
msgstr "设置自动图块的[enum BitmaskMode]位掩码模式。"

#: doc/classes/TileSet.xml:147
msgid ""
"Sets the subtile that will be used as an icon in an atlas/autotile given its "
"coordinates.\n"
"The subtile defined as the icon will be used as a fallback when the atlas/"
"autotile's bitmask information is incomplete. It will also be used to "
"represent it in the TileSet editor."
msgstr ""
"设置在图集或自动图块中作为图标的子图层,并指定其坐标。\n"
"定义为图标的子图块,将在图集或自动图块的bit位掩码信息不完整时,被用作备用。它"
"也被用来在图块集编辑器中表示它。"

#: doc/classes/TileSet.xml:157
msgid ""
"Sets the light occluder of the subtile from an atlas/autotile given its "
"coordinates."
msgstr "设置来自图集或自动图块的子图块的光遮挡器,指定其坐标。"

#: doc/classes/TileSet.xml:166
msgid ""
"Sets the navigation polygon of the subtile from an atlas/autotile given its "
"coordinates."
msgstr "设置来自图集或自动图块的子图块的导航多边形,指定其坐标。"

#: doc/classes/TileSet.xml:174
msgid "Sets the size of the subtiles in an atlas/autotile."
msgstr "设置图集或自动图块中子图块的大小。"

#: doc/classes/TileSet.xml:182
msgid "Sets the spacing between subtiles of the atlas/autotile."
msgstr "设置图集或自动图块的子图块之间的间距。"

#: doc/classes/TileSet.xml:191
msgid ""
"Sets the priority of the subtile from an autotile given its coordinates.\n"
"When more than one subtile has the same bitmask value, one of them will be "
"picked randomly for drawing. Its priority will define how often it will be "
"picked."
msgstr ""
"设置一个自带坐标的子图块的优先级。\n"
"当多个子图块有相同的bit位掩码值时,其中之一将被随机挑选出来进行绘制。它的优先"
"级决定被选中的频率。"

#: doc/classes/TileSet.xml:201
msgid ""
"Sets the drawing index of the subtile from an atlas/autotile given its "
"coordinates."
msgstr "设置一个图集或自动图块中的子图块的绘制索引,指定其坐标。"

#: doc/classes/TileSet.xml:207
msgid "Clears all tiles."
msgstr "清除所有图块。"

#: doc/classes/TileSet.xml:214
msgid "Creates a new tile with the given ID."
msgstr "用给定的ID创建一个新的图块。"

#: doc/classes/TileSet.xml:221
msgid "Returns the first tile matching the given name."
msgstr "返回与给定名称相匹配的第一个图块。"

#: doc/classes/TileSet.xml:227
msgid ""
"Returns the ID following the last currently used ID, useful when creating a "
"new tile."
msgstr "返回当前使用的最后一个ID之后的ID,在创建新图块时很有用。"

#: doc/classes/TileSet.xml:233
msgid "Returns an array of all currently used tile IDs."
msgstr "返回当前使用的所有图块ID的数组。"

#: doc/classes/TileSet.xml:240
msgid "Removes the given tile ID."
msgstr "移除给定的图块ID。"

#: doc/classes/TileSet.xml:251
msgid "Adds a shape to the tile."
msgstr "在图块上添加一个形状。"

#: doc/classes/TileSet.xml:258
msgid "Returns the tile's light occluder."
msgstr "返回该图块的光遮挡器。"

#: doc/classes/TileSet.xml:265
msgid "Returns the tile's material."
msgstr "返回图块的材质。"

#: doc/classes/TileSet.xml:272
msgid "Returns the tile's modulation color."
msgstr "返回图块的调制颜色。"

#: doc/classes/TileSet.xml:279
msgid "Returns the tile's name."
msgstr "返回图块的名称。"

#: doc/classes/TileSet.xml:286
msgid "Returns the navigation polygon of the tile."
msgstr "返回图块的导航多边形。"

#: doc/classes/TileSet.xml:293
msgid "Returns the offset of the tile's navigation polygon."
msgstr "返回图块的导航多边形的偏移量。"

#: doc/classes/TileSet.xml:300
msgid "Returns the tile's normal map texture."
msgstr "返回图块的法线贴图纹理。"

#: doc/classes/TileSet.xml:307
msgid "Returns the offset of the tile's light occluder."
msgstr "返回图块的光遮挡器的偏移量。"

#: doc/classes/TileSet.xml:314
msgid "Returns the tile sub-region in the texture."
msgstr "返回纹理中图块的子区域。"

#: doc/classes/TileSet.xml:322
msgid "Returns a tile's given shape."
msgstr "返回图块的指定形状。"

#: doc/classes/TileSet.xml:329
msgid "Returns the number of shapes assigned to a tile."
msgstr "返回分配给图块的形状数量。"

#: doc/classes/TileSet.xml:337
msgid "Returns the offset of a tile's shape."
msgstr "返回图块形状的偏移量。"

#: doc/classes/TileSet.xml:345
msgid "Returns the one-way collision value of a tile's shape."
msgstr "返回图块形状的单向碰撞值。"

#: doc/classes/TileSet.xml:360
msgid "Returns the [Transform2D] of a tile's shape."
msgstr "返回图块形状的[Transform2D]。"

#: doc/classes/TileSet.xml:367
msgid ""
"Returns an array of dictionaries describing the tile's shapes.\n"
"[b]Dictionary structure in the array returned by this method:[/b]\n"
"[codeblock]\n"
"{\n"
"    \"autotile_coord\": Vector2,\n"
"    \"one_way\": bool,\n"
"    \"one_way_margin\": int,\n"
"    \"shape\": CollisionShape2D,\n"
"    \"shape_transform\": Transform2D,\n"
"}\n"
"[/codeblock]"
msgstr ""
"返回描述图块形状的字典数组。\n"
"[b]此方法返回数组中的字典结构:[/b]\n"
"[codeblock]\n"
"{\n"
"    \"autotile_coord\": Vector2,\n"
"    \"one_way\": bool,\n"
"    \"one_way_margin\": int,\n"
"    \"shape\": CollisionShape2D,\n"
"    \"shape_transform\": Transform2D,\n"
"}\n"
"[/codeblock]"

#: doc/classes/TileSet.xml:384
msgid "Returns the tile's texture."
msgstr "返回图块的纹理。"

#: doc/classes/TileSet.xml:391
msgid "Returns the texture offset of the tile."
msgstr "返回图块的纹理偏移量。"

#: doc/classes/TileSet.xml:398
msgid "Returns the tile's [enum TileMode]."
msgstr "返回图块的[enum TileMode]。"

#: doc/classes/TileSet.xml:405
msgid "Returns the tile's Z index (drawing layer)."
msgstr "返回图块的Z索引,即绘制层。"

#: doc/classes/TileSet.xml:413
msgid "Sets a light occluder for the tile."
msgstr "为图块设置光遮挡器。"

#: doc/classes/TileSet.xml:421
msgid "Sets the tile's material."
msgstr "设置图块的材质。"

#: doc/classes/TileSet.xml:429
msgid "Sets the tile's modulation color."
msgstr "设置图块的调制颜色。"

#: doc/classes/TileSet.xml:437
msgid "Sets the tile's name."
msgstr "设置图块的名称。"

#: doc/classes/TileSet.xml:445
msgid "Sets the tile's navigation polygon."
msgstr "设置图块的导航多边形。"

#: doc/classes/TileSet.xml:453
msgid "Sets an offset for the tile's navigation polygon."
msgstr "为图块的导航多边形设置一个偏移。"

#: doc/classes/TileSet.xml:461
msgid ""
"Sets the tile's normal map texture.\n"
"[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ coordinates. "
"See [url=http://wiki.polycount.com/wiki/"
"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for "
"a comparison of normal map coordinates expected by popular engines."
msgstr ""
"设置图块的法线贴图纹理。\n"
"[b]注意:[/b] Godot希望法线贴图使用X+、Y-和Z+坐标。请参阅[url=http://wiki."
"polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]本"
"页面[/url],了解和比较流行引擎所期望的法线贴图坐标。"

#: doc/classes/TileSet.xml:470
msgid "Sets an offset for the tile's light occluder."
msgstr "为图块的光遮挡器设置一个偏移量。"

#: doc/classes/TileSet.xml:478
msgid ""
"Sets the tile's sub-region in the texture. This is common in texture atlases."
msgstr "设置图块在纹理中的子区域。这在纹理图集中很常见。"

#: doc/classes/TileSet.xml:487
msgid "Sets a shape for the tile, enabling collision."
msgstr "为图块设置形状,实现碰撞。"

#: doc/classes/TileSet.xml:496
msgid "Sets the offset of a tile's shape."
msgstr "设置图块形状的偏移量。"

#: doc/classes/TileSet.xml:505
msgid "Enables one-way collision on a tile's shape."
msgstr "启用图块形状上的单向碰撞。"

#: doc/classes/TileSet.xml:522
msgid "Sets a [Transform2D] on a tile's shape."
msgstr "在图块的形状上设置[Transform2D]。"

#: doc/classes/TileSet.xml:530
msgid "Sets an array of shapes for the tile, enabling collision."
msgstr "为图块设置一个形状数组,实现碰撞。"

#: doc/classes/TileSet.xml:538
msgid "Sets the tile's texture."
msgstr "设置图块的纹理。"

#: doc/classes/TileSet.xml:546
msgid "Sets the tile's texture offset."
msgstr "设置图块的纹理偏移。"

#: doc/classes/TileSet.xml:554
msgid "Sets the tile's [enum TileMode]."
msgstr "设置图块的[enum TileMode]。"

#: doc/classes/TileSet.xml:562
msgid "Sets the tile's drawing index."
msgstr "设置图块的绘制索引。"

#: doc/classes/Timer.xml:4
msgid "A countdown timer."
msgstr "倒数计时器。"

#: doc/classes/Timer.xml:7
#, fuzzy
msgid ""
"Counts down a specified interval and emits a signal on reaching 0. Can be "
"set to repeat or \"one-shot\" mode.\n"
"[b]Note:[/b] To create a one-shot timer without instantiating a node, use "
"[method SceneTree.create_timer]."
msgstr ""
"按指定间隔进行计数,在达到0时触发信号。 可设置为重复或“一次性”模式。\n"
"[b]注意:[/b]要创建一个一次性定时器,而不需要实例化一个节点,请使用[method "
"SceneTree.create_timer]。"

#: doc/classes/Timer.xml:17
msgid "Returns [code]true[/code] if the timer is stopped."
msgstr "如果定时器被停止,返回[code]true[/code]。"

#: doc/classes/Timer.xml:24
#, fuzzy
msgid ""
"Starts the timer. Sets [code]wait_time[/code] to [code]time_sec[/code] if "
"[code]time_sec > 0[/code]. This also resets the remaining time to "
"[code]wait_time[/code].\n"
"[b]Note:[/b] This method will not resume a paused timer. See [member paused]."
msgstr ""
"启动定时器。如果[code]time_sec>0[/code],将[code]wait_time[/code]设置为"
"[code]time_sec[/code]。这也会将剩余时间重置为[code]wait_time[/code]。\n"
"[b]注意:[/b]这个方法不会恢复一个暂停的定时器。参阅[member paused]。"

#: doc/classes/Timer.xml:31
msgid "Stops the timer."
msgstr "停止定时器。"

#: doc/classes/Timer.xml:37
msgid ""
"If [code]true[/code], the timer will automatically start when entering the "
"scene tree.\n"
"[b]Note:[/b] This property is automatically set to [code]false[/code] after "
"the timer enters the scene tree and starts."
msgstr ""
"如果[code]true[/code],定时器将在进入场景树时自动启动。\n"
"[b]注意:[/b]在定时器进入场景树并启动后,该属性会自动设置为[code]false[/"
"code]。"

#: doc/classes/Timer.xml:41
msgid ""
"If [code]true[/code], the timer will stop when reaching 0. If [code]false[/"
"code], it will restart."
msgstr ""
"如果[code]true[/code],定时器将在达到0时停止。 如果[code]false[/code],它将重"
"新启动。"

#: doc/classes/Timer.xml:44
msgid ""
"If [code]true[/code], the timer is paused and will not process until it is "
"unpaused again, even if [method start] is called."
msgstr ""
"如果[code]true[/code],定时器会被暂停,并且不再处理,即使调用[method start],"
"直到它被取消暂停。"

#: doc/classes/Timer.xml:47
msgid "Processing mode. See [enum TimerProcessMode]."
msgstr "处理模式。参阅[enum TimerProcessMode]。"

#: doc/classes/Timer.xml:50
msgid ""
"The timer's remaining time in seconds. Returns 0 if the timer is inactive.\n"
"[b]Note:[/b] You cannot set this value. To change the timer's remaining "
"time, use [method start]."
msgstr ""
"定时器的剩余时间,单位是秒。如果定时器处于非激活状态,则返回0。\n"
"[b]注意:[/b] 你不能设置这个值。要改变定时器的剩余时间,请使用[method "
"start]。"

#: doc/classes/Timer.xml:54
msgid "Wait time in seconds."
msgstr "以秒为单位的等待时间。"

#: doc/classes/Timer.xml:66
msgid ""
"Update the timer during the physics step at each frame (fixed framerate "
"processing)."
msgstr "在每一帧的物理运算步骤中更新定时器,即固定帧率处理。"

#: doc/classes/Timer.xml:69
msgid "Update the timer during the idle time at each frame."
msgstr "在每一帧空闲时间内更新定时器。"

#: doc/classes/ToolButton.xml:4
msgid "Flat button helper class."
msgstr ""

#: doc/classes/ToolButton.xml:7
msgid ""
"This is a helper class to generate a flat [Button] (see [member Button."
"flat]), creating a [ToolButton] is equivalent to:\n"
"[codeblock]\n"
"var btn = Button.new()\n"
"btn.flat = true\n"
"[/codeblock]"
msgstr ""

#: doc/classes/ToolButton.xml:24
#, fuzzy
msgid "[StyleBox] used when the [ToolButton] is disabled."
msgstr "当[Button]被禁用时,使用[StyleBox]。"

#: doc/classes/ToolButton.xml:27
#, fuzzy
msgid ""
"[StyleBox] used when the [ToolButton] is focused. It is displayed over the "
"current [StyleBox], so using [StyleBoxEmpty] will just disable the focus "
"visual effect."
msgstr ""
"当[Button]获得焦点时使用的[StyleBox]。它显示在当前的[StyleBox]之上,所以使用"
"[StyleBoxEmpty]只是禁用焦点视觉效果。"

#: doc/classes/ToolButton.xml:30
#, fuzzy
msgid "[Font] of the [ToolButton]'s text."
msgstr "[Button]文本的[Font]。"

#: doc/classes/ToolButton.xml:33
#, fuzzy
msgid "Default text [Color] of the [ToolButton]."
msgstr "[Button]的默认文本[Color]。"

#: doc/classes/ToolButton.xml:36
#, fuzzy
msgid "Text [Color] used when the [ToolButton] is disabled."
msgstr "禁用[Button]时使用的文本[Color]。"

#: doc/classes/ToolButton.xml:39
#, fuzzy
msgid "Text [Color] used when the [ToolButton] is being hovered."
msgstr "悬停[Button]时使用的文本[Color]。"

#: doc/classes/ToolButton.xml:42
#, fuzzy
msgid "Text [Color] used when the [ToolButton] is being pressed."
msgstr "正在按下 [Button] 时使用的文本 [Color] 。"

#: doc/classes/ToolButton.xml:45
#, fuzzy
msgid "[StyleBox] used when the [ToolButton] is being hovered."
msgstr "悬停[Button]时使用的[StyleBox]。"

#: doc/classes/ToolButton.xml:48
#, fuzzy
msgid "The horizontal space between [ToolButton]'s icon and text."
msgstr "[Button]的图标和文本之间的水平间距。"

#: doc/classes/ToolButton.xml:51
#, fuzzy
msgid "Default [StyleBox] for the [ToolButton]."
msgstr "[Button]的默认[StyleBox]。"

#: doc/classes/ToolButton.xml:54
#, fuzzy
msgid "[StyleBox] used when the [ToolButton] is being pressed."
msgstr "按下[Button]时使用的[StyleBox]。"

#: doc/classes/TouchScreenButton.xml:4
#, fuzzy
msgid "Button for touch screen devices for gameplay use."
msgstr "触摸屏设备的按钮。"

#: doc/classes/TouchScreenButton.xml:7
msgid ""
"TouchScreenButton allows you to create on-screen buttons for touch devices. "
"It's intended for gameplay use, such as a unit you have to touch to move. "
"Unlike [Button], TouchScreenButton supports multitouch out of the box. "
"Several TouchScreenButtons can be pressed at the same time with touch "
"input.\n"
"This node inherits from [Node2D]. Unlike with [Control] nodes, you cannot "
"set anchors on it. If you want to create menus or user interfaces, you may "
"want to use [Button] nodes instead. To make button nodes react to touch "
"events, you can enable the Emulate Mouse option in the Project Settings.\n"
"You can configure TouchScreenButton to be visible only on touch devices, "
"helping you develop your game both for desktop and mobile devices."
msgstr ""

#: doc/classes/TouchScreenButton.xml:17
msgid "Returns [code]true[/code] if this button is currently pressed."
msgstr "如果这个按钮当前被按下,则返回[code]true[/code]。"

#: doc/classes/TouchScreenButton.xml:23
msgid "The button's action. Actions can be handled with [InputEventAction]."
msgstr "按钮的动作。动作可以用[InputEventAction]来处理。"

#: doc/classes/TouchScreenButton.xml:26
msgid "The button's bitmask."
msgstr "按钮的bit位掩码。"

#: doc/classes/TouchScreenButton.xml:29
msgid "The button's texture for the normal state."
msgstr "该按钮在正常状态下的纹理。"

#: doc/classes/TouchScreenButton.xml:32
msgid ""
"If [code]true[/code], the [signal pressed] and [signal released] signals are "
"emitted whenever a pressed finger goes in and out of the button, even if the "
"pressure started outside the active area of the button.\n"
"[b]Note:[/b] This is a \"pass-by\" (not \"bypass\") press mode."
msgstr ""

#: doc/classes/TouchScreenButton.xml:36
msgid "The button's texture for the pressed state."
msgstr "按钮在被按下状态时的纹理。"

#: doc/classes/TouchScreenButton.xml:39
msgid "The button's shape."
msgstr "该按钮的形状。"

#: doc/classes/TouchScreenButton.xml:42
msgid ""
"If [code]true[/code], the button's shape is centered in the provided "
"texture. If no texture is used, this property has no effect."
msgstr ""
"如果[code]true[/code],按钮的形状会在提供的纹理中居中。如果没有使用纹理,这个"
"属性就没有效果。"

#: doc/classes/TouchScreenButton.xml:45
msgid "If [code]true[/code], the button's shape is visible."
msgstr "如果[code]true[/code],按钮的形状是可见的。"

#: doc/classes/TouchScreenButton.xml:48
msgid ""
"The button's visibility mode. See [enum VisibilityMode] for possible values."
msgstr "按钮的可见性模式。有关可能的值,参阅[enum VisibilityMode]。"

#: doc/classes/TouchScreenButton.xml:54
msgid "Emitted when the button is pressed (down)."
msgstr "当按钮被按下时触发,即向下。"

#: doc/classes/TouchScreenButton.xml:59
msgid "Emitted when the button is released (up)."
msgstr "当按钮被释放时触发,即向上。"

#: doc/classes/TouchScreenButton.xml:65
msgid "Always visible."
msgstr "始终可见。"

#: doc/classes/TouchScreenButton.xml:68
msgid "Visible on touch screens only."
msgstr "仅在触摸屏上可以看到。"

#: doc/classes/Transform.xml:4
msgid "3D transformation (3×4 matrix)."
msgstr "3D变换,即3×4矩阵。"

#: doc/classes/Transform.xml:7
msgid ""
"3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. It can "
"represent transformations such as translation, rotation, or scaling. It "
"consists of a [member basis] (first 3 columns) and a [Vector3] for the "
"[member origin] (last column).\n"
"For more information, read the \"Matrices and transforms\" documentation "
"article."
msgstr ""
"3×4矩阵,即3行4列,用于3D线性变换。它可以表示诸如平移、旋转或缩放的变换。它由"
"一个 [member basis] ,即前3列,和一个 [member origin] ,即最后一列,的"
"[Vector3]组成。\n"
"欲了解更多信息,请阅读文档文章 \"Matrices and transforms\" 矩阵和变换。"

#: doc/classes/Transform.xml:26
msgid ""
"Constructs a Transform from four [Vector3] values (matrix columns). Each "
"axis corresponds to local basis vectors (some of which may be scaled)."
msgstr ""
"从四个[Vector3]值,即矩阵列,构造一个变换。每个轴对应于局部基础向量,其中一些"
"可能被缩放。"

#: doc/classes/Transform.xml:34
msgid "Constructs a Transform from a [Basis] and [Vector3]."
msgstr "从[Basis] 和[Vector3]构造一个变换。"

#: doc/classes/Transform.xml:41
msgid "Constructs a Transform from a [Transform2D]."
msgstr "从一个[Transform2D]构造一个变换。"

#: doc/classes/Transform.xml:48
msgid ""
"Constructs a Transform from a [Quat]. The origin will be [code]Vector3(0, 0, "
"0)[/code]."
msgstr "从一个[Quat]构造一个变换。原点是[code]Vector3(0, 0, 0)[/code]。"

#: doc/classes/Transform.xml:55
msgid ""
"Constructs the Transform from a [Basis]. The origin will be Vector3(0, 0, 0)."
msgstr "从一个[Basis]构造变换。原点是Vector3(0, 0, 0)。"

#: doc/classes/Transform.xml:61 doc/classes/Transform2D.xml:44
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation, scaling and translation."
msgstr "返回变换的反值,假设变换是由旋转、缩放和平移组成的。"

#: doc/classes/Transform.xml:69
msgid ""
"Interpolates the transform to other Transform by weight amount (on the range "
"of 0.0 to 1.0)."
msgstr "通过权重,即在0.0到1.0的范围内,将变换与其他变换进行插值。"

#: doc/classes/Transform.xml:75
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
"affine_inverse for transforms with scaling)."
msgstr ""
"返回变换的反值,假设该变换是由旋转和平移组成的,注,没有缩放,对有缩放的变换"
"使用affine_inverse。"

#: doc/classes/Transform.xml:82 doc/classes/Transform2D.xml:99
msgid ""
"Returns [code]true[/code] if this transform and [code]transform[/code] are "
"approximately equal, by calling [code]is_equal_approx[/code] on each "
"component."
msgstr ""
"如果这个变换和[code]transform[/code]近似相等,通过对每个分量调用"
"[code]is_equal_approx[/code],而返回[code]true[/code]。"

#: doc/classes/Transform.xml:90
msgid ""
"Returns a copy of the transform rotated such that its -Z axis points towards "
"the [code]target[/code] position.\n"
"The transform will first be rotated around the given [code]up[/code] vector, "
"and then fully aligned to the target by a further rotation around an axis "
"perpendicular to both the [code]target[/code] and [code]up[/code] vectors.\n"
"Operations take place in global space."
msgstr ""
"返回一个旋转后的变换副本,使其-Z轴指向[code]target[/code]位置。\n"
"变换将首先围绕给定的[code]up[/code]向量旋转,然后进一步通过围绕垂直于"
"[code]target[/code]和[code]up[/code]向量的轴旋转,来完全与目标对齐。\n"
"操作是在全局空间进行的。"

#: doc/classes/Transform.xml:98
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
"axis vectors."
msgstr "返回具有基于正交,即90度,和归一化轴向量的变换。"

#: doc/classes/Transform.xml:106
msgid ""
"Rotates the transform around the given axis by the given angle (in radians), "
"using matrix multiplication. The axis must be a normalized vector."
msgstr ""
"使用矩阵乘法,围绕给定的轴旋转给定的角度,即弧度。轴必须是一个归一化的向量。"

#: doc/classes/Transform.xml:113
msgid ""
"Scales basis and origin of the transform by the given scale factor, using "
"matrix multiplication."
msgstr "使用矩阵乘法,通过给定的缩放系数,对变换的基础和原点进行缩放。"

#: doc/classes/Transform.xml:120 doc/classes/Transform2D.xml:126
msgid ""
"Translates the transform by the given offset, relative to the transform's "
"basis vectors.\n"
"Unlike [method rotated] and [method scaled], this does not use matrix "
"multiplication."
msgstr ""
"相对于变换的基础向量,将变换按给定的偏移量进行平移。\n"
"与[method rotated]和[method scaled]不同,它不使用矩阵乘法。"

#: doc/classes/Transform.xml:128
#, fuzzy
msgid ""
"Transforms the given [Vector3], [Plane], [AABB], or [PoolVector3Array] by "
"this transform."
msgstr ""
"通过这个变换对指定的[Vector3]、[Plane]、[AABB]或[PackedVector3Array]进行变"
"换。"

#: doc/classes/Transform.xml:135
#, fuzzy
msgid ""
"Inverse-transforms the given [Vector3], [Plane], [AABB], or "
"[PoolVector3Array] by this transform."
msgstr ""
"通过这个变换对指定的[Vector3]、[Plane]、[AABB]或[PackedVector3Array]进行逆向"
"变换。"

#: doc/classes/Transform.xml:141
msgid ""
"The basis is a matrix containing 3 [Vector3] as its columns: X axis, Y axis, "
"and Z axis. These vectors can be interpreted as the basis vectors of local "
"coordinate system traveling with the object."
msgstr ""
"基础是一个包含3个[Vector3]作为其列的矩阵:X轴、Y轴和Z轴。这些向量可以被解释为"
"随物体移动的局部坐标系的基础向量。"

#: doc/classes/Transform.xml:144
msgid ""
"The translation offset of the transform (column 3, the fourth column). "
"Equivalent to array index [code]3[/code]."
msgstr "变换的平移偏移量,即第3、4列。相当于数组索引[code]3[/code]。"

#: doc/classes/Transform.xml:149
msgid ""
"[Transform] with no translation, rotation or scaling applied. When applied "
"to other data structures, [constant IDENTITY] performs no transformation."
msgstr ""
"[Transform],不应用平移、旋转或缩放。当应用于其他数据结构时,[constant "
"IDENTITY] 不执行转换。"

#: doc/classes/Transform.xml:152
msgid "[Transform] with mirroring applied perpendicular to the YZ plane."
msgstr "[Transform] 变换与垂直于YZ平面的镜像应用。"

#: doc/classes/Transform.xml:155
msgid "[Transform] with mirroring applied perpendicular to the XZ plane."
msgstr "[Transform] 变换与垂直于XZ平面的镜像应用。"

#: doc/classes/Transform.xml:158
msgid "[Transform] with mirroring applied perpendicular to the XY plane."
msgstr "[Transform]变换与垂直于XY平面的镜像应用。"

#: doc/classes/Transform2D.xml:4
msgid "2D transformation (2×3 matrix)."
msgstr "2D变换,即2×3矩阵。"

#: doc/classes/Transform2D.xml:7
#, fuzzy
msgid ""
"2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. It can "
"represent transformations such as translation, rotation, or scaling. It "
"consists of three [Vector2] values: [member x], [member y], and the [member "
"origin].\n"
"For more information, read the \"Matrices and transforms\" documentation "
"article."
msgstr ""
"2×3矩阵,即2行3列,用于2d线性变换。它可以表示诸如平移、旋转或缩放等变换。它由"
"三个[Vector2]值组成。[member x], [member y], [member origin]。\n"
"欲了解更多信息,请阅读文档文章 \"Matrices and transforms\" 矩阵和变换。"

#: doc/classes/Transform2D.xml:21
msgid "Constructs the transform from a 3D [Transform]."
msgstr "从一个3D[Transform]构建变换。"

#: doc/classes/Transform2D.xml:30
msgid ""
"Constructs the transform from 3 [Vector2] values representing [member x], "
"[member y], and the [member origin] (the three column vectors)."
msgstr ""
"从表示[member x], [member y], [member origin] ,即3个列向量的[Vector2]值构建"
"变换。"

#: doc/classes/Transform2D.xml:38
msgid "Constructs the transform from a given angle (in radians) and position."
msgstr "从一个给定的角度,即弧度,和位置构造变换。"

#: doc/classes/Transform2D.xml:51
msgid ""
"Returns a vector transformed (multiplied) by the basis matrix.\n"
"This method does not account for translation (the origin vector)."
msgstr ""
"返回由基础矩阵变换的向量,注相乘。\n"
"这个方法不考虑原点向量转换。"

#: doc/classes/Transform2D.xml:59
msgid ""
"Returns a vector transformed (multiplied) by the inverse basis matrix.\n"
"This method does not account for translation (the origin vector)."
msgstr ""
"返回由逆基础矩阵转换的向量,注相乘。\n"
"该方法不考虑原点向量转换。"

#: doc/classes/Transform2D.xml:66
msgid "Returns the transform's origin (translation)."
msgstr "返回变换的原点,转换。"

#: doc/classes/Transform2D.xml:72
msgid "Returns the transform's rotation (in radians)."
msgstr "返回变换的旋转角度,单位:弧度。"

#: doc/classes/Transform2D.xml:78
msgid "Returns the scale."
msgstr "返回缩放。"

#: doc/classes/Transform2D.xml:86
#, fuzzy
msgid ""
"Returns a transform interpolated between this transform and another by a "
"given [code]weight[/code] (on the range of 0.0 to 1.0)."
msgstr "以给定权重,返回一个变换和另一个变换之间插值的变换,即范围为0.0到1.0。"

#: doc/classes/Transform2D.xml:92
msgid ""
"Returns the inverse of the transform, under the assumption that the "
"transformation is composed of rotation and translation (no scaling, use "
"[method affine_inverse] for transforms with scaling)."
msgstr ""
"返回变换的反值,假设该变换是由旋转和平移组成的,注,没有缩放,对有缩放的变换"
"使用[method affine_inverse]。"

#: doc/classes/Transform2D.xml:105
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
"axis vectors (scale of 1 or -1)."
msgstr "返回以正交,即90度,为基础的变换,以及归一化的轴向量,缩放为1或-1。"

#: doc/classes/Transform2D.xml:112
msgid ""
"Rotates the transform by the given angle (in radians), using matrix "
"multiplication."
msgstr "使用矩阵乘法,将变换旋转给定的角度,即弧度。"

#: doc/classes/Transform2D.xml:119
msgid ""
"Scales the transform by the given scale factor, using matrix multiplication."
msgstr "使用矩阵乘法,用给定的缩放系数来缩放变换。"

#: doc/classes/Transform2D.xml:134
#, fuzzy
msgid ""
"Transforms the given [Vector2], [Rect2], or [PoolVector2Array] by this "
"transform."
msgstr "通过这个变换对指定的[Vector2]、[Rect2]或[PackedVector2Array]进行变换。"

#: doc/classes/Transform2D.xml:141
#, fuzzy
msgid ""
"Inverse-transforms the given [Vector2], [Rect2], or [PoolVector2Array] by "
"this transform."
msgstr ""
"通过这个变换对指定的[Vector2]、[Rect2]或[PackedVector2Array]进行反向变换。"

#: doc/classes/Transform2D.xml:147
msgid ""
"The origin vector (column 2, the third column). Equivalent to array index "
"[code]2[/code]. The origin vector represents translation."
msgstr "原点向量,即第2、3列。相当于数组索引[code]2[/code]。原点向量代表转换。"

#: doc/classes/Transform2D.xml:158
msgid ""
"The identity [Transform2D] with no translation, rotation or scaling applied. "
"When applied to other data structures, [constant IDENTITY] performs no "
"transformation."
msgstr ""
"没有应用平移、旋转或缩放的[Transform2D]的标识。当应用于其他数据结构时, "
"[constant IDENTITY]不执行转换。"

#: doc/classes/Transform2D.xml:161
msgid "The [Transform2D] that will flip something along the X axis."
msgstr "将沿X轴翻转的[Transform2D]。"

#: doc/classes/Transform2D.xml:164
msgid "The [Transform2D] that will flip something along the Y axis."
msgstr "将沿Y轴翻转的[Transform2D]。"

#: doc/classes/Translation.xml:4
msgid "Language Translation."
msgstr "语言翻译。"

#: doc/classes/Translation.xml:7
msgid ""
"Translations are resources that can be loaded and unloaded on demand. They "
"map a string to another string."
msgstr "翻译是可以按需加载和卸载的资源。是将一个字符串映射到另一个字符串。"

#: doc/classes/Translation.xml:10 doc/classes/TranslationServer.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/i18n/internationalizing_games."
"html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/i18n/"
"internationalizing_games.html"

#: doc/classes/Translation.xml:11 doc/classes/TranslationServer.xml:11
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/i18n/locales.html"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/i18n/locales.html"

#: doc/classes/Translation.xml:18
msgid "Virtual method to override [method get_message]."
msgstr ""

#: doc/classes/Translation.xml:26
msgid "Adds a message if nonexistent, followed by its translation."
msgstr "如果不存在,则添加信息,然后添加其翻译。"

#: doc/classes/Translation.xml:33
msgid "Erases a message."
msgstr "删除信息。"

#: doc/classes/Translation.xml:40
msgid "Returns a message's translation."
msgstr "返回信息的翻译。"

#: doc/classes/Translation.xml:46
msgid "Returns the number of existing messages."
msgstr "返回现有信息的数量。"

#: doc/classes/Translation.xml:52
msgid "Returns all the messages (keys)."
msgstr "返回所有的信息,键值。"

#: doc/classes/Translation.xml:58
msgid "The locale of the translation."
msgstr "翻译的地域。"

#: doc/classes/TranslationServer.xml:4
msgid "Server that manages all translations."
msgstr "管理所有翻译的服务。"

#: doc/classes/TranslationServer.xml:7
msgid ""
"Server that manages all translations. Translations can be set to it and "
"removed from it."
msgstr "管理所有翻译的服务。翻译可被设置,也可从中删除。"

#: doc/classes/TranslationServer.xml:18
msgid "Adds a [Translation] resource."
msgstr "添加一个[Translation]翻译资源。"

#: doc/classes/TranslationServer.xml:24
msgid "Clears the server from all translations."
msgstr "清除服务中的所有翻译。"

#: doc/classes/TranslationServer.xml:30
#, fuzzy
msgid "Returns an array of all loaded locales of the project."
msgstr "返回游戏中所有加载的地域的数组。"

#: doc/classes/TranslationServer.xml:36
msgid ""
"Returns the current locale of the project.\n"
"See also [method OS.get_locale] and [method OS.get_locale_language] to query "
"the locale of the user system."
msgstr ""

#: doc/classes/TranslationServer.xml:44
msgid ""
"Returns a locale's language and its variant (e.g. [code]\"en_US\"[/code] "
"would return [code]\"English (United States)\"[/code])."
msgstr ""
"返回一个地域语言及其变体,例如,[code]\"en_US\"[/code]将返回[code]\"English "
"(United States)\"[/code]。"

#: doc/classes/TranslationServer.xml:51
msgid "Removes the given translation from the server."
msgstr "从服务中删除给定的翻译。"

#: doc/classes/TranslationServer.xml:58
msgid ""
"Sets the locale of the project. The [code]locale[/code] string will be "
"standardized to match known locales (e.g. [code]en-US[/code] would be "
"matched to [code]en_US[/code]).\n"
"If translations have been loaded beforehand for the new locale, they will be "
"applied."
msgstr ""

#: doc/classes/TranslationServer.xml:66
msgid "Returns the current locale's translation for the given message (key)."
msgstr "返回当前地域对指定信息,即key的翻译。"

#: doc/classes/Tree.xml:4
msgid "Control to show a tree of items."
msgstr "控件显示项目树。"

#: doc/classes/Tree.xml:7
msgid ""
"This shows a tree of items that can be selected, expanded and collapsed. The "
"tree can have multiple columns with custom controls like text editing, "
"buttons and popups. It can be useful for structured displays and "
"interactions.\n"
"Trees are built via code, using [TreeItem] objects to create the structure. "
"They have a single root but multiple roots can be simulated if a dummy "
"hidden root is added.\n"
"[codeblock]\n"
"func _ready():\n"
"    var tree = Tree.new()\n"
"    var root = tree.create_item()\n"
"    tree.set_hide_root(true)\n"
"    var child1 = tree.create_item(root)\n"
"    var child2 = tree.create_item(root)\n"
"    var subchild1 = tree.create_item(child1)\n"
"    subchild1.set_text(0, \"Subchild1\")\n"
"[/codeblock]\n"
"To iterate over all the [TreeItem] objects in a [Tree] object, use [method "
"TreeItem.get_next] and [method TreeItem.get_children] after getting the root "
"through [method get_root]. You can use [method Object.free] on a [TreeItem] "
"to remove it from the [Tree]."
msgstr ""
"这展示了一个可以选择、展开和折叠的项目树。该树可以有多列的自定义控件,如文本"
"编辑、按钮和弹出窗口。它对于结构化显示和互动很有用。\n"
"树通过代码建立,使用[TreeItem]对象来构建结构。它们有一个单独根节点,但如果添"
"加一个虚拟的隐藏根节点,就可以模拟多个根。\n"
"[codeblock]\n"
"func _ready():\n"
"    var tree = Tree.new()\n"
"    var root = tree.create_item()\n"
"    tree.set_hide_root(true)\n"
"    var child1 = tree.create_item(root)\n"
"    var child2 = tree.create_item(root)\n"
"    var subchild1 = tree.create_item(child1)\n"
"    subchild1.set_text(0, \"Subchild1\")\n"
"[/codeblock]\n"
"要遍历一个[Tree]对象中的所有[TreeItem]对象,在通过[method get_root]获得根之"
"后,使用[method TreeItem.get_next]和[method TreeItem.get_children]方法。你可"
"以对一个[TreeItem]使用[method Object.free]来把它从[Tree]中移除。"

#: doc/classes/Tree.xml:27
msgid "Returns [code]true[/code] if the column titles are being shown."
msgstr "如果显示列标题,则返回[code]true[/code]。"

#: doc/classes/Tree.xml:33
msgid "Clears the tree. This removes all items."
msgstr "清除树。这将删除所有项目。"

#: doc/classes/Tree.xml:41
msgid ""
"Creates an item in the tree and adds it as a child of [code]parent[/code].\n"
"If [code]parent[/code] is [code]null[/code], the root item will be the "
"parent, or the new item will be the root itself if the tree is empty.\n"
"The new item will be the [code]idx[/code]th child of parent, or it will be "
"the last child if there are not enough siblings."
msgstr ""
"在树中创建一个项目,并将其作为[code]parent[/code]的一个子项。\n"
"如果[code]parent[/code]是[code]null[/code],根项将是父项,如果树是空的,新项"
"将是根本身。\n"
"新项将是父项的[code]idx[/code]个子顶,如果没有足够的兄弟姐妹,它将是最后一个"
"子项。"

#: doc/classes/Tree.xml:49
msgid ""
"Edits the selected tree item as if it was clicked. The item must be set "
"editable with [method TreeItem.set_editable]. Returns [code]true[/code] if "
"the item could be edited. Fails if no item is selected."
msgstr ""

#: doc/classes/Tree.xml:55
msgid ""
"Makes the currently focused cell visible.\n"
"This will scroll the tree if necessary. In [constant SELECT_ROW] mode, this "
"will not do horizontal scrolling, as all the cells in the selected row is "
"focused logically.\n"
"[b]Note:[/b] Despite the name of this method, the focus cursor itself is "
"only visible in [constant SELECT_MULTI] mode."
msgstr ""
"使当前获得焦点的单元可见。\n"
"如果有必要,将滚动树。在[constant SELECT_ROW]模式下,不会做水平滚动,因为所选"
"行中的所有单元都按逻辑获得焦点。\n"
"[b]注意:[/b]尽管这个方法的名称是这样的,但焦点光标本身只在 [constant "
"SELECT_MULTI] 模式下可见。"

#: doc/classes/Tree.xml:64
msgid ""
"Returns the column index at [code]position[/code], or -1 if no item is there."
msgstr "返回在[code]position[/code]的列索引,如果那里没有项目,则返回-1。"

#: doc/classes/Tree.xml:71
msgid "Returns the column's title."
msgstr "返回列的标题。"

#: doc/classes/Tree.xml:78
msgid "Returns the column's width in pixels."
msgstr "返回列的宽度,单位是像素。"

#: doc/classes/Tree.xml:84
msgid ""
"Returns the rectangle for custom popups. Helper to create custom cell "
"controls that display a popup. See [method TreeItem.set_cell_mode]."
msgstr ""
"返回自定义弹出窗口的矩形。帮助创建显示弹出式的自定义单元格控件。参阅[method "
"TreeItem.set_cell_mode]。"

#: doc/classes/Tree.xml:91
msgid ""
"Returns the drop section at [code]position[/code], or -100 if no item is "
"there.\n"
"Values -1, 0, or 1 will be returned for the \"above item\", \"on item\", and "
"\"below item\" drop sections, respectively. See [enum DropModeFlags] for a "
"description of each drop section.\n"
"To get the item which the returned drop section is relative to, use [method "
"get_item_at_position]."
msgstr ""
"返回位于[code]position[/code]的放置部分,如果没有项目,则返回-100。\n"
"在 \"项目上方\"、\"项目之上\"和 \"项目下方\"的放置部分将分别返回-1、0或1的"
"值。请参阅[enum DropModeFlags]以了解每个放置部分的描述。\n"
"要获得返回的放置部分相对项,请使用[method get_item_at_position]。"

#: doc/classes/Tree.xml:99
msgid ""
"Returns the currently edited item. Can be used with [signal item_edited] to "
"get the item that was modified.\n"
"[codeblock]\n"
"func _ready():\n"
"    $Tree.item_edited.connect(on_Tree_item_edited)\n"
"\n"
"func on_Tree_item_edited():\n"
"    print($Tree.get_edited()) # This item just got edited (e.g. checked).\n"
"[/codeblock]"
msgstr ""

#: doc/classes/Tree.xml:112
#, fuzzy
msgid "Returns the column for the currently edited item."
msgstr "返回当前列表中的项目数。"

#: doc/classes/Tree.xml:120
msgid ""
"Returns the rectangle area for the specified item. If [code]column[/code] is "
"specified, only get the position and size of that column, otherwise get the "
"rectangle containing all columns."
msgstr ""
"返回指定项目的矩形区域。如果[code]column[/code]被指定,只得到该列的位置和大"
"小,否则得到包含所有列的矩形。"

#: doc/classes/Tree.xml:127
msgid ""
"Returns the tree item at the specified position (relative to the tree origin "
"position)."
msgstr "返回指定位置,即相对于树的原点位置的树中项。"

#: doc/classes/Tree.xml:134
msgid ""
"Returns the next selected item after the given one, or [code]null[/code] if "
"the end is reached.\n"
"If [code]from[/code] is [code]null[/code], this returns the first selected "
"item."
msgstr ""
"返回指定项后的下一个选择项,如果到达终点则返回[code]null[/code]。\n"
"如果[code]from[/code]是[code]null[/code],将返回第一个被选中的项。"

#: doc/classes/Tree.xml:141
msgid "Returns the last pressed button's index."
msgstr "返回最后按下的按钮的索引。"

#: doc/classes/Tree.xml:147
msgid ""
"Returns the tree's root item, or [code]null[/code] if the tree is empty."
msgstr "返回树的根项,如果树是空的,则返回[code]null[/code]。"

#: doc/classes/Tree.xml:153
msgid "Returns the current scrolling position."
msgstr "返回当前的滚动位置。"

#: doc/classes/Tree.xml:159
msgid ""
"Returns the currently focused item, or [code]null[/code] if no item is "
"focused.\n"
"In [constant SELECT_ROW] and [constant SELECT_SINGLE] modes, the focused "
"item is same as the selected item. In [constant SELECT_MULTI] mode, the "
"focused item is the item under the focus cursor, not necessarily selected.\n"
"To get the currently selected item(s), use [method get_next_selected]."
msgstr ""
"返回当前的焦点项,如果没有焦点项,则返回[code]null[/code]。\n"
"在[constant SELECT_ROW]和[constant SELECT_SINGLE]模式下,焦点项与选择项相同。"
"在[constant SELECT_MULTI]模式下,焦点项是焦点光标下的项目,不一定被选中。\n"
"要获得当前选中项,请使用[method get_next_selected]。"

#: doc/classes/Tree.xml:167
msgid ""
"Returns the currently focused column, or -1 if no column is focused.\n"
"In [constant SELECT_SINGLE] mode, the focused column is the selected column. "
"In [constant SELECT_ROW] mode, the focused column is always 0 if any item is "
"selected. In [constant SELECT_MULTI] mode, the focused column is the column "
"under the focus cursor, and there are not necessarily any column selected.\n"
"To tell whether a column of an item is selected, use [method TreeItem."
"is_selected]."
msgstr ""
"返回当前获得焦点的列,如果没有焦点列,则返回-1。\n"
"在[constant SELECT_SINGLE]模式下,焦点列是被选中的列。在[constant SELECT_ROW]"
"模式下,如果有任意项被选中,焦点列总是0。在[constant SELECT_MULTI]模式下,焦"
"点列是焦点光标下的列,但不一定有列被选中。\n"
"要判断一个项的某一列是否被选中,请使用[method TreeItem.is_selected]。"

#: doc/classes/Tree.xml:176
#, fuzzy
msgid "Causes the [Tree] to jump to the specified item."
msgstr "返回指定实例的[Transform]。"

#: doc/classes/Tree.xml:184
msgid ""
"If [code]true[/code], the column will have the \"Expand\" flag of [Control]. "
"Columns that have the \"Expand\" flag will use their \"min_width\" in a "
"similar fashion to [member Control.size_flags_stretch_ratio]."
msgstr ""
"如果[code]true[/code],该列将拥有[Control]的 \"扩展\" 标志。拥有 \"扩展\" 标"
"志的列,将以类似于[member Control.size_flags_stretch_ratio]的方式使用其 "
"\"min_width\" 最小宽度。"

#: doc/classes/Tree.xml:192
msgid ""
"Sets the minimum width of a column. Columns that have the \"Expand\" flag "
"will use their \"min_width\" in a similar fashion to [member Control."
"size_flags_stretch_ratio]."
msgstr ""
"设置一个列的最小宽度。拥有 \"扩展\" 标志的列将以类似于[member Control."
"size_flags_stretch_ratio] 的方式使用其 \"min_width\" 最小宽度。"

#: doc/classes/Tree.xml:200
msgid "Sets the title of a column."
msgstr "设置一个列的标题。"

#: doc/classes/Tree.xml:207
msgid "If [code]true[/code], column titles are visible."
msgstr "如果[code]true[/code],列标题可见。"

#: doc/classes/Tree.xml:213
msgid ""
"If [code]true[/code], the currently selected cell may be selected again."
msgstr "如果[code]true[/code],可以再次选择当前选定的单元。"

#: doc/classes/Tree.xml:216
msgid "If [code]true[/code], a right mouse button click can select items."
msgstr "如果[code]true[/code],鼠标右键点击可以选择项目。"

#: doc/classes/Tree.xml:219
msgid "The number of columns."
msgstr "列数。"

#: doc/classes/Tree.xml:222
msgid ""
"The drop mode as an OR combination of flags. See [enum DropModeFlags] "
"constants. Once dropping is done, reverts to [constant DROP_MODE_DISABLED]. "
"Setting this during [method Control.can_drop_data] is recommended.\n"
"This controls the drop sections, i.e. the decision and drawing of possible "
"drop locations based on the mouse position."
msgstr ""
"作为一个标志的OR组合的放置模式。参见[enum DropModeFlags]常量。一旦拖动完成,"
"将恢复到[constant DROP_MODE_DISABLED]。建议在[method Control.can_drop_data]中"
"设置这个。\n"
"控件放置部分,即根据鼠标位置决定和绘制可能的放置位置。"

#: doc/classes/Tree.xml:227
msgid "If [code]true[/code], the folding arrow is hidden."
msgstr "如果[code]true[/code],隐藏折叠箭头。"

#: doc/classes/Tree.xml:230
msgid "If [code]true[/code], the tree's root is hidden."
msgstr "如果[code]true[/code],则隐藏树的根节点。"

#: doc/classes/Tree.xml:234
msgid ""
"Allows single or multiple selection. See the [enum SelectMode] constants."
msgstr "允许单选或多选。参阅[enum SelectMode]常量。"

#: doc/classes/Tree.xml:243
msgid ""
"Emitted when a button on the tree was pressed (see [method TreeItem."
"add_button])."
msgstr "当树中按钮被按下时触发,参阅[method TreeItem.add_button]。"

#: doc/classes/Tree.xml:248
msgid "Emitted when a cell is selected."
msgstr "当单元格被选中时触发。"

#: doc/classes/Tree.xml:254
msgid "Emitted when a column's title is pressed."
msgstr "当列的标题被按下时触发。"

#: doc/classes/Tree.xml:260
msgid ""
"Emitted when a cell with the [constant TreeItem.CELL_MODE_CUSTOM] is clicked "
"to be edited."
msgstr ""
"当具有[constant TreeItem.CELL_MODE_CUSTOM]的单元格被点击,进行编辑时触发。"

#: doc/classes/Tree.xml:266
msgid ""
"Emitted when the right mouse button is pressed in the empty space of the "
"tree."
msgstr "当在树的空白处按下鼠标右键时触发。"

#: doc/classes/Tree.xml:272
msgid ""
"Emitted when the right mouse button is pressed if right mouse button "
"selection is active and the tree is empty."
msgstr "如果鼠标右键选择处于活动状态,并且树是空的,则在按下鼠标右键时触发。"

#: doc/classes/Tree.xml:277
msgid "Emitted when an item's label is double-clicked."
msgstr "当一个项目的标签被双击时触发。"

#: doc/classes/Tree.xml:283
msgid "Emitted when an item is collapsed by a click on the folding arrow."
msgstr "当一个项目的折叠箭头被点击折叠时触发。"

#: doc/classes/Tree.xml:288
msgid ""
"Emitted when a custom button is pressed (i.e. in a [constant TreeItem."
"CELL_MODE_CUSTOM] mode cell)."
msgstr ""
"当自定义按钮被按下时触发,即在[constant TreeItem.CELL_MODE_CUSTOM]模式单元格"
"中。"

#: doc/classes/Tree.xml:293
msgid "Emitted when an item's icon is double-clicked."
msgstr "当项目的图标被双击时触发。"

#: doc/classes/Tree.xml:298
msgid "Emitted when an item is edited."
msgstr "当项目被编辑时触发。"

#: doc/classes/Tree.xml:303
msgid "Emitted when an item is edited using the right mouse button."
msgstr "当使用鼠标右键编辑项目时触发。"

#: doc/classes/Tree.xml:309
msgid "Emitted when an item is selected with the right mouse button."
msgstr "当用鼠标右键选择项目时触发。"

#: doc/classes/Tree.xml:314
msgid "Emitted when an item is selected."
msgstr "当项目被选中时触发。"

#: doc/classes/Tree.xml:322
msgid ""
"Emitted instead of [code]item_selected[/code] if [code]select_mode[/code] is "
"[constant SELECT_MULTI]."
msgstr ""
"如果[code]select_mode[/code]是[constant SELECT_MULTI],则触发代替"
"[code]item_selected[/code]。"

#: doc/classes/Tree.xml:327
msgid "Emitted when a left mouse button click does not select any item."
msgstr "当鼠标左键点击未选择任何项目时触发。"

#: doc/classes/Tree.xml:333
msgid ""
"Allows selection of a single cell at a time. From the perspective of items, "
"only a single item is allowed to be selected. And there is only one column "
"selected in the selected item.\n"
"The focus cursor is always hidden in this mode, but it is positioned at the "
"current selection, making the currently selected item the currently focused "
"item."
msgstr ""
"允许一次选择一个单元格。从项的角度看,只允许选择一个项。而且在所选项中只有一"
"列被选中。\n"
"在这种模式下,焦点光标总被隐藏,被定位在当前的选择处,使当前的选择项成为当前"
"的焦点项。"

#: doc/classes/Tree.xml:337
msgid ""
"Allows selection of a single row at a time. From the perspective of items, "
"only a single items is allowed to be selected. And all the columns are "
"selected in the selected item.\n"
"The focus cursor is always hidden in this mode, but it is positioned at the "
"first column of the current selection, making the currently selected item "
"the currently focused item."
msgstr ""
"允许一次选择单行。从项的角度看,只允许选择单个项。而所有的列都被选择在所选项"
"中。\n"
"在这种模式下,焦点光标总被隐藏,被定位在当前选择的第一列,使当前选择项成为当"
"前焦点项。"

#: doc/classes/Tree.xml:341
msgid ""
"Allows selection of multiple cells at the same time. From the perspective of "
"items, multiple items are allowed to be selected. And there can be multiple "
"columns selected in each selected item.\n"
"The focus cursor is visible in this mode, the item or column under the "
"cursor is not necessarily selected."
msgstr ""
"允许同时选择多个单元格。从项的角度看,允许选择多个项。而且每个被选中的项中可"
"以有多个列被选中。\n"
"在这种模式下,焦点光标可见,光标下的项或列不一定被选中。"

#: doc/classes/Tree.xml:345
msgid ""
"Disables all drop sections, but still allows to detect the \"on item\" drop "
"section by [method get_drop_section_at_position].\n"
"[b]Note:[/b] This is the default flag, it has no effect when combined with "
"other flags."
msgstr ""
"禁用所有放置部分,但仍然允许通过[method get_drop_section_at_position]检测 "
"\"物品上\" 的放置部分。\n"
"[b]注意:[/b]这是默认的标志,当与其他标志结合时,它没有效果。"

#: doc/classes/Tree.xml:349
msgid ""
"Enables the \"on item\" drop section. This drop section covers the entire "
"item.\n"
"When combined with [constant DROP_MODE_INBETWEEN], this drop section halves "
"the height and stays centered vertically."
msgstr ""
"启用 \"项目上\" 的放置部分。这个放置部分覆盖整个项。\n"
"当与[constant DROP_MODE_INBETWEEN]结合使用时,这个放置部分的高度减半,并保持"
"垂直居中。"

#: doc/classes/Tree.xml:353
msgid ""
"Enables \"above item\" and \"below item\" drop sections. The \"above item\" "
"drop section covers the top half of the item, and the \"below item\" drop "
"section covers the bottom half.\n"
"When combined with [constant DROP_MODE_ON_ITEM], these drop sections halves "
"the height and stays on top / bottom accordingly."
msgstr ""
"启用 \"项目上方\" 和 \"项目下方\" 的放置部分。\"项目上方\" 的放置部分覆盖项目"
"的上半部分,\"项目下方\" 的放置部分覆盖下半部分。\n"
"当与[constant DROP_MODE_ON_ITEM]结合时,这些放置部分的高度减半,并相应地停留"
"在顶部或底部。"

#: doc/classes/Tree.xml:359
msgid "The arrow icon used when a foldable item is not collapsed."
msgstr "当一个可折叠的项没有被折叠时,使用的箭头图标。"

#: doc/classes/Tree.xml:362
msgid "The arrow icon used when a foldable item is collapsed."
msgstr "当一个可折叠的项被折叠时,使用的箭头图标。"

#: doc/classes/Tree.xml:365
msgid ""
"Default [StyleBox] for the [Tree], i.e. used when the control is not being "
"focused."
msgstr "[Tree]的默认[StyleBox],即在控件没有获得焦点时使用。"

#: doc/classes/Tree.xml:368
msgid "[StyleBox] used when the [Tree] is being focused."
msgstr "当[Tree]获得焦点时使用的[StyleBox]。"

#: doc/classes/Tree.xml:371
msgid "The horizontal space between each button in a cell."
msgstr "一个单元中每个按钮之间的水平空间。"

#: doc/classes/Tree.xml:374
msgid "[StyleBox] used when a button in the tree is pressed."
msgstr "当树中的按钮被按下时使用的[StyleBox]。"

#: doc/classes/Tree.xml:377
msgid ""
"The check icon to display when the [constant TreeItem.CELL_MODE_CHECK] mode "
"cell is checked."
msgstr ""
"当[constant TreeItem.CELL_MODE_CHECK]模式单元格被选中时,显示的选中图标。"

#: doc/classes/Tree.xml:380
msgid "[StyleBox] used for the cursor, when the [Tree] is being focused."
msgstr "当[Tree]获得焦点时,用于光标的[StyleBox]。"

#: doc/classes/Tree.xml:383
msgid "[StyleBox] used for the cursor, when the [Tree] is not being focused."
msgstr "当[Tree]未获聚焦时,用于光标的[StyleBox]。"

#: doc/classes/Tree.xml:386
msgid ""
"Default [StyleBox] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell."
msgstr "为[constant TreeItem.CELL_MODE_CUSTOM]模式的单元格默认的[StyleBox]。"

#: doc/classes/Tree.xml:389
msgid ""
"Text [Color] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell when it's "
"hovered."
msgstr ""
"当[constant TreeItem.CELL_MODE_CUSTOM]模式的单元格被悬停时的文本[Color]颜色。"

#: doc/classes/Tree.xml:392
msgid ""
"[StyleBox] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell when it's "
"hovered."
msgstr ""
"当[constant TreeItem.CELL_MODE_CUSTOM]模式的单元格被悬停时的[StyleBox]。"

#: doc/classes/Tree.xml:395
msgid ""
"[StyleBox] for a [constant TreeItem.CELL_MODE_CUSTOM] mode cell when it's "
"pressed."
msgstr ""
"当[constant TreeItem.CELL_MODE_CUSTOM]模式的单元格被按下时的[StyleBox]。"

#: doc/classes/Tree.xml:398
msgid ""
"Draws the guidelines if not zero, this acts as a boolean. The guideline is a "
"horizontal line drawn at the bottom of each item."
msgstr ""
"如果不为零就绘制参考线,这作为一个布尔值。参考线是在每个项的底部画的一条水平"
"线。"

#: doc/classes/Tree.xml:401
msgid ""
"Draws the relationship lines if not zero, this acts as a boolean. "
"Relationship lines are drawn at the start of child items to show hierarchy."
msgstr ""
"如果不为零,则绘制关系线,这作为一个布尔值。关系线在子项的开始处绘制,以显示"
"层次结构。"

#: doc/classes/Tree.xml:404
msgid ""
"[Color] used to draw possible drop locations. See [enum DropModeFlags] "
"constants for further description of drop locations."
msgstr ""
"用于绘制可能的放置位置的[Color]颜色。有关放置位置的描述,参阅[enum "
"DropModeFlags]常量。"

#: doc/classes/Tree.xml:416
msgid "[Color] of the guideline."
msgstr "参考线的[Color]颜色。"

#: doc/classes/Tree.xml:419
msgid ""
"The horizontal space between item cells. This is also used as the margin at "
"the start of an item when folding is disabled."
msgstr "项目单元之间的水平空间。这也用作禁用折叠时项目开头的边距。"

#: doc/classes/Tree.xml:422
msgid ""
"The horizontal margin at the start of an item. This is used when folding is "
"enabled for the item."
msgstr "项目开头的水平边距。在项目启用折叠功能时使用。"

#: doc/classes/Tree.xml:425
msgid "[Color] of the relationship lines."
msgstr "关系线的[Color]颜色。"

#: doc/classes/Tree.xml:428
msgid ""
"The maximum distance between the mouse cursor and the control's border to "
"trigger border scrolling when dragging."
msgstr "拖动时,鼠标指针与控件边框之间触发边框滚动的最大距离。"

#: doc/classes/Tree.xml:431
msgid "The speed of border scrolling."
msgstr "边框滚动的速度。"

#: doc/classes/Tree.xml:434
msgid ""
"The arrow icon to display for the [constant TreeItem.CELL_MODE_RANGE] mode "
"cell."
msgstr "为[constant TreeItem.CELL_MODE_RANGE]模式单元显示的箭头图标。"

#: doc/classes/Tree.xml:437
msgid ""
"[StyleBox] for the selected items, used when the [Tree] is not being focused."
msgstr "所选项的[StyleBox],当[Tree]没有获得焦点时使用。"

#: doc/classes/Tree.xml:440
msgid ""
"[StyleBox] for the selected items, used when the [Tree] is being focused."
msgstr "所选项目的[StyleBox],在[Tree]获得焦点时使用。"

#: doc/classes/Tree.xml:443
msgid "Default text [Color] of the title button."
msgstr "标题按钮的默认文本[Color]颜色。"

#: doc/classes/Tree.xml:446
msgid "[Font] of the title button's text."
msgstr "标题按钮文本的[Font]字体。"

#: doc/classes/Tree.xml:449
msgid "[StyleBox] used when the title button is being hovered."
msgstr "当标题按钮被悬停时使用的[StyleBox]。"

#: doc/classes/Tree.xml:452
msgid "Default [StyleBox] for the title button."
msgstr "标题按钮的默认[StyleBox]。"

#: doc/classes/Tree.xml:455
msgid "[StyleBox] used when the title button is being pressed."
msgstr "当标题按钮被按下时使用的[StyleBox]。"

#: doc/classes/Tree.xml:458
msgid ""
"The check icon to display when the [constant TreeItem.CELL_MODE_CHECK] mode "
"cell is unchecked."
msgstr ""
"当[constant TreeItem.CELL_MODE_CHECK]模式单元未被选中时,要显示的选中图标。"

#: doc/classes/Tree.xml:461
msgid ""
"The updown arrow icon to display for the [constant TreeItem.CELL_MODE_RANGE] "
"mode cell."
msgstr "为[constant TreeItem.CELL_MODE_RANGE]模式单元显示的向下箭头图标。"

#: doc/classes/Tree.xml:464
msgid ""
"The vertical padding inside each item, i.e. the distance between the item's "
"content and top/bottom border."
msgstr "每个项内的垂直填充,即项内容与上或下边框之间的距离。"

#: doc/classes/TreeItem.xml:4
msgid "Control for a single item inside a [Tree]."
msgstr "控件 [Tree] 中的单个项目。"

#: doc/classes/TreeItem.xml:7
msgid ""
"Control for a single item inside a [Tree]. May have child [TreeItem]s and be "
"styled as well as contain buttons.\n"
"You can remove a [TreeItem] by using [method Object.free]."
msgstr ""
"控件[Tree]中的单个项目。可以有子级[TreeItem], 样式, 以及包含按钮。\n"
"您可以使用[method Object.free]删除[TreeItem]。"

#: doc/classes/TreeItem.xml:21
#, fuzzy
msgid ""
"Adds a button with [Texture] [code]button[/code] at column [code]column[/"
"code]. The [code]button_idx[/code] index is used to identify the button when "
"calling other methods. If not specified, the next available index is used, "
"which may be retrieved by calling [method get_button_count] immediately "
"after this method. Optionally, the button can be [code]disabled[/code] and "
"have a [code]tooltip[/code]."
msgstr ""
"在[code]column[/code]添加一个带有[Texture2D] [code]button[/code]的按钮。"
"[code]button_idx[/code]索引用于在调用其他方法时识别按钮。如果没有指定,将使用"
"下一个可用的索引,可以通过在此方法之后立即调用[method get_button_count]来检"
"索。可选,按钮可以[code]disabled[/code],并有[code]tooltip[/code]。"

#: doc/classes/TreeItem.xml:28
msgid ""
"Calls the [code]method[/code] on the actual TreeItem and its children "
"recursively. Pass parameters as a comma separated list."
msgstr ""
"在实际的TreeItem树项及其子项上递归地调用[code]method[/code]。以逗号分隔的列表"
"形式传递参数。"

#: doc/classes/TreeItem.xml:35
msgid "Resets the background color for the given column to default."
msgstr "重置指定列默认的背景颜色。"

#: doc/classes/TreeItem.xml:42
msgid "Resets the color for the given column to default."
msgstr "重置指定列默认的颜色。"

#: doc/classes/TreeItem.xml:49
msgid "Deselects the given column."
msgstr "取消选择指定列。"

#: doc/classes/TreeItem.xml:57
msgid ""
"Removes the button at index [code]button_idx[/code] in column [code]column[/"
"code]."
msgstr "删除列[code]column[/code]中索引[code]button_idx[/code]处的按钮。"

#: doc/classes/TreeItem.xml:65
#, fuzzy
msgid ""
"Returns the [Texture] of the button at index [code]button_idx[/code] in "
"column [code]column[/code]."
msgstr ""
"返回位于[code]button_idx[/code] [code]column[/code]列中按钮的[Texture2D]。"

#: doc/classes/TreeItem.xml:72
msgid ""
"Returns the number of buttons in column [code]column[/code]. May be used to "
"get the most recently added button's index, if no index was specified."
msgstr ""
"返回[code]column[/code]中按钮的数量。如果没有指定索引,可以用来获取最近添加的"
"按钮的索引。"

#: doc/classes/TreeItem.xml:80
msgid ""
"Returns the tooltip string for the button at index [code]button_idx[/code] "
"in column [code]column[/code]."
msgstr ""
"返回在[code]column[/code]中索引[code]button_idx[/code]按钮的提示信息字符串。"

#: doc/classes/TreeItem.xml:87
msgid "Returns the column's cell mode."
msgstr "返回该列的单元格模式。"

#: doc/classes/TreeItem.xml:93
msgid ""
"Returns the TreeItem's first child item or a null object if there is none."
msgstr "返回TreeItem树项的第一个子项,如果没有,则返回一个空对象。"

#: doc/classes/TreeItem.xml:100
msgid "Returns the custom background color of column [code]column[/code]."
msgstr "返回列[code]column[/code]的自定义背景颜色。"

#: doc/classes/TreeItem.xml:107
msgid "Returns the custom color of column [code]column[/code]."
msgstr "返回列[code]column[/code]的自定义颜色。"

#: doc/classes/TreeItem.xml:114
msgid "Returns [code]true[/code] if [code]expand_right[/code] is set."
msgstr "如果设置了[code]expand_right[/code],返回[code]true[/code]。"

#: doc/classes/TreeItem.xml:121
#, fuzzy
msgid "Returns the given column's icon [Texture]. Error if no icon is set."
msgstr "返回给定列的图标[Texture2D]。如果没有设置图标,则出错。"

#: doc/classes/TreeItem.xml:128
msgid "Returns the column's icon's maximum width."
msgstr "返回列的图标的最大宽度。"

#: doc/classes/TreeItem.xml:135
msgid "Returns the [Color] modulating the column's icon."
msgstr "返回调制列的图标的[Color]颜色。"

#: doc/classes/TreeItem.xml:142
#, fuzzy
msgid "Returns the icon [Texture] region as [Rect2]."
msgstr "以[Rect2]返回图标的[Texture2D]区域。"

#: doc/classes/TreeItem.xml:149
#, fuzzy
msgid ""
"Returns the metadata value that was set for the given column using [method "
"set_metadata]."
msgstr "获取选定项的元数据。可以使用[method set_item_metadata]设置项的元数据。"

#: doc/classes/TreeItem.xml:155
msgid ""
"Returns the next TreeItem in the tree or a null object if there is none."
msgstr "返回树中的下一个TreeItem树项,如果没有,则返回一个空对象。"

#: doc/classes/TreeItem.xml:162
msgid ""
"Returns the next visible TreeItem in the tree or a null object if there is "
"none.\n"
"If [code]wrap[/code] is enabled, the method will wrap around to the first "
"visible element in the tree when called on the last visible element, "
"otherwise it returns [code]null[/code]."
msgstr ""
"返回树中下一个可见的TreeItem树项,如果没有,则返回空对象。\n"
"如果[code]wrap[/code]被启用,当在最后一个可见元素上调用时,该方法将环绕到树中"
"的第一个可见元素,否则它将返回[code]null[/code]。"

#: doc/classes/TreeItem.xml:169
msgid "Returns the parent TreeItem or a null object if there is none."
msgstr "返回父级TreeItem树项,如果没有,则返回一个空对象。"

#: doc/classes/TreeItem.xml:175
msgid ""
"Returns the previous TreeItem in the tree or a null object if there is none."
msgstr "返回树中的前一个TreeItem树项,如果没有,则返回一个空对象。"

#: doc/classes/TreeItem.xml:182
msgid ""
"Returns the previous visible TreeItem in the tree or a null object if there "
"is none.\n"
"If [code]wrap[/code] is enabled, the method will wrap around to the last "
"visible element in the tree when called on the first visible element, "
"otherwise it returns [code]null[/code]."
msgstr ""
"返回树中前一个可见的TreeItem树项,如果没有,则返回null对象。\n"
"如果[code]wrap[/code]被启用,当在第一个可见元素上调用时,该方法将环绕到树中最"
"后一个可见元素,否则它将返回[code]null[/code]。"

#: doc/classes/TreeItem.xml:190
#, fuzzy
msgid "Returns the value of a [constant CELL_MODE_RANGE] column."
msgstr "返回关节参数的值。"

#: doc/classes/TreeItem.xml:197
msgid ""
"Returns a dictionary containing the range parameters for a given column. The "
"keys are \"min\", \"max\", \"step\", and \"expr\"."
msgstr ""

#: doc/classes/TreeItem.xml:204
msgid "Gets the suffix string shown after the column value."
msgstr ""

#: doc/classes/TreeItem.xml:211
msgid "Returns the given column's text."
msgstr "返回给定列的文本。"

#: doc/classes/TreeItem.xml:218
msgid "Returns the given column's text alignment."
msgstr "返回给定列的文本对齐方式。"

#: doc/classes/TreeItem.xml:225
msgid "Returns the given column's tooltip."
msgstr "返回给定列的工具提示。"

#: doc/classes/TreeItem.xml:233
msgid ""
"Returns [code]true[/code] if the button at index [code]button_idx[/code] for "
"the given column is disabled."
msgstr ""
"如果给定列的索引[code]button_idx[/code]处的按钮被禁用,返回[code]true[/"
"code]。"

#: doc/classes/TreeItem.xml:240
msgid "Returns [code]true[/code] if the given column is checked."
msgstr "如果给定的列被选中,返回[code]true[/code]。"

#: doc/classes/TreeItem.xml:253
msgid "Returns [code]true[/code] if column [code]column[/code] is editable."
msgstr "如果列[code]column[/code]是可编辑的,则返回[code]true[/code]。"

#: doc/classes/TreeItem.xml:260
msgid "Returns [code]true[/code] if column [code]column[/code] is selectable."
msgstr "如果列[code]column[/code]是可选择的,则返回[code]true[/code]。"

#: doc/classes/TreeItem.xml:267
msgid "Returns [code]true[/code] if column [code]column[/code] is selected."
msgstr "如果列[code]column[/code]被选中,返回[code]true[/code]。"

#: doc/classes/TreeItem.xml:273
msgid "Moves this TreeItem to the bottom in the [Tree] hierarchy."
msgstr "将此TreeItem树项移动到[Tree]层次结构的底部。"

#: doc/classes/TreeItem.xml:279
msgid "Moves this TreeItem to the top in the [Tree] hierarchy."
msgstr "将此TreeItem树项移动到[Tree]树层次结构的顶部。"

#: doc/classes/TreeItem.xml:286
msgid ""
"Removes the given child [TreeItem] and all its children from the [Tree]. "
"Note that it doesn't free the item from memory, so it can be reused later. "
"To completely remove a [TreeItem] use [method Object.free]."
msgstr ""
"将给定的子项[TreeItem]和它的所有子项从[Tree]中移除。注意,它并未从内存中释放"
"该项,所以之后可重新使用。要完全删除一个[TreeItem],请使用[method Object."
"free]。"

#: doc/classes/TreeItem.xml:293
msgid "Selects the column [code]column[/code]."
msgstr "选择列[code]column[/code]。"

#: doc/classes/TreeItem.xml:302
#, fuzzy
msgid ""
"Sets the given column's button [Texture] at index [code]button_idx[/code] to "
"[code]button[/code]."
msgstr ""
"在索引[code]button_idx[/code]处[code]button[/code],设置给定列的按钮"
"[Texture2D]。"

#: doc/classes/TreeItem.xml:311
msgid ""
"If [code]true[/code], disables the button at index [code]button_idx[/code] "
"in column [code]column[/code]."
msgstr ""
"如果[code]true[/code],则禁用列[code]column[/code]中索引[code]button_idx[/"
"code]的按钮。"

#: doc/classes/TreeItem.xml:319
msgid ""
"Sets the given column's cell mode to [code]mode[/code]. See [enum "
"TreeCellMode] constants."
msgstr ""
"设置给定列的单元格模式为[code]mode[/code]。参阅[enum TreeCellMode]常量。"

#: doc/classes/TreeItem.xml:327
msgid "If [code]true[/code], the column [code]column[/code] is checked."
msgstr "如果[code]true[/code],则选中[code]column[/code]。"

#: doc/classes/TreeItem.xml:343
msgid ""
"Sets the given column's custom background color and whether to just use it "
"as an outline."
msgstr "设置给定列的自定义背景颜色,以及是否只将其作为一个轮廓。"

#: doc/classes/TreeItem.xml:351
msgid "Sets the given column's custom color."
msgstr "设置给定列的自定义颜色。"

#: doc/classes/TreeItem.xml:360
msgid ""
"Sets the given column's custom draw callback to [code]callback[/code] method "
"on [code]object[/code].\n"
"The [code]callback[/code] should accept two arguments: the [TreeItem] that "
"is drawn and its position and size as a [Rect2]."
msgstr ""
"设置给定列的自定义绘制回调到[code]object[/code]上的[code]callback[/code]回调"
"方法。\n"
"[code]callback[/code]应该接受两个参数:被绘制的[TreeItem]树项以及它的位置和大"
"小是一个[Rect2]。"

#: doc/classes/TreeItem.xml:369
msgid "If [code]true[/code], column [code]column[/code] is editable."
msgstr "如果[code]true[/code],[code]column[/code]是可编辑的。"

#: doc/classes/TreeItem.xml:377
msgid ""
"If [code]true[/code], column [code]column[/code] is expanded to the right."
msgstr "如果[code]true[/code],列[code]column[/code]将向右扩展。"

#: doc/classes/TreeItem.xml:385
#, fuzzy
msgid "Sets the given column's icon [Texture]."
msgstr "设置给定列的图标[Texture2D]。"

#: doc/classes/TreeItem.xml:393
msgid "Sets the given column's icon's maximum width."
msgstr "设置给定列图标的最大宽度。"

#: doc/classes/TreeItem.xml:401
msgid "Modulates the given column's icon with [code]modulate[/code]."
msgstr "用[code]modulate[/code]调制给定列的图标。"

#: doc/classes/TreeItem.xml:409
msgid "Sets the given column's icon's texture region."
msgstr "设置给定列的图标的纹理区域。"

#: doc/classes/TreeItem.xml:417
msgid ""
"Sets the metadata value for the given column, which can be retrieved later "
"using [method get_metadata]. This can be used, for example, to store a "
"reference to the original data."
msgstr ""

#: doc/classes/TreeItem.xml:425
msgid "Sets the value of a [constant CELL_MODE_RANGE] column."
msgstr ""

#: doc/classes/TreeItem.xml:436
msgid ""
"Sets the range of accepted values for a column. The column must be in the "
"[constant CELL_MODE_RANGE] mode.\n"
"If [code]expr[/code] is [code]true[/code], the edit mode slider will use an "
"exponential scale as with [member Range.exp_edit]."
msgstr ""

#: doc/classes/TreeItem.xml:445
msgid "If [code]true[/code], the given column is selectable."
msgstr "如果[code]true[/code],给定的列是可选择的。"

#: doc/classes/TreeItem.xml:453
msgid ""
"Sets a string to be shown after a column's value (for example, a unit "
"abbreviation)."
msgstr ""

#: doc/classes/TreeItem.xml:461
#, fuzzy
msgid "Sets the given column's text value."
msgstr "返回给定列的文本。"

#: doc/classes/TreeItem.xml:469
msgid ""
"Sets the given column's text alignment. See [enum TextAlign] for possible "
"values."
msgstr "设置给定列的文本对齐方式。可能的值,参阅[enum TextAlign]。"

#: doc/classes/TreeItem.xml:477
msgid "Sets the given column's tooltip text."
msgstr "设置给定列的工具提示文本。"

#: doc/classes/TreeItem.xml:483
msgid "If [code]true[/code], the TreeItem is collapsed."
msgstr "如果[code]true[/code],TreeItem树项被折叠。"

#: doc/classes/TreeItem.xml:486
msgid "The custom minimum height."
msgstr "自定义最小高度。"

#: doc/classes/TreeItem.xml:489
msgid "If [code]true[/code], folding is disabled for this TreeItem."
msgstr "如果[code]true[/code],则TreeItem树项禁用折叠。"

#: doc/classes/TreeItem.xml:494
msgid "Cell contains a string."
msgstr "单元包含字符串。"

#: doc/classes/TreeItem.xml:497
#, fuzzy
msgid "Cell contains a checkbox."
msgstr "单元包含图标。"

#: doc/classes/TreeItem.xml:500
msgid "Cell contains a range."
msgstr "单元包含一个范围。"

#: doc/classes/TreeItem.xml:503
msgid "Cell contains an icon."
msgstr "单元包含图标。"

#: doc/classes/TreeItem.xml:508
msgid "Align text to the left. See [code]set_text_align()[/code]."
msgstr "将文本向左对齐。参阅[code]set_text_align()[/code]。"

#: doc/classes/TreeItem.xml:511
msgid "Center text. See [code]set_text_align()[/code]."
msgstr "将文本居中。参阅[code]set_text_align()[/code]。"

#: doc/classes/TreeItem.xml:514
msgid "Align text to the right. See [code]set_text_align()[/code]."
msgstr "将文本向右对齐。参阅[code]set_text_align()[/code]。"

#: doc/classes/TriangleMesh.xml:4
msgid "Internal mesh type."
msgstr "内部网格类型。"

#: doc/classes/TriangleMesh.xml:7
msgid "Mesh type used internally for collision calculations."
msgstr "内部用于碰撞计算的网格类型。"

#: doc/classes/Tween.xml:4
msgid "Smoothly animates a node's properties over time."
msgstr "平滑地使一个节点的属性随时间变化。"

#: doc/classes/Tween.xml:7
#, fuzzy
msgid ""
"Tweens are 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.\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] node; it would be "
"difficult to do the same thing with an [AnimationPlayer] node.\n"
"Here is a brief usage example that makes a 2D node move smoothly between two "
"positions:\n"
"[codeblock]\n"
"var tween = get_node(\"Tween\")\n"
"tween.interpolate_property($Node2D, \"position\",\n"
"        Vector2(0, 0), Vector2(100, 100), 1,\n"
"        Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)\n"
"tween.start()\n"
"[/codeblock]\n"
"Many methods require a property name, such as [code]\"position\"[/code] "
"above. You can find the correct property name by hovering over the property "
"in the Inspector. You can also provide the components of a property directly "
"by using [code]\"property:component\"[/code] (e.g. [code]position:x[/code]), "
"where it would only apply to that particular component.\n"
"Many of the methods accept [code]trans_type[/code] and [code]ease_type[/"
"code]. The first accepts an [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.png]Tween easing and transition types cheatsheet[/url]"
msgstr ""
"Tweens对于需要在一个数值范围内插值的,数值属性的动画很有用。[i]Tween[/i]这个"
"名字来自[i]in-betweening[/i],这是一种动画技术,你指定[i]keyframes[/i]关键"
"帧,计算机在它们之间插补出帧。\n"
"[Tween]比[AnimationPlayer]更适合于,你事先不知道最终数值的动画。例如,插值动"
"态选择的相机变焦值最好用[Tween]节点完成;用[AnimationPlayer]节点做同样的事情"
"会很困难。\n"
"下面是一个简短的使用例子,它使一个2D节点在两个位置之间平缓移动。\n"
"[codeblock]\n"
"var tween = get_node(\"Tween\")\n"
"tween.interpolate_property($Node2D, \"position\",\n"
"        Vector2(0, 0), Vector2(100, 100), 1,\n"
"        Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)\n"
"tween.start()\n"
"[/codeblock]\n"
"许多方法需要一个属性名称,比如上面的[code]\"position\"[/code]。你可以通过在检"
"查器中,悬停在该属性上找到正确的属性名称。你也可以通过使用[code]\"property:"
"component\"[/code]直接提供一个属性的组件,例如,[code]position:x[/code],它将"
"只适用于该特定组件。\n"
"许多方法接受[code]trans_type[/code]和[code]easy_type[/code]。第一个接受一个"
"[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.png]Tween平缓与过渡类型参考页[/url]"

#: doc/classes/Tween.xml:36
msgid ""
"Follows [code]method[/code] of [code]object[/code] and applies the returned "
"value on [code]target_method[/code] of [code]target[/code], beginning from "
"[code]initial_val[/code] for [code]duration[/code] seconds, [code]delay[/"
"code] later. Methods are called with consecutive values.\n"
"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
"for [code]ease_type[/code] parameters. These values control the timing and "
"direction of the interpolation. See the class description for more "
"information."
msgstr ""
"跟随[code]object[/code]的[code]method[/code],并在[code]target[/code]的"
"[code]target_method[/code]上应用返回值,从[code]initial_val[/code]开始,"
"[code]duration[/code]秒,[code]delay[/code]秒后。方法是用连续的值来调用的。\n"
"对[code]trans_type[/code]使用[enum TransitionType],对[code]ease_type[/code]"
"参数使用[enum EaseType]。这些值控制插值的时间和方向。更多信息参阅类描述。"

#: doc/classes/Tween.xml:52
msgid ""
"Follows [code]property[/code] of [code]object[/code] and applies it on "
"[code]target_property[/code] of [code]target[/code], beginning from "
"[code]initial_val[/code] for [code]duration[/code] seconds, [code]delay[/"
"code] seconds later.\n"
"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
"for [code]ease_type[/code] parameters. These values control the timing and "
"direction of the interpolation. See the class description for more "
"information."
msgstr ""
"跟随[code]object[/code]的[code]property[/code]属性,并应用于[code]target[/"
"code]的[code]target_property[/code],从[code]initial_val[/code]开始, "
"[code]duration[/code]秒,[code]delay[/code]秒后。\n"
"对[code]trans_type[/code]使用[enum TransitionType],对[code]ease_type[/code]"
"参数使用[enum EaseType]。这些值控制插值的时间和方向。更多信息参阅类描述。"

#: doc/classes/Tween.xml:59
msgid ""
"Returns the total time needed for all tweens to end. If you have two tweens, "
"one lasting 10 seconds and the other 20 seconds, it would return 20 seconds, "
"as by that time all tweens would have finished."
msgstr ""
"返回所有补间结束所需的总时间。如果你有两个补间,一个持续10秒,另一个20秒,它"
"会返回20秒,因为到那个时候,所有的补间都会完成。"

#: doc/classes/Tween.xml:73
msgid ""
"Calls [code]callback[/code] of [code]object[/code] after [code]duration[/"
"code]. [code]arg1[/code]-[code]arg5[/code] are arguments to be passed to the "
"callback."
msgstr ""
"在[code]duration[/code]持续时间后,调用[code]object[/code]的[code]callback[/"
"code]回调。[code]arg1[/code]-[code]arg5[/code]是要传递给回调的参数。"

#: doc/classes/Tween.xml:87
msgid ""
"Calls [code]callback[/code] of [code]object[/code] after [code]duration[/"
"code] on the main thread (similar to [method Object.call_deferred]). "
"[code]arg1[/code]-[code]arg5[/code] are arguments to be passed to the "
"callback."
msgstr ""
"在主线程的[code]duration[/code]持续时间之后,调用[code]object[/code]的"
"[code]callback[/code],类似于[method Object.call_deferred]。[code]arg1[/"
"code]-[code]arg5[/code]是要传递给回调的参数。"

#: doc/classes/Tween.xml:101
msgid ""
"Animates [code]method[/code] of [code]object[/code] from [code]initial_val[/"
"code] to [code]final_val[/code] for [code]duration[/code] seconds, "
"[code]delay[/code] seconds later. Methods are called with consecutive "
"values.\n"
"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
"for [code]ease_type[/code] parameters. These values control the timing and "
"direction of the interpolation. See the class description for more "
"information."
msgstr ""
"将[code]object[/code]的[code]method[/code]从[code]initial_val[/code]到"
"[code]final_val[/code]动画化,[code]duration[/code]持续时间秒,[code]delay[/"
"code]延迟秒之后。方法是用连续的值来调用的。\n"
"对[code]trans_type[/code]使用[enum TransitionType],对[code]ease_type[/code]"
"参数使用[enum EaseType]。这些值控制插值的时间和方向。更多信息参阅类描述。"

#: doc/classes/Tween.xml:116
msgid ""
"Animates [code]property[/code] of [code]object[/code] from "
"[code]initial_val[/code] to [code]final_val[/code] for [code]duration[/code] "
"seconds, [code]delay[/code] seconds later. Setting the initial value to "
"[code]null[/code] uses the current value of the property.\n"
"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
"for [code]ease_type[/code] parameters. These values control the timing and "
"direction of the interpolation. See the class description for more "
"information."
msgstr ""
"将[code]object[/code]的[code]property[/code]从[code]initial_val[/code]动画化"
"到[code]final_val[/code],[code]duration[/code]持续时间秒,[code]delay[/code]"
"延迟秒后。将初始值设置为[code]null[/code]使用该属性的当前值。\n"
"对[code]trans_type[/code]使用[enum TransitionType],对[code]Ease_type[/code]"
"参数使用[enum EaseType]。这些值控制插值的时间和方向。更多信息参阅类描述。"

#: doc/classes/Tween.xml:123
msgid ""
"Returns [code]true[/code] if any tweens are currently running.\n"
"[b]Note:[/b] This method doesn't consider tweens that have ended."
msgstr ""
"如果当前有补间正在运行,则返回[code]true[/code]。\n"
"[b]注意:[/b] 这个方法不考虑已经结束的补间。"

#: doc/classes/Tween.xml:132
msgid ""
"Stops animation and removes a tween, given its object and property/method "
"pair. By default, all tweens are removed, unless [code]key[/code] is "
"specified."
msgstr ""
"停止动画并移除补间,指定其对象和属性或方法的对。默认情况下,除非指定"
"[code]key[/code],否则所有的补间都会被移除。"

#: doc/classes/Tween.xml:138
msgid "Stops animation and removes all tweens."
msgstr "停止动画,并删除所有补间。"

#: doc/classes/Tween.xml:146
msgid ""
"Resets a tween to its initial value (the one given, not the one before the "
"tween), given its object and property/method pair. By default, all tweens "
"are removed, unless [code]key[/code] is specified."
msgstr ""
"将补间重置到它的初始值,即给定的值,而不是补间之前的值,指定其对象和属性或方"
"法的对。默认情况下,除非指定了[code]key[/code],否则所有的补间都被移除。"

#: doc/classes/Tween.xml:152
msgid ""
"Resets all tweens to their initial values (the ones given, not those before "
"the tween)."
msgstr "将所有的补间重置为它们的初始值,即给出的值,而不是补间之前的值。"

#: doc/classes/Tween.xml:160
msgid ""
"Continues animating a stopped tween, given its object and property/method "
"pair. By default, all tweens are resumed, unless [code]key[/code] is "
"specified."
msgstr ""
"继续停止的补间制作动画,指定其对象和属性或方法的对。默认情况下,除非指定了"
"[code]key[/code],否则所有的补间都恢复。"

#: doc/classes/Tween.xml:166
msgid "Continues animating all stopped tweens."
msgstr "继续动画所有停止补间。"

#: doc/classes/Tween.xml:173
msgid "Sets the interpolation to the given [code]time[/code] in seconds."
msgstr "设置插值为指定的[code]time[/code],单位秒。"

#: doc/classes/Tween.xml:180
msgid ""
"Activates/deactivates the tween. See also [method stop_all] and [method "
"resume_all]."
msgstr "激活或停用补间。别请参阅[method stop_all]和[method resume_all]。"

#: doc/classes/Tween.xml:186
msgid "Starts the tween. You can define animations both before and after this."
msgstr "开始补间。您可以在此之前和之后定义动画。"

#: doc/classes/Tween.xml:194
msgid ""
"Stops a tween, given its object and property/method pair. By default, all "
"tweens are stopped, unless [code]key[/code] is specified."
msgstr ""
"停止补间,指定其对象和属性或方法的对。除非指定了 [code]key[/code],默认情况"
"下,所有补间都会停止。"

#: doc/classes/Tween.xml:200
msgid "Stops animating all tweens."
msgstr "停止动画所有补间。"

#: doc/classes/Tween.xml:215
msgid ""
"Animates [code]method[/code] of [code]object[/code] from the value returned "
"by [code]initial_method[/code] to [code]final_val[/code] for [code]duration[/"
"code] seconds, [code]delay[/code] seconds later. Methods are animated by "
"calling them with consecutive values.\n"
"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
"for [code]ease_type[/code] parameters. These values control the timing and "
"direction of the interpolation. See the class description for more "
"information."
msgstr ""
"将[code]object[/code]的[code]method[/code]从[code]initial_method[/code]返回的"
"值到[code]final_val[/code]动画化,[code]duration[/code]持续时间秒,"
"[code]delay[/code]延迟秒后。方法是通过调用连续的值来实现动画的。\n"
"对[code]trans_type[/code]使用[enum TransitionType],对[code]ease_type[/code]"
"参数使用[enum EaseType]。这些值控制插值的时间和方向。更多信息参阅类描述。"

#: doc/classes/Tween.xml:231
msgid ""
"Animates [code]property[/code] of [code]object[/code] from the current value "
"of the [code]initial_val[/code] property of [code]initial[/code] to "
"[code]final_val[/code] for [code]duration[/code] seconds, [code]delay[/code] "
"seconds later.\n"
"Use [enum TransitionType] for [code]trans_type[/code] and [enum EaseType] "
"for [code]ease_type[/code] parameters. These values control the timing and "
"direction of the interpolation. See the class description for more "
"information."
msgstr ""
"将[code]object[/code]的[code]property[/code]从[code]initial[/code]的"
"[code]initial_val[/code]属性的当前值到[code]final_val[/code]动画化[code],"
"[code]duration[/code]持续时间秒,[code]delay[/code]延迟秒后。\n"
"对[code]trans_type[/code]使用[enum TransitionType],对[code]ease_type[/code]"
"参数使用[enum EaseType]。这些值控制插值的时间和方向。更多信息参阅类描述。"

#: doc/classes/Tween.xml:238
msgid "Returns the current time of the tween."
msgstr "返回补间的当前时间。"

#: doc/classes/Tween.xml:244
msgid "The tween's animation process thread. See [enum TweenProcessMode]."
msgstr "补间动画处理线程。参阅[enum TweenProcessMode]。"

#: doc/classes/Tween.xml:247
msgid ""
"The tween's speed multiplier. For example, set it to [code]1.0[/code] for "
"normal speed, [code]2.0[/code] for two times normal speed, or [code]0.5[/"
"code] for half of the normal speed. A value of [code]0[/code] pauses the "
"animation, but see also [method set_active] or [method stop_all] for this."
msgstr ""
"补间的速度乘数。例如,设置为[code]1.0[/code]为正常速度,[code]2.0[/code]为正"
"常速度的2倍,或者[code]0.5[/code]为正常速度的一半。值为[code]0[/code]时,动画"
"会暂停,另请参阅[method set_active]或[method stop_all]。"

#: doc/classes/Tween.xml:250
msgid "If [code]true[/code], the tween loops."
msgstr "如果[code]true[/code],补间循环。"

#: doc/classes/Tween.xml:256
msgid "Emitted when all processes in a tween end."
msgstr "当补间中的所有进程结束时触发。"

#: doc/classes/Tween.xml:263
msgid "Emitted when a tween ends."
msgstr "补间结束时触发。"

#: doc/classes/Tween.xml:270
msgid "Emitted when a tween starts."
msgstr "当补间开始时触发。"

#: doc/classes/Tween.xml:279
msgid "Emitted at each step of the animation."
msgstr "动画的每一步都触发。"

#: doc/classes/Tween.xml:285
msgid "The tween updates with the [code]_physics_process[/code] callback."
msgstr "补间通过 [code]_physics_process[/code] 回调进行更新。"

#: doc/classes/Tween.xml:288
msgid "The tween updates with the [code]_process[/code] callback."
msgstr "补间通过[code]_process[/code]回调进行更新。"

#: doc/classes/Tween.xml:291
msgid "The animation is interpolated linearly."
msgstr "动画是线性插值的。"

#: doc/classes/Tween.xml:294
msgid "The animation is interpolated using a sine function."
msgstr "动画使用正弦函数进行插值。"

#: doc/classes/Tween.xml:297
msgid ""
"The animation is interpolated with a quintic (to the power of 5) function."
msgstr "动画是用五次方,即5的幂函数进行插值的。"

#: doc/classes/Tween.xml:300
msgid ""
"The animation is interpolated with a quartic (to the power of 4) function."
msgstr "动画是用一个四次方,即4的幂函数插值的。"

#: doc/classes/Tween.xml:303
msgid ""
"The animation is interpolated with a quadratic (to the power of 2) function."
msgstr "动画是用二次方,即2的幂函数插值的。"

#: doc/classes/Tween.xml:306
msgid ""
"The animation is interpolated with an exponential (to the power of x) "
"function."
msgstr "动画是用一个指数,即x的幂函数插值的。"

#: doc/classes/Tween.xml:309
msgid ""
"The animation is interpolated with elasticity, wiggling around the edges."
msgstr "动画弹性插值,在边缘摆动。"

#: doc/classes/Tween.xml:312
msgid ""
"The animation is interpolated with a cubic (to the power of 3) function."
msgstr "动画是用一个立方,即3的幂函数插值的。"

#: doc/classes/Tween.xml:315
msgid "The animation is interpolated with a function using square roots."
msgstr "动画使用平方根的函数进行插值。"

#: doc/classes/Tween.xml:318
msgid "The animation is interpolated by bouncing at the end."
msgstr "动画通过在末尾弹跳插值。"

#: doc/classes/Tween.xml:321
msgid "The animation is interpolated backing out at ends."
msgstr "动画在末端回放插值。"

#: doc/classes/Tween.xml:324
msgid "The interpolation starts slowly and speeds up towards the end."
msgstr "插值开始缓慢,并加速接近结束。"

#: doc/classes/Tween.xml:327
msgid "The interpolation starts quickly and slows down towards the end."
msgstr "插值开始快速,接近结束时减慢。"

#: doc/classes/Tween.xml:330
msgid ""
"A combination of [constant EASE_IN] and [constant EASE_OUT]. The "
"interpolation is slowest at both ends."
msgstr "[constant EASE_IN] 和 [constant EASE_OUT] 的组合。两端的插值最慢。"

#: doc/classes/Tween.xml:333
msgid ""
"A combination of [constant EASE_IN] and [constant EASE_OUT]. The "
"interpolation is fastest at both ends."
msgstr "[constant EASE_IN] and [constant EASE_OUT]的组合。两端的插值最快。"

#: doc/classes/UDPServer.xml:4
msgid "Helper class to implement a UDP server."
msgstr "用于实现UDP服务的辅助类。"

#: doc/classes/UDPServer.xml:7
msgid ""
"A simple server that opens a UDP socket and returns connected "
"[PacketPeerUDP] upon receiving new packets. See also [method PacketPeerUDP."
"connect_to_host].\n"
"After starting the server ([method listen]), you will need to [method poll] "
"it at regular intervals (e.g. inside [method Node._process]) for it to "
"process new packets, delivering them to the appropriate [PacketPeerUDP], and "
"taking new connections.\n"
"Below a small example of how it can be used:\n"
"[codeblock]\n"
"# server.gd\n"
"extends Node\n"
"\n"
"var server := UDPServer.new()\n"
"var peers = []\n"
"\n"
"func _ready():\n"
"    server.listen(4242)\n"
"\n"
"func _process(delta):\n"
"    server.poll() # Important!\n"
"    if server.is_connection_available():\n"
"        var peer : PacketPeerUDP = server.take_connection()\n"
"        var pkt = peer.get_packet()\n"
"        print(\"Accepted peer: %s:%s\" % [peer.get_packet_ip(), peer."
"get_packet_port()])\n"
"        print(\"Received data: %s\" % [pkt.get_string_from_utf8()])\n"
"        # Reply so it knows we received the message.\n"
"        peer.put_packet(pkt)\n"
"        # Keep a reference so we can keep contacting the remote peer.\n"
"        peers.append(peer)\n"
"\n"
"    for i in range(0, peers.size()):\n"
"        pass # Do something with the connected peers.\n"
"\n"
"[/codeblock]\n"
"[codeblock]\n"
"# client.gd\n"
"extends Node\n"
"\n"
"var udp := PacketPeerUDP.new()\n"
"var connected = false\n"
"\n"
"func _ready():\n"
"    udp.connect_to_host(\"127.0.0.1\", 4242)\n"
"\n"
"func _process(delta):\n"
"    if !connected:\n"
"        # Try to contact server\n"
"        udp.put_packet(\"The answer is... 42!\".to_utf8())\n"
"    if udp.get_available_packet_count() > 0:\n"
"        print(\"Connected: %s\" % udp.get_packet().get_string_from_utf8())\n"
"        connected = true\n"
"[/codeblock]"
msgstr ""
"一个简单的服务器,它打开一个UDP套接字,并在收到新的数据包时,返回连接的"
"[PacketPeerUDP]。参阅[method PacketPeerUDP.connect_to_host]。 \n"
"在启动服务器,即[method listen]后,你将需要定期[method poll]它,例如在"
"[method Node._process]内,处理新的数据包,将它们传递给适当的[PacketPeerUDP],"
"并接受新的连接。 下面是一个关于如何使用它的小例子。\n"
"[codeblock]\n"
"# server.gd\n"
"extends Node\n"
"\n"
"var server := UDPServer.new()\n"
"var peers = []\n"
"\n"
"func _ready():\n"
"    server.listen(4242)\n"
"\n"
"func _process(delta):\n"
"    server.poll() # Important!\n"
"    if server.is_connection_available():\n"
"        var peer : PacketPeerUDP = server.take_connection()\n"
"        var pkt = peer.get_packet()\n"
"        print(\"Accepted peer: %s:%s\" % [peer.get_packet_ip(), peer."
"get_packet_port()])\n"
"        print(\"Received data: %s\" % [pkt.get_string_from_utf8()])\n"
"        # Reply so it knows we received the message.\n"
"        peer.put_packet(pkt)\n"
"        # Keep a reference so we can keep contacting the remote peer.\n"
"        peers.append(peer)\n"
"\n"
"    for i in range(0, peers.size()):\n"
"        pass # Do something with the connected peers.\n"
"\n"
"[/codeblock]\n"
"[codeblock]\n"
"# client.gd\n"
"extends Node\n"
"\n"
"var udp := PacketPeerUDP.new()\n"
"var connected = false\n"
"\n"
"func _ready():\n"
"    udp.connect_to_host(\"127.0.0.1\", 4242)\n"
"\n"
"func _process(delta):\n"
"    if !connected:\n"
"        # Try to contact server\n"
"        udp.put_packet(\"The answer is... 42!\".to_utf8())\n"
"    if udp.get_available_packet_count() > 0:\n"
"        print(\"Connected: %s\" % udp.get_packet().get_string_from_utf8())\n"
"        connected = true\n"
"[/codeblock]"

#: doc/classes/UDPServer.xml:61
msgid ""
"Returns [code]true[/code] if a packet with a new address/port combination "
"was received on the socket."
msgstr ""
"如果在套接字中收到一个具有新地址及端口组合的数据包,则返回[code]true[/code]。"

#: doc/classes/UDPServer.xml:67
msgid ""
"Returns [code]true[/code] if the socket is open and listening on a port."
msgstr "如果套接字是打开的,并且在监听端口,则返回[code]true[/code]。"

#: doc/classes/UDPServer.xml:75
msgid ""
"Starts the server by opening a UDP socket listening on the given port. You "
"can optionally specify a [code]bind_address[/code] to only listen for "
"packets sent to that address. See also [method PacketPeerUDP.listen]."
msgstr ""
"通过在给定的端口上打开一个UDP套接字来启动服务。你可以选择指定一个"
"[code]bind_address[/code],只监听发送到该地址的数据包。参阅[method "
"PacketPeerUDP.listen]。"

#: doc/classes/UDPServer.xml:81
msgid ""
"Call this method at regular intervals (e.g. inside [method Node._process]) "
"to process new packets. And packet from known address/port pair will be "
"delivered to the appropriate [PacketPeerUDP], any packet received from an "
"unknown address/port pair will be added as a pending connection (see [method "
"is_connection_available], [method take_connection]). The maximum number of "
"pending connection is defined via [member max_pending_connections]."
msgstr ""
"定期调用这个方法,例如在[method Node._process]里面,来处理新数据包。来自已知"
"地址及端口对的数据包,将被传递到相应的[PacketPeerUDP],任何从未知地址及端口对"
"收到的数据包将被添加为一个待定连接,参阅[method is_connection_available], "
"[method take_connection]。待定连接的最大数量通过[member "
"max_pending_connections]定义。"

#: doc/classes/UDPServer.xml:87
msgid ""
"Stops the server, closing the UDP socket if open. Will close all connected "
"[PacketPeerUDP] accepted via [method take_connection] (remote peers will not "
"be notified)."
msgstr ""
"停止服务,如果UDP套接字是打开的,就关闭它。将关闭所有通过[method "
"take_connection]接受连接的[PacketPeerUDP],注,不会通知远程对等体。"

#: doc/classes/UDPServer.xml:93
msgid ""
"Returns the first pending connection (connected to the appropriate address/"
"port). Will return [code]null[/code] if no new connection is available. See "
"also [method is_connection_available], [method PacketPeerUDP."
"connect_to_host]."
msgstr ""
"返回第一个挂起的连接,注,连接到适当的地址及端口。如果没有新的连接可用,将返"
"回[code]null[/code]。参阅[method is_connection_available], [method "
"PacketPeerUDP.connect_to_host]。"

#: doc/classes/UDPServer.xml:99
msgid ""
"Define the maximum number of pending connections, during [method poll], any "
"new pending connection exceeding that value will be automatically dropped. "
"Setting this value to [code]0[/code] effectively prevents any new pending "
"connection to be accepted (e.g. when all your players have connected)."
msgstr ""
"定义最大的待定连接数,在[method poll]期间,任何超过该值的新待定连接将被自动放"
"弃。把这个值设置为[code]0[/code]可以有效地防止任何新的待定连接被接受,例如,"
"当你的所有玩家都连接时。"

#: doc/classes/UndoRedo.xml:4
msgid "Helper to manage undo/redo operations in the editor or custom tools."
msgstr "助手管理编辑器或自定义工具中的撤销及重做操作。"

#: doc/classes/UndoRedo.xml:7
msgid ""
"Helper to manage undo/redo operations in the editor or custom tools. It "
"works by registering methods and property changes inside \"actions\".\n"
"Common behavior is to create an action, then add do/undo calls to functions "
"or property changes, then committing the action.\n"
"Here's an example on how to add an action to the Godot editor's own "
"[UndoRedo], from a plugin:\n"
"[codeblock]\n"
"var undo_redo = get_undo_redo() # Method of EditorPlugin.\n"
"\n"
"func do_something():\n"
"    pass # Put your code here.\n"
"\n"
"func undo_something():\n"
"    pass # Put here the code that reverts what's done by "
"\"do_something()\".\n"
"\n"
"func _on_MyButton_pressed():\n"
"    var node = get_node(\"MyNode2D\")\n"
"    undo_redo.create_action(\"Move the node\")\n"
"    undo_redo.add_do_method(self, \"do_something\")\n"
"    undo_redo.add_undo_method(self, \"undo_something\")\n"
"    undo_redo.add_do_property(node, \"position\", Vector2(100,100))\n"
"    undo_redo.add_undo_property(node, \"position\", node.position)\n"
"    undo_redo.commit_action()\n"
"[/codeblock]\n"
"[method create_action], [method add_do_method], [method add_undo_method], "
"[method add_do_property], [method add_undo_property], and [method "
"commit_action] should be called one after the other, like in the example. "
"Not doing so could lead to crashes.\n"
"If you don't need to register a method, you can leave [method add_do_method] "
"and [method add_undo_method] out; the same goes for properties. You can also "
"register more than one method/property."
msgstr ""
"助手管理编辑器或自定义工具中的撤销及重做操作。它通过在 \"actions\" 动作中注册"
"方法和属性变化来运行。\n"
"常见的行为是创建一个动作,然后对函数或属性变化添加执行及重做调用,然后提交动"
"作。 \n"
"下面是一个插件中例子,说明如何在Godot编辑器自己的[UndoRedo]中添加一个动"
"作。 \n"
"[codeblock]\n"
"var undo_redo = get_undo_redo() # Method of EditorPlugin.\n"
"\n"
"func do_something():\n"
"    pass # Put your code here.\n"
"\n"
"func undo_something():\n"
"    pass # Put here the code that reverts what's done by "
"\"do_something()\".\n"
"\n"
"func _on_MyButton_pressed():\n"
"    var node = get_node(\"MyNode2D\")\n"
"    undo_redo.create_action(\"Move the node\")\n"
"    undo_redo.add_do_method(self, \"do_something\")\n"
"    undo_redo.add_undo_method(self, \"undo_something\")\n"
"    undo_redo.add_do_property(node, \"position\", Vector2(100,100))\n"
"    undo_redo.add_undo_property(node, \"position\", node.position)\n"
"    undo_redo.commit_action()\n"
"[/codeblock]\n"
"[method create_action], [method add_do_method], [method add_undo_method], "
"[method add_do_property], [method add_undo_property], and [method "
"commit_action]应该像例子中那样,一个接一个地调用。否则可能会导致崩溃。\n"
"如果你不需要注册一个方法,你可以不注册[method add_do_method]和[method "
"add_undo_method];对于属性也是这样。你也可以注册一个以上的方法及属性。"

#: doc/classes/UndoRedo.xml:39
msgid "Register a method that will be called when the action is committed."
msgstr "注册一个方法,当动作被提交时将被调用。"

#: doc/classes/UndoRedo.xml:48
msgid "Register a property value change for \"do\"."
msgstr "为 \"do\" 注册一个属性值变化。"

#: doc/classes/UndoRedo.xml:55
msgid ""
"Register a reference for \"do\" that will be erased if the \"do\" history is "
"lost. This is useful mostly for new nodes created for the \"do\" call. Do "
"not use for resources."
msgstr ""
"为 \"do\" 注册一个引用,如果 \"do\" 的历史丢失,该引用将被删除。这对于为 \"do"
"\" 调用而创建的新节点来说非常有用。但不要用于资源。"

#: doc/classes/UndoRedo.xml:63
msgid "Register a method that will be called when the action is undone."
msgstr "注册一个方法,当动作被撤销时将被调用。"

#: doc/classes/UndoRedo.xml:72
msgid "Register a property value change for \"undo\"."
msgstr "注册一个 \"undo\" 撤消的属性值变化。"

#: doc/classes/UndoRedo.xml:79
msgid ""
"Register a reference for \"undo\" that will be erased if the \"undo\" "
"history is lost. This is useful mostly for nodes removed with the \"do\" "
"call (not the \"undo\" call!)."
msgstr ""
"为 \"undo\" 注册一个引用,如果 \"undo\" 历史丢失,该引用将被删除。这对通过 "
"\"do\" 调用删除的节点非常有用,注,不是 \"undo\" 调用。"

#: doc/classes/UndoRedo.xml:86
msgid ""
"Clear the undo/redo history and associated references.\n"
"Passing [code]false[/code] to [code]increase_version[/code] will prevent the "
"version number to be increased from this."
msgstr ""
"清除撤销及重做历史和相关的引用。\n"
"将[code]false[/code]传递给[code]encreate_version[/code]将阻止版本号由此增加。"

#: doc/classes/UndoRedo.xml:93
msgid ""
"Commit the action. All \"do\" methods/properties are called/set when this "
"function is called."
msgstr "提交动作。当这个函数被调用时,所有 \"do\" 的方法及属性都被调用及设置。"

#: doc/classes/UndoRedo.xml:101
msgid ""
"Create a new action. After this is called, do all your calls to [method "
"add_do_method], [method add_undo_method], [method add_do_property], and "
"[method add_undo_property], then commit the action with [method "
"commit_action].\n"
"The way actions are merged is dictated by the [code]merge_mode[/code] "
"argument. See [enum MergeMode] for details."
msgstr ""
"创建一个新的动作。在这个动作被调用后,完成所有对[method add_do_method]、"
"[method add_undo_method]、[method add_do_property]和[method "
"add_undo_property]的调用,然后用[method commit_action]提交这个动作。\n"
"动作的合并方式由[code]merge_mode[/code]参数决定。详情参阅[enum MergeMode]。"

#: doc/classes/UndoRedo.xml:108
msgid "Gets the name of the current action."
msgstr "获取当前动作的名称。"

#: doc/classes/UndoRedo.xml:114
msgid ""
"Gets the version. Every time a new action is committed, the [UndoRedo]'s "
"version number is increased automatically.\n"
"This is useful mostly to check if something changed from a saved version."
msgstr ""
"获取版本。每次提交一个新的操作,[UndoRedo]的版本号都会自动增加。\n"
"这主要用于检查保存的版本是否发生了更改。"

#: doc/classes/UndoRedo.xml:133
msgid ""
"Returns [code]true[/code] if the [UndoRedo] is currently committing the "
"action, i.e. running its \"do\" method or property change (see [method "
"commit_action])."
msgstr ""
"如果[UndoRedo]当前正在提交动作,即运行其 \"do\" 的方法或属性变化,参阅"
"[method commit_action],则返回[code]true[/code]。"

#: doc/classes/UndoRedo.xml:139
msgid "Redo the last action."
msgstr "重做上一个动作。"

#: doc/classes/UndoRedo.xml:145
msgid "Undo the last action."
msgstr "撤销上一个动作。"

#: doc/classes/UndoRedo.xml:152
msgid "Called when [method undo] or [method redo] was called."
msgstr "当[method undo] 或 [method redo]被调用时调用。"

#: doc/classes/UndoRedo.xml:158
msgid "Makes \"do\"/\"undo\" operations stay in separate actions."
msgstr "使 \"do\"/\"undo\" 操作保持在单独的动作中。"

#: doc/classes/UndoRedo.xml:161
msgid ""
"Makes so that the action's \"do\" operation is from the first action created "
"and the \"undo\" operation is from the last subsequent action with the same "
"name."
msgstr ""
"使动作的 \"do\" 的操作来自于创建的第一个动作,\"undo\" 的操作来自于最后一个同"
"名的后续动作。"

#: doc/classes/UndoRedo.xml:164
msgid "Makes subsequent actions with the same name be merged into one."
msgstr "使具有相同名称的后续动作合并为一个。"

#: modules/upnp/doc_classes/UPNP.xml:4
msgid "UPNP network functions."
msgstr "UPNP网络功能。"

#: modules/upnp/doc_classes/UPNP.xml:7
msgid ""
"Provides UPNP functionality to discover [UPNPDevice]s on the local network "
"and execute commands on them, like managing port mappings (port forwarding) "
"and querying the local and remote network IP address. Note that methods on "
"this class are synchronous and block the calling thread.\n"
"To forward a specific port:\n"
"[codeblock]\n"
"const PORT = 7777\n"
"var upnp = UPNP.new()\n"
"upnp.discover(2000, 2, \"InternetGatewayDevice\")\n"
"upnp.add_port_mapping(port)\n"
"[/codeblock]\n"
"To close a specific port (e.g. after you have finished using it):\n"
"[codeblock]\n"
"upnp.delete_port_mapping(port)\n"
"[/codeblock]\n"
"[b]Note:[/b] UPnP discovery blocks the current thread. To perform discovery "
"without blocking the main thread, use [Thread]s like this:\n"
"[codeblock]\n"
"# Emitted when UPnP port mapping setup is completed (regardless of success "
"or failure).\n"
"signal upnp_completed(error)\n"
"\n"
"# Replace this with your own server port number between 1025 and 65535.\n"
"const SERVER_PORT = 3928\n"
"var thread = null\n"
"\n"
"func _upnp_setup(server_port):\n"
"    # UPNP queries take some time.\n"
"    var upnp = UPNP.new()\n"
"    var err = upnp.discover()\n"
"\n"
"    if err != OK:\n"
"        push_error(str(err))\n"
"        emit_signal(\"upnp_completed\", err)\n"
"        return\n"
"\n"
"    if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway():\n"
"        upnp.add_port_mapping(server_port, server_port, ProjectSettings."
"get_setting(\"application/config/name\"), \"UDP\")\n"
"        upnp.add_port_mapping(server_port, server_port, ProjectSettings."
"get_setting(\"application/config/name\"), \"TCP\")\n"
"        emit_signal(\"upnp_completed\", OK)\n"
"\n"
"func _ready():\n"
"    thread = Thread.new()\n"
"    thread.start(self, \"_upnp_setup\", SERVER_PORT)\n"
"\n"
"func _exit_tree():\n"
"    # Wait for thread finish here to handle game exit while the thread is "
"running.\n"
"    thread.wait_to_finish()\n"
"[/codeblock]"
msgstr ""

#: modules/upnp/doc_classes/UPNP.xml:59
msgid "Adds the given [UPNPDevice] to the list of discovered devices."
msgstr "将给定的[UPNPDevice]添加到已发现设备的列表中。"

#: modules/upnp/doc_classes/UPNP.xml:70
msgid ""
"Adds a mapping to forward the external [code]port[/code] (between 1 and "
"65535) on the default gateway (see [method get_gateway]) to the "
"[code]internal_port[/code] on the local machine for the given protocol "
"[code]proto[/code] (either [code]TCP[/code] or [code]UDP[/code], with UDP "
"being the default). If a port mapping for the given port and protocol "
"combination already exists on that gateway device, this method tries to "
"overwrite it. If that is not desired, you can retrieve the gateway manually "
"with [method get_gateway] and call [method add_port_mapping] on it, if any.\n"
"If [code]internal_port[/code] is [code]0[/code] (the default), the same port "
"number is used for both the external and the internal port (the [code]port[/"
"code] value).\n"
"The description ([code]desc[/code]) is shown in some router UIs and can be "
"used to point out which application added the mapping. The mapping's lease "
"duration can be limited by specifying a [code]duration[/code] (in seconds). "
"However, some routers are incompatible with one or both of these, so use "
"with caution and add fallback logic in case of errors to retry without them "
"if in doubt.\n"
"See [enum UPNPResult] for possible return values."
msgstr ""
"添加一个映射,将默认网关上的外部[code]port[/code],介于1和65535之间,转发到本"
"地机器上的[code]internal_port[/code],用于指定协议[code]proto[/code],即"
"[code]TCP[/code]或[code]UDP[/code],默认为UDP。如果该网关设备上已经存在给定端"
"口和协议组合的端口映射,该方法将尝试覆盖它。如果不希望这样,你可以用[method "
"get_gateway]手动检索该网关,如果有的话,就调用[method add_port_mapping]。\n"
"如果[code]internal_port[/code]是[code]0[/code](默认值),外部和内部端口都使"
"用相同的端口号([code]port[/code]值)。\n"
"描述([code]desc[/code])显示在一些路由器的UI中,可以用来指出是哪个应用添加了"
"映射。可以通过指定[code]duration[/code](单位:秒)来限制映射的租用期限。然"
"而,有些路由器与其中的个别不兼容,所以要谨慎使用,并在出错时添加回退逻辑,如"
"果有疑问,可以在没有它们的情况下重试。\n"
"参阅[method get_gateway]。参阅[enum UPNPResult],了解可能的返回值。"

#: modules/upnp/doc_classes/UPNP.xml:79
msgid "Clears the list of discovered devices."
msgstr "清除已发现设备的列表。"

#: modules/upnp/doc_classes/UPNP.xml:87
msgid ""
"Deletes the port mapping for the given port and protocol combination on the "
"default gateway (see [method get_gateway]) if one exists. [code]port[/code] "
"must be a valid port between 1 and 65535, [code]proto[/code] can be either "
"[code]TCP[/code] or [code]UDP[/code]. See [enum UPNPResult] for possible "
"return values."
msgstr ""
"删除默认网关上给定端口和协议组合的端口映射,如果存在的话。[code]port[/code]必"
"须是1到65535之间的有效端口,[code]proto[/code]可以是[code]TCP[/code]或"
"[code]UDP[/code]。可能的返回值,参阅[enum UPNPResult]。参阅[method "
"get_gateway]。"

#: modules/upnp/doc_classes/UPNP.xml:96
msgid ""
"Discovers local [UPNPDevice]s. Clears the list of previously discovered "
"devices.\n"
"Filters for IGD (InternetGatewayDevice) type devices by default, as those "
"manage port forwarding. [code]timeout[/code] is the time to wait for "
"responses in milliseconds. [code]ttl[/code] is the time-to-live; only touch "
"this if you know what you're doing.\n"
"See [enum UPNPResult] for possible return values."
msgstr ""
"发现本地的[UPNPDevice]。清除先前发现的设备的列表。\n"
"默认情况下过滤IGD(InternetGatewayDevice)类型的设备,因为这些设备管理端口转"
"发。[code]timeout[/code] 是等待响应的时间,单位是毫秒。[code]ttl[/code]是生存"
"时间;只有在你了解在做什么的情况下才会遇到这个。\n"
"参阅[enum UPNPResult]了解可能的返回值。"

#: modules/upnp/doc_classes/UPNP.xml:105
msgid "Returns the [UPNPDevice] at the given [code]index[/code]."
msgstr "返回给定[code]index[/code]处的[UPNPDevice]。"

#: modules/upnp/doc_classes/UPNP.xml:111
msgid "Returns the number of discovered [UPNPDevice]s."
msgstr "返回已发现的[UPNPDevice]的数量。"

#: modules/upnp/doc_classes/UPNP.xml:117
msgid ""
"Returns the default gateway. That is the first discovered [UPNPDevice] that "
"is also a valid IGD (InternetGatewayDevice)."
msgstr ""
"返回默认网关。这是第一个发现的[UPNPDevice],也是一个有效的"
"IGD(InternetGatewayDevice)。"

#: modules/upnp/doc_classes/UPNP.xml:123
msgid ""
"Returns the external [IP] address of the default gateway (see [method "
"get_gateway]) as string. Returns an empty string on error."
msgstr ""
"返回默认网关的外部[IP]地址字符串。错误时返回一个空字符串。参阅[method "
"get_gateway]。"

#: modules/upnp/doc_classes/UPNP.xml:130
msgid ""
"Removes the device at [code]index[/code] from the list of discovered devices."
msgstr "将[code]index[/code]处的设备从已发现的设备列表中移除。"

#: modules/upnp/doc_classes/UPNP.xml:138
msgid ""
"Sets the device at [code]index[/code] from the list of discovered devices to "
"[code]device[/code]."
msgstr ""
"将[code]index[/code]处的设备从已发现的设备列表中设置为[code]device[/code]。"

#: modules/upnp/doc_classes/UPNP.xml:144
msgid "If [code]true[/code], IPv6 is used for [UPNPDevice] discovery."
msgstr "如果[code]true[/code],则IPv6用于[UPNPDevice]发现。"

#: modules/upnp/doc_classes/UPNP.xml:147
msgid ""
"If [code]0[/code], the local port to use for discovery is chosen "
"automatically by the system. If [code]1[/code], discovery will be done from "
"the source port 1900 (same as destination port). Otherwise, the value will "
"be used as the port."
msgstr ""
"如果[code]0[/code],系统会自动选择用于发现的本地端口。如果[code]1[/code],将"
"从源端口1900进行发现,注,与目的端口相同。否则,将使用该值作为端口。"

#: modules/upnp/doc_classes/UPNP.xml:150
msgid ""
"Multicast interface to use for discovery. Uses the default multicast "
"interface if empty."
msgstr "用于发现的多播接口。如果为空,则使用默认的多播接口。"

#: modules/upnp/doc_classes/UPNP.xml:155
msgid "UPNP command or discovery was successful."
msgstr "UPNP命令或发现成功。"

#: modules/upnp/doc_classes/UPNP.xml:158
msgid ""
"Not authorized to use the command on the [UPNPDevice]. May be returned when "
"the user disabled UPNP on their router."
msgstr ""
"未授权在[UPNPDevice]上使用该命令。当用户在其路由器上禁用UPNP时,可能会被返"
"回。"

#: modules/upnp/doc_classes/UPNP.xml:161
msgid ""
"No port mapping was found for the given port, protocol combination on the "
"given [UPNPDevice]."
msgstr "在给定的[UPNPDevice]上没有找到给定端口、协议组合的端口映射。"

#: modules/upnp/doc_classes/UPNP.xml:164
msgid "Inconsistent parameters."
msgstr "参数不一致。"

#: modules/upnp/doc_classes/UPNP.xml:167
msgid ""
"No such entry in array. May be returned if a given port, protocol "
"combination is not found on an [UPNPDevice]."
msgstr ""
"数组中没有此条目。如果在[UPNPDevice]上没有找到给定的端口、协议组合,可能会被"
"返回。"

#: modules/upnp/doc_classes/UPNP.xml:170
msgid "The action failed."
msgstr "操作失败。"

#: modules/upnp/doc_classes/UPNP.xml:173
msgid ""
"The [UPNPDevice] does not allow wildcard values for the source IP address."
msgstr "[UPNPDevice]不允许源IP地址的通配符值。"

#: modules/upnp/doc_classes/UPNP.xml:176
msgid "The [UPNPDevice] does not allow wildcard values for the external port."
msgstr "[UPNPDevice]不允许外部端口的通配符值。"

#: modules/upnp/doc_classes/UPNP.xml:179
msgid "The [UPNPDevice] does not allow wildcard values for the internal port."
msgstr "[UPNPDevice]不允许内部端口的通配符值。"

#: modules/upnp/doc_classes/UPNP.xml:182
msgid "The remote host value must be a wildcard."
msgstr "远程主机值必须是通配符。"

#: modules/upnp/doc_classes/UPNP.xml:185
msgid "The external port value must be a wildcard."
msgstr "外部端口值必须是通配符。"

#: modules/upnp/doc_classes/UPNP.xml:188
msgid ""
"No port maps are available. May also be returned if port mapping "
"functionality is not available."
msgstr "没有可用的端口映射。如果端口映射功能不可用,也可能被返回。"

#: modules/upnp/doc_classes/UPNP.xml:191
msgid ""
"Conflict with other mechanism. May be returned instead of [constant "
"UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING] if a port mapping conflicts with an "
"existing one."
msgstr ""
"与其他机制冲突。如果一个端口映射与现有的冲突,可能会被返回,而不是[constant "
"UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING]。"

#: modules/upnp/doc_classes/UPNP.xml:194
msgid "Conflict with an existing port mapping."
msgstr "与现有的端口映射相冲突。"

#: modules/upnp/doc_classes/UPNP.xml:197
msgid "External and internal port values must be the same."
msgstr "外部和内部端口值必须相同。"

#: modules/upnp/doc_classes/UPNP.xml:200
msgid ""
"Only permanent leases are supported. Do not use the [code]duration[/code] "
"parameter when adding port mappings."
msgstr "只支持永久租用。在添加端口映射时,不要使用[code]duration[/code]参数。"

#: modules/upnp/doc_classes/UPNP.xml:203
msgid "Invalid gateway."
msgstr "无效网关。"

#: modules/upnp/doc_classes/UPNP.xml:206
msgid "Invalid port."
msgstr "无效端口。"

#: modules/upnp/doc_classes/UPNP.xml:209
msgid "Invalid protocol."
msgstr "无效协议。"

#: modules/upnp/doc_classes/UPNP.xml:212
msgid "Invalid duration."
msgstr "无效持续时间。"

#: modules/upnp/doc_classes/UPNP.xml:215
msgid "Invalid arguments."
msgstr "无效参数。"

#: modules/upnp/doc_classes/UPNP.xml:218
msgid "Invalid response."
msgstr "无效响应。"

#: modules/upnp/doc_classes/UPNP.xml:221
msgid "Invalid parameter."
msgstr "无效参数。"

#: modules/upnp/doc_classes/UPNP.xml:224
#: modules/upnp/doc_classes/UPNPDevice.xml:69
msgid "HTTP error."
msgstr "HTTP错误。"

#: modules/upnp/doc_classes/UPNP.xml:227
msgid "Socket error."
msgstr "套接字错误。"

#: modules/upnp/doc_classes/UPNP.xml:230
msgid "Error allocating memory."
msgstr "分配内存时出错。"

#: modules/upnp/doc_classes/UPNP.xml:233
msgid ""
"No gateway available. You may need to call [method discover] first, or "
"discovery didn't detect any valid IGDs (InternetGatewayDevices)."
msgstr ""
"没有可用的网关。你可能需要先调用[method discover] ,否则发现没有检测到任何有"
"效的IGD(InternetGatewayDevices)。"

#: modules/upnp/doc_classes/UPNP.xml:236
msgid ""
"No devices available. You may need to call [method discover] first, or "
"discovery didn't detect any valid [UPNPDevice]s."
msgstr ""
"没有可用的设备。你可能需要先调用[method discover],或者发现没有检测到任何有效"
"的[UPNPDevice]。"

#: modules/upnp/doc_classes/UPNP.xml:239
#: modules/upnp/doc_classes/UPNPDevice.xml:93
msgid "Unknown error."
msgstr "未知错误。"

#: modules/upnp/doc_classes/UPNPDevice.xml:4
msgid "UPNP device."
msgstr "UPNP 设备。"

#: modules/upnp/doc_classes/UPNPDevice.xml:7
msgid ""
"UPNP device. See [UPNP] for UPNP discovery and utility functions. Provides "
"low-level access to UPNP control commands. Allows to manage port mappings "
"(port forwarding) and to query network information of the device (like local "
"and external IP address and status). Note that methods on this class are "
"synchronous and block the calling thread."
msgstr ""
"UPNP设备。参阅 [UPNP] 了解UPNP发现和实用功能。提供对UPNP控制命令的低层访问。"
"允许管理端口映射(端口转发)和查询设备的网络信息,如本地和外部IP地址和状态。"
"请注意,这个类的方法是同步的,会阻塞调用线程。"

#: modules/upnp/doc_classes/UPNPDevice.xml:20
msgid ""
"Adds a port mapping to forward the given external port on this [UPNPDevice] "
"for the given protocol to the local machine. See [method UPNP."
"add_port_mapping]."
msgstr ""
"添加一个端口映射,将这个[UPNPDevice]上给定的外部端口转发到本地机器上,以给定"
"的协议。参阅 [method UPNP.add_port_mapping]。"

#: modules/upnp/doc_classes/UPNPDevice.xml:28
msgid ""
"Deletes the port mapping identified by the given port and protocol "
"combination on this device. See [method UPNP.delete_port_mapping]."
msgstr ""
"删除该设备上由给定的端口和协议组合确定的端口映射。参阅[method UPNP."
"delete_port_mapping]。"

#: modules/upnp/doc_classes/UPNPDevice.xml:34
msgid ""
"Returns [code]true[/code] if this is a valid IGD (InternetGatewayDevice) "
"which potentially supports port forwarding."
msgstr ""
"如果这是一个有效的IGD(InternetGatewayDevice),可能支持端口转发,则返回"
"[code]true[/code]。"

#: modules/upnp/doc_classes/UPNPDevice.xml:40
msgid ""
"Returns the external IP address of this [UPNPDevice] or an empty string."
msgstr "返回这个[UPNPDevice]的外部IP地址或空字符串。"

#: modules/upnp/doc_classes/UPNPDevice.xml:46
msgid "URL to the device description."
msgstr "设备描述的URL。"

#: modules/upnp/doc_classes/UPNPDevice.xml:49
msgid "IDG control URL."
msgstr "IDG控件URL。"

#: modules/upnp/doc_classes/UPNPDevice.xml:52
msgid ""
"Address of the local machine in the network connecting it to this "
"[UPNPDevice]."
msgstr "将其连接到该[UPNPDevice]的网络中的本地机器的地址。"

#: modules/upnp/doc_classes/UPNPDevice.xml:55
msgid "IGD service type."
msgstr "IGD服务类型。"

#: modules/upnp/doc_classes/UPNPDevice.xml:58
msgid "IGD status. See [enum IGDStatus]."
msgstr "IGD状态。参阅[enum IGDStatus]。"

#: modules/upnp/doc_classes/UPNPDevice.xml:61
msgid "Service type."
msgstr "服务类型。"

#: modules/upnp/doc_classes/UPNPDevice.xml:66
msgid "OK."
msgstr "OK。"

#: modules/upnp/doc_classes/UPNPDevice.xml:72
msgid "Empty HTTP response."
msgstr "空的HTTP响应。"

#: modules/upnp/doc_classes/UPNPDevice.xml:75
msgid "Returned response contained no URLs."
msgstr "返回的响应不包含任何URL。"

#: modules/upnp/doc_classes/UPNPDevice.xml:78
msgid "Not a valid IGD."
msgstr "不是有效的 IGD。"

#: modules/upnp/doc_classes/UPNPDevice.xml:81
msgid "Disconnected."
msgstr "已断开连接。"

#: modules/upnp/doc_classes/UPNPDevice.xml:84
msgid "Unknown device."
msgstr "未知设备。"

#: modules/upnp/doc_classes/UPNPDevice.xml:87
msgid "Invalid control."
msgstr "无效控件。"

#: modules/upnp/doc_classes/UPNPDevice.xml:90
msgid "Memory allocation error."
msgstr "内存分配错误。"

#: doc/classes/Variant.xml:4
msgid "The most important data type in Godot."
msgstr "Godot中最重要的数据类型。"

#: doc/classes/Variant.xml:7
msgid ""
"In computer programming, a Variant class is a class that is designed to "
"store a variety of other types. Dynamic programming languages like PHP, Lua, "
"JavaScript and GDScript like to use them to store variables' data on the "
"backend. With these Variants, properties are able to change value types "
"freely.\n"
"[codeblock]\n"
"var foo = 2 # foo is dynamically an integer\n"
"foo = \"Now foo is a string!\"\n"
"foo = Reference.new() # foo is an Object\n"
"var bar: int = 2 # bar is a statically typed integer.\n"
"# bar = \"Uh oh! I can't make static variables become a different type!\"\n"
"[/codeblock]\n"
"Godot tracks all scripting API variables within Variants. Without even "
"realizing it, you use Variants all the time. When a particular language "
"enforces its own rules for keeping data typed, then that language is "
"applying its own custom logic over the base Variant scripting API.\n"
"- GDScript automatically wrap values in them. It keeps all data in plain "
"Variants by default and then optionally enforces custom static typing rules "
"on variable types.\n"
"- VisualScript tracks properties inside Variants as well, but it also uses "
"static typing. The GUI interface enforces that properties have a particular "
"type that doesn't change over time.\n"
"- C# is statically typed, but uses the Mono [code]object[/code] type in "
"place of Godot's Variant class when it needs to represent a dynamic value. "
"[code]object[/code] is the Mono runtime's equivalent of the same concept.\n"
"- The statically-typed language NativeScript C++ does not define a built-in "
"Variant-like class. Godot's GDNative bindings provide their own godot::"
"Variant class for users; Any point at which the C++ code starts interacting "
"with the Godot runtime is a place where you might have to start wrapping "
"data inside Variant objects.\n"
"The global [method @GDScript.typeof] function returns the enumerated value "
"of the Variant type stored in the current variable (see [enum Variant."
"Type]).\n"
"[codeblock]\n"
"var foo = 2\n"
"match typeof(foo):\n"
"    TYPE_NIL:\n"
"        print(\"foo is null\")\n"
"    TYPE_INTEGER:\n"
"        print(\"foo is an integer\")\n"
"    TYPE_OBJECT:\n"
"        # Note that Objects are their own special category.\n"
"        # To get the name of the underlying Object type, you need the "
"`get_class()` method.\n"
"        print(\"foo is a(n) %s\" % foo.get_class()) # inject the class name "
"into a formatted string.\n"
"        # Note also that there is not yet any way to get a script's "
"`class_name` string easily.\n"
"        # To fetch that value, you need to dig deeply into a hidden "
"ProjectSettings setting: an Array of Dictionaries called "
"\"_global_script_classes\".\n"
"        # Open your project.godot file to see it up close.\n"
"[/codeblock]\n"
"A Variant takes up only 20 bytes and can store almost any engine datatype "
"inside of it. Variants are rarely used to hold information for long periods "
"of time. Instead, they are used mainly for communication, editing, "
"serialization and moving data around.\n"
"Godot has specifically invested in making its Variant class as flexible as "
"possible; so much so that it is used for a multitude of operations to "
"facilitate communication between all of Godot's systems.\n"
"A Variant:\n"
"- Can store almost any datatype.\n"
"- Can perform operations between many variants. GDScript uses Variant as its "
"atomic/native datatype.\n"
"- Can be hashed, so it can be compared quickly to other variants.\n"
"- Can be used to convert safely between datatypes.\n"
"- Can be used to abstract calling methods and their arguments. Godot exports "
"all its functions through variants.\n"
"- Can be used to defer calls or move data between threads.\n"
"- Can be serialized as binary and stored to disk, or transferred via "
"network.\n"
"- Can be serialized to text and use it for printing values and editable "
"settings.\n"
"- Can work as an exported property, so the editor can edit it universally.\n"
"- Can be used for dictionaries, arrays, parsers, etc.\n"
"[b]Containers (Array and Dictionary):[/b] Both are implemented using "
"variants. A [Dictionary] can match any datatype used as key to any other "
"datatype. An [Array] just holds an array of Variants. Of course, a Variant "
"can also hold a [Dictionary] and an [Array] inside, making it even more "
"flexible.\n"
"Modifications to a container will modify all references to it. A [Mutex] "
"should be created to lock it if multi-threaded access is desired."
msgstr ""
"在计算机编程中,变体类是用来存储各种其他类型的类。像 PHP、 Lua、 JavaScript "
"和 GDScript 这样的动态编程语言喜欢用它们在后端存储变量数据。使用这些变体,属"
"性可以自由地更改值类型。\n"
"[codeblock]\n"
"var foo = 2 # Foo 是一个动态的整数\n"
"foo = \"Now foo is a string!\"\n"
"foo = Reference.new() # foo 是一个 Object\n"
"var bar: int = 2 # Bar 是一个静态类型的整数。\n"
"# bar = \"Uh oh! I can't make static variables become a different type!\"\n"
"[/codeblock]\n"
"Godot在变体中跟踪所有脚本API变量。在无意中,你一直在使用变体。当一种特定的语"
"言为保持数据类型而执行自己的规则时,那么该语言就在基础变量脚本API上应用自己的"
"自定义逻辑。\n"
"- GDScript会自动将数值包装。它默认将所有数据保存在普通的变体中,然后可选择对"
"变量类型执行自定义的静态类型化规则。\n"
"- VisualScript也跟踪变体中的属性,但它也使用静态类型。GUI界面强制要求属性有一"
"个特定的类型,并且不随时间变化。\n"
"- C#是静态类型的,但是当它需要表示一个动态值时,使用Mono[code]object[/code]类"
"型来代替Godot的变体类。[code]object[/code]是Mono运行时对应的同一概念。\n"
"- 静态类型的语言NativeScript C++没有定义一个内置的类似变体的类。Godot的"
"GDNative绑定为用户提供了godot::Variant的类;C++代码开始与Godot运行时交互的地"
"方,你都可能要用变体对象来包装数据。\n"
"全局[method @GDScript.typeof]函数返回存储在当前变量中的变体类型的枚举值,参阅"
"[enum Variant.Type]。\n"
"[codeblock]\n"
"var foo = 2\n"
"match typeof(foo):\n"
"    TYPE_NIL:\n"
"        print(\"foo is null\")\n"
"    TYPE_INTEGER:\n"
"        print(\"foo is an integer\")\n"
"    TYPE_OBJECT:\n"
"        # Note that Objects are their own special category.\n"
"        # To get the name of the underlying Object type, you need the "
"`get_class()` method.\n"
"        print(\"foo is a(n) %s\" % foo.get_class()) # inject the class name "
"into a formatted string.\n"
"        # Note also that there is not yet any way to get a script's "
"`class_name` string easily.\n"
"        # To fetch that value, you need to dig deeply into a hidden "
"ProjectSettings setting: an Array of Dictionaries called "
"\"_global_script_classes\".\n"
"        # Open your project.godot file to see it up close.\n"
"[/codeblock]\n"
"一个变体只占20个字节,可以在其中存储几乎所有的引擎数据类型。变体很少被用来长"
"期保存信息。相反,它们主要用于通信、编辑、序列化和移动数据。\n"
"Godot特别致力于使其变体类尽可能灵活;以使它可被用于各种操作,促进Godot所有系"
"统之间的联系。\n"
"一个变体。\n"
"- 可以存储几乎任何数据类型。\n"
"- 可以在许多变体之间执行操作。GDScript使用变体作为其原子及原生数据类型。\n"
"- 可以被散列,所以可以快速与其他变体进行比较。\n"
"- 可以用于数据类型之间的安全转换。\n"
"- 可以用来抽象调用方法和它们的参数。Godot通过变体导出所有函数。\n"
"- 可以用来推迟调用或在线程之间移动数据。\n"
"- 可以序列化为二进制并存储到磁盘,或通过网络传输。\n"
"- 可以序列化为文本,用于打印数值和可编辑设置。\n"
"- 可以作为一个导出的属性工作,所以编辑器可以通用的编辑它。\n"
"- 可以用于字典、数组、解析器等。\n"
"[b]容器,即数组和字典:[/b] 都是用变体来实现的。一个[Dictionary]可以匹配任何"
"作为键的数据类型到任何其他数据类型。一个[Array]只是持有一个变体的数组。当然,"
"一个变体也可以在里面容纳一个[Dictionary]和一个[Array],使其更加灵活。\n"
"对一个容器的修改将修改对它的所有引用。如果需要多线程访问,应该创建一个[Mutex]"
"来锁定它。"

#: doc/classes/Variant.xml:53
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/development/cpp/variant_class.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/development/cpp/variant_class.html"

#: doc/classes/VBoxContainer.xml:4
msgid "Vertical box container."
msgstr "垂直盒式容器。"

#: doc/classes/VBoxContainer.xml:7
msgid "Vertical box container. See [BoxContainer]."
msgstr "垂直盒式容器。参阅[BoxContainer]。"

#: doc/classes/VBoxContainer.xml:18
msgid "The vertical space between the [VBoxContainer]'s elements."
msgstr "[VBoxContainer]的元素之间的垂直空间。"

#: doc/classes/Vector2.xml:4
#, fuzzy
msgid "Vector used for 2D math."
msgstr "用于使用整数坐标的二维数学的向量。"

#: doc/classes/Vector2.xml:7
#, fuzzy
msgid ""
"2-element structure that can be used to represent positions in 2D space or "
"any other pair of numeric values.\n"
"[b]Note:[/b] In a boolean context, a Vector2 will evaluate to [code]false[/"
"code] if it's equal to [code]Vector2(0, 0)[/code]. Otherwise, a Vector2 will "
"always evaluate to [code]true[/code]."
msgstr ""
"2元素结构,可用于表示二维空间中的位置或一对数字值。\n"
"它使用浮点坐标。关于它对应的整数形式,参阅[Vector2i]。\n"
"[b]注意:[/b]在布尔语境中,如果一个Vector2等于[code]Vector2(0, 0)[/code],它"
"将计算为[code]false[/code]。否则,一个Vector2将总是计算为[code]true[/code]。"

#: doc/classes/Vector2.xml:14 doc/classes/Vector3.xml:14
msgid ""
"https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab"
msgstr ""

#: doc/classes/Vector2.xml:24
#, fuzzy
msgid ""
"Constructs a new Vector2 from the given [code]x[/code] and [code]y[/code]."
msgstr "从给定的[code]x[/code]和[code]y[/code]构建一个新的[Vector2]。"

#: doc/classes/Vector2.xml:30 doc/classes/Vector3.xml:31
msgid ""
"Returns a new vector with all components in absolute values (i.e. positive)."
msgstr "返回一个新的向量,其所有分量都是绝对值,即正值。"

#: doc/classes/Vector2.xml:36
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 @GDScript.atan2] when called with the "
"vector's [member y] and [member x] as parameters: [code]atan2(y, x)[/code]."
msgstr ""

#: doc/classes/Vector2.xml:46
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 ""

#: doc/classes/Vector2.xml:54
msgid ""
"Returns the angle between the line connecting the two points and the X axis, "
"in radians.\n"
"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
"vector2_angle_to_point.png]Illustration of the returned angle.[/url]"
msgstr ""

#: doc/classes/Vector2.xml:61
msgid ""
"Returns the aspect ratio of this vector, the ratio of [member x] to [member "
"y]."
msgstr "返回这个向量的长宽比,即[member x] 与[member y]的比例。"

#: doc/classes/Vector2.xml:68 doc/classes/Vector3.xml:45
msgid ""
"Returns the vector \"bounced off\" from a plane defined by the given normal."
msgstr "返回从由给定法线定义的平面上 \"反弹\" 的向量。"

#: doc/classes/Vector2.xml:74
msgid ""
"Returns the vector with all components rounded up (towards positive "
"infinity)."
msgstr "返回所有分量四舍五入后的向量,朝正无穷大。"

#: doc/classes/Vector2.xml:81
msgid ""
"Returns the vector with a maximum length by limiting its length to "
"[code]length[/code]."
msgstr "通过限制其长度为[code]length[/code],返回具有最大长度的向量。"

#: doc/classes/Vector2.xml:88
msgid "Returns the cross product of this vector and [code]with[/code]."
msgstr "返回此向量与[code]with[/code]的叉积。"

#: doc/classes/Vector2.xml:98
#, fuzzy
msgid ""
"Cubically interpolates between this vector and [code]b[/code] using "
"[code]pre_a[/code] and [code]post_b[/code] as handles, and returns the "
"result at position [code]weight[/code]. [code]weight[/code] is on the range "
"of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
"用[code]pre_a[/code]和[code]post_b[/code]作为句柄,在这个向量和[code]b[/code]"
"之间进行三次插值,并在[code]t[/code]位置返回结果。[code]t[/code]的范围是0.0到"
"1.0,表示插值量。"

#: doc/classes/Vector2.xml:105 doc/classes/Vector3.xml:75
#, fuzzy
msgid ""
"Returns the normalized vector pointing from this vector to [code]b[/code]. "
"This is equivalent to using [code](b - a).normalized()[/code]."
msgstr "返回从这个向量指向[code]b[/code]的归一化向量。"

#: doc/classes/Vector2.xml:112 doc/classes/Vector3.xml:82
msgid ""
"Returns the squared distance between this vector and [code]b[/code].\n"
"This method runs faster than [method distance_to], so prefer it if you need "
"to compare vectors or need the squared distance for some formula."
msgstr ""
"返回这个向量与[code]b[/code]之间的平方距离。\n"
"这个方法比[method distance_to]运行得更快,所以如果你需要比较向量或需要一些公"
"式的平方距离,则更喜欢它。"

#: doc/classes/Vector2.xml:120
msgid "Returns the distance between this vector and [code]to[/code]."
msgstr "返回此向量与[code]to[/code]之间的距离。"

#: doc/classes/Vector2.xml:127
msgid ""
"Returns the dot product of this vector and [code]with[/code]. This can be "
"used to compare the angle between two vectors. For example, this can be used "
"to determine whether an enemy is facing the player.\n"
"The dot product will be [code]0[/code] for a straight angle (90 degrees), "
"greater than 0 for angles narrower than 90 degrees and lower than 0 for "
"angles wider than 90 degrees.\n"
"When using unit (normalized) vectors, the result will always be between "
"[code]-1.0[/code] (180 degree angle) when the vectors are facing opposite "
"directions, and [code]1.0[/code] (0 degree angle) when the vectors are "
"aligned.\n"
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
"返回此向量与[code]with[/code]的点积。这可以用来比较两个向量之间的角度。例如,"
"这可以用来确定一个敌人是否正朝向玩家。\n"
"对于直角90度,点积将是[code]0[/code],对于窄于90度的角度,点积大于0,对于宽于"
"90度的角度,点积小于0。\n"
"当使用归一化单位向量时,当向量朝向相反方向时,结果总是在[code]-1.0[/code]"
"(180度角)和[code]1.0[/code](0度角)之间,当向量对齐。\n"
"[b]注意:[/b][code]a.dot(b)[/code]等同于[code]b.dot(a)[/code]。"

#: doc/classes/Vector2.xml:136
msgid ""
"Returns the vector with all components rounded down (towards negative "
"infinity)."
msgstr "返回所有分量四舍五入后的向量,朝负无穷大。"

#: doc/classes/Vector2.xml:143 doc/classes/Vector3.xml:119
msgid ""
"Returns [code]true[/code] if this vector and [code]v[/code] are "
"approximately equal, by running [method @GDScript.is_equal_approx] on each "
"component."
msgstr ""
"通过对每个分量运行[method @GDScript.is_equal_approx],如果这个向量和[code]v[/"
"code]近似相等,返回[code]true[/code]。"

#: doc/classes/Vector2.xml:149 doc/classes/Vector3.xml:125
#, fuzzy
msgid ""
"Returns [code]true[/code] if the vector is normalized, [code]false[/code] "
"otherwise."
msgstr "如果向量归一化,则返回[code]true[/code],否则返回false。"

#: doc/classes/Vector2.xml:155 doc/classes/Vector3.xml:131
msgid "Returns the length (magnitude) of this vector."
msgstr "返回这个向量的长度,即大小。"

#: doc/classes/Vector2.xml:161 doc/classes/Vector3.xml:137
msgid ""
"Returns the squared length (squared magnitude) of this vector.\n"
"This method runs faster than [method length], so prefer it if you need to "
"compare vectors or need the squared distance for some formula."
msgstr ""
"返回这个向量的平方长度,即平方大小。\n"
"这个方法比[method length]运行得更快,所以如果你需要比较向量或需要一些公式的平"
"方距离时,更喜欢用它。"

#: doc/classes/Vector2.xml:170
#, fuzzy
msgid ""
"Returns the result of the linear interpolation between this vector and "
"[code]to[/code] by amount [code]weight[/code]. [code]weight[/code] is on the "
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
"返回这个向量和[code]b[/code]之间的线性插值的结果,插值量是[code]t[/code]。"
"[code]t[/code]的范围是0.0到1.0,表示插值量。"

#: doc/classes/Vector2.xml:178
msgid ""
"Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] "
"amount."
msgstr "向[code]to[/code]移动固定的[code]delta[/code]量。"

#: doc/classes/Vector2.xml:184 doc/classes/Vector3.xml:172
msgid ""
"Returns the vector scaled to unit length. Equivalent to [code]v / v.length()"
"[/code]."
msgstr "返回缩放为单位长度的向量。相当于[code]v/v.length()[/code]。"

#: doc/classes/Vector2.xml:191 doc/classes/Vector3.xml:186
msgid ""
"Returns a vector composed of the [method @GDScript.fposmod] of this vector's "
"components and [code]mod[/code]."
msgstr ""
"返回一个由这个向量分量的[method @GDScript.fposmod]和[code]mod[/code]组成的向"
"量。"

#: doc/classes/Vector2.xml:198 doc/classes/Vector3.xml:193
msgid ""
"Returns a vector composed of the [method @GDScript.fposmod] of this vector's "
"components and [code]modv[/code]'s components."
msgstr ""
"返回一个由这个向量的[code]modv[/code]分量和[method @GDScript.fposmod]分量组成"
"的向量。"

#: doc/classes/Vector2.xml:205
msgid "Returns the vector projected onto the vector [code]b[/code]."
msgstr "返回投射到向量[code]b[/code]的向量。"

#: doc/classes/Vector2.xml:212
msgid "Returns the vector reflected from a plane defined by the given normal."
msgstr "返回从给定法线定义的平面反射的向量。"

#: doc/classes/Vector2.xml:219
msgid ""
"Returns the vector rotated by [code]phi[/code] radians. See also [method "
"@GDScript.deg2rad]."
msgstr "返回旋转了[code]phi[/code]弧度的向量。参阅[method @GDScript.deg2rad]。"

#: doc/classes/Vector2.xml:225
msgid ""
"Returns the vector with all components rounded to the nearest integer, with "
"halfway cases rounded away from zero."
msgstr "返回所有分量都被四舍五入为最接近的整数的向量,中间情况下四舍五入为零。"

#: doc/classes/Vector2.xml:231
#, fuzzy
msgid ""
"Returns the vector with each component set to one or negative one, depending "
"on the signs of the components. If a component is zero, it returns positive "
"one."
msgstr ""
"通过对每个分量调用[method @GDScript.sign],返回每个分量被设置为1或负1的向量,"
"如果分量为0,则返回零。"

#: doc/classes/Vector2.xml:239 doc/classes/Vector3.xml:243
#, fuzzy
msgid ""
"Returns the result of spherical linear interpolation between this vector and "
"[code]to[/code], by amount [code]weight[/code]. [code]weight[/code] is on "
"the range of 0.0 to 1.0, representing the amount of interpolation.\n"
"[b]Note:[/b] Both vectors must be normalized."
msgstr ""
"返回此向量和[code]b[/code]之间的球形线性插值的结果,量为[code]t[/code]。"
"[code]t[/code]的范围是0.0到1.0,表示插值量。\n"
"[b]注意:[/b]两个向量都必须被归一化。"

#: doc/classes/Vector2.xml:247 doc/classes/Vector3.xml:251
msgid "Returns this vector slid along a plane defined by the given normal."
msgstr "返回沿着由给定法线定义的平面滑动的向量。"

#: doc/classes/Vector2.xml:254 doc/classes/Vector3.xml:258
msgid ""
"Returns this vector with each component snapped to the nearest multiple of "
"[code]step[/code]. This can also be used to round to an arbitrary number of "
"decimals."
msgstr ""
"返回这个向量,每个分量都捕捉到[code]step[/code]的最近倍数。这也可以用来四舍五"
"入到任意数量的小数。"

#: doc/classes/Vector2.xml:260
msgid ""
"Returns a perpendicular vector rotated 90 degrees counter-clockwise compared "
"to the original, with the same length."
msgstr "返回一个与原来相比逆时针旋转90度的垂直向量,长度不变。"

#: doc/classes/Vector2.xml:266 doc/classes/Vector3.xml:271
msgid ""
"The vector's X component. Also accessible by using the index position [code]"
"[0][/code]."
msgstr "矢量的X分量。也可以通过使用索引位置[code][0][/code]访问。"

#: doc/classes/Vector2.xml:269 doc/classes/Vector3.xml:274
msgid ""
"The vector's Y component. Also accessible by using the index position [code]"
"[1][/code]."
msgstr "矢量的Y分量。也可以通过使用索引位置[code][1][/code]访问。"

#: doc/classes/Vector2.xml:274
msgid "Enumerated value for the X axis."
msgstr "X轴的枚举值。"

#: doc/classes/Vector2.xml:277
msgid "Enumerated value for the Y axis."
msgstr "Y轴的枚举值。"

#: doc/classes/Vector2.xml:280 doc/classes/Vector3.xml:291
msgid "Zero vector, a vector with all components set to [code]0[/code]."
msgstr "零向量,一个所有分量都设置为[code]0[/code]的向量。"

#: doc/classes/Vector2.xml:283 doc/classes/Vector3.xml:294
msgid "One vector, a vector with all components set to [code]1[/code]."
msgstr "一个向量,所有分量都设置为[code]1[/code]的向量。"

#: doc/classes/Vector2.xml:286 doc/classes/Vector3.xml:297
msgid ""
"Infinity vector, a vector with all components set to [constant @GDScript."
"INF]."
msgstr "无穷大向量,一个所有分量都设置为[constant @GDScript.INF]的向量。"

#: doc/classes/Vector2.xml:289
msgid "Left unit vector. Represents the direction of left."
msgstr "左单位矢量。代表左的方向。"

#: doc/classes/Vector2.xml:292
msgid "Right unit vector. Represents the direction of right."
msgstr "右单位矢量。代表右的方向。"

#: doc/classes/Vector2.xml:295
msgid "Up unit vector. Y is down in 2D, so this vector points -Y."
msgstr "向上单位向量。Y在2D中是向下的,所以这个向量指向-Y。"

#: doc/classes/Vector2.xml:298
msgid "Down unit vector. Y is down in 2D, so this vector points +Y."
msgstr "向下单位向量。在2D中Y是向下的,所以这个向量指向+Y。"

#: doc/classes/Vector3.xml:4
#, fuzzy
msgid "Vector used for 3D math."
msgstr "使用整数坐标的3D数学的向量。"

#: doc/classes/Vector3.xml:7
#, fuzzy
msgid ""
"3-element structure that can be used to represent positions in 3D space or "
"any other pair of numeric values.\n"
"[b]Note:[/b] In a boolean context, a Vector3 will evaluate to [code]false[/"
"code] if it's equal to [code]Vector3(0, 0, 0)[/code]. Otherwise, a Vector3 "
"will always evaluate to [code]true[/code]."
msgstr ""
"3元素结构,可用于表示三维空间中的位置或一对数字值。\n"
"它使用浮点坐标。关于它对应的整数形式,参阅[Vector3i]。\n"
"[b]注意:[/b]在布尔语境中,如果一个Vector3等于[code]Vector3(0, 0, 0)[/code],"
"它将计算为[code]false[/code]。否则,一个Vector3将总是计算为[code]true[/"
"code]。"

#: doc/classes/Vector3.xml:25
#, fuzzy
msgid "Returns a Vector3 with the given components."
msgstr "返回一个具有给定分量的[Vector3]。"

#: doc/classes/Vector3.xml:38
#, fuzzy
msgid "Returns the unsigned minimum angle to the given vector, in radians."
msgstr "返回与给定向量的最小角度,单位为弧度。"

#: doc/classes/Vector3.xml:51
msgid ""
"Returns a new vector with all components rounded up (towards positive "
"infinity)."
msgstr "返回一个新的向量,所有的分量都是四舍五入的,向正无穷大。"

#: doc/classes/Vector3.xml:58
msgid "Returns the cross product of this vector and [code]b[/code]."
msgstr "返回此向量与[code]b[/code]的叉积。"

#: doc/classes/Vector3.xml:68
#, fuzzy
msgid ""
"Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/"
"code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by "
"the given amount [code]weight[/code]. [code]weight[/code] is on the range of "
"0.0 to 1.0, representing the amount of interpolation."
msgstr ""
"在向量[code]pre_a[/code], [code]a[/code], [code]b[/code], [code]post_b[/code]"
"([code]a[/code]是当前的)之间,通过给定的量[code]t[/code]进行三次插值。"
"[code]t[/code]的范围是0.0到1.0,表示插值量。"

#: doc/classes/Vector3.xml:90
msgid "Returns the distance between this vector and [code]b[/code]."
msgstr "返回此向量与[code]b[/code]之间的距离。"

#: doc/classes/Vector3.xml:97
msgid ""
"Returns the dot product of this vector and [code]b[/code]. This can be used "
"to compare the angle between two vectors. For example, this can be used to "
"determine whether an enemy is facing the player.\n"
"The dot product will be [code]0[/code] for a straight angle (90 degrees), "
"greater than 0 for angles narrower than 90 degrees and lower than 0 for "
"angles wider than 90 degrees.\n"
"When using unit (normalized) vectors, the result will always be between "
"[code]-1.0[/code] (180 degree angle) when the vectors are facing opposite "
"directions, and [code]1.0[/code] (0 degree angle) when the vectors are "
"aligned.\n"
"[b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]."
msgstr ""
"返回此向量与[code]b[/code]的点积。这可以用来比较两个向量之间的角度。例如,这"
"可以用来确定一个敌人是否正面对玩家。\n"
"对于直角90度,点积将是[code]0[/code],对于窄于90度的角度,点积大于0,对于宽于"
"90度的角度,点积小于0。\n"
"当使用归一化单位向量,向量朝向相反方向时,结果总是在[code]-1.0[/code](180度"
"角)和[code]1.0[/code](0度角)之间,当向量对齐。\n"
"[b]注意:[/b][code]a.dot(b)[/code]等同于[code]b.dot(a)[/code]。"

#: doc/classes/Vector3.xml:106
msgid ""
"Returns a new vector with all components rounded down (towards negative "
"infinity)."
msgstr "返回一个新的向量,所有的向量都被四舍五入,向负无穷大。"

#: doc/classes/Vector3.xml:112
msgid ""
"Returns the inverse of the vector. This is the same as [code]Vector3( 1.0 / "
"v.x, 1.0 / v.y, 1.0 / v.z )[/code]."
msgstr ""
"返回向量的反值。这与[code]Vector3( 1.0 / v.x, 1.0 / v.y, 1.0 / v.z )[/code]相"
"同。"

#: doc/classes/Vector3.xml:146
#, fuzzy
msgid ""
"Returns the result of the linear interpolation between this vector and "
"[code]to[/code] by amount [code]t[/code]. [code]weight[/code] is on the "
"range of 0.0 to 1.0, representing the amount of interpolation."
msgstr ""
"返回这个向量和[code]b[/code]之间的线性插值的结果,插值量是[code]t[/code]。"
"[code]t[/code]的范围是0.0到1.0,表示插值量。"

#: doc/classes/Vector3.xml:152
msgid ""
"Returns the axis of the vector's largest value. See [code]AXIS_*[/code] "
"constants. If all components are equal, this method returns [constant "
"AXIS_X]."
msgstr ""
"返回向量的最大值的轴。参阅[code]AXIS_*[/code]常量。如果所有分量都相等,该方法"
"返回[constant AXIS_X]。"

#: doc/classes/Vector3.xml:158
msgid ""
"Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] "
"constants. If all components are equal, this method returns [constant "
"AXIS_Z]."
msgstr ""
"返回矢量的最小值的轴。参阅[code]AXIS_*[/code]常量。如果所有分量都相等,本方法"
"返回[constant AXIS_Z]。"

#: doc/classes/Vector3.xml:166
msgid ""
"Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] "
"amount."
msgstr "将此向量向[code]to[/code]移动,以固定[code]delta[/code]量。"

#: doc/classes/Vector3.xml:179
msgid "Returns the outer product with [code]b[/code]."
msgstr "返回与[code]b[/code]的外积。"

#: doc/classes/Vector3.xml:200
msgid "Returns this vector projected onto another vector [code]b[/code]."
msgstr "返回这个向量投射到另一个向量[code]b[/code]上的结果。"

#: doc/classes/Vector3.xml:207
msgid "Returns this vector reflected from a plane defined by the given normal."
msgstr "返回从给定法线定义的平面上反射的向量。"

#: doc/classes/Vector3.xml:215
msgid ""
"Rotates this vector around a given axis by [code]phi[/code] radians. The "
"axis must be a normalized vector."
msgstr "将此向量绕给定的轴旋转[code]phi[/code]弧度。该轴必须是归一化的矢量。"

#: doc/classes/Vector3.xml:221
msgid ""
"Returns this vector with all components rounded to the nearest integer, with "
"halfway cases rounded away from zero."
msgstr ""
"返回这个向量的所有分量都被四舍五入为最接近的整数,中间情况下四舍五入为零。"

#: doc/classes/Vector3.xml:227
#, fuzzy
msgid ""
"Returns a vector with each component set to one or negative one, depending "
"on the signs of this vector's components. If a component is zero, it returns "
"positive one."
msgstr ""
"通过对每个分量调用[method @GDScript.sign],返回一个每个分量都被设置为1或负1的"
"向量,这取决于向量的分量符号,如果分量为零,则返回0。"

#: doc/classes/Vector3.xml:235
msgid ""
"Returns the signed angle to the given vector, in radians. The sign of the "
"angle is positive in a counter-clockwise direction and negative in a "
"clockwise direction when viewed from the side specified by the [code]axis[/"
"code]."
msgstr ""

#: doc/classes/Vector3.xml:264
msgid ""
"Returns a diagonal matrix with the vector as main diagonal.\n"
"This is equivalent to a Basis with no rotation or shearing and this vector's "
"components set as the scale."
msgstr ""
"返回一个以该向量为主对角线的对角线矩阵。\n"
"这相当于一个没有旋转或剪切的Basis,这个向量的分量被设定为缩放。"

#: doc/classes/Vector3.xml:277
msgid ""
"The vector's Z component. Also accessible by using the index position [code]"
"[2][/code]."
msgstr "向量的Z分量。也可以通过使用索引位置[code][2][/code]访问。"

#: doc/classes/Vector3.xml:282
msgid ""
"Enumerated value for the X axis. Returned by [method max_axis] and [method "
"min_axis]."
msgstr "X轴的枚举值。由[method max_axis]和[method min_axis]返回。"

#: doc/classes/Vector3.xml:285
msgid ""
"Enumerated value for the Y axis. Returned by [method max_axis] and [method "
"min_axis]."
msgstr "Y轴的枚举值。由 [method max_axis] 和 [method min_axis] 返回。"

#: doc/classes/Vector3.xml:288
msgid ""
"Enumerated value for the Z axis. Returned by [method max_axis] and [method "
"min_axis]."
msgstr "Z轴的枚举值。由 [method max_axis] 和 [method min_axis]返回。"

#: doc/classes/Vector3.xml:300
msgid ""
"Left unit vector. Represents the local direction of left, and the global "
"direction of west."
msgstr "左单位向量。代表局部的左方向,以及全局的西方向。"

#: doc/classes/Vector3.xml:303
msgid ""
"Right unit vector. Represents the local direction of right, and the global "
"direction of east."
msgstr "右单位向量。代表局部的右方向,全局的东方向。"

#: doc/classes/Vector3.xml:306
msgid "Up unit vector."
msgstr "向上单位向量。"

#: doc/classes/Vector3.xml:309
msgid "Down unit vector."
msgstr "向下单位向量。"

#: doc/classes/Vector3.xml:312
msgid ""
"Forward unit vector. Represents the local direction of forward, and the "
"global direction of north."
msgstr "前进单位向量。代表局部前进方向,以及全局的北方向。"

#: doc/classes/Vector3.xml:315
msgid ""
"Back unit vector. Represents the local direction of back, and the global "
"direction of south."
msgstr "后单位向量。代表局部后方向,以及全局的南方向。"

#: doc/classes/VehicleBody.xml:4
msgid "Physics body that simulates the behavior of a car."
msgstr "模拟汽车行为的物理体。"

#: doc/classes/VehicleBody.xml:7
#, fuzzy
msgid ""
"This node implements all the physics logic needed to simulate a car. It is "
"based on the raycast vehicle system commonly found in physics engines. You "
"will need to add a [CollisionShape] for the main body of your vehicle and "
"add [VehicleWheel] nodes for the wheels. You should also add a "
"[MeshInstance] to this node for the 3D model of your car but this model "
"should not include meshes for the wheels. You should control the vehicle by "
"using the [member brake], [member engine_force], and [member steering] "
"properties and not change the position or orientation of this node "
"directly.\n"
"[b]Note:[/b] The origin point of your VehicleBody will determine the center "
"of gravity of your vehicle so it is better to keep this low and move the "
"[CollisionShape] and [MeshInstance] upwards.\n"
"[b]Note:[/b] This class has known issues and isn't designed to provide "
"realistic 3D vehicle physics. If you want advanced vehicle physics, you will "
"probably have to write your own physics integration using another "
"[PhysicsBody] class."
msgstr ""
"这个节点实现了模拟汽车所需的所有物理逻辑。它是基于物理引擎中常见的raycast车辆"
"系统。你需要为你的车辆主体添加一个[CollisionShape3D],为车轮添加"
"[VehicleWheel3D]节点。还应该为汽车的三维模型添加一个[MeshInstance3D]的节点,"
"但这个模型不应该包括车轮的网格。应该通过使用[member brake]、[member "
"engine_force]和[member steering]属性来控制车辆,而不是直接改变这个节点的坐标"
"或方向。\n"
"[b]注意:[/b] 你的VehicleBody3D的原点将决定车辆的重心,所以最好保持低位,并将"
"[CollisionShape3D]和[MeshInstance3D]往上移。\n"
"[b]注意:[/b] 这个类有已知的问题,并不是为了提供真实的3D车辆物理运算。如果你"
"想要高级的车辆物理运算,可能需要使用另一个[PhysicsBody3D]类来编写你自己的物理"
"运算集成。"

#: doc/classes/VehicleBody.xml:18
#, fuzzy
msgid ""
"Slows down the vehicle by applying a braking force. The vehicle is only "
"slowed down if the wheels are in contact with a surface. The force you need "
"to apply to adequately slow down your vehicle depends on the [member "
"RigidBody.mass] of the vehicle. For a vehicle with a mass set to 1000, try a "
"value in the 25 - 30 range for hard braking."
msgstr ""
"通过施加一个制动力使车辆减速。只有当车轮与表面接触时,车辆才会减速。你需要应"
"用多少力来使车辆充分减速,取决于车辆 [member RigidBody3D.mass] 。对于一个质量"
"设置为1000的车辆,尝试在25-30的范围内进行刹车。"

#: doc/classes/VehicleBody.xml:21
#, fuzzy
msgid ""
"Accelerates the vehicle by applying an engine force. The vehicle is only "
"speed up if the wheels that have [member VehicleWheel.use_as_traction] set "
"to [code]true[/code] and are in contact with a surface. The [member "
"RigidBody.mass] of the vehicle has an effect on the acceleration of the "
"vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 "
"range for acceleration.\n"
"[b]Note:[/b] The simulation does not take the effect of gears into account, "
"you will need to add logic for this if you wish to simulate gears.\n"
"A negative value will result in the vehicle reversing."
msgstr ""
"通过施加一个引擎力来加速车辆。只有当 [member VehicleWheel3D.use_as_traction] "
"设置为 [code]true[/code] 并与表面接触的车轮才会加速。车辆的 [member "
"RigidBody3D.mass] 对车辆的加速度有影响。对于一个质量设置为1000的车辆,可以尝"
"试在25-50的范围内选择加速度的值。\n"
"[b]注意:[/b]模拟不考虑齿轮的影响,如果你想模拟齿轮,将需要为其添加逻辑。\n"
"负值将导致车辆倒车。"

#: doc/classes/VehicleBody.xml:27
#, fuzzy
msgid ""
"The steering angle for the vehicle. Setting this to a non-zero value will "
"result in the vehicle turning when it's moving. Wheels that have [member "
"VehicleWheel.use_as_steering] set to [code]true[/code] will automatically be "
"rotated."
msgstr ""
"车辆的转向角度。将此设置为非零值将导致车辆在移动时转向。将 [member "
"VehicleWheel3D.use_as_steering] 设置为 [code]true[/code] 的车轮会自动旋转。"

#: doc/classes/VehicleWheel.xml:4
msgid "Physics object that simulates the behavior of a wheel."
msgstr "模拟车轮行为的物理对象。"

#: doc/classes/VehicleWheel.xml:7
#, fuzzy
msgid ""
"This node needs to be used as a child node of [VehicleBody] and simulates "
"the behavior of one of its wheels. This node also acts as a collider to "
"detect if the wheel is touching a surface.\n"
"[b]Note:[/b] This class has known issues and isn't designed to provide "
"realistic 3D vehicle physics. If you want advanced vehicle physics, you will "
"probably have to write your own physics integration using another "
"[PhysicsBody] class."
msgstr ""
"这个节点需要作为 [VehicleBody3D] 的子节点来使用,并模拟其一个车轮的行为。也作"
"为碰撞器来检测车轮是否接触到表面。\n"
"[b]注意:[/b] 这个类有已知的问题,并不是为了提供真实的三维车辆物理运算而设计"
"的。如果你想要先进的车辆物理运算,需要使用另一个[PhysicsBody3D]类来编写你自己"
"的物理运算集成。"

#: doc/classes/VehicleWheel.xml:17
msgid "Returns the rotational speed of the wheel in revolutions per minute."
msgstr "返回轮子的旋转速度,单位为每分钟转数。"

#: doc/classes/VehicleWheel.xml:23
msgid ""
"Returns a value between 0.0 and 1.0 that indicates whether this wheel is "
"skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 "
"means not skidding (the wheel has full grip, e.g. dry asphalt road)."
msgstr ""
"返回一个介于0.0和1.0之间的值,表示这个轮子是否打滑。0.0表示打滑,即车轮失去了"
"抓地力,例如冰雪地形,1.0表示不打滑,即车轮有充分的抓地力,例如干燥的沥青路。"

#: doc/classes/VehicleWheel.xml:29
msgid "Returns [code]true[/code] if this wheel is in contact with a surface."
msgstr "如果轮子与表面接触,返回[code]true[/code]。"

#: doc/classes/VehicleWheel.xml:35
#, fuzzy
msgid ""
"Slows down the wheel by applying a braking force. The wheel is only slowed "
"down if it is in contact with a surface. The force you need to apply to "
"adequately slow down your vehicle depends on the [member RigidBody.mass] of "
"the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - "
"30 range for hard braking."
msgstr ""
"通过施加一个制动力使车轮减速。只有当车轮与表面接触时才会减速。你需要施加多大"
"的力来使车辆充分减速,取决于车辆的 [member RigidBody3D.mass] 。对于一个质量设"
"置为1000的车辆,尝试在25-30的范围内进行制动。"

#: doc/classes/VehicleWheel.xml:38
msgid ""
"The damping applied to the spring when the spring is being compressed. This "
"value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the "
"car will keep bouncing as the spring keeps its energy. A good value for this "
"is around 0.3 for a normal car, 0.5 for a race car."
msgstr ""
"当弹簧被压缩时,应用在弹簧上的阻尼。这个值应该在0.0(无阻尼)和1.0之间。0.0的"
"值意味着汽车将持续弹跳,因为弹簧将保持其能量。一个好的值是,普通汽车0.3左右,"
"赛车0.5左右。"

#: doc/classes/VehicleWheel.xml:41
msgid ""
"The damping applied to the spring when relaxing. This value should be "
"between 0.0 (no damping) and 1.0. This value should always be slightly "
"higher than the [member damping_compression] property. For a [member "
"damping_compression] value of 0.3, try a relaxation value of 0.5."
msgstr ""
"放松时施加在弹簧上的阻尼。这个值应该在0.0(无阻尼)和1.0之间。这个值应该总是"
"比 [member damping_compression] 属性稍高。对于 [member damping_compression] "
"值0.3,尝试放松值为0.5。"

#: doc/classes/VehicleWheel.xml:44
#, fuzzy
msgid ""
"Accelerates the wheel by applying an engine force. The wheel is only speed "
"up if it is in contact with a surface. The [member RigidBody.mass] of the "
"vehicle has an effect on the acceleration of the vehicle. For a vehicle with "
"a mass set to 1000, try a value in the 25 - 50 range for acceleration.\n"
"[b]Note:[/b] The simulation does not take the effect of gears into account, "
"you will need to add logic for this if you wish to simulate gears.\n"
"A negative value will result in the wheel reversing."
msgstr ""
"通过施加引擎力使车轮加速。车轮只有在与表面接触时才会加速。车辆的 [member "
"RigidBody3D.mass] 对车辆加速度有影响。对于质量设置为1000的车辆,请尝试在25-50"
"的范围内选择加速度值。\n"
"[b]注意:[/b]模拟不考虑齿轮的影响,如果你想模拟齿轮,将需要为此添加逻辑。\n"
"负值将导致车轮倒转。"

#: doc/classes/VehicleWheel.xml:49
msgid ""
"The steering angle for the wheel. Setting this to a non-zero value will "
"result in the vehicle turning when it's moving."
msgstr "车轮的转向角。将此设置为非零值将导致车辆在移动时转向。"

#: doc/classes/VehicleWheel.xml:52
#, fuzzy
msgid ""
"The maximum force the spring can resist. This value should be higher than a "
"quarter of the [member RigidBody.mass] of the [VehicleBody] or the spring "
"will not carry the weight of the vehicle. Good results are often obtained by "
"a value that is about 3× to 4× this number."
msgstr ""
"弹簧可以承受的最大力。这个值应该高于[VehicleBody3D]的[member RigidBody3D."
"mass]的四分之一,否则弹簧将无法承载车辆的重量。良好的效果,通常由一个大约3×到"
"4×这个数字的值获得。"

#: doc/classes/VehicleWheel.xml:55
msgid ""
"This value defines the stiffness of the suspension. Use a value lower than "
"50 for an off-road car, a value between 50 and 100 for a race car and try "
"something around 200 for something like a Formula 1 car."
msgstr ""
"这个值定义了悬架的刚度。越野车使用低于50的值,赛车使用50至100的值,像一级方程"
"式赛车则尝试200左右的值。"

#: doc/classes/VehicleWheel.xml:58
msgid ""
"This is the distance the suspension can travel. As Godot units are "
"equivalent to meters, keep this setting relatively low. Try a value between "
"0.1 and 0.3 depending on the type of car."
msgstr ""
"这是悬架可以移动的距离。由于Godot 的单位相当于米,所以保持这个设置相对较低。"
"根据汽车的类型,试试0.1和0.3之间的值。"

#: doc/classes/VehicleWheel.xml:61
#, fuzzy
msgid ""
"If [code]true[/code], this wheel will be turned when the car steers. This "
"value is used in conjunction with [member VehicleBody.steering] and ignored "
"if you are using the per-wheel [member steering] value instead."
msgstr ""
"如果[code]true[/code],当汽车转向时,这个轮子将被转动。这个值和 [member "
"VehicleBody3D.steering] 一起使用,如果你使用每个轮子的 [member steering] 值来"
"代替,则忽略该值。"

#: doc/classes/VehicleWheel.xml:64
#, fuzzy
msgid ""
"If [code]true[/code], this wheel transfers engine force to the ground to "
"propel the vehicle forward. This value is used in conjunction with [member "
"VehicleBody.engine_force] and ignored if you are using the per-wheel [member "
"engine_force] value instead."
msgstr ""
"如果[code]true[/code],这个轮子将引擎力传递给地面,推动车辆前进。这个值和"
"[member VehicleBody3D.engine_force]一起使用,如果你使用每个轮子的[member "
"engine_force]值,则忽略该值。"

#: doc/classes/VehicleWheel.xml:67
msgid ""
"This determines how much grip this wheel has. It is combined with the "
"friction setting of the surface the wheel is in contact with. 0.0 means no "
"grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the "
"rear wheels slightly lower than the front wheels, or use a lower value to "
"simulate tire wear.\n"
"It's best to set this to 1.0 when starting out."
msgstr ""
"这决定了这个轮子的抓地力有多大。它与车轮所接触的表面的摩擦力设置相结合。0.0意"
"味着没有抓地力,1.0是正常抓地力。对于漂移车的设置,尝试将后轮的抓地力设置得比"
"前轮略低,或者使用较低的数值来模拟轮胎的磨损。\n"
"在开始时最好将其设置为1.0。"

#: doc/classes/VehicleWheel.xml:71
msgid "The radius of the wheel in meters."
msgstr "轮子的半径,单位是米。"

#: doc/classes/VehicleWheel.xml:74
msgid ""
"This is the distance in meters the wheel is lowered from its origin point. "
"Don't set this to 0.0 and move the wheel into position, instead move the "
"origin point of your wheel (the gizmo in Godot) to the position the wheel "
"will take when bottoming out, then use the rest length to move the wheel "
"down to the position it should be in when the car is in rest."
msgstr ""
"这是轮子从原点下降的距离,以米为单位。不要把这个设置为0.0,然后把车轮移到位置"
"上,而是把车轮的原点(Godot中的Gizmo)移到车轮触底时的位置,然后使用剩余长度"
"将轮子向下移动到汽车静止时它应该所处位置。"

#: doc/classes/VehicleWheel.xml:77
msgid ""
"This value affects the roll of your vehicle. If set to 1.0 for all wheels, "
"your vehicle will be prone to rolling over, while a value of 0.0 will resist "
"body roll."
msgstr ""
"这个值会影响车辆的滚动。如果所有车轮都设置为1.0,车辆将容易翻车,而0.0的值将"
"阻止车身侧倾。"

#: doc/classes/VideoPlayer.xml:4
msgid "Control for playing video streams."
msgstr "用于播放视频流的控件。"

#: doc/classes/VideoPlayer.xml:7
#, fuzzy
msgid ""
"Control node for playing video streams using [VideoStream] resources.\n"
"Supported video formats are [url=https://www.webmproject.org/]WebM[/url] "
"([code].webm[/code], [VideoStreamWebm]), [url=https://www.theora.org/]Ogg "
"Theora[/url] ([code].ogv[/code], [VideoStreamTheora]), and any format "
"exposed via a GDNative plugin using [VideoStreamGDNative].\n"
"[b]Note:[/b] Due to a bug, VideoPlayer does not support localization "
"remapping yet.\n"
"[b]Warning:[/b] On HTML5, video playback [i]will[/i] perform poorly due to "
"missing architecture-specific assembly optimizations, especially for VP8/VP9."
msgstr ""
"用于播放使用[VideoStream]资源的视频流的控件节点。\n"
"支持的视频格式有[url=https://www.webmproject.org/]WebM[/url]"
"([VideoStreamWebm])、[url=https://www.theora.org/]Ogg Theora[/url]"
"([VideoStreamTheora])以及任何通过使用[VideoStreamGDNative]的GDNative插件公"
"开的格式。"

#: doc/classes/VideoPlayer.xml:18
msgid ""
"Returns the video stream's name, or [code]\"<No Stream>\"[/code] if no video "
"stream is assigned."
msgstr ""
"返回视频流的名称,如果没有指定视频流,则返回[code]\"<No Stream>\"[/code]。"

#: doc/classes/VideoPlayer.xml:24
#, fuzzy
msgid "Returns the current frame as a [Texture]."
msgstr "将当前帧作为[Texture2D]返回。"

#: doc/classes/VideoPlayer.xml:30
msgid ""
"Returns [code]true[/code] if the video is playing.\n"
"[b]Note:[/b] The video is still considered playing if paused during playback."
msgstr ""
"如果视频正在播放,返回[code]true[/code] 。\n"
"[b]注意:[/b] 如果在播放过程中暂停,视频仍被认为在播放。"

#: doc/classes/VideoPlayer.xml:37
msgid ""
"Starts the video playback from the beginning. If the video is paused, this "
"will not unpause the video."
msgstr "从头开始播放视频。如果视频暂停,这不会取消暂停。"

#: doc/classes/VideoPlayer.xml:43
msgid ""
"Stops the video playback and sets the stream position to 0.\n"
"[b]Note:[/b] Although the stream position will be set to 0, the first frame "
"of the video stream won't become the current frame."
msgstr ""
"停止视频播放并将视频流位置设置为0。\n"
"[b]注意:[/b] 虽然视频流位置将被设置为0,但视频流的第一帧不会成为当前帧。"

#: doc/classes/VideoPlayer.xml:50
msgid "The embedded audio track to play."
msgstr "要播放的嵌入式音轨。"

#: doc/classes/VideoPlayer.xml:53
msgid "If [code]true[/code], playback starts when the scene loads."
msgstr "如果[code]true[/code],当场景加载时开始播放。"

#: doc/classes/VideoPlayer.xml:56
msgid "Amount of time in milliseconds to store in buffer while playing."
msgstr "播放时存储在缓冲区的时间,以毫秒计。"

#: doc/classes/VideoPlayer.xml:59
msgid "Audio bus to use for sound playback."
msgstr "用于声音播放的音频总线。"

#: doc/classes/VideoPlayer.xml:62
msgid ""
"If [code]true[/code], the video scales to the control size. Otherwise, the "
"control minimum size will be automatically adjusted to match the video "
"stream's dimensions."
msgstr ""
"如果[code]true[/code],视频会缩放到控件的尺寸。否则,控件的最小尺寸将被自动调"
"整以匹配视频流的尺寸。"

#: doc/classes/VideoPlayer.xml:65
msgid "If [code]true[/code], the video is paused."
msgstr "如果[code]true[/code],则暂停视频。"

#: doc/classes/VideoPlayer.xml:68
msgid "The assigned video stream. See description for supported formats."
msgstr "指定的视频流。支持的格式见描述。"

#: doc/classes/VideoPlayer.xml:71
msgid ""
"The current position of the stream, in seconds.\n"
"[b]Note:[/b] Changing this value won't have any effect as seeking is not "
"implemented yet, except in video formats implemented by a GDNative add-on."
msgstr ""

#: doc/classes/VideoPlayer.xml:75
msgid "Audio volume as a linear value."
msgstr "音频音量为线性值。"

#: doc/classes/VideoPlayer.xml:78
msgid "Audio volume in dB."
msgstr "音频音量,单位是dB。"

#: doc/classes/VideoPlayer.xml:84
msgid "Emitted when playback is finished."
msgstr "播放结束时触发。"

#: doc/classes/VideoStream.xml:4
msgid "Base resource for video streams."
msgstr "视频流的资源基类。"

#: doc/classes/VideoStream.xml:7
msgid ""
"Base resource type for all video streams. Classes that derive from "
"[VideoStream] can all be used as resource types to play back videos in "
"[VideoPlayer]."
msgstr ""
"所有视频流的资源类型基类。派生自[VideoStream]的类都可以作为资源类型,在"
"[VideoPlayer]中播放视频。"

#: modules/gdnative/doc_classes/VideoStreamGDNative.xml:4
msgid "[VideoStream] resource for for video formats implemented via GDNative."
msgstr "[VideoStream] 用于通过GDNative实现的视频格式的资源。"

#: modules/gdnative/doc_classes/VideoStreamGDNative.xml:7
msgid ""
"[VideoStream] resource for for video formats implemented via GDNative.\n"
"It can be used via [url=https://github.com/KidRigger/godot-"
"videodecoder]godot-videodecoder[/url] which uses the [url=https://ffmpeg."
"org]FFmpeg[/url] library."
msgstr ""
"[VideoStream]资源用于通过GDNative实现的视频格式。\n"
"它可以通过[url=https://github.com/KidRigger/godot-videodecoder]godot-"
"videodecoder[/url]使用[url=https://ffmpeg.org]FFmpeg[/url]库来使用。"

#: modules/gdnative/doc_classes/VideoStreamGDNative.xml:16
msgid "Returns the video file handled by this [VideoStreamGDNative]."
msgstr "返回由这个[VideoStreamGDNative]处理的视频文件。"

#: modules/gdnative/doc_classes/VideoStreamGDNative.xml:23
msgid ""
"Sets the video file that this [VideoStreamGDNative] resource handles. The "
"supported extensions depend on the GDNative plugins used to expose video "
"formats."
msgstr ""
"设置此[VideoStreamGDNative]资源处理的视频文件。支持的扩展取决于,用于公开视频"
"格式的GDNative插件。"

#: modules/theora/doc_classes/VideoStreamTheora.xml:4
msgid "[VideoStream] resource for Ogg Theora videos."
msgstr "[VideoStream] Ogg Theora视频的资源。"

#: modules/theora/doc_classes/VideoStreamTheora.xml:7
msgid ""
"[VideoStream] resource handling the [url=https://www.theora.org/]Ogg Theora[/"
"url] video format with [code].ogv[/code] extension. The Theora codec is less "
"efficient than [VideoStreamWebm]'s VP8 and VP9, but it requires less CPU "
"resources to decode. The Theora codec is decoded on the CPU.\n"
"[b]Note:[/b] While Ogg Theora videos can also have an [code].ogg[/code] "
"extension, you will have to rename the extension to [code].ogv[/code] to use "
"those videos within Godot."
msgstr ""

#: modules/theora/doc_classes/VideoStreamTheora.xml:16
msgid "Returns the Ogg Theora video file handled by this [VideoStreamTheora]."
msgstr "返回由这个[VideoStreamTheora]处理的Ogg Theora视频文件。"

#: modules/theora/doc_classes/VideoStreamTheora.xml:23
#, fuzzy
msgid ""
"Sets the Ogg Theora video file that this [VideoStreamTheora] resource "
"handles. The [code]file[/code] name should have the [code].ogv[/code] "
"extension."
msgstr ""
"设置该[VideoStreamTheora]资源处理的Ogg Theora视频文件。[code]file[/code]的名"
"称应该有[code].o[/code]扩展名。"

#: modules/webm/doc_classes/VideoStreamWebm.xml:4
msgid "[VideoStream] resource for WebM videos."
msgstr "[VideoStream] WebM视频的资源。"

#: modules/webm/doc_classes/VideoStreamWebm.xml:7
msgid ""
"[VideoStream] resource handling the [url=https://www.webmproject.org/]WebM[/"
"url] video format with [code].webm[/code] extension. Both the VP8 and VP9 "
"codecs are supported. The VP8 and VP9 codecs are more efficient than "
"[VideoStreamTheora], but they require more CPU resources to decode "
"(especially VP9). Both the VP8 and VP9 codecs are decoded on the CPU.\n"
"[b]Note:[/b] Alpha channel (also known as transparency) is not supported. "
"The video will always appear to have a black background, even if it "
"originally contains an alpha channel.\n"
"[b]Note:[/b] There are known bugs and performance issues with WebM video "
"playback in Godot. If you run into problems, try using the Ogg Theora format "
"instead: [VideoStreamTheora]"
msgstr ""

#: modules/webm/doc_classes/VideoStreamWebm.xml:17
msgid "Returns the WebM video file handled by this [VideoStreamWebm]."
msgstr "返回由这个[VideoStreamWebm]处理的WebM视频文件。"

#: modules/webm/doc_classes/VideoStreamWebm.xml:24
msgid ""
"Sets the WebM video file that this [VideoStreamWebm] resource handles. The "
"[code]file[/code] name should have the [code].webm[/code] extension."
msgstr ""
"设置这个[VideoStreamWebm]资源处理的WebM视频文件。[code]file[/code]名称具有"
"[code].webm[/code]扩展名。"

#: doc/classes/Viewport.xml:4
msgid "Creates a sub-view into the screen."
msgstr "在屏幕中创建一个子视图。"

#: doc/classes/Viewport.xml:7
#, fuzzy
msgid ""
"A Viewport creates a different view into the screen, or a sub-view inside "
"another viewport. Children 2D Nodes will display on it, and children Camera "
"3D nodes will render on it too.\n"
"Optionally, a viewport can have its own 2D or 3D world, so they don't share "
"what they draw with other viewports.\n"
"If a viewport is a child of a [ViewportContainer], it will automatically "
"take up its size, otherwise it must be set manually.\n"
"Viewports can also choose to be audio listeners, so they generate positional "
"audio depending on a 2D or 3D camera child of it.\n"
"Also, viewports can be assigned to different screens in case the devices "
"have multiple screens.\n"
"Finally, viewports can also behave as render targets, in which case they "
"will not be visible unless the associated texture is used to draw."
msgstr ""
"视窗在屏幕上创建了一个不同的视图,或者是另一个视窗中的子视图。其上显示子级2D"
"节点会,也会在其上渲染子级Camera3D的3D节点。\n"
"可选的是,一个视窗可以有自己的2D或3D世界,所以它们不会与其他视窗共享它们所绘"
"制的内容。\n"
"如果视窗是[SubViewportContainer]的一个子节点,它将自动占用其大小,否则必须手"
"动设置。\n"
"视窗也可以选择成为音频监听者,它们会根据一个2D或3D摄像机的子节点来产生位置音"
"频。\n"
"另外,如果设备有多个屏幕,视窗可以被分配到不同的屏幕。\n"
"最后,视窗也可以作为渲染目标,在这种情况下,除非用来绘制相关的纹理,否则它们"
"将不可见。"

#: doc/classes/Viewport.xml:16
#, fuzzy
msgid "https://docs.godotengine.org/en/3.4/tutorials/viewports/index.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/viewports/index.html"

#: doc/classes/Viewport.xml:18 doc/classes/ViewportTexture.xml:12
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/128"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Viewport.xml:20
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/130"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Viewport.xml:21
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/541"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Viewport.xml:22 doc/classes/ViewportTexture.xml:14
#, fuzzy
msgid "https://godotengine.org/asset-library/asset/586"
msgstr "https://docs.godotengine.org/zh_CN/latest/tutorials/vr/index.html"

#: doc/classes/Viewport.xml:28
msgid ""
"Returns the 3D world of the viewport, or if none the world of the parent "
"viewport."
msgstr "返回视窗的3D世界,如果没有,则返回父视窗的世界。"

#: doc/classes/Viewport.xml:34
msgid "Returns the 2D world of the viewport."
msgstr "返回视窗的2D世界。"

#: doc/classes/Viewport.xml:40
msgid "Returns the active 3D camera."
msgstr "返回激活的3D摄像机。"

#: doc/classes/Viewport.xml:46
msgid "Returns the total transform of the viewport."
msgstr "返回视窗的总的变换。"

#: doc/classes/Viewport.xml:52
#, fuzzy
msgid "Returns the topmost modal in the stack."
msgstr "返回[AudioStream]中的位置。"

#: doc/classes/Viewport.xml:58
msgid "Returns the mouse position relative to the viewport."
msgstr "返回相对于视窗的鼠标位置。"

#: doc/classes/Viewport.xml:65
msgid "Returns information about the viewport from the rendering pipeline."
msgstr "返回渲染管道中关于视窗的信息。"

#: doc/classes/Viewport.xml:72
msgid "Returns the [enum ShadowAtlasQuadrantSubdiv] of the specified quadrant."
msgstr "返回指定象限的[enum ShadowAtlasQuadrantSubdiv]。"

#: doc/classes/Viewport.xml:78
#, fuzzy
msgid "Returns the size override set with [method set_size_override]."
msgstr "如果[method parse]失败了,返回错误文本。"

#: doc/classes/Viewport.xml:84
#, fuzzy
msgid ""
"Returns the viewport's texture.\n"
"[b]Note:[/b] Due to the way OpenGL works, the resulting [ViewportTexture] is "
"flipped vertically. You can use [method Image.flip_y] on the result of "
"[method Texture.get_data] to flip it back, for example:\n"
"[codeblock]\n"
"var img = get_viewport().get_texture().get_data()\n"
"img.flip_y()\n"
"[/codeblock]"
msgstr ""
"返回视窗的纹理。\n"
"[b]注意:[/b] 由于OpenGL的工作方式,产生的[ViewportTexture]是垂直翻转的。你可"
"以在[method Texture2D.get_data]的结果上使用[method Image.flip_y]来将其翻转回"
"来,例如。\n"
"[codeblock]\n"
"var img = get_viewport().get_texture().get_data()\n"
"img.flip_y()\n"
"[/codeblock]"

#: doc/classes/Viewport.xml:95
#, fuzzy
msgid "Returns the viewport's RID from the [VisualServer]."
msgstr "从[RenderingServer]返回视窗的RID。"

#: doc/classes/Viewport.xml:101
msgid "Returns the visible rectangle in global screen coordinates."
msgstr "返回全局屏幕坐标中的可见矩形。"

#: doc/classes/Viewport.xml:107
msgid ""
"Returns the drag data from the GUI, that was previously returned by [method "
"Control.get_drag_data]."
msgstr ""
"返回GUI中的拖动数据,该数据之前由 [method Control.get_drag_data] 返回。"

#: doc/classes/Viewport.xml:113
#, fuzzy
msgid "Returns [code]true[/code] if there are visible modals on-screen."
msgstr "如果场景文件有节点,返回[code]true[/code]。"

#: doc/classes/Viewport.xml:119
msgid ""
"Returns [code]true[/code] if the viewport is currently performing a drag "
"operation."
msgstr "如果当前视窗正在执行拖动操作,则返回[code]true[/code]。"

#: doc/classes/Viewport.xml:136
#, fuzzy
msgid ""
"Returns [code]true[/code] if the size override is enabled. See [method "
"set_size_override]."
msgstr ""
"如果节点设置为顶层,则返回[code] true [/code]。参见[方法set_as_toplevel]。"

#: doc/classes/Viewport.xml:143
msgid ""
"Attaches this [Viewport] to the root [Viewport] with the specified "
"rectangle. This bypasses the need for another node to display this "
"[Viewport] but makes you responsible for updating the position of this "
"[Viewport] manually."
msgstr ""

#: doc/classes/Viewport.xml:149
msgid "Stops the input from propagating further down the [SceneTree]."
msgstr "阻止输入继续向下传播[SceneTree]。"

#: doc/classes/Viewport.xml:157
msgid ""
"Sets the number of subdivisions to use in the specified quadrant. A higher "
"number of subdivisions allows you to have more shadows in the scene at once, "
"but reduces the quality of the shadows. A good practice is to have quadrants "
"with a varying number of subdivisions and to have as few subdivisions as "
"possible."
msgstr ""
"设置在指定象限内使用的细分数。较多的细分数可以让你在场景中一次拥有更多的阴"
"影,但是会降低阴影的质量。一个好的做法是让象限具有不同数量的细分,并尽可能地"
"减少细分。"

#: doc/classes/Viewport.xml:166
msgid ""
"Sets the size override of the viewport. If the [code]enable[/code] parameter "
"is [code]true[/code] the override is used, otherwise it uses the default "
"size. If the size parameter is [code](-1, -1)[/code], it won't update the "
"size."
msgstr ""

#: doc/classes/Viewport.xml:178
msgid "Forces update of the 2D and 3D worlds."
msgstr "2D和3D世界的力更新。"

#: doc/classes/Viewport.xml:185
msgid "Warps the mouse to a position relative to the viewport."
msgstr "将鼠标偏移到相对于视窗的位置。"

#: doc/classes/Viewport.xml:191
#, fuzzy
msgid "If [code]true[/code], the viewport will be used in AR/VR process."
msgstr "如果 [code]true[/code],则子视口将用于 AR/VR 过程。"

#: doc/classes/Viewport.xml:194
msgid "If [code]true[/code], the viewport will process 2D audio streams."
msgstr "如果[code]true[/code],视窗将处理2D音频流。"

#: doc/classes/Viewport.xml:197
msgid "If [code]true[/code], the viewport will process 3D audio streams."
msgstr "如果[code]true[/code],视窗将处理3D音频流。"

#: doc/classes/Viewport.xml:200
msgid ""
"The canvas transform of the viewport, useful for changing the on-screen "
"positions of all child [CanvasItem]s. This is relative to the global canvas "
"transform of the viewport."
msgstr ""
"视窗的画布变换,对改变所有子[CanvasItem]的屏幕位置很有用。这与视窗的全局画布"
"变换有关。"

#: doc/classes/Viewport.xml:203
msgid ""
"If [code]true[/code], uses a fast post-processing filter to make banding "
"significantly less visible. In some cases, debanding may introduce a "
"slightly noticeable dithering pattern. It's recommended to enable debanding "
"only when actually needed since the dithering pattern will make lossless-"
"compressed screenshots larger.\n"
"[b]Note:[/b] Only available on the GLES3 backend. [member hdr] must also be "
"[code]true[/code] for debanding to be effective."
msgstr ""

#: doc/classes/Viewport.xml:207
msgid "The overlay mode for test rendered geometry in debug purposes."
msgstr "在调试时,用于测试渲染的几何图形的叠加模式。"

#: doc/classes/Viewport.xml:210
#, fuzzy
msgid ""
"If [code]true[/code], the viewport will disable 3D rendering. For actual "
"disabling use [code]usage[/code]."
msgstr ""
"如果 [code]true[/code],则会在元标签下划线,例如 [code][url]{text}[/url][/"
"code]。"

#: doc/classes/Viewport.xml:213
#, fuzzy
msgid ""
"Enables fast approximate antialiasing. FXAA is a popular screen-space "
"antialiasing method, which is fast but will make the image look blurry, "
"especially at lower resolutions. It can still work relatively well at large "
"resolutions such as 1440p and 4K. Some of the lost sharpness can be "
"recovered by enabling contrast-adaptive sharpening (see [member "
"sharpen_intensity])."
msgstr ""
"使用快速的近似抗锯齿。FXAA是一种流行的屏幕空间抗锯齿方法,它的速度很快,但会"
"使图像看起来很模糊,特别是在较低的分辨率。在1440p和4K等大分辨率下,仍然可以相"
"对良好地工作。"

#: doc/classes/Viewport.xml:216
msgid ""
"The global canvas transform of the viewport. The canvas transform is "
"relative to this."
msgstr "视窗的全局画布变换。画布变换是相对于这个的。"

#: doc/classes/Viewport.xml:219
#, fuzzy
msgid "If [code]true[/code], the viewport will not receive input events."
msgstr "如果[code]true[/code],视窗将不接收输入事件。"

#: doc/classes/Viewport.xml:222
msgid ""
"If [code]true[/code], the GUI controls on the viewport will lay pixel "
"perfectly."
msgstr "如果[code]true[/code],视窗上的GUI控件将完美地放置像素。"

#: doc/classes/Viewport.xml:227
msgid ""
"If [code]true[/code], the viewport rendering will receive benefits from High "
"Dynamic Range algorithm. High Dynamic Range allows the viewport to receive "
"values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it "
"does not store the full range of a floating point number.\n"
"[b]Note:[/b] Requires [member usage] to be set to [constant USAGE_3D] or "
"[constant USAGE_3D_NO_EFFECTS], since HDR is not supported for 2D."
msgstr ""

#: doc/classes/Viewport.xml:231
msgid ""
"If [code]true[/code], the result after 3D rendering will not have a linear "
"to sRGB color conversion applied. This is important when the viewport is "
"used as a render target where the result is used as a texture on a 3D object "
"rendered in another viewport. It is also important if the viewport is used "
"to create data that is not color based (noise, heightmaps, pickmaps, etc.). "
"Do not enable this when the viewport is used as a texture on a 2D object or "
"if the viewport is your final output. For the GLES2 driver this will convert "
"the sRGB output to linear, this should only be used for VR plugins that "
"require input in linear color space!"
msgstr ""

#: doc/classes/Viewport.xml:234
msgid ""
"The multisample anti-aliasing mode. A higher number results in smoother "
"edges at the cost of significantly worse performance. A value of 4 is best "
"unless targeting very high-end systems."
msgstr ""
"多重采样抗锯齿模式。一个较高的数字会使边缘更平滑,但代价是性能明显下降。除非"
"是针对非常高端的系统,否则数值为4是最好的。"

#: doc/classes/Viewport.xml:237
#, fuzzy
msgid ""
"If [code]true[/code], the viewport will use [World] defined in [code]world[/"
"code] property."
msgstr "如果[code]true[/code],视窗将使用[member world_3d]中定义的[World3D]。"

#: doc/classes/Viewport.xml:240
msgid ""
"If [code]true[/code], the objects rendered by viewport become subjects of "
"mouse picking process."
msgstr "如果[code]true[/code],则视窗渲染的对象将成为鼠标拾取过程的对象。"

#: doc/classes/Viewport.xml:243
msgid ""
"If [code]true[/code], renders the Viewport directly to the screen instead of "
"to the root viewport. Only available in GLES2. This is a low-level "
"optimization and should not be used in most cases. If used, reading from the "
"Viewport or from [code]SCREEN_TEXTURE[/code] becomes unavailable. For more "
"information see [method VisualServer.viewport_set_render_direct_to_screen]."
msgstr ""

#: doc/classes/Viewport.xml:246
#, fuzzy
msgid ""
"The clear mode when viewport used as a render target.\n"
"[b]Note:[/b] This property is intended for 2D usage."
msgstr "子视口用作渲染目标时的清除模式。"

#: doc/classes/Viewport.xml:250
#, fuzzy
msgid "The update mode when viewport used as a render target."
msgstr "子视口用作渲染目标时的更新模式。"

#: doc/classes/Viewport.xml:253
#, fuzzy
msgid ""
"If [code]true[/code], the result of rendering will be flipped vertically."
msgstr "如果为 [code]true[/code],纹理将被垂直翻转。"

#: doc/classes/Viewport.xml:256
msgid "The subdivision amount of the first quadrant on the shadow atlas."
msgstr "阴影图集上第一象限的细分量。"

#: doc/classes/Viewport.xml:259
msgid "The subdivision amount of the second quadrant on the shadow atlas."
msgstr "阴影图集上第二象限的细分量。"

#: doc/classes/Viewport.xml:262
msgid "The subdivision amount of the third quadrant on the shadow atlas."
msgstr "阴影图集上第三象限的细分量。"

#: doc/classes/Viewport.xml:265
msgid "The subdivision amount of the fourth quadrant on the shadow atlas."
msgstr "阴影图集上第四象限的细分量。"

#: doc/classes/Viewport.xml:268
msgid ""
"The shadow atlas' resolution (used for omni and spot lights). The value will "
"be rounded up to the nearest power of 2.\n"
"[b]Note:[/b] If this is set to 0, shadows won't be visible. Since user-"
"created viewports default to a value of 0, this value must be set above 0 "
"manually."
msgstr ""
"阴影图集的分辨率,注,用于泛光灯和聚光灯。该值将四舍五入到最接近的 2 的幂。\n"
"[b]注意:[/b]如果设置为0,阴影将不可见。由于用户创建的视窗默认值为 0,因此必"
"须手动将此值设置为大于 0。"

#: doc/classes/Viewport.xml:272
msgid ""
"If set to a value greater than [code]0.0[/code], contrast-adaptive "
"sharpening will be applied to the 3D viewport. This has a low performance "
"cost and can be used to recover some of the sharpness lost from using FXAA. "
"Values around [code]0.5[/code] generally give the best results. See also "
"[member fxaa]."
msgstr ""

#: doc/classes/Viewport.xml:275
msgid ""
"The width and height of viewport. Must be set to a value greater than or "
"equal to 2 pixels on both dimensions. Otherwise, nothing will be displayed."
msgstr ""

#: doc/classes/Viewport.xml:278
#, fuzzy
msgid "If [code]true[/code], the size override affects stretch as well."
msgstr "如果 [code]true[/code],2D 尺寸覆盖也会影响拉伸。"

#: doc/classes/Viewport.xml:281
msgid ""
"If [code]true[/code], the viewport should render its background as "
"transparent."
msgstr "如果 [code]true[/code],视窗应使其背景渲染为透明。"

#: doc/classes/Viewport.xml:284
#, fuzzy
msgid "The rendering mode of viewport."
msgstr "要使用的剔除模式。"

#: doc/classes/Viewport.xml:287
#, fuzzy
msgid "The custom [World] which can be used as 3D environment source."
msgstr "自定义的[World3D],可以作为3D环境源。"

#: doc/classes/Viewport.xml:290
msgid "The custom [World2D] which can be used as 2D environment source."
msgstr "自定义的[World2D],可以作为2D环境源。"

#: doc/classes/Viewport.xml:297
msgid "Emitted when a Control node grabs keyboard focus."
msgstr "当控件节点获取键盘焦点时触发。"

#: doc/classes/Viewport.xml:302
#, fuzzy
msgid ""
"Emitted when the size of the viewport is changed, whether by [method "
"set_size_override], resize of window, or some other means."
msgstr "当视窗的大小改变时触发,无论是通过调整窗口的大小,还是其他方式。"

#: doc/classes/Viewport.xml:308
msgid "Do not update the render target."
msgstr "不要更新渲染目标。"

#: doc/classes/Viewport.xml:311
msgid ""
"Update the render target once, then switch to [constant UPDATE_DISABLED]."
msgstr "更新渲染目标一次,然后切换到 [constant UPDATE_DISABLED]。"

#: doc/classes/Viewport.xml:314
msgid ""
"Update the render target only when it is visible. This is the default value."
msgstr "仅在渲染目标可见时更新渲染目标。这是默认值。"

#: doc/classes/Viewport.xml:317
msgid "Always update the render target."
msgstr "始终更新渲染目标。"

#: doc/classes/Viewport.xml:320
msgid "This quadrant will not be used."
msgstr "此象限将不使用。"

#: doc/classes/Viewport.xml:323
msgid "This quadrant will only be used by one shadow map."
msgstr "此象限仅由一张阴影贴图使用。"

#: doc/classes/Viewport.xml:326
msgid "This quadrant will be split in 4 and used by up to 4 shadow maps."
msgstr "此象限将分为 4 个,最多使用 4 个阴影贴图。"

#: doc/classes/Viewport.xml:329
msgid "This quadrant will be split 16 ways and used by up to 16 shadow maps."
msgstr "此象限将被分成16个方向,并被最多16张阴影贴图使用。"

#: doc/classes/Viewport.xml:332
msgid "This quadrant will be split 64 ways and used by up to 64 shadow maps."
msgstr "这个象限将被分成64个方向,并被最多64张阴影贴图使用。"

#: doc/classes/Viewport.xml:335
msgid ""
"This quadrant will be split 256 ways and used by up to 256 shadow maps. "
"Unless the [member shadow_atlas_size] is very high, the shadows in this "
"quadrant will be very low resolution."
msgstr ""
"这个象限将被分成256个方向,并被最多256个阴影贴图使用。除非 [member "
"shadow_atlas_size] 非常高,否则这个象限内的阴影分辨率会非常低。"

#: doc/classes/Viewport.xml:338
msgid ""
"This quadrant will be split 1024 ways and used by up to 1024 shadow maps. "
"Unless the [member shadow_atlas_size] is very high, the shadows in this "
"quadrant will be very low resolution."
msgstr ""
"这个象限将被分成1024个方向,并被最多1024个阴影贴图使用。除非 [member "
"shadow_atlas_size] 非常高,否则这个象限内的阴影分辨率会非常低。"

#: doc/classes/Viewport.xml:341
msgid "Represents the size of the [enum ShadowAtlasQuadrantSubdiv] enum."
msgstr "代表[enum ShadowAtlasQuadrantSubdiv]枚举的大小。"

#: doc/classes/Viewport.xml:344
msgid "Amount of objects in frame."
msgstr "帧中对象的数量。"

#: doc/classes/Viewport.xml:347
msgid "Amount of vertices in frame."
msgstr "帧中的顶点数量。"

#: doc/classes/Viewport.xml:350
msgid "Amount of material changes in frame."
msgstr "帧中的材质更改量。"

#: doc/classes/Viewport.xml:353
msgid "Amount of shader changes in frame."
msgstr "帧中着色器的更改量。"

#: doc/classes/Viewport.xml:356
msgid "Amount of surface changes in frame."
msgstr "帧中的表面更改量。"

#: doc/classes/Viewport.xml:359 doc/classes/Viewport.xml:365
msgid "Amount of draw calls in frame."
msgstr "帧中的绘制调用量。"

#: doc/classes/Viewport.xml:362
#, fuzzy
msgid "Amount of items or joined items in frame."
msgstr "帧中对象的数量。"

#: doc/classes/Viewport.xml:368
msgid "Represents the size of the [enum RenderInfo] enum."
msgstr "表示 [enum RenderInfo] 枚举的大小。"

#: doc/classes/Viewport.xml:371
msgid "Objects are displayed normally."
msgstr "对象显示正常。"

#: doc/classes/Viewport.xml:374
msgid "Objects are displayed without light information."
msgstr "显示的对象没有光照信息。"

#: doc/classes/Viewport.xml:377
msgid ""
"Objected are displayed semi-transparent with additive blending so you can "
"see where they intersect."
msgstr ""

#: doc/classes/Viewport.xml:380
msgid "Objects are displayed in wireframe style."
msgstr "对象以线框风格显示。"

#: doc/classes/Viewport.xml:383
#, fuzzy
msgid "Multisample anti-aliasing mode disabled. This is the default value."
msgstr "禁用多重采样抗锯齿模式。这是默认值,也是最快的设置。"

#: doc/classes/Viewport.xml:386
msgid "Use 2x Multisample Antialiasing."
msgstr "使用 2x 多重采样抗锯齿。"

#: doc/classes/Viewport.xml:389
msgid "Use 4x Multisample Antialiasing."
msgstr "使用 4x 多重采样抗锯齿。"

#: doc/classes/Viewport.xml:392
msgid ""
"Use 8x Multisample Antialiasing. Likely unsupported on low-end and older "
"hardware."
msgstr "使用 8x 多重采样抗锯齿。在低端和旧硬件上可能不受支持。"

#: doc/classes/Viewport.xml:395
msgid ""
"Use 16x Multisample Antialiasing. Likely unsupported on medium and low-end "
"hardware."
msgstr "使用 16x 多重采样抗锯齿。在中低端硬件上可能不受支持。"

#: doc/classes/Viewport.xml:398
msgid ""
"Allocates all buffers needed for drawing 2D scenes. This takes less VRAM "
"than the 3D usage modes. Note that 3D rendering effects such as glow and HDR "
"are not available when using this mode."
msgstr ""

#: doc/classes/Viewport.xml:401
msgid ""
"Allocates buffers needed for 2D scenes without allocating a buffer for "
"screen copy. Accordingly, you cannot read from the screen. Of the [enum "
"Usage] types, this requires the least VRAM. Note that 3D rendering effects "
"such as glow and HDR are not available when using this mode."
msgstr ""

#: doc/classes/Viewport.xml:404
msgid ""
"Allocates full buffers for drawing 3D scenes and all 3D effects including "
"buffers needed for 2D scenes and effects."
msgstr ""

#: doc/classes/Viewport.xml:407
msgid ""
"Allocates buffers needed for drawing 3D scenes. But does not allocate "
"buffers needed for reading from the screen and post-processing effects. "
"Saves some VRAM."
msgstr ""

#: doc/classes/Viewport.xml:410
msgid "Always clear the render target before drawing."
msgstr "绘制前始终清除渲染目标。"

#: doc/classes/Viewport.xml:413
msgid "Never clear the render target."
msgstr "永不清除渲染目标。"

#: doc/classes/Viewport.xml:416
msgid ""
"Clear the render target next frame, then switch to [constant "
"CLEAR_MODE_NEVER]."
msgstr "在下一帧清除渲染目标,然后切换到 [constant CLEAR_MODE_NEVER]。"

#: doc/classes/ViewportContainer.xml:4
#, fuzzy
msgid "Control for holding [Viewport]s."
msgstr "用于保持 [SubViewport] 的控件。"

#: doc/classes/ViewportContainer.xml:7
#, fuzzy
msgid ""
"A [Container] node that holds a [Viewport], automatically setting its size.\n"
"[b]Note:[/b] Changing a ViewportContainer's [member Control.rect_scale] will "
"cause its contents to appear distorted. To change its visual size without "
"causing distortion, adjust the node's margins instead (if it's not already "
"in a container)."
msgstr ""
"容纳[SubViewport]的[Container]节点,自动设置其大小。\n"
"[b]注意:[/b] 改变SubViewportContainer的[member Control.rect_scale]会导致其内"
"容出现失真。要改变它的视觉尺寸而不引起失真,可以调整节点的边距来代替(如果它"
"还没有在一个容器中的话)。"

#: doc/classes/ViewportContainer.xml:16
#, fuzzy
msgid ""
"If [code]true[/code], the viewport will be scaled to the control's size."
msgstr "如果 [code]true[/code],子视口将被缩放到控件的大小。"

#: doc/classes/ViewportContainer.xml:19
#, fuzzy
msgid ""
"Divides the viewport's effective resolution by this value while preserving "
"its scale. This can be used to speed up rendering.\n"
"For example, a 1280×720 viewport with [member stretch_shrink] set to "
"[code]2[/code] will be rendered at 640×360 while occupying the same size in "
"the container.\n"
"[b]Note:[/b] [member stretch] must be [code]true[/code] for this property to "
"work."
msgstr ""
"将子视口的有效分辨率除以该值,同时保留其比例。这可用于加速渲染。\n"
"例如,一个 1280×720 的子视口 [member stretch_shrink] 设置为 [code]2[/code] 将"
"在 640×360 渲染,同时在容器中占据相同的大小。\n"
"[b]注意:[/b] [member stretch] 必须为 [code]true[/code] 才能使该属性起作用。"

#: doc/classes/ViewportTexture.xml:4
msgid "Texture which displays the content of a [Viewport]."
msgstr "显示[Viewport]内容的纹理。"

#: doc/classes/ViewportTexture.xml:7
#, fuzzy
msgid ""
"Displays the content of a [Viewport] node as a dynamic [Texture]. This can "
"be used to mix controls, 2D, and 3D elements in the same scene.\n"
"To create a ViewportTexture in code, use the [method Viewport.get_texture] "
"method on the target viewport."
msgstr ""
"将[Viewport]节点的内容显示为一个动态的[Texture2D]。这可以用来在同一个场景中混"
"合控件、2D和3D元素。\n"
"要在代码中创建一个ViewportTexture,请使用目标视窗上的[method Viewport."
"get_texture]方法。"

#: doc/classes/ViewportTexture.xml:22
msgid ""
"The path to the [Viewport] node to display. This is relative to the scene "
"root, not to the node which uses the texture."
msgstr ""
"显示[Viewport]节点的路径。这是相对于场景根的,而不是相对于使用纹理的节点。"

#: doc/classes/VisibilityEnabler.xml:4 doc/classes/VisibilityEnabler2D.xml:4
msgid "Enables certain nodes only when approximately visible."
msgstr "只在大约可见时启用某些节点。"

#: doc/classes/VisibilityEnabler.xml:7
#, fuzzy
msgid ""
"The VisibilityEnabler will disable [RigidBody] and [AnimationPlayer] nodes "
"when they are not visible. It will only affect other nodes within the same "
"scene as the VisibilityEnabler itself.\n"
"If you just want to receive notifications, use [VisibilityNotifier] "
"instead.\n"
"[b]Note:[/b] VisibilityEnabler uses an approximate heuristic for performance "
"reasons. It doesn't take walls and other occlusion into account. The "
"heuristic is an implementation detail and may change in future versions. If "
"you need precise visibility checking, use another method such as adding an "
"[Area] node as a child of a [Camera] node and/or [method Vector3.dot].\n"
"[b]Note:[/b] VisibilityEnabler will not affect nodes added after scene "
"initialization."
msgstr ""
"VisibilityEnabler3D将在[RigidBody3D]和[AnimationPlayer]节点不可见时禁用它们。"
"它只会影响与VisibilityEnabler3D本身相同场景中的其他节点。\n"
"如果你只是想接收通知,请使用[VisibilityNotifier3D]代替。\n"
"[b]注意:[/b] VisibilityEnabler3D由于性能原因使用了一个近似的启发式方法。它没"
"有考虑到墙和其他遮挡物。启发式这一实现细节,在未来的版本中可能会改变。如果你"
"需要精确的可见度检查,请使用另一种方法,例如添加一个[Area3D]节点作为"
"[Camera3D]节点的子节点或[method Vector3.dot]。\n"
"[b]注意:[/b] VisibilityEnabler3D不会影响场景初始化后添加的节点。"

#: doc/classes/VisibilityEnabler.xml:19 doc/classes/VisibilityEnabler2D.xml:19
msgid ""
"Returns whether the enabler identified by given [enum Enabler] constant is "
"active."
msgstr "返回由给定的 [enum Enabler] 常量标识的启用程序是否处于活动状态。"

#: doc/classes/VisibilityEnabler.xml:27 doc/classes/VisibilityEnabler2D.xml:27
msgid ""
"Sets active state of the enabler identified by given [enum Enabler] constant."
msgstr "设置由给定的[enum Enabler]常量识别的启用程序的活动状态。"

#: doc/classes/VisibilityEnabler.xml:33
#, fuzzy
msgid "If [code]true[/code], [RigidBody] nodes will be paused."
msgstr "如果[code]true[/code],[RigidBody2D]节点将被暂停。"

#: doc/classes/VisibilityEnabler.xml:36 doc/classes/VisibilityEnabler2D.xml:39
msgid "If [code]true[/code], [AnimationPlayer] nodes will be paused."
msgstr "如果[code]true[/code],[AnimationPlayer]节点将被暂停。"

#: doc/classes/VisibilityEnabler.xml:41 doc/classes/VisibilityEnabler2D.xml:53
msgid "This enabler will pause [AnimationPlayer] nodes."
msgstr "这个启用程序将暂停[AnimationPlayer]节点。"

#: doc/classes/VisibilityEnabler.xml:44
#, fuzzy
msgid "This enabler will freeze [RigidBody] nodes."
msgstr "这个启用程序将冻结[RigidBody2D]节点。"

#: doc/classes/VisibilityEnabler.xml:47 doc/classes/VisibilityEnabler2D.xml:71
msgid "Represents the size of the [enum Enabler] enum."
msgstr "表示[enum Enabler]枚举的大小。"

#: doc/classes/VisibilityEnabler2D.xml:7
msgid ""
"The VisibilityEnabler2D will disable [RigidBody2D], [AnimationPlayer], and "
"other nodes when they are not visible. It will only affect nodes with the "
"same root node as the VisibilityEnabler2D, and the root node itself.\n"
"If you just want to receive notifications, use [VisibilityNotifier2D] "
"instead.\n"
"[b]Note:[/b] For performance reasons, VisibilityEnabler2D uses an "
"approximate heuristic with precision determined by [member ProjectSettings."
"world/2d/cell_size]. If you need precise visibility checking, use another "
"method such as adding an [Area2D] node as a child of a [Camera2D] node.\n"
"[b]Note:[/b] VisibilityEnabler2D will not affect nodes added after scene "
"initialization."
msgstr ""
"VisibilityEnabler2D会在[RigidBody2D]、[AnimationPlayer]和其他节点不可见时禁用"
"它们。它只会影响与VisibilityEnabler2D的根节点相同的节点,以及根节点本身。\n"
"如果你只想接收通知,请使用[VisibilityNotifier2D]代替。\n"
"[b]注意:[/b] 由于性能原因,VisibilityEnabler2D使用一个近似的启发式方法,其精"
"度由[member ProjectSettings.world/2D/cell_size]决定。如果你需要精确的可见性检"
"查,请使用另一种方法,例如添加一个[Area2D]节点作为[Camera2D]节点的子节点。\n"
"[b]注意:[/b] VisibilityEnabler2D不会影响场景初始化后添加的节点。"

#: doc/classes/VisibilityEnabler2D.xml:33
msgid "If [code]true[/code], [RigidBody2D] nodes will be paused."
msgstr "如果[code]true[/code],[RigidBody2D]节点将被暂停。"

#: doc/classes/VisibilityEnabler2D.xml:36
#, fuzzy
msgid "If [code]true[/code], [AnimatedSprite] nodes will be paused."
msgstr "如果[code]true[/code],[AnimatedSprite2D]节点将被暂停。"

#: doc/classes/VisibilityEnabler2D.xml:42
#, fuzzy
msgid "If [code]true[/code], [Particles2D] nodes will be paused."
msgstr "如果[code]true[/code],[GPUParticles2D]节点将被暂停。"

#: doc/classes/VisibilityEnabler2D.xml:45
msgid ""
"If [code]true[/code], the parent's [method Node._physics_process] will be "
"stopped."
msgstr "如果[code]true[/code],父级的[method Node._physics_process]将被停止。"

#: doc/classes/VisibilityEnabler2D.xml:48
msgid ""
"If [code]true[/code], the parent's [method Node._process] will be stopped."
msgstr "如果[code]true[/code],父级的[method Node._process]将被停止。"

#: doc/classes/VisibilityEnabler2D.xml:56
msgid "This enabler will freeze [RigidBody2D] nodes."
msgstr "这个启用程序将冻结[RigidBody2D]节点。"

#: doc/classes/VisibilityEnabler2D.xml:59
#, fuzzy
msgid "This enabler will stop [Particles2D] nodes."
msgstr "这个启用程序将停止[GPUParticles2D]节点。"

#: doc/classes/VisibilityEnabler2D.xml:62
msgid "This enabler will stop the parent's _process function."
msgstr "这个启用程序将停止父类的_process函数。"

#: doc/classes/VisibilityEnabler2D.xml:65
msgid "This enabler will stop the parent's _physics_process function."
msgstr "这个启用程序将停止父类的_physics_process函数。"

#: doc/classes/VisibilityEnabler2D.xml:68
#, fuzzy
msgid "This enabler will stop [AnimatedSprite] nodes animations."
msgstr "这个启用程序将停止[AnimatedSprite2D]节点的动画。"

#: doc/classes/VisibilityNotifier.xml:4 doc/classes/VisibilityNotifier2D.xml:4
msgid "Detects approximately when the node is visible on screen."
msgstr "大约在节点在屏幕上可见时进行检测。"

#: doc/classes/VisibilityNotifier.xml:7
#, fuzzy
msgid ""
"The VisibilityNotifier detects when it is visible on the screen. It also "
"notifies when its bounding rectangle enters or exits the screen or a "
"[Camera]'s view.\n"
"If you want nodes to be disabled automatically when they exit the screen, "
"use [VisibilityEnabler] instead.\n"
"[b]Note:[/b] VisibilityNotifier uses an approximate heuristic for "
"performance reasons. It doesn't take walls and other occlusion into account. "
"The heuristic is an implementation detail and may change in future versions. "
"If you need precise visibility checking, use another method such as adding "
"an [Area] node as a child of a [Camera] node and/or [method Vector3.dot]."
msgstr ""
"VisibilityNotifier3D检测它在屏幕上是否可见。当它的边界矩形进入或退出屏幕或"
"[Camera3D]的视图时,它也会发出通知。\n"
"如果你想让节点在退出屏幕时自动禁用,请使用[VisibilityEnabler3D]代替。\n"
"[b]注意:[/b] VisibilityNotifier3D出于性能考虑,使用了一个近似的启发式方法。"
"它没有考虑到墙壁和其他遮挡物。启发式这一实现细节,在未来的版本中可能会改变。"
"如果你需要精确的可见性检查,请使用另一种方法,如添加一个[Area3D]节点作为"
"[Camera3D]节点的子节点或[method Vector3.dot]。"

#: doc/classes/VisibilityNotifier.xml:17
msgid ""
"If [code]true[/code], the bounding box is on the screen.\n"
"[b]Note:[/b] It takes one frame for the node's visibility to be assessed "
"once added to the scene tree, so this method will return [code]false[/code] "
"right after it is instantiated, even if it will be on screen in the draw "
"pass."
msgstr ""
"如果[code]true[/code],则边界框在屏幕上。\n"
"[b]注意:[/b]一旦添加到场景树中,需要一帧来计算节点的可见性,所以这个方法将在"
"它被实例化后立即返回[code]false[/code],即使屏幕在绘制过程中。"

#: doc/classes/VisibilityNotifier.xml:24
#, fuzzy
msgid "The VisibilityNotifier's bounding box."
msgstr "VisibilityNotifier3D的边界框。"

#: doc/classes/VisibilityNotifier.xml:31
#, fuzzy
msgid "Emitted when the VisibilityNotifier enters a [Camera]'s view."
msgstr "当VisibilityNotifier3D进入到[Camera3D]的视图中时触发。"

#: doc/classes/VisibilityNotifier.xml:37
#, fuzzy
msgid "Emitted when the VisibilityNotifier exits a [Camera]'s view."
msgstr "当VisibilityNotifier3D退出[Camera3D]的视图时触发。"

#: doc/classes/VisibilityNotifier.xml:42
#, fuzzy
msgid "Emitted when the VisibilityNotifier enters the screen."
msgstr "当VisibilityNotifier2D进入屏幕时触发。"

#: doc/classes/VisibilityNotifier.xml:47
#, fuzzy
msgid "Emitted when the VisibilityNotifier exits the screen."
msgstr "当VisibilityNotifier2D退出屏幕时触发。"

#: doc/classes/VisibilityNotifier2D.xml:7
msgid ""
"The VisibilityNotifier2D detects when it is visible on the screen. It also "
"notifies when its bounding rectangle enters or exits the screen or a "
"viewport.\n"
"If you want nodes to be disabled automatically when they exit the screen, "
"use [VisibilityEnabler2D] instead.\n"
"[b]Note:[/b] For performance reasons, VisibilityNotifier2D uses an "
"approximate heuristic with precision determined by [member ProjectSettings."
"world/2d/cell_size]. If you need precise visibility checking, use another "
"method such as adding an [Area2D] node as a child of a [Camera2D] node."
msgstr ""
"VisibilityNotifier2D检测它在屏幕上是否可见。当它的边界矩形进入或退出屏幕或视"
"窗时,它也会发出通知。\n"
"如果你想让节点在退出屏幕时自动禁用,请使用[VisibilityEnabler2D]代替。\n"
"[b]注意:[/b] 由于性能原因,VisibilityNotifier2D使用一个近似的启发式方法,其"
"精度由[member ProjectSettings.world/2D/cell_size]决定。如果你需要精确的可见性"
"检查,请使用另一种方法,如添加一个[Area2D]节点作为[Camera2D]节点的子节点。"

#: doc/classes/VisibilityNotifier2D.xml:18
msgid ""
"If [code]true[/code], the bounding rectangle is on the screen.\n"
"[b]Note:[/b] It takes one frame for the node's visibility to be assessed "
"once added to the scene tree, so this method will return [code]false[/code] "
"right after it is instantiated, even if it will be on screen in the draw "
"pass."
msgstr ""
"如果[code]true[/code],则边界矩形在屏幕上。\n"
"[b]注意:[/b]一旦添加到场景树中,需要一帧来计算节点的可见性,所以这个方法将在"
"它被实例化后立即返回[code]false[/code],即使屏幕在绘制过程中。"

#: doc/classes/VisibilityNotifier2D.xml:25
msgid "The VisibilityNotifier2D's bounding rectangle."
msgstr "VisibilityNotifier2D的边界矩形。"

#: doc/classes/VisibilityNotifier2D.xml:31
msgid "Emitted when the VisibilityNotifier2D enters the screen."
msgstr "当VisibilityNotifier2D进入屏幕时触发。"

#: doc/classes/VisibilityNotifier2D.xml:36
msgid "Emitted when the VisibilityNotifier2D exits the screen."
msgstr "当VisibilityNotifier2D退出屏幕时触发。"

#: doc/classes/VisibilityNotifier2D.xml:42
msgid "Emitted when the VisibilityNotifier2D enters a [Viewport]'s view."
msgstr "当VisibilityNotifier2D进入[Viewport]的视图时触发。"

#: doc/classes/VisibilityNotifier2D.xml:48
msgid "Emitted when the VisibilityNotifier2D exits a [Viewport]'s view."
msgstr "当VisibilityNotifier2D退出[Viewport]的视图时触发。"

#: doc/classes/VisualInstance.xml:4
msgid "Parent of all visual 3D nodes."
msgstr "所有可视3D节点的父节点。"

#: doc/classes/VisualInstance.xml:7
#, fuzzy
msgid ""
"The [VisualInstance] is used to connect a resource to a visual "
"representation. All visual 3D nodes inherit from the [VisualInstance]. In "
"general, you should not access the [VisualInstance] properties directly as "
"they are accessed and managed by the nodes that inherit from "
"[VisualInstance]. [VisualInstance] is the node representation of the "
"[VisualServer] instance."
msgstr ""
"[VisualInstance3D]用于连接一个资源和一个可视表现。所有的可视化3D节点都继承自"
"[VisualInstance3D]。一般来说,你不应该直接访问[VisualInstance3D]的属性,因为"
"它们是由继承自[VisualInstance3D]的节点访问和管理的。[VisualInstance3D]是"
"[RenderingServer]实例的节点表示。"

#: doc/classes/VisualInstance.xml:15
#, fuzzy
msgid ""
"Returns the [AABB] (also known as the bounding box) for this "
"[VisualInstance]. See also [method get_transformed_aabb]."
msgstr "返回此[VisualInstance3D]的[AABB],也称为包围盒或边界框。"

#: doc/classes/VisualInstance.xml:21
#, fuzzy
msgid ""
"Returns the RID of the resource associated with this [VisualInstance]. For "
"example, if the Node is a [MeshInstance], this will return the RID of the "
"associated [Mesh]."
msgstr ""
"返回与此[VisualInstance3D]相关的资源的RID。例如,如果节点是一个"
"[MeshInstance3D],这将返回相关的[Mesh]的RID。"

#: doc/classes/VisualInstance.xml:27
#, fuzzy
msgid ""
"Returns the RID of this instance. This RID is the same as the RID returned "
"by [method VisualServer.instance_create]. This RID is needed if you want to "
"call [VisualServer] functions directly on this [VisualInstance]."
msgstr ""
"返回这个实例的RID。这个RID与[method RenderingServer.instance_create]所返回的"
"RID相同。如果你想在这个[VisualInstance3D]上直接调用[RenderingServer]函数,就"
"需要这个RID。"

#: doc/classes/VisualInstance.xml:34
msgid ""
"Returns [code]true[/code] when the specified layer is enabled in [member "
"layers] and [code]false[/code] otherwise."
msgstr ""
"当指定的层在 [member layers] 中被启用时,返回[code]true[/code],否则返回"
"[code]false[/code]。"

#: doc/classes/VisualInstance.xml:40
#, fuzzy
msgid ""
"Returns the transformed [AABB] (also known as the bounding box) for this "
"[VisualInstance].\n"
"Transformed in this case means the [AABB] plus the position, rotation, and "
"scale of the [Spatial]'s [Transform]. See also [method get_aabb]."
msgstr ""
"返回此[VisualInstance3D]变换后的[AABB],也称为包围盒或边界框。\n"
"这里的变换意味着[AABB]加上[Node3D]的[Transform]的位置、旋转和缩放。"

#: doc/classes/VisualInstance.xml:48
#, fuzzy
msgid ""
"Sets the resource that is instantiated by this [VisualInstance], which "
"changes how the engine handles the [VisualInstance] under the hood. "
"Equivalent to [method VisualServer.instance_set_base]."
msgstr ""
"设置由这个[VisualInstance3D]实例化的资源,这将改变引擎中处理"
"[VisualInstance3D]的方式。相当于[method RenderingServer.instance_set_base]。"

#: doc/classes/VisualInstance.xml:56
msgid "Enables a particular layer in [member layers]."
msgstr "启用 [member layers] 中的特定层。"

#: doc/classes/VisualInstance.xml:62
#, fuzzy
msgid ""
"The render layer(s) this [VisualInstance] is drawn on.\n"
"This object will only be visible for [Camera]s whose cull mask includes the "
"render object this [VisualInstance] is set to."
msgstr ""
"这个[VisualInstance3D]所绘制的渲染层。\n"
"此对象只对[Camera3D]可见,其剔除蒙版包含此 [VisualInstance3D] 设置的渲染对"
"象。"

#: modules/visual_script/doc_classes/VisualScript.xml:4
msgid "A script implemented in the Visual Script programming environment."
msgstr "一个在可视化脚本编程环境中实现的脚本。"

#: modules/visual_script/doc_classes/VisualScript.xml:7
#, fuzzy
msgid ""
"A script implemented in the Visual Script programming environment. The "
"script extends the functionality of all objects that instance it.\n"
"[method Object.set_script] extends an existing object, if that object's "
"class matches one of the script's base classes.\n"
"You are most likely to use this class via the Visual Script editor or when "
"writing plugins for it."
msgstr ""
"一个在可视化脚本环境中实现的脚本。脚本扩展了所有以它为实例的对象的功能。\n"
"如果该对象的类与脚本的基类之一相匹配,[method Object.set_script] 扩展一个现有"
"的对象。\n"
"你最有可能通过可视化脚本编辑器或为其编写插件时使用这个类。"

#: modules/visual_script/doc_classes/VisualScript.xml:12
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/getting_started/scripting/visual_script/"
"index.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/getting_started/scripting/"
"visual_script/index.html"

#: modules/visual_script/doc_classes/VisualScript.xml:19
msgid "Add a custom signal with the specified name to the VisualScript."
msgstr "在可视化脚本中添加一个具有指定名称的自定义信号。"

#: modules/visual_script/doc_classes/VisualScript.xml:26
msgid "Add a function with the specified name to the VisualScript."
msgstr "在可视化脚本中添加一个具有指定名称的函数。"

#: modules/visual_script/doc_classes/VisualScript.xml:36
msgid "Add a node to a function of the VisualScript."
msgstr "向可视化脚本的函数添加节点。"

#: modules/visual_script/doc_classes/VisualScript.xml:45
msgid ""
"Add a variable to the VisualScript, optionally giving it a default value or "
"marking it as exported."
msgstr "在可视化脚本中添加一个变量,可选择给它一个默认值或将其标记为导出。"

#: modules/visual_script/doc_classes/VisualScript.xml:55
msgid ""
"Add an argument to a custom signal added with [method add_custom_signal]."
msgstr "为用[method add_custom_signal]添加的自定义信号添加一个参数。"

#: modules/visual_script/doc_classes/VisualScript.xml:62
msgid "Get the count of a custom signal's arguments."
msgstr "获取自定义信号的参数计数。"

#: modules/visual_script/doc_classes/VisualScript.xml:70
msgid "Get the name of a custom signal's argument."
msgstr "获取自定义信号的参数名称。"

#: modules/visual_script/doc_classes/VisualScript.xml:78
msgid "Get the type of a custom signal's argument."
msgstr "获取自定义信号的参数类型。"

#: modules/visual_script/doc_classes/VisualScript.xml:86
msgid "Remove a specific custom signal's argument."
msgstr "删除特定的自定义信号的参数。"

#: modules/visual_script/doc_classes/VisualScript.xml:95
msgid "Rename a custom signal's argument."
msgstr "重命名自定义信号的参数。"

#: modules/visual_script/doc_classes/VisualScript.xml:104
msgid "Change the type of a custom signal's argument."
msgstr "更改自定义信号的参数类型。"

#: modules/visual_script/doc_classes/VisualScript.xml:113
msgid "Swap two of the arguments of a custom signal."
msgstr "调换自定义信号的两个参数。"

#: modules/visual_script/doc_classes/VisualScript.xml:124
msgid ""
"Connect two data ports. The value of [code]from_node[/code]'s "
"[code]from_port[/code] would be fed into [code]to_node[/code]'s "
"[code]to_port[/code]."
msgstr ""
"连接两个数据端口。[code]from_node[/code]的[code]from_port[/code]的值将被输入"
"[code]to_node[/code]的[code]to_port[/code]。"

#: modules/visual_script/doc_classes/VisualScript.xml:135
msgid ""
"Disconnect two data ports previously connected with [method data_connect]."
msgstr "断开之前用[method data_connect]连接的两个数据端口。"

#: modules/visual_script/doc_classes/VisualScript.xml:142
msgid "Returns the id of a function's entry point node."
msgstr "返回函数入口点节点的ID。"

#: modules/visual_script/doc_classes/VisualScript.xml:149
msgid "Returns the position of the center of the screen for a given function."
msgstr "返回给定函数的屏幕中心的位置。"

#: modules/visual_script/doc_classes/VisualScript.xml:157
msgid "Returns a node given its id and its function."
msgstr "返回一个节点,指定它的id和它的函数。"

#: modules/visual_script/doc_classes/VisualScript.xml:165
msgid "Returns a node's position in pixels."
msgstr "返回节点的坐标,单位是像素。"

#: modules/visual_script/doc_classes/VisualScript.xml:172
msgid "Returns the default (initial) value of a variable."
msgstr "返回变量的初始默认值。"

#: modules/visual_script/doc_classes/VisualScript.xml:179
msgid "Returns whether a variable is exported."
msgstr "返回是否导出变量。"

#: modules/visual_script/doc_classes/VisualScript.xml:186
msgid ""
"Returns the information for a given variable as a dictionary. The "
"information includes its name, type, hint and usage."
msgstr ""
"以字典的形式返回指定变量的信息。这些信息包括它的名称、类型、提示和用法。"

#: modules/visual_script/doc_classes/VisualScript.xml:193
msgid "Returns whether a signal exists with the specified name."
msgstr "返回是否存在具有指定名称的信号。"

#: modules/visual_script/doc_classes/VisualScript.xml:204
msgid "Returns whether the specified data ports are connected."
msgstr "返回指定的数据端口是否已连接。"

#: modules/visual_script/doc_classes/VisualScript.xml:211
msgid "Returns whether a function exists with the specified name."
msgstr "返回是否存在带有指定名称的函数。"

#: modules/visual_script/doc_classes/VisualScript.xml:219
msgid "Returns whether a node exists with the given id."
msgstr "返回是否存在带有给定 ID 的节点。"

#: modules/visual_script/doc_classes/VisualScript.xml:229
msgid "Returns whether the specified sequence ports are connected."
msgstr "返回指定的序列端口是否已连接。"

#: modules/visual_script/doc_classes/VisualScript.xml:236
msgid "Returns whether a variable exists with the specified name."
msgstr "返回是否存在带有指定名称的变量。"

#: modules/visual_script/doc_classes/VisualScript.xml:243
msgid "Remove a custom signal with the given name."
msgstr "删除带有给定名称的自定义信号。"

#: modules/visual_script/doc_classes/VisualScript.xml:250
msgid "Remove a specific function and its nodes from the script."
msgstr "从脚本中删除特定函数及其节点。"

#: modules/visual_script/doc_classes/VisualScript.xml:258
msgid "Remove a specific node."
msgstr "删除特定节点。"

#: modules/visual_script/doc_classes/VisualScript.xml:265
msgid "Remove a variable with the given name."
msgstr "删除具有给定名称的变量。"

#: modules/visual_script/doc_classes/VisualScript.xml:273
msgid "Change the name of a custom signal."
msgstr "更改自定义信号的名称。"

#: modules/visual_script/doc_classes/VisualScript.xml:281
msgid "Change the name of a function."
msgstr "更改函数的名称。"

#: modules/visual_script/doc_classes/VisualScript.xml:289
msgid "Change the name of a variable."
msgstr "更改变量的名称。"

#: modules/visual_script/doc_classes/VisualScript.xml:299
msgid ""
"Connect two sequence ports. The execution will flow from of [code]from_node[/"
"code]'s [code]from_output[/code] into [code]to_node[/code].\n"
"Unlike [method data_connect], there isn't a [code]to_port[/code], since the "
"target node can have only one sequence port."
msgstr ""
"连接两个序列端口。执行将从[code]from_node[/code]的[code]from_output[/code]输"
"入[code]to_node[/code]。\n"
"与[method data_connect]不同,没有[code]to_port[/code],因为目标节点只能有一个"
"序列端口。"

#: modules/visual_script/doc_classes/VisualScript.xml:310
msgid ""
"Disconnect two sequence ports previously connected with [method "
"sequence_connect]."
msgstr "断开之前用[method sequence_connect]连接的两个序列端口。"

#: modules/visual_script/doc_classes/VisualScript.xml:318
msgid "Position the center of the screen for a function."
msgstr "为功能定位屏幕中心。"

#: modules/visual_script/doc_classes/VisualScript.xml:325
msgid "Set the base type of the script."
msgstr "设置脚本的基类。"

#: modules/visual_script/doc_classes/VisualScript.xml:334
msgid "Position a node on the screen."
msgstr "在屏幕上定位一个节点。"

#: modules/visual_script/doc_classes/VisualScript.xml:342
msgid "Change the default (initial) value of a variable."
msgstr "更改变量的初始默认值。"

#: modules/visual_script/doc_classes/VisualScript.xml:350
msgid "Change whether a variable is exported."
msgstr "更改是否导出变量。"

#: modules/visual_script/doc_classes/VisualScript.xml:358
msgid ""
"Set a variable's info, using the same format as [method get_variable_info]."
msgstr "设置变量的信息,使用与 [method get_variable_info] 相同的格式。"

#: modules/visual_script/doc_classes/VisualScript.xml:367
msgid "Emitted when the ports of a node are changed."
msgstr "当节点端口更改时触发。"

#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml:4
msgid "A Visual Script node representing a constant from the base types."
msgstr "一个可视化脚本节点,表示基本类型中的一个常量。"

#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml:7
msgid ""
"A Visual Script node representing a constant from base types, such as "
"[constant Vector3.AXIS_X]."
msgstr "表示基本类型常量的可视化脚本节点,如[constant Vector3.AXIS_X]。"

#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml:15
msgid "The type to get the constant from."
msgstr "从中获取常量的类型。"

#: modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml:18
msgid "The name of the constant to return."
msgstr "要返回的常量的名称。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:4
msgid "A Visual Script node used to call built-in functions."
msgstr "用于调用内置函数的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:7
msgid ""
"A built-in function used inside a [VisualScript]. It is usually a math "
"function or an utility function.\n"
"See also [@GDScript], for the same functions in the GDScript language."
msgstr ""
"在 [VisualScript] 中使用的内置函数。它通常是一个数学函数或一个实用函数。\n"
"也可参阅[@GDScript],了解GDScript语言中的相同函数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:16
msgid "The function to be executed."
msgstr "要执行的函数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:21
msgid "Return the sine of the input."
msgstr "返回输入的正弦值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:24
msgid "Return the cosine of the input."
msgstr "返回输入的余弦值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:27
msgid "Return the tangent of the input."
msgstr "返回输入的正切值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:30
msgid "Return the hyperbolic sine of the input."
msgstr "返回输入的双曲正弦。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:33
msgid "Return the hyperbolic cosine of the input."
msgstr "返回输入的双曲余弦。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:36
msgid "Return the hyperbolic tangent of the input."
msgstr "返回输入的双曲正切值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:39
msgid "Return the arc sine of the input."
msgstr "返回输入的反正弦。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:42
msgid "Return the arc cosine of the input."
msgstr "返回输入的反余弦值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:45
msgid "Return the arc tangent of the input."
msgstr "返回输入的反正切。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:48
msgid ""
"Return the arc tangent of the input, using the signs of both parameters to "
"determine the exact angle."
msgstr "返回输入的反正切,使用两个参数的符号来确定确切的角度。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:51
msgid "Return the square root of the input."
msgstr "返回输入的平方根。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:54
msgid ""
"Return the remainder of one input divided by the other, using floating-point "
"numbers."
msgstr "返回一个输入的余数除以另一个输入的余数,使用浮点数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:57
msgid ""
"Return the positive remainder of one input divided by the other, using "
"floating-point numbers."
msgstr "返回一个输入除以另一个输入的正余数,使用浮点数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:60
msgid "Return the input rounded down."
msgstr "返回向下舍入的输入。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:63
msgid "Return the input rounded up."
msgstr "返回向上舍入的输入。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:66
msgid "Return the input rounded to the nearest integer."
msgstr "返回输入值四舍五入到最接近的整数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:69
msgid "Return the absolute value of the input."
msgstr "返回输入的绝对值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:72
msgid ""
"Return the sign of the input, turning it into 1, -1, or 0. Useful to "
"determine if the input is positive or negative."
msgstr "返回输入的符号,将其变成1、-1或0,有助于确定输入是正数还是负数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:75
msgid "Return the input raised to a given power."
msgstr "返回被提高到给定幂的输入值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:78
msgid ""
"Return the natural logarithm of the input. Note that this is not the typical "
"base-10 logarithm function calculators use."
msgstr ""
"返回输入的自然对数。注意,这不是计算器使用的典型的以10为基数的对数函数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:81
msgid ""
"Return the mathematical constant [b]e[/b] raised to the specified power of "
"the input. [b]e[/b] has an approximate value of 2.71828."
msgstr "返回数学常量[b]e[/b]提高到指定的幂。[b]e[/b]的近似值为2.71828。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:84
msgid ""
"Return whether the input is NaN (Not a Number) or not. NaN is usually "
"produced by dividing 0 by 0, though other ways exist."
msgstr ""
"返回输入是否为NaN(Not a Number)。NaN通常是由0除以0产生的,当然也有其他方"
"式。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:87
msgid ""
"Return whether the input is an infinite floating-point number or not. "
"Infinity is usually produced by dividing a number by 0, though other ways "
"exist."
msgstr ""
"返回输入的数字是否为无限大的浮点数。无限通常是由一个数字除以0产生的,当然也有"
"其他的方式。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:90
msgid ""
"Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is "
"ease-in, 1+ is ease out. Negative values are in-out/out in."
msgstr ""
"缓动函数,基于指数。[code]s[/code]是函数的x值,[code]curve[/code]为0时,函数"
"为常量函数,1是线性函数,0到1是缓入,1+是缓出。0到-1是缓出再缓入,低于-1是缓"
"入再缓出。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:93
msgid ""
"Return the number of digit places after the decimal that the first non-zero "
"digit occurs."
msgstr "返回第一个非零数字出现在小数点后的数字位数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:96
msgid "Return the input snapped to a given step."
msgstr "返回给定步骤的输入断点。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:99
msgid ""
"Return a number linearly interpolated between the first two inputs, based on "
"the third input. Uses the formula [code]a + (a - b) * t[/code]."
msgstr ""
"返回一个在前两个输入之间线性插值的数字,以第三个输入为基础。使用公式[code]a "
"+ (a - b) * t[/code]。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:106
msgid "Moves the number toward a value, based on the third input."
msgstr "根据第三个输入,将数字向一个值移动。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:109
msgid ""
"Return the result of [code]value[/code] decreased by [code]step[/code] * "
"[code]amount[/code]."
msgstr ""
"返回[code]value[/code]减少[code]step[/code]*[code]amount[/code]的结果。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:112
msgid ""
"Randomize the seed (or the internal state) of the random number generator. "
"Current implementation reseeds using a number based on time."
msgstr ""
"随机化随机数生成器的种子(或内部状态)。目前的实现是使用一个基于时间的数字重"
"新做种。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:115
msgid ""
"Return a random 32 bits integer value. To obtain a random value between 0 to "
"N (where N is smaller than 2^32 - 1), you can use it with the remainder "
"function."
msgstr ""
"返回一个随机的32位整数值。为了获得0到N之间的随机值(其中N小于2^32 - 1),你可"
"以将其与余数函数一起使用。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:118
msgid ""
"Return a random floating-point value between 0 and 1. To obtain a random "
"value between 0 to N, you can use it with multiplication."
msgstr ""
"返回一个介于0到1之间的随机浮点值。要获得一个介于0到N之间的随机值,可以将其与"
"乘法结合使用。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:121
msgid "Return a random floating-point value between the two inputs."
msgstr "返回两个输入之间的一个随机浮点值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:124
msgid "Set the seed for the random number generator."
msgstr "设置随机数生成器的种子。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:127
msgid "Return a random value from the given seed, along with the new seed."
msgstr "返回一个来自给定种子的随机值,以及新的种子。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:130
msgid "Convert the input from degrees to radians."
msgstr "将输入的度数转换为弧度。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:133
msgid "Convert the input from radians to degrees."
msgstr "将输入从弧度转换为度数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:136
msgid "Convert the input from linear volume to decibel volume."
msgstr "将输入从线性音量转换为分贝音量。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:139
msgid "Convert the input from decibel volume to linear volume."
msgstr "将输入从分贝音量转换为线性音量。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:152
msgid "Return the greater of the two numbers, also known as their maximum."
msgstr "返回两个数字中较大的一个,也称为它们的最大值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:155
msgid "Return the lesser of the two numbers, also known as their minimum."
msgstr "返回两个数字中较小的一个,也被称为它们的最小值。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:158
msgid ""
"Return the input clamped inside the given range, ensuring the result is "
"never outside it. Equivalent to [code]min(max(input, range_low), range_high)"
"[/code]."
msgstr ""
"返回限定在给定范围内的输入,确保结果永远不会超出该范围。相当于"
"[code]min(max(input, range_low), range_high)[/code]。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:161
msgid "Return the nearest power of 2 to the input."
msgstr "将最接近的2的次方返回给输入。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:164
msgid "Create a [WeakRef] from the input."
msgstr "从输入创建一个[WeakRef]。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:167
msgid "Create a [FuncRef] from the input."
msgstr "从输入创建一个[FuncRef]。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:170
msgid "Convert between types."
msgstr "在类型之间转换。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:173
msgid ""
"Return the type of the input as an integer. Check [enum Variant.Type] for "
"the integers that might be returned."
msgstr ""
"返回输入的类型为整数。请查看[enum Variant.Type]以了解可能被返回的整数。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:176
msgid "Checks if a type is registered in the [ClassDB]."
msgstr "检查类型是否已在 [ClassDB] 中注册。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:179
msgid "Return a character with the given ascii value."
msgstr "返回具有给定 ascii 值的字符。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:182
msgid "Convert the input to a string."
msgstr "将输入转换为字符串。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:185
msgid "Print the given string to the output window."
msgstr "打印给定的字符串到输出窗口。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:188
msgid "Print the given string to the standard error output."
msgstr "打印给定的字符串到标准错误输出。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:191
msgid ""
"Print the given string to the standard output, without adding a newline."
msgstr "打印给定的字符串到标准输出,不加换行。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:194
msgid "Serialize a [Variant] to a string."
msgstr "将 [Variant] 序列化为字符串。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:197
msgid ""
"Deserialize a [Variant] from a string serialized using [constant VAR_TO_STR]."
msgstr ""
"从一个使用 [constant VAR_TO_STR]序列化的字符串中反序列化一个 [Variant] 。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:200
#, fuzzy
msgid "Serialize a [Variant] to a [PoolByteArray]."
msgstr "将 [Variant] 序列化为 [PackedByteArray]。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:203
#, fuzzy
msgid ""
"Deserialize a [Variant] from a [PoolByteArray] serialized using [constant "
"VAR_TO_BYTES]."
msgstr ""
"从使用 [constant VAR_TO_BYTES]序列化的[PackedByteArray]反序列化一个"
"[Variant]。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:206
msgid ""
"Return the [Color] with the given name and alpha ranging from 0 to 1.\n"
"[b]Note:[/b] Names are defined in [code]color_names.inc[/code]."
msgstr ""
"返回具有给定名称的[Color]和从0到1的alpha。\n"
"[b]注意:[/b] 名称在[code]color_names.inc[/code]中定义。"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:210
msgid ""
"Return a number smoothly interpolated between the first two inputs, based on "
"the third input. Similar to [constant MATH_LERP], but interpolates faster at "
"the beginning and slower at the end. Using Hermite interpolation formula:\n"
"[codeblock]\n"
"var t = clamp((weight - from) / (to - from), 0.0, 1.0)\n"
"return t * t * (3.0 - 2.0 * t)\n"
"[/codeblock]"
msgstr ""
"返回一个在前两个输入之间平滑内插的数字,基于第三个输入。类似于 [constant "
"MATH_LERP],但在开始时插值较快,结束时插值较慢。使用Hermite插值公式。\n"
"[codeblock]\n"
"var t = clamp((weight - from) / (to - from), 0.0, 1.0)\n"
"return t * t * (3.0 - 2.0 * t)\n"
"[/codeblock]"

#: modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml:223
msgid "Represents the size of the [enum BuiltinFunc] enum."
msgstr "表示[enum BuiltinFunc]枚举的大小。"

#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml:4
msgid "Gets a constant from a given class."
msgstr "从给定类中获取常量。"

#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml:7
msgid ""
"This node returns a constant from a given class, such as [constant "
"TYPE_INT]. See the given class' documentation for available constants.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]value[/code]"
msgstr ""
"该节点从指定类中返回常量,例如[constant TYPE_INT]。关于可用的常量,请参阅指定"
"类的文档。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]value[/code]"

#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml:19
msgid "The constant's parent class."
msgstr "常量的父类。"

#: modules/visual_script/doc_classes/VisualScriptClassConstant.xml:22
msgid ""
"The constant to return. See the given class for its available constants."
msgstr "要返回的常量。可用的常量参阅给定的类。"

#: modules/visual_script/doc_classes/VisualScriptComment.xml:4
msgid "A Visual Script node used to annotate the script."
msgstr "用于注释脚本的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptComment.xml:7
msgid ""
"A Visual Script node used to display annotations in the script, so that code "
"may be documented.\n"
"Comment nodes can be resized so they encompass a group of nodes."
msgstr ""
"可视化脚本节点,用于显示脚本中的注释,以便记录代码。\n"
"注释节点可以调整大小,以便包含一组节点。"

#: modules/visual_script/doc_classes/VisualScriptComment.xml:16
msgid "The text inside the comment node."
msgstr "注释节点内的文本。"

#: modules/visual_script/doc_classes/VisualScriptComment.xml:19
msgid "The comment node's size (in pixels)."
msgstr "注释节点的大小(以像素为单位)。"

#: modules/visual_script/doc_classes/VisualScriptComment.xml:22
msgid "The comment node's title."
msgstr "注释节点的标题。"

#: modules/visual_script/doc_classes/VisualScriptComposeArray.xml:4
msgid "A Visual Script Node used to create array from a list of items."
msgstr "可视化脚本节点,用于从项目列表中创建数组。"

#: modules/visual_script/doc_classes/VisualScriptComposeArray.xml:7
msgid ""
"A Visual Script Node used to compose array from the list of elements "
"provided with custom in-graph UI hard coded in the VisualScript Editor."
msgstr ""
"可视化脚本节点,用于从可视化脚本编辑器中硬编码的自定义图像内用户界面提供的元"
"素列表中组成数组。"

#: modules/visual_script/doc_classes/VisualScriptCondition.xml:4
msgid "A Visual Script node which branches the flow."
msgstr "可视化脚本节点,它是流程的分支。"

#: modules/visual_script/doc_classes/VisualScriptCondition.xml:7
msgid ""
"A Visual Script node that checks a [bool] input port. If [code]true[/code], "
"it will exit via the \"true\" sequence port. If [code]false[/code], it will "
"exit via the \"false\" sequence port. After exiting either, it exits via the "
"\"done\" port. Sequence ports may be left disconnected.\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]if (cond) is[/code]\n"
"- Data (boolean): [code]cond[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]true[/code]\n"
"- Sequence: [code]false[/code]\n"
"- Sequence: [code]done[/code]"
msgstr ""
"可视化脚本节点,检查一个[bool]输入端口。如果[code]true[/code],它将通过 "
"\"true\" 序列端口退出。如果[code]false[/code],它将通过 \"false\" 序列端口退"
"出。在退出这两种情况后,它通过 \"done\" 端口退出。序列端口可以不连接。\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]if (cond) is[/code]\n"
"- Data (boolean): [code]cond[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]true[/code]\n"
"- Sequence: [code]false[/code]\n"
"- Sequence: [code]done[/code]"

#: modules/visual_script/doc_classes/VisualScriptConstant.xml:4
msgid "Gets a contant's value."
msgstr "获取常量的值。"

#: modules/visual_script/doc_classes/VisualScriptConstant.xml:7
msgid ""
"This node returns a constant's value.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]get[/code]"
msgstr ""
"该节点返回常量的值。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]get[/code]"

#: modules/visual_script/doc_classes/VisualScriptConstant.xml:19
msgid "The constant's type."
msgstr "常量的类型。"

#: modules/visual_script/doc_classes/VisualScriptConstant.xml:22
msgid "The constant's value."
msgstr "常量的值。"

#: modules/visual_script/doc_classes/VisualScriptConstructor.xml:4
msgid "A Visual Script node which calls a base type constructor."
msgstr "可视化脚本节点,调用一个基本类型的构造函数。"

#: modules/visual_script/doc_classes/VisualScriptConstructor.xml:7
msgid ""
"A Visual Script node which calls a base type constructor. It can be used for "
"type conversion as well."
msgstr "可视化脚本节点,调用一个基本类型的构造函数。它也可以用于类型转换。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:4
msgid "A scripted Visual Script node."
msgstr "有脚本的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:7
msgid "A custom Visual Script node which can be scripted in powerful ways."
msgstr "自定义的可视化脚本节点,可以用强大的方式进行脚本编写。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:15
msgid "Return the node's title."
msgstr "返回节点的标题。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:21
msgid "Return the node's category."
msgstr "返回节点的类别。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:27
msgid "Return the count of input value ports."
msgstr "返回输入值端口的数量。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:34
#, fuzzy
msgid ""
"Return the specified input port's hint. See the [enum @GlobalScope."
"PropertyHint] hints."
msgstr "返回指定输入端口的类型。参阅[enum Variant.Type]值。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:41
#, fuzzy
msgid "Return the specified input port's hint string."
msgstr "返回指定的输入端口的名称。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:48
msgid "Return the specified input port's name."
msgstr "返回指定的输入端口的名称。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:55
msgid ""
"Return the specified input port's type. See the [enum Variant.Type] values."
msgstr "返回指定输入端口的类型。参阅[enum Variant.Type]值。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:61
msgid "Return the amount of output [b]sequence[/b] ports."
msgstr "返回输出[b]sequence[/b]序列端口的数量。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:68
msgid "Return the specified [b]sequence[/b] output's name."
msgstr "返回指定的[b]sequence[/b]序列输出的名称。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:74
msgid "Return the amount of output value ports."
msgstr "返回输出值端口的数量。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:81
#, fuzzy
msgid ""
"Return the specified output port's hint. See the [enum @GlobalScope."
"PropertyHint] hints."
msgstr "返回指定输入端口的类型。参阅[enum Variant.Type]值。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:88
#, fuzzy
msgid "Return the specified output port's hint string."
msgstr "返回指定的输入端口的名称。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:95
#, fuzzy
msgid "Return the specified output port's name."
msgstr "返回指定的输入端口的名称。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:102
#, fuzzy
msgid ""
"Return the specified output port's type. See the [enum Variant.Type] values."
msgstr "返回指定输入端口的类型。参阅[enum Variant.Type]值。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:108
msgid ""
"Return the custom node's text, which is shown right next to the input "
"[b]sequence[/b] port (if there is none, on the place that is usually taken "
"by it)."
msgstr ""
"返回自定义节点的文本,就在输入[b]sequence[/b]序列端口旁边显示,如果没有,则在"
"通常被它占用的位置。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:114
msgid ""
"Return the size of the custom node's working memory. See [method _step] for "
"more details."
msgstr "返回自定义节点的运行内存的大小。更多细节参阅 [method _step] 。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:120
msgid "Return whether the custom node has an input [b]sequence[/b] port."
msgstr "返回自定义节点是否有输入[b]sequence[/b]序列端口。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:130
#, fuzzy
msgid ""
"Execute the custom node's logic, returning the index of the output sequence "
"port to use or a [String] when there is an error.\n"
"The [code]inputs[/code] array contains the values of the input ports.\n"
"[code]outputs[/code] is an array whose indices should be set to the "
"respective outputs.\n"
"The [code]start_mode[/code] is usually [constant START_MODE_BEGIN_SEQUENCE], "
"unless you have used the [code]STEP_*[/code] constants.\n"
"[code]working_mem[/code] is an array which can be used to persist "
"information between runs of the custom node. The size needs to be predefined "
"using [method _get_working_memory_size].\n"
"When returning, you can mask the returned value with one of the "
"[code]STEP_*[/code] constants."
msgstr ""
"执行自定义节点的逻辑,返回要使用的输出序列端口的索引,或者在有错误时返回一个"
"[String]。\n"
"[code]inputs[/code]数组包含输入端口的值。\n"
"[code]output[/code]是一个数组,其索引应被设置为相应的输出。\n"
"[code]start_mode[/code]通常是[constant START_MODE_BEGIN_SEQUENCE],除非你使用"
"了[code]STEP_*[/code]常量。\n"
"[code]working_mem[/code]是一个数组,可以用来在自定义节点的运行中持久保存信"
"息。\n"
"当返回时,你可以用[code]STEP_*[/code]中的一个常量来屏蔽返回值。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:141
msgid "The start mode used the first time when [method _step] is called."
msgstr "当[method _step]被调用时,首次使用的启动模式。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:144
msgid ""
"The start mode used when [method _step] is called after coming back from a "
"[constant STEP_PUSH_STACK_BIT]."
msgstr ""
"当从[constant STEP_PUSH_STACK_BIT]返回后调用[method _step]时使用的启动模式。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:147
msgid ""
"The start mode used when [method _step] is called after resuming from "
"[constant STEP_YIELD_BIT]."
msgstr "从[constant STEP_YIELD_BIT]恢复后调用[method _step]时使用的启动模式。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:150
msgid ""
"Hint used by [method _step] to tell that control should return to it when "
"there is no other node left to execute.\n"
"This is used by [VisualScriptCondition] to redirect the sequence to the "
"\"Done\" port after the [code]true[/code]/[code]false[/code] branch has "
"finished execution."
msgstr ""
"由[method _step]使用的提示,告诉控件应该在没有其他节点可以执行时返回给它。\n"
"这被[VisualScriptCondition]用来在[code]true[/code]/[code]false[/code]分支执行"
"完毕后,将序列重定向到 \"Done\" 端口。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:154
msgid ""
"Hint used by [method _step] to tell that control should return back, either "
"hitting a previous [constant STEP_PUSH_STACK_BIT] or exiting the function."
msgstr ""
"由[method _step]使用的提示,告诉控件应该返回,要么命中之前的[constant "
"STEP_PUSH_STACK_BIT],要么退出函数。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:159
msgid ""
"Hint used by [method _step] to tell that control should stop and exit the "
"function."
msgstr "[method _step]用来告诉控件应该停止和退出函数的提示。"

#: modules/visual_script/doc_classes/VisualScriptCustomNode.xml:162
msgid ""
"Hint used by [method _step] to tell that the function should be yielded.\n"
"Using this requires you to have at least one working memory slot, which is "
"used for the [VisualScriptFunctionState]."
msgstr ""
"由[method _step]使用的提示,告诉函数应该被yielded。\n"
"使用这个要求你至少有一个工作存储槽,它被用于[VisualScriptFunctionState]。"

#: modules/visual_script/doc_classes/VisualScriptDeconstruct.xml:4
#: modules/visual_script/doc_classes/VisualScriptDeconstruct.xml:7
msgid ""
"A Visual Script node which deconstructs a base type instance into its parts."
msgstr "可视化脚本节点,它将一个基本类型的实例解构为其各个部分。"

#: modules/visual_script/doc_classes/VisualScriptDeconstruct.xml:15
msgid "The type to deconstruct."
msgstr "要解构的类型。"

#: modules/visual_script/doc_classes/VisualScriptEditor.xml:16
msgid ""
"Add a custom Visual Script node to the editor. It'll be placed under "
"\"Custom Nodes\" with the [code]category[/code] as the parameter."
msgstr ""
"在编辑器中添加自定义可视化脚本节点。它放在 \"自定义节点\" 下,以"
"[code]category[/code]作为参数。"

#: modules/visual_script/doc_classes/VisualScriptEditor.xml:24
msgid ""
"Remove a custom Visual Script node from the editor. Custom nodes already "
"placed on scripts won't be removed."
msgstr ""
"从编辑器中删除一个自定义可视化脚本节点。已经放在脚本上的自定义节点不会被删"
"除。"

#: modules/visual_script/doc_classes/VisualScriptEditor.xml:31
msgid "Emitted when a custom Visual Script node is added or removed."
msgstr "当添加或删除一个自定义可视化脚本节点时触发。"

#: modules/visual_script/doc_classes/VisualScriptEmitSignal.xml:4
msgid "Emits a specified signal."
msgstr "发出指定的信号。"

#: modules/visual_script/doc_classes/VisualScriptEmitSignal.xml:7
msgid ""
"Emits a specified signal when it is executed.\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]emit[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence"
msgstr ""
"当它被执行时发出一个指定的信号。\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]emit[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence"

#: modules/visual_script/doc_classes/VisualScriptEmitSignal.xml:19
msgid "The signal to emit."
msgstr "触发的信号。"

#: modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml:4
#: modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml:7
msgid "A Visual Script node returning a singleton from [@GlobalScope]."
msgstr "从 [@GlobalScope] 返回单例的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml:15
msgid "The singleton's name."
msgstr "单例的名称。"

#: modules/visual_script/doc_classes/VisualScriptExpression.xml:4
#, fuzzy
msgid "A Visual Script node that can execute a custom expression."
msgstr "用于调用内置函数的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptExpression.xml:7
msgid ""
"A Visual Script node that can execute a custom expression. Values can be "
"provided for the input and the expression result can be retrieved from the "
"output."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunction.xml:4
#, fuzzy
msgid "A Visual Script node representing a function."
msgstr "用于调用内置函数的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptFunction.xml:7
msgid ""
"[VisualScriptFunction] represents a function header. It is the starting "
"point for the function body and can be used to tweak the function's "
"properties (e.g. RPC mode)."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:4
#, fuzzy
msgid "A Visual Script node for calling a function."
msgstr "用于调用内置函数的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:7
msgid ""
"[VisualScriptFunctionCall] is created when you add or drag and drop a "
"function onto the Visual Script graph. It allows to tweak parameters of the "
"call, e.g. what object the function is called on."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:15
#, fuzzy
msgid ""
"The script to be used when [member call_mode] is set to [constant "
"CALL_MODE_INSTANCE]."
msgstr "当[member overlay]设置为[constant OVERLAY_POSITION]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:18
#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:15
#, fuzzy
msgid ""
"The base type to be used when [member call_mode] is set to [constant "
"CALL_MODE_INSTANCE]."
msgstr "当[member overlay]设置为[constant OVERLAY_POSITION]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:21
#, fuzzy
msgid ""
"The type to be used when [member call_mode] is set to [constant "
"CALL_MODE_BASIC_TYPE]."
msgstr "当[member overlay]被设置为[constant OVERLAY_BREAKPOINT]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:24
msgid ""
"[code]call_mode[/code] determines the target object on which the method will "
"be called. See [enum CallMode] for options."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:27
#, fuzzy
msgid "The name of the function to be called."
msgstr "要执行的函数。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:30
#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:21
#, fuzzy
msgid ""
"The node path to use when [member call_mode] is set to [constant "
"CALL_MODE_NODE_PATH]."
msgstr "[member mode]为[constant MODE_DEPTH]时的挤出深度。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:33
msgid ""
"The mode for RPC calls. See [method Node.rpc] for more details and [enum "
"RPCCallMode] for available options."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:36
#, fuzzy
msgid ""
"The singleton to call the method on. Used when [member call_mode] is set to "
"[constant CALL_MODE_SINGLETON]."
msgstr "当[member overlay]设置为[constant OVERLAY_POSITION]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:39
msgid ""
"Number of default arguments that will be used when calling the function. "
"Can't be higher than the number of available default arguments in the "
"method's declaration."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:42
#, fuzzy
msgid ""
"If [code]false[/code], call errors (e.g. wrong number of arguments) will be "
"ignored."
msgstr "如果为[code]false[/code],快捷键将被禁用。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:47
#, fuzzy
msgid "The method will be called on this [Object]."
msgstr "注册一个方法,当动作被提交时将被调用。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:50
#, fuzzy
msgid "The method will be called on the given [Node] in the scene tree."
msgstr "节点在场景树中的路径。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:53
msgid ""
"The method will be called on an instanced node with the given type and "
"script."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:56
msgid "The method will be called on a GDScript basic type (e.g. [Vector2])."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:59
#, fuzzy
msgid "The method will be called on a singleton."
msgstr "注册一个方法,当动作被撤销时将被调用。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:62
msgid "The method will be called locally."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:65
msgid "The method will be called remotely."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:68
msgid "The method will be called remotely using an unreliable protocol."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:71
#, fuzzy
msgid "The method will be called remotely for the given peer."
msgstr "返回给定对等体的远程端口。"

#: modules/visual_script/doc_classes/VisualScriptFunctionCall.xml:74
#, fuzzy
msgid ""
"The method will be called remotely for the given peer, using an unreliable "
"protocol."
msgstr "使用不可靠的协议远程更改其他对等点(和本地)上的属性值。"

#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml:4
#, fuzzy
msgid "A Visual Script node representing a function state."
msgstr "一个可视化脚本节点,表示基本类型中的一个常量。"

#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml:7
msgid ""
"[VisualScriptFunctionState] is returned from [VisualScriptYield] and can be "
"used to resume a paused function call."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml:18
msgid ""
"Connects this [VisualScriptFunctionState] to a signal in the given object to "
"automatically resume when it's emitted."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml:24
#, fuzzy
msgid "Returns whether the function state is valid."
msgstr "返回该空间是否是活动的。"

#: modules/visual_script/doc_classes/VisualScriptFunctionState.xml:31
msgid "Resumes the function to run from the point it was yielded."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml:4
#: modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml:7
#, fuzzy
msgid "A Visual Script node returning a constant from [@GlobalScope]."
msgstr "从 [@GlobalScope] 返回单例的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml:15
#, fuzzy
msgid "The constant to be used."
msgstr "常量的类型。"

#: modules/visual_script/doc_classes/VisualScriptIndexGet.xml:4
#, fuzzy
msgid "A Visual Script node for getting a value from an array or a dictionary."
msgstr "从 [@GlobalScope] 返回单例的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptIndexGet.xml:7
msgid ""
"[VisualScriptIndexGet] will return the value stored in an array or a "
"dictionary under the given index."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptIndexSet.xml:4
#, fuzzy
msgid "A Visual Script node for setting a value in an array or a dictionary."
msgstr "一个可视化脚本节点,表示基本类型中的一个常量。"

#: modules/visual_script/doc_classes/VisualScriptIndexSet.xml:7
msgid ""
"[VisualScriptIndexSet] will set the value stored in an array or a dictionary "
"under the given index to the provided new value."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:4
#, fuzzy
msgid "A Visual Script node returning a state of an action."
msgstr "从 [@GlobalScope] 返回单例的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:7
msgid ""
"[VisualScriptInputAction] can be used to check if an action is pressed or "
"released."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:15
#, fuzzy
msgid "Name of the action."
msgstr "重做上一个动作。"

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:18
#, fuzzy
msgid "State of the action to check. See [enum Mode] for options."
msgstr "要计算的函数。选项参阅[enum Function]。"

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:23
#, fuzzy
msgid "[code]True[/code] if action is pressed."
msgstr "如果图像被压缩,返回[code]true[/code]。"

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:26
#, fuzzy
msgid "[code]True[/code] if action is released (i.e. not pressed)."
msgstr "如果这个按钮当前被按下,则返回[code]true[/code]。"

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:29
#, fuzzy
msgid "[code]True[/code] on the frame the action was pressed."
msgstr "如果 [code]true[/code],则更新远程节点的旋转。"

#: modules/visual_script/doc_classes/VisualScriptInputAction.xml:32
#, fuzzy
msgid "[code]True[/code] on the frame the action was released."
msgstr "如果[code]true[/code],TreeItem树项被折叠。"

#: modules/visual_script/doc_classes/VisualScriptIterator.xml:4
msgid "Steps through items in a given input."
msgstr "在给定输入中进行步骤项。"

#: modules/visual_script/doc_classes/VisualScriptIterator.xml:7
msgid ""
"This node steps through each item in a given input. Input can be any "
"sequence data type, such as an [Array] or [String]. When each item has been "
"processed, execution passed out the [code]exit[/code] Sequence port.\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]for (elem) in (input)[/code]\n"
"- Data (variant): [code]input[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]each[/code]\n"
"- Sequence: [code]exit[/code]\n"
"- Data (variant): [code]elem[/code]"
msgstr ""
"这个节点在给定的输入中逐项进行。输入可以是任何序列数据类型,如[Array]或"
"[String]。当每个项被处理完后,执行传出[code]exit[/code] 序列端口。\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]for (elem) in (input)[/code]\n"
"- Data (variant): [code]input[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]each[/code]\n"
"- Sequence: [code]exit[/code]\n"
"- Data (variant): [code]elem[/code]"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:4
msgid "A Visual Script virtual class for in-graph editable nodes."
msgstr "图内可编辑节点的可视化脚本虚拟类。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:7
#, fuzzy
msgid ""
"A Visual Script virtual class that defines the shape and the default "
"behavior of the nodes that have to be in-graph editable nodes."
msgstr "一个可视化脚本虚拟类,用于定义必须是图内可编辑节点的形状和默认行为。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:18
#, fuzzy
msgid "Adds an input port to the Visual Script node."
msgstr "有脚本的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:27
#, fuzzy
msgid "Adds an output port to the Visual Script node."
msgstr "向可视化脚本的函数添加节点。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:34
#, fuzzy
msgid "Removes an input port from the Visual Script node."
msgstr "移除直线上的所有点。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:41
#, fuzzy
msgid "Removes an output port from the Visual Script node."
msgstr "移除直线上的所有点。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:49
#, fuzzy
msgid "Sets the name of an input port."
msgstr "通过索引获取输入的名称。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:57
#, fuzzy
msgid "Sets the type of an input port."
msgstr "获取轨道的类型。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:65
#, fuzzy
msgid "Sets the name of an output port."
msgstr "通过索引获取输入的名称。"

#: modules/visual_script/doc_classes/VisualScriptLists.xml:73
#, fuzzy
msgid "Sets the type of an output port."
msgstr "获取轨道的类型。"

#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml:4
msgid "Gets a local variable's value."
msgstr "获取局部变量的值。"

#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml:7
msgid ""
"Returns a local variable's value. \"Var Name\" must be supplied, with an "
"optional type.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]get[/code]"
msgstr ""
"返回局部变量的值。必须提供 \"Var Name\",并提供可选类型。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]get[/code]"

#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml:19
#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml:21
msgid "The local variable's type."
msgstr "局部变量的类型。"

#: modules/visual_script/doc_classes/VisualScriptLocalVar.xml:22
#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml:24
msgid "The local variable's name."
msgstr "局部变量的名称。"

#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml:4
msgid "Changes a local variable's value."
msgstr "更改局部变量的值。"

#: modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml:7
msgid ""
"Changes a local variable's value to the given input. The new value is also "
"provided on an output Data port.\n"
"[b]Input Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]set[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]get[/code]"
msgstr ""
"将一个局部变量的值更改为给定的输入值。新的值也会在输出端提供数据端口。\n"
"[b]Input Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]set[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]get[/code]"

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:4
msgid "Commonly used mathematical constants."
msgstr "常用的数学常量。"

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:7
msgid ""
"Provides common math constants, such as Pi, on an output Data port.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]get[/code]"
msgstr ""
"在输出数据端口上提供常见的数学常量,如Pi等。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]get[/code]"

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:19
msgid "The math constant."
msgstr "数学常量。"

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:24
msgid "Unity: [code]1[/code]."
msgstr "Unity: [code]1[/code]."

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:27
msgid "Pi: [code]3.141593[/code]."
msgstr "Pi: [code]3.141593[/code]."

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:30
msgid "Pi divided by two: [code]1.570796[/code]."
msgstr "Pi除以2: [code]1.570796[/code]."

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:33
msgid "Tau: [code]6.283185[/code]."
msgstr "Tau: [code]6.283185[/code]."

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:36
msgid ""
"Mathematical constant [code]e[/code], the natural log base: [code]2.718282[/"
"code]."
msgstr "数学常量[code]e[/code],自然对数基数。[code]2.718282[/code]."

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:39
msgid "Square root of two: [code]1.414214[/code]."
msgstr "2的平方根:[code]1.414214[/code]。"

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:42
msgid "Infinity: [code]inf[/code]."
msgstr "无穷大:[code]inf[/code]。"

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:45
msgid "Not a number: [code]nan[/code]."
msgstr "不是数字: [code]nan[/code]。"

#: modules/visual_script/doc_classes/VisualScriptMathConstant.xml:48
msgid "Represents the size of the [enum MathConstant] enum."
msgstr "表示[enum MathConstant]枚举的大小。"

#: modules/visual_script/doc_classes/VisualScriptNode.xml:4
msgid "A node which is part of a [VisualScript]."
msgstr "属于[VisualScript]的一个节点。"

#: modules/visual_script/doc_classes/VisualScriptNode.xml:7
msgid ""
"A node which is part of a [VisualScript]. Not to be confused with [Node], "
"which is a part of a [SceneTree]."
msgstr ""
"属于[VisualScript]的一个节点。不要与[Node]混淆,后者是[SceneTree]的一部分。"

#: modules/visual_script/doc_classes/VisualScriptNode.xml:16
msgid ""
"Returns the default value of a given port. The default value is used when "
"nothing is connected to the port."
msgstr "返回给定端口的默认值。当没有任何东西连接到该端口时,就使用默认值。"

#: modules/visual_script/doc_classes/VisualScriptNode.xml:22
msgid "Returns the [VisualScript] instance the node is bound to."
msgstr "返回该节点所绑定的[VisualScript]实例。"

#: modules/visual_script/doc_classes/VisualScriptNode.xml:28
msgid ""
"Notify that the node's ports have changed. Usually used in conjunction with "
"[VisualScriptCustomNode] ."
msgstr "通知节点的端口已经更改。通常与 [VisualScriptCustomNode] 结合使用。"

#: modules/visual_script/doc_classes/VisualScriptNode.xml:36
msgid "Change the default value of a given port."
msgstr "更改给定端口的默认值。"

#: modules/visual_script/doc_classes/VisualScriptNode.xml:43
msgid "Emitted when the available input/output ports are changed."
msgstr "当可用的输入/输出端口更改时触发。"

#: modules/visual_script/doc_classes/VisualScriptOperator.xml:4
#, fuzzy
msgid "A Visual Script node that performs an operation on two values."
msgstr "可视化脚本节点,用于从项目列表中创建数组。"

#: modules/visual_script/doc_classes/VisualScriptOperator.xml:7
msgid ""
"[b]Input Ports:[/b]\n"
"- Data (variant): [code]A[/code]\n"
"- Data (variant): [code]B[/code]\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]result[/code]"
msgstr ""
"[b]Input Ports:[/b]\n"
"- Data (variant): [code]A[/code]\n"
"- Data (variant): [code]B[/code]\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]result[/code]"

#: modules/visual_script/doc_classes/VisualScriptOperator.xml:19
#, fuzzy
msgid ""
"The operation to be performed. See [enum Variant.Operator] for available "
"options."
msgstr "要使用的运算符。参阅[enum Operator]的选项。"

#: modules/visual_script/doc_classes/VisualScriptOperator.xml:22
#, fuzzy
msgid ""
"The type of the values for this operation. See [enum Variant.Type] for "
"available options."
msgstr "在比较中要使用的类型。参阅[enum ComparisonType]的选项。"

#: modules/visual_script/doc_classes/VisualScriptPreload.xml:4
msgid "Creates a new [Resource] or loads one from the filesystem."
msgstr "创建新的[Resource]或从文件系统加载一个。"

#: modules/visual_script/doc_classes/VisualScriptPreload.xml:7
msgid ""
"Creates a new [Resource] or loads one from the filesystem.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (object): [code]res[/code]"
msgstr ""
"创建新的[Resource]或从文件系统加载一个。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (object): [code]res[/code]"

#: modules/visual_script/doc_classes/VisualScriptPreload.xml:19
msgid "The [Resource] to load."
msgstr "要加载的[Resource]资源。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:4
#, fuzzy
msgid "A Visual Script node returning a value of a property from an [Object]."
msgstr "从 [@GlobalScope] 返回单例的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:7
msgid ""
"[VisualScriptPropertyGet] can return a value of any property from the "
"current object or other objects."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:15
#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:18
#, fuzzy
msgid ""
"The script to be used when [member set_mode] is set to [constant "
"CALL_MODE_INSTANCE]."
msgstr "当[member overlay]设置为[constant OVERLAY_POSITION]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:18
#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:21
#, fuzzy
msgid ""
"The base type to be used when [member set_mode] is set to [constant "
"CALL_MODE_INSTANCE]."
msgstr "当[member overlay]设置为[constant OVERLAY_POSITION]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:21
#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:24
#, fuzzy
msgid ""
"The type to be used when [member set_mode] is set to [constant "
"CALL_MODE_BASIC_TYPE]."
msgstr "当[member overlay]被设置为[constant OVERLAY_BREAKPOINT]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:24
msgid ""
"The indexed name of the property to retrieve. See [method Object."
"get_indexed] for details."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:27
#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:30
#, fuzzy
msgid ""
"The node path to use when [member set_mode] is set to [constant "
"CALL_MODE_NODE_PATH]."
msgstr "[member mode]为[constant MODE_DEPTH]时的挤出深度。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:30
#, fuzzy
msgid ""
"The name of the property to retrieve. Changing this will clear [member "
"index]."
msgstr "高度图数据的深度。更改此设置将调整 [member map_data] 的大小。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:33
msgid ""
"[code]set_mode[/code] determines the target object from which the property "
"will be retrieved. See [enum CallMode] for options."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:38
#, fuzzy
msgid "The property will be retrieved from this [Object]."
msgstr "当属性从属性检查器中移除时触发。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:41
#, fuzzy
msgid "The property will be retrieved from the given [Node] in the scene tree."
msgstr "将属性序列化并保存到场景文件中(默认)。"

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:44
msgid ""
"The property will be retrieved from an instanced node with the given type "
"and script."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertyGet.xml:47
msgid ""
"The property will be retrieved from a GDScript basic type (e.g. [Vector2])."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:4
#, fuzzy
msgid "A Visual Script node that sets a property of an [Object]."
msgstr "用于注释脚本的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:7
msgid ""
"[VisualScriptPropertySet] can set the value of any property from the current "
"object or other objects."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:15
#, fuzzy
msgid ""
"The additional operation to perform when assigning. See [enum AssignOp] for "
"options."
msgstr "要执行的函数。参阅[enum Function]的选项。"

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:27
msgid ""
"The indexed name of the property to set. See [method Object.set_indexed] for "
"details."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:33
#, fuzzy
msgid ""
"The name of the property to set. Changing this will clear [member index]."
msgstr "高度图数据的深度。更改此设置将调整 [member map_data] 的大小。"

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:36
msgid ""
"[code]set_mode[/code] determines the target object on which the property "
"will be set. See [enum CallMode] for options."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:41
#, fuzzy
msgid "The property will be set on this [Object]."
msgstr "该属性在编辑器的检查器中已经勾选。"

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:44
#, fuzzy
msgid "The property will be set on the given [Node] in the scene tree."
msgstr "将属性序列化并保存到场景文件中(默认)。"

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:47
msgid ""
"The property will be set on an instanced node with the given type and script."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:50
msgid "The property will be set on a GDScript basic type (e.g. [Vector2])."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:53
msgid "The property will be assigned regularly."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:56
msgid ""
"The value will be added to the property. Equivalent of doing [code]+=[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:59
msgid ""
"The value will be subtracted from the property. Equivalent of doing [code]-"
"=[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:62
msgid ""
"The property will be multiplied by the value. Equivalent of doing [code]*=[/"
"code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:65
msgid ""
"The property will be divided by the value. Equivalent of doing [code]/=[/"
"code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:68
msgid ""
"A modulo operation will be performed on the property and the value. "
"Equivalent of doing [code]%=[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:71
msgid ""
"The property will be binarly shifted to the left by the given value. "
"Equivalent of doing [code]<<[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:74
msgid ""
"The property will be binarly shifted to the right by the given value. "
"Equivalent of doing [code]>>[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:77
msgid ""
"A binary [code]AND[/code] operation will be performed on the property. "
"Equivalent of doing [code]&=[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:80
msgid ""
"A binary [code]OR[/code] operation will be performed on the property. "
"Equivalent of doing [code]|=[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptPropertySet.xml:83
msgid ""
"A binary [code]XOR[/code] operation will be performed on the property. "
"Equivalent of doing [code]^=[/code]."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptReturn.xml:4
msgid "Exits a function and returns an optional value."
msgstr "退出函数并返回可选的值。"

#: modules/visual_script/doc_classes/VisualScriptReturn.xml:7
msgid ""
"Ends the execution of a function and returns control to the calling "
"function. Optionally, it can return a [Variant] value.\n"
"[b]Input Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]result[/code] (optional)\n"
"[b]Output Ports:[/b]\n"
"none"
msgstr ""
"结束一个函数的执行并将控制权返回给调用函数。可选,它可以返回一个[Variant]"
"值。\n"
"[b]Input Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]result[/code] (optional)\n"
"[b]Output Ports:[/b]\n"
"none"

#: modules/visual_script/doc_classes/VisualScriptReturn.xml:20
msgid "If [code]true[/code], the [code]return[/code] input port is available."
msgstr "如果[code]true[/code],则[code]return[/code]输入端口可用。"

#: modules/visual_script/doc_classes/VisualScriptReturn.xml:23
msgid "The return value's data type."
msgstr "返回值的数据类型。"

#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml:4
msgid "Node reference."
msgstr "节点参考。"

#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml:7
msgid ""
"A direct reference to a node.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data: [code]node[/code] (obj)"
msgstr ""
"对节点的直接引用。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data: [code]node[/code] (obj)"

#: modules/visual_script/doc_classes/VisualScriptSceneNode.xml:19
msgid "The node's path in the scene tree."
msgstr "节点在场景树中的路径。"

#: modules/visual_script/doc_classes/VisualScriptSceneTree.xml:4
#: modules/visual_script/doc_classes/VisualScriptSceneTree.xml:7
#, fuzzy
msgid "A Visual Script node for accessing [SceneTree] methods."
msgstr "可视化脚本节点,它是流程的分支。"

#: modules/visual_script/doc_classes/VisualScriptSelect.xml:4
msgid "Chooses between two input values."
msgstr "在两个输入值之间进行选择。"

#: modules/visual_script/doc_classes/VisualScriptSelect.xml:7
msgid ""
"Chooses between two input values based on a Boolean condition.\n"
"[b]Input Ports:[/b]\n"
"- Data (boolean): [code]cond[/code]\n"
"- Data (variant): [code]a[/code]\n"
"- Data (variant): [code]b[/code]\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]out[/code]"
msgstr ""
"根据一个布尔条件在两个输入值之间进行选择。\n"
"[b]Input Ports:[/b]\n"
"- Data (boolean): [code]cond[/code]\n"
"- Data (variant): [code]a[/code]\n"
"- Data (variant): [code]b[/code]\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]out[/code]"

#: modules/visual_script/doc_classes/VisualScriptSelect.xml:21
msgid "The input variables' type."
msgstr "输入变量的类型。"

#: modules/visual_script/doc_classes/VisualScriptSelf.xml:4
msgid "Outputs a reference to the current instance."
msgstr "输出当前实例的引用。"

#: modules/visual_script/doc_classes/VisualScriptSelf.xml:7
msgid ""
"Provides a reference to the node running the visual script.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (object): [code]instance[/code]"
msgstr ""
"提供对运行可视化脚本的节点的引用。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (object): [code]instance[/code]"

#: modules/visual_script/doc_classes/VisualScriptSequence.xml:4
msgid "Executes a series of Sequence ports."
msgstr "执行一系列序列端口。"

#: modules/visual_script/doc_classes/VisualScriptSequence.xml:7
msgid ""
"Steps through a series of one or more output Sequence ports. The "
"[code]current[/code] data port outputs the currently executing item.\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]in order[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]1[/code]\n"
"- Sequence: [code]2 - n[/code] (optional)\n"
"- Data (int): [code]current[/code]"
msgstr ""
"通过一系列的一个或多个输出序列端口进行步进。[code]current[/code]当前数据端口"
"输出当前执行的项。\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]in order[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]1[/code]\n"
"- Sequence: [code]2 - n[/code] (optional)\n"
"- Data (int): [code]current[/code]"

#: modules/visual_script/doc_classes/VisualScriptSequence.xml:21
msgid "The number of steps in the sequence."
msgstr "序列中的步骤数。"

#: modules/visual_script/doc_classes/VisualScriptSubCall.xml:4
#, fuzzy
msgid "Calls a method called [code]_subcall[/code] in this object."
msgstr "在给定对象中创建一个名为 [code]signal_name[/code] 的新信号。"

#: modules/visual_script/doc_classes/VisualScriptSubCall.xml:7
msgid ""
"[VisualScriptSubCall] will call method named [code]_subcall[/code] in the "
"current script. It will fail if the method doesn't exist or the provided "
"arguments are wrong."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptSubCall.xml:16
msgid "Called by this node."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptSwitch.xml:4
msgid "Branches program flow based on a given input's value."
msgstr "根据给定的输入值来分支程序流。"

#: modules/visual_script/doc_classes/VisualScriptSwitch.xml:7
msgid ""
"Branches the flow based on an input's value. Use [b]Case Count[/b] in the "
"Inspector to set the number of branches and each comparison's optional "
"type.\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]'input' is[/code]\n"
"- Data (variant): [code]=[/code]\n"
"- Data (variant): [code]=[/code] (optional)\n"
"- Data (variant): [code]input[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence\n"
"- Sequence (optional)\n"
"- Sequence: [code]done[/code]"
msgstr ""
"根据输入值来分支流程。在属性检查器中使用[b]Case Count[/b]来设置分支的数量和每"
"个比较的可选类型。\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]'input' is[/code]\n"
"- Data (variant): [code]=[/code]\n"
"- Data (variant): [code]=[/code] (optional)\n"
"- Data (variant): [code]input[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence\n"
"- Sequence (optional)\n"
"- Sequence: [code]done[/code]"

#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml:4
#, fuzzy
msgid "A Visual Script node that casts the given value to another type."
msgstr "用于注释脚本的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml:7
msgid ""
"[VisualScriptTypeCast] will perform a type conversion to an [Object]-derived "
"type."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml:15
msgid ""
"The target script class to be converted to. If none, only the [member "
"base_type] will be used."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptTypeCast.xml:18
#, fuzzy
msgid "The target type to be converted to."
msgstr "要解构的类型。"

#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml:4
msgid "Gets a variable's value."
msgstr "获取变量的值。"

#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml:7
msgid ""
"Returns a variable's value. \"Var Name\" must be supplied, with an optional "
"type.\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]value[/code]"
msgstr ""
"返回变量的值。必须提供 \"Var Name\",并有一个可选的类型。\n"
"[b]Input Ports:[/b]\n"
"none\n"
"[b]Output Ports:[/b]\n"
"- Data (variant): [code]value[/code]"

#: modules/visual_script/doc_classes/VisualScriptVariableGet.xml:19
#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml:20
msgid "The variable's name."
msgstr "变量的名称。"

#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml:4
msgid "Changes a variable's value."
msgstr "更改变量值。"

#: modules/visual_script/doc_classes/VisualScriptVariableSet.xml:7
msgid ""
"Changes a variable's value to the given input.\n"
"[b]Input Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]set[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence"
msgstr ""
"将变量的值更改为给定的输入。\n"
"[b]Input Ports:[/b]\n"
"- Sequence\n"
"- Data (variant): [code]set[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence"

#: modules/visual_script/doc_classes/VisualScriptWhile.xml:4
msgid "Conditional loop."
msgstr "条件循环。"

#: modules/visual_script/doc_classes/VisualScriptWhile.xml:7
msgid ""
"Loops while a condition is [code]true[/code]. Execution continues out the "
"[code]exit[/code] Sequence port when the loop terminates.\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]while(cond)[/code]\n"
"- Data (bool): [code]cond[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]repeat[/code]\n"
"- Sequence: [code]exit[/code]"
msgstr ""
"当一个条件为[code]true[/code]时进行循环。当循环结束时,执行继续从[code]exit[/"
"code]序列端口出来。\n"
"[b]Input Ports:[/b]\n"
"- Sequence: [code]while(cond)[/code]\n"
"- Data (bool): [code]cond[/code]\n"
"[b]Output Ports:[/b]\n"
"- Sequence: [code]repeat[/code]\n"
"- Sequence: [code]exit[/code]"

#: modules/visual_script/doc_classes/VisualScriptYield.xml:4
#, fuzzy
msgid "A Visual Script node used to pause a function execution."
msgstr "用于调用内置函数的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptYield.xml:7
msgid ""
"[VisualScriptYield] will pause the function call and return "
"[VisualScriptFunctionState], which can be used to resume the function."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptYield.xml:15
#, fuzzy
msgid ""
"The mode to use for yielding. See [enum YieldMode] for available options."
msgstr "要执行的函数。参阅[enum Function]的选项。"

#: modules/visual_script/doc_classes/VisualScriptYield.xml:18
#, fuzzy
msgid "The time to wait when [member mode] is set to [constant YIELD_WAIT]."
msgstr "当[member overlay]被设置为[constant OVERLAY_BREAKPOINT]时使用的背景。"

#: modules/visual_script/doc_classes/VisualScriptYield.xml:23
msgid "Yields during an idle frame."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptYield.xml:26
#, fuzzy
msgid "Yields during a physics frame."
msgstr "此帧期间的绘制调用数。"

#: modules/visual_script/doc_classes/VisualScriptYield.xml:29
#, fuzzy
msgid "Yields a function and waits the given time."
msgstr "返回指定名称的动画节点。"

#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:4
#, fuzzy
msgid "A Visual Script node yielding for a signal."
msgstr "用于注释脚本的可视化脚本节点。"

#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:7
msgid ""
"[VisualScriptYieldSignal] will pause the function execution until the "
"provided signal is emitted."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:18
#, fuzzy
msgid ""
"[code]call_mode[/code] determines the target object to wait for the signal "
"emission. See [enum CallMode] for options."
msgstr "决定何时显示下划线。参见[enum UnderlineMode]的选项。"

#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:24
#, fuzzy
msgid "The signal name to be waited for."
msgstr "触发的信号。"

#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:29
msgid "A signal from this [Object] will be used."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:32
msgid "A signal from the given [Node] in the scene tree will be used."
msgstr ""

#: modules/visual_script/doc_classes/VisualScriptYieldSignal.xml:35
msgid "A signal from an instanced node with the given type will be used."
msgstr ""

#: doc/classes/VisualServer.xml:4
msgid "Server for anything visible."
msgstr "任何可见的东西的服务器。"

#: doc/classes/VisualServer.xml:7
#, fuzzy
msgid ""
"Server for anything visible. The visual server is the API backend for "
"everything visible. The whole scene system mounts on it to display.\n"
"The visual server is completely opaque, the internals are entirely "
"implementation specific and cannot be accessed.\n"
"The visual server can be used to bypass the scene system entirely.\n"
"Resources are created using the [code]*_create[/code] functions.\n"
"All objects are drawn to a viewport. You can use the [Viewport] attached to "
"the [SceneTree] or you can create one yourself with [method "
"viewport_create]. When using a custom scenario or canvas, the scenario or "
"canvas needs to be attached to the viewport using [method "
"viewport_set_scenario] or [method viewport_attach_canvas].\n"
"In 3D, all visual objects must be associated with a scenario. The scenario "
"is a visual representation of the world. If accessing the visual server from "
"a running game, the scenario can be accessed from the scene tree from any "
"[Spatial] node with [method Spatial.get_world]. Otherwise, a scenario can be "
"created with [method scenario_create].\n"
"Similarly, in 2D, a canvas is needed to draw all canvas items.\n"
"In 3D, all visible objects are comprised of a resource and an instance. A "
"resource can be a mesh, a particle system, a light, or any other 3D object. "
"In order to be visible resources must be attached to an instance using "
"[method instance_set_base]. The instance must also be attached to the "
"scenario using [method instance_set_scenario] in order to be visible.\n"
"In 2D, all visible objects are some form of canvas item. In order to be "
"visible, a canvas item needs to be the child of a canvas attached to a "
"viewport, or it needs to be the child of another canvas item that is "
"eventually attached to the canvas."
msgstr ""
"任何可见事物的服务器。渲染服务器是所有可见事物的API后端。整个场景系统都安装在"
"它上面来显示。\n"
"渲染服务器是完全不透明的,其内部结构完全是特定的实现,不能被访问。\n"
"渲染服务器可以被用来完全绕过场景系统。\n"
"资源是使用[code]*_create[/code]函数创建的。\n"
"所有对象都被绘制到视口中。你可以使用附在[SceneTree]上的[Viewport],或者你可以"
"用[method viewport_create]自己创建一个。当使用自定义场景或画布时,需要使用"
"[method viewport_set_scenario]或[method viewport_attach_canvas]将场景或画布附"
"加到视口上。\n"
"在3D中,所有的视觉对象都必须与一个场景相关联。场景是世界的一个视觉表现。如果"
"从一个正在运行的游戏中访问渲染服务器,可以通过[method Node3D.get_world_3d]从"
"场景树中的任何[Node3D]节点访问场景。否则,可以用[method scenario_create]创建"
"一个场景。\n"
"类似地,在2D中,需要一个画布来绘制所有的画布项目。\n"
"在3D中,所有可见的对象都是由一个资源和一个实例组成的。一个资源可以是一个网"
"格、一个粒子系统、一个光或任何其他3D对象。为了使资源可见,必须使用[method "
"instance_set_base]连接到一个实例。实例也必须使用[method "
"instance_set_scenario]附加到场景中,以便可见。\n"
"在2D中,所有可见对象都是某种形式的画布项目。为了可见,一个画布项需要是连接到"
"视口的画布的子项,或者它需要是最终连接到画布的另一个画布项的子项。"

#: doc/classes/VisualServer.xml:18
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/optimization/using_servers.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/optimization/"
"using_servers.html"

#: doc/classes/VisualServer.xml:28
msgid "Sets images to be rendered in the window margin."
msgstr "设置在窗口边缘渲染的图像。"

#: doc/classes/VisualServer.xml:38
msgid ""
"Sets margin size, where black bars (or images, if [method "
"black_bars_set_images] was used) are rendered."
msgstr ""
"设置边距大小,其中呈现黑条(或图像,如果使用 [method "
"black_bars_set_images])。"

#: doc/classes/VisualServer.xml:44
#, fuzzy
msgid ""
"Creates a camera and adds it to the VisualServer. It can be accessed with "
"the RID that is returned. This RID will be used in all [code]camera_*[/code] "
"VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个相机并将其添加到 RenderingServer。可以使用返回的 RID 访问它。此 RID "
"将用于所有 [code]camera_*[/code] RenderingServer 功能。\n"
"完成 RID 后,您将希望使用 RenderingServer 的 [method free_rid] 静态方法释放 "
"RID。"

#: doc/classes/VisualServer.xml:53
#, fuzzy
msgid ""
"Sets the cull mask associated with this camera. The cull mask describes "
"which 3D layers are rendered by this camera. Equivalent to [member Camera."
"cull_mask]."
msgstr ""
"设置与此摄像机相关的遮罩。遮罩描述了哪些三维图层是由这个相机渲染的。等同于"
"[member Camera3D.cull_mask]。"

#: doc/classes/VisualServer.xml:61
#, fuzzy
msgid ""
"Sets the environment used by this camera. Equivalent to [member Camera."
"environment]."
msgstr "设置此相机所使用的环境。等同于[[member Camera3D.environment]。"

#: doc/classes/VisualServer.xml:72
msgid ""
"Sets camera to use frustum projection. This mode allows adjusting the "
"[code]offset[/code] argument to create \"tilted frustum\" effects."
msgstr ""
"设置相机使用锥形投影。此模式允许调整 [code]offset[/code] 参数以创建“倾斜视"
"锥”效果。"

#: doc/classes/VisualServer.xml:82
msgid ""
"Sets camera to use orthogonal projection, also known as orthographic "
"projection. Objects remain the same size on the screen no matter how far "
"away they are."
msgstr ""
"将摄像机设置为使用正交投影,也称为正射投影。物体在屏幕上保持相同的尺寸,无论"
"它们有多远。"

#: doc/classes/VisualServer.xml:92
msgid ""
"Sets camera to use perspective projection. Objects on the screen becomes "
"smaller when they are far away."
msgstr "将摄像机设置为使用透视投影。屏幕上的物体在远处时变得更小。"

#: doc/classes/VisualServer.xml:100
msgid "Sets [Transform] of camera."
msgstr "设置相机的[Transform]。"

#: doc/classes/VisualServer.xml:108
#, fuzzy
msgid ""
"If [code]true[/code], preserves the horizontal aspect ratio which is "
"equivalent to [constant Camera.KEEP_WIDTH]. If [code]false[/code], preserves "
"the vertical aspect ratio which is equivalent to [constant Camera."
"KEEP_HEIGHT]."
msgstr ""
"如果[code]true[/code],保留水平长宽比,相当于[constant Camera3D.KEEP_WIDTH]。"
"如果[code]false[/code],保留垂直长宽比,相当于[constant Camera3D."
"KEEP_HEIGHT]。"

#: doc/classes/VisualServer.xml:114
#, fuzzy
msgid ""
"Creates a canvas and returns the assigned [RID]. It can be accessed with the "
"RID that is returned. This RID will be used in all [code]canvas_*[/code] "
"VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个画布并返回指定的[RID]。可以用返回的RID来访问它。这个RID将被用于所有的"
"[code]canvas_*[/code] RenderingServer函数中。\n"
"你可以使用RenderingServer的[method free_rid]这一静态方法释放RID。"

#: doc/classes/VisualServer.xml:125
#, fuzzy
msgid "Adds a circle command to the [CanvasItem]'s draw commands."
msgstr "清除[CanvasItem]并删除其中的所有命令。"

#: doc/classes/VisualServer.xml:133
#, fuzzy
msgid ""
"If ignore is [code]true[/code], the VisualServer does not perform clipping."
msgstr "如果[code]true[/code],标签使用BBCode格式。"

#: doc/classes/VisualServer.xml:145
#, fuzzy
msgid "Adds a line command to the [CanvasItem]'s draw commands."
msgstr "为 [CanvasItem] 设置新材质。"

#: doc/classes/VisualServer.xml:157
#, fuzzy
msgid "Adds a mesh command to the [CanvasItem]'s draw commands."
msgstr "为 [CanvasItem] 设置新材质。"

#: doc/classes/VisualServer.xml:167
msgid ""
"Adds a [MultiMesh] to the [CanvasItem]'s draw commands. Only affects its "
"aabb at the moment."
msgstr ""

#: doc/classes/VisualServer.xml:184
msgid ""
"Adds a nine patch image to the [CanvasItem]'s draw commands.\n"
"See [NinePatchRect] for more explanation."
msgstr ""

#: doc/classes/VisualServer.xml:195
msgid "Adds a particle system to the [CanvasItem]'s draw commands."
msgstr ""

#: doc/classes/VisualServer.xml:208
#, fuzzy
msgid "Adds a polygon to the [CanvasItem]'s draw commands."
msgstr "清除[CanvasItem]并删除其中的所有命令。"

#: doc/classes/VisualServer.xml:219
msgid ""
"Adds a polyline, which is a line from multiple points with a width, to the "
"[CanvasItem]'s draw commands."
msgstr ""

#: doc/classes/VisualServer.xml:232
#, fuzzy
msgid "Adds a primitive to the [CanvasItem]'s draw commands."
msgstr "清除[CanvasItem]并删除其中的所有命令。"

#: doc/classes/VisualServer.xml:241
#, fuzzy
msgid "Adds a rectangle to the [CanvasItem]'s draw commands."
msgstr "为 [CanvasItem] 设置新材质。"

#: doc/classes/VisualServer.xml:249
msgid ""
"Adds a [Transform2D] command to the [CanvasItem]'s draw commands.\n"
"This sets the extra_matrix uniform when executed. This affects the later "
"commands of the canvas item."
msgstr ""

#: doc/classes/VisualServer.xml:263
#, fuzzy
msgid "Adds a textured rect to the [CanvasItem]'s draw commands."
msgstr "为[BitmapFont]添加一个纹理。"

#: doc/classes/VisualServer.xml:277
msgid ""
"Adds a texture rect with region setting to the [CanvasItem]'s draw commands."
msgstr ""

#: doc/classes/VisualServer.xml:295
#, fuzzy
msgid "Adds a triangle array to the [CanvasItem]'s draw commands."
msgstr "为 [CanvasItem] 设置新材质。"

#: doc/classes/VisualServer.xml:302
msgid "Clears the [CanvasItem] and removes all commands in it."
msgstr "清除[CanvasItem]并删除其中的所有命令。"

#: doc/classes/VisualServer.xml:308
#, fuzzy
msgid ""
"Creates a new [CanvasItem] and returns its [RID]. It can be accessed with "
"the RID that is returned. This RID will be used in all [code]canvas_item_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个画布并返回指定的[RID]。可以用返回的RID来访问它。这个RID将被用于所有的"
"[code]canvas_*[/code] RenderingServer函数中。\n"
"你可以使用RenderingServer的[method free_rid]这一静态方法释放RID。"

#: doc/classes/VisualServer.xml:317
#, fuzzy
msgid "Sets clipping for the [CanvasItem]."
msgstr "设置 [CanvasItem] 的索引。"

#: doc/classes/VisualServer.xml:326
msgid "Sets the [CanvasItem] to copy a rect to the backbuffer."
msgstr "设置 [CanvasItem] 以将矩形复制到后台缓冲区。"

#: doc/classes/VisualServer.xml:335
#, fuzzy
msgid "Defines a custom drawing rectangle for the [CanvasItem]."
msgstr "设置 [CanvasItem] 的索引。"

#: doc/classes/VisualServer.xml:343
msgid ""
"Enables the use of distance fields for GUI elements that are rendering "
"distance field based fonts."
msgstr ""

#: doc/classes/VisualServer.xml:351
#, fuzzy
msgid "Sets [CanvasItem] to be drawn behind its parent."
msgstr "如果[code]true[/code],则对象在其父对象后面绘制。"

#: doc/classes/VisualServer.xml:359
msgid "Sets the index for the [CanvasItem]."
msgstr "设置 [CanvasItem] 的索引。"

#: doc/classes/VisualServer.xml:367 doc/classes/VisualServer.xml:493
#: doc/classes/VisualServer.xml:549
msgid ""
"The light mask. See [LightOccluder2D] for more information on light masks."
msgstr "光线遮罩。关于其更多信息,请参见[LightOccluder2D]。"

#: doc/classes/VisualServer.xml:375
msgid "Sets a new material to the [CanvasItem]."
msgstr "为 [CanvasItem] 设置新材质。"

#: doc/classes/VisualServer.xml:383
#, fuzzy
msgid "Sets the color that modulates the [CanvasItem] and its children."
msgstr "设置画布灯的阴影颜色。"

#: doc/classes/VisualServer.xml:391
msgid ""
"Sets the parent for the [CanvasItem]. The parent can be another canvas item, "
"or it can be the root canvas that is attached to the viewport."
msgstr ""

#: doc/classes/VisualServer.xml:399
#, fuzzy
msgid "Sets the color that modulates the [CanvasItem] without children."
msgstr "设置画布灯的阴影颜色。"

#: doc/classes/VisualServer.xml:407
msgid "Sets if [CanvasItem]'s children should be sorted by y-position."
msgstr ""

#: doc/classes/VisualServer.xml:415
#, fuzzy
msgid "Sets the [CanvasItem]'s [Transform2D]."
msgstr "设置画布灯的 [Transform2D]。"

#: doc/classes/VisualServer.xml:423
msgid "Sets if the [CanvasItem] uses its parent's material."
msgstr "设置 [CanvasItem] 是否使用其父级的材质。"

#: doc/classes/VisualServer.xml:431
#, fuzzy
msgid "Sets if the canvas item (including its children) is visible."
msgstr "如果[CanvasItem]当前可见,则隐藏它。"

#: doc/classes/VisualServer.xml:439
msgid ""
"If this is enabled, the Z index of the parent will be added to the "
"children's Z index."
msgstr "如果启用此选项,则父项的 Z 索引将添加到子项的 Z 索引中。"

#: doc/classes/VisualServer.xml:447
msgid ""
"Sets the [CanvasItem]'s Z index, i.e. its draw order (lower indexes are "
"drawn first)."
msgstr ""
"设置 [CanvasItem] 的 Z 索引,即它的绘制顺序(首先绘制数值较低的索引)。"

#: doc/classes/VisualServer.xml:455
msgid ""
"Attaches the canvas light to the canvas. Removes it from its previous canvas."
msgstr "将画布灯连接到画布上,并将其从以前的画布中取出。"

#: doc/classes/VisualServer.xml:461
#, fuzzy
msgid ""
"Creates a canvas light and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID will be used in all "
"[code]canvas_light_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个canvas light并将其添加到RenderingServer。它可以通过返回的RID被访问。"
"这个RID将在所有[code]canvas_light_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。"

#: doc/classes/VisualServer.xml:470
msgid ""
"Attaches a light occluder to the canvas. Removes it from its previous canvas."
msgstr "将光遮挡物添加到画布上,并将其从之前的画布中移除。"

#: doc/classes/VisualServer.xml:476
#, fuzzy
msgid ""
"Creates a light occluder and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID will be used in all "
"[code]canvas_light_ocluder_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个光遮蔽器并将其添加到RenderingServer中。它可以通过返回的RID被访问。这"
"个RID将在所有[code]canvas_light_ocluder_*[/code] RenderingServer函数中使"
"用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。"

#: doc/classes/VisualServer.xml:485
msgid "Enables or disables light occluder."
msgstr "启用或禁用遮光器。"

#: doc/classes/VisualServer.xml:501
msgid "Sets a light occluder's polygon."
msgstr "设置光遮挡物的多边形。"

#: doc/classes/VisualServer.xml:509
msgid "Sets a light occluder's [Transform2D]."
msgstr "设置光遮挡物的 [Transform2D]。"

#: doc/classes/VisualServer.xml:517
msgid "Sets the color for a light."
msgstr "设置灯光的颜色。"

#: doc/classes/VisualServer.xml:525
msgid "Enables or disables a canvas light."
msgstr "启用或禁用画布灯。"

#: doc/classes/VisualServer.xml:533
msgid "Sets a canvas light's energy."
msgstr "设置画布灯的能量。"

#: doc/classes/VisualServer.xml:541
msgid "Sets a canvas light's height."
msgstr "设置画布灯的高度。"

#: doc/classes/VisualServer.xml:557
msgid ""
"The binary mask used to determine which layers this canvas light's shadows "
"affects. See [LightOccluder2D] for more information on light masks."
msgstr ""
"用于确定此画布灯光阴影影响哪些图层的二进制蒙版。有关光遮罩的更多信息,请参见 "
"[LightOccluder2D]。"

#: doc/classes/VisualServer.xml:566
msgid "The layer range that gets rendered with this light."
msgstr "使用此灯光渲染的图层范围。"

#: doc/classes/VisualServer.xml:574
msgid "The mode of the light, see [enum CanvasLightMode] constants."
msgstr "光的模式,详见[enum CanvasLightMode]。"

#: doc/classes/VisualServer.xml:582
msgid ""
"Sets the texture's scale factor of the light. Equivalent to [member Light2D."
"texture_scale]."
msgstr "设置灯光的纹理比例因子。相当于 [member Light2D.texture_scale]。"

#: doc/classes/VisualServer.xml:590
msgid ""
"Sets the width of the shadow buffer, size gets scaled to the next power of "
"two for this."
msgstr "设置阴影缓冲区的宽度,大小为2的n次幂。"

#: doc/classes/VisualServer.xml:598
msgid "Sets the color of the canvas light's shadow."
msgstr "设置画布灯的阴影颜色。"

#: doc/classes/VisualServer.xml:606
msgid "Enables or disables the canvas light's shadow."
msgstr "启用或禁用画布灯的阴影。"

#: doc/classes/VisualServer.xml:614
msgid ""
"Sets the canvas light's shadow's filter, see [enum CanvasLightShadowFilter] "
"constants."
msgstr "设置画布灯的阴影过滤器,详见 [enum CanvasLightShadowFilter] 。"

#: doc/classes/VisualServer.xml:622
#, fuzzy
msgid "Sets the length of the shadow's gradient."
msgstr "返回音频流的长度,单位为秒。"

#: doc/classes/VisualServer.xml:630
msgid "Smoothens the shadow. The lower, the smoother."
msgstr "使阴影变得平滑。数值越低越光滑。"

#: doc/classes/VisualServer.xml:638
msgid ""
"Sets texture to be used by light. Equivalent to [member Light2D.texture]."
msgstr "设置灯光使用的纹理。等同于[member Light2D.texture]。"

#: doc/classes/VisualServer.xml:646
msgid ""
"Sets the offset of the light's texture. Equivalent to [member Light2D."
"offset]."
msgstr "设置灯光纹理的偏移量。等同于[member Light2D.offset]。"

#: doc/classes/VisualServer.xml:654
msgid "Sets the canvas light's [Transform2D]."
msgstr "设置画布灯的 [Transform2D]。"

#: doc/classes/VisualServer.xml:663
msgid ""
"Sets the Z range of objects that will be affected by this light. Equivalent "
"to [member Light2D.range_z_min] and [member Light2D.range_z_max]."
msgstr ""
"设置将受此光影响的对象的 Z 范围。相当于 [member Light2D.range_z_min] 和 "
"[member Light2D.range_z_max]。"

#: doc/classes/VisualServer.xml:669
#, fuzzy
msgid ""
"Creates a new light occluder polygon and adds it to the VisualServer. It can "
"be accessed with the RID that is returned. This RID will be used in all "
"[code]canvas_occluder_polygon_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个新的光遮挡多边形并将其添加到 RenderingServer。可以使用返回的 RID 访问"
"它。此 RID 将用于所有 [code]canvas_occluder_polygon_*[/code] RenderingServer "
"函数。\n"
"你可以使用 RenderingServer 的 [method free_rid] 静态方法释放 RID。"

#: doc/classes/VisualServer.xml:678
msgid ""
"Sets an occluder polygons cull mode. See [enum "
"CanvasOccluderPolygonCullMode] constants."
msgstr "设置遮挡多边形剔除模式。详见 [enum CanvasOccluderPolygonCullMode] 。"

#: doc/classes/VisualServer.xml:687
msgid "Sets the shape of the occluder polygon."
msgstr "设置遮挡多边形的形状。"

#: doc/classes/VisualServer.xml:695
msgid "Sets the shape of the occluder polygon as lines."
msgstr "将遮挡多边形的形状设置为线。"

#: doc/classes/VisualServer.xml:704
msgid ""
"A copy of the canvas item will be drawn with a local offset of the mirroring "
"[Vector2]."
msgstr "画布项目的副本将以镜像的局部偏移量[Vector2]被绘制。"

#: doc/classes/VisualServer.xml:712
msgid "Modulates all colors in the given canvas."
msgstr "调制给定画布中的所有颜色。"

#: doc/classes/VisualServer.xml:718
#, fuzzy
msgid ""
"Creates a directional light and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID can be used in most "
"[code]light_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this directional light to an instance using "
"[method instance_set_base] using the returned RID."
msgstr ""
"创建一个方向性灯光并将其添加到RenderingServer中。它可以通过返回的RID被访问。"
"这个RID可以在大多数[code]light_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法来释放RID。\n"
"要放置在场景中,应使用返回的RID,用[method instance_set_base]把这个定向灯附加"
"到一个实例上。"

#: doc/classes/VisualServer.xml:728
msgid ""
"Draws a frame. [i]This method is deprecated[/i], please use [method "
"force_draw] instead."
msgstr ""

#: doc/classes/VisualServer.xml:734
#, fuzzy
msgid ""
"Creates an environment and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID will be used in all "
"[code]environment_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个环境并将其添加到RenderingServer中。它可以通过返回的RID被访问。这个RID"
"将在所有[code]environment_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法来释放RID。"

#: doc/classes/VisualServer.xml:747
msgid ""
"Sets the values to be used with the \"Adjustment\" post-process effect. See "
"[Environment] for more details."
msgstr "设置用于 \"调整 \"后处理效果的数值。参见[Environment]以了解更多细节。"

#: doc/classes/VisualServer.xml:757
#, fuzzy
msgid "Sets the ambient light parameters. See [Environment] for more details."
msgstr "设置用于场景雾化的变量。更多细节见[Environment]。"

#: doc/classes/VisualServer.xml:765
msgid ""
"Sets the [i]BGMode[/i] of the environment. Equivalent to [member Environment."
"background_mode]."
msgstr "设置环境的[i]BGMode[/i]。相当于[member Environment.background_mode]。"

#: doc/classes/VisualServer.xml:773
msgid ""
"Color displayed for clear areas of the scene (if using Custom color or Color"
"+Sky background modes)."
msgstr "场景中空白区域的颜色显示(如果使用自定义颜色或颜色+天空背景模式)。"

#: doc/classes/VisualServer.xml:781
msgid "Sets the intensity of the background color."
msgstr "设置背景颜色的强度。"

#: doc/classes/VisualServer.xml:789
msgid "Sets the maximum layer to use if using Canvas background mode."
msgstr "如果使用画布背景模式,设置要使用的最大层数。"

#: doc/classes/VisualServer.xml:801
#, fuzzy
msgid ""
"Sets the values to be used with the \"DoF Far Blur\" post-process effect. "
"See [Environment] for more details."
msgstr "设置用于 \"调整 \"后处理效果的数值。参见[Environment]以了解更多细节。"

#: doc/classes/VisualServer.xml:813
#, fuzzy
msgid ""
"Sets the values to be used with the \"DoF Near Blur\" post-process effect. "
"See [Environment] for more details."
msgstr ""
"设置用于 \"tonemap \"后处理效果的变量。参见[Environment]以了解更多细节。"

#: doc/classes/VisualServer.xml:824
msgid ""
"Sets the variables to be used with the scene fog. See [Environment] for more "
"details."
msgstr "设置用于场景雾化的变量。更多细节见[Environment]。"

#: doc/classes/VisualServer.xml:837
msgid ""
"Sets the variables to be used with the fog depth effect. See [Environment] "
"for more details."
msgstr "设置用于雾化深度效果的变量。参见[Environment]以了解更多细节。"

#: doc/classes/VisualServer.xml:848
msgid ""
"Sets the variables to be used with the fog height effect. See [Environment] "
"for more details."
msgstr "设置用于雾化高度效果的变量。参见[Environment]以了解更多细节。"

#: doc/classes/VisualServer.xml:865
#, fuzzy
msgid ""
"Sets the variables to be used with the \"glow\" post-process effect. See "
"[Environment] for more details."
msgstr ""
"设置用于 \"tonemap \"后处理效果的变量。参见[Environment]以了解更多细节。"

#: doc/classes/VisualServer.xml:873
#, fuzzy
msgid ""
"Sets the [Sky] to be used as the environment's background when using "
"[i]BGMode[/i] sky. Equivalent to [member Environment.background_sky]."
msgstr ""
"当使用[i]BGMode[/i]天空时,设置[Sky]作为环境的背景。相当于[member "
"Environment.sky]。"

#: doc/classes/VisualServer.xml:881
#, fuzzy
msgid ""
"Sets a custom field of view for the background [Sky]. Equivalent to [member "
"Environment.background_sky_custom_fov]."
msgstr ""
"为背景[Sky]设置一个自定义视场。相当于[member Environment.sky_custom_fov]。"

#: doc/classes/VisualServer.xml:889
#, fuzzy
msgid ""
"Sets the rotation of the background [Sky] expressed as a [Basis]. Equivalent "
"to [member Environment.background_sky_orientation]."
msgstr ""
"设置以 [Basis] 表示的背景 [Sky] 的旋转。相当于[member Environment."
"sky_rotation],其中旋转向量用于构造[Basis]。"

#: doc/classes/VisualServer.xml:908
#, fuzzy
msgid ""
"Sets the variables to be used with the \"Screen Space Ambient Occlusion "
"(SSAO)\" post-process effect. See [Environment] for more details."
msgstr "设置用于 \"屏幕空间反射 \"后处理效果的变量。更多细节见[Environment]。"

#: doc/classes/VisualServer.xml:921
msgid ""
"Sets the variables to be used with the \"screen space reflections\" post-"
"process effect. See [Environment] for more details."
msgstr "设置用于 \"屏幕空间反射 \"后处理效果的变量。更多细节见[Environment]。"

#: doc/classes/VisualServer.xml:936
msgid ""
"Sets the variables to be used with the \"tonemap\" post-process effect. See "
"[Environment] for more details."
msgstr ""
"设置用于 \"tonemap \"后处理效果的变量。参见[Environment]以了解更多细节。"

#: doc/classes/VisualServer.xml:942
msgid "Removes buffers and clears testcubes."
msgstr "删除缓冲区并清除测试立方体。"

#: doc/classes/VisualServer.xml:950
msgid ""
"Forces a frame to be drawn when the function is called. Drawing a frame "
"updates all [Viewport]s that are set to update. Use with extreme caution."
msgstr ""
"当函数被调用时,强制绘制一个框架。绘制一个框架会更新所有被设置为要更新的"
"[Viewport]。使用时要特别小心。"

#: doc/classes/VisualServer.xml:956
msgid "Synchronizes threads."
msgstr "同步线程。"

#: doc/classes/VisualServer.xml:963
#, fuzzy
msgid "Tries to free an object in the VisualServer."
msgstr "尝试释放 RenderingServer 中的对象。"

#: doc/classes/VisualServer.xml:970
msgid "Returns a certain information, see [enum RenderInfo] for options."
msgstr "返回特定信息,请参阅 [enum RenderInfo] 。"

#: doc/classes/VisualServer.xml:976
msgid "Returns the id of the test cube. Creates one if none exists."
msgstr "返回测试立方体的ID。如果不存在,则创建一个。"

#: doc/classes/VisualServer.xml:982
msgid "Returns the id of the test texture. Creates one if none exists."
msgstr "返回测试纹理的id。如果不存在,则创建一个。"

#: doc/classes/VisualServer.xml:988
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 "
"an empty string."
msgstr ""
"返回视频适配器的名称(例如:\"GeForce GTX 1080/PCIe/SSE2\")。\n"
"[b]注意:[/b]当运行一个无头或服务器可执行文件时,这个函数返回一个空字符串。"

#: doc/classes/VisualServer.xml:995
msgid ""
"Returns the vendor of the video adapter (e.g. \"NVIDIA Corporation\").\n"
"[b]Note:[/b] When running a headless or server binary, this function returns "
"an empty string."
msgstr ""
"返回视频适配器的供应商(例如,\"NVIDIA Corporation\")。\n"
"[b]注意:[/b] 当运行无头或服务器可执行文件时,该函数返回一个空字符串。"

#: doc/classes/VisualServer.xml:1002
msgid "Returns the id of a white texture. Creates one if none exists."
msgstr "返回白色纹理的id。如果不存在,则创建一个。"

#: doc/classes/VisualServer.xml:1008
#, fuzzy
msgid ""
"Creates a GI probe and adds it to the VisualServer. It can be accessed with "
"the RID that is returned. This RID will be used in all [code]gi_probe_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this GI probe to an instance using [method "
"instance_set_base] using the returned RID."
msgstr ""
"创建一个反射探针并将其添加到RenderingServer中。它可以通过返回的RID被访问。这"
"个RID将在所有[code]reflection_probe_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。\n"
"为了放置在场景中,使用返回的RID,用[method instance_set_base]将这个反射探针附"
"加到一个实例上。"

#: doc/classes/VisualServer.xml:1017
msgid ""
"Returns the bias value for the GI probe. Bias is used to avoid self "
"occlusion. Equivalent to [member GIProbeData.bias]."
msgstr ""

#: doc/classes/VisualServer.xml:1024
#, fuzzy
msgid ""
"Returns the axis-aligned bounding box that covers the full extent of the GI "
"probe."
msgstr "返回包含当前帧中所有活动粒子的轴对齐边界盒。"

#: doc/classes/VisualServer.xml:1031
#, fuzzy
msgid "Returns the cell size set by [method gi_probe_set_cell_size]."
msgstr "恢复[method get_state]保存的状态。"

#: doc/classes/VisualServer.xml:1038
#, fuzzy
msgid "Returns the data used by the GI probe."
msgstr "返回分配给该区域的空间。"

#: doc/classes/VisualServer.xml:1045
#, fuzzy
msgid ""
"Returns the dynamic range set for this GI probe. Equivalent to [member "
"GIProbe.dynamic_range]."
msgstr "设置此相机所使用的环境。等同于[[member Camera3D.environment]。"

#: doc/classes/VisualServer.xml:1052
#, fuzzy
msgid ""
"Returns the energy multiplier for this GI probe. Equivalent to [member "
"GIProbe.energy]."
msgstr "设置爆炸率。相当于[member GPUParticles3D.explosiveness]。"

#: doc/classes/VisualServer.xml:1059
#, fuzzy
msgid ""
"Returns the normal bias for this GI probe. Equivalent to [member GIProbe."
"normal_bias]."
msgstr "设置实例的世界空间变换。等同于[member Node3D.transform]。"

#: doc/classes/VisualServer.xml:1066
#, fuzzy
msgid ""
"Returns the propagation value for this GI probe. Equivalent to [member "
"GIProbe.propagation]."
msgstr "设置爆炸率。相当于[member GPUParticles3D.explosiveness]。"

#: doc/classes/VisualServer.xml:1073
#, fuzzy
msgid "Returns the Transform set by [method gi_probe_set_to_cell_xform]."
msgstr "返回由[方法get_closest_point]返回的点的法线。"

#: doc/classes/VisualServer.xml:1080
#, fuzzy
msgid ""
"Returns [code]true[/code] if the GI probe data associated with this GI probe "
"is compressed. Equivalent to [member GIProbe.compress]."
msgstr ""
"如果预加载器包含一个与[code]name[/code]相关的资源,则返回[code]true[/code]。"

#: doc/classes/VisualServer.xml:1087
#, fuzzy
msgid ""
"Returns [code]true[/code] if the GI probe is set to interior, meaning it "
"does not account for sky light. Equivalent to [member GIProbe.interior]."
msgstr ""
"如果 [code]true[/code],反射将忽略天空因素。等效于 [member ReflectionProbe."
"interior]。"

#: doc/classes/VisualServer.xml:1095
#, fuzzy
msgid ""
"Sets the bias value to avoid self-occlusion. Equivalent to [member GIProbe."
"bias]."
msgstr "设置要使用的绘制次数。等同于[member GPUParticles3D.draw_passes]。"

#: doc/classes/VisualServer.xml:1103
#, fuzzy
msgid ""
"Sets the axis-aligned bounding box that covers the extent of the GI probe."
msgstr "返回包含当前帧中所有活动粒子的轴对齐边界盒。"

#: doc/classes/VisualServer.xml:1111
msgid "Sets the size of individual cells within the GI probe."
msgstr ""

#: doc/classes/VisualServer.xml:1119
msgid ""
"Sets the compression setting for the GI probe data. Compressed data will "
"take up less space but may look worse. Equivalent to [member GIProbe."
"compress]."
msgstr ""

#: doc/classes/VisualServer.xml:1127
msgid ""
"Sets the data to be used in the GI probe for lighting calculations. Normally "
"this is created and called internally within the [GIProbe] node. You should "
"not try to set this yourself."
msgstr ""

#: doc/classes/VisualServer.xml:1135
msgid ""
"Sets the dynamic range of the GI probe. Dynamic range sets the limit for how "
"bright lights can be. A smaller range captures greater detail but limits how "
"bright lights can be. Equivalent to [member GIProbe.dynamic_range]."
msgstr ""

#: doc/classes/VisualServer.xml:1143
msgid ""
"Sets the energy multiplier for this GI probe. A higher energy makes the "
"indirect light from the GI probe brighter. Equivalent to [member GIProbe."
"energy]."
msgstr ""

#: doc/classes/VisualServer.xml:1151
msgid ""
"Sets the interior value of this GI probe. A GI probe set to interior does "
"not include the sky when calculating lighting. Equivalent to [member GIProbe."
"interior]."
msgstr ""

#: doc/classes/VisualServer.xml:1159
msgid ""
"Sets the normal bias for this GI probe. Normal bias behaves similar to the "
"other form of bias and may help reduce self-occlusion. Equivalent to [member "
"GIProbe.normal_bias]."
msgstr ""

#: doc/classes/VisualServer.xml:1167
#, fuzzy
msgid ""
"Sets the propagation of light within this GI probe. Equivalent to [member "
"GIProbe.propagation]."
msgstr "设置灯光纹理的偏移量。等同于[member Light2D.offset]。"

#: doc/classes/VisualServer.xml:1175
#, fuzzy
msgid "Sets the to cell [Transform] for this GI probe."
msgstr "设置给定形状所有者的[Transform]。"

#: doc/classes/VisualServer.xml:1181
#, fuzzy
msgid ""
"Returns [code]true[/code] if changes have been made to the VisualServer's "
"data. [method draw] is usually called if this happens."
msgstr ""
"如果对RenderingServer的数据进行了修改,则返回[code]true[/code]。如果发生这种"
"情况,通常会调用[method force_draw]。"

#: doc/classes/VisualServer.xml:1188
msgid "Not yet implemented. Always returns [code]false[/code]."
msgstr "还没有实现。总是返回[code]false[/code]。"

#: doc/classes/VisualServer.xml:1195
#, fuzzy
msgid ""
"Returns [code]true[/code] if the OS supports a certain feature. Features "
"might be [code]s3tc[/code], [code]etc[/code], [code]etc2[/code], "
"[code]pvrtc[/code] and [code]skinning_fallback[/code].\n"
"When rendering with GLES2, returns [code]true[/code] with "
"[code]skinning_fallback[/code] in case the hardware doesn't support the "
"default GPU skinning process."
msgstr ""
"如果操作系统支持某项功能,则返回[code]true[/code]。功能可能是[code]s3tc[/"
"code],[code]etc[/code],[code]etc2[/code]和[code]pvrtc[/code]。"

#: doc/classes/VisualServer.xml:1205
#, fuzzy
msgid ""
"Sets up [ImmediateGeometry] internals to prepare for drawing. Equivalent to "
"[method ImmediateGeometry.begin]."
msgstr ""
"设置[ImmediateGeometry3D]的内部结构,为绘图做准备。相当于[method "
"ImmediateGeometry3D.begin]。"

#: doc/classes/VisualServer.xml:1212
#, fuzzy
msgid ""
"Clears everything that was set up between [method immediate_begin] and "
"[method immediate_end]. Equivalent to [method ImmediateGeometry.clear]."
msgstr ""
"清除在[method immediate_begin]和[method immediate_end]之间设置的一切。相当于"
"[method ImmediateGeometry3D.clear]。"

#: doc/classes/VisualServer.xml:1220
#, fuzzy
msgid ""
"Sets the color to be used with next vertex. Equivalent to [method "
"ImmediateGeometry.set_color]."
msgstr ""
"设置用于下一个顶点的颜色。等效于 [method ImmediateGeometry3D.set_color]。"

#: doc/classes/VisualServer.xml:1226
#, fuzzy
msgid ""
"Creates an immediate geometry and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID will be used in all "
"[code]immediate_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this immediate geometry to an instance using "
"[method instance_set_base] using the returned RID."
msgstr ""
"创建一个即时几何体并将其添加到 RenderingServer。可以使用返回的 RID 访问它。"
"此 RID 将用于所有 [code]immediate_*[/code] RenderingServer 函数。\n"
"你可以使用 RenderingServer 的 [method free_rid] 静态方法释放 RID。\n"
"要放置在场景中,请使用返回的 RID 使用 [method instance_set_base] 将此即时几何"
"体附加到实例。"

#: doc/classes/VisualServer.xml:1235
#, fuzzy
msgid ""
"Ends drawing the [ImmediateGeometry] and displays it. Equivalent to [method "
"ImmediateGeometry.end]."
msgstr ""
"结束绘制[ImmediateGeometry3D]并显示它。相当于[method ImmediateGeometry3D."
"end]。"

#: doc/classes/VisualServer.xml:1242
#, fuzzy
msgid "Returns the material assigned to the [ImmediateGeometry]."
msgstr "返回分配给[ImmediateGeometry3D]的材质。"

#: doc/classes/VisualServer.xml:1250
#, fuzzy
msgid ""
"Sets the normal to be used with next vertex. Equivalent to [method "
"ImmediateGeometry.set_normal]."
msgstr ""
"设置用于下一个顶点的法线。相当于[method ImmediateGeometry3D.set_normal]。"

#: doc/classes/VisualServer.xml:1258
#, fuzzy
msgid "Sets the material to be used to draw the [ImmediateGeometry]."
msgstr "设置用于绘制[ImmediateGeometry3D]的材质。"

#: doc/classes/VisualServer.xml:1266
#, fuzzy
msgid ""
"Sets the tangent to be used with next vertex. Equivalent to [method "
"ImmediateGeometry.set_tangent]."
msgstr ""
"设置将用于下一个顶点的切线。相当于[method ImmediateGeometry3D.set_tangent]。"

#: doc/classes/VisualServer.xml:1274
#, fuzzy
msgid ""
"Sets the UV to be used with next vertex. Equivalent to [method "
"ImmediateGeometry.set_uv]."
msgstr "设置用于下一个顶点的UV。相当于[method ImmediateGeometry3D.set_uv]。"

#: doc/classes/VisualServer.xml:1282
#, fuzzy
msgid ""
"Sets the UV2 to be used with next vertex. Equivalent to [method "
"ImmediateGeometry.set_uv2]."
msgstr "设置用于下一个顶点的UV2。相当于[method ImmediateGeometry3D.set_uv2]。"

#: doc/classes/VisualServer.xml:1290
#, fuzzy
msgid ""
"Adds the next vertex using the information provided in advance. Equivalent "
"to [method ImmediateGeometry.add_vertex]."
msgstr ""
"使用事先提供的信息添加下一个顶点。相当于[method ImmediateGeometry3D."
"add_vertex]。"

#: doc/classes/VisualServer.xml:1298
#, fuzzy
msgid ""
"Adds the next vertex using the information provided in advance. This is a "
"helper class that calls [method immediate_vertex] under the hood. Equivalent "
"to [method ImmediateGeometry.add_vertex]."
msgstr ""
"使用事先提供的信息添加下一个顶点。这是一个在后台调用[method immediate_vertex]"
"的辅助类。相当于[method ImmediateGeometry3D.add_vertex]。"

#: doc/classes/VisualServer.xml:1304
#, fuzzy
msgid ""
"Initializes the visual server. This function is called internally by "
"platform-dependent code during engine initialization. If called from a "
"running game, it will not do anything."
msgstr ""
"初始化渲染服务器。该函数在引擎初始化期间由平台相关代码在内部调用。如果从正在"
"运行的游戏中调用,它不会做任何事情。"

#: doc/classes/VisualServer.xml:1312
msgid ""
"Attaches a unique Object ID to instance. Object ID must be attached to "
"instance for proper culling with [method instances_cull_aabb], [method "
"instances_cull_convex], and [method instances_cull_ray]."
msgstr ""
"将唯一的对象ID附加到实例上。必须将对象ID附加到实例上,以便通过[method "
"instances_cull_aabb]、[method instances_cull_convex]和[method "
"instances_cull_ray]进行正确的筛除。"

#: doc/classes/VisualServer.xml:1320
msgid ""
"Attaches a skeleton to an instance. Removes the previous skeleton from the "
"instance."
msgstr "将骨架附加到实例。并从实例中移除之前骨架。"

#: doc/classes/VisualServer.xml:1326
#, fuzzy
msgid ""
"Creates a visual instance and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID will be used in all "
"[code]instance_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"An instance is a way of placing a 3D object in the scenario. Objects like "
"particles, meshes, and reflection probes need to be associated with an "
"instance to be visible in the scenario using [method instance_set_base]."
msgstr ""
"创建一个可视化实例并将其添加到RenderingServer中。它可以通过返回的RID被访问。"
"这个RID将在所有[code]instance_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。\n"
"一个实例是在场景中放置一个3D对象的方式。像粒子、网格和反射探针这样的对象需要"
"与一个实例相关联,以便使用[method instance_set_base]在场景中可见。"

#: doc/classes/VisualServer.xml:1336
#, fuzzy
msgid ""
"Creates a visual instance, adds it to the VisualServer, 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] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个可视化实例,将其添加到RenderingServer中,并设置基础和场景。可以通过返"
"回的RID来访问它。这个RID将在所有[code]instance_*[/code] RenderingServer函数中"
"使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。"

#: doc/classes/VisualServer.xml:1345 doc/classes/VisualServer.xml:1364
#: doc/classes/VisualServer.xml:1591 doc/classes/VisualServer.xml:2672
msgid "Not implemented in Godot 3.x."
msgstr "在Godot 3.x中没有实现。"

#: doc/classes/VisualServer.xml:1353
#, fuzzy
msgid ""
"Sets the shadow casting setting to one of [enum ShadowCastingSetting]. "
"Equivalent to [member GeometryInstance.cast_shadow]."
msgstr ""
"将阴影投射设置为[enum ShadowCastingSetting]中的一个。等价于[member "
"GeometryInstance3D.cast_shadow]。"

#: doc/classes/VisualServer.xml:1373
msgid ""
"Sets the flag for a given [enum InstanceFlags]. See [enum InstanceFlags] for "
"more details."
msgstr ""
"设置给定的[enum InstanceFlags]标志。更多细节请参见[enum InstanceFlags]。"

#: doc/classes/VisualServer.xml:1381
#, fuzzy
msgid ""
"Sets a material that will override the material for all surfaces on the mesh "
"associated with this instance. Equivalent to [member GeometryInstance."
"material_override]."
msgstr ""
"设置一个材质,覆盖与此实例关联的网格上的所有表面的材质。等同于[member "
"GeometryInstance3D.material_override]。"

#: doc/classes/VisualServer.xml:1389
#, fuzzy
msgid ""
"Sets the base of the instance. A base can be any of the 3D objects that are "
"created in the VisualServer that can be displayed. For example, any of the "
"light types, mesh, multimesh, immediate geometry, particle system, "
"reflection probe, lightmap capture, and the GI probe 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 "
"探针都是可以设置为实例的基础的类型,以便在场景中显示。"

#: doc/classes/VisualServer.xml:1398
msgid "Sets the weight for a given blend shape associated with this instance."
msgstr "设置与该实例相关的特定混合形状的权重。"

#: doc/classes/VisualServer.xml:1406
#, fuzzy
msgid ""
"Sets a custom AABB to use when culling objects from the view frustum. "
"Equivalent to [method GeometryInstance.set_custom_aabb]."
msgstr ""
"设置一个自定义的AABB,当从视图中删除物体时使用。相当于[method "
"GeometryInstance3D.set_custom_aabb]。"

#: doc/classes/VisualServer.xml:1414
msgid "Function not implemented in Godot 3.x."
msgstr "在Godot 3.x中没有实现的功能。"

#: doc/classes/VisualServer.xml:1422
#, fuzzy
msgid ""
"Sets a margin to increase the size of the AABB when culling objects from the "
"view frustum. This allows you to avoid culling objects that fall outside the "
"view frustum. Equivalent to [member GeometryInstance.extra_cull_margin]."
msgstr ""
"设置边距,当从视图中删除物体时,增加AABB的大小。这可以让你避免删除落在视域范"
"围外的物体。等同于[member GeometryInstance3D.extra_cull_margin]。"

#: doc/classes/VisualServer.xml:1430
#, fuzzy
msgid ""
"Sets the render layers that this instance will be drawn to. Equivalent to "
"[member VisualInstance.layers]."
msgstr ""
"设置此实例将被绘制到的渲染层。等效于 [member VisualInstance3D.layers]。"

#: doc/classes/VisualServer.xml:1438
msgid ""
"Sets the scenario that the instance is in. The scenario is the 3D world that "
"the objects will be displayed in."
msgstr "设置实例所在的场景。场景是对象将在其中显示的 3D 世界。"

#: doc/classes/VisualServer.xml:1447
#, fuzzy
msgid ""
"Sets the material of a specific surface. Equivalent to [method MeshInstance."
"set_surface_material]."
msgstr ""
"设置特定表面的材质。相当于[method MeshInstance3D.set_surface_material]。"

#: doc/classes/VisualServer.xml:1455
#, fuzzy
msgid ""
"Sets the world space transform of the instance. Equivalent to [member "
"Spatial.transform]."
msgstr "设置实例的世界空间变换。等同于[member Node3D.transform]。"

#: doc/classes/VisualServer.xml:1466
#, fuzzy
msgid "Sets the lightmap to use with this instance."
msgstr "设置此实例要使用的蒙皮。"

#: doc/classes/VisualServer.xml:1474
#, fuzzy
msgid ""
"Sets whether an instance is drawn or not. Equivalent to [member Spatial."
"visible]."
msgstr "设置一个实例是否被绘制。等同于[member Node3D.visible]。"

#: doc/classes/VisualServer.xml:1482
#, fuzzy
msgid ""
"Returns an array of object IDs intersecting with the provided AABB. Only "
"visual 3D nodes are considered, such as [MeshInstance] or "
"[DirectionalLight]. Use [method @GDScript.instance_from_id] to obtain the "
"actual nodes. A scenario RID must be provided, which is available in the "
"[World] 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数组。只考虑可视化的3D节点,如"
"[MeshInstance3D]或[DirectionalLight3D]。使用[method @GDScript."
"instance_from_id]来获取实际节点。必须提供一个场景的RID,且这个RID在你想查询的"
"[World3D]中是可用的。这将强制更新所有排队等待更新的资源。\n"
"[b]警告:[/b] 这个函数主要用于编辑器的使用。对于游戏中的使用情况,最好使用物"
"理学碰撞。"

#: doc/classes/VisualServer.xml:1491
#, fuzzy
msgid ""
"Returns an array of object IDs intersecting with the provided convex shape. "
"Only visual 3D nodes are considered, such as [MeshInstance] or "
"[DirectionalLight]. Use [method @GDScript.instance_from_id] to obtain the "
"actual nodes. A scenario RID must be provided, which is available in the "
"[World] 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数组。只考虑可视化的3D节点,如"
"[MeshInstance3D]或[DirectionalLight3D]。使用[method @GDScript."
"instance_from_id]来获取实际节点。必须提供一个场景的RID,这个RID在你想查询的"
"[World3D]中是可用的。这将强制更新所有排队等待更新的资源。\n"
"[b]警告:[/b] 这个函数主要用于编辑器的使用。对于游戏中的使用情况,最好使用物"
"理学碰撞。"

#: doc/classes/VisualServer.xml:1501
#, fuzzy
msgid ""
"Returns an array of object IDs intersecting with the provided 3D ray. Only "
"visual 3D nodes are considered, such as [MeshInstance] or "
"[DirectionalLight]. Use [method @GDScript.instance_from_id] to obtain the "
"actual nodes. A scenario RID must be provided, which is available in the "
"[World] 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数组。只考虑可视化的3D节点,如"
"[MeshInstance3D]或[DirectionalLight3D]。使用[method @GDScript."
"instance_from_id]来获取实际节点。必须提供一个场景的RID,且这个RID在你想查询的"
"[World3D]中是可用的。这将强制更新所有排队等待更新的资源。\n"
"[b]警告:[/b] 这个函数主要用于编辑器的使用。对于游戏中的使用情况,最好使用物"
"理学碰撞。"

#: doc/classes/VisualServer.xml:1510
#, fuzzy
msgid ""
"If [code]true[/code], this directional light will blend between shadow map "
"splits resulting in a smoother transition between them. Equivalent to "
"[member DirectionalLight.directional_shadow_blend_splits]."
msgstr ""
"如果 [code]true[/code],此定向光将在阴影贴图分割之间混合,从而使它们之间的过"
"渡更平滑。相当于[member DirectionalLight3D.directional_shadow_blend_splits]。"

#: doc/classes/VisualServer.xml:1518
#, fuzzy
msgid ""
"Sets the shadow depth range mode for this directional light. Equivalent to "
"[member DirectionalLight.directional_shadow_depth_range]. See [enum "
"LightDirectionalShadowDepthRangeMode] for options."
msgstr ""
"设置此平行光的阴影深度范围模式。相当于[member DirectionalLight3D."
"directional_shadow_depth_range]。有关选项,请参阅 [enum "
"LightDirectionalShadowDepthRangeMode]。"

#: doc/classes/VisualServer.xml:1526
#, fuzzy
msgid ""
"Sets the shadow mode for this directional light. Equivalent to [member "
"DirectionalLight.directional_shadow_mode]. See [enum "
"LightDirectionalShadowMode] for options."
msgstr ""
"设置此有向灯光的阴影模式。等同于[member DirectionalLight3D."
"directional_shadow_mode]。参见[enum LightDirectionalShadowMode]的选项。"

#: doc/classes/VisualServer.xml:1534
#, fuzzy
msgid ""
"Sets whether to use vertical or horizontal detail for this omni light. This "
"can be used to alleviate artifacts in the shadow map. Equivalent to [member "
"OmniLight.omni_shadow_detail]."
msgstr ""
"设置阴影贴图是使用双抛物面还是立方体贴图。双抛物面速度更快,但可能会出现伪"
"影。相当于[member OmniLight3D.omni_shadow_mode]。"

#: doc/classes/VisualServer.xml:1542
#, fuzzy
msgid ""
"Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual "
"paraboloid is faster but may suffer from artifacts. Equivalent to [member "
"OmniLight.omni_shadow_mode]."
msgstr ""
"设置阴影贴图是使用双抛物面还是立方体贴图。双抛物面速度更快,但可能会出现伪"
"影。相当于[member OmniLight3D.omni_shadow_mode]。"

#: doc/classes/VisualServer.xml:1550
msgid ""
"Sets the bake mode for this light, see [enum LightBakeMode] for options. The "
"bake mode affects how the light will be baked in [BakedLightmap]s and "
"[GIProbe]s."
msgstr ""

#: doc/classes/VisualServer.xml:1558
#, fuzzy
msgid "Sets the color of the light. Equivalent to [member Light.light_color]."
msgstr "设置灯光的颜色。等同于[member Light3D.light_color]。"

#: doc/classes/VisualServer.xml:1566
#, fuzzy
msgid ""
"Sets the cull mask for this Light. Lights only affect objects in the "
"selected layers. Equivalent to [member Light.light_cull_mask]."
msgstr ""
"为这个 Light3D 设置剔除蒙版。灯光仅影响选定图层中的对象。相当于 [member "
"Light3D.light_cull_mask]。"

#: doc/classes/VisualServer.xml:1574
#, fuzzy
msgid ""
"If [code]true[/code], light will subtract light instead of adding light. "
"Equivalent to [member Light.light_negative]."
msgstr ""
"如果 [code]true[/code],将减去光而不是添加光。相当于 [member Light3D."
"light_negative]。"

#: doc/classes/VisualServer.xml:1583
#, fuzzy
msgid ""
"Sets the specified light parameter. See [enum LightParam] for options. "
"Equivalent to [method Light.set_param]."
msgstr ""
"设置指定的灯光参数。选项见[enum LightParam]。相当于[method Light3D."
"set_param]。"

#: doc/classes/VisualServer.xml:1599
#, fuzzy
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 "
"cast a shadow on both sides of the mesh, set the mesh to use double sided "
"shadows with [method instance_geometry_set_cast_shadows_setting]. Equivalent "
"to [member Light.shadow_reverse_cull_face]."
msgstr ""
"如果[code]true[/code],将反转网格的背面剔除。当你有一个后面有灯光的平坦网格"
"时,这可能很有用。如果你需要在网格的两边都投下阴影,可以用[method "
"instance_geometry_set_cast_shadows_setting]设置网格为使用双面阴影。相当于"
"[member Light3D.shadow_reverse_cull_face]。"

#: doc/classes/VisualServer.xml:1607
#, fuzzy
msgid ""
"If [code]true[/code], light will cast shadows. Equivalent to [member Light."
"shadow_enabled]."
msgstr ""
"如果 [code]true[/code],灯光会投射阴影。相当于 [member Light3D."
"shadow_enabled]。"

#: doc/classes/VisualServer.xml:1615
#, fuzzy
msgid ""
"Sets the color of the shadow cast by the light. Equivalent to [member Light."
"shadow_color]."
msgstr "设置灯光投射的阴影颜色。相当于 [member Light3D.shadow_color]。"

#: doc/classes/VisualServer.xml:1623
msgid ""
"Sets whether GI probes capture light information from this light. "
"[i]Deprecated method.[/i] Use [method light_set_bake_mode] instead. This "
"method is only kept for compatibility reasons and calls [method "
"light_set_bake_mode] internally, setting the bake mode to [constant "
"LIGHT_BAKE_DISABLED] or [constant LIGHT_BAKE_INDIRECT] depending on the "
"given parameter."
msgstr ""

#: doc/classes/VisualServer.xml:1629
#, fuzzy
msgid ""
"Creates a lightmap capture and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID will be used in all "
"[code]lightmap_capture_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this lightmap capture to an instance using "
"[method instance_set_base] using the returned RID."
msgstr ""
"创建一个新的网格并将其添加到RenderingServer。可以用返回的RID来访问它。这个RID"
"将在所有[code]Mesh_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法来释放这个RID。\n"
"要放置在一个场景中,使用返回的RID用[method instance_set_base]将这个网格附加到"
"一个实例上。"

#: doc/classes/VisualServer.xml:1638
#, fuzzy
msgid "Returns the size of the lightmap capture area."
msgstr "返回数组的大小。"

#: doc/classes/VisualServer.xml:1645
#, fuzzy
msgid "Returns the energy multiplier used by the lightmap capture."
msgstr "返回一个被矩阵转换(乘法)的向量。"

#: doc/classes/VisualServer.xml:1652
#, fuzzy
msgid "Returns the octree used by the lightmap capture."
msgstr "返回指定参数使用的[Texture2D]。"

#: doc/classes/VisualServer.xml:1659
msgid ""
"Returns the cell subdivision amount used by this lightmap capture's octree."
msgstr ""

#: doc/classes/VisualServer.xml:1666
#, fuzzy
msgid "Returns the cell transform for this lightmap capture's octree."
msgstr "返回此项目画布的变换矩阵。"

#: doc/classes/VisualServer.xml:1673
#, fuzzy
msgid "Returns [code]true[/code] if capture is in \"interior\" mode."
msgstr "如果场景文件有节点,返回[code]true[/code]。"

#: doc/classes/VisualServer.xml:1681
#, fuzzy
msgid ""
"Sets the size of the area covered by the lightmap capture. Equivalent to "
"[member BakedLightmapData.bounds]."
msgstr "设置灯光纹理的偏移量。等同于[member Light2D.offset]。"

#: doc/classes/VisualServer.xml:1689
#, fuzzy
msgid ""
"Sets the energy multiplier for this lightmap capture. Equivalent to [member "
"BakedLightmapData.energy]."
msgstr "设置灯光纹理的偏移量。等同于[member Light2D.offset]。"

#: doc/classes/VisualServer.xml:1697
#, fuzzy
msgid ""
"Sets the \"interior\" mode for this lightmap capture. Equivalent to [member "
"BakedLightmapData.interior]."
msgstr "设置灯光的颜色。等同于[member Light3D.light_color]。"

#: doc/classes/VisualServer.xml:1705
msgid ""
"Sets the octree to be used by this lightmap capture. This function is "
"normally used by the [BakedLightmap] node. Equivalent to [member "
"BakedLightmapData.octree]."
msgstr ""

#: doc/classes/VisualServer.xml:1713
#, fuzzy
msgid ""
"Sets the subdivision level of this lightmap capture's octree. Equivalent to "
"[member BakedLightmapData.cell_subdiv]."
msgstr "设置灯光纹理的偏移量。等同于[member Light2D.offset]。"

#: doc/classes/VisualServer.xml:1721
#, fuzzy
msgid ""
"Sets the octree cell transform for this lightmap capture's octree. "
"Equivalent to [member BakedLightmapData.cell_space_transform]."
msgstr "设置实例的世界空间变换。等同于[member Node3D.transform]。"

#: doc/classes/VisualServer.xml:1730
msgid ""
"Returns a mesh of a sphere with the given amount of horizontal and vertical "
"subdivisions."
msgstr "返回具有给定水平和垂直细分的球体网格。"

#: doc/classes/VisualServer.xml:1736
#, fuzzy
msgid ""
"Creates an empty material and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID will be used in all "
"[code]material_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个空材质并将其添加到 RenderingServer。可以使用返回的 RID 访问它。此 "
"RID 将用于所有 [code]material_*[/code] RenderingServer 函数。\n"
"可以使用 RenderingServer 的 [method free_rid] 静态方法释放 RID。"

#: doc/classes/VisualServer.xml:1745
msgid "Returns the value of a certain material's parameter."
msgstr "返回特定材质的参数值。"

#: doc/classes/VisualServer.xml:1753
#, fuzzy
msgid ""
"Returns the default value for the param if available. Otherwise returns an "
"empty [Variant]."
msgstr "返回指定 [enum Margin] 的默认值。"

#: doc/classes/VisualServer.xml:1760
msgid ""
"Returns the shader of a certain material's shader. Returns an empty RID if "
"the material doesn't have a shader."
msgstr ""

#: doc/classes/VisualServer.xml:1768
#, fuzzy
msgid "Sets a material's line width."
msgstr "设置材质的渲染优先级。"

#: doc/classes/VisualServer.xml:1776
msgid "Sets an object's next material."
msgstr "设置对象的下一个材质。"

#: doc/classes/VisualServer.xml:1785
msgid "Sets a material's parameter."
msgstr "设置材质的参数。"

#: doc/classes/VisualServer.xml:1793
msgid "Sets a material's render priority."
msgstr "设置材质的渲染优先级。"

#: doc/classes/VisualServer.xml:1801
msgid "Sets a shader material's shader."
msgstr "设置着色器材质的着色器。"

#: doc/classes/VisualServer.xml:1812
msgid ""
"Adds a surface generated from the Arrays to a mesh. See [enum PrimitiveType] "
"constants for types."
msgstr ""

#: doc/classes/VisualServer.xml:1819
msgid "Removes all surfaces from a mesh."
msgstr "移除网格中的所有表面。"

#: doc/classes/VisualServer.xml:1825
#, fuzzy
msgid ""
"Creates a new mesh and adds it to the VisualServer. It can be accessed with "
"the RID that is returned. This RID will be used in all [code]mesh_*[/code] "
"VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this mesh to an instance using [method "
"instance_set_base] using the returned RID."
msgstr ""
"创建一个新的网格并将其添加到RenderingServer。可以用返回的RID来访问它。这个RID"
"将在所有[code]Mesh_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法来释放这个RID。\n"
"要放置在一个场景中,使用返回的RID用[method instance_set_base]将这个网格附加到"
"一个实例上。"

#: doc/classes/VisualServer.xml:1834
msgid "Returns a mesh's blend shape count."
msgstr "返回一个网格的混合形状数量。"

#: doc/classes/VisualServer.xml:1841
msgid "Returns a mesh's blend shape mode."
msgstr "返回网格的混合形状模式。"

#: doc/classes/VisualServer.xml:1848
msgid "Returns a mesh's custom aabb."
msgstr "返回网格的自定义 AABB。"

#: doc/classes/VisualServer.xml:1855
msgid "Returns a mesh's number of surfaces."
msgstr "返回网格的面数。"

#: doc/classes/VisualServer.xml:1863
#, fuzzy
msgid "Removes a mesh's surface."
msgstr "设置网格表面的材质。"

#: doc/classes/VisualServer.xml:1871
#, fuzzy
msgid "Sets a mesh's blend shape count."
msgstr "返回一个网格的混合形状数量。"

#: doc/classes/VisualServer.xml:1879
msgid "Sets a mesh's blend shape mode."
msgstr "设置网格的混合形状模式。"

#: doc/classes/VisualServer.xml:1887
msgid "Sets a mesh's custom aabb."
msgstr "设置网格的自定义 AABB。"

#: doc/classes/VisualServer.xml:1895
#, fuzzy
msgid "Returns a mesh's surface's aabb."
msgstr "返回网格表面的材质。"

#: doc/classes/VisualServer.xml:1903
#, fuzzy
msgid "Returns a mesh's surface's vertex buffer."
msgstr "返回网格表面的缓冲区数组。"

#: doc/classes/VisualServer.xml:1911
#, fuzzy
msgid "Returns a mesh's surface's amount of indices."
msgstr "返回网格表面的材质。"

#: doc/classes/VisualServer.xml:1919
#, fuzzy
msgid "Returns a mesh's surface's amount of vertices."
msgstr "返回网格表面的材质。"

#: doc/classes/VisualServer.xml:1927
msgid "Returns a mesh's surface's buffer arrays."
msgstr "返回网格表面的缓冲区数组。"

#: doc/classes/VisualServer.xml:1935
msgid "Returns a mesh's surface's arrays for blend shapes."
msgstr "返回网格表面的混合形状数组。"

#: doc/classes/VisualServer.xml:1943
#, fuzzy
msgid "Returns the format of a mesh's surface."
msgstr "返回图块形状的偏移量。"

#: doc/classes/VisualServer.xml:1953
msgid "Function is unused in Godot 3.x."
msgstr "这个函数在 Godot 3.x 中未使用。"

#: doc/classes/VisualServer.xml:1970
#, fuzzy
msgid "Returns a mesh's surface's index buffer."
msgstr "返回网格表面的缓冲区数组。"

#: doc/classes/VisualServer.xml:1978
msgid "Returns a mesh's surface's material."
msgstr "返回网格表面的材质。"

#: doc/classes/VisualServer.xml:1986
#, fuzzy
msgid "Returns the primitive type of a mesh's surface."
msgstr "返回着色器的参数。"

#: doc/classes/VisualServer.xml:1994
#, fuzzy
msgid "Returns the aabb of a mesh's surface's skeleton."
msgstr "返回网格表面的材质。"

#: doc/classes/VisualServer.xml:2003
msgid "Sets a mesh's surface's material."
msgstr "设置网格表面的材质。"

#: doc/classes/VisualServer.xml:2013
msgid ""
"Updates a specific region of a vertex buffer for the specified surface. "
"Warning: this function alters the vertex buffer directly with no safety "
"mechanisms, you can easily corrupt your mesh."
msgstr ""
"更新指定曲面的顶点缓冲区的一个特定区域。警告:这个函数直接改变了顶点缓冲区,"
"没有安全机制,你很容易破坏你的网格。"

#: doc/classes/VisualServer.xml:2024
msgid ""
"Allocates space for the multimesh data. Format parameters determine how the "
"data will be stored by OpenGL. See [enum MultimeshTransformFormat], [enum "
"MultimeshColorFormat], and [enum MultimeshCustomDataFormat] for usage. "
"Equivalent to [member MultiMesh.instance_count]."
msgstr ""

#: doc/classes/VisualServer.xml:2030
#, fuzzy
msgid ""
"Creates a new multimesh on the VisualServer and returns an [RID] handle. "
"This RID will be used in all [code]multimesh_*[/code] VisualServer "
"functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this multimesh to an instance using [method "
"instance_set_base] using the returned RID."
msgstr ""
"在RenderingServer上创建一个新的multimesh并返回一个[RID]句柄。这个RID将在所有"
"[code]multimesh_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。\n"
"要放置在一个场景中,使用返回的RID用[method instance_set_base]将这个multimesh"
"附加到一个实例上。"

#: doc/classes/VisualServer.xml:2039
msgid ""
"Calculates and returns the axis-aligned bounding box that encloses all "
"instances within the multimesh."
msgstr ""
"计算并返回轴对齐的边界框(包围盒),该边界框(包围盒)将所有的实例都包含在"
"multimesh中。"

#: doc/classes/VisualServer.xml:2046
msgid "Returns the number of instances allocated for this multimesh."
msgstr "返回分配给这个multimesh的实例的数量。"

#: doc/classes/VisualServer.xml:2053
msgid ""
"Returns the RID of the mesh that will be used in drawing this multimesh."
msgstr "返回用于绘制此multimesh的RID。"

#: doc/classes/VisualServer.xml:2060
msgid "Returns the number of visible instances for this multimesh."
msgstr "返回此multimesh的可见实例数。"

#: doc/classes/VisualServer.xml:2068
msgid "Returns the color by which the specified instance will be modulated."
msgstr "返回指定实例将被调制的颜色。"

#: doc/classes/VisualServer.xml:2076
msgid "Returns the custom data associated with the specified instance."
msgstr "返回与指定实例相关的自定义数据。"

#: doc/classes/VisualServer.xml:2084
msgid "Returns the [Transform] of the specified instance."
msgstr "返回指定实例的[Transform]。"

#: doc/classes/VisualServer.xml:2092
msgid ""
"Returns the [Transform2D] of the specified instance. For use when the "
"multimesh is set to use 2D transforms."
msgstr "返回指定实例的 [Transform2D]。只在multimesh设置为使用 2D 变换时使用。"

#: doc/classes/VisualServer.xml:2101
msgid ""
"Sets the color by which this instance will be modulated. Equivalent to "
"[method MultiMesh.set_instance_color]."
msgstr "设置这个实例的调制颜色。等同于[method MultiMesh.set_instance_color]。"

#: doc/classes/VisualServer.xml:2110
msgid ""
"Sets the custom data for this instance. Custom data is passed as a [Color], "
"but is interpreted as a [code]vec4[/code] in the shader. Equivalent to "
"[method MultiMesh.set_instance_custom_data]."
msgstr ""
"为这个实例设置自定义数据。自定义数据以[Color]的形式传递,但在着色器中会被解释"
"为[code]vec4[/code]。等同于[method MultiMesh.set_instance_custom_data]。"

#: doc/classes/VisualServer.xml:2119
msgid ""
"Sets the [Transform] for this instance. Equivalent to [method MultiMesh."
"set_instance_transform]."
msgstr ""
"设置此实例的 [Transform]。相当于[method MultiMesh.set_instance_transform]。"

#: doc/classes/VisualServer.xml:2128
msgid ""
"Sets the [Transform2D] for this instance. For use when multimesh is used in "
"2D. Equivalent to [method MultiMesh.set_instance_transform_2d]."
msgstr ""
"为此实例设置 [Transform2D]。用于在 2D 中使用multimesh时。相当于[method "
"MultiMesh.set_instance_transform_2d]。"

#: doc/classes/VisualServer.xml:2136
msgid ""
"Sets all data related to the instances in one go. This is especially useful "
"when loading the data from disk or preparing the data from GDNative.\n"
"\n"
"All data is packed in one large float array. An array may look like this: "
"Transform for instance 1, color data for instance 1, custom data for "
"instance 1, transform for instance 2, color data for instance 2, etc.\n"
"\n"
"[Transform] is stored as 12 floats, [Transform2D] is stored as 8 floats, "
"[code]COLOR_8BIT[/code] / [code]CUSTOM_DATA_8BIT[/code] is stored as 1 float "
"(4 bytes as is) and [code]COLOR_FLOAT[/code] / [code]CUSTOM_DATA_FLOAT[/"
"code] is stored as 4 floats."
msgstr ""

#: doc/classes/VisualServer.xml:2148
msgid ""
"Sets the mesh to be drawn by the multimesh. Equivalent to [member MultiMesh."
"mesh]."
msgstr "设置Multimesh所要绘制的网格。等同于 [member MultiMesh.mesh]。"

#: doc/classes/VisualServer.xml:2156
msgid ""
"Sets the number of instances visible at a given time. If -1, all instances "
"that have been allocated are drawn. Equivalent to [member MultiMesh."
"visible_instance_count]."
msgstr ""
"设置在给定时间内可见的实例的数量。如果是-1,所有被分配的实例都会被画出来。等"
"同于[member MultiMesh.visible_instance_count]。"

#: doc/classes/VisualServer.xml:2162
#, fuzzy
msgid ""
"Creates a new omni light and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID can be used in most [code]light_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this omni light to an instance using [method "
"instance_set_base] using the returned RID."
msgstr ""
"创建一个新的泛光灯并把它添加到RenderingServer中。它可以通过返回的RID被访问。"
"这个RID可以在大多数[code]light_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。\n"
"为了在场景中放置,使用返回的RID,用[method instance_set_base]把这个泛光灯附加"
"到一个实例上。"

#: doc/classes/VisualServer.xml:2170
#, fuzzy
msgid ""
"Creates a particle system and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID will be used in all "
"[code]particles_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach these particles to an instance using [method "
"instance_set_base] using the returned RID."
msgstr ""
"创建一个粒子系统并将其添加到RenderingServer。它可以通过返回的RID被访问。这个"
"RID将在所有的[code]particles_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。\n"
"要放置在场景中,使用返回的RID,用[method instance_set_base]将这些粒子附加到一"
"个实例上。"

#: doc/classes/VisualServer.xml:2179
#, fuzzy
msgid ""
"Calculates and returns the axis-aligned bounding box that contains all the "
"particles. Equivalent to [method Particles.capture_aabb]."
msgstr ""
"计算并返回包含所有粒子的轴对齐边界框。相当于 [method GPUParticles3D."
"capture_aabb]。"

#: doc/classes/VisualServer.xml:2186
msgid "Returns [code]true[/code] if particles are currently set to emitting."
msgstr "如果当前粒子被设置发射,则返回[code]true[/code]。"

#: doc/classes/VisualServer.xml:2193
msgid ""
"Returns [code]true[/code] if particles are not emitting and particles are "
"set to inactive."
msgstr "如果粒子没有发射并且粒子设置为非活动状态,则返回 [code]true[/code]。"

#: doc/classes/VisualServer.xml:2200
msgid ""
"Add particle system to list of particle systems that need to be updated. "
"Update will take place on the next frame, or on the next call to [method "
"instances_cull_aabb], [method instances_cull_convex], or [method "
"instances_cull_ray]."
msgstr ""
"将粒子系统添加到需要更新的粒子系统列表中。更新将在下一帧或下一次调用 [method "
"instances_cull_aabb]、[method instances_cull_convex] 或 [method "
"instances_cull_ray] 时进行。"

#: doc/classes/VisualServer.xml:2207
#, fuzzy
msgid ""
"Reset the particles on the next update. Equivalent to [method Particles."
"restart]."
msgstr "在下次更新时重置粒子。相当于[method GPUParticles3D.restart]。"

#: doc/classes/VisualServer.xml:2215
#, fuzzy
msgid ""
"Sets the number of particles to be drawn and allocates the memory for them. "
"Equivalent to [member Particles.amount]."
msgstr ""
"设置要绘制的粒子数并为它们分配内存。相当于[member GPUParticles3D.amount]。"

#: doc/classes/VisualServer.xml:2223
#, fuzzy
msgid ""
"Sets a custom axis-aligned bounding box for the particle system. Equivalent "
"to [member Particles.visibility_aabb]."
msgstr ""
"为粒子系统设置自定义轴对齐边界框。相当于[member GPUParticles3D."
"visibility_aabb]。"

#: doc/classes/VisualServer.xml:2231
#, fuzzy
msgid ""
"Sets the draw order of the particles to one of the named enums from [enum "
"ParticlesDrawOrder]. See [enum ParticlesDrawOrder] for options. Equivalent "
"to [member Particles.draw_order]."
msgstr ""
"将粒子的绘制顺序设置为 [enum ParticlesDrawOrder] 中的命名枚举之一。有关选项,"
"请参阅 [enum ParticlesDrawOrder]。相当于[member GPUParticles3D.draw_order]。"

#: doc/classes/VisualServer.xml:2240
#, fuzzy
msgid ""
"Sets the mesh to be used for the specified draw pass. Equivalent to [member "
"Particles.draw_pass_1], [member Particles.draw_pass_2], [member Particles."
"draw_pass_3], and [member Particles.draw_pass_4]."
msgstr ""
"设置用于指定绘制通道的网格。相当于[member GPUParticles3D.draw_pass_1]、"
"[member GPUParticles3D.draw_pass_2]、[member GPUParticles3D.draw_pass_3] 和 "
"[member GPUParticles3D.draw_pass_4]。"

#: doc/classes/VisualServer.xml:2248
#, fuzzy
msgid ""
"Sets the number of draw passes to use. Equivalent to [member Particles."
"draw_passes]."
msgstr "设置要使用的绘制次数。等同于[member GPUParticles3D.draw_passes]。"

#: doc/classes/VisualServer.xml:2256
msgid ""
"Sets the [Transform] that will be used by the particles when they first emit."
msgstr "设置粒子首次发射时将使用的 [Transform]。"

#: doc/classes/VisualServer.xml:2264
#, fuzzy
msgid ""
"If [code]true[/code], particles will emit over time. Setting to false does "
"not reset the particles, but only stops their emission. Equivalent to "
"[member Particles.emitting]."
msgstr ""
"如果 [code]true[/code],粒子会随着时间发射。设置为 false 不会重置粒子,而只会"
"停止它们的发射。等效于 [member GPUParticles3D.Emitting]。"

#: doc/classes/VisualServer.xml:2272
#, fuzzy
msgid ""
"Sets the explosiveness ratio. Equivalent to [member Particles.explosiveness]."
msgstr "设置爆炸率。相当于[member GPUParticles3D.explosiveness]。"

#: doc/classes/VisualServer.xml:2280
#, fuzzy
msgid ""
"Sets the frame rate that the particle system rendering will be fixed to. "
"Equivalent to [member Particles.fixed_fps]."
msgstr "设置粒子系统渲染的帧速率。相当于[member GPUParticles3D.fixed_fps]。"

#: doc/classes/VisualServer.xml:2288
#, fuzzy
msgid ""
"If [code]true[/code], uses fractional delta which smooths the movement of "
"the particles. Equivalent to [member Particles.fract_delta]."
msgstr ""
"如果 [code]true[/code],则使用分数增量来平滑粒子的运动。相当于 [member "
"GPUParticles3D.fract_delta]。"

#: doc/classes/VisualServer.xml:2296
#, fuzzy
msgid ""
"Sets the lifetime of each particle in the system. Equivalent to [member "
"Particles.lifetime]."
msgstr "设置系统中每个粒子的寿命。等同于[member GPUParticles3D.lifetime]。"

#: doc/classes/VisualServer.xml:2304
#, fuzzy
msgid ""
"If [code]true[/code], particles will emit once and then stop. Equivalent to "
"[member Particles.one_shot]."
msgstr ""
"如果 [code]true[/code],粒子将发射一次然后停止。相当于[member GPUParticles3D."
"one_shot]。"

#: doc/classes/VisualServer.xml:2312
#, fuzzy
msgid ""
"Sets the preprocess time for the particles' animation. This lets you delay "
"starting an animation until after the particles have begun emitting. "
"Equivalent to [member Particles.preprocess]."
msgstr ""
"设置粒子动画的预处理时间。这可以让你延迟启动动画,直到粒子开始发射之后。等同"
"于[member GPUParticles3D.preprocess]。"

#: doc/classes/VisualServer.xml:2320
#, fuzzy
msgid ""
"Sets the material for processing the particles.\n"
"[b]Note:[/b] This is not the material used to draw the materials. Equivalent "
"to [member Particles.process_material]."
msgstr ""
"设置用于处理粒子的材质。注意:这不是用于绘制材质的材质。等同于[member "
"GPUParticles3D.process_material]。"

#: doc/classes/VisualServer.xml:2329
#, fuzzy
msgid ""
"Sets the emission randomness ratio. This randomizes the emission of "
"particles within their phase. Equivalent to [member Particles.randomness]."
msgstr ""
"设置发射随机性比率。这可以随机化粒子的发射。等同于[member GPUParticles3D."
"randomness]。"

#: doc/classes/VisualServer.xml:2337
#, fuzzy
msgid ""
"Sets the speed scale of the particle system. Equivalent to [member Particles."
"speed_scale]."
msgstr "设置粒子系统的速度比例。相当于[member GPUParticles3D.speed_scale]。"

#: doc/classes/VisualServer.xml:2345
#, fuzzy
msgid ""
"If [code]true[/code], particles use local coordinates. If [code]false[/code] "
"they use global coordinates. Equivalent to [member Particles.local_coords]."
msgstr ""
"如果[code]true[/code],粒子使用局部坐标。如果[code]false[/code],它们使用全局"
"坐标。相当于[member GPUParticles3D.local_coords]。"

#: doc/classes/VisualServer.xml:2351
#, fuzzy
msgid ""
"Creates a reflection probe and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID will be used in all "
"[code]reflection_probe_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this reflection probe to an instance using "
"[method instance_set_base] using the returned RID."
msgstr ""
"创建一个反射探针并将其添加到RenderingServer中。它可以通过返回的RID被访问。这"
"个RID将在所有[code]reflection_probe_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。\n"
"为了放置在场景中,使用返回的RID,用[method instance_set_base]将这个反射探针附"
"加到一个实例上。"

#: doc/classes/VisualServer.xml:2361
#, fuzzy
msgid ""
"If [code]true[/code], reflections will ignore sky contribution. Equivalent "
"to [member ReflectionProbe.interior_enable]."
msgstr ""
"如果 [code]true[/code],反射将忽略天空因素。等效于 [member ReflectionProbe."
"interior]。"

#: doc/classes/VisualServer.xml:2369
msgid ""
"Sets the render cull mask for this reflection probe. Only instances with a "
"matching cull mask will be rendered by this probe. Equivalent to [member "
"ReflectionProbe.cull_mask]."
msgstr ""
"为这个反射探针设置渲染遮蔽。只有具有匹配的遮蔽罩的实例才会被这个探针渲染。等"
"同于[member ReflectionProbe.cull_mask]。"

#: doc/classes/VisualServer.xml:2377
msgid ""
"If [code]true[/code], uses box projection. This can make reflections look "
"more correct in certain situations. Equivalent to [member ReflectionProbe."
"box_projection]."
msgstr ""
"如果 [code]true[/code],则使用箱体投影。这可以使反射在某些情况下看起来更正"
"确。相当于 [member ReflectionProbe.box_projection]。"

#: doc/classes/VisualServer.xml:2385
msgid ""
"If [code]true[/code], computes shadows in the reflection probe. This makes "
"the reflection much slower to compute. Equivalent to [member ReflectionProbe."
"enable_shadows]."
msgstr ""
"如果 [code]true[/code],计算反射探针中的阴影。这会使得反射的计算速度慢得多。"
"相当于 [member ReflectionProbe.enable_shadows]。"

#: doc/classes/VisualServer.xml:2393
msgid ""
"Sets the size of the area that the reflection probe will capture. Equivalent "
"to [member ReflectionProbe.extents]."
msgstr ""
"设置反射探头将捕获的区域的大小。等效于 [member ReflectionProbe.extents]。"

#: doc/classes/VisualServer.xml:2401
msgid ""
"Sets the intensity of the reflection probe. Intensity modulates the strength "
"of the reflection. Equivalent to [member ReflectionProbe.intensity]."
msgstr ""
"设置反射探针的强度。强度调节反射的强度。等效于 [member ReflectionProbe."
"intensity]。"

#: doc/classes/VisualServer.xml:2409
#, fuzzy
msgid ""
"Sets the ambient light color for this reflection probe when set to interior "
"mode. Equivalent to [member ReflectionProbe.interior_ambient_color]."
msgstr ""
"设置当此反射探针处于框项目模式时要使用的源偏移。相当于[member "
"ReflectionProbe.origin_offset]。"

#: doc/classes/VisualServer.xml:2417
#, fuzzy
msgid ""
"Sets the energy multiplier for this reflection probes ambient light "
"contribution when set to interior mode. Equivalent to [member "
"ReflectionProbe.interior_ambient_energy]."
msgstr ""
"设置反射探针的强度。强度调节反射的强度。等效于 [member ReflectionProbe."
"intensity]。"

#: doc/classes/VisualServer.xml:2425
msgid ""
"Sets the contribution value for how much the reflection affects the ambient "
"light for this reflection probe when set to interior mode. Useful so that "
"ambient light matches the color of the room. Equivalent to [member "
"ReflectionProbe.interior_ambient_contrib]."
msgstr ""

#: doc/classes/VisualServer.xml:2433
msgid ""
"Sets the max distance away from the probe an object can be before it is "
"culled. Equivalent to [member ReflectionProbe.max_distance]."
msgstr ""
"设置物体在被删除前与探针的最大距离。等同于[member ReflectionProbe."
"max_distance]。"

#: doc/classes/VisualServer.xml:2441
msgid ""
"Sets the origin offset to be used when this reflection probe is in box "
"project mode. Equivalent to [member ReflectionProbe.origin_offset]."
msgstr ""
"设置当此反射探针处于框项目模式时要使用的源偏移。相当于[member "
"ReflectionProbe.origin_offset]。"

#: doc/classes/VisualServer.xml:2449
msgid ""
"Sets how often the reflection probe updates. Can either be once or every "
"frame. See [enum ReflectionProbeUpdateMode] for options."
msgstr ""
"设置反射探针的更新频率。可以是一次,也可以是每一帧。参见[enum "
"ReflectionProbeUpdateMode]选项。"

#: doc/classes/VisualServer.xml:2458
msgid ""
"Schedules a callback to the corresponding named [code]method[/code] on "
"[code]where[/code] after a frame has been drawn.\n"
"The callback method must use only 1 argument which will be called with "
"[code]userdata[/code]."
msgstr ""
"在画完一帧后,在[code]where[/code]上安排一个回调给相应的命名的[code]method[/"
"code]。\n"
"回调方法必须只使用1个参数,它将与[code]userdata[/code]一起被调用。"

#: doc/classes/VisualServer.xml:2465
#, fuzzy
msgid ""
"Creates a scenario and adds it to the VisualServer. It can be accessed with "
"the RID that is returned. This RID will be used in all [code]scenario_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"The scenario is the 3D world that all the visual instances exist in."
msgstr ""
"创建一个场景并将其添加到RenderingServer中。它可以通过返回的RID被访问。这个RID"
"将在所有[code]scenario_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。\n"
"场景是所有视觉实例所存在的三维世界。"

#: doc/classes/VisualServer.xml:2475
msgid ""
"Sets the [enum ScenarioDebugMode] for this scenario. See [enum "
"ScenarioDebugMode] for options."
msgstr "设置该场景的[enum ScenarioDebugMode]。"

#: doc/classes/VisualServer.xml:2483
msgid "Sets the environment that will be used with this scenario."
msgstr "设置将用于此场景的环境。"

#: doc/classes/VisualServer.xml:2491
msgid ""
"Sets the fallback environment to be used by this scenario. The fallback "
"environment is used if no environment is set. Internally, this is used by "
"the editor to provide a default environment."
msgstr ""
"设置此方案所使用的后备环境。如果没有设置环境,则使用后备环境。这被编辑器用来"
"提供一个默认环境。"

#: doc/classes/VisualServer.xml:2500
msgid ""
"Sets the size of the reflection atlas shared by all reflection probes in "
"this scenario."
msgstr ""

#: doc/classes/VisualServer.xml:2510
msgid ""
"Sets a boot image. The color defines the background color. If [code]scale[/"
"code] is [code]true[/code], the image will be scaled to fit the screen size. "
"If [code]use_filter[/code] is [code]true[/code], the image will be scaled "
"with linear interpolation. If [code]use_filter[/code] is [code]false[/code], "
"the image will be scaled with nearest-neighbor interpolation."
msgstr ""
"设置一个启动图像。颜色定义了背景颜色。如果[code]scale[/code]是[code]true[/"
"code],图像将被缩放以适应屏幕尺寸。如果[code]use_filter[/code]是[code]true[/"
"code],图像将以线性插值进行缩放。如果[code]use_filter[/code]是[code]false[/"
"code],图像将以近邻插值的方式缩放。"

#: doc/classes/VisualServer.xml:2517
msgid ""
"If [code]true[/code], the engine will generate wireframes for use with the "
"wireframe debug mode."
msgstr "如果 [code]true[/code],引擎将生成用于线框调试模式的线框。"

#: doc/classes/VisualServer.xml:2524
msgid ""
"Sets the default clear color which is used when a specific clear color has "
"not been selected."
msgstr "设置未选择特定透明色时使用的默认透明色。"

#: doc/classes/VisualServer.xml:2531
msgid ""
"Sets the scale to apply to the passage of time for the shaders' [code]TIME[/"
"code] builtin.\n"
"The default value is [code]1.0[/code], which means [code]TIME[/code] will "
"count the real time as it goes by, without narrowing or stretching it."
msgstr ""

#: doc/classes/VisualServer.xml:2539
#, fuzzy
msgid "Enables or disables occlusion culling."
msgstr "启用或禁用画布灯。"

#: doc/classes/VisualServer.xml:2545
#, fuzzy
msgid ""
"Creates an empty shader and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID will be used in all [code]shader_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个空的着色器并将其添加到 RenderingServer。可以使用返回的 RID 访问它。"
"此 RID 将用于所有 [code]shader_*[/code] RenderingServer 函数。\n"
"你可以使用 RenderingServer 的 [method free_rid] 静态方法释放 RID。"

#: doc/classes/VisualServer.xml:2553
msgid "Returns a shader's code."
msgstr "返回着色器的代码。"

#: doc/classes/VisualServer.xml:2561
msgid "Returns a default texture from a shader searched by name."
msgstr "从按名称搜索的着色器中返回一个默认纹理。"

#: doc/classes/VisualServer.xml:2568
msgid "Returns the parameters of a shader."
msgstr "返回着色器的参数。"

#: doc/classes/VisualServer.xml:2576
msgid "Sets a shader's code."
msgstr "设置着色器的代码。"

#: doc/classes/VisualServer.xml:2585
msgid "Sets a shader's default texture. Overwrites the texture given by name."
msgstr "设置着色器的默认纹理。覆盖以名字命名的纹理。"

#: doc/classes/VisualServer.xml:2594
msgid "Allocates the GPU buffers for this skeleton."
msgstr "为这个骨架分配 GPU 缓冲区。"

#: doc/classes/VisualServer.xml:2602
msgid "Returns the [Transform] set for a specific bone of this skeleton."
msgstr "返回这个骨架的特定骨骼的[Transform]集合。"

#: doc/classes/VisualServer.xml:2610
msgid "Returns the [Transform2D] set for a specific bone of this skeleton."
msgstr "返回此骨架的特定骨骼的[Transform2D]集合。"

#: doc/classes/VisualServer.xml:2619
msgid "Sets the [Transform] for a specific bone of this skeleton."
msgstr "设置此骨架特定骨骼的 [Transform]集合。"

#: doc/classes/VisualServer.xml:2628
msgid "Sets the [Transform2D] for a specific bone of this skeleton."
msgstr "设置此骨架特定骨骼的 [Transform2D]集合。"

#: doc/classes/VisualServer.xml:2634
#, fuzzy
msgid ""
"Creates a skeleton and adds it to the VisualServer. It can be accessed with "
"the RID that is returned. This RID will be used in all [code]skeleton_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个骨架并将其添加到RenderingServer中。它可以通过返回的RID被访问。这个RID"
"将被用于所有[code]skeleton_*[/code] RenderingServer函数中。\n"
"你可以使用RenderingServer的[method free_rid]静态方法来释放RID。"

#: doc/classes/VisualServer.xml:2642
msgid "Returns the number of bones allocated for this skeleton."
msgstr "返回分配给这个骨架的骨骼数量。"

#: doc/classes/VisualServer.xml:2648
#, fuzzy
msgid ""
"Creates an empty sky and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID will be used in all [code]sky_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个空的天空并将其添加到RenderingServer中。它可以通过返回的RID被访问。这"
"个RID将在所有[code]sky_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法来释放RID。"

#: doc/classes/VisualServer.xml:2658
#, fuzzy
msgid "Sets a sky's texture."
msgstr "设置图块的纹理。"

#: doc/classes/VisualServer.xml:2664
#, fuzzy
msgid ""
"Creates a spot light and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID can be used in most [code]light_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method.\n"
"To place in a scene, attach this spot light to an instance using [method "
"instance_set_base] using the returned RID."
msgstr ""
"创建一个聚光灯并将其添加到RenderingServer中。它可以通过返回的RID被访问。这个"
"RID可以在大多数[code]light_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法来释放RID。\n"
"为了在场景中放置,使用返回的RID用[method instance_set_base]将这个聚光灯附加到"
"一个实例上。"

#: doc/classes/VisualServer.xml:2685
#, fuzzy
msgid "Allocates the GPU memory for the texture."
msgstr "为这个骨架分配 GPU 缓冲区。"

#: doc/classes/VisualServer.xml:2693
#, fuzzy
msgid "Binds the texture to a texture slot."
msgstr "将文本向左对齐。"

#: doc/classes/VisualServer.xml:2699
#, fuzzy
msgid ""
"Creates an empty texture and adds it to the VisualServer. It can be accessed "
"with the RID that is returned. This RID will be used in all [code]texture_*[/"
"code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个空材质并将其添加到 RenderingServer。可以使用返回的 RID 访问它。此 "
"RID 将用于所有 [code]material_*[/code] RenderingServer 函数。\n"
"可以使用 RenderingServer 的 [method free_rid] 静态方法释放 RID。"

#: doc/classes/VisualServer.xml:2708
msgid ""
"Creates a texture, allocates the space for an image, and fills in the image."
msgstr ""

#: doc/classes/VisualServer.xml:2714
#, fuzzy
msgid "Returns a list of all the textures and their information."
msgstr "返回[Dictionary]中的值列表。"

#: doc/classes/VisualServer.xml:2722
msgid ""
"Returns a copy of a texture's image unless it's a CubeMap, in which case it "
"returns the [RID] of the image at one of the cubes sides."
msgstr ""

#: doc/classes/VisualServer.xml:2729
#, fuzzy
msgid "Returns the depth of the texture."
msgstr "返回内容的高度。"

#: doc/classes/VisualServer.xml:2736
#, fuzzy
msgid "Returns the flags of a texture."
msgstr "返回图块的纹理。"

#: doc/classes/VisualServer.xml:2743
#, fuzzy
msgid "Returns the format of the texture's image."
msgstr "返回两个向量的余数。"

#: doc/classes/VisualServer.xml:2750
#, fuzzy
msgid "Returns the texture's height."
msgstr "返回纹理高度。"

#: doc/classes/VisualServer.xml:2757
#, fuzzy
msgid "Returns the texture's path."
msgstr "返回纹理宽度。"

#: doc/classes/VisualServer.xml:2764
#, fuzzy
msgid "Returns the opengl id of the texture's image."
msgstr "返回四元数的长度。"

#: doc/classes/VisualServer.xml:2771
#, fuzzy
msgid "Returns the type of the texture, can be any of the [enum TextureType]."
msgstr "返回队列中下一个动画的名称。"

#: doc/classes/VisualServer.xml:2778
#, fuzzy
msgid "Returns the texture's width."
msgstr "返回纹理宽度。"

#: doc/classes/VisualServer.xml:2787
msgid ""
"Sets the texture's image data. If it's a CubeMap, it sets the image data at "
"a cube side."
msgstr ""

#: doc/classes/VisualServer.xml:2803
msgid ""
"Sets a part of the data for a texture. Warning: this function calls the "
"underlying graphics API directly and may corrupt your texture if used "
"improperly."
msgstr ""

#: doc/classes/VisualServer.xml:2811
#, fuzzy
msgid "Sets the texture's flags. See [enum TextureFlags] for options."
msgstr "纹理的重复标志。参见[enum TextureFilter]的选项。"

#: doc/classes/VisualServer.xml:2819
#, fuzzy
msgid "Sets the texture's path."
msgstr "返回纹理宽度。"

#: doc/classes/VisualServer.xml:2826
#, fuzzy
msgid ""
"If [code]true[/code], sets internal processes to shrink all image data to "
"half the size."
msgstr "如果 [code]true[/code],行号显示在文本的左侧。"

#: doc/classes/VisualServer.xml:2843
#, fuzzy
msgid ""
"If [code]true[/code], the image will be stored in the texture's images array "
"if overwritten."
msgstr "如果[code]true[/code],所有警告将被报告为错误。"

#: doc/classes/VisualServer.xml:2851
msgid "Sets a viewport's camera."
msgstr "设置视图的相机。"

#: doc/classes/VisualServer.xml:2859
msgid "Sets a viewport's canvas."
msgstr "设置视窗的画布。"

#: doc/classes/VisualServer.xml:2868
#, fuzzy
msgid ""
"Copies viewport to a region of the screen specified by [code]rect[/code]. If "
"[member Viewport.render_direct_to_screen] is [code]true[/code], then "
"viewport does not use a framebuffer and the contents of the viewport are "
"rendered directly to screen. However, note that the root viewport is drawn "
"last, therefore it will draw over the screen. Accordingly, you must set the "
"root viewport to an area that does not cover the area that you have attached "
"this viewport to.\n"
"For example, you can set the root viewport to not render at all with the "
"following code:\n"
"[codeblock]\n"
"func _ready():\n"
"    get_viewport().set_attach_to_screen_rect(Rect2())\n"
"    $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))\n"
"[/codeblock]\n"
"Using this can result in significant optimization, especially on lower-end "
"devices. However, it comes at the cost of having to manage your viewports "
"manually. For a further optimization see, [method "
"viewport_set_render_direct_to_screen]."
msgstr ""
"将视口复制到屏幕上由[code]rect[/code]指定的区域。如果[method "
"viewport_set_render_direct_to_screen]是[code]true[/code],那么视口就不会使用"
"帧缓冲器,视口的内容会直接渲染到屏幕上。然而,请注意,根视口是最后绘制的,因"
"此它将在屏幕上绘制。因此,你必须将根视口设置为一个不覆盖你所附加的这个视口的"
"区域。\n"
"例如,你可以用以下代码将根视口设置为完全不渲染。\n"
"[codeblock]\n"
"func _ready():\n"
"    get_viewport().set_attach_to_screen_rect(Rect2())\n"
"    $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))\n"
"[/codeblock]\n"
"使用这个方法可以带来明显的优化,特别是在低端设备上。然而,它的代价是必须手动"
"管理你的视口。对于进一步的优化,请看,[method "
"viewport_set_render_direct_to_screen]。"

#: doc/classes/VisualServer.xml:2881
#, fuzzy
msgid ""
"Creates an empty viewport and adds it to the VisualServer. It can be "
"accessed with the RID that is returned. This RID will be used in all "
"[code]viewport_*[/code] VisualServer functions.\n"
"Once finished with your RID, you will want to free the RID using the "
"VisualServer's [method free_rid] static method."
msgstr ""
"创建一个空的视口并将其添加到RenderingServer。它可以通过返回的RID被访问。这个"
"RID将在所有[code]viewport_*[/code] RenderingServer函数中使用。\n"
"你可以使用RenderingServer的[method free_rid]静态方法释放RID。"

#: doc/classes/VisualServer.xml:2889
#, fuzzy
msgid "Detaches the viewport from the screen."
msgstr "从画布分离视口,反之亦然。"

#: doc/classes/VisualServer.xml:2897
msgid ""
"Returns a viewport's render information. For options, see the [enum "
"ViewportRenderInfo] constants."
msgstr "返回视窗的渲染信息。有关选项,请参阅 [enum ViewportRenderInfo] 常量。"

#: doc/classes/VisualServer.xml:2904
msgid "Returns the viewport's last rendered frame."
msgstr "返回视窗的最后渲染帧。"

#: doc/classes/VisualServer.xml:2912
msgid "Detaches a viewport from a canvas and vice versa."
msgstr "从画布分离视口,反之亦然。"

#: doc/classes/VisualServer.xml:2920
msgid "If [code]true[/code], sets the viewport active, else sets it inactive."
msgstr ""
"如果 [code]true[/code],则将视窗设置为活动状态,否则将其设置为非活动状态。"

#: doc/classes/VisualServer.xml:2930
msgid ""
"Sets the stacking order for a viewport's canvas.\n"
"[code]layer[/code] is the actual canvas layer, while [code]sublayer[/code] "
"specifies the stacking order of the canvas among those in the same layer."
msgstr ""
"设置视窗画布的堆叠顺序。\n"
"[code]layer[/code]是实际的画布层,而[code]sublayer[/code]则指定画布在同一层中"
"的堆叠顺序。"

#: doc/classes/VisualServer.xml:2940
msgid "Sets the transformation of a viewport's canvas."
msgstr "设置视窗画布的变换。"

#: doc/classes/VisualServer.xml:2948
msgid ""
"Sets the clear mode of a viewport. See [enum ViewportClearMode] for options."
msgstr "设置视窗的清除模式。详见[enum ViewportClearMode]。"

#: doc/classes/VisualServer.xml:2956
msgid ""
"Sets the debug draw mode of a viewport. See [enum ViewportDebugDraw] for "
"options."
msgstr "设置视窗的调试绘图模式。详见[enum ViewportDebugDraw]。"

#: doc/classes/VisualServer.xml:2964
#, fuzzy
msgid "If [code]true[/code], a viewport's 3D rendering is disabled."
msgstr "如果 [code]true[/code],则禁用视窗环境的渲染。"

#: doc/classes/VisualServer.xml:2972
msgid ""
"If [code]true[/code], rendering of a viewport's environment is disabled."
msgstr "如果 [code]true[/code],则禁用视窗环境的渲染。"

#: doc/classes/VisualServer.xml:2980
msgid "Sets the viewport's global transformation matrix."
msgstr "设置视窗的全局变换矩阵。"

#: doc/classes/VisualServer.xml:2988
#, fuzzy
msgid "If [code]true[/code], the viewport renders to hdr."
msgstr "如果 [code]true[/code],则不渲染视窗的画布。"

#: doc/classes/VisualServer.xml:2996
msgid "If [code]true[/code], the viewport's canvas is not rendered."
msgstr "如果 [code]true[/code],则不渲染视窗的画布。"

#: doc/classes/VisualServer.xml:3004
msgid "Currently unimplemented in Godot 3.x."
msgstr "目前在 Godot 3.x 中未实现。"

#: doc/classes/VisualServer.xml:3012
msgid "Sets the anti-aliasing mode. See [enum ViewportMSAA] for options."
msgstr "设置抗锯齿模式。详见[enum ViewportMSAA]。"

#: doc/classes/VisualServer.xml:3020
msgid "Sets the viewport's parent to another viewport."
msgstr "设置视窗的父视窗到另一个视窗。"

#: doc/classes/VisualServer.xml:3028
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 the root viewport. While this optimization can result in a "
"significant increase in speed (especially on older devices), it comes at a "
"cost of usability. When this is enabled, you cannot read from the viewport "
"or from the [code]SCREEN_TEXTURE[/code]. You also lose the benefit of "
"certain window settings, such as the various stretch modes. Another "
"consequence to be aware of is that in 2D the rendering happens in window "
"coordinates, so if you have a viewport that is double the size of the "
"window, and you set this, then only the portion that fits within the window "
"will be drawn, no automatic scaling is possible, even if your game scene is "
"significantly larger than the window size."
msgstr ""
"如果[code]true[/code],直接将视窗的内容渲染到屏幕上。这允许一个低级别的优化,"
"你可以跳过绘制视口到根视口。虽然这种优化可以显著提高速度(特别是在旧设备"
"上),但它是以牺牲可用性为代价的。当启用这个功能时,你不能从视口或"
"[code]SCREEN_TEXTURE[/code]中读取。你也会失去某些窗口设置的好处,比如各种拉伸"
"模式。另一个需要注意的后果是,在2D中,渲染是以窗口坐标进行的,所以如果你有一"
"个两倍于窗口大小的视口,并且你设置了这个,那么只有适合窗口的部分才会被绘制,"
"没有自动缩放的可能,即使你的游戏场景明显大于窗口大小。"

#: doc/classes/VisualServer.xml:3036
msgid ""
"Sets a viewport's scenario.\n"
"The scenario contains information about the [enum ScenarioDebugMode], "
"environment information, reflection atlas etc."
msgstr ""
"设置一个视窗的场景。\n"
"场景包含[enum ScenarioDebugMode]的信息、环境信息、反射图集等。"

#: doc/classes/VisualServer.xml:3046
msgid "Sets the shadow atlas quadrant's subdivision."
msgstr "设置阴影图集象限的细分。"

#: doc/classes/VisualServer.xml:3054
msgid ""
"Sets the size of the shadow atlas's images (used for omni and spot lights). "
"The value will be rounded up to the nearest power of 2."
msgstr ""
"设置阴影图集的图像大小(用于泛光灯和聚光灯)。该值将被四舍五入到最接近的2的n"
"次方。"

#: doc/classes/VisualServer.xml:3062
msgid ""
"Sets the sharpening [code]intensity[/code] for the [code]viewport[/code]. If "
"set to a value greater than [code]0.0[/code], contrast-adaptive sharpening "
"will be applied to the 3D viewport. This has a low performance cost and can "
"be used to recover some of the sharpness lost from using FXAA. Values around "
"[code]0.5[/code] generally give the best results. See also [method "
"viewport_set_use_fxaa]."
msgstr ""

#: doc/classes/VisualServer.xml:3071
msgid "Sets the viewport's width and height."
msgstr "设置视窗的宽度和高度。"

#: doc/classes/VisualServer.xml:3079
msgid ""
"If [code]true[/code], the viewport renders its background as transparent."
msgstr "如果 [code]true[/code],视窗将其背景渲染为透明。"

#: doc/classes/VisualServer.xml:3087
msgid ""
"Sets when the viewport should be updated. See [enum ViewportUpdateMode] "
"constants for options."
msgstr "设置应更新视窗的时间。请参阅 [enum ViewportUpdateMode] 。"

#: doc/classes/VisualServer.xml:3095
#, fuzzy
msgid ""
"Sets the viewport's 2D/3D mode. See [enum ViewportUsage] constants for "
"options."
msgstr "设置应更新视窗的时间。请参阅 [enum ViewportUpdateMode] 。"

#: doc/classes/VisualServer.xml:3103
#, fuzzy
msgid ""
"If [code]true[/code], the viewport uses augmented or virtual reality "
"technologies. See [ARVRInterface]."
msgstr ""
"如果 [code]true[/code],则视窗使用增强或虚拟现实技术。请参阅 [XR 接口]。"

#: doc/classes/VisualServer.xml:3111
msgid ""
"If [code]true[/code], uses a fast post-processing filter to make banding "
"significantly less visible. In some cases, debanding may introduce a "
"slightly noticeable dithering pattern. It's recommended to enable debanding "
"only when actually needed since the dithering pattern will make lossless-"
"compressed screenshots larger.\n"
"[b]Note:[/b] Only available on the GLES3 backend. [member Viewport.hdr] must "
"also be [code]true[/code] for debanding to be effective."
msgstr ""

#: doc/classes/VisualServer.xml:3120
#, fuzzy
msgid ""
"Enables fast approximate antialiasing for this viewport. FXAA is a popular "
"screen-space antialiasing method, which is fast but will make the image look "
"blurry, especially at lower resolutions. It can still work relatively well "
"at large resolutions such as 1440p and 4K. Some of the lost sharpness can be "
"recovered by enabling contrast-adaptive sharpening (see [method "
"viewport_set_sharpen_intensity])."
msgstr ""
"使用快速的近似抗锯齿。FXAA是一种流行的屏幕空间抗锯齿方法,它的速度很快,但会"
"使图像看起来很模糊,特别是在较低的分辨率。在1440p和4K等大分辨率下,仍然可以相"
"对良好地工作。"

#: doc/classes/VisualServer.xml:3128
#, fuzzy
msgid "If [code]true[/code], the viewport's rendering is flipped vertically."
msgstr "如果为 [code]true[/code],纹理将被垂直翻转。"

#: doc/classes/VisualServer.xml:3134
msgid ""
"If [code]false[/code], disables rendering completely, but the engine logic "
"is still being processed. You can call [method force_draw] to draw a frame "
"even with rendering disabled."
msgstr ""
"如果[code]false[/code],则完全禁用渲染,但引擎逻辑仍在处理中。即使禁用渲染,"
"您也可以调用 [method force_draw] 来绘制帧。"

#: doc/classes/VisualServer.xml:3140
#, fuzzy
msgid ""
"Emitted at the end of the frame, after the VisualServer has finished "
"updating all the Viewports."
msgstr "在 RenderingServer 完成更新所有视口后,在帧的末尾发出。"

#: doc/classes/VisualServer.xml:3145
#, fuzzy
msgid ""
"Emitted at the beginning of the frame, before the VisualServer updates all "
"the Viewports."
msgstr "在RenderingServer更新所有视口之前,在帧的开始发出。"

#: doc/classes/VisualServer.xml:3151
msgid "Marks an error that shows that the index array is empty."
msgstr "标记一个错误,表明索引数组为空。"

#: doc/classes/VisualServer.xml:3154
msgid "Number of weights/bones per vertex."
msgstr "每个顶点的权重/骨骼数。"

#: doc/classes/VisualServer.xml:3157
msgid "The minimum Z-layer for canvas items."
msgstr "画布项目的最小 Z 层。"

#: doc/classes/VisualServer.xml:3160
msgid "The maximum Z-layer for canvas items."
msgstr "帆布项目的最大 Z 层。"

#: doc/classes/VisualServer.xml:3163
msgid ""
"Max number of glow levels that can be used with glow post-process effect."
msgstr "可用于发光后期处理效果的最大发光级别数。"

#: doc/classes/VisualServer.xml:3166
msgid "Unused enum in Godot 3.x."
msgstr "在Godot 3.x中未使用的枚举。"

#: doc/classes/VisualServer.xml:3169
msgid "The minimum renderpriority of all materials."
msgstr "所有材质的最小渲染优先级。"

#: doc/classes/VisualServer.xml:3172
msgid "The maximum renderpriority of all materials."
msgstr "所有材质的最大渲染优先级。"

#: doc/classes/VisualServer.xml:3175
#, fuzzy
msgid "Marks the left side of a cubemap."
msgstr "设置一个列的标题。"

#: doc/classes/VisualServer.xml:3178
#, fuzzy
msgid "Marks the right side of a cubemap."
msgstr "设置一个列的标题。"

#: doc/classes/VisualServer.xml:3181
#, fuzzy
msgid "Marks the bottom side of a cubemap."
msgstr "设置一个列的标题。"

#: doc/classes/VisualServer.xml:3184
#, fuzzy
msgid "Marks the top side of a cubemap."
msgstr "设置一个列的标题。"

#: doc/classes/VisualServer.xml:3187
#, fuzzy
msgid "Marks the front side of a cubemap."
msgstr "设置一个列的标题。"

#: doc/classes/VisualServer.xml:3190
#, fuzzy
msgid "Marks the back side of a cubemap."
msgstr "设置一个列的标题。"

#: doc/classes/VisualServer.xml:3193
#, fuzzy
msgid "Normal texture with 2 dimensions, width and height."
msgstr "返回图像的大小(宽度和高度)。"

#: doc/classes/VisualServer.xml:3196
msgid ""
"Texture made up of six faces, can be looked up with a [code]vec3[/code] in "
"shader."
msgstr ""

#: doc/classes/VisualServer.xml:3199
msgid "An array of 2-dimensional textures."
msgstr ""

#: doc/classes/VisualServer.xml:3202
msgid "A 3-dimensional texture with width, height, and depth."
msgstr ""

#: doc/classes/VisualServer.xml:3208
#, fuzzy
msgid "Repeats the texture (instead of clamp to edge)."
msgstr "返回图块的纹理偏移量。"

#: doc/classes/VisualServer.xml:3221
msgid "Repeats the texture with alternate sections mirrored."
msgstr ""

#: doc/classes/VisualServer.xml:3227
msgid ""
"Default flags. [constant TEXTURE_FLAG_MIPMAPS], [constant "
"TEXTURE_FLAG_REPEAT] and [constant TEXTURE_FLAG_FILTER] are enabled."
msgstr ""

#: doc/classes/VisualServer.xml:3230
msgid "Shader is a 3D shader."
msgstr "着色器是一个 3D 着色器。"

#: doc/classes/VisualServer.xml:3233
msgid "Shader is a 2D shader."
msgstr "着色器是一个 2D 着色器。"

#: doc/classes/VisualServer.xml:3236
msgid "Shader is a particle shader."
msgstr "着色器是一个粒子着色器。"

#: doc/classes/VisualServer.xml:3239
msgid "Represents the size of the [enum ShaderMode] enum."
msgstr "代表[enum ShaderMode]枚举的大小。"

#: doc/classes/VisualServer.xml:3242
msgid "Array is a vertex array."
msgstr "数组是一个顶点数组。"

#: doc/classes/VisualServer.xml:3245
msgid "Array is a normal array."
msgstr "数组是普通数组。"

#: doc/classes/VisualServer.xml:3248
msgid "Array is a tangent array."
msgstr "数组是一个切线数组。"

#: doc/classes/VisualServer.xml:3251
msgid "Array is a color array."
msgstr "数组是一个颜色数组。"

#: doc/classes/VisualServer.xml:3254
msgid "Array is an UV coordinates array."
msgstr "数组是一个 UV 坐标数组。"

#: doc/classes/VisualServer.xml:3257
msgid "Array is an UV coordinates array for the second UV coordinates."
msgstr "数组是第二个 UV 坐标的 UV 坐标数组。"

#: doc/classes/VisualServer.xml:3260
msgid "Array contains bone information."
msgstr "数组包含骨骼信息。"

#: doc/classes/VisualServer.xml:3263
msgid "Array is weight information."
msgstr "数组是重量信息。"

#: doc/classes/VisualServer.xml:3266
msgid "Array is index array."
msgstr "数组是索引数组。"

#: doc/classes/VisualServer.xml:3272
msgid "Flag used to mark a vertex array."
msgstr "用于标记顶点数组的标志。"

#: doc/classes/VisualServer.xml:3275
msgid "Flag used to mark a normal array."
msgstr "用于标记正常数组的标志。"

#: doc/classes/VisualServer.xml:3278
msgid "Flag used to mark a tangent array."
msgstr "用于标记切线数组的标志。"

#: doc/classes/VisualServer.xml:3281
msgid "Flag used to mark a color array."
msgstr "用于标记颜色数组的标记。"

#: doc/classes/VisualServer.xml:3284
msgid "Flag used to mark an UV coordinates array."
msgstr "用于标记 UV 坐标数组的标志。"

#: doc/classes/VisualServer.xml:3287
msgid ""
"Flag used to mark an UV coordinates array for the second UV coordinates."
msgstr "用于标记第二个UV坐标的UV坐标数组的标志。"

#: doc/classes/VisualServer.xml:3290
msgid "Flag used to mark a bone information array."
msgstr "用来标记骨骼信息数组的标志。"

#: doc/classes/VisualServer.xml:3293
msgid "Flag used to mark a weights array."
msgstr "用于标记重量数组的标记。"

#: doc/classes/VisualServer.xml:3296
msgid "Flag used to mark an index array."
msgstr "用于标记索引数组的标志。"

#: doc/classes/VisualServer.xml:3335
#, fuzzy
msgid ""
"Used to set flags [constant ARRAY_COMPRESS_NORMAL], [constant "
"ARRAY_COMPRESS_TANGENT], [constant ARRAY_COMPRESS_COLOR], [constant "
"ARRAY_COMPRESS_TEX_UV], [constant ARRAY_COMPRESS_TEX_UV2], [constant "
"ARRAY_COMPRESS_WEIGHTS], and [constant "
"ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION] quickly."
msgstr ""
"曾用于快速设置 flags [constant ARRAY_COMPRESS_NORMAL], [constant "
"ARRAY_COMPRESS_TANGENT], [constant ARRAY_COMPRESS_COLOR], [constant "
"ARRAY_COMPRESS_TEX_UV] 和 [constant ARRAY_COMPRESS_TEX_UV2] 。"

#: doc/classes/VisualServer.xml:3338
msgid "Primitive to draw consists of points."
msgstr "基本网格绘制由点组成。"

#: doc/classes/VisualServer.xml:3341
msgid "Primitive to draw consists of lines."
msgstr "基本网格绘制由线条组成。"

#: doc/classes/VisualServer.xml:3344
msgid "Primitive to draw consists of a line strip from start to end."
msgstr "基本网格的绘制由一条首尾闭合的线条组成。"

#: doc/classes/VisualServer.xml:3347
#, fuzzy
msgid ""
"Primitive to draw consists of a line loop (a line strip with a line between "
"the last and the first vertex)."
msgstr "基本网格绘制由一个三角形条组成(最后3个顶点总是组合成一个三角形)。"

#: doc/classes/VisualServer.xml:3350
msgid "Primitive to draw consists of triangles."
msgstr "基本网格的绘制由三角形组成。"

#: doc/classes/VisualServer.xml:3353
msgid ""
"Primitive to draw consists of a triangle strip (the last 3 vertices are "
"always combined to make a triangle)."
msgstr "基本网格绘制由一个三角形条组成(最后3个顶点总是组合成一个三角形)。"

#: doc/classes/VisualServer.xml:3356
#, fuzzy
msgid ""
"Primitive to draw consists of a triangle strip (the last 2 vertices are "
"always combined with the first to make a triangle)."
msgstr "基本网格绘制由一个三角形条组成(最后3个顶点总是组合成一个三角形)。"

#: doc/classes/VisualServer.xml:3359
msgid "Represents the size of the [enum PrimitiveType] enum."
msgstr "表示 [enum PrimitiveType] 枚举的大小。"

#: doc/classes/VisualServer.xml:3368
msgid "Is a directional (sun) light."
msgstr "是定向(日光)灯。"

#: doc/classes/VisualServer.xml:3371
msgid "Is an omni light."
msgstr "是泛光灯。"

#: doc/classes/VisualServer.xml:3374
msgid "Is a spot light."
msgstr "是聚光灯。"

#: doc/classes/VisualServer.xml:3377
msgid "The light's energy."
msgstr "灯光的能量。"

#: doc/classes/VisualServer.xml:3380
#, fuzzy
msgid "Secondary multiplier used with indirect light (light bounces)."
msgstr "与间接光(光反弹)一起使用的二级倍增器。与[GIProbe]一起使用。"

#: doc/classes/VisualServer.xml:3383
msgid ""
"The light's size, currently only used for soft shadows in baked lightmaps."
msgstr ""

#: doc/classes/VisualServer.xml:3386
msgid "The light's influence on specularity."
msgstr "灯光对镜面反射的影响。"

#: doc/classes/VisualServer.xml:3389
msgid "The light's range."
msgstr "灯光的范围。"

#: doc/classes/VisualServer.xml:3392
msgid "The light's attenuation."
msgstr "光线的衰减。"

#: doc/classes/VisualServer.xml:3395
msgid "The spotlight's angle."
msgstr "聚光灯的角度。"

#: doc/classes/VisualServer.xml:3398
msgid "The spotlight's attenuation."
msgstr "聚光灯的衰减。"

#: doc/classes/VisualServer.xml:3401
#, fuzzy
msgid "Scales the shadow color."
msgstr "设置字体颜色[Color]。"

#: doc/classes/VisualServer.xml:3404
msgid "Max distance that shadows will be rendered."
msgstr "阴影被渲染的最大距离。"

#: doc/classes/VisualServer.xml:3407
msgid "Proportion of shadow atlas occupied by the first split."
msgstr "第一次拆分所占据的阴影图集的比例。"

#: doc/classes/VisualServer.xml:3410
msgid "Proportion of shadow atlas occupied by the second split."
msgstr "第二次拆分所占用的阴影图集的比例。"

#: doc/classes/VisualServer.xml:3413
msgid ""
"Proportion of shadow atlas occupied by the third split. The fourth split "
"occupies the rest."
msgstr "第三次拆分所占用的阴影图集的比例。第四个拆分占据了其余部分。"

#: doc/classes/VisualServer.xml:3416
msgid ""
"Normal bias used to offset shadow lookup by object normal. Can be used to "
"fix self-shadowing artifacts."
msgstr "法线偏移,用于抵消物体法线的阴影查找。可以用来修复自阴影的伪影。"

#: doc/classes/VisualServer.xml:3419
msgid "Bias the shadow lookup to fix self-shadowing artifacts."
msgstr "对阴影查找进行偏移,以修复自我阴影的假象。"

#: doc/classes/VisualServer.xml:3422
msgid ""
"Increases bias on further splits to fix self-shadowing that only occurs far "
"away from the camera."
msgstr ""

#: doc/classes/VisualServer.xml:3425
msgid "Represents the size of the [enum LightParam] enum."
msgstr "代表[enum LightParam]枚举的大小。"

#: doc/classes/VisualServer.xml:3434
msgid "Use a dual paraboloid shadow map for omni lights."
msgstr "对泛光灯使用双抛物面阴影贴图。"

#: doc/classes/VisualServer.xml:3437
msgid ""
"Use a cubemap shadow map for omni lights. Slower but better quality than "
"dual paraboloid."
msgstr "对泛光灯使用立方体贴图阴影贴图。比双抛物面更慢但质量更好。"

#: doc/classes/VisualServer.xml:3440
msgid "Use more detail vertically when computing shadow map."
msgstr ""

#: doc/classes/VisualServer.xml:3443
msgid "Use more detail horizontally when computing shadow map."
msgstr ""

#: doc/classes/VisualServer.xml:3446
msgid "Use orthogonal shadow projection for directional light."
msgstr "对定向光使用正交阴影投影。"

#: doc/classes/VisualServer.xml:3449
msgid "Use 2 splits for shadow projection when using directional light."
msgstr "使用定向光时,使用 2 个分割进行阴影投影。"

#: doc/classes/VisualServer.xml:3452
msgid "Use 4 splits for shadow projection when using directional light."
msgstr "使用定向光时,使用 4 个分割进行阴影投影。"

#: doc/classes/VisualServer.xml:3455
msgid ""
"Keeps shadows stable as camera moves but has lower effective resolution."
msgstr "当摄像机移动时,保持阴影稳定,但有效分辨率较低。"

#: doc/classes/VisualServer.xml:3458
msgid ""
"Optimize use of shadow maps, increasing the effective resolution. But may "
"result in shadows moving or flickering slightly."
msgstr "优化阴影贴图的使用,提高有效分辨率。但可能会导致阴影轻微移动或闪烁。"

#: doc/classes/VisualServer.xml:3461
msgid "Do not update the viewport."
msgstr "不要更新视窗。"

#: doc/classes/VisualServer.xml:3464
msgid "Update the viewport once then set to disabled."
msgstr "更新一次视窗,然后设置为禁用。"

#: doc/classes/VisualServer.xml:3467
msgid "Update the viewport whenever it is visible."
msgstr "只要视窗是可见的,就更新视窗。"

#: doc/classes/VisualServer.xml:3470
msgid "Always update the viewport."
msgstr "始终更新视窗。"

#: doc/classes/VisualServer.xml:3473
msgid "The viewport is always cleared before drawing."
msgstr "在绘图之前,视窗总是被清空。"

#: doc/classes/VisualServer.xml:3476
msgid "The viewport is never cleared before drawing."
msgstr "在绘图之前,视窗永远不会被清空。"

#: doc/classes/VisualServer.xml:3479
msgid ""
"The viewport is cleared once, then the clear mode is set to [constant "
"VIEWPORT_CLEAR_NEVER]."
msgstr "视窗被清除一次,然后清除模式设置为 [constant VIEWPORT_CLEAR_NEVER]。"

#: doc/classes/VisualServer.xml:3482
msgid "Multisample antialiasing is disabled."
msgstr "多重采样抗锯齿被禁用。"

#: doc/classes/VisualServer.xml:3485
#, fuzzy
msgid "Multisample antialiasing is set to 2×."
msgstr "多重采样抗锯齿被禁用。"

#: doc/classes/VisualServer.xml:3488
#, fuzzy
msgid "Multisample antialiasing is set to 4×."
msgstr "多重采样抗锯齿被禁用。"

#: doc/classes/VisualServer.xml:3491
#, fuzzy
msgid "Multisample antialiasing is set to 8×."
msgstr "多重采样抗锯齿被禁用。"

#: doc/classes/VisualServer.xml:3494
#, fuzzy
msgid "Multisample antialiasing is set to 16×."
msgstr "多重采样抗锯齿被禁用。"

#: doc/classes/VisualServer.xml:3497
msgid ""
"Multisample antialiasing is set to 2× on external texture. Special mode for "
"GLES2 Android VR (Oculus Quest and Go)."
msgstr ""

#: doc/classes/VisualServer.xml:3500
msgid ""
"Multisample antialiasing is set to 4× on external texture. Special mode for "
"GLES2 Android VR (Oculus Quest and Go)."
msgstr ""

#: doc/classes/VisualServer.xml:3503
msgid "The Viewport does not render 3D but samples."
msgstr ""

#: doc/classes/VisualServer.xml:3506
msgid "The Viewport does not render 3D and does not sample."
msgstr ""

#: doc/classes/VisualServer.xml:3509
msgid "The Viewport renders 3D with effects."
msgstr ""

#: doc/classes/VisualServer.xml:3512
msgid "The Viewport renders 3D but without effects."
msgstr ""

#: doc/classes/VisualServer.xml:3515
msgid "Number of objects drawn in a single frame."
msgstr "在单帧中绘制的对象的数量。"

#: doc/classes/VisualServer.xml:3518
msgid "Number of vertices drawn in a single frame."
msgstr "在单个帧中绘制的顶点数。"

#: doc/classes/VisualServer.xml:3521
msgid "Number of material changes during this frame."
msgstr "此帧期间材质更改的数量。"

#: doc/classes/VisualServer.xml:3524
msgid "Number of shader changes during this frame."
msgstr "这一帧中着色器变化的数量。"

#: doc/classes/VisualServer.xml:3527
msgid "Number of surface changes during this frame."
msgstr "这一帧中表面变化的数量。"

#: doc/classes/VisualServer.xml:3530
msgid "Number of draw calls during this frame."
msgstr "此帧期间的绘制调用数。"

#: doc/classes/VisualServer.xml:3533
#, fuzzy
msgid "Number of 2d items drawn this frame."
msgstr "此帧期间的绘制调用数。"

#: doc/classes/VisualServer.xml:3536
#, fuzzy
msgid "Number of 2d draw calls during this frame."
msgstr "此帧期间的绘制调用数。"

#: doc/classes/VisualServer.xml:3539
msgid "Represents the size of the [enum ViewportRenderInfo] enum."
msgstr "代表[enum ViewportRenderInfo]枚举的大小。"

#: doc/classes/VisualServer.xml:3542
msgid "Debug draw is disabled. Default setting."
msgstr "调试绘制被禁用。默认设置。"

#: doc/classes/VisualServer.xml:3545
#, fuzzy
msgid "Debug draw sets objects to unshaded."
msgstr "调试绘制 在线框中绘制对象。"

#: doc/classes/VisualServer.xml:3548
msgid "Overwrites clear color to [code](0,0,0,0)[/code]."
msgstr ""

#: doc/classes/VisualServer.xml:3551
msgid "Debug draw draws objects in wireframe."
msgstr "调试绘制 在线框中绘制对象。"

#: doc/classes/VisualServer.xml:3554
msgid "Do not use a debug mode."
msgstr "不要使用调试模式。"

#: doc/classes/VisualServer.xml:3557
msgid "Draw all objects as wireframe models."
msgstr "以线框模型绘制所有对象。"

#: doc/classes/VisualServer.xml:3560
msgid ""
"Draw all objects in a way that displays how much overdraw is occurring. "
"Overdraw occurs when a section of pixels is drawn and shaded and then "
"another object covers it up. To optimize a scene, you should reduce overdraw."
msgstr ""
"以显示有多少过度绘制的方式绘制对象。当一个像素部分被绘制和着色,然后另一个物"
"体将其覆盖时,就会发生过度绘制。为了优化一个场景,你应该减少过度绘制。"

#: doc/classes/VisualServer.xml:3563
msgid ""
"Draw all objects without shading. Equivalent to setting all objects shaders "
"to [code]unshaded[/code]."
msgstr ""
"绘制没有阴影的所有物体。相当于将所有物体的着色器设置为[code]unshaded[/code]。"

#: doc/classes/VisualServer.xml:3566
msgid "The instance does not have a type."
msgstr "实例没有类型。"

#: doc/classes/VisualServer.xml:3569
msgid "The instance is a mesh."
msgstr "该实例是一个网格。"

#: doc/classes/VisualServer.xml:3572
msgid "The instance is a multimesh."
msgstr "该实例是一个多网格。"

#: doc/classes/VisualServer.xml:3575
msgid "The instance is an immediate geometry."
msgstr "该实例是一个即时几何图形。"

#: doc/classes/VisualServer.xml:3578
msgid "The instance is a particle emitter."
msgstr "该实例是一个粒子发射器。"

#: doc/classes/VisualServer.xml:3581
msgid "The instance is a light."
msgstr "该实例是一个灯。"

#: doc/classes/VisualServer.xml:3584
msgid "The instance is a reflection probe."
msgstr "该实例是一个反射探针。"

#: doc/classes/VisualServer.xml:3587
msgid "The instance is a GI probe."
msgstr "该实例是一个GI探针。"

#: doc/classes/VisualServer.xml:3590
#, fuzzy
msgid "The instance is a lightmap capture."
msgstr "该实例是一个光照贴图。"

#: doc/classes/VisualServer.xml:3593
msgid "Represents the size of the [enum InstanceType] enum."
msgstr "代表[enum InstanceType]枚举的大小。"

#: doc/classes/VisualServer.xml:3596
msgid ""
"A combination of the flags of geometry instances (mesh, multimesh, immediate "
"and particles)."
msgstr "几何体实例(网格、多网格、即时和粒子)的标志的组合。"

#: doc/classes/VisualServer.xml:3599
msgid "Allows the instance to be used in baked lighting."
msgstr "允许在烘焙照明中使用实例。"

#: doc/classes/VisualServer.xml:3602
msgid "When set, manually requests to draw geometry on next frame."
msgstr "当设置时,手动请求在下一帧绘制几何图形。"

#: doc/classes/VisualServer.xml:3605
msgid "Represents the size of the [enum InstanceFlags] enum."
msgstr "代表[enum InstanceFlags]枚举的大小。"

#: doc/classes/VisualServer.xml:3608
msgid "Disable shadows from this instance."
msgstr "禁用这个实例的阴影。"

#: doc/classes/VisualServer.xml:3611
msgid "Cast shadows from this instance."
msgstr "从此实例投下阴影。"

#: doc/classes/VisualServer.xml:3614
msgid ""
"Disable backface culling when rendering the shadow of the object. This is "
"slightly slower but may result in more correct shadows."
msgstr ""
"在渲染对象的阴影时禁用背面剔除。这会稍微慢一些,但可能会产生更正确的阴影。"

#: doc/classes/VisualServer.xml:3617
msgid ""
"Only render the shadows from the object. The object itself will not be drawn."
msgstr "仅渲染对象的阴影。对象本身不会被绘制。"

#: doc/classes/VisualServer.xml:3620
msgid "The nine patch gets stretched where needed."
msgstr "九宫格在需要的地方被拉伸。"

#: doc/classes/VisualServer.xml:3623
msgid "The nine patch gets filled with tiles where needed."
msgstr "九宫格在需要的地方填充瓷砖。"

#: doc/classes/VisualServer.xml:3626
msgid ""
"The nine patch gets filled with tiles where needed and stretches them a bit "
"if needed."
msgstr "九宫格在需要的地方填充瓷砖,并在需要时将它们拉伸一点。"

#: doc/classes/VisualServer.xml:3629
msgid "Adds light color additive to the canvas."
msgstr "向画布添加浅色。"

#: doc/classes/VisualServer.xml:3632
msgid "Adds light color subtractive to the canvas."
msgstr "从画布中减去浅色。"

#: doc/classes/VisualServer.xml:3635
msgid "The light adds color depending on transparency."
msgstr "灯光根据透明度增加颜色。"

#: doc/classes/VisualServer.xml:3638
msgid "The light adds color depending on mask."
msgstr "灯光根据遮罩增加颜色。"

#: doc/classes/VisualServer.xml:3641
msgid "Do not apply a filter to canvas light shadows."
msgstr "不要对画布上的光影应用滤镜。"

#: doc/classes/VisualServer.xml:3644
#, fuzzy
msgid "Use PCF3 filtering to filter canvas light shadows."
msgstr "使用PCF13过滤法来过滤画布的光影。"

#: doc/classes/VisualServer.xml:3647
msgid "Use PCF5 filtering to filter canvas light shadows."
msgstr "使用PCF5过滤法来过滤画布的光影。"

#: doc/classes/VisualServer.xml:3650
#, fuzzy
msgid "Use PCF7 filtering to filter canvas light shadows."
msgstr "使用PCF5过滤法来过滤画布的光影。"

#: doc/classes/VisualServer.xml:3653
#, fuzzy
msgid "Use PCF9 filtering to filter canvas light shadows."
msgstr "使用PCF5过滤法来过滤画布的光影。"

#: doc/classes/VisualServer.xml:3656
msgid "Use PCF13 filtering to filter canvas light shadows."
msgstr "使用PCF13过滤法来过滤画布的光影。"

#: doc/classes/VisualServer.xml:3659
msgid "Culling of the canvas occluder is disabled."
msgstr "禁用画布遮挡物的剔除。"

#: doc/classes/VisualServer.xml:3662
msgid "Culling of the canvas occluder is clockwise."
msgstr "画布遮挡器的剔除是顺时针的。"

#: doc/classes/VisualServer.xml:3665
msgid "Culling of the canvas occluder is counterclockwise."
msgstr "画布遮挡物的剔除是逆时针的。"

#: doc/classes/VisualServer.xml:3668
msgid "The amount of objects in the frame."
msgstr "框架中的对象数量。"

#: doc/classes/VisualServer.xml:3671
msgid "The amount of vertices in the frame."
msgstr "框架中顶点的数量。"

#: doc/classes/VisualServer.xml:3674
msgid "The amount of modified materials in the frame."
msgstr "框架中修改材料的数量。"

#: doc/classes/VisualServer.xml:3677
msgid "The amount of shader rebinds in the frame."
msgstr "帧中重新绑定的着色器数量。"

#: doc/classes/VisualServer.xml:3680
msgid "The amount of surface changes in the frame."
msgstr "帧中的表面更改量。"

#: doc/classes/VisualServer.xml:3683
msgid "The amount of draw calls in frame."
msgstr "帧中绘制调用的数量。"

#: doc/classes/VisualServer.xml:3686
#, fuzzy
msgid "The amount of 2d items in the frame."
msgstr "框架中顶点的数量。"

#: doc/classes/VisualServer.xml:3689
#, fuzzy
msgid "The amount of 2d draw calls in frame."
msgstr "帧中绘制调用的数量。"

#: doc/classes/VisualServer.xml:3704
msgid "Hardware supports shaders. This enum is currently unused in Godot 3.x."
msgstr "硬件支持着色器。这个枚举目前在Godot 3.x中没有使用。"

#: doc/classes/VisualServer.xml:3707
msgid ""
"Hardware supports multithreading. This enum is currently unused in Godot 3.x."
msgstr "硬件支持多线程。这个枚举目前在Godot 3.x中没有使用。"

#: doc/classes/VisualServer.xml:3710
msgid "Use [Transform2D] to store MultiMesh transform."
msgstr "使用 [Transform2D] 存储 MultiMesh 变换。"

#: doc/classes/VisualServer.xml:3713
msgid "Use [Transform] to store MultiMesh transform."
msgstr "使用 [Transform] 存储 MultiMesh 变换。"

#: doc/classes/VisualServer.xml:3716
msgid "MultiMesh does not use per-instance color."
msgstr ""

#: doc/classes/VisualServer.xml:3719
msgid ""
"MultiMesh color uses 8 bits per component. This packs the color into a "
"single float."
msgstr ""

#: doc/classes/VisualServer.xml:3722
msgid "MultiMesh color uses a float per channel."
msgstr ""

#: doc/classes/VisualServer.xml:3725
msgid "MultiMesh does not use custom data."
msgstr ""

#: doc/classes/VisualServer.xml:3728
msgid ""
"MultiMesh custom data uses 8 bits per component. This packs the 4-component "
"custom data into a single float."
msgstr ""

#: doc/classes/VisualServer.xml:3731
msgid "MultiMesh custom data uses a float per component."
msgstr ""

#: doc/classes/VisualServer.xml:3734
msgid "Reflection probe will update reflections once and then stop."
msgstr "反射探测器将更新一次反射,然后停止。"

#: doc/classes/VisualServer.xml:3737
msgid ""
"Reflection probe will update each frame. This mode is necessary to capture "
"moving objects."
msgstr "反射探针将每帧更新。这种模式对于捕捉移动物体是必要的。"

#: doc/classes/VisualServer.xml:3740
msgid "Draw particles in the order that they appear in the particles array."
msgstr "按照粒子数组中出现的顺序绘制粒子。"

#: doc/classes/VisualServer.xml:3743
msgid "Sort particles based on their lifetime."
msgstr "根据粒子的寿命对其进行分类。"

#: doc/classes/VisualServer.xml:3746
msgid "Sort particles based on their distance to the camera."
msgstr "根据粒子与相机的距离对其进行排序。"

#: doc/classes/VisualServer.xml:3749
msgid "Use the clear color as background."
msgstr "用透明的颜色作为背景。"

#: doc/classes/VisualServer.xml:3752
msgid "Use a specified color as the background."
msgstr "使用指定的颜色作为背景。"

#: doc/classes/VisualServer.xml:3755
msgid "Use a sky resource for the background."
msgstr "使用天空资源作为背景。"

#: doc/classes/VisualServer.xml:3758
msgid ""
"Use a custom color for background, but use a sky for shading and reflections."
msgstr ""

#: doc/classes/VisualServer.xml:3761
msgid ""
"Use a specified canvas layer as the background. This can be useful for "
"instantiating a 2D scene in a 3D world."
msgstr ""
"使用一个指定的画布层作为背景。这对在三维世界中实例化一个二维场景很有用。"

#: doc/classes/VisualServer.xml:3764
msgid ""
"Do not clear the background, use whatever was rendered last frame as the "
"background."
msgstr "不要清除背景,使用上一帧渲染的东西作为背景。"

#: doc/classes/VisualServer.xml:3767
msgid "Represents the size of the [enum EnvironmentBG] enum."
msgstr "代表[enum EnvironmentBG]枚举的大小。"

#: doc/classes/VisualServer.xml:3770
msgid "Use lowest blur quality. Fastest, but may look bad."
msgstr ""

#: doc/classes/VisualServer.xml:3773
msgid "Use medium blur quality."
msgstr ""

#: doc/classes/VisualServer.xml:3776
msgid "Used highest blur quality. Looks the best, but is the slowest."
msgstr ""

#: doc/classes/VisualServer.xml:3779
msgid "Add the effect of the glow on top of the scene."
msgstr ""

#: doc/classes/VisualServer.xml:3782
msgid ""
"Blends the glow effect with the screen. Does not get as bright as additive."
msgstr ""

#: doc/classes/VisualServer.xml:3785
msgid "Produces a subtle color disturbance around objects."
msgstr ""

#: doc/classes/VisualServer.xml:3788
msgid "Shows the glow effect by itself without the underlying scene."
msgstr ""

#: doc/classes/VisualServer.xml:3791
msgid "Output color as they came in."
msgstr "颜色怎么进来就怎么输出。"

#: doc/classes/VisualServer.xml:3794
msgid "Use the Reinhard tonemapper."
msgstr "使用 Reinhard 色调映射器。"

#: doc/classes/VisualServer.xml:3797
msgid "Use the filmic tonemapper."
msgstr "使用电影色调映射器。"

#: doc/classes/VisualServer.xml:3800
msgid "Use the ACES tonemapper."
msgstr "使用 ACES 色调映射器。"

#: doc/classes/VisualServer.xml:3803
#, fuzzy
msgid "Use the ACES Fitted tonemapper."
msgstr "使用 ACES 色调映射器。"

#: doc/classes/VisualServer.xml:3806
msgid "Lowest quality of screen space ambient occlusion."
msgstr "最低的屏幕空间环境遮挡质量。"

#: doc/classes/VisualServer.xml:3809
msgid "Medium quality screen space ambient occlusion."
msgstr "中等质量的屏幕空间环境遮挡。"

#: doc/classes/VisualServer.xml:3812
msgid "Highest quality screen space ambient occlusion."
msgstr "最高质量的屏幕空间环境遮挡。"

#: doc/classes/VisualServer.xml:3815
msgid "Disables the blur set for SSAO. Will make SSAO look noisier."
msgstr "禁用 SSAO 的模糊设置。会使 SSAO 看起来噪点更多。"

#: doc/classes/VisualServer.xml:3818
msgid "Perform a 1x1 blur on the SSAO output."
msgstr "对 SSAO 输出执行 1x1 模糊。"

#: doc/classes/VisualServer.xml:3821
msgid "Performs a 2x2 blur on the SSAO output."
msgstr "对 SSAO 输出执行 2x2 模糊。"

#: doc/classes/VisualServer.xml:3824
msgid "Performs a 3x3 blur on the SSAO output. Use this for smoothest SSAO."
msgstr "对SSAO输出执行3x3模糊。使用它可以获得最平滑的SSAO。"

#: doc/classes/VisualShader.xml:4
msgid "A custom shader program with a visual editor."
msgstr "带有可视化编辑器的自定义着色器程序。"

#: doc/classes/VisualShader.xml:7
msgid ""
"This class allows you to define a custom shader program that can be used for "
"various materials to render objects.\n"
"The visual shader editor creates the shader."
msgstr ""
"此类允许你自定义着色器程序,可以用于各种材质来渲染对象。\n"
"可视化着色器编辑器会创建着色器。"

#: doc/classes/VisualShader.xml:20
msgid "Adds the specified node to the shader."
msgstr "将指定节点添加到着色器中。"

#: doc/classes/VisualShader.xml:31
msgid ""
"Returns [code]true[/code] if the specified nodes and ports can be connected "
"together."
msgstr "如果指定节点和端口可以连接在一起,则返回[code]true[/code]。"

#: doc/classes/VisualShader.xml:42 doc/classes/VisualShader.xml:64
msgid "Connects the specified nodes and ports."
msgstr "连接指定的节点和端口。"

#: doc/classes/VisualShader.xml:53
msgid ""
"Connects the specified nodes and ports, even if they can't be connected. "
"Such connection is invalid and will not function properly."
msgstr ""
"连接指定的节点和端口,即使它们无法连接。这样的连接是无效的,将不能正常工作。"

#: doc/classes/VisualShader.xml:72
msgid ""
"Returns the shader node instance with specified [code]type[/code] and "
"[code]id[/code]."
msgstr "返回具有指定[code]type[/code]和[code]id[/code]的着色器节点实例。"

#: doc/classes/VisualShader.xml:79
msgid "Returns the list of connected nodes with the specified type."
msgstr "返回具有指定类型的连接节点的列表。"

#: doc/classes/VisualShader.xml:86
msgid "Returns the list of all nodes in the shader with the specified type."
msgstr "返回着色器中具有指定类型的所有节点的列表。"

#: doc/classes/VisualShader.xml:94
msgid "Returns the position of the specified node within the shader graph."
msgstr "返回指定节点在着色器图中的位置。"

#: doc/classes/VisualShader.xml:111
msgid ""
"Returns [code]true[/code] if the specified node and port connection exist."
msgstr "如果指定的节点和端口连接存在,返回[code]true[/code]。"

#: doc/classes/VisualShader.xml:119
msgid "Removes the specified node from the shader."
msgstr "从着色器中删除指定的节点。"

#: doc/classes/VisualShader.xml:126
msgid "Sets the mode of this shader."
msgstr "设置该着色器的模式。"

#: doc/classes/VisualShader.xml:135
msgid "Sets the position of the specified node."
msgstr "设置指定节点的位置。"

#: doc/classes/VisualShader.xml:141
msgid "The offset vector of the whole graph."
msgstr "整个图的偏移向量。"

#: doc/classes/VisualShader.xml:146
msgid "A vertex shader, operating on vertices."
msgstr "顶点着色器,对顶点进行操作。"

#: doc/classes/VisualShader.xml:149
msgid "A fragment shader, operating on fragments (pixels)."
msgstr "片段着色器,对片段(像素)进行操作。"

#: doc/classes/VisualShader.xml:152
msgid "A shader for light calculations."
msgstr "用于光线计算的着色器。"

#: doc/classes/VisualShader.xml:155
msgid "Represents the size of the [enum Type] enum."
msgstr "表示 [enum Type] 枚举的大小。"

#: doc/classes/VisualShaderNode.xml:4
msgid "Base class for nodes in a visual shader graph."
msgstr "可视化着色器图中节点的基类。"

#: doc/classes/VisualShaderNode.xml:7
msgid ""
"Visual shader graphs consist of various nodes. Each node in the graph is a "
"separate object and they are represented as a rectangular boxes with title "
"and a set of properties. Each node has also connection ports that allow to "
"connect it to another nodes and control the flow of the shader."
msgstr ""

#: doc/classes/VisualShaderNode.xml:10
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/shading/visual_shaders.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/shading/visual_shaders."
"html"

#: doc/classes/VisualShaderNode.xml:16
msgid ""
"Returns an [Array] containing default values for all of the input ports of "
"the node in the form [code][index0, value0, index1, value1, ...][/code]."
msgstr ""
"返回一个包含节点所有输入端口默认值的[Array],形式为[code][index0, value0, "
"index1, value1, ...][/code]。"

#: doc/classes/VisualShaderNode.xml:23
msgid "Returns the default value of the input [code]port[/code]."
msgstr "返回输入[code]port[/code]的默认值。"

#: doc/classes/VisualShaderNode.xml:30
msgid ""
"Sets the default input ports values using an [Array] of the form [code]"
"[index0, value0, index1, value1, ...][/code]. For example: [code][0, "
"Vector3(0, 0, 0), 1, Vector3(0, 0, 0)][/code]."
msgstr ""
"使用[code][index0, value0, index1, value1, ...][/code]形式的[Array]设置默认输"
"入端口值。例如: [code][0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0)] [/code]。"

#: doc/classes/VisualShaderNode.xml:38
msgid "Sets the default value for the selected input [code]port[/code]."
msgstr "设置所选输入[code]port[/code]的默认值。"

#: doc/classes/VisualShaderNode.xml:44
msgid ""
"Sets the output port index which will be showed for preview. If set to "
"[code]-1[/code] no port will be open for preview."
msgstr ""
"设置将被显示为预览的输出端口索引。如果设置为[code]-1[/code],则没有端口会被打"
"开进行预览。"

#: doc/classes/VisualShaderNode.xml:50
#, fuzzy
msgid ""
"Emitted when the node requests an editor refresh. Currently called only in "
"setter of [member VisualShaderNodeTexture.source], "
"[VisualShaderNodeTexture], and [VisualShaderNodeCubeMap] (and their "
"derivatives)."
msgstr ""
"当节点请求刷新编辑器时触发。目前只在[member VisualShaderNodeTexture.source]、"
"[VisualShaderNodeTexture]和[VisualShaderNodeCubemap](以及它们的派生品)的"
"setter中调用。"

#: doc/classes/VisualShaderNode.xml:56
msgid ""
"Floating-point scalar. Translated to [code]float[/code] type in shader code."
msgstr "浮点标量。在着色器代码中被转换成[code]float[/code]类型。"

#: doc/classes/VisualShaderNode.xml:59
msgid ""
"3D vector of floating-point values. Translated to [code]vec3[/code] type in "
"shader code."
msgstr "浮点值的 3D 向量。在着色器代码中转换为 [code]vec3[/code] 类型。"

#: doc/classes/VisualShaderNode.xml:62
msgid "Boolean type. Translated to [code]bool[/code] type in shader code."
msgstr "布尔类型。在着色器代码中转换为 [code]bool[/code] 类型。"

#: doc/classes/VisualShaderNode.xml:65
msgid "Transform type. Translated to [code]mat4[/code] type in shader code."
msgstr "变换类型。在着色器代码中转换为 [code]mat4[/code] 类型。"

#: doc/classes/VisualShaderNode.xml:68
msgid ""
"Sampler type. Translated to reference of sampler uniform in shader code. Can "
"only be used for input ports in non-uniform nodes."
msgstr ""
"采样器类型。转换为着色器代码中的采样器uniform引用。只能用于non-uniform节点中"
"的输入端口。"

#: doc/classes/VisualShaderNode.xml:71
msgid "Represents the size of the [enum PortType] enum."
msgstr "表示[enum PortType]枚举的大小。"

#: doc/classes/VisualShaderNodeBooleanConstant.xml:4
msgid "A boolean constant to be used within the visual shader graph."
msgstr "在可视化着色器图中使用的布尔常量。"

#: doc/classes/VisualShaderNodeBooleanConstant.xml:7
msgid ""
"Has only one output port and no inputs.\n"
"Translated to [code]bool[/code] in the shader language."
msgstr ""
"只有一个输出端口,没有输入。\n"
"在着色器语言中被转换成[code]bool[/code]。"

#: doc/classes/VisualShaderNodeBooleanConstant.xml:16
msgid "A boolean constant which represents a state of this node."
msgstr "一个布尔常量,表示该节点的状态。"

#: doc/classes/VisualShaderNodeBooleanUniform.xml:4
msgid "A boolean uniform to be used within the visual shader graph."
msgstr "一个在可视化着色器图中使用的布尔uniform。"

#: doc/classes/VisualShaderNodeBooleanUniform.xml:7
msgid "Translated to [code]uniform bool[/code] in the shader language."
msgstr "在着色器语言中被转换成[code]uniform bool[/code]。"

#: doc/classes/VisualShaderNodeColorConstant.xml:4
msgid "A [Color] constant to be used within the visual shader graph."
msgstr "一个[Color]常量,在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeColorConstant.xml:7
msgid ""
"Has two output ports representing RGB and alpha channels of [Color].\n"
"Translated to [code]vec3 rgb[/code] and [code]float alpha[/code] in the "
"shader language."
msgstr ""
"有两个输出端口,表示[Color]的RGB和alpha通道。\n"
"在着色器语言中被转换成[code]vec3 rgb[/code]和[code]float alpha[/code] 。"

#: doc/classes/VisualShaderNodeColorConstant.xml:16
msgid "A [Color] constant which represents a state of this node."
msgstr "一个[Color]常量,表示这个节点的状态。"

#: doc/classes/VisualShaderNodeColorFunc.xml:4
msgid "A [Color] function to be used within the visual shader graph."
msgstr "一个[Color]函数,在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeColorFunc.xml:7
msgid ""
"Accept a [Color] to the input port and transform it according to [member "
"function]."
msgstr "接受一个[Color]到输入端口,并根据 [member function] 对其进行转换。"

#: doc/classes/VisualShaderNodeColorFunc.xml:15
msgid ""
"A function to be applied to the input color. See [enum Function] for options."
msgstr "要应用于输入颜色的函数。参阅[enum Function]的选项。"

#: doc/classes/VisualShaderNodeColorFunc.xml:20
msgid ""
"Converts the color to grayscale using the following formula:\n"
"[codeblock]\n"
"vec3 c = input;\n"
"float max1 = max(c.r, c.g);\n"
"float max2 = max(max1, c.b);\n"
"float max3 = max(max1, max2);\n"
"return vec3(max3, max3, max3);\n"
"[/codeblock]"
msgstr ""
"使用以下公式将颜色转换为灰度。\n"
"[codeblock]\n"
"vec3 c = input;\n"
"float max1 = max(c.r, c.g);\n"
"float max2 = max(max1, c.b);\n"
"float max3 = max(max1, max2);\n"
"return vec3(max3, max3, max3);\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorFunc.xml:30
msgid ""
"Applies sepia tone effect using the following formula:\n"
"[codeblock]\n"
"vec3 c = input;\n"
"float r = (c.r * 0.393) + (c.g * 0.769) + (c.b * 0.189);\n"
"float g = (c.r * 0.349) + (c.g * 0.686) + (c.b * 0.168);\n"
"float b = (c.r * 0.272) + (c.g * 0.534) + (c.b * 0.131);\n"
"return vec3(r, g, b);\n"
"[/codeblock]"
msgstr ""
"使用以下公式应用棕褐色调效果。\n"
"[codeblock]\n"
"vec3 c = input;\n"
"float r = (c.r * 0.393) + (c.g * 0.769) + (c.b * 0.189);\n"
"float g = (c.r * 0.349) + (c.g * 0.686) + (c.b * 0.168);\n"
"float b = (c.r * 0.272) + (c.g * 0.534) + (c.b * 0.131);\n"
"return vec3(r, g, b);\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:4
msgid "A [Color] operator to be used within the visual shader graph."
msgstr "在可视化着色器图中使用的[Color]运算符。"

#: doc/classes/VisualShaderNodeColorOp.xml:7
msgid "Applies [member operator] to two color inputs."
msgstr "将 [member operator] 应用于两个颜色输入。"

#: doc/classes/VisualShaderNodeColorOp.xml:15
msgid ""
"An operator to be applied to the inputs. See [enum Operator] for options."
msgstr "要应用于输入的运算符。参阅[enum Operator]的选项。"

#: doc/classes/VisualShaderNodeColorOp.xml:20
msgid ""
"Produce a screen effect with the following formula:\n"
"[codeblock]\n"
"result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);\n"
"[/codeblock]"
msgstr ""
"用以下公式产生屏幕效果。\n"
"[codeblock]\n"
"result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:26
msgid ""
"Produce a difference effect with the following formula:\n"
"[codeblock]\n"
"result = abs(a - b);\n"
"[/codeblock]"
msgstr ""
"用下面的公式产生差异效果。\n"
"[codeblock]\n"
"result = abs(a - b);\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:32
msgid ""
"Produce a darken effect with the following formula:\n"
"[codeblock]\n"
"result = min(a, b);\n"
"[/codeblock]"
msgstr ""
"用以下公式产生变暗的效果。\n"
"[codeblock]\n"
"result = min(a, b);\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:38
msgid ""
"Produce a lighten effect with the following formula:\n"
"[codeblock]\n"
"result = max(a, b);\n"
"[/codeblock]"
msgstr ""
"用以下公式产生减淡效果。\n"
"[codeblock]\n"
"result = max(a, b);\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:44
msgid ""
"Produce an overlay effect with the following formula:\n"
"[codeblock]\n"
"for (int i = 0; i < 3; i++) {\n"
"    float base = a[i];\n"
"    float blend = b[i];\n"
"    if (base < 0.5) {\n"
"        result[i] = 2.0 * base * blend;\n"
"    } else {\n"
"        result[i] = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base);\n"
"    }\n"
"}\n"
"[/codeblock]"
msgstr ""
"用以下公式产生叠加效果。\n"
"[codeblock]\n"
"for (int i = 0; i < 3; i++) {\n"
"    float base = a[i];\n"
"    float blend = b[i];\n"
"    if (base < 0.5) {\n"
"        result[i] = 2.0 * base * blend;\n"
"    } else {\n"
"        result[i] = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base);\n"
"    }\n"
"}\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:58
msgid ""
"Produce a dodge effect with the following formula:\n"
"[codeblock]\n"
"result = a / (vec3(1.0) - b);\n"
"[/codeblock]"
msgstr ""
"用以下公式产生闪避效果。\n"
"[codeblock]\n"
"result = a / (vec3(1.0) - b);\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:64
msgid ""
"Produce a burn effect with the following formula:\n"
"[codeblock]\n"
"result = vec3(1.0) - (vec3(1.0) - a) / b;\n"
"[/codeblock]"
msgstr ""
"用以下公式产生燃烧效果。\n"
"[codeblock]\n"
"result = vec3(1.0) - (vec3(1.0) - a) / b;\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:70
msgid ""
"Produce a soft light effect with the following formula:\n"
"[codeblock]\n"
"for (int i = 0; i < 3; i++) {\n"
"    float base = a[i];\n"
"    float blend = b[i];\n"
"    if (base < 0.5) {\n"
"        result[i] = base * (blend + 0.5);\n"
"    } else {\n"
"        result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));\n"
"    }\n"
"}\n"
"[/codeblock]"
msgstr ""
"用以下公式产生柔和的光线效果。\n"
"[codeblock]\n"
"for (int i = 0; i < 3; i++) {\n"
"    float base = a[i];\n"
"    float blend = b[i];\n"
"    if (base < 0.5) {\n"
"        result[i] = base * (blend + 0.5);\n"
"    } else {\n"
"        result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));\n"
"    }\n"
"}\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorOp.xml:84
msgid ""
"Produce a hard light effect with the following formula:\n"
"[codeblock]\n"
"for (int i = 0; i < 3; i++) {\n"
"    float base = a[i];\n"
"    float blend = b[i];\n"
"    if (base < 0.5) {\n"
"        result[i] = base * (2.0 * blend);\n"
"    } else {\n"
"        result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));\n"
"    }\n"
"}\n"
"[/codeblock]"
msgstr ""
"用下面的公式产生一个硬光效果。\n"
"[codeblock]\n"
"for (int i = 0; i < 3; i++) {\n"
"    float base = a[i];\n"
"    float blend = b[i];\n"
"    if (base < 0.5) {\n"
"        result[i] = base * (2.0 * blend);\n"
"    } else {\n"
"        result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));\n"
"    }\n"
"}\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeColorUniform.xml:4
msgid "A [Color] uniform to be used within the visual shader graph."
msgstr "在可视化着色器图中使用的一个[Color]uniform。"

#: doc/classes/VisualShaderNodeColorUniform.xml:7
msgid "Translated to [code]uniform vec4[/code] in the shader language."
msgstr "在着色器语言中被转换成[code]uniform vec4[/code]。"

#: doc/classes/VisualShaderNodeCompare.xml:4
msgid "A comparison function for common types within the visual shader graph."
msgstr "可视化着色器图内常见类型的比较函数。"

#: doc/classes/VisualShaderNodeCompare.xml:7
msgid ""
"Compares [code]a[/code] and [code]b[/code] of [member type] by [member "
"function]. Returns a boolean scalar. Translates to [code]if[/code] "
"instruction in shader code."
msgstr ""
"通过 [member function] 比较[code]a[/code]和[code]b[/code]的 [member type]。返"
"回一个布尔标量。在着色器代码中转换成[code]if[/code]指令。"

#: doc/classes/VisualShaderNodeCompare.xml:15
msgid ""
"Extra condition which is applied if [member type] is set to [constant "
"CTYPE_VECTOR]."
msgstr "如果 [member type] 被设置为[constant CTYPE_VECTOR],则适用额外条件。"

#: doc/classes/VisualShaderNodeCompare.xml:18
msgid "A comparison function. See [enum Function] for options."
msgstr "比较函数。参阅[enum Function]的选项。"

#: doc/classes/VisualShaderNodeCompare.xml:21
msgid ""
"The type to be used in the comparison. See [enum ComparisonType] for options."
msgstr "在比较中要使用的类型。参阅[enum ComparisonType]的选项。"

#: doc/classes/VisualShaderNodeCompare.xml:26
msgid "A floating-point scalar."
msgstr "浮点标量。"

#: doc/classes/VisualShaderNodeCompare.xml:29
msgid "A 3D vector type."
msgstr "3D向量类型。"

#: doc/classes/VisualShaderNodeCompare.xml:32
msgid "A boolean type."
msgstr "布林类型。"

#: doc/classes/VisualShaderNodeCompare.xml:35
msgid "A transform ([code]mat4[/code]) type."
msgstr "变换类型,即[code]mat4[/code]。"

#: doc/classes/VisualShaderNodeCompare.xml:38
msgid "Comparison for equality ([code]a == b[/code])."
msgstr "相等比较,即[code]a == b[/code]。"

#: doc/classes/VisualShaderNodeCompare.xml:41
msgid "Comparison for inequality ([code]a != b[/code])."
msgstr "不等比较,即[code]a != b[/code]。"

#: doc/classes/VisualShaderNodeCompare.xml:44
msgid ""
"Comparison for greater than ([code]a > b[/code]). Cannot be used if [member "
"type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM]."
msgstr ""
"大于比较,即[code]a > b[/code]。如果 [member type] 设置为 [constant "
"CTYPE_BOOLEAN]或 [constant CTYPE_TRANSFORM]则不能使用。"

#: doc/classes/VisualShaderNodeCompare.xml:47
msgid ""
"Comparison for greater than or equal ([code]a >= b[/code]). Cannot be used "
"if [member type] set to [constant CTYPE_BOOLEAN] or [constant "
"CTYPE_TRANSFORM]."
msgstr ""
"大于或等于的比较,即[code]a >= b[/code]。如果[member type]设置为 [constant "
"CTYPE_BOOLEAN] 或[constant CTYPE_TRANSFORM]则不能使用。"

#: doc/classes/VisualShaderNodeCompare.xml:50
msgid ""
"Comparison for less than ([code]a < b[/code]). Cannot be used if [member "
"type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM]."
msgstr ""
"小于比较,即[code]a < b[/code]。如果 [member type] 设置为[constant "
"CTYPE_BOOLEAN]或 [constant CTYPE_TRANSFORM]则不能使用。"

#: doc/classes/VisualShaderNodeCompare.xml:53
#, fuzzy
msgid ""
"Comparison for less than or equal ([code]a < b[/code]). Cannot be used if "
"[member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM]."
msgstr ""
"小于或等于的比较,即[code]a <= b[/code]。如果 [member type] 设置为 [constant "
"CTYPE_BOOLEAN] 或 [constant CTYPE_TRANSFORM]则不能使用。"

#: doc/classes/VisualShaderNodeCompare.xml:56
msgid ""
"The result will be true if all of component in vector satisfy the comparison "
"condition."
msgstr "如果向量中的所有分量都满足比较条件,则结果为真。"

#: doc/classes/VisualShaderNodeCompare.xml:59
msgid ""
"The result will be true if any of component in vector satisfy the comparison "
"condition."
msgstr "如果向量中的任意分量满足比较条件,则结果为真。"

#: doc/classes/VisualShaderNodeCubeMap.xml:4
#, fuzzy
msgid "A [CubeMap] sampling node to be used within the visual shader graph."
msgstr "一个[Cubemap]采样节点,用于可视化着色器图中。"

#: doc/classes/VisualShaderNodeCubeMap.xml:7
msgid ""
"Translated to [code]texture(cubemap, vec3)[/code] in the shader language. "
"Returns a color vector and alpha channel as scalar."
msgstr ""
"在着色器语言中被转换成[code]texture(cubemap, vec3)[/code]。返回一个颜色向量和"
"alpha通道的标量。"

#: doc/classes/VisualShaderNodeCubeMap.xml:15
#, fuzzy
msgid ""
"The [CubeMap] texture to sample when using [constant SOURCE_TEXTURE] as "
"[member source]."
msgstr ""
"当使用[constant SOURCE_TEXTURE]作为 [member source] 时,需要对[Cubemap]纹理进"
"行采样。"

#: doc/classes/VisualShaderNodeCubeMap.xml:18
msgid ""
"Defines which source should be used for the sampling. See [enum Source] for "
"options."
msgstr "定义采样应该使用哪个源。参阅[enum Source]的选项。"

#: doc/classes/VisualShaderNodeCubeMap.xml:21
#: doc/classes/VisualShaderNodeTextureUniform.xml:18
msgid ""
"Defines the type of data provided by the source texture. See [enum "
"TextureType] for options."
msgstr "定义源纹理提供的数据类型。选项参阅[enum TextureType]。"

#: doc/classes/VisualShaderNodeCubeMap.xml:26
#, fuzzy
msgid ""
"Use the [CubeMap] set via [member cube_map]. If this is set to [member "
"source], the [code]samplerCube[/code] port is ignored."
msgstr ""
"通过使用[member cube_map]设置的[Cubemap]。如果设置为[member source],"
"[code]samplerCube[/code]端口将被忽略。"

#: doc/classes/VisualShaderNodeCubeMap.xml:29
#, fuzzy
msgid ""
"Use the [CubeMap] sampler reference passed via the [code]samplerCube[/code] "
"port. If this is set to [member source], the [member cube_map] texture is "
"ignored."
msgstr ""
"通过使用[code]samplerCube[/code]端口传递的[Cubemap]采样器引用。如果设置为"
"[member source],那么[member cube_map]纹理将被忽略。"

#: doc/classes/VisualShaderNodeCubeMap.xml:32
#: doc/classes/VisualShaderNodeTexture.xml:44
#: doc/classes/VisualShaderNodeTextureUniform.xml:23
msgid "No hints are added to the uniform declaration."
msgstr "在uniform声明中未添加提示。"

#: doc/classes/VisualShaderNodeCubeMap.xml:35
#: doc/classes/VisualShaderNodeTexture.xml:47
#: doc/classes/VisualShaderNodeTextureUniform.xml:26
msgid ""
"Adds [code]hint_albedo[/code] as hint to the uniform declaration for proper "
"sRGB to linear conversion."
msgstr ""
"将[code]hint_albedo[/code]作为提示添加到uniform声明中,以便将sRGB转换为线性。"

#: doc/classes/VisualShaderNodeCubeMap.xml:38
#: doc/classes/VisualShaderNodeTexture.xml:50
#: doc/classes/VisualShaderNodeTextureUniform.xml:29
msgid ""
"Adds [code]hint_normal[/code] as hint to the uniform declaration, which "
"internally converts the texture for proper usage as normal map."
msgstr ""
"将[code]hint_normal[/code]作为提示添加到uniform声明中,该声明在内部将纹理转换"
"为法线贴图。"

#: doc/classes/VisualShaderNodeCubeMapUniform.xml:4
#, fuzzy
msgid "A [CubeMap] uniform node to be used within the visual shader graph."
msgstr "[Cubemap] uniform节点,用于可视化着色器图中。"

#: doc/classes/VisualShaderNodeCubeMapUniform.xml:7
#, fuzzy
msgid ""
"Translated to [code]uniform samplerCube[/code] in the shader language. The "
"output value can be used as port for [VisualShaderNodeCubeMap]."
msgstr ""
"在着色器语言中被转换成[code]uniform samplerCube[/code]。其输出值可以作为"
"[VisualShaderNodeCubemap]的端口。"

#: doc/classes/VisualShaderNodeCustom.xml:4
msgid ""
"Virtual class to define custom [VisualShaderNode]s for use in the Visual "
"Shader Editor."
msgstr ""
"用于定义自定义[VisualShaderNode]的虚拟类,以便在可视化着色器编辑器中使用。"

#: doc/classes/VisualShaderNodeCustom.xml:7
msgid ""
"By inheriting this class you can create a custom [VisualShader] script addon "
"which will be automatically added to the Visual Shader Editor. The "
"[VisualShaderNode]'s behavior is defined by overriding the provided virtual "
"methods.\n"
"In order for the node to be registered as an editor addon, you must use the "
"[code]tool[/code] keyword and provide a [code]class_name[/code] for your "
"custom script. For example:\n"
"[codeblock]\n"
"tool\n"
"extends VisualShaderNodeCustom\n"
"class_name VisualShaderNodeNoise\n"
"[/codeblock]"
msgstr ""
"通过继承这个类,你可以创建一个自定义的[VisualShader]脚本插件,它将被自动添加"
"到可视化着色器编辑器中。[VisualShaderNode]的行为是通过重写所提供的虚方法来定"
"义的。\n"
"为了使节点被注册为编辑器插件,你必须使用[code]tool[/code]关键字,并为自定义脚"
"本提供一个[code]class_name[/code]。例如:\n"
"[codeblock]\n"
"tool\n"
"extends VisualShaderNodeCustom\n"
"class_name VisualShaderNodeNoise\n"
"[/codeblock]"

#: doc/classes/VisualShaderNodeCustom.xml:16
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/"
"visual_shader_plugins.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/latest/tutorials/plugins/editor/"
"visual_shader_plugins.html"

#: doc/classes/VisualShaderNodeCustom.xml:22
#, fuzzy
msgid ""
"Override this method to define the category of the associated custom node in "
"the Visual Shader Editor's members dialog. The path may look like "
"[code]\"MyGame/MyFunctions/Noise\"[/code].\n"
"Defining this method is [b]optional[/b]. If not overridden, the node will be "
"filed under the \"Custom\" category."
msgstr ""
"重写此方法,在可视化着色器编辑器的成员对话框中定义相关自定义节点的路径。该路"
"径可能类似 [code]\"MyGame/MyFunctions/Noise\"[/code]。\n"
"定义这个方法是[b]optional[/b]可选 的。如果没有被重写,该节点将被归入 \"Addons"
"\" 类别。"

#: doc/classes/VisualShaderNodeCustom.xml:33
msgid ""
"Override this method to define the actual shader code of the associated "
"custom node. The shader code should be returned as a string, which can have "
"multiple lines (the [code]\"\"\"[/code] multiline string construct can be "
"used for convenience).\n"
"The [code]input_vars[/code] and [code]output_vars[/code] arrays contain the "
"string names of the various input and output variables, as defined by "
"[code]_get_input_*[/code] and [code]_get_output_*[/code] virtual methods in "
"this class.\n"
"The output ports can be assigned values in the shader code. For example, "
"[code]return output_vars[0] + \" = \" + input_vars[0] + \";\"[/code].\n"
"You can customize the generated code based on the shader [code]mode[/code] "
"(see [enum Shader.Mode]) and/or [code]type[/code] (see [enum VisualShader."
"Type]).\n"
"Defining this method is [b]required[/b]."
msgstr ""
"重写此方法来定义相关自定义节点的实际着色器代码。着色器代码应该以字符串的形式"
"返回,可以有多行,为了方便,可以使用[code]\"\"[/code]多行字符串结构。\n"
"[code]input_vars[/code]和[code]output_vars[/code]数组包含各种输入和输出变量的"
"字符串名称,正如本类中[code]_get_input_*[/code]和[code]_get_output_*[/code]虚"
"方法所定义的。\n"
"输出端口可以在着色器代码中被分配值。例如,[code]return output_vars[0] + \" = "
"\" + input_vars[0] + \";\"[/code]。\n"
"你可以根据着色器[code]mode[/code](参阅[enum Shader.Mode])和/或[code]type[/"
"code](参阅[enum VisualShader.Type])来定制生成的代码。\n"
"定义这个方法是[b]required[/b]必须的。"

#: doc/classes/VisualShaderNodeCustom.xml:43
msgid ""
"Override this method to define the description of the associated custom node "
"in the Visual Shader Editor's members dialog.\n"
"Defining this method is [b]optional[/b]."
msgstr ""
"重写此方法来定义可视化着色器编辑器的成员对话框中的相关自定义节点的描述。\n"
"定义这个方法是[b]optional[/b]可选的。"

#: doc/classes/VisualShaderNodeCustom.xml:51
msgid ""
"Override this method to add shader code on top of the global shader, to "
"define your own standard library of reusable methods, varyings, constants, "
"uniforms, etc. The shader code should be returned as a string, which can "
"have multiple lines (the [code]\"\"\"[/code] multiline string construct can "
"be used for convenience).\n"
"Be careful with this functionality as it can cause name conflicts with other "
"custom nodes, so be sure to give the defined entities unique names.\n"
"You can customize the generated code based on the shader [code]mode[/code] "
"(see [enum Shader.Mode]).\n"
"Defining this method is [b]optional[/b]."
msgstr ""
"重写此方法,在全局着色器之上添加着色器代码,以定义你自己的可重用方法、变量、"
"常量、uniform等的标准库。着色器代码应以字符串的形式返回,可以有多行,为了方"
"便,可以使用[code]\"\"[/code]多行字符串结构。\n"
"要小心使用这个功能,因为它可能导致与其他自定义节点的名称冲突,所以一定要给定"
"义的实体起唯一的名字。\n"
"你可以根据着色器[code]mode[/code]来定制生成的代码,参阅[enum Shader.Mode]。\n"
"定义这个方法是[b]optional[/b]可选的。"

#: doc/classes/VisualShaderNodeCustom.xml:60
msgid ""
"Override this method to define the amount of input ports of the associated "
"custom node.\n"
"Defining this method is [b]required[/b]. If not overridden, the node has no "
"input ports."
msgstr ""
"重写此方法来定义相关自定义节点的输入端口数量。\n"
"定义这个方法是[b]required[/b]必须的。如果没有被重写,节点就没有输入端口。"

#: doc/classes/VisualShaderNodeCustom.xml:68
msgid ""
"Override this method to define the names of input ports of the associated "
"custom node. The names are used both for the input slots in the editor and "
"as identifiers in the shader code, and are passed in the [code]input_vars[/"
"code] array in [method _get_code].\n"
"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],但推荐使用。如果没有被重写,输入端口被命名为"
"[code]\"in\"+str(port)[/code]。"

#: doc/classes/VisualShaderNodeCustom.xml:76
msgid ""
"Override this method to define the returned type of each input port of the "
"associated custom node (see [enum VisualShaderNode.PortType] for possible "
"types).\n"
"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 "
"VisualShaderNode.PortType]的可能类型。\n"
"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被重写,输入端口将返回 "
"[constant VisualShaderNode.PORT_TYPE_SCALAR] 类型。"

#: doc/classes/VisualShaderNodeCustom.xml:83
msgid ""
"Override this method to define the name of the associated custom node in the "
"Visual Shader Editor's members dialog and graph.\n"
"Defining this method is [b]optional[/b], but recommended. If not overridden, "
"the node will be named as \"Unnamed\"."
msgstr ""
"重写此方法来定义可视化着色器编辑器的成员对话框和图中的相关自定义节点的名"
"称。\n"
"定义这个方法是[b]可选的[/b],但推荐使用。如果不重写,节点将被命名为 \"Unnamed"
"\"。"

#: doc/classes/VisualShaderNodeCustom.xml:90
msgid ""
"Override this method to define the amount of output ports of the associated "
"custom node.\n"
"Defining this method is [b]required[/b]. If not overridden, the node has no "
"output ports."
msgstr ""
"重写此方法来定义相关自定义节点的输出端口数量。\n"
"定义这个方法是[b]必须的[/b]。如果不重写,节点就没有输出端口。"

#: doc/classes/VisualShaderNodeCustom.xml:98
msgid ""
"Override this method to define the names of output ports of the associated "
"custom node. The names are used both for the output slots in the editor and "
"as identifiers in the shader code, and are passed in the [code]output_vars[/"
"code] array in [method _get_code].\n"
"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],但推荐使用。如果没有被重写,输出端口被命名为"
"[code]\"out\" + str(port)[/code]。"

#: doc/classes/VisualShaderNodeCustom.xml:106
msgid ""
"Override this method to define the returned type of each output port of the "
"associated custom node (see [enum VisualShaderNode.PortType] for possible "
"types).\n"
"Defining this method is [b]optional[/b], but recommended. If not overridden, "
"output ports will return the [constant VisualShaderNode.PORT_TYPE_SCALAR] "
"type."
msgstr ""
"重写此方法以定义相关自定义节点的每个输出端口的返回类型,参阅[enum "
"VisualShaderNode.PortType]的可能类型。\n"
"定义这个方法是[b]可选的[/b],但推荐使用。如果没有被重写,输出端口将返回"
"[constant VisualShaderNode.PORT_TYPE_SCALAR]类型。"

#: doc/classes/VisualShaderNodeCustom.xml:113
msgid ""
"Override this method to define the return icon of the associated custom node "
"in the Visual Shader Editor's members dialog.\n"
"Defining this method is [b]optional[/b]. If not overridden, no return icon "
"is shown."
msgstr ""
"重写此方法来定义可视化着色器编辑器的成员对话框中相关自定义节点的返回图标。\n"
"定义这个方法是[b]可选的[/b]。如果不重写,就不会显示返回图标。"

#: doc/classes/VisualShaderNodeCustom.xml:120
#, fuzzy
msgid ""
"Override this method to define the subcategory of the associated custom node "
"in the Visual Shader Editor's members dialog.\n"
"Defining this method is [b]optional[/b]. If not overridden, the node will be "
"filed under the root of the main category (see [method _get_category])."
msgstr ""
"重写此方法来定义可视化着色器编辑器的成员对话框中相关自定义节点的返回图标。\n"
"定义这个方法是[b]可选的[/b]。如果不重写,就不会显示返回图标。"

#: doc/classes/VisualShaderNodeDeterminant.xml:4
msgid ""
"Calculates the determinant of a [Transform] within the visual shader graph."
msgstr "计算可视化着色器图中的[Transform]的行列式。"

#: doc/classes/VisualShaderNodeDeterminant.xml:7
#, fuzzy
msgid "Translates to [code]determinant(x)[/code] in the shader language."
msgstr "在着色器语言中转换成[code]deteminant(x)[/code]。"

#: doc/classes/VisualShaderNodeDotProduct.xml:4
msgid "Calculates a dot product of two vectors within the visual shader graph."
msgstr "计算可视化着色器图中两个向量的点积。"

#: doc/classes/VisualShaderNodeDotProduct.xml:7
msgid "Translates to [code]dot(a, b)[/code] in the shader language."
msgstr "在着色器语言中转换成[code]dot(a, b)[/code]。"

#: doc/classes/VisualShaderNodeExpression.xml:4
msgid ""
"A custom visual shader graph expression written in Godot Shading Language."
msgstr "用Godot着色语言编写的自定义可视化着色器图形表达式。"

#: doc/classes/VisualShaderNodeExpression.xml:7
#, fuzzy
msgid ""
"Custom Godot Shading Language expression, with a custom amount of input and "
"output ports.\n"
"The provided code is directly injected into the graph's matching shader "
"function ([code]vertex[/code], [code]fragment[/code], or [code]light[/"
"code]), so it cannot be used to declare functions, varyings, uniforms, or "
"global constants. See [VisualShaderNodeGlobalExpression] for such global "
"definitions."
msgstr ""
"自定义Godot着色语言表达式,有自定义数量的输入和输出端口。\n"
"所提供的代码直接注入到图形匹配着色器函数中([code]vertex[/code], "
"[code]fragment[/code], 或[code]light[/code]),所以它不能用于声明函数、"
"varyings、uniforms或全局常量。请参阅[VisualShaderNodeGlobalExpression]以了解"
"此类全局定义。"

#: doc/classes/VisualShaderNodeExpression.xml:16
msgid ""
"An expression in Godot Shading Language, which will be injected at the start "
"of the graph's matching shader function ([code]vertex[/code], "
"[code]fragment[/code], or [code]light[/code]), and thus cannot be used to "
"declare functions, varyings, uniforms, or global constants."
msgstr ""
"Godot 着色器语言中的表达式,它将被注入到图形匹配的着色器函数([code]vertex[/"
"code], [code]fragment[/code], or [code]light[/code])的开头,因此不能用于声明"
"函数、varyings、uniforms或全局常量。"

#: doc/classes/VisualShaderNodeFaceForward.xml:4
msgid ""
"Returns the vector that points in the same direction as a reference vector "
"within the visual shader graph."
msgstr "返回与可视化着色器图中的参考向量指向相同方向的向量。"

#: doc/classes/VisualShaderNodeFaceForward.xml:7
#, fuzzy
msgid ""
"Translates to [code]faceforward(N, I, Nref)[/code] in the shader language. "
"The function has three vector parameters: [code]N[/code], the vector to "
"orient, [code]I[/code], the incident vector, and [code]Nref[/code], the "
"reference vector. If the dot product of [code]I[/code] and [code]Nref[/code] "
"is smaller than zero the return value is [code]N[/code]. Otherwise, [code]-"
"N[/code] is returned."
msgstr ""
"在着色器语言中翻译为[code]faceforward(N, I, Nref)[/code]。该函数有三个向量参"
"数。[code]N[/code],要定向的向量,[code]I[/code],入射向量,以及[code]Nref[/"
"code],参考向量。如果[code]I[/code]和[code]Nref[/code]的点积小于零,返回值为"
"[code]N[/code]。否则将返回[code]-N[/code]。"

#: doc/classes/VisualShaderNodeFresnel.xml:4
msgid "A Fresnel effect to be used within the visual shader graph."
msgstr "在可视化着色器图中使用的菲涅尔效果。"

#: doc/classes/VisualShaderNodeFresnel.xml:7
msgid ""
"Returns falloff based on the dot product of surface normal and view "
"direction of camera (pass associated inputs to it)."
msgstr "返回基于表面法线和相机视角方向的点积的衰减,将相关输入传给它。"

#: doc/classes/VisualShaderNodeGlobalExpression.xml:4
msgid ""
"A custom global visual shader graph expression written in Godot Shading "
"Language."
msgstr "用Godot着色器语言编写的自定义全局可视化着色器图形表达式。"

#: doc/classes/VisualShaderNodeGlobalExpression.xml:7
msgid ""
"Custom Godot Shader Language expression, which is placed on top of the "
"generated shader. You can place various function definitions inside to call "
"later in [VisualShaderNodeExpression]s (which are injected in the main "
"shader functions). You can also declare varyings, uniforms and global "
"constants."
msgstr ""
"自定义Godot着色器语言表达式,位于生成的着色器之上。你可以在内部放置各种函数定"
"义,以便以后在[VisualShaderNodeExpression]中调用,这些函数被注入到主着色器函"
"数中。你还可以声明varyings、uniforms 和全局常量。"

#: doc/classes/VisualShaderNodeGroupBase.xml:4
msgid ""
"Base class for a family of nodes with variable amount of input and output "
"ports within the visual shader graph."
msgstr "可视化着色器图中具有可变数量的输入和输出端口的系列节点的基类。"

#: doc/classes/VisualShaderNodeGroupBase.xml:7
msgid "Currently, has no direct usage, use the derived classes instead."
msgstr "目前,没有直接使用,而用派生类代替。"

#: doc/classes/VisualShaderNodeGroupBase.xml:18
msgid ""
"Adds an input port with the specified [code]type[/code] (see [enum "
"VisualShaderNode.PortType]) and [code]name[/code]."
msgstr ""
"用指定的[code]type[/code]和[code]name[/code]添加一个输入端口,参阅[enum "
"VisualShaderNode.PortType]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:27
msgid ""
"Adds an output port with the specified [code]type[/code] (see [enum "
"VisualShaderNode.PortType]) and [code]name[/code]."
msgstr ""
"用指定的[code]type[/code]和[code]name[/code]添加一个输出端口,参阅[enum "
"VisualShaderNode.PortType]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:33
msgid "Removes all previously specified input ports."
msgstr "移除所有先前指定的输入端口。"

#: doc/classes/VisualShaderNodeGroupBase.xml:39
msgid "Removes all previously specified output ports."
msgstr "移除所有先前指定的输出端口。"

#: doc/classes/VisualShaderNodeGroupBase.xml:45
msgid ""
"Returns a free input port ID which can be used in [method add_input_port]."
msgstr "返回一个空闲的输入端口ID,可以在[method add_input_port]中使用。"

#: doc/classes/VisualShaderNodeGroupBase.xml:51
msgid ""
"Returns a free output port ID which can be used in [method add_output_port]."
msgstr "返回一个空闲的输出端口ID,可以在[method add_output_port]中使用。"

#: doc/classes/VisualShaderNodeGroupBase.xml:57
msgid ""
"Returns the number of input ports in use. Alternative for [method "
"get_free_input_port_id]."
msgstr "返回正在使用的输入端口的数量。替代[method get_free_input_port_id]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:63
#, fuzzy
msgid ""
"Returns a [String] description of the input ports as a colon-separated list "
"using the format [code]id,type,name;[/code] (see [method add_input_port])."
msgstr ""
"返回输入端口的[String]描述,以冒号分隔的列表,使用[code]id,type,name;[/code]"
"格式,参阅[method add_input_port]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:69
msgid ""
"Returns the number of output ports in use. Alternative for [method "
"get_free_output_port_id]."
msgstr "返回正在使用的输出端口的数量。替代[method get_free_output_port_id]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:75
#, fuzzy
msgid ""
"Returns a [String] description of the output ports as a colon-separated list "
"using the format [code]id,type,name;[/code] (see [method add_output_port])."
msgstr ""
"返回输出端口的[String]描述,以冒号分隔的列表,使用[code]id,type,name;[/code]"
"格式,参阅[method add_output_port]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:82
msgid "Returns [code]true[/code] if the specified input port exists."
msgstr "如果指定的输入端口存在,返回[code]true[/code]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:89
msgid "Returns [code]true[/code] if the specified output port exists."
msgstr "如果指定的输出端口存在,返回[code]true[/code]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:96
msgid ""
"Returns [code]true[/code] if the specified port name does not override an "
"existed port name and is valid within the shader."
msgstr ""
"如果指定的端口名称没有重写现有的端口名称,并且在着色器中有效,则返回"
"[code]true[/code]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:103
msgid "Removes the specified input port."
msgstr "移除指定的输入端口。"

#: doc/classes/VisualShaderNodeGroupBase.xml:110
msgid "Removes the specified output port."
msgstr "移除指定的输出端口。"

#: doc/classes/VisualShaderNodeGroupBase.xml:118
msgid "Renames the specified input port."
msgstr "重命名指定的输入端口。"

#: doc/classes/VisualShaderNodeGroupBase.xml:126
msgid ""
"Sets the specified input port's type (see [enum VisualShaderNode.PortType])."
msgstr "设置指定的输入端口的类型,参阅[enum VisualShaderNode.PortType]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:133
msgid ""
"Defines all input ports using a [String] formatted as a colon-separated "
"list: [code]id,type,name;[/code] (see [method add_input_port])."
msgstr ""
"使用一个[String]格式的以冒号分隔的列表来定义所有输入端口:[code]id,type,name;"
"[/code],参阅[method add_input_port]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:141
msgid "Renames the specified output port."
msgstr "重命名指定的输出端口。"

#: doc/classes/VisualShaderNodeGroupBase.xml:149
msgid ""
"Sets the specified output port's type (see [enum VisualShaderNode.PortType])."
msgstr "设置指定输出端口的类型,参阅[enum VisualShaderNode.PortType]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:156
msgid ""
"Defines all output ports using a [String] formatted as a colon-separated "
"list: [code]id,type,name;[/code] (see [method add_output_port])."
msgstr ""
"使用一个[String]格式的以冒号分隔的列表来定义所有输出端口: [code]id,type,name;"
"[/code] ,参阅[method add_output_port]。"

#: doc/classes/VisualShaderNodeGroupBase.xml:162
msgid "The size of the node in the visual shader graph."
msgstr "可视化着色器图中节点的大小。"

#: doc/classes/VisualShaderNodeInput.xml:6
msgid ""
"Gives access to input variables (built-ins) available for the shader. See "
"the shading reference for the list of available built-ins for each shader "
"type (check [code]Tutorials[/code] section for link)."
msgstr ""
"提供对着色器可用的输入变量(内置)的访问。关于每种着色器类型的可用内置变量列"
"表,请参阅着色器参考,即查看[code]Tutorials[/code]教程部分的链接。"

#: doc/classes/VisualShaderNodeInput.xml:9
#, fuzzy
msgid ""
"https://docs.godotengine.org/en/3.4/tutorials/shading/shading_reference/"
"index.html"
msgstr ""
"https://docs.godotengine.org/zh_CN/stable/tutorials/shading/"
"shading_reference/index.html"

#: doc/classes/VisualShaderNodeInput.xml:20
msgid ""
"One of the several input constants in lower-case style like: \"vertex"
"\"([code]VERTEX[/code]) or \"point_size\"([code]POINT_SIZE[/code])."
msgstr ""
"小写风格的几个输入常量之一,比如。\"vertex\"([code]VERTEX[/code]) or "
"\"point_size\"([code]POINT_SIZE[/code])."

#: doc/classes/VisualShaderNodeIs.xml:4
msgid ""
"A boolean comparison operator to be used within the visual shader graph."
msgstr "布尔比较运算符,在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeIs.xml:7
msgid ""
"Returns the boolean result of the comparison between [code]INF[/code] or "
"[code]NaN[/code] and a scalar parameter."
msgstr "返回[code]INF[/code]或[code]NaN[/code]与标量参数之间比较的布尔值结果。"

#: doc/classes/VisualShaderNodeIs.xml:15
msgid "The comparison function. See [enum Function] for options."
msgstr "比较函数。参阅[enum Function]的选项。"

#: doc/classes/VisualShaderNodeIs.xml:20
msgid "Comparison with [code]INF[/code] (Infinity)."
msgstr "与[code]INF[/code](无穷大)比较。"

#: doc/classes/VisualShaderNodeIs.xml:23
msgid ""
"Comparison with [code]NaN[/code] (Not a Number; denotes invalid numeric "
"results, e.g. division by zero)."
msgstr "与[code]NaN[/code]比较(不是一个数字;表示无效的数字结果,如除以0)。"

#: doc/classes/VisualShaderNodeOuterProduct.xml:4
msgid ""
"Calculates an outer product of two vectors within the visual shader graph."
msgstr "计算可视化着色器图中两个向量的外积。"

#: doc/classes/VisualShaderNodeOuterProduct.xml:7
msgid ""
"[code]OuterProduct[/code] treats the first parameter [code]c[/code] as a "
"column vector (matrix with one column) and the second parameter [code]r[/"
"code] as a row vector (matrix with one row) and does a linear algebraic "
"matrix multiply [code]c * r[/code], yielding a matrix whose number of rows "
"is the number of components in [code]c[/code] and whose number of columns is "
"the number of components in [code]r[/code]."
msgstr ""
"[code]OuterProduct[/code]将第一个参数[code]c[/code]作为列向量(有一列的矩"
"阵),将第二个参数[code]r[/code]作为行向量(有一行的矩阵),进行线性代数矩阵"
"乘法[code]c * r[/code]。产生一个矩阵,其行数是[code]c[/code]的分量数,其列数"
"是[code]r[/code]的分量数。"

#: doc/classes/VisualShaderNodeOutput.xml:4
msgid "Represents the output shader parameters within the visual shader graph."
msgstr "表示可视化着色器图中的输出着色器参数。"

#: doc/classes/VisualShaderNodeOutput.xml:7
msgid ""
"This visual shader node is present in all shader graphs in form of \"Output"
"\" block with multiple output value ports."
msgstr ""
"此可视化着色器节点以 \"输出\" 块的形式出现在所有着色器图中,有多个输出值端"
"口。"

#: doc/classes/VisualShaderNodeScalarClamp.xml:4
msgid "Clamps a scalar value within the visual shader graph."
msgstr "在可视化着色器图中限制一个标量值。"

#: doc/classes/VisualShaderNodeScalarClamp.xml:7
msgid ""
"Constrains a value to lie between [code]min[/code] and [code]max[/code] "
"values."
msgstr "将值限制在[code]min[/code]和[code]max[/code]之间。"

#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml:4
msgid "Calculates a scalar derivative within the visual shader graph."
msgstr "计算可视化着色器图中的标量导数。"

#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml:7
#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml:7
msgid ""
"This node is only available in [code]Fragment[/code] and [code]Light[/code] "
"visual shaders."
msgstr ""
"此节点仅在[code]Fragment[/code]和[code]Light[/code]可视化着色器中可用。"

#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml:15
msgid "The derivative type. See [enum Function] for options."
msgstr "派生类型。有关选项,请参阅 [enum Function] 。"

#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml:20
#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml:20
msgid "Sum of absolute derivative in [code]x[/code] and [code]y[/code]."
msgstr "在[code]x[/code]和[code]y[/code]的绝对导数之和。"

#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml:23
#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml:23
msgid "Derivative in [code]x[/code] using local differencing."
msgstr "在[code]x[/code]中使用局部差分的导数。"

#: doc/classes/VisualShaderNodeScalarDerivativeFunc.xml:26
#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml:26
msgid "Derivative in [code]y[/code] using local differencing."
msgstr "在[code]y[/code]中使用局部差分的导数。"

#: doc/classes/VisualShaderNodeScalarInterp.xml:4
msgid ""
"Linearly interpolates between two scalars within the visual shader graph."
msgstr "在可视化着色器图中的两个标量之间进行线性插值。"

#: doc/classes/VisualShaderNodeScalarInterp.xml:7
msgid "Translates to [code]mix(a, b, weight)[/code] in the shader language."
msgstr "在着色器语言中转换为[code]mix(a, b, weight)[/code]。"

#: doc/classes/VisualShaderNodeScalarSmoothStep.xml:4
msgid "Calculates a scalar SmoothStep function within the visual shader graph."
msgstr "在可视化着色器图中计算一个标量的SmoothStep函数。"

#: doc/classes/VisualShaderNodeScalarSmoothStep.xml:7
msgid ""
"Translates to [code]smoothstep(edge0, edge1, x)[/code] in the shader "
"language.\n"
"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge0[/"
"code] and [code]1.0[/code] if [code]x[/code] is larger than [code]edge1[/"
"code]. Otherwise the return value is interpolated between [code]0.0[/code] "
"and [code]1.0[/code] using Hermite polynomials."
msgstr ""
"在着色器语言中转换成[code]smoothstep(edge0, edge1, x)[/code]。\n"
"如果[code]x[/code]小于[code]edge0[/code],返回[code]0.0[/code];如果[code]x[/"
"code]大于[code]edge1[/code],返回[code]1.0[/code]。否则返回值在[code]0.0[/"
"code]和[code]1.0[/code]之间使用Hermite多项式进行插值。"

#: doc/classes/VisualShaderNodeScalarSwitch.xml:4
msgid "A boolean/scalar function for use within the visual shader graph."
msgstr "布尔或标量函数,在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeScalarSwitch.xml:7
msgid ""
"Returns an associated scalar if the provided boolean value is [code]true[/"
"code] or [code]false[/code]."
msgstr ""
"如果提供的布尔值是[code]true[/code]或[code]false[/code],则返回相关标量。"

#: doc/classes/VisualShaderNodeSwitch.xml:4
msgid "A boolean/vector function for use within the visual shader graph."
msgstr "布尔或向量函数,在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeSwitch.xml:7
msgid ""
"Returns an associated vector if the provided boolean value is [code]true[/"
"code] or [code]false[/code]."
msgstr ""
"如果提供的布尔值是[code]true[/code]或[code]false[/code],返回相关向量。"

#: doc/classes/VisualShaderNodeTexture.xml:4
msgid "Performs a texture lookup within the visual shader graph."
msgstr "在可视化着色器图中执行纹理查找。"

#: doc/classes/VisualShaderNodeTexture.xml:7
msgid ""
"Performs a lookup operation on the provided texture, with support for "
"multiple texture sources to choose from."
msgstr "对提供的纹理进行查找操作,支持从多个纹理源选择。"

#: doc/classes/VisualShaderNodeTexture.xml:15
msgid "Determines the source for the lookup. See [enum Source] for options."
msgstr "确定查询的源。有关选项,请参阅 [enum Source]。"

#: doc/classes/VisualShaderNodeTexture.xml:18
msgid "The source texture, if needed for the selected [member source]."
msgstr "源纹理,如果需要的话,用于选定的[member source]。"

#: doc/classes/VisualShaderNodeTexture.xml:21
msgid ""
"Specifies the type of the texture if [member source] is set to [constant "
"SOURCE_TEXTURE]. See [enum TextureType] for options."
msgstr ""
"如果[member source]被设置为[constant SOURCE_TEXTURE],则指定纹理的类型。有关"
"选项,请参阅 [enum TextureType]。"

#: doc/classes/VisualShaderNodeTexture.xml:26
msgid "Use the texture given as an argument for this function."
msgstr "使用给定的纹理作为此函数的参数。"

#: doc/classes/VisualShaderNodeTexture.xml:29
msgid "Use the current viewport's texture as the source."
msgstr "使用当前视窗的纹理作为源。"

#: doc/classes/VisualShaderNodeTexture.xml:32
#, fuzzy
msgid ""
"Use the texture from this shader's texture built-in (e.g. a texture of a "
"[Sprite])."
msgstr "使用该着色器内置的纹理,例如,[Sprite2D]的纹理。"

#: doc/classes/VisualShaderNodeTexture.xml:35
msgid "Use the texture from this shader's normal map built-in."
msgstr "使用该着色器内置的法线贴图的纹理。"

#: doc/classes/VisualShaderNodeTexture.xml:38
msgid "Use the depth texture available for this shader."
msgstr "使用该着色器可用的深度纹理。"

#: doc/classes/VisualShaderNodeTexture.xml:41
msgid "Use the texture provided in the input port for this function."
msgstr "将输入端口中提供的纹理用于此函数。"

#: doc/classes/VisualShaderNodeTextureUniform.xml:4
msgid "Performs a uniform texture lookup within the visual shader graph."
msgstr "在可视化着色器图中执行uniform的纹理查找。"

#: doc/classes/VisualShaderNodeTextureUniform.xml:7
msgid ""
"Performs a lookup operation on the texture provided as a uniform for the "
"shader."
msgstr "对作为uniform着色器提供的纹理进行查找操作。"

#: doc/classes/VisualShaderNodeTextureUniform.xml:15
msgid "Sets the default color if no texture is assigned to the uniform."
msgstr "如果没有给uniform分配纹理,则设置默认颜色。"

#: doc/classes/VisualShaderNodeTextureUniform.xml:32
msgid ""
"Adds [code]hint_aniso[/code] as hint to the uniform declaration to use for a "
"flowmap."
msgstr "将[code]hint_aniso[/code]作为提示添加到uniform声明中,用于流程图。"

#: doc/classes/VisualShaderNodeTextureUniform.xml:35
msgid "Defaults to white color."
msgstr "默认为白色。"

#: doc/classes/VisualShaderNodeTextureUniform.xml:38
msgid "Defaults to black color."
msgstr "默认为黑色。"

#: doc/classes/VisualShaderNodeTextureUniformTriplanar.xml:4
msgid ""
"Performs a uniform texture lookup with triplanar within the visual shader "
"graph."
msgstr "在可视化着色器图中用三角面进行uniform纹理查找。"

#: doc/classes/VisualShaderNodeTextureUniformTriplanar.xml:7
msgid ""
"Performs a lookup operation on the texture provided as a uniform for the "
"shader, with support for triplanar mapping."
msgstr "对作为uniform着色器提供的纹理进行查找操作,并支持三角面贴图。"

#: doc/classes/VisualShaderNodeTransformCompose.xml:4
msgid ""
"Composes a [Transform] from four [Vector3]s within the visual shader graph."
msgstr "从可视化着色器图中的四个[Vector3]组成一个[Transform]。"

#: doc/classes/VisualShaderNodeTransformCompose.xml:7
msgid ""
"Creates a 4x4 transform matrix using four vectors of type [code]vec3[/code]. "
"Each vector is one row in the matrix and the last column is a [code]vec4(0, "
"0, 0, 1)[/code]."
msgstr ""
"使用四个类型为[code]vec3[/code]的向量创建一个4x4变换矩阵。每个向量是矩阵中的"
"一行,最后一列是一个[code]vec4(0, 0, 0, 1)[/code]。"

#: doc/classes/VisualShaderNodeTransformConstant.xml:4
msgid "A [Transform] constant for use within the visual shader graph."
msgstr "一个[Transform]常量,在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeTransformConstant.xml:7
msgid "A constant [Transform], which can be used as an input node."
msgstr "一个常量[Transform],可以作为一个输入节点使用。"

#: doc/classes/VisualShaderNodeTransformConstant.xml:15
msgid "A [Transform] constant which represents the state of this node."
msgstr "一个[Transform]常量,表示这个节点的状态。"

#: doc/classes/VisualShaderNodeTransformDecompose.xml:4
msgid ""
"Decomposes a [Transform] into four [Vector3]s within the visual shader graph."
msgstr "将一个[Transform]分解为可视化着色器图中的四个[Vector3]。"

#: doc/classes/VisualShaderNodeTransformDecompose.xml:7
msgid ""
"Takes a 4x4 transform matrix and decomposes it into four [code]vec3[/code] "
"values, one from each row of the matrix."
msgstr "获取一个4x4的变换矩阵,并将其分解为四个[code]vec3[/code]值,每行一个。"

#: doc/classes/VisualShaderNodeTransformFunc.xml:4
msgid "Computes a [Transform] function within the visual shader graph."
msgstr "在可视化着色器图中计算一个[Transform]函数。"

#: doc/classes/VisualShaderNodeTransformFunc.xml:7
msgid "Computes an inverse or transpose function on the provided [Transform]."
msgstr "在提供的[Transform]上计算一个反函数或转置函数。"

#: doc/classes/VisualShaderNodeTransformFunc.xml:15
msgid "The function to be computed. See [enum Function] for options."
msgstr "要计算的函数。选项参阅[enum Function]。"

#: doc/classes/VisualShaderNodeTransformFunc.xml:20
msgid "Perform the inverse operation on the [Transform] matrix."
msgstr "对[Transform]矩阵进行逆运算。"

#: doc/classes/VisualShaderNodeTransformFunc.xml:23
msgid "Perform the transpose operation on the [Transform] matrix."
msgstr "对[Transform]矩阵进行转置操作。"

#: doc/classes/VisualShaderNodeTransformMult.xml:4
msgid "Multiplies [Transform] by [Transform] within the visual shader graph."
msgstr "在可视化着色器图中用[Transform]乘以[Transform]。"

#: doc/classes/VisualShaderNodeTransformMult.xml:7
msgid ""
"A multiplication operation on two transforms (4x4 matrices), with support "
"for different multiplication operators."
msgstr "对两个变换(4x4矩阵)进行乘法运算,支持不同的乘法运算符。"

#: doc/classes/VisualShaderNodeTransformMult.xml:15
msgid ""
"The multiplication type to be performed on the transforms. See [enum "
"Operator] for options."
msgstr "要对变换进行的乘法类型。参阅[enum Operator]的选项。"

#: doc/classes/VisualShaderNodeTransformMult.xml:20
msgid "Multiplies transform [code]a[/code] by the transform [code]b[/code]."
msgstr "将变换[code]a[/code]乘以变换[code]b[/code]。"

#: doc/classes/VisualShaderNodeTransformMult.xml:23
msgid "Multiplies transform [code]b[/code] by the transform [code]a[/code]."
msgstr "将变换[code]b[/code]乘以变换[code]a[/code]。"

#: doc/classes/VisualShaderNodeTransformMult.xml:26
msgid ""
"Performs a component-wise multiplication of transform [code]a[/code] by the "
"transform [code]b[/code]."
msgstr "对变换[code]a[/code]与变换[code]b[/code]进行分量明智的乘法。"

#: doc/classes/VisualShaderNodeTransformMult.xml:29
msgid ""
"Performs a component-wise multiplication of transform [code]b[/code] by the "
"transform [code]a[/code]."
msgstr "对变换[code]b[/code]与变换[code]a[/code]进行分量明智的乘法。"

#: doc/classes/VisualShaderNodeTransformUniform.xml:4
msgid "A [Transform] uniform for use within the visual shader graph."
msgstr "在可视化着色器图中使用的[Transform]uniform。"

#: doc/classes/VisualShaderNodeTransformUniform.xml:7
msgid "Translated to [code]uniform mat4[/code] in the shader language."
msgstr "在着色器语言中被转换成[code]uniform mat4[/code]。"

#: doc/classes/VisualShaderNodeTransformVecMult.xml:4
msgid ""
"Multiplies a [Transform] and a [Vector3] within the visual shader graph."
msgstr "在可视化着色器图中,将一个[Transform]和一个[Vector3]相乘。"

#: doc/classes/VisualShaderNodeTransformVecMult.xml:7
msgid ""
"A multiplication operation on a transform (4x4 matrix) and a vector, with "
"support for different multiplication operators."
msgstr "对一个变换(4x4矩阵)和一个向量进行乘法运算,支持不同的乘法运算符。"

#: doc/classes/VisualShaderNodeTransformVecMult.xml:15
msgid ""
"The multiplication type to be performed. See [enum Operator] for options."
msgstr "要执行的乘法类型。参阅[enum Operator]的选项。"

#: doc/classes/VisualShaderNodeTransformVecMult.xml:20
msgid "Multiplies transform [code]a[/code] by the vector [code]b[/code]."
msgstr "将变换[code]a[/code]乘以向量[code]b[/code]。"

#: doc/classes/VisualShaderNodeTransformVecMult.xml:23
msgid "Multiplies vector [code]b[/code] by the transform [code]a[/code]."
msgstr "向量[code]b[/code]与变换[code]a[/code]相乘。"

#: doc/classes/VisualShaderNodeTransformVecMult.xml:26
msgid ""
"Multiplies transform [code]a[/code] by the vector [code]b[/code], skipping "
"the last row and column of the transform."
msgstr "将变换[code]a[/code]乘以向量[code]b[/code],跳过变换的最后一行和一列。"

#: doc/classes/VisualShaderNodeTransformVecMult.xml:29
msgid ""
"Multiplies vector [code]b[/code] by the transform [code]a[/code], skipping "
"the last row and column of the transform."
msgstr "向量[code]b[/code]与变换[code]a[/code]相乘,跳过变换的最后一行和一列。"

#: doc/classes/VisualShaderNodeUniform.xml:4
msgid "A base type for the uniforms within the visual shader graph."
msgstr "可视化着色器图中的uniforms的基本类型。"

#: doc/classes/VisualShaderNodeUniform.xml:7
msgid ""
"A uniform represents a variable in the shader which is set externally, i.e. "
"from the [ShaderMaterial]. Uniforms are exposed as properties in the "
"[ShaderMaterial] and can be assigned from the inspector or from a script."
msgstr ""
"uniform表示着色器中的一个变量,它是由外部设置的,即从[ShaderMaterial]中设置。"
"uniform在[ShaderMaterial]中被暴露为属性,可以从检查器或脚本中分配。"

#: doc/classes/VisualShaderNodeUniform.xml:15
msgid ""
"Name of the uniform, by which it can be accessed through the "
"[ShaderMaterial] properties."
msgstr "uniform的名称,可以通过[ShaderMaterial]属性访问它。"

#: doc/classes/VisualShaderNodeUniformRef.xml:4
msgid "A reference to an existing [VisualShaderNodeUniform]."
msgstr "对现有[VisualShaderNodeUniform]的引用。"

#: doc/classes/VisualShaderNodeUniformRef.xml:7
msgid ""
"Creating a reference to a [VisualShaderNodeUniform] allows you to reuse this "
"uniform in different shaders or shader stages easily."
msgstr ""
"创建对[VisualShaderNodeUniform]的引用,可以让你在不同的着色器或着色阶段轻松地"
"重复使用这个uniform。"

#: doc/classes/VisualShaderNodeUniformRef.xml:15
msgid "The name of the uniform which this reference points to."
msgstr "该引用所指向的uniform的名称。"

#: doc/classes/VisualShaderNodeVec3Constant.xml:4
msgid "A [Vector3] constant to be used within the visual shader graph."
msgstr "一个[Vector3]常量,用于可视化着色器图中。"

#: doc/classes/VisualShaderNodeVec3Constant.xml:7
msgid "A constant [Vector3], which can be used as an input node."
msgstr "一个常量[Vector3],它可以作为输入节点使用。"

#: doc/classes/VisualShaderNodeVec3Constant.xml:15
msgid "A [Vector3] constant which represents the state of this node."
msgstr "一个[Vector3]常量,表示该节点的状态。"

#: doc/classes/VisualShaderNodeVec3Uniform.xml:4
msgid "A [Vector3] uniform to be used within the visual shader graph."
msgstr "一个[Vector3]的uniform,在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeVec3Uniform.xml:7
msgid "Translated to [code]uniform vec3[/code] in the shader language."
msgstr "在着色器语言中被转换成[code]uniform vec3[/code]。"

#: doc/classes/VisualShaderNodeVectorClamp.xml:4
msgid "Clamps a vector value within the visual shader graph."
msgstr "将一个向量值限制在可视化着色器图中。"

#: doc/classes/VisualShaderNodeVectorClamp.xml:7
msgid ""
"Constrains a value to lie between [code]min[/code] and [code]max[/code] "
"values. The operation is performed on each component of the vector "
"individually."
msgstr ""
"将一个值限制在[code]min[/code]和[code]max[/code]之间。该操作是对向量的每个分"
"量单独执行的。"

#: doc/classes/VisualShaderNodeVectorCompose.xml:4
msgid "Composes a [Vector3] from three scalars within the visual shader graph."
msgstr "从可视化着色器图中的三个标量组成一个[Vector3]。"

#: doc/classes/VisualShaderNodeVectorCompose.xml:7
msgid ""
"Creates a [code]vec3[/code] using three scalar values that can be provided "
"from separate inputs."
msgstr ""
"使用三个标量值创建一个[code]vec3[/code],这些标量值可以由单独的输入提供。"

#: doc/classes/VisualShaderNodeVectorDecompose.xml:4
msgid ""
"Decomposes a [Vector3] into three scalars within the visual shader graph."
msgstr "将一个[Vector3]分解为可视化着色器图中的三个标量。"

#: doc/classes/VisualShaderNodeVectorDecompose.xml:7
msgid ""
"Takes a [code]vec3[/code] and decomposes it into three scalar values that "
"can be used as separate inputs."
msgstr "取一个[code]vec3[/code]并将其分解为三个标量值,可作为单独的输入。"

#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml:4
msgid "Calculates a vector derivative within the visual shader graph."
msgstr "在可视化着色器图中计算一个向量导数。"

#: doc/classes/VisualShaderNodeVectorDerivativeFunc.xml:15
msgid "A derivative type. See [enum Function] for options."
msgstr "派生类型。选项参阅[enum Function]。"

#: doc/classes/VisualShaderNodeVectorDistance.xml:4
msgid ""
"Returns the distance between two points. To be used within the visual shader "
"graph."
msgstr "返回两点之间的距离。用于可视化着色器图中。"

#: doc/classes/VisualShaderNodeVectorDistance.xml:7
msgid ""
"Calculates distance from point represented by vector [code]p0[/code] to "
"vector [code]p1[/code].\n"
"Translated to [code]distance(p0, p1)[/code] in the shader language."
msgstr ""
"计算从向量[code]p0[/code]表示的点到向量[code]p1[/code]的距离。\n"
"在着色器语言中被转换成[code]distance(p0, p1)[/code]。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:4
msgid "A vector function to be used within the visual shader graph."
msgstr "在可视化着色器图中使用的向量函数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:7
msgid "A visual shader node able to perform different functions using vectors."
msgstr "可视化着色器节点,能够使用向量执行不同的函数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:15
msgid "The function to be performed. See [enum Function] for options."
msgstr "要执行的函数。参阅[enum Function]的选项。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:20
msgid ""
"Normalizes the vector so that it has a length of [code]1[/code] but points "
"in the same direction."
msgstr "将向量归一化,使其长度为[code]1[/code],但指向相同的方向。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:23
msgid "Clamps the value between [code]0.0[/code] and [code]1.0[/code]."
msgstr "限制[code]0.0[/code]和[code]1.0[/code]之间的值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:26
msgid "Returns the opposite value of the parameter."
msgstr "返回参数的相反值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:29
msgid "Returns [code]1/vector[/code]."
msgstr "返回[code]1/vector[/code]。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:32
msgid "Converts RGB vector to HSV equivalent."
msgstr "将 RGB 向量转换为等效的 HSV 向量。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:35
msgid "Converts HSV vector to RGB equivalent."
msgstr "将 HSV 向量转换为等效的 RGB 向量。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:38
msgid "Returns the absolute value of the parameter."
msgstr "返回参数的绝对值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:41
msgid "Returns the arc-cosine of the parameter."
msgstr "返回参数的反余弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:44
msgid "Returns the inverse hyperbolic cosine of the parameter."
msgstr "返回参数的反双曲余弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:47
msgid "Returns the arc-sine of the parameter."
msgstr "返回参数的反正弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:50
msgid "Returns the inverse hyperbolic sine of the parameter."
msgstr "返回参数的反双曲正弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:53
msgid "Returns the arc-tangent of the parameter."
msgstr "返回参数的反正切值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:56
msgid "Returns the inverse hyperbolic tangent of the parameter."
msgstr "返回参数的反双曲正切值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:59
msgid ""
"Finds the nearest integer that is greater than or equal to the parameter."
msgstr "查找最接近的大于或等于参数的整数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:62
msgid "Returns the cosine of the parameter."
msgstr "返回参数的余弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:65
msgid "Returns the hyperbolic cosine of the parameter."
msgstr "返回参数的双曲余弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:68
msgid "Converts a quantity in radians to degrees."
msgstr "将以弧度为单位的量转换为度。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:71
msgid "Base-e Exponential."
msgstr "以 e 为底的指数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:74
msgid "Base-2 Exponential."
msgstr "以 2 为底的指数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:77
msgid "Finds the nearest integer less than or equal to the parameter."
msgstr "查找小于或等于参数的最近整数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:80
msgid "Computes the fractional part of the argument."
msgstr "计算参数的小数部分。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:83
msgid "Returns the inverse of the square root of the parameter."
msgstr "返回参数的平方根的倒数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:86
msgid "Natural logarithm."
msgstr "自然对数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:89
msgid "Base-2 logarithm."
msgstr "以 2 为底的对数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:92
msgid "Converts a quantity in degrees to radians."
msgstr "将度数转换为弧度。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:95
msgid "Finds the nearest integer to the parameter."
msgstr "查找参数最近的整数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:98
msgid "Finds the nearest even integer to the parameter."
msgstr "查找参数最近的偶数。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:101
msgid ""
"Extracts the sign of the parameter, i.e. returns [code]-1[/code] if the "
"parameter is negative, [code]1[/code] if it's positive and [code]0[/code] "
"otherwise."
msgstr ""
"提取参数的符号,即如果参数是负的,返回[code]-1[/code],如果是正的,返回"
"[code]1[/code],否则返回[code]0[/code]。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:104
msgid "Returns the sine of the parameter."
msgstr "返回参数的正弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:107
msgid "Returns the hyperbolic sine of the parameter."
msgstr "返回参数的双曲正弦值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:110
msgid "Returns the square root of the parameter."
msgstr "返回参数的平方根。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:113
msgid "Returns the tangent of the parameter."
msgstr "返回参数的正切值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:116
msgid "Returns the hyperbolic tangent of the parameter."
msgstr "返回参数的双曲正切值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:119
msgid ""
"Returns a value equal to the nearest integer to the parameter whose absolute "
"value is not larger than the absolute value of the parameter."
msgstr "返回一个等于与参数最接近的整数的值,该值的绝对值不大于参数的绝对值。"

#: doc/classes/VisualShaderNodeVectorFunc.xml:122
msgid "Returns [code]1.0 - vector[/code]."
msgstr "返回[code]1.0 - vector[/code]。"

#: doc/classes/VisualShaderNodeVectorInterp.xml:4
msgid ""
"Linearly interpolates between two vectors within the visual shader graph."
msgstr "在可视化着色器图中的两个向量之间进行线性插值。"

#: doc/classes/VisualShaderNodeVectorInterp.xml:7
msgid ""
"Translates to [code]mix(a, b, weight)[/code] in the shader language, where "
"[code]weight[/code] is a [Vector3] with weights for each component."
msgstr ""
"在着色器语言中转换成[code]mix(a, b, weight)[/code],其中[code]weight[/code]是"
"一个[Vector3],每个分量的权重。"

#: doc/classes/VisualShaderNodeVectorLen.xml:4
msgid "Returns the length of a [Vector3] within the visual shader graph."
msgstr "返回[Vector3]在可视化着色器图中的长度。"

#: doc/classes/VisualShaderNodeVectorLen.xml:7
msgid "Translated to [code]length(p0)[/code] in the shader language."
msgstr "在着色器语言中被转换成[code]length(p0)[/code]。"

#: doc/classes/VisualShaderNodeVectorOp.xml:4
msgid "A vector operator to be used within the visual shader graph."
msgstr "在可视化着色器图中使用的向量运算符。"

#: doc/classes/VisualShaderNodeVectorOp.xml:7
msgid ""
"A visual shader node for use of vector operators. Operates on vector "
"[code]a[/code] and vector [code]b[/code]."
msgstr ""
"用于使用向量运算符的可视化着色器节点。对向量[code]a[/code]和向量[code]b[/"
"code]进行操作。"

#: doc/classes/VisualShaderNodeVectorOp.xml:15
msgid "The operator to be used. See [enum Operator] for options."
msgstr "要使用的运算符。参阅[enum Operator]的选项。"

#: doc/classes/VisualShaderNodeVectorOp.xml:20
msgid "Adds two vectors."
msgstr "将两个向量相加。"

#: doc/classes/VisualShaderNodeVectorOp.xml:23
msgid "Subtracts a vector from a vector."
msgstr "从一个向量中减去一个向量。"

#: doc/classes/VisualShaderNodeVectorOp.xml:26
msgid "Multiplies two vectors."
msgstr "将两个向量相乘。"

#: doc/classes/VisualShaderNodeVectorOp.xml:29
msgid "Divides vector by vector."
msgstr "将向量除以向量。"

#: doc/classes/VisualShaderNodeVectorOp.xml:32
msgid "Returns the remainder of the two vectors."
msgstr "返回两个向量的余数。"

#: doc/classes/VisualShaderNodeVectorOp.xml:35
msgid ""
"Returns the value of the first parameter raised to the power of the second, "
"for each component of the vectors."
msgstr "返回第一个参数的值提高到第二个参数的幂,对于向量的每个分量。"

#: doc/classes/VisualShaderNodeVectorOp.xml:38
msgid "Returns the greater of two values, for each component of the vectors."
msgstr "对于向量的每个分量,返回两个值中的较大值。"

#: doc/classes/VisualShaderNodeVectorOp.xml:41
msgid "Returns the lesser of two values, for each component of the vectors."
msgstr "对于向量的每个分量,返回两个数值中的较小者。"

#: doc/classes/VisualShaderNodeVectorOp.xml:44
msgid "Calculates the cross product of two vectors."
msgstr "计算两个向量的叉积。"

#: doc/classes/VisualShaderNodeVectorOp.xml:47
msgid "Returns the arc-tangent of the parameters."
msgstr "返回参数的反正切值。"

#: doc/classes/VisualShaderNodeVectorOp.xml:50
msgid ""
"Returns the vector that points in the direction of reflection. [code]a[/"
"code] is incident vector and [code]b[/code] is the normal vector."
msgstr ""
"返回指向反射方向的向量。[code]a[/code]是入射向量,[code]b[/code]是法向量。"

#: doc/classes/VisualShaderNodeVectorOp.xml:53
msgid ""
"Vector step operator. Returns [code]0.0[/code] if [code]a[/code] is smaller "
"than [code]b[/code] and [code]1.0[/code] otherwise."
msgstr ""
"向量步长运算符。如果[code]a[/code]小于[code]b[/code],返回[code]0.0[/code],"
"否则返回[code]1.0[/code]。"

#: doc/classes/VisualShaderNodeVectorRefract.xml:4
msgid ""
"Returns the [Vector3] that points in the direction of refraction. For use "
"within the visual shader graph."
msgstr "返回指向折射方向的[Vector3]。用于可视化着色器图内。"

#: doc/classes/VisualShaderNodeVectorRefract.xml:7
msgid ""
"Translated to [code]refract(I, N, eta)[/code] in the shader language, where "
"[code]I[/code] is the incident vector, [code]N[/code] is the normal vector "
"and [code]eta[/code] is the ratio of the indices of the refraction."
msgstr ""
"在着色器语言中转换成[code]refract(I, N, eta)[/code],其中[code]I[/code]是入射"
"向量,[code]N[/code]是法线向量,[code]eta[/code]是折射的比率。"

#: doc/classes/VisualShaderNodeVectorScalarMix.xml:4
msgid ""
"Linearly interpolates between two vectors using a scalar. For use within the "
"visual shader graph."
msgstr "使用一个标量在两个向量之间进行线性插值。在可视化着色器图中使用。"

#: doc/classes/VisualShaderNodeVectorScalarMix.xml:7
msgid ""
"Translates to [code]mix(a, b, weight)[/code] in the shader language, where "
"[code]a[/code] and [code]b[/code] are vectors and [code]weight[/code] is a "
"scalar."
msgstr ""
"在着色器语言中转换成[code]mix(a, b, weight)[/code],其中[code]a[/code]和"
"[code]b[/code]是向量,[code]weight[/code]是标量。"

#: doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml:4
msgid ""
"Calculates a vector SmoothStep function using scalar within the visual "
"shader graph."
msgstr "在可视化着色器图中使用标量计算一个向量SmoothStep函数。"

#: doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml:7
msgid ""
"Translates to [code]smoothstep(edge0, edge1, x)[/code] in the shader "
"language, where [code]x[/code] is a scalar.\n"
"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge0[/"
"code] and [code]1.0[/code] if [code]x[/code] is larger than [code]edge1[/"
"code]. Otherwise the return value is interpolated between [code]0.0[/code] "
"and [code]1.0[/code] using Hermite polynomials."
msgstr ""
"在着色器语言中转换成[code]smoothstep(edge0, edge1, x)[/code],其中[code]x[/"
"code]是一个标量。\n"
"如果[code]x[/code]小于[code]edge0[/code],返回[code]0.0[/code],如果[code]x[/"
"code]大于[code]edge1[/code],返回[code]1.0[/code]。否则返回值在[code]0.0[/"
"code]和[code]1.0[/code]之间使用Hermite多项式进行插值。"

#: doc/classes/VisualShaderNodeVectorScalarStep.xml:4
msgid "Calculates a vector Step function within the visual shader graph."
msgstr "在可视化着色器图中计算一个向量Step函数。"

#: doc/classes/VisualShaderNodeVectorScalarStep.xml:7
msgid ""
"Translates to [code]step(edge, x)[/code] in the shader language.\n"
"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge[/code] "
"and [code]1.0[/code] otherwise."
msgstr ""
"在着色器语言中转换成[code]step(edge, x)[/code]。\n"
"如果[code]x[/code]小于[code]edge[/code],返回[code]0.0[/code],否则返回"
"[code]1.0[/code]。"

#: doc/classes/VisualShaderNodeVectorSmoothStep.xml:4
msgid "Calculates a vector SmoothStep function within the visual shader graph."
msgstr "在可视化着色器图中计算一个向量SmoothStep函数。"

#: doc/classes/VisualShaderNodeVectorSmoothStep.xml:7
msgid ""
"Translates to [code]smoothstep(edge0, edge1, x)[/code] in the shader "
"language, where [code]x[/code] is a vector.\n"
"Returns [code]0.0[/code] if [code]x[/code] is smaller than [code]edge0[/"
"code] and [code]1.0[/code] if [code]x[/code] is larger than [code]edge1[/"
"code]. Otherwise the return value is interpolated between [code]0.0[/code] "
"and [code]1.0[/code] using Hermite polynomials."
msgstr ""
"在着色器语言中转换成[code]smoothstep(edge0, edge1, x)[/code],其中[code]x[/"
"code]是一个向量。\n"
"如果[code]x[/code]小于[code]edge0[/code],返回[code]0.0[/code],如果[code]x[/"
"code]大于[code]edge1[/code],返回[code]1.0[/code]。否则返回值在[code]0.0[/"
"code]和[code]1.0[/code]之间使用Hermite多项式进行插值。"

#: doc/classes/VScrollBar.xml:4
msgid "Vertical scroll bar."
msgstr "垂直滚动条。"

#: doc/classes/VScrollBar.xml:7
msgid ""
"Vertical version of [ScrollBar], which goes from top (min) to bottom (max)."
msgstr "[ScrollBar]的垂直版本,它从顶部(最小)到底部(最大)。"

#: doc/classes/VScrollBar.xml:21
msgid ""
"Icon used as a button to scroll the [ScrollBar] up. Supports custom step "
"using the [member ScrollBar.custom_step] property."
msgstr ""
"按钮使用的图标,用于向上滚动[ScrollBar]。支持使用[member ScrollBar."
"custom_step]属性的自定义步长。"

#: doc/classes/VScrollBar.xml:39
msgid ""
"Icon used as a button to scroll the [ScrollBar] down. Supports custom step "
"using the [member ScrollBar.custom_step] property."
msgstr ""
"作为按钮使用的图标,用于向下滚动[ScrollBar]。支持使用[member ScrollBar."
"custom_step]属性的自定义步长。"

#: doc/classes/VSeparator.xml:4
msgid "Vertical version of [Separator]."
msgstr "[Separator]的垂直版本。"

#: doc/classes/VSeparator.xml:7
msgid ""
"Vertical version of [Separator]. Even though it looks vertical, it is used "
"to separate objects horizontally."
msgstr "[Separator]的垂直版本。尽管它看起来是垂直的,但它用来水平分离对象。"

#: doc/classes/VSeparator.xml:17
msgid ""
"The width of the area covered by the separator. Effectively works like a "
"minimum width."
msgstr "分隔符所覆盖区域的宽度。以最小宽度时有效工作。"

#: doc/classes/VSeparator.xml:20
msgid ""
"The style for the separator line. Works best with [StyleBoxLine] (remember "
"to enable [member StyleBoxLine.vertical])."
msgstr ""
"分隔线的样式。与[StyleBoxLine]一起使用效果最好,记得要启用[member "
"StyleBoxLine.vertical]。"

#: doc/classes/VSlider.xml:4
msgid "Vertical slider."
msgstr "垂直滑条。"

#: doc/classes/VSlider.xml:7
msgid ""
"Vertical slider. See [Slider]. This one goes from bottom (min) to top "
"(max).\n"
"[b]Note:[/b] The [signal Range.changed] and [signal Range.value_changed] "
"signals are part of the [Range] class which this class inherits from."
msgstr ""

#: doc/classes/VSlider.xml:25
msgid "The background of the area below the grabber."
msgstr "抓取器下方区域的背景。"

#: doc/classes/VSlider.xml:36
msgid ""
"The background for the whole slider. Determines the width of the "
"[code]grabber_area[/code]."
msgstr "整个滑块的背景。决定了[code]grabber_area[/code]的宽度。"

#: doc/classes/VSplitContainer.xml:4
msgid "Vertical split container."
msgstr "垂直拆分容器。"

#: doc/classes/VSplitContainer.xml:7
msgid ""
"Vertical split container. See [SplitContainer]. This goes from top to bottom."
msgstr "垂直拆分容器。参阅[SplitContainer]。这是从上到下的。"

#: doc/classes/WeakRef.xml:4
msgid ""
"Holds an [Object], but does not contribute to the reference count if the "
"object is a reference."
msgstr "保存一个[Object],但如果该对象是一个引用,则不会贡献引用计数。"

#: doc/classes/WeakRef.xml:7
msgid ""
"A weakref can hold a [Reference], without contributing to the reference "
"counter. A weakref can be created from an [Object] using [method @GDScript."
"weakref]. If this object is not a reference, weakref still works, however, "
"it does not have any effect on the object. Weakrefs are useful in cases "
"where multiple classes have variables that refer to each other. Without "
"weakrefs, using these classes could lead to memory leaks, since both "
"references keep each other from being released. Making part of the variables "
"a weakref can prevent this cyclic dependency, and allows the references to "
"be released."
msgstr ""
"一个弱引用可以持有一个[Reference],而不会对引用计数器产生影响。可以使用"
"[method @GDScript.weakref]从一个[Object]创建一个弱引用。如果这个对象不是一个"
"引用,弱引用仍然可以工作,但是,它对这个对象没有任何影响。在多个类有相互引用"
"的变量的情况下,弱引用是很有用的。如果没有弱引用,使用这些类可能会导致内存泄"
"漏,因为两个引用都会使对方不被释放。将变量的一部分变成弱引用可以防止这种循环"
"依赖,并允许引用被释放。"

#: doc/classes/WeakRef.xml:15
msgid "Returns the [Object] this weakref is referring to."
msgstr "返回此弱引用所指的[Object]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:13
msgid "Closes this data channel, notifying the other peer."
msgstr "关闭此数据通道,通知另一个对等体。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:19
#, fuzzy
msgid ""
"Returns the number of bytes currently queued to be sent over this channel."
msgstr "返回当前列表中的项目数。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:25
msgid ""
"Returns the id assigned to this channel during creation (or auto-assigned "
"during negotiation).\n"
"If the channel is not negotiated out-of-band the id will only be available "
"after the connection is established (will return [code]65535[/code] until "
"then)."
msgstr ""
"返回创建时分配给该通道的ID,或在协商时自动分配。\n"
"如果该通道没有进行带外协商,那么该ID将只在连接建立后可用,在此之前将返回"
"[code]65535[/code]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:32
msgid "Returns the label assigned to this channel during creation."
msgstr "返回创建时分配给该通道的标签。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:38
msgid ""
"Returns the [code]maxPacketLifeTime[/code] value assigned to this channel "
"during creation.\n"
"Will be [code]65535[/code] if not specified."
msgstr ""
"返回创建时分配给这个通道的[code]maxPacketLifeTime[/code]值。\n"
"如果没有指定,将是[code]65535[/code]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:45
msgid ""
"Returns the [code]maxRetransmits[/code] value assigned to this channel "
"during creation.\n"
"Will be [code]65535[/code] if not specified."
msgstr ""
"返回创建时分配给这个通道的[code]maxRetransmits[/code]值。\n"
"如果没有指定,将是[code]65535[/code]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:52
msgid ""
"Returns the sub-protocol assigned to this channel during creation. An empty "
"string if not specified."
msgstr "返回创建时分配给这个通道的子协议。如果没有指定,则为空字符串。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:58
msgid "Returns the current state of this channel, see [enum ChannelState]."
msgstr "返回该通道的当前状态,参阅[enum ChannelState]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:64
msgid ""
"Returns [code]true[/code] if this channel was created with out-of-band "
"configuration."
msgstr "如果这个通道是用带外配置创建的,返回[code]true[/code]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:70
msgid ""
"Returns [code]true[/code] if this channel was created with ordering enabled "
"(default)."
msgstr "如果这个通道在创建时启用了排序功能,则默认返回[code]true[/code]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:76
msgid "Reserved, but not used for now."
msgstr "保留,目前未使用。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:82
msgid ""
"Returns [code]true[/code] if the last received packet was transferred as "
"text. See [member write_mode]."
msgstr ""
"如果最后收到的数据包是以文本形式传输,则返回[code]true[/code]。参阅[member "
"write_mode]。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:88
msgid ""
"The transfer mode to use when sending outgoing packet. Either text or binary."
msgstr "发送出去数据包时要使用的传输模式。可以是文本或二进制。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:93
msgid ""
"Tells the channel to send data over this channel as text. An external peer "
"(non-Godot) would receive this as a string."
msgstr ""
"告诉通道以文本形式在这个通道上发送数据。外部对等体(非Godot)会以字符串的形式"
"接收。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:96
msgid ""
"Tells the channel to send data over this channel as binary. An external peer "
"(non-Godot) would receive this as array buffer or blob."
msgstr ""
"告诉通道以二进制形式在此通道上发送数据。外部对等体(非Godot)将以数组缓冲区或"
"blob的形式接收。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:99
msgid "The channel was created, but it's still trying to connect."
msgstr "通道已经创建,但它仍在尝试连接。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:102
msgid "The channel is currently open, and data can flow over it."
msgstr "该通道目前是打开的,数据可以在其上流动。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:105
msgid ""
"The channel is being closed, no new messages will be accepted, but those "
"already in queue will be flushed."
msgstr "通道正在关闭,将不接受新的消息,但已经在队列中的消息将被刷新。"

#: modules/webrtc/doc_classes/WebRTCDataChannel.xml:108
msgid "The channel was closed, or connection failed."
msgstr "通道已关闭,或连接失败。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:4
msgid ""
"A simple interface to create a peer-to-peer mesh network composed of "
"[WebRTCPeerConnection] that is compatible with the [MultiplayerAPI]."
msgstr ""
"简单的接口,用于创建由[WebRTCPeerConnection]组成的点对点网状网络,与"
"[MultiplayerAPI]兼容。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:7
msgid ""
"This class constructs a full mesh of [WebRTCPeerConnection] (one connection "
"for each peer) that can be used as a [member MultiplayerAPI.network_peer].\n"
"You can add each [WebRTCPeerConnection] via [method add_peer] or remove them "
"via [method remove_peer]. Peers must be added in [constant "
"WebRTCPeerConnection.STATE_NEW] state to allow it to create the appropriate "
"channels. This class will not create offers nor set descriptions, it will "
"only poll them, and notify connections and disconnections.\n"
"[signal NetworkedMultiplayerPeer.connection_succeeded] and [signal "
"NetworkedMultiplayerPeer.server_disconnected] will not be emitted unless "
"[code]server_compatibility[/code] is [code]true[/code] in [method "
"initialize]. Beside that data transfer works like in a "
"[NetworkedMultiplayerPeer]."
msgstr ""
"这个类构建了一个完整的[WebRTCPeerConnection]网状结构(每个对等体有一个连"
"接),可以作为[member MultiplayerAPI.network_peer]使用。\n"
"你可以通过[method add_peer]添加每个[WebRTCPeerConnection],或者通过[method "
"remove_peer]删除它们。对等体必须在[constant WebRTCPeerConnection.STATE_NEW]状"
"态下添加,以允许它创建适当的通道。这个类不会创建提交也不会设置描述,它只会轮"
"询,并通知连接和断开。\n"
"除非在[method initialize]中[code]server_compatibility[/code]为[code]true[/"
"code],否则[signal NetworkedMultiplayerPeer.connection_succeeded]和[signal "
"NetworkedMultiplayerPeer.server_disconnected]将不会被触发。除此之外,数据传输"
"的工作方式类似于 [NetworkedMultiplayerPeer]。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:20
msgid ""
"Add a new peer to the mesh with the given [code]peer_id[/code]. The "
"[WebRTCPeerConnection] must be in state [constant WebRTCPeerConnection."
"STATE_NEW].\n"
"Three channels will be created for reliable, unreliable, and ordered "
"transport. The value of [code]unreliable_lifetime[/code] will be passed to "
"the [code]maxPacketLifetime[/code] option when creating unreliable and "
"ordered channels (see [method WebRTCPeerConnection.create_data_channel])."
msgstr ""
"以给定的[code]peer_id[/code]添加一个新的对等体到网状结构。该"
"[WebRTCPeerConnection]必须处于[constant WebRTCPeerConnection.STATE_NEW]状"
"态。\n"
"将为可靠的、不可靠的和有序的传输创建三个通道。在创建不可靠和有序通道时,"
"[code]unreliable_lifetime[/code]的值将被传递给[code]maxPacketLifetime[/code]"
"选项,参阅[method WebRTCPeerConnection.create_data_channel]。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:27
msgid "Close all the add peer connections and channels, freeing all resources."
msgstr "关闭所有添加的对等体连接和通道,释放所有资源。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:34
msgid ""
"Return a dictionary representation of the peer with given [code]peer_id[/"
"code] with three keys. [code]connection[/code] containing the "
"[WebRTCPeerConnection] to this peer, [code]channels[/code] an array of three "
"[WebRTCDataChannel], and [code]connected[/code] a boolean representing if "
"the peer connection is currently connected (all three channels are open)."
msgstr ""
"返回一个具有给定[code]peer_id[/code]的对等体的字典表示,有三个键。"
"[code]connection[/code]包含到这个对等体的[WebRTCPeerConnection],"
"[code]channels[/code]三个[WebRTCDataChannel]的数组,以及[code]connected[/"
"code]一个布尔值,表示对等体连接是否当前已连接,注,所有三个通道都打开。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:40
msgid ""
"Returns a dictionary which keys are the peer ids and values the peer "
"representation as in [method get_peer]."
msgstr ""
"返回一个字典,其键是对等体的id,其值是对等体的表示,如[method get_peer]。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:47
msgid ""
"Returns [code]true[/code] if the given [code]peer_id[/code] is in the peers "
"map (it might not be connected though)."
msgstr ""
"如果给定的[code]peer_id[/code]在对等体映射中,则返回[code]true[/code],尽管它"
"可能没有连接。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:55
msgid ""
"Initialize the multiplayer peer with the given [code]peer_id[/code] (must be "
"between 1 and 2147483647).\n"
"If [code]server_compatibilty[/code] is [code]false[/code] (default), the "
"multiplayer peer will be immediately in state [constant "
"NetworkedMultiplayerPeer.CONNECTION_CONNECTED] and [signal "
"NetworkedMultiplayerPeer.connection_succeeded] will not be emitted.\n"
"If [code]server_compatibilty[/code] is [code]true[/code] the peer will "
"suppress all [signal NetworkedMultiplayerPeer.peer_connected] signals until "
"a peer with id [constant NetworkedMultiplayerPeer.TARGET_PEER_SERVER] "
"connects and then emit [signal NetworkedMultiplayerPeer."
"connection_succeeded]. After that the signal [signal "
"NetworkedMultiplayerPeer.peer_connected] will be emitted for every already "
"connected peer, and any new peer that might connect. If the server peer "
"disconnects after that, signal [signal NetworkedMultiplayerPeer."
"server_disconnected] will be emitted and state will become [constant "
"NetworkedMultiplayerPeer.CONNECTION_CONNECTED]."
msgstr ""
"用给定的[code]peer_id[/code](必须在1和2147483647之间)初始化多人游戏对等"
"体。\n"
"如果[code]server_compatibilty[/code]是[code]false[/code](默认),多人对等体"
"将立即处于[constant NetworkedMultiplayerPeer.CONNECTION_CONNECTED]状态,"
"[signal NetworkedMultiplayerPeer.connection_succeeded]将不会被发射出来。\n"
"如果[code]server_compatibilty[/code]为[code]true[/code],对等体将抑制所有"
"[signal NetworkedMultiplayerPeer.peer_connected]信号,直到一个id为[constant "
"NetworkedMultiplayerPeer.TARGET_PEER_SERVER]的对等体连接,然后发出[signal "
"NetworkedMultiplayerPeer.connected_successful]。之后将对每个已经连接的对等体"
"和可能连接的任何新对等体发出[signal NetworkedMultiplayerPeer.peer_connected]"
"的信号。如果服务器对等体在此之后断开连接,信号[signal "
"NetworkedMultiplayerPeer.server_disconnected]将被发出,状态将变成[constant "
"NetworkedMultiplayerPeer.CONNECTION_CONNECTED]。"

#: modules/webrtc/doc_classes/WebRTCMultiplayer.xml:64
msgid ""
"Remove the peer with given [code]peer_id[/code] from the mesh. If the peer "
"was connected, and [signal NetworkedMultiplayerPeer.peer_connected] was "
"emitted for it, then [signal NetworkedMultiplayerPeer.peer_disconnected] "
"will be emitted."
msgstr ""
"从网格中移除给定的[code]peer_id[/code]的对等体。如果对等体是连接的,并为其发"
"出[signal NetworkedMultiplayerPeer.peer_connected],那么[signal "
"NetworkedMultiplayerPeer.peer_disconnected]将被发出。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:4
msgid "Interface to a WebRTC peer connection."
msgstr "与WebRTC对等体连接的接口。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:7
msgid ""
"A WebRTC connection between the local computer and a remote peer. Provides "
"an interface to connect, maintain and monitor the connection.\n"
"Setting up a WebRTC connection between two peers from now on) may not seem a "
"trivial task, but it can be broken down into 3 main steps:\n"
"- The peer that wants to initiate the connection ([code]A[/code] from now "
"on) creates an offer and send it to the other peer ([code]B[/code] from now "
"on).\n"
"- [code]B[/code] receives the offer, generate and answer, and sends it to "
"[code]A[/code]).\n"
"- [code]A[/code] and [code]B[/code] then generates and exchange ICE "
"candidates with each other.\n"
"After these steps, the connection should become connected. Keep on reading "
"or look into the tutorial for more information."
msgstr ""
"本地计算机和远程对等体之间的WebRTC连接。提供一个接口来连接、维护和监控连"
"接。\n"
"从当前开始,在两个对等体之间建立WebRTC连接,这不是一项简单的任务,但它可以分"
"解为3个主要步骤。\n"
"- 想要启动连接的对等体([code]A[/code]从现在开始)创建一个提交,并将其发送给"
"另一个对等体([code]B[/code]从现在开始)。\n"
"- [code]B[/code]收到要约,生成和回答,并将其发送给[code]A[/code])。\n"
"- [code]A[/code]和[code]B[/code]然后生成并相互交换ICE候选。\n"
"在这些步骤之后,连接应该成功建立。继续阅读或查看教程以了解更多信息。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:23
msgid ""
"Add an ice candidate generated by a remote peer (and received over the "
"signaling server). See [signal ice_candidate_created]."
msgstr ""
"添加一个由远程对等体产生的冻结候选,并通过信令服务器接收。请参阅[signal "
"ice_candidate_created]。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:29
#, fuzzy
msgid ""
"Close the peer connection and all data channels associated with it.\n"
"[b]Note:[/b] You cannot reuse this object for a new connection unless you "
"call [method initialize]."
msgstr ""
"关闭对等体连接和与之相关的所有数据通道。注意,你不能为一个新的连接重用这个对"
"象,除非你调用[method initialize]。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:39
#, fuzzy
msgid ""
"Returns a new [WebRTCDataChannel] (or [code]null[/code] on failure) with "
"given [code]label[/code] and optionally configured via the [code]options[/"
"code] dictionary. This method can only be called when the connection is in "
"state [constant STATE_NEW].\n"
"There are two ways to create a working data channel: either call [method "
"create_data_channel] on only one of the peer and listen to [signal "
"data_channel_received] on the other, or call [method create_data_channel] on "
"both peers, with the same values, and the [code]negotiated[/code] option set "
"to [code]true[/code].\n"
"Valid [code]options[/code] are:\n"
"[codeblock]\n"
"{\n"
"    \"negotiated\": true, # When set to true (default off), means the "
"channel is negotiated out of band. \"id\" must be set too. "
"\"data_channel_received\" will not be called.\n"
"    \"id\": 1, # When \"negotiated\" is true this value must also be set to "
"the same value on both peer.\n"
"\n"
"    # Only one of maxRetransmits and maxPacketLifeTime can be specified, not "
"both. They make the channel unreliable (but also better at real time).\n"
"    \"maxRetransmits\": 1, # Specify the maximum number of attempt the peer "
"will make to retransmits packets if they are not acknowledged.\n"
"    \"maxPacketLifeTime\": 100, # Specify the maximum amount of time before "
"giving up retransmitions of unacknowledged packets (in milliseconds).\n"
"    \"ordered\": true, # When in unreliable mode (i.e. either "
"\"maxRetransmits\" or \"maxPacketLifetime\" is set), \"ordered\" (true by "
"default) specify if packet ordering is to be enforced.\n"
"\n"
"    \"protocol\": \"my-custom-protocol\", # A custom sub-protocol string for "
"this channel.\n"
"}\n"
"[/codeblock]\n"
"[b]Note:[/b] You must keep a reference to channels created this way, or it "
"will be closed."
msgstr ""
"返回一个新的[WebRTCDataChannel],或在失败时返回[code]null[/code],带有给定的"
"[code]label[/code],并通过[code]options[/code]字典进行配置。这个方法只有在连"
"接处于[constant STATE_NEW]状态时才能被调用。\n"
"有两种方法来创建工作数据通道:要么只在其中一个对等体上调用[method "
"create_data_channel],并在另一个对等体上监听[signal data_channel_received],"
"要么在两个对等体上调用[method create_data_channel],数值相同,并将"
"[code]negotiated[/code]选项设置为[code]true[/code]。\n"
"有效的[code]options[/code]选项是:\n"
"[codeblock]\n"
"{\n"
"    \"negotiated\": true, # 当设置为 \"true\"(默认关闭)时,意味着该通道是在带"
"外协商的。\n"
"    \"id\": 1, # 当“negotiation”为true时,该值也必须在对等体上设置为相同的"
"值。  \n"
"\n"
"    # maxretransmit和maxPacketLifeTime只能指定其中一个,不能同时指定。 它们使"
"通道不可靠(但在实时性方面更好)。 .\n"
"    \"maxRetransmits\": 1, # 指定对端在未被确认的情况下重传数据包的最大尝试次"
"数。 \n"
"    \"maxPacketLifeTime\": 100, # 指定放弃未确认数据包重传的最大时间(以毫秒为"
"单位) .\n"
"    \"ordered\": true, # 当处于不可靠模式时(例如,设置"
"了“maxretransmit”或“maxPacketLifetime”),“ordered”(默认为true)指定是否强制排"
"序数据包。 \n"
"\n"
"    \"protocol\": \"my-custom-protocol\", # 此通道的自定义子协议字符串。 \n"
"}\n"
"[/codeblock]\n"
"[b]注意:[/b] 你必须保持对以这种方式创建的通道的引用,否则它将被关闭。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:61
msgid ""
"Creates a new SDP offer to start a WebRTC connection with a remote peer. At "
"least one [WebRTCDataChannel] must have been created before calling this "
"method.\n"
"If this functions returns [constant OK], [signal "
"session_description_created] will be called when the session is ready to be "
"sent."
msgstr ""
"创建一个新的SDP提交,以开始与远程对等体的WebRTC连接。在调用此方法之前,至少要"
"创建一个[WebRTCDataChannel]。\n"
"如果这个函数返回[constant OK],当会话准备好被发送时,[signal "
"session_description_created]将被调用。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:68
msgid "Returns the connection state. See [enum ConnectionState]."
msgstr "返回连接状态。参阅[enum ConnectionState]。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:76
#, fuzzy
msgid ""
"Re-initialize this peer connection, closing any previously active "
"connection, and going back to state [constant STATE_NEW]. A dictionary of "
"[code]options[/code] can be passed to configure the peer connection.\n"
"Valid [code]options[/code] are:\n"
"[codeblock]\n"
"{\n"
"    \"iceServers\": [\n"
"        {\n"
"            \"urls\": [ \"stun:stun.example.com:3478\" ], # One or more STUN "
"servers.\n"
"        },\n"
"        {\n"
"            \"urls\": [ \"turn:turn.example.com:3478\" ], # One or more TURN "
"servers.\n"
"            \"username\": \"a_username\", # Optional username for the TURN "
"server.\n"
"            \"credential\": \"a_password\", # Optional password for the TURN "
"server.\n"
"        }\n"
"    ]\n"
"}\n"
"[/codeblock]"
msgstr ""
"重新初始化这个对等体连接,关闭任何先前活动的连接,并回到状态[constant "
"STATE_NEW]。可以通过一个[code]options[/code]选项的字典来配置对等连接。\n"
"有效的[code]options[/code]选项是:\n"
"[codeblock]\n"
"{\n"
"    \"iceServers\": [\n"
"        {\n"
"            \"urls\": [ \"stun:stun.example.com:3478\" ], # One or more STUN "
"servers.\n"
"        },\n"
"        {\n"
"            \"urls\": [ \"turn:turn.example.com:3478\" ], # One or more TURN "
"servers.\n"
"            \"username\": \"a_username\", # Optional username for the TURN "
"server.\n"
"            \"credentials\": \"a_password\", # Optional password for the "
"TURN server.\n"
"        }\n"
"    ]\n"
"}\n"
"[/codeblock]"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:97
msgid ""
"Call this method frequently (e.g. in [method Node._process] or [method Node."
"_physics_process]) to properly receive signals."
msgstr ""
"经常调用这个方法以正确接收信号,例如在[method Node._process]或[method Node."
"_physics_process]中。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:105
msgid ""
"Sets the SDP description of the local peer. This should be called in "
"response to [signal session_description_created].\n"
"After calling this function the peer will start emitting [signal "
"ice_candidate_created] (unless an [enum Error] different from [constant OK] "
"is returned)."
msgstr ""
"设置本地对等体的SDP描述。这应是在响应[signal session_description_created]时调"
"用的。\n"
"调用此函数后,对等体将开始发出[signal ice_candidate_created],除非返回与"
"[constant OK]不同的[enum Error]。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:114
msgid ""
"Sets the SDP description of the remote peer. This should be called with the "
"values generated by a remote peer and received over the signaling server.\n"
"If [code]type[/code] is [code]offer[/code] the peer will emit [signal "
"session_description_created] with the appropriate answer.\n"
"If [code]type[/code] is [code]answer[/code] the peer will start emitting "
"[signal ice_candidate_created]."
msgstr ""
"设置远程对等体的SDP描述。应用远程对等体产生的值来调用,并通过信号服务器接"
"收。\n"
"如果[code]type[/code]是[code]offer[/code],对等体将发出[signal "
"session_description_created]并给出适当的答案。\n"
"如果[code]type[/code]是[code]answer[/code],对等体将开始发出[signal "
"ice_candidate_created]。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:124
msgid ""
"Emitted when a new in-band channel is received, i.e. when the channel was "
"created with [code]negotiated: false[/code] (default).\n"
"The object will be an instance of [WebRTCDataChannel]. You must keep a "
"reference of it or it will be closed automatically. See [method "
"create_data_channel]."
msgstr ""
"当收到一个新的带内通道时发出,即在通道是用[code]negotiated: false[/code](默"
"认)。\n"
"该对象将是[WebRTCDataChannel]的一个实例。你必须保持它的引用,否则它将被自动关"
"闭。参阅[method create_data_channel]。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:133
msgid ""
"Emitted when a new ICE candidate has been created. The three parameters are "
"meant to be passed to the remote peer over the signaling server."
msgstr ""
"当新的ICE候选者被创建时触发。这三个参数是为了通过信号服务器传递给远程对等体。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:140
msgid ""
"Emitted after a successful call to [method create_offer] or [method "
"set_remote_description] (when it generates an answer). The parameters are "
"meant to be passed to [method set_local_description] on this object, and "
"sent to the remote peer over the signaling server."
msgstr ""
"在成功调用[method create_offer]或[method set_remote_description]后触发,当它"
"产生一个应答时。这些参数是为了传递给这个对象上的[method "
"set_local_description],并通过信号服务器发送给远程对等体。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:146
msgid ""
"The connection is new, data channels and an offer can be created in this "
"state."
msgstr "连接是新的,数据通道和提交可以在这种状态下创建。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:149
msgid ""
"The peer is connecting, ICE is in progress, none of the transports has "
"failed."
msgstr "对等体正在连接,ICE正在进行中,没有任何传输失败。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:152
msgid "The peer is connected, all ICE transports are connected."
msgstr "对等体已连接,所有的ICE传输都已连接。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:155
msgid "At least one ICE transport is disconnected."
msgstr "至少有一个ICE传输被断开连接。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:158
msgid "One or more of the ICE transports failed."
msgstr "一个或更多的ICE传输失败。"

#: modules/webrtc/doc_classes/WebRTCPeerConnection.xml:161
msgid ""
"The peer connection is closed (after calling [method close] for example)."
msgstr "对等连接已关闭,例如在调用[method close]后。"

#: modules/websocket/doc_classes/WebSocketClient.xml:4
msgid "A WebSocket client implementation."
msgstr "WebSocket客户端的实现。"

#: modules/websocket/doc_classes/WebSocketClient.xml:7
msgid ""
"This class implements a WebSocket client compatible with any RFC 6455-"
"compliant WebSocket server.\n"
"This client can be optionally used as a network peer for the "
"[MultiplayerAPI].\n"
"After starting the client ([method connect_to_url]), you will need to "
"[method NetworkedMultiplayerPeer.poll] it at regular intervals (e.g. inside "
"[method Node._process]).\n"
"You will receive appropriate signals when connecting, disconnecting, or when "
"new data is available."
msgstr ""
"该类实现了一个与任何符合RFC 6455的WebSocket服务器兼容的WebSocket客户端。\n"
"这个客户端可以选择性地作为[MultiplayerAPI]的网络对等体使用。\n"
"在启动客户端后([method connect_to_url]),你需要[method "
"NetworkedMultiplayerPeer.poll]它以固定的时间间隔,例如在[method Node."
"_process]内。\n"
"当连接、断开连接或有新数据时,你将收到适当的信号。"

#: modules/websocket/doc_classes/WebSocketClient.xml:22
#, fuzzy
msgid ""
"Connects to the given URL requesting one of the given [code]protocols[/code] "
"as sub-protocol. If the list empty (default), no sub-protocol will be "
"requested.\n"
"If [code]true[/code] is passed as [code]gd_mp_api[/code], the client will "
"behave like a network peer for the [MultiplayerAPI], connections to non-"
"Godot servers will not work, and [signal data_received] will not be "
"emitted.\n"
"If [code]false[/code] is passed instead (default), you must call "
"[PacketPeer] functions ([code]put_packet[/code], [code]get_packet[/code], "
"etc.) on the [WebSocketPeer] returned via [code]get_peer(1)[/code] and not "
"on this object directly (e.g. [code]get_peer(1).put_packet(data)[/code]).\n"
"You can optionally pass a list of [code]custom_headers[/code] to be added to "
"the handshake HTTP request.\n"
"[b]Note:[/b] To avoid mixed content warnings or errors in HTML5, you may "
"have to use a [code]url[/code] that starts with [code]wss://[/code] (secure) "
"instead of [code]ws://[/code]. When doing so, make sure to use the fully "
"qualified domain name that matches the one defined in the server's SSL "
"certificate. Do not connect directly via the IP address for [code]wss://[/"
"code] connections, as it won't match with the SSL certificate.\n"
"[b]Note:[/b] Specifying [code]custom_headers[/code] is not supported in "
"HTML5 exports due to browsers restrictions."
msgstr ""
"连接到给定的URL,请求给定的[code]protocols[/code]中的一个作为子协议。如果列表"
"为空(默认),将不请求子协议。\n"
"如果[code]true[/code]作为[code]gd_mp_api[/code]被传递,客户端将表现得像一个"
"[MultiplayerAPI]的网络对等体,与非Godot服务器的连接将不工作,并且[signal "
"data_received]将不被触发。\n"
"如果[code]false[/code]被传递(默认),你必须调用[PacketPeer]函数"
"([code]put_packet[/code], [code]get_packet[/code], etc.)对通过"
"[code]get_peer(1)[/code]返回的[WebSocketPeer],而不是直接对该对象,例如,"
"[code]get_peer(1).put_packet(data)[/code]。\n"
"你可以选择传递一个[code]custom_headers[/code]的列表,以添加到握手的HTTP请求"
"中。\n"
"[b]注意:[/b] 由于浏览器的限制,在HTML5输出中不支持指定[code]custom_headers[/"
"code]。"

#: modules/websocket/doc_classes/WebSocketClient.xml:35
msgid ""
"Disconnects this client from the connected host. See [method WebSocketPeer."
"close] for more information."
msgstr ""
"断开此客户端与所连接主机的连接。更多信息参阅[method WebSocketPeer.close]。"

#: modules/websocket/doc_classes/WebSocketClient.xml:41
msgid "Return the IP address of the currently connected host."
msgstr "返回当前连接的主机的IP地址。"

#: modules/websocket/doc_classes/WebSocketClient.xml:47
msgid "Return the IP port of the currently connected host."
msgstr "返回当前连接的主机的IP端口。"

#: modules/websocket/doc_classes/WebSocketClient.xml:53
msgid ""
"If specified, this [X509Certificate] will be the only one accepted when "
"connecting to an SSL host. Any other certificate provided by the server will "
"be regarded as invalid.\n"
"[b]Note:[/b] Specifying a custom [code]trusted_ssl_certificate[/code] is not "
"supported in HTML5 exports due to browsers restrictions."
msgstr ""
"如果指定,该[X509Certificate]将是连接到SSL主机时唯一接受的证书。任何由服务器"
"提供的其他证书将被视为无效。\n"
"[b]注意:[/b]由于浏览器的限制,在HTML5导出中不支持指定一个自定义的"
"[code]trusted_ssl_certificate[/code]。"

#: modules/websocket/doc_classes/WebSocketClient.xml:57
msgid ""
"If [code]true[/code], SSL certificate verification is enabled.\n"
"[b]Note:[/b] You must specify the certificates to be used in the Project "
"Settings for it to work when exported."
msgstr ""
"如果 [code]true[/code],则启用 SSL 证书验证。\n"
"[b]注意:[/b] 你必须在项目设置中指定要使用的证书,以便在导出时发挥作用。"

#: modules/websocket/doc_classes/WebSocketClient.xml:65
msgid ""
"Emitted when the connection to the server is closed. [code]was_clean_close[/"
"code] will be [code]true[/code] if the connection was shutdown cleanly."
msgstr ""
"当与服务器的连接被关闭时触发。[code]was_clean_close[/code] 将是[code]true[/"
"code] 如果连接完全关闭。"

#: modules/websocket/doc_classes/WebSocketClient.xml:70
msgid "Emitted when the connection to the server fails."
msgstr "当与服务器的连接失败时触发。"

#: modules/websocket/doc_classes/WebSocketClient.xml:76
msgid ""
"Emitted when a connection with the server is established, [code]protocol[/"
"code] will contain the sub-protocol agreed with the server."
msgstr ""
"当与服务器建立连接时触发,[code]protocol[/code]协议将包含与服务器达成一致的子"
"协议。"

#: modules/websocket/doc_classes/WebSocketClient.xml:81
msgid ""
"Emitted when a WebSocket message is received.\n"
"[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level "
"multiplayer peer."
msgstr ""
"当收到WebSocket消息时触发。\n"
"[b]注意:[/b]当作为高级别的多人对等体使用时,这个信号[i]not[/i]不发射。"

#: modules/websocket/doc_classes/WebSocketClient.xml:89
msgid ""
"Emitted when the server requests a clean close. You should keep polling "
"until you get a [signal connection_closed] signal to achieve the clean "
"close. See [method WebSocketPeer.close] for more details."
msgstr ""
"当服务器请求完全关闭时触发。你应该继续进行轮询,直到获得[signal "
"connection_closed]信号,以实现彻底的关闭。更多细节参阅[method WebSocketPeer."
"close]。"

#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml:4
msgid "Base class for WebSocket server and client."
msgstr "WebSocket服务器和客户端的基类。"

#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml:7
msgid ""
"Base class for WebSocket server and client, allowing them to be used as "
"network peer for the [MultiplayerAPI]."
msgstr ""
"WebSocket服务器和客户端的基类,允许它们作为[MultiplayerAPI]的网络对等体使用。"

#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml:16
msgid ""
"Returns the [WebSocketPeer] associated to the given [code]peer_id[/code]."
msgstr "返回与给定[code]peer_id[/code]关联的[WebSocketPeer]。"

#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml:26
msgid ""
"Configures the buffer sizes for this WebSocket peer. Default values can be "
"specified in the Project Settings under [code]network/limits[/code]. For "
"server, values are meant per connected peer.\n"
"The first two parameters define the size and queued packets limits of the "
"input buffer, the last two of the output buffer.\n"
"Buffer sizes are expressed in KiB, so [code]4 = 2^12 = 4096 bytes[/code]. "
"All parameters will be rounded up to the nearest power of two.\n"
"[b]Note:[/b] HTML5 exports only use the input buffer since the output one is "
"managed by browsers."
msgstr ""
"配置该WebSocket对等体的缓冲区大小。默认值可以在项目设置中的[code]network/"
"limits[/code]下指定。对于服务器,数值是指每个连接的对等体。\n"
"前两个参数定义了输入缓冲区的大小和排队数据包的限制,后两个参数定义了输出缓冲"
"区。\n"
"缓冲区的大小以KiB为单位,所以[code]4=2^12=4096字节[/code]。所有的参数都将被四"
"舍五入到最接近的2的幂。\n"
"[b]注意:[/b] HTML5输出只使用输入缓冲区,因为输出缓冲区是由浏览器管理的。"

#: modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml:41
msgid ""
"Emitted when a packet is received from a peer.\n"
"[b]Note:[/b] This signal is only emitted when the client or server is "
"configured to use Godot multiplayer API."
msgstr ""
"当收到来自对等体的数据包时触发的信号。\n"
"[b]注意:[/b] 这个信号只有在客户端或服务器被配置为使用Godot多人游戏API时才会"
"发出。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:4
msgid "A class representing a specific WebSocket connection."
msgstr "表示特定WebSocket连接的类。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:7
msgid ""
"This class represent a specific WebSocket connection, you can do lower level "
"operations with it.\n"
"You can choose to write to the socket in binary or text mode, and you can "
"recognize the mode used for writing by the other peer."
msgstr ""
"该类表示特定的WebSocket连接,你可以用它做低级别的操作。\n"
"可以选择以二进制或文本模式写入套接字,也可以识别另一个对等体用于写入的模式。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:18
msgid ""
"Closes this WebSocket connection. [code]code[/code] is the status code for "
"the closure (see RFC 6455 section 7.4 for a list of valid status codes). "
"[code]reason[/code] is the human readable reason for closing the connection "
"(can be any UTF-8 string that's smaller than 123 bytes).\n"
"[b]Note:[/b] To achieve a clean close, you will need to keep polling until "
"either [signal WebSocketClient.connection_closed] or [signal WebSocketServer."
"client_disconnected] is received.\n"
"[b]Note:[/b] The HTML5 export might not support all status codes. Please "
"refer to browser-specific documentation for more details."
msgstr ""
"关闭此WebSocket连接。[code]code[/code]是关闭的状态代码,有效状态代码的列表参"
"阅RFC 6455第7.4节。[code]reason[/code] 是关闭连接的只读原因(可以是任何小于"
"123字节的UTF-8字符串)。\n"
"[b]注意:[/b]为了实现彻底的关闭,你需要继续轮询,直到收到[signal "
"WebSocketClient.connection_closed]或[signal WebSocketServer."
"client_disconnected]。\n"
"[b]注意:[/b] HTML5导出可能不支持所有状态代码。请参考特定浏览器的文档以了解更"
"多细节。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:26
msgid ""
"Returns the IP address of the connected peer.\n"
"[b]Note:[/b] Not available in the HTML5 export."
msgstr ""
"返回连接的对等体的IP地址。\n"
"[b]注意:[/b] 在HTML5导出中不可用。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:33
msgid ""
"Returns the remote port of the connected peer.\n"
"[b]Note:[/b] Not available in the HTML5 export."
msgstr ""
"返回所连接对等体的远程端口。\n"
"[b]注意:[/b] 在HTML5导出中不可用。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:40
msgid ""
"Returns the current amount of data in the outbound websocket buffer. [b]Note:"
"[/b] HTML5 exports use WebSocket.bufferedAmount, while other platforms use "
"an internal buffer."
msgstr ""

#: modules/websocket/doc_classes/WebSocketPeer.xml:46
msgid "Gets the current selected write mode. See [enum WriteMode]."
msgstr "获取当前选择的写入模式。参阅[enum WriteMode]。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:52
msgid "Returns [code]true[/code] if this peer is currently connected."
msgstr "如果该对等体当前已连接,则返回[code]true[/code]。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:59
msgid ""
"Disable Nagle's algorithm on the underling TCP socket (default). See [method "
"StreamPeerTCP.set_no_delay] for more information.\n"
"[b]Note:[/b] Not available in the HTML5 export."
msgstr ""
"在底层的TCP套接字上禁用Nagle算法(默认)。参阅[method StreamPeerTCP."
"set_no_delay]以了解更多信息。\n"
"[b]注意:[/b] 在HTML5导出中不可用。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:67
msgid "Sets the socket to use the given [enum WriteMode]."
msgstr "将套接字设置为使用给定的[enum WriteMode]。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:73
msgid ""
"Returns [code]true[/code] if the last received packet was sent as a text "
"payload. See [enum WriteMode]."
msgstr ""
"如果最后收到的数据包是作为文本有效载荷发送的,返回[code]true[/code]。参阅"
"[enum WriteMode]。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:79
msgid ""
"Specifies that WebSockets messages should be transferred as text payload "
"(only valid UTF-8 is allowed)."
msgstr "指定WebSockets消息应作为文本有效载荷传输(只允许有效的UTF-8)。"

#: modules/websocket/doc_classes/WebSocketPeer.xml:82
msgid ""
"Specifies that WebSockets messages should be transferred as binary payload "
"(any byte combination is allowed)."
msgstr "指定WebSockets消息应以二进制有效载荷的形式传输(允许任何字节组合)。"

#: modules/websocket/doc_classes/WebSocketServer.xml:4
msgid "A WebSocket server implementation."
msgstr "WebSocket服务器的实现。"

#: modules/websocket/doc_classes/WebSocketServer.xml:7
msgid ""
"This class implements a WebSocket server that can also support the high-"
"level multiplayer API.\n"
"After starting the server ([method listen]), you will need to [method "
"NetworkedMultiplayerPeer.poll] it at regular intervals (e.g. inside [method "
"Node._process]). When clients connect, disconnect, or send data, you will "
"receive the appropriate signal.\n"
"[b]Note:[/b] Not available in HTML5 exports."
msgstr ""
"这个类实现了WebSocket服务器,它也可以支持高级别的多人游戏API。\n"
"在启动服务器后,[method listen],你需要[method NetworkedMultiplayerPeer.poll]"
"它以固定的时间间隔,例如在[method Node._process]内。当客户端连接、断开或发送"
"数据时,你会收到相应的信号。\n"
"[b]注意:[/b] 在HTML5导出中不可用。"

#: modules/websocket/doc_classes/WebSocketServer.xml:20
msgid ""
"Disconnects the peer identified by [code]id[/code] from the server. See "
"[method WebSocketPeer.close] for more information."
msgstr ""
"断开由[code]id[/code]标识的对等体与服务器的连接。更多信息参阅[method "
"WebSocketPeer.close]。"

#: modules/websocket/doc_classes/WebSocketServer.xml:41
msgid "Returns [code]true[/code] if a peer with the given ID is connected."
msgstr "如果一个具有给定ID的对等体被连接,则返回[code]true[/code]。"

#: modules/websocket/doc_classes/WebSocketServer.xml:47
msgid ""
"Returns [code]true[/code] if the server is actively listening on a port."
msgstr "如果服务器正在监听某个端口,返回[code]true[/code]。"

#: modules/websocket/doc_classes/WebSocketServer.xml:56
msgid ""
"Starts listening on the given port.\n"
"You can specify the desired subprotocols via the \"protocols\" array. If the "
"list empty (default), no sub-protocol will be requested.\n"
"If [code]true[/code] is passed as [code]gd_mp_api[/code], the server will "
"behave like a network peer for the [MultiplayerAPI], connections from non-"
"Godot clients will not work, and [signal data_received] will not be "
"emitted.\n"
"If [code]false[/code] is passed instead (default), you must call "
"[PacketPeer] functions ([code]put_packet[/code], [code]get_packet[/code], "
"etc.), on the [WebSocketPeer] returned via [code]get_peer(id)[/code] to "
"communicate with the peer with given [code]id[/code] (e.g. "
"[code]get_peer(id).get_available_packet_count[/code])."
msgstr ""
"在给定的端口上开始监听。\n"
"你可以通过 \"协议\" 数组指定所需的子协议。如果列表为空(默认情况下),将不请"
"求任何子协议。\n"
"如果[code]true[/code]作为[code]gd_mp_api[/code]传递,服务器将表现得像"
"[MultiplayerAPI]的网络对等体,来自非Godot客户端的连接将不工作,并且[signal "
"data_received]将不被触发。\n"
"如果[code]false[/code]被传递(默认),你必须调用[PacketPeer]函数"
"([code]put_packet[/code], [code]get_packet[/code], etc.),在通过"
"[code]get_peer(id)[/code]返回的[WebSocketPeer]上,与具有给定[code]id[/code]的"
"对等体进行通信,例如,[code]get_peer(id).get_available_packet_count[/code]。"

#: modules/websocket/doc_classes/WebSocketServer.xml:65
msgid "Stops the server and clear its state."
msgstr "停止服务器并清除其状态。"

#: modules/websocket/doc_classes/WebSocketServer.xml:71
msgid ""
"When not set to [code]*[/code] will restrict incoming connections to the "
"specified IP address. Setting [code]bind_ip[/code] to [code]127.0.0.1[/code] "
"will cause the server to listen only to the local host."
msgstr ""
"当不设置为[code]*[/code]时,将限制进入的连接到指定的IP地址。将[code]bind_ip[/"
"code]设置为[code]127.0.0.1[/code]将导致服务器只监听本地主机。"

#: modules/websocket/doc_classes/WebSocketServer.xml:74
msgid ""
"When using SSL (see [member private_key] and [member ssl_certificate]), you "
"can set this to a valid [X509Certificate] to be provided as additional CA "
"chain information during the SSL handshake."
msgstr ""
"当使用SSL时,你可以将其设置为一个有效的[X509Certificate],作为SSL握手过程中额"
"外的CA链信息提供。参阅[member private_key]和[member ssl_certificate]。"

#: modules/websocket/doc_classes/WebSocketServer.xml:77
msgid ""
"The time in seconds before a pending client (i.e. a client that has not yet "
"finished the HTTP handshake) is considered stale and forcefully disconnected."
msgstr ""

#: modules/websocket/doc_classes/WebSocketServer.xml:80
msgid ""
"When set to a valid [CryptoKey] (along with [member ssl_certificate]) will "
"cause the server to require SSL instead of regular TCP (i.e. the [code]wss://"
"[/code] protocol)."
msgstr ""
"当设置为有效的[CryptoKey]时,与[member ssl_certificate]一起,将导致服务器需要"
"SSL而不是普通的TCP,即[code]wss://[/code]协议。"

#: modules/websocket/doc_classes/WebSocketServer.xml:83
msgid ""
"When set to a valid [X509Certificate] (along with [member private_key]) will "
"cause the server to require SSL instead of regular TCP (i.e. the [code]wss://"
"[/code] protocol)."
msgstr ""
"当设置为有效的[X509Certificate]时,连同[member private_key],将导致服务器需要"
"SSL而不是普通的TCP,即[code]wss://[/code]协议。"

#: modules/websocket/doc_classes/WebSocketServer.xml:92
msgid ""
"Emitted when a client requests a clean close. You should keep polling until "
"you get a [signal client_disconnected] signal with the same [code]id[/code] "
"to achieve the clean close. See [method WebSocketPeer.close] for more "
"details."
msgstr ""
"当一个客户端要求彻底关闭时触发。你应该继续轮询,直到你得到一个具有相同"
"[code]id[/code]的[signal client_disconnected]信号,以实现彻底关闭。请参阅"
"[method WebSocketPeer.close]以了解更多细节。"

#: modules/websocket/doc_classes/WebSocketServer.xml:99
msgid ""
"Emitted when a new client connects. \"protocol\" will be the sub-protocol "
"agreed with the client."
msgstr "当新的客户端连接时触发。\"协议\" 将是与客户端达成的子协议。"

#: modules/websocket/doc_classes/WebSocketServer.xml:106
msgid ""
"Emitted when a client disconnects. [code]was_clean_close[/code] will be "
"[code]true[/code] if the connection was shutdown cleanly."
msgstr ""
"当客户端断开连接时触发。如果连接被彻底关闭[code]was_clean_close[/code] 将是"
"[code]true[/code] 。"

#: modules/websocket/doc_classes/WebSocketServer.xml:112
msgid ""
"Emitted when a new message is received.\n"
"[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level "
"multiplayer peer."
msgstr ""
"当收到一个新消息时触发。\n"
"[b]注意:[/b]这个信号在用作高级多人对等的时候,[i]不[/i]触发。"

#: modules/webxr/doc_classes/WebXRInterface.xml:4
msgid "AR/VR interface using WebXR."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:7
msgid ""
"WebXR is an open standard that allows creating VR and AR applications that "
"run in the web browser.\n"
"As such, this interface is only available when running in an HTML5 export.\n"
"WebXR supports a wide range of devices, from the very capable (like Valve "
"Index, HTC Vive, Oculus Rift and Quest) down to the much less capable (like "
"Google Cardboard, Oculus Go, GearVR, or plain smartphones).\n"
"Since WebXR is based on Javascript, it makes extensive use of callbacks, "
"which means that [WebXRInterface] is forced to use signals, where other AR/"
"VR interfaces would instead use functions that return a result immediately. "
"This makes [WebXRInterface] quite a bit more complicated to initialize than "
"other AR/VR interfaces.\n"
"Here's the minimum code required to start an immersive VR session:\n"
"[codeblock]\n"
"extends Spatial\n"
"\n"
"var webxr_interface\n"
"var vr_supported = false\n"
"\n"
"func _ready():\n"
"    # We assume this node has a button as a child.\n"
"    # This button is for the user to consent to entering immersive VR mode.\n"
"    $Button.connect(\"pressed\", self, \"_on_Button_pressed\")\n"
"\n"
"    webxr_interface = ARVRServer.find_interface(\"WebXR\")\n"
"    if webxr_interface:\n"
"        # WebXR uses a lot of asynchronous callbacks, so we connect to "
"various\n"
"        # signals in order to receive them.\n"
"        webxr_interface.connect(\"session_supported\", self, "
"\"_webxr_session_supported\")\n"
"        webxr_interface.connect(\"session_started\", self, "
"\"_webxr_session_started\")\n"
"        webxr_interface.connect(\"session_ended\", self, "
"\"_webxr_session_ended\")\n"
"        webxr_interface.connect(\"session_failed\", self, "
"\"_webxr_session_failed\")\n"
"\n"
"        # This returns immediately - our _webxr_session_supported() method\n"
"        # (which we connected to the \"session_supported\" signal above) "
"will\n"
"        # be called sometime later to let us know if it's supported or not.\n"
"        webxr_interface.is_session_supported(\"immersive-vr\")\n"
"\n"
"func _webxr_session_supported(session_mode, supported):\n"
"    if session_mode == 'immersive-vr':\n"
"        vr_supported = supported\n"
"\n"
"func _on_Button_pressed():\n"
"    if not vr_supported:\n"
"        OS.alert(\"Your browser doesn't support VR\")\n"
"        return\n"
"\n"
"    # We want an immersive VR session, as opposed to AR ('immersive-ar') or "
"a\n"
"    # simple 3DoF viewer ('viewer').\n"
"    webxr_interface.session_mode = 'immersive-vr'\n"
"    # 'bounded-floor' is room scale, 'local-floor' is a standing or sitting\n"
"    # experience (it puts you 1.6m above the ground if you have 3DoF "
"headset),\n"
"    # whereas as 'local' puts you down at the ARVROrigin.\n"
"    # This list means it'll first try to request 'bounded-floor', then\n"
"    # fallback on 'local-floor' and ultimately 'local', if nothing else is\n"
"    # supported.\n"
"    webxr_interface.requested_reference_space_types = 'bounded-floor, local-"
"floor, local'\n"
"    # In order to use 'local-floor' or 'bounded-floor' we must also\n"
"    # mark the features as required or optional.\n"
"    webxr_interface.required_features = 'local-floor'\n"
"    webxr_interface.optional_features = 'bounded-floor'\n"
"\n"
"    # This will return false if we're unable to even request the session,\n"
"    # however, it can still fail asynchronously later in the process, so we\n"
"    # only know if it's really succeeded or failed when our\n"
"    # _webxr_session_started() or _webxr_session_failed() methods are "
"called.\n"
"    if not webxr_interface.initialize():\n"
"        OS.alert(\"Failed to initialize\")\n"
"        return\n"
"\n"
"func _webxr_session_started():\n"
"    $Button.visible = false\n"
"    # This tells Godot to start rendering to the headset.\n"
"    get_viewport().arvr = true\n"
"    # This will be the reference space type you ultimately got, out of the\n"
"    # types that you requested above. This is useful if you want the game "
"to\n"
"    # work a little differently in 'bounded-floor' versus 'local-floor'.\n"
"    print (\"Reference space type: \" + webxr_interface."
"reference_space_type)\n"
"\n"
"func _webxr_session_ended():\n"
"    $Button.visible = true\n"
"    # If the user exits immersive mode, then we tell Godot to render to the "
"web\n"
"    # page again.\n"
"    get_viewport().arvr = false\n"
"\n"
"func _webxr_session_failed(message):\n"
"    OS.alert(\"Failed to initialize: \" + message)\n"
"[/codeblock]\n"
"There are several ways to handle \"controller\" input:\n"
"- Using [ARVRController] nodes and their [signal ARVRController."
"button_pressed] and [signal ARVRController.button_release] signals. This is "
"how controllers are typically handled in AR/VR apps in Godot, however, this "
"will only work with advanced VR controllers like the Oculus Touch or Index "
"controllers, for example. The buttons codes are defined by [url=https://"
"immersive-web.github.io/webxr-gamepads-module/#xr-standard-gamepad-"
"mapping]Section 3.3 of the WebXR Gamepads Module[/url].\n"
"- Using [method Node._unhandled_input] and [InputEventJoypadButton] or "
"[InputEventJoypadMotion]. This works the same as normal joypads, except the "
"[member InputEvent.device] starts at 100, so the left controller is 100 and "
"the right controller is 101, and the button codes are also defined by "
"[url=https://immersive-web.github.io/webxr-gamepads-module/#xr-standard-"
"gamepad-mapping]Section 3.3 of the WebXR Gamepads Module[/url].\n"
"- Using the [signal select], [signal squeeze] and related signals. This "
"method will work for both advanced VR controllers, and non-traditional "
"\"controllers\" like a tap on the screen, a spoken voice command or a button "
"press on the device itself. The [code]controller_id[/code] passed to these "
"signals is the same id as used in [member ARVRController.controller_id].\n"
"You can use one or all of these methods to allow your game or app to support "
"a wider or narrower set of devices and input methods, or to allow more "
"advanced interations with more advanced devices."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:94
msgid "https://www.snopekgames.com/blog/2020/how-make-vr-game-webxr-godot"
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:101
msgid ""
"Gets an [ARVRPositionalTracker] for the given [code]controller_id[/code].\n"
"In the context of WebXR, a \"controller\" can be an advanced VR controller "
"like the Oculus Touch or Index controllers, or even a tap on the screen, a "
"spoken voice command or a button press on the device itself. When a non-"
"traditional controller is used, interpret the position and orientation of "
"the [ARVRPositionalTracker] as a ray pointing at the object the user wishes "
"to interact with.\n"
"Use this method to get information about the controller that triggered one "
"of these signals:\n"
"- [signal selectstart]\n"
"- [signal select]\n"
"- [signal selectend]\n"
"- [signal squeezestart]\n"
"- [signal squeeze]\n"
"- [signal squeezestart]"
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:116
msgid ""
"Checks if the given [code]session_mode[/code] is supported by the user's "
"browser.\n"
"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
"API/XRSessionMode]WebXR's XRSessionMode[/url], including: [code]\"immersive-"
"vr\"[/code], [code]\"immersive-ar\"[/code], and [code]\"inline\"[/code].\n"
"This method returns nothing, instead it emits the [signal session_supported] "
"signal with the result."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:124
msgid ""
"The vertices of a polygon which defines the boundaries of the user's play "
"area.\n"
"This will only be available if [member reference_space_type] is "
"[code]\"bounded-floor\"[/code] and only on certain browsers and devices that "
"support it.\n"
"The [signal reference_space_reset] signal may indicate when this changes."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:129
msgid ""
"A comma-seperated list of optional features used by [method ARVRInterface."
"initialize] when setting up the WebXR session.\n"
"If a user's browser or device doesn't support one of the given features, "
"initialization will continue, but you won't be able to use the requested "
"feature.\n"
"This doesn't have any effect on the interface when already initialized.\n"
"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
"use a particular reference space type, it must be listed in either [member "
"required_features] or [member optional_features]."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:135
msgid ""
"The reference space type (from the list of requested types set in the "
"[member requested_reference_space_types] property), that was ultimately used "
"by [method ARVRInterface.initialize] when setting up the WebXR session.\n"
"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
"use a particular reference space type, it must be listed in either [member "
"required_features] or [member optional_features]."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:139
msgid ""
"A comma-seperated list of reference space types used by [method "
"ARVRInterface.initialize] when setting up the WebXR session.\n"
"The reference space types are requested in order, and the first on supported "
"by the users device or browser will be used. The [member "
"reference_space_type] property contains the reference space type that was "
"ultimately used.\n"
"This doesn't have any effect on the interface when already initialized.\n"
"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
"use a particular reference space type, it must be listed in either [member "
"required_features] or [member optional_features]."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:145
msgid ""
"A comma-seperated list of required features used by [method ARVRInterface."
"initialize] when setting up the WebXR session.\n"
"If a user's browser or device doesn't support one of the given features, "
"initialization will fail and [signal session_failed] will be emitted.\n"
"This doesn't have any effect on the interface when already initialized.\n"
"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
"API/XRReferenceSpaceType]WebXR's XRReferenceSpaceType[/url]. If you want to "
"use a particular reference space type, it must be listed in either [member "
"required_features] or [member optional_features]."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:151
msgid ""
"The session mode used by [method ARVRInterface.initialize] when setting up "
"the WebXR session.\n"
"This doesn't have any effect on the interface when already initialized.\n"
"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
"API/XRSessionMode]WebXR's XRSessionMode[/url], including: [code]\"immersive-"
"vr\"[/code], [code]\"immersive-ar\"[/code], and [code]\"inline\"[/code]."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:156
msgid ""
"Indicates if the WebXR session's imagery is visible to the user.\n"
"Possible values come from [url=https://developer.mozilla.org/en-US/docs/Web/"
"API/XRVisibilityState]WebXR's XRVisibilityState[/url], including "
"[code]\"hidden\"[/code], [code]\"visible\"[/code], and [code]\"visible-"
"blurred\"[/code]."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:163
msgid ""
"Emitted to indicate that the reference space has been reset or "
"reconfigured.\n"
"When (or whether) this is emitted depends on the user's browser or device, "
"but may include when the user has changed the dimensions of their play space "
"(which you may be able to access via [member bounds_geometry]) or pressed/"
"held a button to recenter their position.\n"
"See [url=https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace/"
"reset_event]WebXR's XRReferenceSpace reset event[/url] for more information."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:171
msgid ""
"Emitted after one of the \"controllers\" has finished its \"primary action"
"\".\n"
"Use [method get_controller] to get more information about the controller."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:178
msgid ""
"Emitted when one of the \"controllers\" has finished its \"primary action"
"\".\n"
"Use [method get_controller] to get more information about the controller."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:185
msgid ""
"Emitted when one of the \"controllers\" has started its \"primary action\".\n"
"Use [method get_controller] to get more information about the controller."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:191
msgid ""
"Emitted when the user ends the WebXR session (which can be done using UI "
"from the browser or device).\n"
"At this point, you should do [code]get_viewport().arvr = false[/code] to "
"instruct Godot to resume rendering to the screen."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:198
msgid ""
"Emitted by [method ARVRInterface.initialize] if the session fails to start.\n"
"[code]message[/code] may optionally contain an error message from WebXR, or "
"an empty string if no message is available."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:204
msgid ""
"Emitted by [method ARVRInterface.initialize] if the session is successfully "
"started.\n"
"At this point, it's safe to do [code]get_viewport().arvr = true[/code] to "
"instruct Godot to start rendering to the AR/VR device."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:212
msgid ""
"Emitted by [method is_session_supported] to indicate if the given "
"[code]session_mode[/code] is supported or not."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:218
msgid ""
"Emitted after one of the \"controllers\" has finished its \"primary squeeze "
"action\".\n"
"Use [method get_controller] to get more information about the controller."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:225
msgid ""
"Emitted when one of the \"controllers\" has finished its \"primary squeeze "
"action\".\n"
"Use [method get_controller] to get more information about the controller."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:232
msgid ""
"Emitted when one of the \"controllers\" has started its \"primary squeeze "
"action\".\n"
"Use [method get_controller] to get more information about the controller."
msgstr ""

#: modules/webxr/doc_classes/WebXRInterface.xml:238
#, fuzzy
msgid "Emitted when [member visibility_state] has changed."
msgstr "当[成员框架]更改时发出。"

#: doc/classes/WindowDialog.xml:4
#, fuzzy
msgid "Base class for window dialogs."
msgstr "音频流的基类。"

#: doc/classes/WindowDialog.xml:7
msgid ""
"Windowdialog is the base class for all window-based dialogs. It's a by-"
"default toplevel [Control] that draws a window decoration and allows motion "
"and resizing."
msgstr ""

#: doc/classes/WindowDialog.xml:15
#, fuzzy
msgid "Returns the close [TextureButton]."
msgstr "返回图块的纹理。"

#: doc/classes/WindowDialog.xml:21
#, fuzzy
msgid "If [code]true[/code], the user can resize the window."
msgstr "如果[code]true[/code],则摄像机随目标旋转。"

#: doc/classes/WindowDialog.xml:24
#, fuzzy
msgid "The text displayed in the window's title bar."
msgstr "显示在图形节点GraphNode标题栏中的文本。"

#: doc/classes/WindowDialog.xml:31
#, fuzzy
msgid "The icon for the close button."
msgstr "缩放重置按钮的图标。"

#: doc/classes/WindowDialog.xml:34
#, fuzzy
msgid "The horizontal offset of the close button."
msgstr "关闭按钮的垂直偏移量。"

#: doc/classes/WindowDialog.xml:37
#, fuzzy
msgid ""
"The icon used for the close button when it's hovered with the mouse cursor."
msgstr "当光标悬停时关闭按钮的背景。"

#: doc/classes/WindowDialog.xml:43
msgid ""
"The style for both the content background of the [WindowDialog] and the "
"title bar. The title bar is created with a top border and an expand margin "
"using the [code]panel[/code] stylebox."
msgstr ""

#: doc/classes/WindowDialog.xml:46
#, fuzzy
msgid ""
"The thickness of the border that can be dragged when scaling the window (if "
"[member resizable] is enabled)."
msgstr "用于调整大小的图标,在 [member resizable]被启用时可见。"

#: doc/classes/WindowDialog.xml:49
#, fuzzy
msgid "The color of the title text."
msgstr "标题文字的颜色。"

#: doc/classes/WindowDialog.xml:52
#, fuzzy
msgid "The font used to draw the title."
msgstr "用于绘制选项卡名称的字体。"

#: doc/classes/WindowDialog.xml:55
#, fuzzy
msgid "The vertical offset of the title text."
msgstr "标题文本的垂直偏移量。"

#: doc/classes/World.xml:4
msgid "Class that has everything pertaining to a world."
msgstr "拥有与世界相关的一切的类。"

#: doc/classes/World.xml:7
#, fuzzy
msgid ""
"Class that has everything pertaining to a world. A physics space, a visual "
"scenario and a sound space. Spatial nodes register their resources into the "
"current world."
msgstr ""
"拥有与世界相关的一切的类。一个物理空间、一个可视化场景和一个声音空间。Node3D"
"节点将其资源注册到当前世界中。"

#: doc/classes/World.xml:16
#, fuzzy
msgid ""
"Direct access to the world's physics 3D space state. Used for querying "
"current and potential collisions."
msgstr ""
"直接访问世界的物理三维空间状态。用于查询当前和潜在的碰撞。只能从"
"[code]_physics_process(delta)[/code]中访问。"

#: doc/classes/World.xml:19
#, fuzzy
msgid "The World's [Environment]."
msgstr "World3D的[Environment]环境。"

#: doc/classes/World.xml:22
#, fuzzy
msgid ""
"The World's fallback_environment will be used if the World's [Environment] "
"fails or is missing."
msgstr ""
"如果World3D的[Environment]环境失效或丢失,将使用World3D的"
"fallback_environment。"

#: doc/classes/World.xml:25
#, fuzzy
msgid "The World's visual scenario."
msgstr "World3D的可视化场景。"

#: doc/classes/World.xml:28
#, fuzzy
msgid "The World's physics space."
msgstr "World3D的物理空间。"

#: doc/classes/World2D.xml:4
msgid "Class that has everything pertaining to a 2D world."
msgstr "拥有与2D世界有关的所有内容的类。"

#: doc/classes/World2D.xml:7
msgid ""
"Class that has everything pertaining to a 2D world. A physics space, a "
"visual scenario and a sound space. 2D nodes register their resources into "
"the current 2D world."
msgstr ""
"拥有与2D世界有关一切的类。一个物理空间、一个可视化场景和一个声音空间。2D节点"
"将其资源注册到当前的2D世界中。"

#: doc/classes/World2D.xml:16
#, fuzzy
msgid ""
"The [RID] of this world's canvas resource. Used by the [VisualServer] for 2D "
"drawing."
msgstr "这个世界的画布资源的[RID]。由[RenderingServer]用于2D绘制。"

#: doc/classes/World2D.xml:19
#, fuzzy
msgid ""
"Direct access to the world's physics 2D space state. Used for querying "
"current and potential collisions. When using multi-threaded physics, access "
"is limited to [code]_physics_process(delta)[/code] in the main thread."
msgstr ""
"直接访问世界的物理三维空间状态。用于查询当前和潜在的碰撞。只能从"
"[code]_physics_process(delta)[/code]中访问。"

#: doc/classes/World2D.xml:22
#, fuzzy
msgid ""
"The [RID] of this world's physics space resource. Used by the "
"[Physics2DServer] for 2D physics, treating it as both a space and an area."
msgstr ""
"这个世界的物理空间资源的[RID]。由[PhysicsServer2D]用于2d物理,将其视为空间和"
"区域。"

#: doc/classes/WorldEnvironment.xml:4
msgid ""
"Default environment properties for the entire scene (post-processing "
"effects, lighting and background settings)."
msgstr "整个场景的默认环境属性,后期处理效果、照明和背景设置。"

#: doc/classes/WorldEnvironment.xml:7
#, fuzzy
msgid ""
"The [WorldEnvironment] node is used to configure the default [Environment] "
"for the scene.\n"
"The parameters defined in the [WorldEnvironment] can be overridden by an "
"[Environment] node set on the current [Camera]. Additionally, only one "
"[WorldEnvironment] may be instanced in a given scene at a time.\n"
"The [WorldEnvironment] allows the user to specify default lighting "
"parameters (e.g. ambient lighting), various post-processing effects (e.g. "
"SSAO, DOF, Tonemapping), and how to draw the background (e.g. solid color, "
"skybox). Usually, these are added in order to improve the realism/color "
"balance of the scene."
msgstr ""
"[WorldEnvironment]节点用于配置场景的默认[Environment]环境。\n"
"在[WorldEnvironment]世界环境中定义的参数可以被设置在当前[Camera3D]上的"
"[Environment]节点覆盖。此外,在一个给定的场景中,一次只能有一个"
"[WorldEnvironment]实例。\n"
"[WorldEnvironment]允许用户指定默认的照明参数,例如环境照明,各种后期处理效"
"果,例如SSAO、DOF、Tonemapping,以及如何绘制背景例如纯色、天空盒。通常,这些"
"都是为了提高场景的真实性及色彩平衡而添加的。"

#: doc/classes/WorldEnvironment.xml:21
msgid ""
"The [Environment] resource used by this [WorldEnvironment], defining the "
"default properties."
msgstr ""
"此[WorldEnvironment]世界环境所使用的[Environment]环境资源,定义默认属性。"

#: doc/classes/X509Certificate.xml:4
msgid "An X509 certificate (e.g. for SSL)."
msgstr "X509证书,例如用于SSL。"

#: doc/classes/X509Certificate.xml:7
msgid ""
"The X509Certificate class represents an X509 certificate. Certificates can "
"be loaded and saved like any other [Resource].\n"
"They can be used as the server certificate in [method StreamPeerSSL."
"accept_stream] (along with the proper [CryptoKey]), and to specify the only "
"certificate that should be accepted when connecting to an SSL server via "
"[method StreamPeerSSL.connect_to_stream].\n"
"[b]Note:[/b] Not available in HTML5 exports."
msgstr ""
"X509Certificate类表示一个X509证书。证书可以像其他的[Resource]资源一样被加载和"
"保存。\n"
"它们可以作为[method StreamPeerSSL.accept_stream]中的服务器证书,与适当的"
"[CryptoKey]一起使用,并指定通过[method StreamPeerSSL.connect_to_stream]连接到"
"SSL服务器时应该接受的唯一证书。\n"
"[b]注意:[/b] 在HTML5导出中不可用。"

#: doc/classes/X509Certificate.xml:18
msgid "Loads a certificate from [code]path[/code] (\"*.crt\" file)."
msgstr "从[code]path[/code]路径加载一个证书,注,\"*.crt \"文件。"

#: doc/classes/X509Certificate.xml:25
msgid ""
"Saves a certificate to the given [code]path[/code] (should be a \"*.crt\" "
"file)."
msgstr "将一个证书保存到给定的[code]path[/code],应是一个 \"*.crt \"文件。"

#: doc/classes/XMLParser.xml:4
msgid ""
"Low-level class for creating parsers for [url=https://en.wikipedia.org/wiki/"
"XML]XML[/url] files."
msgstr ""
"用于创建[url=https://en.wikipedia.org/wiki/XML]XML[/url]文件解析器的低级类。"

#: doc/classes/XMLParser.xml:7
msgid ""
"This class can serve as base to make custom XML parsers. Since XML is a very "
"flexible standard, this interface is low-level so it can be applied to any "
"possible schema."
msgstr ""
"这个类可以作为制作自定义XML解析器的基础。由于XML是一个非常灵活的标准,这个接"
"口也是低层次的,可被应用于任何可能的模式。"

#: doc/classes/XMLParser.xml:15
msgid "Gets the amount of attributes in the current element."
msgstr "获取当前元素中的属性数量。"

#: doc/classes/XMLParser.xml:22
msgid ""
"Gets the name of the attribute specified by the index in [code]idx[/code] "
"argument."
msgstr "获取由[code]idx[/code]参数中的索引指定的属性名称。"

#: doc/classes/XMLParser.xml:29
msgid ""
"Gets the value of the attribute specified by the index in [code]idx[/code] "
"argument."
msgstr "获取由[code]idx[/code]参数中的索引指定的属性值。"

#: doc/classes/XMLParser.xml:35
msgid "Gets the current line in the parsed file (currently not implemented)."
msgstr "获取被解析文件中的当前行(目前未实现)。"

#: doc/classes/XMLParser.xml:42
msgid ""
"Gets the value of a certain attribute of the current element by name. This "
"will raise an error if the element has no such attribute."
msgstr ""
"通过名称获取当前元素的某个属性的值。如果该元素没有该属性,将引发一个错误。"

#: doc/classes/XMLParser.xml:49
msgid ""
"Gets the value of a certain attribute of the current element by name. This "
"will return an empty [String] if the attribute is not found."
msgstr ""
"通过名称获取当前元素的某个属性值。如果没有找到该属性,将返回空的[String]。"

#: doc/classes/XMLParser.xml:55
msgid ""
"Gets the contents of a text node. This will raise an error in any other type "
"of node."
msgstr "获取文本节点的内容。若在任何其他类型的节点中,这将引发一个错误。"

#: doc/classes/XMLParser.xml:61
msgid ""
"Gets the name of the current element node. This will raise an error if the "
"current node type is neither [constant NODE_ELEMENT] nor [constant "
"NODE_ELEMENT_END]."
msgstr ""
"获取当前元素节点的名称。如果当前节点类型既不是[constant NODE_ELEMENT]也不是"
"[constant NODE_ELEMENT_END],将引发一个错误。"

#: doc/classes/XMLParser.xml:67
msgid ""
"Gets the byte offset of the current node since the beginning of the file or "
"buffer."
msgstr "获取当前节点从文件或缓冲区开始处的字节偏移量。"

#: doc/classes/XMLParser.xml:73
msgid ""
"Gets the type of the current node. Compare with [enum NodeType] constants."
msgstr "获取当前节点的类型。与[enum NodeType]常量比较。"

#: doc/classes/XMLParser.xml:80
msgid "Check whether the current element has a certain attribute."
msgstr "检查当前元素是否有某个属性。"

#: doc/classes/XMLParser.xml:86
msgid ""
"Check whether the current element is empty (this only works for completely "
"empty tags, e.g. [code]<element \\>[/code])."
msgstr ""
"检查当前元素是否为空,这只适用于完全空的标签,例如[code]<element\\>[/code]。"

#: doc/classes/XMLParser.xml:93
msgid "Opens an XML file for parsing. This returns an error code."
msgstr "打开一个XML文件进行解析。这将返回一个错误代码。"

#: doc/classes/XMLParser.xml:100
msgid "Opens an XML raw buffer for parsing. This returns an error code."
msgstr "打开一个XML原始缓冲区进行解析。这将返回一个错误代码。"

#: doc/classes/XMLParser.xml:106
msgid "Reads the next node of the file. This returns an error code."
msgstr "读取文件的下一个节点。这将返回一个错误代码。"

#: doc/classes/XMLParser.xml:113
msgid ""
"Moves the buffer cursor to a certain offset (since the beginning) and read "
"the next node there. This returns an error code."
msgstr ""
"将缓冲区光标移动到某一偏移量,注,从开始位置,并在那里读取下一个节点。这将返"
"回一个错误代码。"

#: doc/classes/XMLParser.xml:119
msgid ""
"Skips the current section. If the node contains other elements, they will be "
"ignored and the cursor will go to the closing of the current element."
msgstr ""
"跳过当前部分。如果该节点包含其他元素,它们将被忽略,光标将跳转到当前元素的结"
"尾处。"

#: doc/classes/XMLParser.xml:125
msgid "There's no node (no file or buffer opened)."
msgstr "没有节点,未打开文件或缓冲区。"

#: doc/classes/XMLParser.xml:128
msgid "Element (tag)."
msgstr "元素,即标签。"

#: doc/classes/XMLParser.xml:131
msgid "End of element."
msgstr "元素的末端。"

#: doc/classes/XMLParser.xml:134
msgid "Text node."
msgstr "文本节点。"

#: doc/classes/XMLParser.xml:137
msgid "Comment node."
msgstr "注释节点。"

#: doc/classes/XMLParser.xml:140
msgid "CDATA content."
msgstr "CDATA 内容。"

#: doc/classes/XMLParser.xml:143
msgid "Unknown node."
msgstr "未知节点。"

#: doc/classes/YSort.xml:4
msgid "Sort all child nodes based on their Y positions."
msgstr "根据所有子节点的Y坐标对它们进行排序。"

#: doc/classes/YSort.xml:7
msgid ""
"Sort all child nodes based on their Y positions. The child node must inherit "
"from [CanvasItem] for it to be sorted. Nodes that have a higher Y position "
"will be drawn later, so they will appear on top of nodes that have a lower Y "
"position.\n"
"Nesting of YSort nodes is possible. Children YSort nodes will be sorted in "
"the same space as the parent YSort, allowing to better organize a scene or "
"divide it in multiple ones, yet keep the unique sorting."
msgstr ""
"根据子节点的Y坐标对所有子节点进行排序.子节点必须继承自[CanvasItem],才能进行排"
"序.Y坐标较高的节点将后绘制,因此它们将出现在Y坐标较低的节点之上.\n"
"YSort节点可以嵌套.子节点将与父节点在相同的空间内进行排序,这样可以更好地组织一"
"个场景或将其分为多个场景,但又能保持唯一的排序."

#: doc/classes/YSort.xml:16
msgid ""
"If [code]true[/code], child nodes are sorted, otherwise sorting is disabled."
msgstr "如果为[code]true[/code],则对子节点进行排序,否则禁用排序。"

#~ msgid ""
#~ "Returns the cosine of angle [code]s[/code] in radians.\n"
#~ "[codeblock]\n"
#~ "# Prints 1 then -1\n"
#~ "print(cos(PI * 2))\n"
#~ "print(cos(PI))\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "返回弧度角 [code]s[/code] 的余弦值。\n"
#~ "[codeblock]\n"
#~ "# Prints 1 then -1\n"
#~ "print(cos(PI * 2))\n"
#~ "print(cos(PI))\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Easing function, based on exponent. The curve values are: 0 is constant, "
#~ "1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-"
#~ "out/out in."
#~ msgstr ""
#~ "缓动函数,基于指数。曲线值是:0是常量,1是线性,0到1是缓入,1+是缓出。负值"
#~ "是in-out / out in。"

#~ msgid ""
#~ "Converts one or more arguments to strings in the best way possible and "
#~ "prints them to the console.\n"
#~ "[codeblock]\n"
#~ "a = [1, 2, 3]\n"
#~ "print(\"a\", \"b\", a) # Prints ab[1, 2, 3]\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "以尽可能最佳的方式将一个或多个参数转换为字符串,并将其打印到控制台。\n"
#~ "[codeblock]\n"
#~ "a = [1, 2, 3]\n"
#~ "print(\"a\", \"b\", a) # Prints ab[1, 2, 3]\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Returns an array with the given range. Range can be 1 argument N (0 to "
#~ "N-1), two arguments (initial, final-1) or three arguments (initial, "
#~ "final-1, increment).\n"
#~ "[codeblock]\n"
#~ "for i in range(4):\n"
#~ "    print(i)\n"
#~ "for i in range(2, 5):\n"
#~ "    print(i)\n"
#~ "for i in range(0, 6, 2):\n"
#~ "    print(i)\n"
#~ "[/codeblock]\n"
#~ "Output:\n"
#~ "[codeblock]\n"
#~ "0\n"
#~ "1\n"
#~ "2\n"
#~ "3\n"
#~ "\n"
#~ "2\n"
#~ "3\n"
#~ "4\n"
#~ "\n"
#~ "0\n"
#~ "2\n"
#~ "4\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "返回具有给定范围的数组。范围可以是1个自变量N(0到N-1),两个自变量(初始,"
#~ "final-1)或三个自变量(初始,final-1,增量)。\n"
#~ "[codeblock]\n"
#~ "for i in range(4):\n"
#~ "    print(i)\n"
#~ "for i in range(2, 5):\n"
#~ "    print(i)\n"
#~ "for i in range(0, 6, 2):\n"
#~ "    print(i)\n"
#~ "[/codeblock]\n"
#~ "Output:\n"
#~ "[codeblock]\n"
#~ "0\n"
#~ "1\n"
#~ "2\n"
#~ "3\n"
#~ "\n"
#~ "2\n"
#~ "3\n"
#~ "4\n"
#~ "\n"
#~ "0\n"
#~ "2\n"
#~ "4\n"
#~ "[/codeblock]"

#~ msgid "Positive infinity. For negative infinity, use -INF."
#~ msgstr "正无穷大。对于负无穷大,请使用-INF。"

#~ msgid ""
#~ "\"Not a Number\", an invalid value. [code]NaN[/code] has special "
#~ "properties, including that it is not equal to itself. It is output by "
#~ "some invalid operations, such as dividing zero by zero."
#~ msgstr ""
#~ "“非数字”,无效值。[code]NaN[/code] 具有特殊的属性,包括不等于其自身。它是"
#~ "通过一些无效操作输出的,例如零除零。"

#~ msgid "The [Geometry3D] singleton."
#~ msgstr "[Geometry3D] 单例。"

#~ msgid "The [GodotSharp] singleton."
#~ msgstr "[GodotSharp] 单例。"

#~ msgid "The [NavigationServer2D] singleton."
#~ msgstr "[NavigationServer2D] 单例。"

#~ msgid "The [PhysicsServer3D] singleton."
#~ msgstr "[PhysicsServer3D] 单例。"

#~ msgid "The [RenderingServer] singleton."
#~ msgstr "[RenderingServer]单例。"

#~ msgid "Back key."
#~ msgstr "Back 键。"

#~ msgid "Forward key."
#~ msgstr "Forward 键。"

#~ msgid "Stop key."
#~ msgstr "Stop 键。"

#~ msgid "Refresh key."
#~ msgstr "刷新键。"

#~ msgid "An invalid game controller button."
#~ msgstr "无效的游戏控制器按钮。"

#~ msgid "Game controller SDL button B."
#~ msgstr "游戏控制器 SDL 按钮 B。"

#~ msgid "Game controller SDL button X."
#~ msgstr "游戏控制器 SDL 按钮 X。"

#~ msgid "Game controller SDL button Y."
#~ msgstr "游戏控制器 SDL 按钮 Y。"

#~ msgid "Game controller SDL back button."
#~ msgstr "游戏控制器 SDL 返回按钮。"

#~ msgid "Game controller SDL start button."
#~ msgstr "游戏控制器 SDL 开始按钮。"

#~ msgid "Game controller SDL left stick button."
#~ msgstr "游戏控制器 SDL 左摇杆按钮。"

#~ msgid "Game controller SDL right stick button."
#~ msgstr "游戏控制器 SDL 右摇杆按钮。"

#~ msgid "Game controller SDL D-pad down button."
#~ msgstr "游戏控制器 SDL 方向下按钮。"

#~ msgid "Game controller SDL D-pad right button."
#~ msgstr "游戏控制器 SDL 方向右按钮。"

#~ msgid "The number of SDL game controller buttons."
#~ msgstr "SDL 游戏控制器的按钮数量。"

#~ msgid "Sony DualShock controller X button maps to SDL button A."
#~ msgstr "Sony DualShock 控制器 X 按钮映射到 SDL 按钮A。"

#~ msgid "Sony DualShock controller cross button maps to SDL button A."
#~ msgstr "Sony DualShock controller X 按钮映射到 SDL 按钮 A 。"

#~ msgid "Sony DualShock controller circle button maps to SDL button B."
#~ msgstr "Sony DualShock 控制器圆圈按钮映射到 SDL 按钮 B。"

#~ msgid "Sony DualShock controller square button maps to SDL button X."
#~ msgstr "Sony DualShock 控制器方框按钮映射到 SDL 按钮 X。"

#~ msgid "Sony DualShock controller triangle button maps to SDL button Y."
#~ msgstr "Sony DualShock 控制器三角按钮映射到 SDL 按钮 Y 。"

#~ msgid "Sony DualShock controller select button maps to SDL back button."
#~ msgstr "Sony DualShock 控制器选择按钮映射到 SDL 返回按钮。"

#~ msgid "Sony DualShock controller start button maps to SDL start button."
#~ msgstr "Sony DualShock 控制器开始按钮映射到 SDL 开始按钮。"

#~ msgid "Sony DualShock controller PS button maps to SDL guide button."
#~ msgstr "Sony DualShock 控制器 PS 按钮映射到 SDL 向导按钮。"

#~ msgid ""
#~ "Sony DualShock controller L1 button maps to SDL left shoulder button."
#~ msgstr "Sony DualShock 控制器 L1 按钮映射到 SDL 左肩按钮。"

#~ msgid ""
#~ "Sony DualShock controller R1 button maps to SDL right shoulder button."
#~ msgstr "Sony DualShock 控制器 R1 按钮映射到 SDL 右肩按钮。"

#~ msgid "Sony DualShock controller L3 button maps to SDL left stick button."
#~ msgstr "Sony DualShock 控制器 L3 按钮映射到 SDL 左摇杆按钮。"

#~ msgid "Sony DualShock controller R3 button maps to SDL right stick button."
#~ msgstr "Sony DualShock 控制器 R3 按钮映射到 SDL 右摇杆按钮。"

#~ msgid "Xbox game controller A button maps to SDL button A."
#~ msgstr "Xbox 控制器 A 按钮映射到 SDL 按钮 A 。"

#~ msgid "Xbox game controller B button maps to SDL button B."
#~ msgstr "Xbox 控制器 B 按钮映射到 SDL 按钮 B。"

#~ msgid "Xbox game controller X button maps to SDL button X."
#~ msgstr "Xbox 控制器 Y 按钮映射到 SDL 按钮 X。"

#~ msgid "Xbox game controller Y button maps to SDL button Y."
#~ msgstr "Xbox 控制器 Y 按钮映射到 SDL 按钮 Y 。"

#~ msgid "Xbox game controller back button maps to SDL back button."
#~ msgstr "Xbox 控制器返回按钮映射到 SDL 返回按钮。"

#~ msgid "Xbox game controller start button maps to SDL start button."
#~ msgstr "Xbox 控制器开始按钮映射到 SDL 开始按钮。"

#~ msgid "Xbox game controller home button maps to SDL guide button."
#~ msgstr "Xbox 控制器 Home 按钮映射到 SDL 向导按钮。"

#~ msgid ""
#~ "Xbox game controller left stick button maps to SDL left stick button."
#~ msgstr "Xbox 控制器左摇杆按钮映射到 SDL 左摇杆按钮。"

#~ msgid ""
#~ "Xbox game controller right stick button maps to SDL right stick button."
#~ msgstr "Xbox 控制器右摇杆按钮映射到 SDL 右摇杆按钮。"

#~ msgid ""
#~ "Xbox game controller left bumper button maps to SDL left shoulder button."
#~ msgstr "Xbox 控制器左肩按钮映射到 SDl 左键按钮。"

#~ msgid ""
#~ "Xbox game controller right bumper button maps to SDL right shoulder "
#~ "button."
#~ msgstr "Xbox 控制器右肩按钮映射到 SDL 右肩按钮。"

#~ msgid "An invalid game controller axis."
#~ msgstr "无效的游戏控制器轴。"

#~ msgid "Game controller left joystick y-axis."
#~ msgstr "游戏控制器左摇杆Y轴。"

#~ msgid "Game controller right joystick y-axis."
#~ msgstr "游戏控制器右摇杆Y轴。"

#~ msgid "The number of SDL game controller axes."
#~ msgstr "SDL 游戏控制器轴的数量。"

#~ msgid "Game controller joystick 0 x-axis."
#~ msgstr "游戏控制器摇杆0的X轴。"

#~ msgid "Game controller joystick 0 y-axis."
#~ msgstr "游戏控制器摇杆0的Y轴。"

#~ msgid "Game controller joystick 1 x-axis."
#~ msgstr "游戏控制器摇杆1的X轴。"

#~ msgid "Game controller joystick 1 y-axis."
#~ msgstr "游戏控制器摇杆1的Y轴。"

#~ msgid "Game controller joystick 2 x-axis."
#~ msgstr "游戏控制器摇杆2的X轴。"

#~ msgid "Game controller joystick 2 y-axis."
#~ msgstr "游戏控制器摇杆2的Y轴。"

#~ msgid "Game controller joystick 3 x-axis."
#~ msgstr "游戏控制器摇杆3的X轴。"

#~ msgid "Game controller joystick 3 y-axis."
#~ msgstr "游戏控制器摇杆3的Y轴。"

#~ msgid "Game controller joystick 4 x-axis."
#~ msgstr "游戏控制器摇杆4的X轴。"

#~ msgid "Game controller joystick 4 y-axis."
#~ msgstr "游戏控制器摇杆4的Y轴。"

#~ msgid "The maximum number of game controller axes."
#~ msgstr "游戏控制器轴数量的最大值。"

#~ msgid ""
#~ "Used to group properties together in the editor in a subgroup (under a "
#~ "group)."
#~ msgstr "用于将编辑器中的属性分组为一个子组。"

#~ msgid "Variable is of type [Vector2i]."
#~ msgstr "变量类型为[Vector2i]。"

#~ msgid "Variable is of type [Rect2i]."
#~ msgstr "变量类型为[Rect2i]。"

#~ msgid "Variable is of type [Vector3i]."
#~ msgstr "变量类型为[Vector3i]。"

#~ msgid "Variable is of type [StringName]."
#~ msgstr "变量的类型为[StringName]."

#~ msgid "Variable is of type [Callable]."
#~ msgstr "变量的类型为[Callable]."

#~ msgid "Variable is of type [Signal]."
#~ msgstr "变量的类型为[Signal]."

#~ msgid "Variable is of type [PackedInt32Array]."
#~ msgstr "变量的类型为[PackedInt32Array]."

#~ msgid "Variable is of type [PackedInt64Array]."
#~ msgstr "变量的类型为[PackedInt64Array]。"

#~ msgid "Variable is of type [PackedFloat32Array]."
#~ msgstr "变量的类型为 [PackedFloat32Array]."

#~ msgid "Variable is of type [PackedFloat64Array]."
#~ msgstr "变量的类型为[PackedFloat64Array]。"

#~ msgid ""
#~ "AABB consists of a position, a size, and several utility functions. It is "
#~ "typically used for fast overlap tests."
#~ msgstr ""
#~ "AABB包含了一个位置、一个大小和一些实用的函数。它通常被用于快速的碰撞检测。"

#~ msgid "Strength of the specular light effect of this [AnimatedSprite2D]."
#~ msgstr "此[AnimatedSprite2D]的镜面反射光效果的强度。"

#~ msgid "The color of the specular light effect."
#~ msgstr "镜面反射光效果的颜色。"

#~ msgid ""
#~ "This node can be used to cause a seek command to happen to any sub-"
#~ "children of the graph. After setting the time, this value returns to -1."
#~ msgstr ""
#~ "此节点可用于在图中的任意子节点中引发一个seek指令。设置时间后,该值变回-1。"

#~ msgid ""
#~ "https://docs.godotengine.org/en/latest/getting_started/step_by_step/"
#~ "animations.html"
#~ msgstr ""
#~ "https://docs.godotengine.org/zh_CN/latest/getting_started/step_by_step/"
#~ "animations.html"

#~ msgid ""
#~ "The name of the current animation, \"\" if not playing anything. When "
#~ "being set, does not restart the animation. See also [method play]."
#~ msgstr ""
#~ "当前动画的名称,如果没有播放任何动画,则为\"\"。当被设置时,不重启动画。参"
#~ "见[播放方法]。"

#~ msgid ""
#~ "If the currently being played animation changes, this signal will notify "
#~ "of such change."
#~ msgstr "如果当前正在播放的动画发生变化,该信号将通知该变化。"

#~ msgid ""
#~ "Returns an individual bit on the layer mask. Describes whether other "
#~ "areas will collide with this one on the given layer."
#~ msgstr ""
#~ "返回层遮罩上的单独一位。描述在该层上,其它区域是否会与本区域发生碰撞。"

#~ msgid ""
#~ "Returns an individual bit on the collision mask. Describes whether this "
#~ "area will collide with others on the given layer."
#~ msgstr ""
#~ "返回碰撞遮罩上的单独一位。描述在该层上,本区域是否会与其它区域发生碰撞。"

#~ msgid ""
#~ "Set/clear individual bits on the layer mask. This makes getting an area "
#~ "in/out of only one layer easier."
#~ msgstr ""
#~ "设置/清除图层蒙版上的各个位。这使得只进入/离开一个图层的区域变得更容易。"

#~ msgid ""
#~ "Set/clear individual bits on the collision mask. This makes selecting the "
#~ "areas scanned easier."
#~ msgstr "设置/清除碰撞掩模上的各个位。这使得选择扫描的区域更加容易。"

#~ msgid "The physics layers this area scans to determine collision detection."
#~ msgstr "物理层这个区域扫描确定碰撞检测。"

#~ msgid "Emitted when another area enters."
#~ msgstr "当另一个区域进入时发出。"

#~ msgid "Emitted when another area exits."
#~ msgstr "当另一个区域退出时发出。"

#~ msgid ""
#~ "Emitted when another area enters, reporting which shapes overlapped. "
#~ "[code]shape_owner_get_owner(shape_find_owner(shape))[/code] returns the "
#~ "parent object of the owner of the [code]shape[/code]."
#~ msgstr ""
#~ "当另一个区域进入时发出,报告哪些形状重叠。 [code] "
#~ "shape_owner_get_owner(shape_find_owner(shape))[/code]returns[code] "
#~ "shape [/code]的所有者的父对象。"

#~ msgid ""
#~ "Emitted when another area exits, reporting which shapes were overlapping."
#~ msgstr "当另一个区域退出时发出,报告哪些形状是重叠的。"

#~ msgid ""
#~ "Emitted when a physics body enters.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody2D] or a "
#~ "[TileMap] instance (while TileMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当物理物体进入时发射。\n"
#~ "[code] body [/code]参数可以是[PhysicsBody2D]或 [TileMap]实例(虽然TileMaps"
#~ "本身不是物理实体,但它们将具有碰撞形状的图块注册为虚拟物理实体)。"

#~ msgid ""
#~ "Emitted when a physics body exits.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody2D] or a "
#~ "[TileMap] instance (while TileMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当物理物体退出时发出。\n"
#~ "[code] body [/code]参数可以是[PhysicsBody2D]或[TileMap]实例(虽然TileMaps"
#~ "本身不是物理实体,但它们将具有碰撞形状的图块注册为虚拟物理实体)。"

#~ msgid ""
#~ "Emitted when a physics body enters, reporting which shapes overlapped.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody2D] or a "
#~ "[TileMap] instance (while TileMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当一个物理体进入时发出,报告哪些形状是重叠的。\n"
#~ "[code]body[/code]参数可以是一个[PhysicsBody2D]或一个[TileMap]实例(虽然"
#~ "TileMaps本身不是物理体,但它们将带有碰撞形状的瓷砖注册为虚拟物理体)。"

#~ msgid ""
#~ "Emitted when a physics body exits, reporting which shapes were "
#~ "overlapping.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody2D] or a "
#~ "[TileMap] instance (while TileMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当一个物理体退出时发出,报告哪些形状是重叠的。\n"
#~ "[code]body[/code]参数可以是一个[PhysicsBody2D]或一个[TileMap]实例(虽然"
#~ "TileMaps本身不是物理体,但它们将带有碰撞形状的瓷砖注册为虚拟物理体)。"

#~ msgid "General-purpose area node for detection and 3D physics influence."
#~ msgstr "检测和3D物理影响的通用区域节点。"

#~ msgid ""
#~ "Returns a list of intersecting [Area3D]s. For performance reasons "
#~ "(collisions are all processed at the same time) this list is modified "
#~ "once during the physics step, not immediately after objects are moved. "
#~ "Consider using signals instead."
#~ msgstr ""
#~ "返回相交的 [Area2D] 的列表。由于性能原因(碰撞都是同时处理的),该列表不会"
#~ "在对象移动后立即更新,只会在物理更新时进行统一修改。可以考虑改用信号。"

#~ msgid ""
#~ "Returns a list of intersecting [PhysicsBody3D]s. For performance reasons "
#~ "(collisions are all processed at the same time) this list is modified "
#~ "once during the physics step, not immediately after objects are moved. "
#~ "Consider using signals instead."
#~ msgstr ""
#~ "返回相交的 [PhysicsBody2D] 的列表。由于性能原因(碰撞都是同时处理的),该"
#~ "列表不会在对象移动后立即更新,只会在物理更新时进行统一修改。可以考虑改用信"
#~ "号。"

#~ msgid ""
#~ "If [code]true[/code], the given area overlaps the Area3D.\n"
#~ "[b]Note:[/b] The result of this test is not immediate after moving "
#~ "objects. For performance, list of overlaps is updated once per frame and "
#~ "before the physics step. Consider using signals instead."
#~ msgstr ""
#~ "如果[code]true[/code],则给定区域与Area3D重叠。\n"
#~ "[b]注意:[/b]在移动物体后,这个测试的结果不是立即的。为了性能,重叠列表每帧"
#~ "更新一次,并且在物理步骤之前更新。可以考虑使用信号来代替。"

#~ msgid ""
#~ "Set/clear individual bits on the layer mask. This simplifies editing this "
#~ "[Area3D]'s layers."
#~ msgstr "设置/清除图层蒙版上的各个位。这样可以简化编辑这个[Area3D]的图层。"

#~ msgid ""
#~ "Set/clear individual bits on the collision mask. This simplifies editing "
#~ "which [Area3D] layers this [Area3D] scans."
#~ msgstr ""
#~ "设置/清除碰撞掩模上的各个位。这可以简化编辑该[Area3D]扫描的[Area3D]图层。"

#~ msgid ""
#~ "Emitted when another area enters, reporting which areas overlapped. "
#~ "[code]shape_owner_get_owner(shape_find_owner(shape))[/code] returns the "
#~ "parent object of the owner of the [code]shape[/code]."
#~ msgstr ""
#~ "当另一个区域进入时发出,报告哪些区域重叠。"
#~ "[code]shape_owner_get_owner(shape_find_owner(shape))[/"
#~ "code]returns[code]shape[/code]的所有者的父对象。"

#~ msgid ""
#~ "Emitted when another area exits, reporting which areas were overlapping."
#~ msgstr "当另一个区域退出时发出,报告哪些区域是重叠的。"

#~ msgid ""
#~ "Emitted when a physics body enters.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody3D] or a "
#~ "[GridMap] instance (while GridMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当物理物体进入时发射。\n"
#~ "[code] body [/code]参数可以是[PhysicsBody3D]或[GridMap]实例(虽然GridMap本"
#~ "身不是物理物体,但它们将具有碰撞形状的图块注册为虚拟物理物体)。"

#~ msgid ""
#~ "Emitted when a physics body exits.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody3D] or a "
#~ "[GridMap] instance (while GridMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当物理物体退出时发出。\n"
#~ "[code] body [/code]参数可以是[PhysicsBody3D]或[GridMap]实例(虽然GridMaps"
#~ "本身不是物理物体,但它们将具有碰撞形状的图块注册为虚拟物理物体)。"

#~ msgid ""
#~ "Emitted when a physics body enters, reporting which shapes overlapped.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody3D] or a "
#~ "[GridMap] instance (while GridMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当物理物体进入时发出,报告哪些形状重叠。\n"
#~ "[code] body [/code]参数可以是[PhysicsBody3D]或[GridMap]实例(虽然GridMaps"
#~ "本身不是物理物体,但它们将具有碰撞形状的图块注册为虚拟物理物体)。"

#~ msgid ""
#~ "Emitted when a physics body exits, reporting which shapes were "
#~ "overlapping.\n"
#~ "The [code]body[/code] argument can either be a [PhysicsBody3D] or a "
#~ "[GridMap] instance (while GridMaps are not physics body themselves, they "
#~ "register their tiles with collision shapes as a virtual physics body)."
#~ msgstr ""
#~ "当物理物体退出时发出,报告哪些形状重叠。\n"
#~ "[code] body [/code]参数可以是[PhysicsBody3D]或[GridMap]实例(尽管GridMap本"
#~ "身不是物理物体,但它们将具有碰撞形状的图块注册为虚拟物理物体)。"

#~ msgid "Constructs an array from a [PackedFloat64Array]."
#~ msgstr "从 [PackedFloat64Array] 构造数组。"

#~ msgid "Constructs an array from a [PackedFloat32Array]."
#~ msgstr "从 [PackedFloat32Array] 构造数组。"

#~ msgid "Constructs an array from a [PackedInt32Array]."
#~ msgstr "从 [PackedInt32Array] 构造数组。"

#~ msgid ""
#~ "Returns the last element of the array, or [code]null[/code] if the array "
#~ "is empty."
#~ msgstr "返回数组的最后一个元素。该数组为空时,返回 [code]null[/code]。"

#~ msgid "Removes the first occurrence of a value from the array."
#~ msgstr "删除数组中首次出现的该值。"

#~ msgid ""
#~ "Returns the first element of the array, or [code]null[/code] if the array "
#~ "is empty."
#~ msgstr "返回数组中的首个元素,数组为空时返回 [code]null[/code]。"

#~ msgid "Returns a hashed integer value representing the array contents."
#~ msgstr "返回数组内容的整数哈希值。"

#~ msgid ""
#~ "Inserts a new element at a given position in the array. The position must "
#~ "be valid, or at the end of the array ([code]pos == size()[/code])."
#~ msgstr ""
#~ "在指定位置插入新元素。位置必须有效,或者位于数组结尾([code]pos == size()"
#~ "[/code])。"

#~ msgid ""
#~ "Removes and returns the first element of the array. Returns [code]null[/"
#~ "code] if the array is empty."
#~ msgstr "删除并返回数组中的首个元素。数组为空时,返回 [code]null[/code]。"

#~ msgid "Adds an element at the beginning of the array."
#~ msgstr "在数组的开头添加一个元素。"

#~ msgid ""
#~ "Sets the [code]weight_scale[/code] for the point with the given [code]id[/"
#~ "code]."
#~ msgstr "为具有给定[code] id [/code]的点设置[code] weight_scale [/code]。"

#~ msgid ""
#~ "Packs multiple small textures in a single, bigger one. Helps to optimize "
#~ "video memory costs and render calls."
#~ msgstr ""
#~ "将多个小纹理打包成一个更大的纹理。有助于优化视频存储成本和渲染调用。"

#~ msgid ""
#~ "[Texture2D] resource aimed at managing big textures files that pack "
#~ "multiple smaller textures. Consists of a [Texture2D], a margin that "
#~ "defines the border width, and a region that defines the actual area of "
#~ "the AtlasTexture."
#~ msgstr ""
#~ "[Texture2D]资源,旨在管理包含多个较小纹理的大纹理文件。由一个[Texture2D]、"
#~ "一个定义边界宽度的边框和一个定义AtlasTexture实际面积的区域组成。"

#~ msgid "Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves)."
#~ msgstr "音高值。范围可以从0(-1个八度)到16(+16个八度)。"

#~ msgid "Plays an audio stream non-positionally."
#~ msgstr "非定位地播放音频流。"

#~ msgid "Plays audio in 2D."
#~ msgstr "以2D方式播放音频。"

#~ msgid "Plays audio that dampens with distance from screen center."
#~ msgstr "播放的音频会随着与屏幕中心的距离而减弱。"

#~ msgid ""
#~ "Plays a sound effect with directed sound effects, dampens with distance "
#~ "if needed, generates effect of hearable position in space."
#~ msgstr ""
#~ "播放带有指向性的声音效果,根据需要随距离的远近而衰减,在空间中产生可听的位"
#~ "置效果。"

#~ msgid "Dampens audio above this frequency, in Hz."
#~ msgstr "抑制高于该频率的音频,单位为Hz。"

#~ msgid "Decides in which step the Doppler effect should be calculated."
#~ msgstr "决定应该在哪一步计算多普勒效应。"

#~ msgid "Factor for the attenuation effect."
#~ msgstr "衰减效应的因素。"

#~ msgid "No dampening of loudness according to distance."
#~ msgstr "不会因为距离而降低响度。"

#~ msgid "Mix this audio in, even when it's out of range."
#~ msgstr "混合这个音频,即使它在范围外。"

#~ msgid "Pause this audio when it gets out of range."
#~ msgstr "当音频超出范围时暂停此音频。"

#~ msgid "The sample rate for mixing this audio."
#~ msgstr "混合此音频的采样率。"

#~ msgid ""
#~ "Focus access mode to use when switching between enabled/disabled (see "
#~ "[member Control.focus_mode] and [member disabled])."
#~ msgstr ""
#~ "在启用/禁用之间切换时要使用的焦点访问模式(参见 [member Control."
#~ "focus_mode] 和 [member disabled])。"

#~ msgid ""
#~ "If [code]true[/code], the button's state is pressed. Means the button is "
#~ "pressed down or toggled (if [member toggle_mode] is active)."
#~ msgstr ""
#~ "如果[code]true[/code],则表示按钮的状态被按下。意味着按钮被按下或切换(如"
#~ "果 [member toggle_mode] is active] 处于活动状态)。"

#~ msgid ""
#~ "Sets the texture for the slot specified by [code]param[/code]. See [enum "
#~ "TextureParam] for available slots."
#~ msgstr ""
#~ "为 [code]param[/code] 指定的槽位设置纹理。请参阅 [enum TextureParam] 获取"
#~ "可用的槽位。"

#~ msgid "If [code]true[/code], the backlight effect is enabled."
#~ msgstr "如果 [code]true[/code] ,则启用背光效果。"

#~ msgid "Controls how the object faces the camera. See [enum BillboardMode]."
#~ msgstr "控制对象如何面对摄像机。参见 [enum BillboardMode]。"

#~ msgid "Distance at which the object fades fully and is no longer visible."
#~ msgstr "物体完全褪色并不再可见的距离。"

#~ msgid ""
#~ "Distance at which the object starts to fade. If the object is less than "
#~ "this distance away it will appear normal."
#~ msgstr "物体开始褪色的距离。如果物体小于这个距离,它将显示正常。"

#~ msgid ""
#~ "If [code]true[/code], the refraction effect is enabled. Distorts "
#~ "transparency based on light from behind the object."
#~ msgstr ""
#~ "如果[code]true[/code],则启用折射效果。根据物体后方的光线来扭曲透明度。"

#~ msgid "The strength of the refraction effect."
#~ msgstr "折射效果的强度。"

#~ msgid ""
#~ "Sets whether the shading takes place per-pixel or per-vertex. Per-vertex "
#~ "lighting is faster, making it the best choice for mobile applications, "
#~ "however it looks considerably worse than per-pixel."
#~ msgstr ""
#~ "设置阴影是按像素还是按顶点进行。Per-vertex照明速度更快,是移动应用的最佳选"
#~ "择,但它看起来比Per-pixel差很多。"

#~ msgid ""
#~ "If [code]true[/code], subsurface scattering will use a special mode "
#~ "optimized for the color and density of human skin."
#~ msgstr ""
#~ "如果[code]true[/code],次表面散射将使用针对人体皮肤颜色和密度优化的特殊模"
#~ "式。"

#~ msgid "Filter flags for the texture. See [enum TextureFilter] for options."
#~ msgstr "纹理的过滤标志。参见[enum TextureFilter]选项。"

#~ msgid ""
#~ "If [code]true[/code], triplanar mapping for [code]UV2[/code] is "
#~ "calculated in world space rather than object local space. See also "
#~ "[member uv2_triplanar]."
#~ msgstr ""
#~ "如果为 [code]true[/code],[code]UV2[/code]的三平面贴图是在世界空间而不是对"
#~ "象局部空间计算的。另见[member uv2_triplanar]。"

#~ msgid ""
#~ "Texture specifying per-pixel transmittance for subsurface scattering."
#~ msgstr "指定每像素透射率的纹理,用于次表面散射。"

#~ msgid "Texture specifying per-pixel backlight color."
#~ msgstr "指定每个像素背光颜色的纹理。"

#~ msgid "Texture holding ambient occlusion, roughness, and metallic."
#~ msgstr "纹理持环境咬合度、粗糙度和金属感。"

#~ msgid ""
#~ "The texture filter reads from the nearest pixel only. The simplest and "
#~ "fastest method of filtering, but the texture will look pixelized."
#~ msgstr ""
#~ "纹理过滤器只从最近的像素读取。是最简单、最快的过滤方法,但纹理会显得像素"
#~ "化。"

#~ msgid ""
#~ "The texture filter blends between the nearest 4 pixels. Use this when you "
#~ "want to avoid a pixelated style, but do not want mipmaps."
#~ msgstr ""
#~ "纹理过滤器在最近的4个像素之间进行混合。当你想避免像素化的风格,但又不想使"
#~ "用mipmaps时,使用此功能。"

#~ msgid ""
#~ "The texture filter reads from the nearest pixel in the nearest mipmap. "
#~ "The fastest way to read from textures with mipmaps."
#~ msgstr ""
#~ "纹理过滤器从最近的mipmap中最近的像素读取。用mipmap读取纹理的最快方法。"

#~ msgid ""
#~ "The texture filter blends between the nearest 4 pixels and between the "
#~ "nearest 2 mipmaps. Use this for most cases as mipmaps are important to "
#~ "smooth out pixels that are far from the camera."
#~ msgstr ""
#~ "纹理滤镜在最近的4个像素之间和最近的2个mipmaps之间进行混合。在大多数情况下"
#~ "使用此功能,因为mipmaps对于平滑离相机较远的像素很重要。"

#~ msgid ""
#~ "The texture filter reads from the nearest pixel, but selects a mipmap "
#~ "based on the angle between the surface and the camera view. This reduces "
#~ "artifacts on surfaces that are almost in line with the camera."
#~ msgstr ""
#~ "纹理滤镜从最近的像素读取,但根据曲面与相机视角之间的角度选择一个 mipmap。"
#~ "这可以减少几乎与相机一致的表面上的伪影。"

#~ msgid ""
#~ "The texture filter blends between the nearest 4 pixels and selects a "
#~ "mipmap based on the angle between the surface and the camera view. This "
#~ "reduces artifacts on surfaces that are almost in line with the camera. "
#~ "This is the slowest of the filtering options, but results in the highest "
#~ "quality texturing."
#~ msgstr ""
#~ "纹理滤镜在最接近的 4 个像素之间进行混合,并根据曲面和相机视角之间的角度选"
#~ "择一个微缩图。这可以减少几乎与相机一致的表面上的伪影。这是最慢的过滤选项,"
#~ "但可以得到最高质量的纹理。"

#~ msgid "The material will not use transparency."
#~ msgstr "该材质将不使用透明度。"

#~ msgid "The material will use the texture's alpha values for transparency."
#~ msgstr "该材质将使用纹理的alpha值作为透明度。"

#~ msgid ""
#~ "The material will cut off all values below a threshold, the rest will "
#~ "remain opaque."
#~ msgstr "材质将切除所有低于阈值的值,其余的将保持不透明。"

#~ msgid ""
#~ "The material will use the texture's alpha value for transparency, but "
#~ "will still be rendered in the pre-pass."
#~ msgstr "该材质将使用纹理的alpha值作为透明度,但仍将在预通道中渲染。"

#~ msgid "Represents the size of the [enum Transparency] enum."
#~ msgstr "表示[enum Transparency]枚举的大小。"

#~ msgid "The object will not receive shadows."
#~ msgstr "对象不会产生阴影。"

#~ msgid ""
#~ "The object will be shaded per pixel. Useful for realistic shading effect."
#~ msgstr "物体将按像素进行着色。对逼真的阴影效果很有用。"

#~ msgid ""
#~ "The object will be shaded per vertex. Useful when you want cheaper "
#~ "shaders and do not care about visual quality."
#~ msgstr ""
#~ "对象的每个顶点将被着色。当你想要更便宜的着色器而又不关心视觉质量时很有用。"

#~ msgid "Represents the size of the [enum ShadingMode] enum."
#~ msgstr "表示[enum ShadingMode]枚举的大小。"

#~ msgid "Constant for setting [member heightmap_enabled]."
#~ msgstr "用于设置[member heightmap_enabled]的常量。"

#~ msgid "Constant for setting [member subsurf_scatter_transmittance_enabled]."
#~ msgstr "用于设置[member subsurf_scatter_transmittance_enabled]的常量。"

#~ msgid "Constant for setting [member backlight_enabled]."
#~ msgstr "常量,用于设置[member backlight_enabled]。"

#~ msgid ""
#~ "Enables the texture to repeat when UV coordinates are outside the 0-1 "
#~ "range. If using one of the linear filtering modes, this can result in "
#~ "artifacts at the edges of a texture when the sampler filters across the "
#~ "edges of the texture."
#~ msgstr ""
#~ "当UV坐标在0-1范围之外时,启用纹理重复。如果使用线性滤波模式,当采样器在纹"
#~ "理边缘进行滤波时,会在纹理边缘产生伪影。"

#~ msgid ""
#~ "Invert values read from a depth texture to convert them to height values "
#~ "(heightmap)."
#~ msgstr "将从深度纹理读取的值反转为高度值(heightmap)。"

#~ msgid ""
#~ "Enables the skin mode for subsurface scattering which is used to improve "
#~ "the look of subsurface scattering when used for human skin."
#~ msgstr "启用次表面散射的皮肤模式,用于人体皮肤时,改善次表面散射的外观。"

#~ msgid ""
#~ "An object representing a method in a certain object that can be called."
#~ msgstr "代表某个对象中可以调用的方法的对象。"

#~ msgid ""
#~ "[Callable] is a first class object which can be held in variables and "
#~ "passed to functions. It represents a given method in an [Object], and is "
#~ "typically used for signal callbacks.\n"
#~ "[b]Example:[/b]\n"
#~ "[codeblock]\n"
#~ "var callable = Callable(self, \"print_args\")\n"
#~ "func print_args(arg1, arg2, arg3 = \"\"):\n"
#~ "    prints(arg1, arg2, arg3)\n"
#~ "func test():\n"
#~ "    callable.call(\"hello\", \"world\")  # Prints \"hello world\".\n"
#~ "    callable.call(Vector2.UP, 42, callable)  # Prints \"(0, -1) 42 "
#~ "Node(Node.gd)::print_args\".\n"
#~ "    callable.call(\"invalid\")  # Invalid call, should have at least 2 "
#~ "arguments.\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "[Callable]是一个第一类对象,它可以存放在变量中并传递给函数。它代表对象"
#~ "[Object]中的一个给定方法,通常用于信号回调。\n"
#~ "[b]示例:[/b]\n"
#~ "[codeblock]\n"
#~ "var callable = Callable(self, \"print_args\")\n"
#~ "func print_args(arg1, arg2, arg3 = \"\"):\n"
#~ "    prints(arg1, arg2, arg3)\n"
#~ "func test():\n"
#~ "    callable.call(\"hello\", \"world\")  # 输出\"hello world\".\n"
#~ "    callable.call(Vector2.UP, 42, callable)  # 输出\"(0, -1) 42 Node(Node."
#~ "gd)::print_args\".\n"
#~ "    callable.call(\"invalid\")  # Invalid call, should have at least 2 "
#~ "arguments.无效调用,应该至少有2个参数\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Creates a new [Callable] for the method called [code]method_name[/code] "
#~ "in the specified [code]object[/code]."
#~ msgstr ""
#~ "在指定的[code]object[/code]中为名为[code] method_name [/code]的方法创建一"
#~ "个新的[Callable]。"

#~ msgid ""
#~ "Calls the method represented by this [Callable]. Arguments can be passed "
#~ "and should match the method's signature."
#~ msgstr ""
#~ "调用这个[Callable]所代表的方法。可以传递参数,且参数应与方法的签名一致。"

#~ msgid ""
#~ "Calls the method represented by this [Callable] in deferred mode, i.e. "
#~ "during the idle frame. Arguments can be passed and should match the "
#~ "method's signature."
#~ msgstr ""
#~ "在延迟模式下,即在空闲帧中调用该[Callable]所代表的方法。可以传递参数,且参"
#~ "数应与方法的签名一致。"

#~ msgid "Returns the name of the method represented by this [Callable]."
#~ msgstr "返回该[Callable]所代表的方法的名称。"

#~ msgid "Returns the object on which this [Callable] is called."
#~ msgstr "返回这个[Callable]被调用的对象。"

#~ msgid ""
#~ "Returns the ID of this [Callable]'s object (see [method Object."
#~ "get_instance_id])."
#~ msgstr "返回这个[Callable]对象的ID(参见[method Object.get_instance_id])。"

#~ msgid ""
#~ "If [code]true[/code], the camera smoothly stops when reaches its limits."
#~ msgstr "如果[code]true[/code],相机将在达到极限时平滑地停止运行。"

#~ msgid ""
#~ "Gets the camera transform. Subclassed cameras such as [ClippedCamera3D] "
#~ "may provide different transforms than the [Node] transform."
#~ msgstr ""
#~ "获取摄像机的变换。子类相机,如[ClippedCamera3D]可能提供与[Node]变换不同的"
#~ "变换。"

#~ msgid ""
#~ "Returns the 2D coordinate in the [Viewport] rectangle that maps to the "
#~ "given 3D point in worldspace."
#~ msgstr ""
#~ "返回[Viewport]矩形中的二维坐标,该坐标映射到世界空间中给定的三维点。"

#~ msgid ""
#~ "If not [constant DOPPLER_TRACKING_DISABLED], this camera will simulate "
#~ "the [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
#~ "url] for objects changed in particular [code]_process[/code] methods. See "
#~ "[enum DopplerTracking] for possible values."
#~ msgstr ""
#~ "如果不是 [constant DOPPLER_TRACKING_DISABLED],此摄像机将模拟 "
#~ "[url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler_effect[/url],用"
#~ "于特定 [code]_process[/code] 方法中改变的对象。请参阅 [enum "
#~ "DopplerTracking] 了解可能的值。"

#~ msgid "The [CameraEffects] to use for this camera."
#~ msgstr "此相机要使用的[CameraEffects]。"

#~ msgid ""
#~ "Contains camera-specific effects such as depth of field and exposure "
#~ "override."
#~ msgstr "包含相机特有的效果,如景深和曝光覆盖。"

#~ msgid ""
#~ "Contains camera-specific effects such as depth of field and exposure "
#~ "override.\n"
#~ "See also [Environment] for general 3D environment settings."
#~ msgstr ""
#~ "包含特定相机的效果,如景深和曝光覆盖。\n"
#~ "有关一般的 3D 环境设置,请参阅 [Environment]。"

#~ msgid ""
#~ "The amount of blur for both near and far depth-of-field effects. The "
#~ "amount of blur increases the radius of the blur effect, making the "
#~ "affected area blurrier. However, If the amount is too high, you might "
#~ "start to see lines appearing, especially when using a low quality blur."
#~ msgstr ""
#~ "近景和远景深度效果的模糊量。模糊量会增加模糊效果的半径,使受影响的区域更加"
#~ "模糊。但是,如果数量太高,你可能会开始看到线条出现,特别是使用低质量模糊"
#~ "时。"

#~ msgid ""
#~ "If [code]true[/code], enables the depth-of-field far blur effect. This "
#~ "has a significant performance cost. Consider disabling it in scenes where "
#~ "there are no far away objects."
#~ msgstr ""
#~ "如果[code]true[/code],启用景深远模糊效果。这有很大的性能代价。考虑在没有"
#~ "远处物体的场景中禁用它。"

#~ msgid ""
#~ "If [code]true[/code], enables the depth-of-field near blur effect. This "
#~ "has a significant performance cost. Consider disabling it in scenes where "
#~ "there are no nearby objects."
#~ msgstr ""
#~ "如果[code]true[/code],启用景深近模糊效果。这有很大的性能代价。考虑在没有"
#~ "附近物体的场景中禁用它。"

#~ msgid ""
#~ "The exposure override value to use. Higher values will result in a "
#~ "brighter scene. Only effective if [member override_exposure_enabled] is "
#~ "[code]true[/code]."
#~ msgstr ""
#~ "要使用的曝光覆盖值。值越高,场景越亮。只有当[member "
#~ "override_exposure_enabled]为[code]true[/code]时才有效。"

#~ msgid ""
#~ "If [code]true[/code], overrides the manual or automatic exposure defined "
#~ "in the [Environment] with the value in [member override_exposure]."
#~ msgstr ""
#~ "如果[code]true[/code],用[member override_exposure]中的值覆盖[Environment]"
#~ "中定义的手动或自动曝光。"

#~ msgid ""
#~ "Returns the [CameraFeed] corresponding to the camera with the given "
#~ "[code]index[/code]."
#~ msgstr "返回给定[code]index[/code]的摄像机对应的[CameraFeed]。"

#~ msgid "Removes the specified camera [code]feed[/code]."
#~ msgstr "删除指定的摄像机[code]feed[/code]。"

#~ msgid ""
#~ "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
#~ msgstr "[url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url]相机图像。"

#~ msgid "Draws multiple, parallel lines with a uniform [code]color[/code]."
#~ msgstr "用统一的[code]color[/code]绘制多条平行线。"

#~ msgid "The texture filtering mode to use on this [CanvasItem]."
#~ msgstr "对该[CanvasItem]使用的纹理过滤模式。"

#~ msgid "The texture repeating mode to use on this [CanvasItem]."
#~ msgstr "该[CanvasItem]上要使用的纹理重复模式。"

#~ msgid "Emitted when the item rect has changed."
#~ msgstr "当项目的矩形发生变化时发出。"

#~ msgid "The [CanvasItem] will inherit the filter from its parent."
#~ msgstr "[CanvasItem]将继承其父级的过滤器。"

#~ msgid ""
#~ "The texture filter reads from the nearest pixel only. The simplest and "
#~ "fastest method of filtering. Useful for pixel art."
#~ msgstr ""
#~ "纹理过滤器仅从最近的像素读取。最简单,最快的过滤方法。对像素艺术有用。"

#~ msgid ""
#~ "The texture filter blends between the nearest four pixels. Use this for "
#~ "most cases where you want to avoid a pixelated style."
#~ msgstr ""
#~ "纹理过滤器在最接近的四个像素之间进行混合。在大多数情况下,当你想避免像素化"
#~ "的风格时,可以使用这个滤镜。"

#~ msgid ""
#~ "The texture filter reads from the nearest pixel in the nearest mipmap. "
#~ "This is the fastest way to read from textures with mipmaps."
#~ msgstr ""
#~ "纹理过滤器从最近的mipmap中最近的像素读取。这是用mipmap读取纹理的最快方法。"

#~ msgid ""
#~ "The texture filter blends between the nearest 4 pixels and between the "
#~ "nearest 2 mipmaps. Use this for non-pixel art textures that may be viewed "
#~ "at a low scale (e.g. due to [Camera2D] zoom), as mipmaps are important to "
#~ "smooth out pixels that are smaller than on-screen pixels."
#~ msgstr ""
#~ "纹理过滤器在最接近的4个像素之间和最接近的2个mipmaps之间进行混合。对于可能"
#~ "在低比例下观看的非像素艺术纹理(例如,由于[Camera2D]缩放),使用此功能,因"
#~ "为mipmaps对于平滑小于屏幕像素的像素非常重要。"

#~ msgid ""
#~ "The texture filter reads from the nearest pixel, but selects a mipmap "
#~ "based on the angle between the surface and the camera view. This reduces "
#~ "artifacts on surfaces that are almost in line with the camera.\n"
#~ "[b]Note:[/b] This texture filter is rarely useful in 2D projects. "
#~ "[constant TEXTURE_FILTER_NEAREST_WITH_MIPMAPS] is usually more "
#~ "appropriate."
#~ msgstr ""
#~ "纹理滤镜从最近的像素读取,但会根据曲面和相机视图之间的角度选择一个mipmap。"
#~ "这样可以减少几乎与相机成一直线的表面上的伪影。\n"
#~ "[b]注意:[/b]此纹理滤镜在2D项目中很少使用。 [constant "
#~ "TEXTURE_FILTER_NEAREST_WITH_MIPMAPS]通常更合适。"

#~ msgid ""
#~ "The texture filter blends between the nearest 4 pixels and selects a "
#~ "mipmap based on the angle between the surface and the camera view. This "
#~ "reduces artifacts on surfaces that are almost in line with the camera. "
#~ "This is the slowest of the filtering options, but results in the highest "
#~ "quality texturing.\n"
#~ "[b]Note:[/b] This texture filter is rarely useful in 2D projects. "
#~ "[constant TEXTURE_FILTER_LINEAR_WITH_MIPMAPS] is usually more appropriate."
#~ msgstr ""
#~ "纹理滤镜会在最接近的4个像素之间混合,并根据曲面和相机视图之间的角度选择一"
#~ "个mipmap。这样可以减少几乎与相机成一直线的表面上的伪影。这是最慢的过滤选"
#~ "项,但可以产生最高质量的纹理。\n"
#~ "[b]注意:[/b]此纹理滤镜在2D项目中很少使用。 [constant "
#~ "TEXTURE_FILTER_LINEAR_WITH_MIPMAPS]通常更合适。"

#~ msgid "Texture will repeat normally."
#~ msgstr "纹理将正常重复。"

#~ msgid ""
#~ "Texture will repeat in a 2x2 tiled mode, where elements at even positions "
#~ "are mirrored."
#~ msgstr "纹理将在2x2平铺模式下重复,其中偶数位置的元素被镜像。"

#~ msgid "Represents the size of the [enum TextureRepeat] enum."
#~ msgstr "表示[enum TextureRepeat]枚举的大小。"

#~ msgid "Height of the capsule mesh from the center point."
#~ msgstr "胶囊网格距中心点的高度。"

#~ msgid ""
#~ "The camera's collision mask. Only objects in at least one collision layer "
#~ "matching the mask will be detected."
#~ msgstr ""
#~ "摄像机的碰撞掩码。只有至少一个碰撞层中与掩码匹配的物体才会被检测到。"

#~ msgid "Adds a [Shape3D] to the shape owner."
#~ msgstr "给形状所有者添加一个[Shape3D]。"

#~ msgid "Returns the [Shape3D] with the given id from the given shape owner."
#~ msgstr "从给定的形状所有者返回具有给定ID的[Shape3D]。"

#~ msgid ""
#~ "Returns the child index of the [Shape3D] with the given id from the given "
#~ "shape owner."
#~ msgstr "从给定的形状所有者返回具有给定id的[Shape3D]的子索引。"

#~ msgid ""
#~ "Emitted when [method _input_event] receives an event. See its description "
#~ "for details."
#~ msgstr ""
#~ "当[method_input_event]接收到一个事件时发出。有关详细信息,请参见其说明。"

#~ msgid ""
#~ "Constructs a color from an existing color, but with a custom alpha "
#~ "value.\n"
#~ "[codeblock]\n"
#~ "var red = Color(Color.red, 0.5) # 50% transparent red.\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "从现有的颜色中构建一个颜色,但使用自定义的alpha值。\n"
#~ "[codeblock]\n"
#~ "var red = Color(Color.red, 0.5) # 50% transparent red.\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Displays a color picker widget. Useful for selecting a color from an RGB/"
#~ "RGBA colorspace."
#~ msgstr "显示颜色选择器小部件。用于从RGB / RGBA色彩空间中选择一种颜色。"

#~ msgid ""
#~ "Encapsulates a [ColorPicker] making it accessible by pressing a button. "
#~ "Pressing the button will toggle the [ColorPicker] visibility."
#~ msgstr ""
#~ "封装[ColorPicker],使其可以通过按下按钮进行访问。按下按钮将切换"
#~ "[ColorPicker]可见性。"

#~ msgid "Displays a colored rectangle."
#~ msgstr "显示一个彩色矩形。"

#~ msgid ""
#~ "Overrides the [Color] with given [code]name[/code] in the [member theme] "
#~ "resource the control uses. If the [code]color[/code] is empty or invalid, "
#~ "the override is cleared and the color from assigned [Theme] is used."
#~ msgstr ""
#~ "在控件使用的[成员主题]资源中使用给定的[code]name[/code]覆盖[Color]。如果"
#~ "[code]color[/code]为空或无效,则清除覆盖并使用分配的[Theme]中的颜色。"

#~ msgid ""
#~ "Overrides an integer constant with given [code]name[/code] in the [member "
#~ "theme] resource the control uses. If the [code]constant[/code] is empty "
#~ "or invalid, the override is cleared and the constant from assigned "
#~ "[Theme] is used."
#~ msgstr ""
#~ "覆盖控件使用的[member theme]资源中具有给定[code] name [/code]的整数常量。"
#~ "如果[code] constant [/code]为空或无效,则清除覆盖,并使用分配的[Theme]中的"
#~ "常量。"

#~ msgid ""
#~ "Overrides the font with given [code]name[/code] in the [member theme] "
#~ "resource the control uses. If [code]font[/code] is empty or invalid, the "
#~ "override is cleared and the font from assigned [Theme] is used."
#~ msgstr ""
#~ "覆盖控件使用的[member theme]资源中具有给定[code]name[/code]的字体。如果"
#~ "[code] font [/code]为空或无效,则清除覆盖并使用分配的[Theme]中的字体。"

#~ msgid ""
#~ "Overrides the icon with given [code]name[/code] in the [member theme] "
#~ "resource the control uses. If [code]icon[/code] is empty or invalid, the "
#~ "override is cleared and the icon from assigned [Theme] is used."
#~ msgstr ""
#~ "覆盖控件使用的[member theme]资源中具有给定[code]name[/code]的图标。如果"
#~ "[code] icon [/code]为空或无效,则清除覆盖,并使用分配的[Theme]中的图标。"

#~ msgid ""
#~ "Overrides the [Shader] with given [code]name[/code] in the [member theme] "
#~ "resource the control uses. If [code]shader[/code] is empty or invalid, "
#~ "the override is cleared and the shader from assigned [Theme] is used."
#~ msgstr ""
#~ "覆盖控件使用的[member theme]资源中给定[code]name[/code]的[Shader]。如果"
#~ "[code]shader[/code]为空或无效,则清除覆盖,并使用分配的[Theme]中的shader。"

#~ msgid ""
#~ "Overrides the [StyleBox] with given [code]name[/code] in the [member "
#~ "theme] resource the control uses. If [code]stylebox[/code] is empty or "
#~ "invalid, the override is cleared and the [StyleBox] from assigned [Theme] "
#~ "is used."
#~ msgstr ""
#~ "覆盖控件使用的[member theme]资源中给定的[code]name[/code]的[StyleBox]。如"
#~ "果[code]stylebox[/code]为空或无效,则清除覆盖,并使用分配的[Theme]中的"
#~ "[StyleBox]。"

#~ msgid ""
#~ "Returns a color from assigned [Theme] with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code].\n"
#~ "[codeblock]\n"
#~ "func _ready():\n"
#~ "    modulate = get_theme_color(\"font_color\", \"Button\") #get the color "
#~ "defined for button fonts\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "从给定[code]名称[/code]并与给定[code]类型[/code]的[控制]相关联的[主题]中返"
#~ "回一个颜色。\n"
#~ "[codeblock]\n"
#~ "func _ready():\n"
#~ "    modulate = get_theme_color(\"font_color\", \"Button\") #get the color "
#~ "defined for button fonts\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Returns a constant from assigned [Theme] with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code]."
#~ msgstr ""
#~ "从分配的 [Theme] 返回带有给定 [code] name [/code] 的常量,并与给定的 "
#~ "[code] type [/code] 的 [Control] 关联。"

#~ msgid ""
#~ "Returns a font from assigned [Theme] with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code]."
#~ msgstr ""
#~ "返回具有给定[code]name[/code]并与给定[code]type[/code]的[Control]关联的已"
#~ "分配[Theme]的字体。"

#~ msgid ""
#~ "Returns an icon from assigned [Theme] with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code]."
#~ msgstr ""
#~ "从给定[code]name[/code]的[Theme]中返回一个图标,并与给定[code]type[/code]"
#~ "的[控制]相关联。"

#~ msgid ""
#~ "Returns a [StyleBox] from assigned [Theme] with given [code]name[/code] "
#~ "and associated with [Control] of given [code]type[/code]."
#~ msgstr ""
#~ "从具有给定[code]name[/code]并与给定[code]type[/code]的[控件]关联的分配的"
#~ "[Theme]返回一个[StyleBox]。"

#~ msgid ""
#~ "Returns [code]true[/code] if [Color] with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code] exists in assigned "
#~ "[Theme]."
#~ msgstr ""
#~ "如果在分配的[Theme]中存在具有给定的[code]name[/code]并与给定的[code]type[/"
#~ "code]的[Control]相关联的[Color],则返回[code] true [/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if constant with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code] exists in assigned "
#~ "[Theme]."
#~ msgstr ""
#~ "如果指定的[Theme]中存在给定[code]name[/code]并与给定[code]type[/code]的"
#~ "[Control]相关联的常量,则返回[code]true[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if constant with given [code]name[/code] has a "
#~ "valid override in this [Control] node."
#~ msgstr ""
#~ "如果给定[code]name[/code]的常量在这个[Control]节点中具有有效的覆盖,则返回"
#~ "[code]true[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if font with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code] exists in assigned "
#~ "[Theme]."
#~ msgstr ""
#~ "如果指定的[主题]中存在给定[code]name[/code]并与给定[code]type[/code]的"
#~ "[Control]相关联的字体,则返回[code]true[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if icon with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code] exists in assigned "
#~ "[Theme]."
#~ msgstr ""
#~ "如果给定[code]name[/code]并与给定[code]type[/code]的[Control]相关联的图标"
#~ "存在于指定的[Theme]中,则返回[code]true[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if icon with given [code]name[/code] has a "
#~ "valid override in this [Control] node."
#~ msgstr ""
#~ "如果给定[code]name[/code]的图标在这个[Control]节点中具有有效的覆盖,则返回"
#~ "[code]true[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if [Shader] with given [code]name[/code] has a "
#~ "valid override in this [Control] node."
#~ msgstr ""
#~ "如果具有给定[code]name[/code]的[Shader]在此[Control]节点中具有有效的覆盖,"
#~ "则返回[code] true [/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if [StyleBox] with given [code]name[/code] and "
#~ "associated with [Control] of given [code]type[/code] exists in assigned "
#~ "[Theme]."
#~ msgstr ""
#~ "如果指定的[[Theme]中存在给定[code]name[/code]并与给定[code]type[/code]的"
#~ "[Control]相关联的[StyleBox],则返回[code]true[/code]。"

#~ msgid ""
#~ "Changes the tooltip text. The tooltip appears when the user's mouse "
#~ "cursor stays idle over this control for a few moments, provided that the "
#~ "[member mouse_filter] property is not [constant MOUSE_FILTER_IGNORE]. You "
#~ "can change the time required for the tooltip to appear with [code]gui/"
#~ "timers/tooltip_delay_sec[/code] option in Project Settings."
#~ msgstr ""
#~ "更改太平文本。当用户的鼠标光标在此控制上保持怠速片刻时,只要[member "
#~ "mouse_filter]属性不是[constant MOUSE_FILTER_IGNORE]时,就会出现 tooltip。"
#~ "您可以更改 Tooltip 在项目设置中以 [code] gui/timers/tooltip_delay_sec [/"
#~ "code] 选项显示所需的时间。"

#~ msgid ""
#~ "Emitted when the mouse enters the control's [code]Rect[/code] area, "
#~ "provided its [member mouse_filter] lets the event reach it."
#~ msgstr ""
#~ "当鼠标进入控件的[code] Rect [/code]区域时触发,条件是其控件的[member "
#~ "mouse_filter]成员可以使事件到达该控件。"

#~ msgid ""
#~ "Emitted when the mouse leaves the control's [code]Rect[/code] area, "
#~ "provided its [member mouse_filter] lets the event reach it."
#~ msgstr ""
#~ "当鼠标离开控件的[code] Rect [/code]区域时发出,条件是它的[member "
#~ "mouse_filter]允许事件到达该控件。"

#~ msgid "Number of particles emitted in one emission cycle."
#~ msgstr "一个发射周期中发射的粒子数。"

#~ msgid "Each particle's color will vary along this [Gradient]."
#~ msgstr "每个粒子的颜色将沿此[Gradient]变化。"

#~ msgid ""
#~ "Sets this node's properties to match a given [GPUParticles3D] node with "
#~ "an assigned [ParticlesMaterial]."
#~ msgstr ""
#~ "设置此节点的属性,以使给定的[GPUParticles3D]节点与分配的"
#~ "[ParticlesMaterial]匹配。"

#~ msgid "Unused for 3D particles."
#~ msgstr "未用于3D粒子。"

#~ msgid ""
#~ "This node takes a 2D polygon shape and extrudes it to create a 3D mesh."
#~ msgstr "该节点采用2D多边形形状并将其拉伸以创建3D网格。"

#~ msgid "Material to use for the resulting mesh."
#~ msgstr "用于生成的网格的材料。"

#~ msgid "Extrusion mode."
#~ msgstr "挤出模式。"

#~ msgid ""
#~ "If [code]true[/code] the u component of our uv will continuously increase "
#~ "in unison with the distance traveled along our path when [member mode] is "
#~ "[constant MODE_PATH]."
#~ msgstr ""
#~ "如果[code]true[/code],则当[member mode]为[constant MODE_PATH]时,uv的u分"
#~ "量将随着沿着路径的移动距离一致地不断增加。"

#~ msgid ""
#~ "Interval at which a new extrusion slice is added along the path when "
#~ "[member mode] is [constant MODE_PATH]."
#~ msgstr ""
#~ "当[member mode]为[constant MODE_PATH]时,沿着路径添加新挤出切片的间隔。"

#~ msgid ""
#~ "If [code]true[/code] the start and end of our path are joined together "
#~ "ensuring there is no seam when [member mode] is [constant MODE_PATH]."
#~ msgstr ""
#~ "如果[code] true [/code],我们的路径的起点和终点将连接在一起,以确保当"
#~ "[member mode]为[constant MODE_PATH]时没有接缝。"

#~ msgid ""
#~ "If [code]false[/code] we extrude centered on our path, if [code]true[/"
#~ "code] we extrude in relation to the position of our CSGPolygon3D when "
#~ "[member mode] is [constant MODE_PATH]."
#~ msgstr ""
#~ "如果[code]false[/code],则以路径为中心进行拉伸;如果[code]true[/code],则"
#~ "当[member mode]为[constant MODE_PATH]时,相对于CSGPolygon3D的位置进行拉"
#~ "伸。"

#~ msgid ""
#~ "The [Shape3D] object containing the path along which we extrude when "
#~ "[member mode] is [constant MODE_PATH]."
#~ msgstr "[Shape3D]对象包含当[member mode] 为 [constant MODE_PATH]。"

#~ msgid ""
#~ "The method by which each slice is rotated along the path when [member "
#~ "mode] is [constant MODE_PATH]."
#~ msgstr "当[member mode]为[constant MODE_PATH]时,沿路径旋转每个切片的方法。"

#~ msgid "Generates smooth normals so smooth shading is applied to our mesh."
#~ msgstr "生成平滑法线,因此将平滑阴影应用于我们的网格。"

#~ msgid ""
#~ "Degrees to rotate our extrusion for each slice when [member mode] is "
#~ "[constant MODE_SPIN]."
#~ msgstr "当[member mode]为[constant MODE_PATH]时,旋转每个切片的拉伸度。"

#~ msgid "Shape3D is extruded to [member depth]."
#~ msgstr "将Shape3D拉伸到[member depth]。"

#~ msgid "Slice is not rotated."
#~ msgstr "切片未旋转。"

#~ msgid "Slice is rotated around the up vector of the path."
#~ msgstr "切片绕路径的向上向量旋转。"

#~ msgid "Slice is rotate to match the path exactly."
#~ msgstr "切片将旋转以精确匹配路径。"

#~ msgid "The physics layers this CSG shape scans for collisions."
#~ msgstr "该CSG形状扫描碰撞的物理层。"

#~ msgid ""
#~ "Returns the position of the control point leading to the vertex "
#~ "[code]idx[/code]. If the index is out of bounds, the function sends an "
#~ "error to the console, and returns [code](0, 0)[/code]."
#~ msgstr ""
#~ "返回指向顶点[code]idx[/code]的控制点的位置。如果索引超出边界,函数会向控制"
#~ "台发送一个错误信息,并返回[code](0,0)[/code]。"

#~ msgid ""
#~ "Returns the position of the control point leading to the vertex "
#~ "[code]idx[/code]. If the index is out of bounds, the function sends an "
#~ "error to the console, and returns [code](0, 0, 0)[/code]."
#~ msgstr ""
#~ "返回指向顶点[code]idx[/code]的控制点的位置。如果索引超出边界,函数会向控制"
#~ "台发送一个错误信息,并返回[code](0,0,0)[/code]。"

#~ msgid "Bottom radius of the cylinder."
#~ msgstr "圆柱体的半径。"

#~ msgid "Number of radial segments on the cylinder."
#~ msgstr "圆柱体上的径向段数。"

#~ msgid "Number of edge rings along the height of the cylinder."
#~ msgstr "沿着圆柱体高度的边环数量。"

#~ msgid "Top radius of the cylinder."
#~ msgstr "筒体的顶部半径。"

#~ msgid "Node that projects a texture onto a [MeshInstance3D]."
#~ msgstr "在[MeshInstance3D]上投射纹理的节点。"

#~ msgid ""
#~ "[Decal]s are used to project a texture onto a [Mesh] in the scene. Use "
#~ "Decals to add detail to a scene without affecting the underlying [Mesh]. "
#~ "They are often used to add weathering to building, add dirt or mud to the "
#~ "ground, or add variety to props. Decals can be moved at any time, making "
#~ "them suitable for things like blob shadows or laser sight dots.\n"
#~ "They are made of an [AABB] and a group of [Texture2D]s specifying "
#~ "[Color], normal, ORM (ambient occlusion, roughness, metallic), and "
#~ "emission. Decals are projected within their [AABB] so altering the "
#~ "orientation of the Decal affects the direction in which they are "
#~ "projected. By default, Decals are projected down (i.e. from positive Y to "
#~ "negative Y).\n"
#~ "The [Texture2D]s associated with the Decal are automatically stored in a "
#~ "texture atlas which is used for drawing the decals so all decals can be "
#~ "drawn at once. Godot uses clustered decals, meaning they are stored in "
#~ "cluster data and drawn when the mesh is drawn, they are not drawn as a "
#~ "postprocessing effect after."
#~ msgstr ""
#~ "Decal]用于将贴图投射到场景中的[Mesh]上。使用贴纸可以在不影响底层[Mesh]的情"
#~ "况下为场景添加细节。它们通常用于为建筑添加风化效果,为地面添加泥土或泥浆,"
#~ "或为道具添加多样性。贴图可以随时移动,因此适合用于制作小球阴影或激光瞄准点"
#~ "等。\n"
#~ "它们由一个[AABB]和一组[Texture2D]组成,分别指定[颜色]、法线、ORM(环境遮"
#~ "挡、粗糙度、金属感)和发射。Decals在其[AABB]内投射,因此改变Decal的方向会"
#~ "影响它们的投射方向。默认情况下,贴图是向下投射的(即从正Y到负Y)。\n"
#~ "与Decal相关联的[Texture2D]会自动存储在一个纹理图集中,该图集用于绘制贴图,"
#~ "因此所有贴图都可以一次绘制。Godot使用的是簇式贴图,也就是说,这些贴图存储"
#~ "在簇式数据中,并在绘制网格时绘制,它们并不是作为后处理后的效果来绘制的。"

#~ msgid ""
#~ "Returns the [Texture2D] associated with the specified [enum "
#~ "DecalTexture]. This is a convenience method, in most cases you should "
#~ "access the texture directly.\n"
#~ "For example, instead of [code]albedo_tex = $Decal.get_texture(Decal."
#~ "TEXTURE_ALBEDO)[/code], use [code]albedo_tex = $Decal.texture_albedo[/"
#~ "code].\n"
#~ "One case where this is better than accessing the texture directly is when "
#~ "you want to copy one Decal's textures to another. For example:\n"
#~ "[codeblock]\n"
#~ "for i in Decal.TEXTURE_MAX:\n"
#~ "    $NewDecal.set_texture(i, $OldDecal.get_texture(i))\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "返回与指定[enum DecalTexture]相关联的[Texture2D]。这是一个方便的方法,在大"
#~ "多数情况下,你应该直接访问纹理。\n"
#~ "例如,与其使用 [code]albedo_tex = $Decal.get_texture(Decal.TEXTURE_ALBEDO)"
#~ "[/code] ,不如使用 [code]albedo_tex = $Decal.texture_albedo[/code] 。\n"
#~ "有一种情况比直接访问纹理更好,那就是当你想把一个Decal的纹理复制到另一个"
#~ "Decal上。例如:[codeblock]。\n"
#~ "[codeblock]\n"
#~ "for i in Decal.TEXTURE_MAX:\n"
#~ "    $NewDecal.set_texture(i, $OldDecal.get_texture(i))\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Sets the [Texture2D] associated with the specified [enum DecalTexture]. "
#~ "This is a convenience method, in most cases you should access the texture "
#~ "directly.\n"
#~ "For example, instead of [code]$Decal.set_texture(Decal.TEXTURE_ALBEDO, "
#~ "albedo_tex)[/code], use [code]$Decal.texture_albedo = albedo_tex[/code].\n"
#~ "One case where this is better than accessing the texture directly is when "
#~ "you want to copy one Decal's textures to another. For example:\n"
#~ "[codeblock]\n"
#~ "for i in Decal.TEXTURE_MAX:\n"
#~ "    $NewDecal.set_texture(i, $OldDecal.get_texture(i))\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "设置与指定的 [字体贴脱]相关的 [纹理 2D] 。这是一种方便的方法,在大多数情况"
#~ "下,您应该直接访问纹理。\n"
#~ "例如,使用 [code]$Decal.texture_albedo = albedo_tex[/code],而不是 "
#~ "[code]$Decal.set_texture(Decal.TEXTURE_ALBEDO, albedo_tex)[/code]。\n"
#~ "一种情况下,这比直接访问纹理更好,是当你想复制一个十进制的纹理到另一个。例"
#~ "如:\n"
#~ "[codeblock]\n"
#~ "for i in Decal.TEXTURE_MAX:\n"
#~ "    $NewDecal.set_texture(i, $OldDecal.get_texture(i))\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Blends the albedo [Color] of the decal with albedo [Color] of the "
#~ "underlying mesh."
#~ msgstr "将贴图的反射率[Color]与底层网格的反射率[Color]混合。"

#~ msgid ""
#~ "Specifies which [member VisualInstance3D.layers] this decal will project "
#~ "on. By default, Decals affect all layers. This is used so you can specify "
#~ "which types of objects receive the Decal and which do not. This is "
#~ "especially useful so you an ensure that dynamic objects don't "
#~ "accidentally receive a Decal intended for the terrain under them."
#~ msgstr ""
#~ "指定此贴图将投射到哪个[member VisualInstance3D.layer]上。默认情况下,"
#~ "Decal 会影响所有层。这样您就可以指定哪些类型的对象会收到Decal,哪些不会。"
#~ "这一点特别有用,这样您就可以确保动态对象不会意外地收到针对其下的地形的贴"
#~ "花。"

#~ msgid "Distance from the camera at which the Decal begins to fade away."
#~ msgstr "Decal开始消失时与相机的距离。"

#~ msgid ""
#~ "If [code]true[/code], decals will smoothly fade away when far from the "
#~ "active [Camera3D] starting at [member distance_fade_begin]. The Decal "
#~ "will fade out over [member distance_fade_length], after which it will be "
#~ "culled and not sent to the shader at all. Use this to reduce the number "
#~ "of active Decals in a scene and thus improve performance."
#~ msgstr ""
#~ "如果[code]true[/code],当远离活动的[Camera3D]时,从[member "
#~ "distance_fade_begin]开始,decal将平滑淡出。Decal将在[member "
#~ "distance_fade_length]上渐渐消失,之后它将被取消,根本不会被发送到着色器。"
#~ "使用这个功能可以减少场景中活动Decal的数量,从而提高性能。"

#~ msgid ""
#~ "Distance over which the Decal fades. The Decal becomes slowly more "
#~ "transparent over this distance and is completely invisible at the end."
#~ msgstr ""
#~ "Decal褪色的距离。在这个距离内,贴花会慢慢变得更透明,最后完全看不见。"

#~ msgid ""
#~ "Energy multiplier for the emission texture. This will make the decal emit "
#~ "light at a higher intensity."
#~ msgstr "发射纹理的能量倍增器。这将使贴纸以更高的强度发出光线。"

#~ msgid ""
#~ "Sets the size of the [AABB] used by the decal. The AABB goes from [code]-"
#~ "extents[/code] to [code]extents[/code]."
#~ msgstr ""
#~ "设置贴纸使用的 [AABB] 大小。AABB从[code]-extents[/code]到[code]extents[/"
#~ "code]。"

#~ msgid ""
#~ "Sets the curve over which the decal will fade as the surface gets further "
#~ "from the center of the [AABB]."
#~ msgstr "设置当贴花表面离[AABB]中心越远时,贴花会逐渐变淡的曲线。"

#~ msgid "Changes the [Color] of the Decal by multiplying it with this value."
#~ msgstr "将贴花的[Color]与该值相乘,即可改变贴花的[颜色]。"

#~ msgid ""
#~ "Fades the Decal if the angle between the Decal's [AABB] and the target "
#~ "surface becomes too large. A value of [code]0[/code] projects the Decal "
#~ "regardless of angle, a value of [code]1[/code] limits the Decal to "
#~ "surfaces that are nearly perpendicular."
#~ msgstr ""
#~ "如果Decal的[AABB]与目标表面之间的角度过大,则淡化Decal。值为[code]0[/code]"
#~ "时,无论角度如何,都会投射出Decal,值为[code]1[/code]时,会将Decal限制在几"
#~ "乎垂直的表面。"

#~ msgid ""
#~ "[Texture2D] with the base [Color] of the Decal. Either this or the "
#~ "[member texture_emission] must be set for the Decal to be visible. Use "
#~ "the alpha channel like a mask to smoothly blend the edges of the decal "
#~ "with the underlying object."
#~ msgstr ""
#~ "[Texture2D]与贴花的底色[Color]。必须设置此选项或[member texture\\u "
#~ "emission]才能使贴花可见。像遮罩一样使用alpha通道可以平滑地将贴花的边与基础"
#~ "对象混合。"

#~ msgid ""
#~ "[Texture2D] with the emission [Color] of the Decal. Either this or the "
#~ "[member texture_emission] must be set for the Decal to be visible. Use "
#~ "the alpha channel like a mask to smoothly blend the edges of the decal "
#~ "with the underlying object."
#~ msgstr ""
#~ "[Texture2D]和贴花的发射[Color]。必须设置此选项或[member texture\\u "
#~ "emission]才能使贴花可见。像遮罩一样使用alpha通道可以平滑地将贴花的边与基础"
#~ "对象混合。"

#~ msgid ""
#~ "[Texture2D] with the per-pixel normalmap for the decal. Use this to add "
#~ "extra detail to decals."
#~ msgstr ""
#~ "[Texture2D]使用贴花的每像素法线贴图。使用此选项可以为贴花添加额外的细节。"

#~ msgid ""
#~ "[Texture2D] storing ambient occlusion, roughness, and metallic for the "
#~ "decal. Use this to add extra detail to decals."
#~ msgstr ""
#~ "[Texture2D]为贴花存储环境遮挡、粗糙度和金属。使用此选项可以为贴花添加额外"
#~ "的细节。"

#~ msgid "[Texture2D] corresponding to [member texture_albedo]."
#~ msgstr "[Texture2D]对应于[member texture_albedo]。"

#~ msgid "[Texture2D] corresponding to [member texture_normal]."
#~ msgstr "[Texture2D]对应于[member texture\\u normal]。"

#~ msgid "[Texture2D] corresponding to [member texture_orm]."
#~ msgstr "[Texture2D]对应于[member texture\\u orm]。"

#~ msgid "[Texture2D] corresponding to [member texture_emission]."
#~ msgstr "[Texture2D]对应于[member texture\\u emission]。"

#~ msgid "Max size of [enum DecalTexture] enum."
#~ msgstr "[enum DecalTexture]枚举的最大大小。"

#~ msgid "Returns the size of the dictionary (in pairs)."
#~ msgstr "返回字典的大小(成对)。"

#~ msgid ""
#~ "Proportion of [member directional_shadow_max_distance] at which point the "
#~ "shadow starts to fade. At [member directional_shadow_max_distance] the "
#~ "shadow will disappear."
#~ msgstr ""
#~ "在[member directional_shadow_max_distance]的比例下,阴影开始消失。在"
#~ "[member directional_shadow_max_distance]时,阴影会消失。"

#~ msgid ""
#~ "Sets the size of the directional shadow pancake. The pancake offsets the "
#~ "start of the shadow's camera frustum to provide a higher effective depth "
#~ "resolution for the shadow. However, a high pancake size can cause "
#~ "artifacts in the shadows of large objects that are close to the edge of "
#~ "the frustum. Reducing the pancake size can help. Setting the size to "
#~ "[code]0[/code] turns off the pancaking effect."
#~ msgstr ""
#~ "设置方向性阴影饼的大小。阴影饼会偏移阴影的摄影机外壳的起点,为阴影提供更高"
#~ "的有效深度分辨率。但是,如果阴影大小过大,可能会导致靠近影棚边缘的大型物体"
#~ "的阴影出现伪影。减少薄饼的大小可以有所帮助。将大小设置为[code]0[/code]可以"
#~ "关闭煎饼效果。"

#~ msgid "Extra character spacing in pixels."
#~ msgstr "额外的字符间距,单位为像素。"

#~ msgid "Extra space spacing in pixels."
#~ msgstr "额外的空间间距,单位为像素。"

#~ msgid "Character spacing."
#~ msgstr "字符间距。"

#~ msgid "Space spacing."
#~ msgstr "空间间距。"

#~ msgid ""
#~ "Virtual method to be overridden by the user. It is called when the export "
#~ "starts and provides all information about the export."
#~ msgstr ""
#~ "用户可重写的虚拟方法。它在导出开始时被调用,并提所有有关的导出信息。"

#~ msgid ""
#~ "The dialog's open or save mode, which affects the selection behavior. See "
#~ "[enum FileMode]"
#~ msgstr "对话框的打开或保存模式,会影响选择行为。参见[enum FileMode]"

#~ msgid "Gets the type of the file, given the full path."
#~ msgstr "通过文件的绝对路径获取这个文件的类型。"

#~ msgid "Returns the file extension of the file at index [code]idx[/code]."
#~ msgstr "返回索引[code]idx[/code] 指向文件的扩展名。"

#~ msgid "Gets the name to display in the import window."
#~ msgstr "获取要在导入窗口中显示的名称。"

#~ msgid ""
#~ "Registers a custom translation parser plugin for extracting translatable "
#~ "strings from custom files."
#~ msgstr ""
#~ "注册一个自定义翻译解析器插件,用于从自定义文件中提取可翻译的字符串。"

#~ msgid "Removes a registered custom translation parser plugin."
#~ msgstr "移除注册的自定义翻译解析器插件。"

#~ msgid "Updates the overlays of the editor (2D/3D) viewport."
#~ msgstr "更新编辑器(2D/3D)视窗的叠加。"

#~ msgid "Override if you want to allow a custom tooltip over your property."
#~ msgstr "如果你想在属性上允许一个自定义的工具提示,请重写。"

#~ msgid ""
#~ "Adds controls with this function if you want them on the bottom (below "
#~ "the label)."
#~ msgstr "如果要在底部(标签下方)添加控件,请使用此功能。"

#~ msgid ""
#~ "Used by the inspector, set to [code]true[/code] when the property can be "
#~ "deleted by the user."
#~ msgstr "在检查面板使用,当属性可以被用户删除时,设置为[code]true[/code]。"

#~ msgid "Emitted when a property was deleted. Used internally."
#~ msgstr "属性被删除时触发。在内部使用。"

#~ msgid ""
#~ "Queue a resource being edited for preview (using an instance). Once the "
#~ "preview is ready, your receiver.receiver_func will be called either "
#~ "containing the preview texture or an empty texture (if no preview was "
#~ "possible). Callback must have the format: (path,texture,userdata). "
#~ "Userdata can be anything."
#~ msgstr ""
#~ "将一个正在编辑的资源排队预览(使用实例)。一旦预览准备好,你的 receiver."
#~ "receiver_func 将会被调用,要么包含预览纹理,要么包含一个空的纹理(如果不能"
#~ "预览)。回调的格式必须是:(path,texture,userdata)。(path,texture,"
#~ "userdata).Userdata可以是任何东西。"

#~ msgid ""
#~ "Queue a resource file for preview (using a path). Once the preview is "
#~ "ready, your receiver.receiver_func will be called either containing the "
#~ "preview texture or an empty texture (if no preview was possible). "
#~ "Callback must have the format: (path,texture,userdata). Userdata can be "
#~ "anything."
#~ msgstr ""
#~ "排队一个资源文件进行预览(使用路径)。一旦预览准备好了,你的receiver."
#~ "receiver_func将被调用,要么包含预览纹理,要么包含一个空的纹理(如果不可能"
#~ "预览)。回调的格式必须是:(path,texture,userdata)。(path,texture,"
#~ "userdata).Userdata可以是任何东西。"

#~ msgid "FBX 3D asset importer based on [url=http://assimp.org/]Assimp[/url]."
#~ msgstr "基于[url=http://assimp.org/]Assimp[/url]的FBX 3D资源导入器。"

#~ msgid "Adds a node to the selection."
#~ msgstr "在选择中添加一个节点。"

#~ msgid ""
#~ "Plugin for adding custom parsers to extract strings that are to be "
#~ "translated from custom files (.csv, .json etc.)."
#~ msgstr ""
#~ "添加自定义解析器的插件,用于从自定义文件(.csv、.json等)中提取要转换的字"
#~ "符串。"

#~ msgid ""
#~ "Plugins are registered via [method EditorPlugin."
#~ "add_translation_parser_plugin] method. To define the parsing and string "
#~ "extraction logic, override the [method parse_file] method in script.\n"
#~ "The extracted strings will be written into a POT file selected by user "
#~ "under \"POT Generation\" in \"Localization\" tab in \"Project Settings\" "
#~ "menu.\n"
#~ "Below shows an example of a custom parser that extracts strings in a CSV "
#~ "file to write into a POT.\n"
#~ "[codeblock]\n"
#~ "tool\n"
#~ "extends EditorTranslationParserPlugin\n"
#~ "\n"
#~ "\n"
#~ "func parse_file(path, extracted_strings):\n"
#~ "    var file = File.new()\n"
#~ "    file.open(path, File.READ)\n"
#~ "    var text = file.get_as_text()\n"
#~ "    var split_strs = text.split(\",\", false, 0)\n"
#~ "    for s in split_strs:\n"
#~ "        extracted_strings.append(s)\n"
#~ "        #print(\"Extracted string: \" + s)\n"
#~ "\n"
#~ "\n"
#~ "func get_recognized_extensions():\n"
#~ "    return [\"csv\"]\n"
#~ "[/codeblock]\n"
#~ "[b]Note:[/b] If you override parsing logic for standard script types "
#~ "(GDScript, C#, etc.), it would be better to load the [code]path[/code] "
#~ "argument using [method ResourceLoader.load]. This is because built-in "
#~ "scripts are loaded as [Resource] type, not [File] type.\n"
#~ "For example:\n"
#~ "[codeblock]\n"
#~ "func parse_file(path, extracted_strings):\n"
#~ "    var res = ResourceLoader.load(path, \"Script\")\n"
#~ "    var text = res.get_source_code()\n"
#~ "    # Parsing logic.\n"
#~ "\n"
#~ "\n"
#~ "func get_recognized_extensions():\n"
#~ "    return [\"gd\"]\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "通过[method EditorPlugin.add_translation_parser_plugin]方法注册插件。如果"
#~ "要定义解析和字符串提取逻辑,请重写脚本中的[method parse_file]方法。\n"
#~ "提取的字符串将被写入用户在 \"项目设置 \"菜单中 \"本地化 \"选项卡的 \"POT生"
#~ "成 \"中选择的POT文件中。\n"
#~ "下面是一个自定义解析器的例子,该解析器将提取CSV文件中的字符串写入POT文"
#~ "件。\n"
#~ "[codeblock]\n"
#~ "tool\n"
#~ "extends EditorTranslationParserPlugin\n"
#~ "\n"
#~ "\n"
#~ "func parse_file(path, extracted_strings):\n"
#~ "    var file = File.new()\n"
#~ "    file.open(path, File.READ)\n"
#~ "    var text = file.get_as_text()\n"
#~ "    var split_strs = text.split(\",\", false, 0)\n"
#~ "    for s in split_strs:\n"
#~ "        extracted_strings.append(s)\n"
#~ "        #print(\"Extracted string: \" + s)\n"
#~ "\n"
#~ "\n"
#~ "func get_recognized_extensions():\n"
#~ "    return [\"csv\"]\n"
#~ "[/codeblock]\n"
#~ "[b]Note:[/b] If you override parsing logic for standard script types "
#~ "(GDScript, C#, etc.), it would be better to load the [code]path[/code] "
#~ "argument using [method ResourceLoader.load]. This is because built-in "
#~ "scripts are loaded as [Resource] type, not [File] type.\n"
#~ "For example:\n"
#~ "[codeblock]\n"
#~ "func parse_file(path, extracted_strings):\n"
#~ "    var res = ResourceLoader.load(path, \"Script\")\n"
#~ "    var text = res.get_source_code()\n"
#~ "    # Parsing logic.\n"
#~ "\n"
#~ "\n"
#~ "func get_recognized_extensions():\n"
#~ "    return [\"gd\"]\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Gets the list of file extensions to associate with this parser, e.g. "
#~ "[code][\"csv\"][/code]."
#~ msgstr "获取与该解析器相关联的文件扩展名列表,例如[code][\"csv\"][/code]。"

#~ msgid ""
#~ "Override this method to define a custom parsing logic to extract the "
#~ "translatable strings."
#~ msgstr "重写此方法来定义自定义的解析逻辑来提取可转化的字符串。"

#~ msgid ""
#~ "Returns the total number of frames passed since engine initialization "
#~ "which is advanced on each [b]idle frame[/b], regardless of whether the "
#~ "render loop is enabled. See also [method get_frames_drawn]."
#~ msgstr ""
#~ "返回自引擎初始化以来通过的总帧数,这些帧数在每个[b]空闲帧[/b]上都会被推"
#~ "进,无论渲染循环是否启用。参见[method get_frames_drawn]。"

#~ msgid ""
#~ "Returns the total number of frames passed since engine initialization "
#~ "which is advanced on each [b]physics frame[/b]."
#~ msgstr ""
#~ "返回自引擎初始化以来传递的帧总数,该帧总数在每个[b]物理帧[/b]上超前。"

#~ msgid ""
#~ "If [code]true[/code], it is running inside the editor. Useful for tool "
#~ "scripts."
#~ msgstr "如果[code]true[/code],则在编辑器内部运行。对工具脚本有用。"

#~ msgid ""
#~ "Gather ambient light from whichever source is specified as the background."
#~ msgstr "从指定的任何光源收集环境光作为背景。"

#~ msgid "Disable ambient light."
#~ msgstr "禁用环境光。"

#~ msgid "Specify a specific [Color] for ambient light."
#~ msgstr "为环境光指定特定的[Color]。"

#~ msgid ""
#~ "Gather ambient light from the [Sky] regardless of what the background is."
#~ msgstr "无论背景是什么,都要从[Sky]收集环境光。"

#~ msgid "Use the background for reflections."
#~ msgstr "使用背景进行反射。"

#~ msgid "Disable reflections."
#~ msgstr "禁用反射。"

#~ msgid "Use the [Sky] for reflections regardless of what the background is."
#~ msgstr "不论背景是什么,都可使用[Sky]进行反射。"

#~ msgid ""
#~ "Mixes the glow with the underlying color to avoid increasing brightness "
#~ "as much while still maintaining a glow effect."
#~ msgstr "将glow与底色混合,在保持glow效果的同时,避免增加过多的亮度。"

#~ msgid ""
#~ "3×3 blur for the screen-space ambient occlusion effect. Increases the "
#~ "radius of the blur for a smoother look, but can result in checkerboard-"
#~ "like artifacts."
#~ msgstr ""
#~ "3×3模糊,用于屏幕空间环境遮挡效果。增加模糊的半径,以获得更平滑的外观,但"
#~ "可能会导致类似棋盘的伪影。"

#~ msgid "Closes the currently opened file."
#~ msgstr "关闭当前打开的文件。"

#~ msgid ""
#~ "Returns [code]true[/code] if the file cursor has read past the end of the "
#~ "file.\n"
#~ "[b]Note:[/b] This function will still return [code]false[/code] while at "
#~ "the end of the file and only activates when reading past it. This can be "
#~ "confusing but it conforms to how low-level file access works in all "
#~ "operating systems. There is always [method get_len] and [method "
#~ "get_position] to implement a custom logic."
#~ msgstr ""
#~ "如果文件指针已读取到文件末尾,则返回[code] true [/code]。\n"
#~ "[b]注意:[/b]在文件末尾,此函数仍将返回[code] false [/code],并且仅在经过"
#~ "文件时才激活。这可能会造成混淆,但它符合所有操作系统中低级文件访问的工作方"
#~ "式。使用[method get_len]和[method get_position]来实现自定义逻辑。"

#~ msgid ""
#~ "Returns the next value of the file in CSV (Comma-Separated Values) "
#~ "format. You can pass a different delimiter [code]delim[/code] to use "
#~ "other than the default [code]\",\"[/code] (comma). This delimiter must be "
#~ "one-character long.\n"
#~ "Text is interpreted as being UTF-8 encoded."
#~ msgstr ""
#~ "以CSV(Comma-Separated Values)格式返回文件的下一个值。你可以传递一个不同"
#~ "的分隔符[code]delim[/code]来使用,而不是默认的[code]\",\"[/code](逗号)。"
#~ "这个定界符必须是一个字符的长度。\n"
#~ "文本将被转为UTF-8编码。"

#~ msgid "Opens a compressed file for reading or writing."
#~ msgstr "打开一个压缩文件进行读写。"

#~ msgid ""
#~ "Stores the given [String] as a line in the file.\n"
#~ "Text will be encoded as UTF-8."
#~ msgstr ""
#~ "将给定的[String]存储为文件中的一行。\n"
#~ "文本将被编码为 UTF-8。"

#~ msgid ""
#~ "Stores the given [String] in the file.\n"
#~ "Text will be encoded as UTF-8."
#~ msgstr ""
#~ "在文件中存储给定为[String]属性。\n"
#~ "文本将被编码为UTF-8。"

#~ msgid ""
#~ "Stores any Variant value in the file. If [code]full_objects[/code] is "
#~ "[code]true[/code], encoding objects is allowed (and can potentially "
#~ "include code)."
#~ msgstr ""
#~ "在文件中存储任何变量值。如果[code]full_objects[/code]是[code]true[/code],"
#~ "允许对对象进行编码(有可能包括代码)。"

#~ msgid ""
#~ "If [code]true[/code], the file's endianness is swapped. Use this if "
#~ "you're dealing with files written on big-endian machines.\n"
#~ "[b]Note:[/b] This is about the file format, not CPU type. This is always "
#~ "reset to [code]false[/code] whenever you open the file."
#~ msgstr ""
#~ "如果[code]true[/code],文件的字节数会被交换。如果你要处理写在大面值机器上"
#~ "的文件,就使用这个。\n"
#~ "[b]注意:[/b] 这是关于文件格式,而不是CPU类型。每当你打开文件时,这一点总"
#~ "是被重置为[code]false[/code]。"

#~ msgid "Opens the file for read operations."
#~ msgstr "打开文件读取。"

#~ msgid ""
#~ "The file system access scope. See enum [code]Access[/code] constants."
#~ msgstr "文件系统访问范围。参见枚举(enum)[code] Access [/code]常量。"

#~ msgid ""
#~ "Font contains a Unicode-compatible character set, as well as the ability "
#~ "to draw it with variable width, ascent, descent and kerning. For creating "
#~ "fonts from TTF files (or other font formats), see the editor support for "
#~ "fonts."
#~ msgstr ""
#~ "字体含有一个与Unicode兼容的字符集,以及用可变宽度、增高、减矮和字符间距绘"
#~ "制的能力。有关于从TTF文件(或其他字体格式)创建字体,请参见编辑器对字体的"
#~ "支持。"

#~ msgid ""
#~ "Returns the size of a string, taking kerning and advance into account."
#~ msgstr "返回一个字符串的大小,并考虑到字符间距和提前量。"

#~ msgid ""
#~ "The name of the referenced function to call on the object, without "
#~ "parentheses or any parameters."
#~ msgstr "要在对象上调用的引用函数的名称,没有括号或任何参数。"

#~ msgid "Helper node to calculate generic geometry operations in 3D space."
#~ msgstr "帮助节点用于计算三维空间中的通用几何操作。"

#~ msgid ""
#~ "Geometry3D provides users with a set of helper functions to create "
#~ "geometric shapes, compute intersections between shapes, and process "
#~ "various other geometric operations."
#~ msgstr ""
#~ "Geometry3D为用户提供了一套辅助函数,用于创建几何图形,计算图形之间的交点,"
#~ "以及处理其他各种几何操作。"

#~ msgid "2D particle emitter."
#~ msgstr "2D粒子发射器。"

#~ msgid ""
#~ "2D particle node used to create a variety of particle systems and "
#~ "effects. [GPUParticles2D] features an emitter that generates some number "
#~ "of particles at a given rate.\n"
#~ "Use the [code]process_material[/code] property to add a "
#~ "[ParticlesMaterial] to configure particle appearance and behavior. "
#~ "Alternatively, you can add a [ShaderMaterial] which will be applied to "
#~ "all particles."
#~ msgstr ""
#~ "2D粒子节点,用于创建各种粒子系统和效果。 [GPUParticles2D] 的特点是有一个发"
#~ "射器,能以给定的速度产生一定数量的粒子。\n"
#~ "使用 [code]process_material[/code] 属性来添加一个 [ParticlesMaterial] 来配"
#~ "置粒子的外观和行为。或者,你可以添加一个 [ShaderMaterial] ,它将应用于所有"
#~ "粒子。"

#~ msgid "Editor visibility helper."
#~ msgstr "编辑器可见性帮助。"

#~ msgid "3D particle emitter."
#~ msgstr "3D粒子发射器。"

#~ msgid ""
#~ "3D particle node used to create a variety of particle systems and "
#~ "effects. [GPUParticles3D] features an emitter that generates some number "
#~ "of particles at a given rate.\n"
#~ "Use the [code]process_material[/code] property to add a "
#~ "[ParticlesMaterial] to configure particle appearance and behavior. "
#~ "Alternatively, you can add a [ShaderMaterial] which will be applied to "
#~ "all particles."
#~ msgstr ""
#~ "3D粒子节点,用于创建各种粒子系统和效果。 [GPUParticles3D] 的特点是一个发射"
#~ "器,以给定的速度产生一些数量的粒子。\n"
#~ "使用 [code]process_material[/code] 属性来添加一个 [ParticlesMaterial] 来配"
#~ "置粒子的外观和行为。或者,你可以添加一个 [ShaderMaterial] ,它将应用于所有"
#~ "粒子。"

#~ msgid "Number of particles to emit."
#~ msgstr "要发出的粒子的数量。"

#~ msgid ""
#~ "The [AABB] that determines the area of the world part of which needs to "
#~ "be visible on screen for the particle system to be active."
#~ msgstr ""
#~ "决定世界的一部分需要在屏幕上可见的区域的[AABB],以便粒子系统被激活。"

#~ msgid "Returns the color set to [code]idx[/code] left (input) slot."
#~ msgstr "返回设置在[code]idx[/code]左边(输入)槽的颜色。"

#~ msgid "Returns the color set to [code]idx[/code] right (output) slot."
#~ msgstr "返回设置在[code]idx[/code]右边(输出)槽的颜色。"

#~ msgid "Returns the (integer) type of left (input) [code]idx[/code] slot."
#~ msgstr "返回左侧(输入)[code]idx[/code]槽的(整数)类型。"

#~ msgid "Returns the (integer) type of right (output) [code]idx[/code] slot."
#~ msgstr "返回右侧(输出)[code]idx[/code]槽的(整数)类型。"

#~ msgid ""
#~ "Returns [code]true[/code] if left (input) slot [code]idx[/code] is "
#~ "enabled, [code]false[/code] otherwise."
#~ msgstr ""
#~ "如果左侧(输入)槽[code]idx[/code]被启用,返回[code]true[/code],否则返回"
#~ "[code]false[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if right (output) slot [code]idx[/code] is "
#~ "enabled, [code]false[/code] otherwise."
#~ msgstr ""
#~ "如果左侧(输出)槽[code]idx[/code]被启用,返回[code]true[/code],否则返回"
#~ "[code]false[/code]。"

#~ msgid "The physics layers this GridMap detects collisions in."
#~ msgstr "该GridMap检测碰撞的物理层。"

#~ msgid ""
#~ "Horizontal slider. See [Slider]. This one goes from left (min) to right "
#~ "(max)."
#~ msgstr "水平滑块。见[Slider]。水平滑块从左(最小值)到右(最大值)滑动。"

#~ msgid "Maximum allowed size for response bodies."
#~ msgstr "允许的最大响应体大小。"

#~ msgid ""
#~ "A [Texture2D] based on an [Image]. Can be created from an [Image] with "
#~ "[method create_from_image].\n"
#~ "[b]Note:[/b] The maximum image size is 16384×16384 pixels due to graphics "
#~ "hardware limitations. Larger images will fail to import."
#~ msgstr ""
#~ "基于 [Image] 的 [Texture2D],可以通过 [method create_from_image] 从 "
#~ "[Image] 创建。\n"
#~ "[b]注意:[/b] 由于图形硬件的限制,图片的最大尺寸是 16384×16384 像素,更大"
#~ "的图片会导入失败。"

#~ msgid "Create a new [ImageTexture] from an [Image]."
#~ msgstr "从 [Image] 创建新的 [ImageTexture]。"

#~ msgid ""
#~ "Replaces the texture's data with a new [code]image[/code]. If "
#~ "[code]immediate[/code] is [code]true[/code], it will take effect "
#~ "immediately after the call."
#~ msgstr ""
#~ "将纹理数据替换成新的[code]image[/code]。如果[code]immediate[/code]为 "
#~ "[code]true[/code],那么将在调用后立即生效。"

#~ msgid ""
#~ "If the device has an accelerometer, this will return the acceleration. "
#~ "Otherwise, it returns an empty [Vector3].\n"
#~ "Note this method returns an empty [Vector3] when running from the editor "
#~ "even when your device has an accelerometer. You must export your project "
#~ "to a supported device to read values from the accelerometer."
#~ msgstr ""
#~ "如果设备有一个加速度计,这将返回加速度。否则,它返回一个空的[Vector3]。\n"
#~ "请注意,即使你的设备有一个加速度计,当从编辑器中运行时,该方法返回一个空"
#~ "[Vector3]。你必须把你的项目导出到支持加速度计的设备上,这才能从读取到加速"
#~ "度。"

#~ msgid ""
#~ "If the device has an accelerometer, this will return the gravity. "
#~ "Otherwise, it returns an empty [Vector3]."
#~ msgstr ""
#~ "如果设备有加速度计,则返回重力加速度。否则,它将返回一个空的[Vector3]。"

#~ msgid ""
#~ "If the device has a gyroscope, this will return the rate of rotation in "
#~ "rad/s around a device's X, Y, and Z axes. Otherwise, it returns an empty "
#~ "[Vector3]."
#~ msgstr ""
#~ "如果设备有一个陀螺仪,这将返回围绕设备的X、Y和Z轴的旋转速率,单位是rad/s。"
#~ "否则,它返回一个空的[Vector3]。"

#~ msgid ""
#~ "If the device has a magnetometer, this will return the magnetic field "
#~ "strength in micro-Tesla for all axes."
#~ msgstr "如果设备有磁力计,这将返回所有轴的磁场强度,单位为微特斯拉。"

#~ msgid ""
#~ "Returns [code]true[/code] when the user stops pressing the action event, "
#~ "meaning it's [code]true[/code] only on the frame that the user released "
#~ "the button."
#~ msgstr ""
#~ "当用户停止按下动作事件时,返回[code]true[/code],这意味着仅当用户释放按钮的"
#~ "帧上才是[code]true[/code]."

#~ msgid ""
#~ "Captures the mouse. The mouse will be hidden and unable to leave the game "
#~ "window, but it will still register movement and mouse button presses. On "
#~ "Windows and Linux, the mouse will use raw input mode, which means the "
#~ "reported movement will be unaffected by the OS' mouse acceleration "
#~ "settings."
#~ msgstr ""
#~ "捕获鼠标。鼠标将被隐藏,并且无法离开游戏窗口,但它仍然会记录移动和鼠标按"
#~ "键。在Windows和Linux上,鼠标将使用原始输入模式,这意味着报告的移动将不受操"
#~ "作系统的鼠标加速设置的影响。"

#~ msgid ""
#~ "Returns [code]true[/code] if this input event matches a pre-defined "
#~ "action of any type."
#~ msgstr ""
#~ "如果此输入事件与任何类型的预定义操作匹配,则返回 [code] true[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if the given action is released (i.e. not "
#~ "pressed). Not relevant for events of type [InputEventMouseMotion] or "
#~ "[InputEventScreenDrag]."
#~ msgstr ""
#~ "如果给定的动作被释放(即没有被按下),返回[code]true[/code]。与"
#~ "[InputEventMouseMotion]或[InputEventScreenDrag]类型的事件无关。"

#~ msgid ""
#~ "Returns [code]true[/code] if the given input event is checking for the "
#~ "same key ([InputEventKey]), button ([InputEventJoypadButton]) or action "
#~ "([InputEventAction])."
#~ msgstr ""
#~ "如果给定的输入事件正在检查相同的键([InputEventKey])、按钮"
#~ "([InputEventJoypadButton])或动作([InputEventAction]),则返回 "
#~ "[code]true[/code]。"

#~ msgid ""
#~ "Sets the background color of the item specified by [code]idx[/code] index "
#~ "to the specified [Color].\n"
#~ "[codeblock]\n"
#~ "var some_string = \"Some text\"\n"
#~ "some_string.set_item_custom_bg_color(0,Color(1, 0, 0, 1) # This will set "
#~ "the background color of the first item of the control to red.\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "将[code]idx[/code]索引指定的项目的背景颜色设置为指定的颜色[Color]。\n"
#~ "[codeblock]\n"
#~ "var some_string = \"一些文本\"\n"
#~ "some_string.set_item_custom_bg_color(0,Color(1, 0, 0, 1) # 这将把控件的第"
#~ "一个项目的背景颜色设置为红色。\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "Sets the foreground color of the item specified by [code]idx[/code] index "
#~ "to the specified [Color].\n"
#~ "[codeblock]\n"
#~ "var some_string = \"Some text\"\n"
#~ "some_string.set_item_custom_fg_color(0,Color(1, 0, 0, 1) # This will set "
#~ "the foreground color of the first item of the control to red.\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "将[code]idx[/code]索引指定的项目的前景颜色设置为指定的颜色[Color]。\n"
#~ "[codeblock]\n"
#~ "var some_string = \"一些文本\"\n"
#~ "some_string.set_item_custom_fg_color(0,Color(1, 0, 0, 1) # 这将把控件的第"
#~ "一个项目的前景颜色设置为红色。\n"
#~ "[/codeblock]"

#~ msgid ""
#~ "The JavaScript singleton is implemented only in the HTML5 export. It's "
#~ "used to access the browser's JavaScript context. This allows interaction "
#~ "with embedding pages or calling third-party JavaScript APIs."
#~ msgstr ""
#~ "JavaScript 单例仅在 HTML5 导出中实现。它用于访问浏览器的 JavaScript 上下"
#~ "文。这允许与嵌入页面交互或调用第三方 JavaScript API。"

#~ msgid ""
#~ "Converts a [Variant] var to JSON text and returns the result. Useful for "
#~ "serializing data to store or send over the network.\n"
#~ "[b]Note:[/b] The JSON specification does not define integer or float "
#~ "types, but only a [i]number[/i] type. Therefore, converting a Variant to "
#~ "JSON text will convert all numerical values to [float] types."
#~ msgstr ""
#~ "将 [Variant] var 变量转换为 JSON 文本并返回结果。可用于对数据进行序列化以"
#~ "存储或通过网络发送。\n"
#~ "[b]注:[/b] JSON 规范中没有定义 integer 整数或 float 浮点类型,而只定义了 "
#~ "[i]number[/i] 类型。因此,将 Variant 转换为 JSON 文本会将所有数值转换为 "
#~ "[float] 类型。"

#~ msgid ""
#~ "Returns [code]true[/code] if the body is on the ceiling. Only updates "
#~ "when calling [method move_and_slide]."
#~ msgstr ""
#~ "如果实体在天花板上,返回则[code]true[/code]。只在调用[method "
#~ "move_and_slide]时更新。"

#~ msgid ""
#~ "Returns [code]true[/code] if the body is on the floor. Only updates when "
#~ "calling [method move_and_slide]."
#~ msgstr ""
#~ "如果身体在地面上,返回则[code]true[/code]。只在调用[method move_and_slide]"
#~ "时更新。"

#~ msgid ""
#~ "Returns [code]true[/code] if the body is on a wall. Only updates when "
#~ "calling [method move_and_slide]."
#~ msgstr ""
#~ "如果实体在墙上,返回则[code]true[/code]。只在调用[method move_and_slide]时"
#~ "更新。"

#~ msgid ""
#~ "If the body is at least this close to another body, this body will "
#~ "consider them to be colliding."
#~ msgstr "如果这个物体至少与另一个物体如此接近,这个物体就会认为它们在碰撞。"

#~ msgid ""
#~ "Kinematic bodies are special types of bodies that are meant to be user-"
#~ "controlled. They are not affected by physics at all; to other types of "
#~ "bodies, such as a character or a rigid body, these are the same as a "
#~ "static body. However, they have two main uses:\n"
#~ "[b]Simulated motion:[/b] When these bodies are moved manually, either "
#~ "from code or from an [AnimationPlayer] (with [member AnimationPlayer."
#~ "playback_process_mode] set to \"physics\"), the physics will "
#~ "automatically compute an estimate of their linear and angular velocity. "
#~ "This makes them very useful for moving platforms or other AnimationPlayer-"
#~ "controlled objects (like a door, a bridge that opens, etc).\n"
#~ "[b]Kinematic characters:[/b] KinematicBody3D also has an API for moving "
#~ "objects (the [method move_and_collide] and [method move_and_slide] "
#~ "methods) while performing collision tests. This makes them really useful "
#~ "to implement characters that collide against a world, but that don't "
#~ "require advanced physics."
#~ msgstr ""
#~ "运动实体是指用户控制的特殊类型的实体。他们完全不受物理的影响;对于其他类型"
#~ "的实体,例如角色或刚体,它们与静态实体相同。但是,它们有两个主要用途:\n"
#~ "[b] 模拟运动:[/b]当从代码或[AnimationPlayer](将[member AnimationPlayer."
#~ "playback_process_mode]设置为“Physical”)手动移动这些物体时,物理将自动计算"
#~ "其线速度和角速度的估计值。这使得它们对于移动平台或其他AnimationPlayer控制"
#~ "的对象(如门、打开的桥等)非常有用。\n"
#~ "[b] 运动物体:[/b]KinematicBody3D还具有一个API,用于在执行碰撞测试时移动对"
#~ "象(方法移动和碰撞)和方法移动和滑动)。这使得它们在实现与世界碰撞的角色时"
#~ "非常有用,但不需要高级物理。"

#~ msgid ""
#~ "Moves the body along the vector [code]rel_vec[/code]. The body will stop "
#~ "if it collides. Returns a [KinematicCollision3D], which contains "
#~ "information about the collision.\n"
#~ "If [code]test_only[/code] is [code]true[/code], the body does not move "
#~ "but the would-be collision information is given."
#~ msgstr ""
#~ "沿着向量[code]rel_vec[/code]移动物体。如果碰撞物体就会停止。返回"
#~ "[KinematicCollision3D],它包含碰撞的信息。\n"
#~ "如果[code]test_only[/code]为[code]true[/code],则物体不会移动,但会给出可"
#~ "能的碰撞信息。"

#~ msgid "Collision data for [KinematicBody3D] collisions."
#~ msgstr "用于[KinematicBody3D]碰撞的碰撞数据。"

#~ msgid ""
#~ "Contains collision data for [KinematicBody3D] collisions. When a "
#~ "[KinematicBody3D] is moved using [method KinematicBody3D."
#~ "move_and_collide], it stops if it detects a collision with another body. "
#~ "If a collision is detected, a KinematicCollision3D object is returned.\n"
#~ "This object contains information about the collision, including the "
#~ "colliding object, the remaining motion, and the collision position. This "
#~ "information can be used to calculate a collision response."
#~ msgstr ""
#~ "包含[KinematicBody3D]碰撞的数据。当一个[KinematicBody3D]使用[method "
#~ "KinematicBody3D.move_and_collide]移动时,如果它检测到与另一个物体的碰撞就"
#~ "会停止。如果检测到碰撞,将返回一个KinematicCollision3D对象。\n"
#~ "这个对象包含碰撞的相关信息,包括碰撞的对象、剩余运动和碰撞坐标。这些信息可"
#~ "以用来计算碰撞响应。"

#~ msgid "The colliding shape's index. See [CollisionObject3D]."
#~ msgstr "碰撞形状的索引。参阅[CollisionObject3D]。"

#~ msgid ""
#~ "The light's angular size in degrees. Only available for "
#~ "[DirectionalLight3D]s. For reference, the Sun from the Earth is "
#~ "approximately [code]0.5[/code]."
#~ msgstr ""
#~ "灯光的角度大小,单位是度。只适用于[DirectionalLight3D]。作为参考,从地球上"
#~ "看太阳大约是[code]0.5[/code]。"

#~ msgid ""
#~ "[Texture2D] projected by light. [member shadow_enabled] must be on for "
#~ "the projector to work. Light projectors make the light appear as if it is "
#~ "shining through a colored but transparent object, almost like light "
#~ "shining through stained glass."
#~ msgstr ""
#~ "[Texture2D]由光线投射。[member shadow_enabled]必须打开,投影仪才能工作。光"
#~ "投影仪使光线看起来就像是透过一个彩色但透明的物体照耀的,就像光线透过彩色玻"
#~ "璃照射一样。"

#~ msgid ""
#~ "Blurs the edges of the shadow. Can be used to hide pixel artifacts in low-"
#~ "resolution shadow maps. A high value can impact performance, make shadows "
#~ "appear grainy and can cause other unwanted artifacts. Try to keep as near "
#~ "default as possible."
#~ msgstr ""
#~ "模糊阴影的边缘。可用于隐藏低分辨率阴影贴图中的像素瑕疵。较高的值可能会影响"
#~ "性能,使阴影呈现颗粒状,并可能导致其他不需要的瑕疵。尽量保持接近默认值。"

#~ msgid ""
#~ "Offsets the lookup into the shadow map by the object's normal. This can "
#~ "be used to reduce self-shadowing artifacts without using [member "
#~ "shadow_bias]. In practice, this value should be tweaked along with "
#~ "[member shadow_bias] to reduce artifacts as much as possible."
#~ msgstr ""
#~ "通过对象的法线将查找偏移到阴影贴图中。这可用于减少自阴影瑕疵,而无需使用"
#~ "[member shadow_bias]。在实践中,该值应与[member shadow_bias]一起调整,以尽"
#~ "可能减少瑕疵。"

#~ msgid ""
#~ "Constant for accessing [member DirectionalLight3D."
#~ "directional_shadow_fade_start]."
#~ msgstr ""
#~ "访问[member DirectionalLight3D.directional_shadow_fade_start]的常数。"

#~ msgid "Constant for accessing [member shadow_normal_bias]."
#~ msgstr "用于访问[member shadow_normal_bias]常数。"

#~ msgid ""
#~ "Constant for accessing [member DirectionalLight3D."
#~ "directional_shadow_pancake_size]."
#~ msgstr ""
#~ "访问[member DirectionalLight3D.directional_shadow_pancake_size]的常数。"

#~ msgid "Constant for accessing [member shadow_blur]."
#~ msgstr "访问[member shadow_blur]的常数。"

#~ msgid "Constant for accessing [member shadow_transmittance_bias]."
#~ msgstr "访问[member shadow_Transmission_bias]的常数。"

#~ msgid "A line through several points in 2D space."
#~ msgstr "在二维空间中通过几个点的直线。"

#~ msgid ""
#~ "Maximum amount of characters that can be entered inside the [LineEdit]. "
#~ "If [code]0[/code], there is no limit."
#~ msgstr ""
#~ "在[LineEdit]内可输入的最大字符数。如果为[code]0[/code],则不做限制。"

#~ msgid ""
#~ "Emitted when trying to append text that would overflow the [member "
#~ "max_length]."
#~ msgstr "当文本长度将溢出[manber max_length]时触发。"

#~ msgid ""
#~ "Notification received from the OS when the application is focused, i.e. "
#~ "when changing the focus from the OS desktop or a thirdparty application "
#~ "to any open window of the Godot instance.\n"
#~ "Implemented on desktop platforms."
#~ msgstr ""
#~ "当应用程序被关注时,即当焦点从操作系统桌面或第三方应用程序转移到Godot实例"
#~ "的任何开放窗口时,从操作系统收到的通知。\n"
#~ "在桌面平台上实现。"

#~ msgid ""
#~ "Notification received from the OS when the application is defocused, i.e. "
#~ "when changing the focus from any open window of the Godot instance to the "
#~ "OS desktop or a thirdparty application.\n"
#~ "Implemented on desktop platforms."
#~ msgstr ""
#~ "当应用程序失去焦点时,即当焦点从Godot实例的任何打开的窗口转移到操作系统桌"
#~ "面或第三方应用程序时,从操作系统收到的通知。\n"
#~ "在桌面平台上实现。"

#~ msgid "Calculate a [ConvexPolygonShape3D] from the mesh."
#~ msgstr "从这个网格中计算出一个[ConvexPolygonShape3D]凸多面体。"

#~ msgid "Sets a hint to be used for lightmap resolution."
#~ msgstr "设置用于光贴图分辨率的提示。"

#~ msgid ""
#~ "Sets the override [Material] for the specified surface of the [Mesh] "
#~ "resource. This material is associated with this [MeshInstance3D] rather "
#~ "than with the [Mesh] resource."
#~ msgstr ""
#~ "为[Mesh]资源的指定表面设置覆盖[Material]。这个材质与这个[MeshInstance3D]相"
#~ "关,而不是与[Mesh]资源相关。"

#~ msgid "Returns the visibility axis-aligned bounding box."
#~ msgstr "返回可见性轴对齐的包围盒。"

#~ msgid ""
#~ "If [code]true[/code], the [MultiMesh] will use color data (see [member "
#~ "color_array])."
#~ msgstr ""
#~ "如果 [code]true[/code],[MultiMesh] 将使用颜色数据(参见 [member "
#~ "color_array])。"

#~ msgid ""
#~ "If [code]true[/code], the [MultiMesh] will use custom data (see [member "
#~ "custom_data_array])."
#~ msgstr ""
#~ "如果 [code]true[/code],则 [MultiMesh] 将使用自定义数据(参见 [member "
#~ "custom_data_array])。"

#~ msgid ""
#~ "Locks this [Mutex], blocks until it is unlocked by the current owner."
#~ msgstr "锁定这个[Mutex],直到它被当前所有者解锁为止。"

#~ msgid "Unlocks this [Mutex], leaving it to other threads."
#~ msgstr "解锁这个[Mutex],把它留给其他线程。"

#~ msgid ""
#~ "Returns the point closest to the provided [code]to_point[/code] on the "
#~ "navigation mesh surface."
#~ msgstr "返回导航网格表面上最接近提供的[code]to_point[/code]的点。"

#~ msgid ""
#~ "Returns the owner region RID for the point returned by [method "
#~ "get_closest_point]."
#~ msgstr "返回由[method get_closest_point]得到的点的所有者区域的RID。"

#~ msgid ""
#~ "Returns the closest point between the navigation surface and the segment."
#~ msgstr "返回导航面和线段之间最近的点。"

#~ msgid "2D Agent used in navigation for collision avoidance."
#~ msgstr "用于避碰导航的2D Agent。"

#~ msgid ""
#~ "2D Agent that is used in navigation to reach a location while avoiding "
#~ "static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
#~ "collision avoidance. The agent needs navigation data to work correctly. "
#~ "This can be done by having the agent as a child of a [Navigation2D] node, "
#~ "or using [method set_navigation]. [NavigationAgent2D] is physics safe."
#~ msgstr ""
#~ "2D Agent,用于导航到达一个位置,同时避免静态和动态障碍。采用RVO避碰技术对"
#~ "动态障碍物进行避碰。代理需要导航数据才能正常工作。这可以通过将代理作为"
#~ "[Navigation2D]节点的子节点或使用[method set_navigation]来实现。"
#~ "[NavigationAgent2D]是物理安全的。"

#~ msgid ""
#~ "Returns the distance to the target location, using the agent's global "
#~ "position. The user must set the target location with [method "
#~ "set_target_location] in order for this to be accurate."
#~ msgstr ""
#~ "使用代理的全局位置返回到目标位置的距离。用户必须使用[method "
#~ "set_target_location]设置目标位置,以使其准确。"

#~ msgid ""
#~ "Returns the reachable final location in global coordinates. This can "
#~ "change if the navigation path is altered in any way."
#~ msgstr ""
#~ "返回全局坐标中可到达的最终位置。这可能会随着导航路径的改变而发生变化。"

#~ msgid "Returns the path from start to finish in global coordinates."
#~ msgstr "返回全局坐标中从开始到结束的路径。"

#~ msgid ""
#~ "Returns which index the agent is currently on in the navigation path's "
#~ "[PackedVector2Array]."
#~ msgstr "返回代理当前在导航路径的[PackedVector2Array]中的索引。"

#~ msgid ""
#~ "Returns the [Navigation2D] node that the agent is using for its "
#~ "navigation system."
#~ msgstr "返回代理用于其导航系统的[Navigation2D]节点。"

#~ msgid ""
#~ "Returns a [Vector2] in global coordinates, that can be moved to, making "
#~ "sure that there are no static objects in the way. If the agent does not "
#~ "have a navigation path, it will return the position of the agent's parent."
#~ msgstr ""
#~ "返回一个可以移动到的[Vector2]全局坐标,这需要确保路径上没有静态碰撞体。如"
#~ "果代理没有导航路径,它将返回代理的父节点的位置。"

#~ msgid ""
#~ "Returns the user defined [Vector2] after setting the target location."
#~ msgstr "在设置目标位置后返回用户定义的[Vector2]。"

#~ msgid ""
#~ "Returns true if the navigation path's final location has been reached."
#~ msgstr "如果已经到达导航路径的最终位置,则返回true。"

#~ msgid ""
#~ "Returns true if the target location is reachable. The target location is "
#~ "set using [method set_target_location]."
#~ msgstr ""
#~ "如果目标位置是可到达的,则返回true。目标位置使用[method "
#~ "set_target_location]设置。"

#~ msgid ""
#~ "Returns true if the target location is reached. The target location is "
#~ "set using [method set_target_location]. It may not always be possible to "
#~ "reach the target location. It should always be possible to reach the "
#~ "final location though. See [method get_final_location]."
#~ msgstr ""
#~ "如果到达目标位置则返回true。目标位置使用[method set_target_location]设置。"
#~ "可能并不总是能够到达目标位置。不过,它应该总是有可能到达最终的位置。"
#~ "get_final_location[方法]。"

#~ msgid ""
#~ "Sets the [Navigation2D] node used by the agent. Useful when you don't "
#~ "want to make the agent a child of a [Navigation2D] node."
#~ msgstr ""
#~ "设置代理使用的[Navigation2D]节点。当你不想让代理成为[Navigation2D]节点的子"
#~ "节点时,这很有用。"

#~ msgid ""
#~ "Sets the user desired final location. This will clear the current "
#~ "navigation path."
#~ msgstr "设置用户希望的最终位置。这将清除当前的导航路径。"

#~ msgid ""
#~ "Sends the passed in velocity to the collision avoidance algorithm. It "
#~ "will adjust the velocity to avoid collisions. Once the adjustment to the "
#~ "velocity is complete, it will emit the [signal velocity_computed] signal."
#~ msgstr ""
#~ "将传递的速度发送给避碰算法。它会调整速度以避免碰撞。一旦速度调整完成,它将"
#~ "发出[signal velocity_computed]信号。"

#~ msgid "The maximum number of neighbors for the agent to consider."
#~ msgstr "agent要考虑的最大邻居数。"

#~ msgid "The distance to search for other agents."
#~ msgstr "寻找其他 Agent 的距离。"

#~ msgid ""
#~ "The maximum distance the agent is allowed away from the ideal path to the "
#~ "final location. This can happen due to trying to avoid collisions. When "
#~ "the maximum distance is exceeded, it recalculates the ideal path."
#~ msgstr ""
#~ "Agent 从理想路径到最终位置所允许的最大距离。由于试图避免碰撞,这可能会发"
#~ "生。当超过最大距离时,它重新计算理想路径。"

#~ msgid "The radius of the agent."
#~ msgstr "Agent 的半径。"

#~ msgid ""
#~ "The distance threshold before a target is considered to be reached. This "
#~ "will allow an agent to not have to hit a point on the path exactly, but "
#~ "in the area."
#~ msgstr ""
#~ "认为到达目标之前的距离阈值。这将允许Agent不必精确地命中路径上的某个点,而"
#~ "是在该区域内。"

#~ msgid ""
#~ "The minimal amount of time for which this agent's velocities, that are "
#~ "computed with the collision avoidance algorithim, 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. Must be "
#~ "positive."
#~ msgstr ""
#~ "在最短的时间内,这个Agent的速度,由碰撞避免算法计算,相对于其他代理是安全"
#~ "的。数值越大,Agent对其他Agent的响应就越快,但选择速度的自由度就越小。必须"
#~ "是正的。"

#~ msgid "Notifies when the final location is reached."
#~ msgstr "到达最终位置时通知。"

#~ msgid "Notifies when the navigation path changes."
#~ msgstr "当导航路径改变时发出通知。"

#~ msgid ""
#~ "Notifies when the player defined target, set with [method "
#~ "set_target_location], is reached."
#~ msgstr ""
#~ "当玩家定义的目标(用[method set_target_location]设置)到达时发出通知。"

#~ msgid ""
#~ "Notifies when the collision avoidance velocity is calculated. Emitted by "
#~ "[method set_velocity]."
#~ msgstr "当计算避碰速度时发出通知。由[method set_velocity]触发。"

#~ msgid "3D Agent used in navigation for collision avoidance."
#~ msgstr "用于导航避碰的 3D Agent。"

#~ msgid ""
#~ "3D Agent that is used in navigation to reach a location while avoiding "
#~ "static and dynamic obstacles. The dynamic obstacles are avoided using RVO "
#~ "collision avoidance. The agent needs navigation data to work correctly. "
#~ "This can be done by having the agent as a child of a [Navigation3D] node, "
#~ "or using [method set_navigation]. [NavigationAgent3D] is physics safe."
#~ msgstr ""
#~ "3D Agent,用于导航到达一个位置,同时避免静态和动态障碍。采用RVO避碰技术对"
#~ "动态障碍物进行避碰。代理需要导航数据才能正常工作。这可以通过将代理作为"
#~ "[Navigation3D]节点的子节点或使用[method set_navigation]来实现。"
#~ "[NavigationAgent3D]是物理安全的。"

#~ msgid ""
#~ "Returns the reachable final location 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 which index the agent is currently on in the navigation path's "
#~ "[PackedVector3Array]."
#~ msgstr "返回Agent当前在导航路径的[PackedVector3Array]中的索引。"

#~ msgid ""
#~ "Returns the [Navigation3D] node that the agent is using for its "
#~ "navigation system."
#~ msgstr "返回Agent用于其导航系统的[Navigation3D]节点。"

#~ msgid ""
#~ "Returns a [Vector3] in global coordinates, that can be moved to, making "
#~ "sure that there are no static objects in the way. If the agent does not "
#~ "have a navigation path, it will return the origin of the agent's parent."
#~ msgstr ""
#~ "返回一个可以到达的[Vector3]的全局坐标,并确保路径上没有静态物体。如果代理"
#~ "没有导航路径,它将返回代理的父节点的原点。"

#~ msgid ""
#~ "Returns the user defined [Vector3] after setting the target location."
#~ msgstr "在设置目标位置后返回用户定义的[Vector3]。"

#~ msgid ""
#~ "Sets the [Navigation3D] node used by the agent. Useful when you don't "
#~ "want to make the agent a child of a [Navigation3D] node."
#~ msgstr ""
#~ "设置Agent使用的[Navigation3D]节点。当你不想让Agent成为[Navigation3D]节点的"
#~ "子节点时,这很有用。"

#~ msgid "The agent height offset to match the navigation mesh height."
#~ msgstr "Agent高度偏移以匹配导航网格高度。"

#~ msgid ""
#~ "Ignores collisions on the Y axis. Must be true to move on a horizontal "
#~ "plane."
#~ msgstr "忽略Y轴上的碰撞。在水平面上移动必须是正确的。"

#~ msgid "2D Obstacle used in navigation for collision avoidance."
#~ msgstr "用于导航避碰的2D障碍物。"

#~ msgid ""
#~ "2D Obstacle used in navigation for collision avoidance. The obstacle "
#~ "needs navigation data to work correctly. This can be done by having the "
#~ "obstacle as a child of a [Navigation2D] node, or using [method "
#~ "set_navigation]. [NavigationObstacle2D] is physics safe."
#~ msgstr ""
#~ "用于导航避碰的2D障碍物。障碍物需要导航数据才能正常工作。这可以通过将障碍作"
#~ "为[Navigation2D]节点的子节点或使用[method set_navigation]来实现。"
#~ "[NavigationObstacle2D]是物理安全的。"

#~ msgid ""
#~ "Returns the [Navigation2D] node that the obstacle is using for its "
#~ "navigation system."
#~ msgstr "返回障碍物用于其导航系统的[Navigation2D]节点。"

#~ msgid ""
#~ "Sets the [Navigation2D] node used by the obstacle. Useful when you don't "
#~ "want to make the obstacle a child of a [Navigation2D] node."
#~ msgstr ""
#~ "设置障碍物使用的[Navigation2D]节点。当你不想让障碍物成为[Navigation2D]节点"
#~ "的子节点时,这很有用。"

#~ msgid "3D Obstacle used in navigation for collision avoidance."
#~ msgstr "用于导航的避碰3D障碍。"

#~ msgid ""
#~ "3D Obstacle used in navigation for collision avoidance. The obstacle "
#~ "needs navigation data to work correctly. This can be done by having the "
#~ "obstacle as a child of a [Navigation3D] node, or using [method "
#~ "set_navigation]. [NavigationObstacle3D] is physics safe."
#~ msgstr ""
#~ "用于导航的避碰3D障碍。障碍物需要导航数据才能正常工作。这可以通过将障碍作为"
#~ "[Navigation3D]节点的子节点来实现,或者使用[method set_navigation]。"
#~ "[NavigationObstacle3D]在物理上是安全的。"

#~ msgid ""
#~ "Returns the [Navigation3D] node that the obstacle is using for its "
#~ "navigation system."
#~ msgstr "返回障碍物用于其导航系统的[Navigation3D]节点。"

#~ msgid ""
#~ "Sets the [Navigation3D] node used by the obstacle. Useful when you don't "
#~ "want to make the obstacle a child of a [Navigation3D] node."
#~ msgstr ""
#~ "设置障碍物使用的[Navigation3D]节点。当你不想让障碍物成为[Navigation3D]节点"
#~ "的子节点时,这很有用。"

#~ msgid "A region of the navigation map."
#~ msgstr "导航地图上的一个区域。"

#~ msgid ""
#~ "A region of the navigation map. It tells the [Navigation3D] node what can "
#~ "be navigated and what cannot, based on the [NavigationMesh] resource. "
#~ "This should be a child of a [Navigation3D] node (even not a direct child)."
#~ msgstr ""
#~ "导航地图上的一个区域。它告诉[Navigation3D]节点什么可以导航,什么不能,基于"
#~ "[NavigationMesh]资源。这应该是一个[Navigation3D]节点的子节点(即使不是直接"
#~ "的子节点)。"

#~ msgid ""
#~ "Bakes the [NavigationMesh]. The baking is done in a separate thread "
#~ "because navigation baking is not a cheap operation. This can be done at "
#~ "runtime. When it is completed, it automatically sets the new "
#~ "[NavigationMesh]."
#~ msgstr ""
#~ "烘焙(NavigationMesh)。烘焙是在一个单独的线程中完成的,因为导航烘焙不是一个"
#~ "低开销的操作。这可以在运行时完成。当它完成时,它会自动设置新的"
#~ "[NavigationMesh]。"

#~ msgid "Determines if the [NavigationRegion3D] is enabled or disabled."
#~ msgstr "确定[NavigationRegion3D]是启用还是禁用。"

#~ msgid "Notifies when the navigation mesh bake operation is completed."
#~ msgstr "当导航网格烘焙操作完成时发送该通知。"

#~ msgid "Notifies when the [NavigationMesh] has changed."
#~ msgstr "当[NavigationMesh]发生变化时发送通知。"

#~ msgid "Server interface for low-level 2D navigation access"
#~ msgstr "用于低级2D导航访问的服务器接口"

#~ msgid ""
#~ "NavigationServer2D is the server responsible for all 2D navigation. It "
#~ "creates the agents, maps, and regions for navigation to work as expected. "
#~ "This 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是负责所有2D导航的服务器。它创建了用于导航的代理、地图和"
#~ "区域,以便按照预期工作。这将跟踪任何调用并在同步阶段执行它们。这意味着您可"
#~ "以使用任何线程请求对映射的任何更改,而无需担心。"

#~ msgid "Creates the agent."
#~ msgstr "创建Agint。"

#~ msgid "Returns true if the map got changed the previous frame."
#~ msgstr "如果地图在前一帧中被改变,则返回true。"

#~ msgid "Callback called at the end of the RVO process."
#~ msgstr "在RVO进程结束时调用回调函数。"

#~ msgid "Puts the agent in the map."
#~ msgstr "把Agent放到地图上。"

#~ msgid ""
#~ "Sets the maximum number of other agents the agent takes into account in "
#~ "the navigation. The larger this number, the longer the running time of "
#~ "the simulation. If the number is too low, the simulation will not be safe."
#~ msgstr ""
#~ "设置该Agent在导航中考虑的其他代理的最大数量。这个数字越大,模拟的运行时间"
#~ "就越长。如果数值过低,模拟就不安全。"

#~ msgid "Sets the maximum speed of the agent. Must be positive."
#~ msgstr "设置代理的最大速度。必须是正的。"

#~ msgid ""
#~ "Sets the maximum distance to other agents this agent takes into account "
#~ "in the navigation. The larger this number, the longer the running time of "
#~ "the simulation. If the number is too low, the simulation will not be safe."
#~ msgstr ""
#~ "设置与该代理在导航中考虑的其他代理的最大距离。这个数字越大,模拟的运行时间"
#~ "就越长。如果数值过低,模拟就不安全。"

#~ msgid "Sets the position of the agent in world space."
#~ msgstr "设置代理在世界空间中的位置。"

#~ msgid "Sets the radius of the agent."
#~ msgstr "设置代理的半径。"

#~ msgid "Sets the new target velocity."
#~ 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. Must be positive."
#~ msgstr ""
#~ "仿真计算出的该代理人的速度相对于其他代理人来说是安全的最小时间量。这个数字"
#~ "越大,该代理人越早对其他代理人的存在作出反应,但该代理人在选择其速度方面的"
#~ "自由度越小。必须是正数。"

#~ msgid "Sets the current velocity of the agent."
#~ msgstr "设置代理的当前速度。"

#~ msgid "Destroy the RID"
#~ msgstr "销毁RID"

#~ msgid "Create a new map."
#~ msgstr "创建新地图。"

#~ msgid "Returns the map cell size."
#~ msgstr "返回地图单元的大小。"

#~ msgid ""
#~ "Returns the owner region RID for the point returned by [method "
#~ "map_get_closest_point]."
#~ msgstr "返回由[方法map_get_closest_point]返回的点的所有者区域RID。"

#~ msgid ""
#~ "Returns the edge connection margin of the map. The edge connection margin "
#~ "is a distance used to connect two regions."
#~ msgstr "返回地图的边缘连接边距。边缘连接边距是用于连接两个区域的距离。"

#~ msgid ""
#~ "Returns the navigation path to reach the destination from the origin, "
#~ "while avoiding static obstacles."
#~ msgstr "返回从原点到达目的地的导航路径,同时避开静态障碍。"

#~ msgid "Returns true if the map is active."
#~ msgstr "如果地图处于活动状态,返回true。"

#~ msgid "Sets the map active."
#~ msgstr "将地图设置为active。"

#~ msgid "Set the map cell size used to weld the navigation mesh polygons."
#~ msgstr "设置用于焊接导航网格多边形的地图单元尺寸。"

#~ msgid ""
#~ "Set the map edge connection margin used to weld the compatible region "
#~ "edges."
#~ msgstr "设置用于焊接兼容区域边缘的地图边缘连接余量。"

#~ msgid "Creates a new region."
#~ msgstr "创建一个新区域。"

#~ msgid "Sets the map for the region."
#~ msgstr "设置该区域的地图。"

#~ msgid "Sets the navigation mesh for the region."
#~ msgstr "设置区域的导航网格。"

#~ msgid "Sets the global transformation for the region."
#~ msgstr "设置该区域的全局转换。"

#~ msgid "Server interface for low-level 3D navigation access"
#~ msgstr "服务器接口,用于低层次的3D 导航访问"

#~ msgid ""
#~ "NavigationServer3D is the server responsible for all 3D navigation. It "
#~ "creates the agents, maps, and regions for navigation to work as expected. "
#~ "This 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 是负责所有3D 导航的服务器。它为导航创建代理、地图和区"
#~ "域,以便按预期的方式工作。这可以跟踪任何呼叫,并在同步阶段执行它们。这意味"
#~ "着您可以使用任何线程请求对映射的任何更改,而无需担心。"

#~ msgid ""
#~ "Returns the point closest to the provided [code]point[/code] on the "
#~ "navigation mesh surface."
#~ msgstr "返回导航网格图面上最接近提供的[code]point[/code]的点。"

#~ msgid ""
#~ "Returns the normal for the point returned by [method "
#~ "map_get_closest_point]."
#~ msgstr "返回[ method map _ get _ closest _ point ]返回的点的法线值。"

#~ msgid "Returns the edge connection margin of the map."
#~ msgstr "返回地图的边缘连接边距。"

#~ msgid ""
#~ "Returns the navigation path to reach the destination from the origin."
#~ msgstr "返回从原点到达目的地的导航路径。"

#~ msgid "Returns the map's up direction."
#~ msgstr "返回地图的向上方向。"

#~ msgid ""
#~ "Set the map edge connection margein used to weld the compatible region "
#~ "edges."
#~ msgstr "设置用于焊接兼容区域边缘的映射边缘连接边缘。"

#~ msgid "Sets the map up direction."
#~ msgstr "设置地图的向上方向。"

#~ msgid ""
#~ "Process the collision avoidance agents.\n"
#~ "The result of this process is needed by the physics server, so this must "
#~ "be called in the main thread.\n"
#~ "Note: This function is not thread safe."
#~ msgstr ""
#~ "处理避免碰撞Agent。\n"
#~ "物理服务器需要该进程的结果,因此必须在主线程中调用该进程。\n"
#~ "注意: 此函数不是线程安全的。"

#~ msgid "Bakes the navigation mesh."
#~ msgstr "烘焙导航网格。"

#~ msgid "Control activation of this server."
#~ msgstr "控制该服务器的激活。"

#~ msgid ""
#~ "A PacketPeer implementation that should be passed to [member SceneTree."
#~ "network_peer] after being initialized as either a client or server. "
#~ "Events can then be handled by connecting to [SceneTree] signals."
#~ msgstr ""
#~ "一个PacketPeer的实现,在被初始化为客户端或服务器后,应该被传递给[成员"
#~ "SceneTree.network_peer]。然后可以通过连接到[SceneTree]信号来处理事件。"

#~ msgid ""
#~ "The compression method used for network packets. These have different "
#~ "tradeoffs of compression speed versus bandwidth, you may need to test "
#~ "which one works best for your use case if you use compression at all."
#~ msgstr ""
#~ "用于网络数据包的压缩方法。它们在压缩速度和带宽上有不同的权衡,如果您使用压"
#~ "缩的话,您可能需要测试哪一个最适合您的用例。"

#~ msgid "ENet's built-in range encoding."
#~ msgstr "ENet的内置范围编码。"

#~ msgid ""
#~ "Manages the connection to network peers. Assigns unique IDs to each "
#~ "client connected to the server."
#~ msgstr "管理到网络对等体的连接。为连接到服务器的每个客户端分配唯一的id。"

#~ msgid "Doesn't do anything at the time of writing."
#~ msgstr "在写的时候什么也不做。"

#~ msgid "The height of the 9-slice's left column."
#~ msgstr "9-slice的左列的高度。"

#~ msgid "The height of the 9-slice's right column."
#~ msgstr "9-slice的右列的高度。"

#~ msgid "The height of the 9-slice's top row."
#~ msgstr "9-slice的顶行的高度。"

#~ msgid ""
#~ "Finds the first parent of the current node whose name matches [code]mask[/"
#~ "code] as in [method String.match] (i.e. case-sensitive, but [code]\"*\"[/"
#~ "code] matches zero or more characters and [code]\"?\"[/code] matches any "
#~ "single character except [code]\".\"[/code]).\n"
#~ "[b]Note:[/b] It does not match against the full path, just against "
#~ "individual node names."
#~ msgstr ""
#~ "查找当前节点的第一个父节点,其名称与[method String.match]中的[code]mask[/"
#~ "code]相匹配(即区分大小写,但[code]\"*\"[/code]匹配零或多个字符,[code]\"?"
#~ "\"[/code]匹配任何单一字符,除了[code]\".\"[/code])。\n"
#~ "[b]注意:[/b]它不与全路径匹配,只与单个节点名称匹配。"

#~ msgid "Returns an array listing the groups that the node is a member of."
#~ msgstr "返回一个数组,该数组列出节点所属的组。"

#~ msgid ""
#~ "When a scene is instanced from a file, its topmost node contains the "
#~ "filename from which it was loaded."
#~ msgstr ""
#~ "当一个场景从一个文件中实例化时,它的最上面的节点包含加载它的文件名。"

#~ msgid ""
#~ "Notification received from the OS when the node's parent [Window] is "
#~ "focused. This may be a change of focus between two windows of the same "
#~ "engine instance, or from the OS desktop or a third-party application to a "
#~ "window of the game (in which case [constant "
#~ "NOTIFICATION_APPLICATION_FOCUS_IN] is also emitted)."
#~ msgstr ""
#~ "当节点的父[Window]被聚焦时,从操作系统收到的通知。这可能是同一引擎实例的两"
#~ "个窗口之间的焦点变化,或者是从操作系统桌面或第三方应用程序到游戏窗口的焦点"
#~ "变化(在这种情况下,[constant NOTIFICATION_APPLICATION_FOCUS_IN]也被发射出"
#~ "来)。"

#~ msgid ""
#~ "Notification received from the OS when the node's parent [Window] is "
#~ "defocused. This may be a change of focus between two windows of the same "
#~ "engine instance, or from a window of the game to the OS desktop or a "
#~ "third-party application (in which case [constant "
#~ "NOTIFICATION_APPLICATION_FOCUS_OUT] is also emitted)."
#~ msgstr ""
#~ "当节点的父级[Window]被取消焦点时,从操作系统收到的通知。这可能是同一引擎实"
#~ "例的两个窗口之间的焦点变化,或者是从游戏的一个窗口到操作系统桌面或第三方应"
#~ "用程序的焦点变化(在这种情况下,[constant "
#~ "NOTIFICATION_APPLICATION_FOCUS_OUT]也被发射出来)。"

#~ msgid ""
#~ "Returns the angle between the node and the [code]point[/code] in radians."
#~ msgstr "返回节点与[code]point[/code]之间的角度,单位为弧度。"

#~ msgid ""
#~ "Whether the texture can be tiled without visible seams or not. Seamless "
#~ "textures take longer to generate."
#~ msgstr ""
#~ "纹理是否可以在没有可见接缝的情况下进行铺设。无缝纹理需要更长的时间来生成。"

#~ msgid ""
#~ "Deletes the object from memory. Any pre-existing reference to the freed "
#~ "object will become invalid, e.g. [code]is_instance_valid(object)[/code] "
#~ "will return [code]false[/code]."
#~ msgstr ""
#~ "从内存中删除对象。对被释放对象的任何预先存在的引用都将无效,例如"
#~ "[code]is_instance_valid(object)[/code]将返回[code]false[/code]。"

#~ msgid "Returns the object's class as a [String]."
#~ msgstr "返回对象的类型名[String]。"

#~ msgid ""
#~ "Returns [code]true[/code] if the object inherits from the given "
#~ "[code]class[/code]."
#~ msgstr "如果该对象继承于给定的[code]class[/code],则返回[code]true[/code]。"

#~ msgid ""
#~ "Adds or changes a given entry in the object's metadata. Metadata are "
#~ "serialized, and can take any [Variant] value."
#~ msgstr ""
#~ "在对象的元数据中添加或更改给定的条目。元数据是序列化的,可以接受任何"
#~ "[Variant]值。"

#~ msgid ""
#~ "An Omnidirectional light is a type of [Light3D] that emits light in all "
#~ "directions. The light is attenuated by distance and this attenuation can "
#~ "be configured by changing its energy, radius, and attenuation parameters."
#~ msgstr ""
#~ "全向光是一种[Light3D]的类型,它向所有方向发射光。光线会因距离而衰减,这种"
#~ "衰减可以通过改变其能量、半径和衰减参数来配置。"

#~ msgid ""
#~ "Generate a noise image with the requested [code]width[/code] and "
#~ "[code]height[/code], based on the current noise parameters."
#~ msgstr ""
#~ "根据当前的噪声参数,生成一个具有要求的[code]width[/code]和[code]height[/"
#~ "code]的噪声图像。"

#~ msgid ""
#~ "Delay execution of the current thread by [code]msec[/code] milliseconds."
#~ msgstr "将当前线程的执行延迟[code]msec[/code]毫秒。"

#~ msgid ""
#~ "Delay execution of the current thread by [code]usec[/code] microseconds."
#~ msgstr "延迟执行当前线程的[code]usec[/code]微秒。"

#~ msgid "Returns an environment variable."
#~ msgstr "返回一个环境变量。"

#~ msgid "Returns the host OS locale."
#~ msgstr "返回主机操作系统区域设置。"

#~ msgid ""
#~ "Returns a string that is unique to the device.\n"
#~ "[b]Note:[/b] Returns an empty string on HTML5 and UWP, as this method "
#~ "isn't implemented on those platforms yet."
#~ msgstr ""
#~ "返回一个对该设备来说唯一的字符串。\n"
#~ "[b]注意:[/b] 在HTML5和UWP上返回一个空字符串,因为这个方法在这些平台上还没"
#~ "有实现。"

#~ msgid "Returns the current UNIX epoch timestamp."
#~ msgstr "返回当前 UNIX epoch 的时间戳。"

#~ msgid "Returns [code]true[/code] if an environment variable exists."
#~ msgstr "如果存在环境变量,则返回[code]true[/code]。"

#~ msgid "The Vulkan rendering backend."
#~ msgstr "Vulkan渲染后端。"

#~ msgid "Returns [code]true[/code] if the array contains [code]value[/code]."
#~ msgstr "如果数组中存在值 [code]value[/code],则返回 [code]true[/code]。"

#~ msgid "Sorts the elements of the array in ascending order."
#~ msgstr "将数组的元素按升序排序。"

#~ msgid "A packed [Array] of 32-bit floating-point values."
#~ msgstr "32位浮点值的压缩[Array]。"

#~ msgid ""
#~ "An [Array] specifically designed to hold 32-bit floating-point values. "
#~ "Packs data tightly, so it saves memory for large array sizes.\n"
#~ "[b]Note:[/b] This type is passed by value and not by reference.\n"
#~ "If you need to pack 64-bit floats tightly, see [PackedFloat64Array]."
#~ msgstr ""
#~ "一个专门用于保存32位浮点值的[Array]。紧密地包装数据,当数组尺寸较大时,这"
#~ "将节省内存。\n"
#~ "[b]注意:[/b] 这种类型是通过值传递的,而不是通过引用。\n"
#~ "如果你需要紧紧地打包64位浮点,请参阅[PackedFloat64Array]。"

#~ msgid ""
#~ "Constructs a new [PackedFloat32Array]. Optionally, you can pass in a "
#~ "generic [Array] that will be converted."
#~ msgstr ""
#~ "构建一个新的[PackedFloat32Array]。你可以选择传入一个通用的[Array],它将被"
#~ "转换。"

#~ msgid "Appends a [PackedFloat32Array] at the end of this array."
#~ msgstr "在这个数组的末端添加一个[PackedFloat32Array]。"

#~ msgid "A packed [Array] of 64-bit floating-point values."
#~ msgstr "一个由64位浮点值组成的压缩[Array]。"

#~ msgid ""
#~ "An [Array] specifically designed to hold 64-bit floating-point values. "
#~ "Packs data tightly, so it saves memory for large array sizes.\n"
#~ "[b]Note:[/b] This type is passed by value and not by reference.\n"
#~ "If you only need to pack 32-bit floats tightly, see [PackedFloat32Array] "
#~ "for a more memory-friendly alternative."
#~ msgstr ""
#~ "一个专门用来保存64位浮点值的[阵列]。通过紧密地包装数据,当数组尺寸较大时,"
#~ "这将节省一定内存。\n"
#~ "[b]注意:[/b] 这种类型是通过值传递的,而不是通过引用。\n"
#~ "如果你只需要紧紧地打包32位浮点数,请看[PackedFloat32Array],这是一个对内存"
#~ "更友好的选择。"

#~ msgid ""
#~ "Constructs a new [PackedFloat64Array]. Optionally, you can pass in a "
#~ "generic [Array] that will be converted."
#~ msgstr ""
#~ "构建一个新的[PackedFloat64Array]。你可以选择传入一个通用的[Array],它将被"
#~ "转换。"

#~ msgid "Appends a [PackedFloat64Array] at the end of this array."
#~ msgstr "在这个数组的末端添加一个[PackedFloat64Array]。"

#~ msgid "A packed [Array] of 64-bit integers."
#~ msgstr "一个由64位整数组成的压缩[Array]。"

#~ msgid ""
#~ "An [Array] specifically designed to hold 64-bit integer values. Packs "
#~ "data tightly, so it saves memory for large array sizes.\n"
#~ "[b]Note:[/b] This type is passed by value and not by reference.\n"
#~ "[b]Note:[/b] This type stores signed 64-bit integers, which means it can "
#~ "take values in the interval [code][-2^63, 2^63 - 1][/code], i.e. [code]"
#~ "[-9223372036854775808, 9223372036854775807][/code]. Exceeding those "
#~ "bounds will wrap around. If you only need to pack 32-bit integers "
#~ "tightly, see [PackedInt32Array] for a more memory-friendly alternative."
#~ msgstr ""
#~ "一个专门用于保存64位整数值的[阵列]。通过紧密地包装数据,当数组尺寸较大时,"
#~ "这将节省一定内存。\n"
#~ "[b]注意:[/b] 这种类型是通过值传递的,而不是通过引用。\n"
#~ "[b]注意:[/b] 该类型存储有符号的64位整数,这意味着它可以在[code][-2^63, "
#~ "2^63 - 1][/code]的区间内取值,即[code][-9223372036854775808, "
#~ "9223372036854775807][/code]。超过这些界限将被包起来。如果你只需要紧紧地打"
#~ "包32位整数,请参阅[PackedInt32Array],这是一个对内存更友好的选择。"

#~ msgid ""
#~ "Constructs a new [PackedInt64Array]. Optionally, you can pass in a "
#~ "generic [Array] that will be converted."
#~ msgstr ""
#~ "构建一个新的[PackedInt64Array]。你可以选择传入一个通用的[Array],它将被转"
#~ "换。"

#~ msgid "Appends a [PackedInt64Array] at the end of this array."
#~ msgstr "在此数组末尾追加一个[PackedInt64Array]。"

#~ msgid ""
#~ "This class represents a DTLS peer connection. It can be used to connect "
#~ "to a DTLS server, and is returned by [method DTLSServer.take_connection]."
#~ msgstr ""
#~ "此类表示DTLS对等连接。它可用于连接到DTLS服务器,并由[method DTLSServer."
#~ "take_connection]返回。"

#~ msgid ""
#~ "Waits for a packet to arrive on the listening port. See [method listen]."
#~ msgstr "等待一个数据包到达监听端口。参见 [method listen]。"

#~ msgid "Point sampler for a [Path3D]."
#~ msgstr "[Path3D]的点取样器。"

#~ msgid ""
#~ "This node takes its parent [Path3D], and returns the coordinates of a "
#~ "point within it, given a distance from the first vertex.\n"
#~ "It is useful for making other nodes follow a path, without coding the "
#~ "movement pattern. For that, the nodes must be children of this node. The "
#~ "descendant nodes will then move accordingly when setting an offset in "
#~ "this node."
#~ msgstr ""
#~ "这个节点接受它的父节点[Path3D] ,并返回其中一个点的坐标,给定距离第一个顶"
#~ "点的距离。\n"
#~ "它有助于使其他节点遵循一条路径,而无需编写运动模式的代码。为此,节点必须是"
#~ "此节点的子节点。然后,当在此节点中设置偏移量时,子代节点将相应移动。"

#~ msgid ""
#~ "Adds a custom monitor with name same as id. You can specify the category "
#~ "of monitor using '/' in id. If there are more than one '/' then default "
#~ "category is used. Default category is \"Custom\".\n"
#~ "[codeblock]\n"
#~ "Performance.add_custom_monitor(\"MyCategory/MyMonitor\", some_callable) # "
#~ "Adds monitor with name \"MyName\" to category \"MyCategory\"\n"
#~ "Performance.add_custom_monitor(\"MyMonitor\", some_callable) # Adds "
#~ "monitor with name \"MyName\" to category \"Custom\"\n"
#~ "# Note: \"MyCategory/MyMonitor\" and \"MyMonitor\" have same name but "
#~ "different ids so above code is valid\n"
#~ "Performance.add_custom_monitor(\"Custom/MyMonitor\", some_callable) # "
#~ "Adds monitor with name \"MyName\" to category \"Custom\"\n"
#~ "# Note: \"MyMonitor\" and \"Custom/MyMonitor\" have same name and same "
#~ "category but different ids so above code is valid\n"
#~ "Performance.add_custom_monitor(\"MyCategoryOne/MyCategoryTwo/MyMonitor\", "
#~ "some_callable) # Adds monitor with name \"MyCategoryOne/MyCategoryTwo/"
#~ "MyMonitor\" to category \"Custom\"\n"
#~ "[/codeblock]\n"
#~ "The debugger calls the callable to get the value of custom monitor. The "
#~ "callable must return a number.\n"
#~ "Callables are called with arguments supplied in argument array.\n"
#~ "[b]Note:[/b] It throws an error if given id is already present."
#~ msgstr ""
#~ "添加一个名称与id相同的自定义监视器。你可以用id中的'/'指定监视器的类别。如"
#~ "果有一个以上的'/',则使用默认类别。默认的类别是 \"Custom\"。\n"
#~ "[codeblock]\n"
#~ "Performance.add_custom_monitor(\"MyCategory/MyMonitor\", some_callable) # "
#~ "Adds monitor with name \"MyName\" to category \"MyCategory\"\n"
#~ "Performance.add_custom_monitor(\"MyMonitor\", some_callable) # Adds "
#~ "monitor with name \"MyName\" to category \"Custom\"\n"
#~ "# Note: \"MyCategory/MyMonitor\" and \"MyMonitor\" have same name but "
#~ "different ids so above code is valid\n"
#~ "Performance.add_custom_monitor(\"Custom/MyMonitor\", some_callable) # "
#~ "Adds monitor with name \"MyName\" to category \"Custom\"\n"
#~ "# Note: \"MyMonitor\" and \"Custom/MyMonitor\" have same name and same "
#~ "category but different ids so above code is valid\n"
#~ "Performance.add_custom_monitor(\"MyCategoryOne/MyCategoryTwo/MyMonitor\", "
#~ "some_callable) # Adds monitor with name \"MyCategoryOne/MyCategoryTwo/"
#~ "MyMonitor\" to category \"Custom\"\n"
#~ "[/codeblock]\n"
#~ "调试器调用可调用程序以获得自定义监视器的值。该可调用程序必须返回一个数"
#~ "字。\n"
#~ "调用可调用程序的参数是在参数数组中提供的。\n"
#~ "[b]注意:[/b] 如果给定的id已经存在,它会抛出一个错误。"

#~ msgid ""
#~ "Returns the value of custom monitor with given id. The callable is called "
#~ "to get the value of custom monitor.\n"
#~ "[b]Note:[/b] It throws an error if the given id is absent."
#~ msgstr ""
#~ "返回带有给定id的自定义监视器的值。调用可调用对象以获取自定义监视器的值。\n"
#~ "[b]注意:[/b]如果给定id不存在,则抛出错误。"

#~ msgid "Returns the names of active custom monitors in an array."
#~ msgstr "在数组中返回活动自定义监控器的名称。"

#~ msgid "Returns the last tick in which custom monitor was added/removed."
#~ msgstr "返回添加/删除自定义监视器的最后一个标记。"

#~ msgid ""
#~ "Returns true if custom monitor with the given id is present otherwise "
#~ "returns false."
#~ msgstr "如果存在给定id的自定义监视器,则返回true,否则返回false。"

#~ msgid ""
#~ "Removes the custom monitor with given id.\n"
#~ "[b]Note:[/b] It throws an error if the given id is already absent."
#~ msgstr ""
#~ "移除指定id的自定义监视器。\n"
#~ "[b]注意:[/b]如果给定的id已经不在,它会抛出一个错误。"

#~ msgid "Damps the body's rotation if greater than [code]0[/code]."
#~ msgstr "如果大于[code]0[/code],则会抑制身体的旋转。"

#~ msgid "Sets the body's transform."
#~ msgstr "设置实体的变换。"

#~ msgid ""
#~ "If [code]true[/code], the body is deactivated when there is no movement, "
#~ "so it will not take part in the simulation until it is awaken by an "
#~ "external force."
#~ msgstr ""
#~ "如果[code]true[/code],实体在没有运动时会被禁用,因此在被外力唤醒之前,它"
#~ "不会参与模拟。"

#~ msgid ""
#~ "The body's friction, from [code]0[/code] (frictionless) to [code]1[/code] "
#~ "(max friction)."
#~ msgstr ""
#~ "实体的摩擦力,从[code]0[/code](无摩擦)到[code]1[/code](最大摩擦力)。"

#~ msgid ""
#~ "This is multiplied by the global 3D gravity setting found in [b]Project > "
#~ "Project Settings > Physics > 3d[/b] to produce the body's gravity. For "
#~ "example, a value of 1 will be normal gravity, 2 will apply double "
#~ "gravity, and 0.5 will apply half gravity to this object."
#~ msgstr ""
#~ "该值乘以[b]项目>项目设置>物理>3D[/b]中的全局3D重力设置,以生成实体的重力。"
#~ "例如,值1将为正常重力,值2将对该对象应用双重重力,值0.5将对此对象应用半重"
#~ "力。"

#~ msgid "Sets the joint's transform."
#~ msgstr "设置关节的变换。"

#~ msgid "Sets the joint's rotation in radians."
#~ msgstr "以弧度为单位设置关节的旋转。"

#~ msgid "Sets the joint's rotation in degrees."
#~ msgstr "以度为单位设置关节的旋转。"

#~ msgid "Damps the body's movement if greater than [code]0[/code]."
#~ msgstr "如果大于[code]0[/code],则会抑制实体的运动。"

#~ msgid "[Sky] [Material] used for a physically based sky."
#~ msgstr "[Sky][Material]用于基于物理的天空。"

#~ msgid ""
#~ "The [PhysicalSkyMaterial] uses the Preetham analytic daylight model to "
#~ "draw a sky based on physical properties. This results in a substantially "
#~ "more realistic sky than the [ProceduralSkyMaterial], but it is slightly "
#~ "slower and less flexible.\n"
#~ "The [PhysicalSkyMaterial] only supports one sun. The color, energy, and "
#~ "direction of the sun are taken from the first [DirectionalLight3D] in the "
#~ "scene tree.\n"
#~ "As it is based on a daylight model, the sky fades to black as the sunset "
#~ "ends. If you want a full day/night cycle, you will have to add a night "
#~ "sky by converting this to a [ShaderMaterial] and adding a night sky "
#~ "directly into the resulting shader."
#~ msgstr ""
#~ "[PhysicalSkyMaterial]使用Preetham分析日光模型根据物理特性绘制天空。这使得"
#~ "天空比[ProceduralSkyMaterial]更加逼真,但速度稍慢,灵活性稍差。\n"
#~ "[PhysicalSkyMaterial]仅支持一个太阳。太阳的颜色、能量和方向取自场景树中的"
#~ "第一个[DirectionalLight3D]。\n"
#~ "由于它基于日光模型,日落结束时天空逐渐变暗。如果需要完整的昼夜循环,则必须"
#~ "通过将其转换为[ShaderMaterial]并将夜空直接添加到结果着色器中来添加夜空。"

#~ msgid ""
#~ "Sets the amount of dithering to use. Dithering helps reduce banding that "
#~ "appears from the smooth changes in color in the sky. Use the lowest value "
#~ "possible, higher amounts may add fuzziness to the sky."
#~ msgstr ""
#~ "设置要使用的抖动量。抖动有助于减少因天空中颜色的平滑变化而出现的带状。使用"
#~ "尽可能低的值,较高的值可能会增加天空的模糊性。"

#~ msgid ""
#~ "Sets the exposure of the sky. Higher exposure values make the entire sky "
#~ "brighter."
#~ msgstr "设置天空的曝光。曝光值越高,整个天空越亮。"

#~ msgid ""
#~ "Modulates the [Color] on the bottom half of the sky to represent the "
#~ "ground."
#~ msgstr "调制天空下半部分的[Color]以表示地面。"

#~ msgid ""
#~ "Controls the strength of mie scattering for the sky. Mie scattering "
#~ "results from light colliding with larger particles (like water). On "
#~ "earth, mie scattering results in a whiteish color around the sun and "
#~ "horizon."
#~ msgstr ""
#~ "控制天空的mie散射强度。Mie散射是光与较大颗粒(如水)碰撞的结果。在地球上,"
#~ "米氏散射导致太阳和地平线周围呈现白色。"

#~ msgid ""
#~ "Controls the [Color] of the mie scattering effect. While not physically "
#~ "accurate, this allows for the creation of alien looking planets."
#~ msgstr ""
#~ "控制mie散射效果的[Color]。虽然在物理上并不精确,但这可以用来创造类似地外行"
#~ "星的效果。"

#~ msgid ""
#~ "Controls the direction of the mie scattering. A value of [code]1[/code] "
#~ "means that when light hits a particle it passing through straight "
#~ "forward. A value of [code]-1[/code] means that all light is scatter "
#~ "backwards."
#~ msgstr ""
#~ "控制mie散射的方向。[code]1[/code]的值意味着,当光线击中粒子时,它将直接通"
#~ "过。[code]-1[/code]的值表示所有光线都向后散射。"

#~ msgid ""
#~ "[Texture2D] for the night sky. This is added to the sky, so if it is "
#~ "bright enough, it may be visible during the day."
#~ msgstr ""
#~ "[Texture2D]夜空。这是添加到天空中的,因此如果它足够明亮,它可能在白天可"
#~ "见。"

#~ msgid ""
#~ "Controls the strength of the rayleigh scattering. Rayleigh scattering "
#~ "results from light colliding with small particles. It is responsible for "
#~ "the blue color of the sky."
#~ msgstr ""
#~ "控制瑞利散射的强度。瑞利散射是光与小颗粒碰撞的结果。它是天空蓝色的原因。"

#~ msgid ""
#~ "Controls the [Color] of the rayleigh scattering. While not physically "
#~ "accurate, this allows for the creation of alien looking planets. For "
#~ "example, setting this to a red [Color] results in a mars looking "
#~ "atmosphere with a corresponding blue sunset."
#~ msgstr ""
#~ "控制瑞利散射的[Color]。虽然在物理上并不精确,但这可以用来创造类似地外行星"
#~ "的效果。例如,将其设置为红色[Color]将导致具有相应蓝色日落的火星大气。"

#~ msgid ""
#~ "Sets the size of the sun disk. Default value is based on Sol's perceived "
#~ "size from Earth."
#~ msgstr "设定太阳圆盘的大小。默认值是基于Sol从地球上感知到的大小。"

#~ msgid ""
#~ "Sets the thickness of the atmosphere. High turbidity creates a foggy "
#~ "looking atmosphere, while a low turbidity results in a clearer atmosphere."
#~ msgstr ""
#~ "设置大气的厚度。高浑浊度创建一个雾蒙蒙的大气,而低浑浊度导致一个更清晰的大"
#~ "气。"

#~ msgid ""
#~ "Sets individual bits on the [member collision_layer] bitmask. Use this if "
#~ "you only need to change one layer's value."
#~ msgstr ""
#~ "在[member collision_layer]位掩码上设置单个位。如果你只需要改变一个图层的"
#~ "值,可以使用这个。"

#~ msgid ""
#~ "Sets individual bits on the [member collision_mask] bitmask. Use this if "
#~ "you only need to change one layer's value."
#~ msgstr ""
#~ "在[member collision_mask]位掩码上设置单个位。如果你只需要改变一个图层的"
#~ "值,可以使用这个。"

#~ msgid ""
#~ "The physics layers this area is in.\n"
#~ "Collidable objects can exist in any of 32 different layers. These layers "
#~ "work like a tagging system, and are not visual. A collidable can use "
#~ "these layers to select with which objects it can collide, using the "
#~ "[member collision_mask] property.\n"
#~ "A contact is detected if object A is in any of the layers that object B "
#~ "scans, or object B is in any layer scanned by object A."
#~ msgstr ""
#~ "这个区域所处的物理层。\n"
#~ "可碰撞对象可以存在于32个不同的层中的任何一个。这些层就像标签系统一样工作,"
#~ "并且不是可视化的。一个可碰撞的可以使用这些层来选择它可以碰撞的对象,使用"
#~ "[member collision_mask]属性。\n"
#~ "如果物体A在物体B扫描的任一层中,或者物体B在物体A扫描的任一层中,则检测到接"
#~ "触。"

#~ msgid "The physics layers this area scans for collisions."
#~ msgstr "该区域的物理层扫描碰撞。"

#~ msgid "Direct access object to a physics body in the [PhysicsServer3D]."
#~ msgstr "直接访问对象到[PhysicsServer3D]中的物理体。"

#~ msgid ""
#~ "Provides direct access to a physics body in the [PhysicsServer3D], "
#~ "allowing safe changes to physics properties. This object is passed via "
#~ "the direct state callback of rigid/character bodies, and is intended for "
#~ "changing the direct state of that body. See [method RigidBody3D."
#~ "_integrate_forces]."
#~ msgstr ""
#~ "提供对[PhysicsServer3D]中的物理体的直接访问,允许安全地改变物理属性。这个"
#~ "对象是通过刚性/字符体的直接状态回调传递的,目的是为了改变该体的直接状态。"
#~ "参见[method RigidBody3D._integrate_forces]。"

#~ msgid ""
#~ "Returns the number of contacts this body has with other bodies.\n"
#~ "[b]Note:[/b] By default, this returns 0 unless bodies are configured to "
#~ "monitor contacts. See [member RigidBody3D.contact_monitor]."
#~ msgstr ""
#~ "返回此物体与其他物体的接触数。\n"
#~ "[b]注意:[/b]默认情况下返回 0,除非body被设为监控接触数。[member "
#~ "RigidBody3D.contact_monitor。"

#~ msgid ""
#~ "Checks how far the shape can travel toward a point. If the shape can not "
#~ "move, the array will be empty.\n"
#~ "[b]Note:[/b] Both the shape and the motion are supplied through a "
#~ "[PhysicsShapeQueryParameters2D] object. The method will return an array "
#~ "with two floats between 0 and 1, both representing a fraction of "
#~ "[code]motion[/code]. The first is how far the shape can move without "
#~ "triggering a collision, and the second is the point at which a collision "
#~ "will occur. If no collision is detected, the returned array will be [code]"
#~ "[1, 1][/code]."
#~ msgstr ""
#~ "检查形状能向某一点移动多远。如果形状不能移动,数组将为空。\n"
#~ "[b]注意:[/b]形状和运动都是通过[PhysicsShapeQueryParameters2D]对象提供的。"
#~ "该方法将返回一个包含0到1之间的两个浮点数的数组,这两个浮点数都代表"
#~ "[code]motion[/code]的一部分。第一个是形状在不触发碰撞的情况下能移动多远,"
#~ "第二个是碰撞发生的点。如果没有检测到碰撞,返回的数组将是[code][1,1][/"
#~ "code]。"

#~ msgid "Direct access object to a space in the [PhysicsServer3D]."
#~ msgstr "直接访问[PhysicsServer3D]中的一个空间。"

#~ msgid ""
#~ "Direct access object to a space in the [PhysicsServer3D]. It's used "
#~ "mainly to do queries against objects and areas residing in a given space."
#~ msgstr ""
#~ "直接访问[PhysicsServer3D]中的一个空间。它主要用于对给定空间中的对象和区域"
#~ "进行查询。"

#~ msgid ""
#~ "Checks whether the shape can travel to a point. The method will return an "
#~ "array with two floats between 0 and 1, both representing a fraction of "
#~ "[code]motion[/code]. The first is how far the shape can move without "
#~ "triggering a collision, and the second is the point at which a collision "
#~ "will occur. If no collision is detected, the returned array will be [code]"
#~ "[1, 1][/code].\n"
#~ "If the shape can not move, the returned array will be [code][0, 0][/code] "
#~ "under Bullet, and empty under GodotPhysics3D."
#~ msgstr ""
#~ "检查形状是否可以移动到一个点。该方法将返回一个数组,其中有两个介于0和1之间"
#~ "的浮点数,都代表[code]motion[/code]的一个分数。第一个是形状可以移动多远而"
#~ "不触发碰撞,第二个是将发生碰撞的点。如果没有检测到碰撞,返回的数组将是"
#~ "[code][1, 1][/code]。\n"
#~ "如果形状不能移动,返回的数组在Bullet下将是[code][0, 0][/code],而在"
#~ "GodotPhysics3D下是空的。"

#~ msgid ""
#~ "Checks the intersections of a shape, given through a "
#~ "[PhysicsShapeQueryParameters3D] object, against the space. The resulting "
#~ "array contains a list of points where the shape intersects another. Like "
#~ "with [method intersect_shape], the number of returned results can be "
#~ "limited to save processing time."
#~ msgstr ""
#~ "检查形状的交叉点,通过[PhysicsShapeQueryParameters3D]对象,针对空间。生成"
#~ "的数组包含一个与另一个形状相交的点列表。与[method intersect_shape]一样,可"
#~ "以限制返回结果的数量,以节省处理时间。"

#~ msgid "Sets a body state using one of the [enum BodyState] constants."
#~ msgstr "使用[enum BodyState]常量之一设置物体状态。"

#~ msgid ""
#~ "Returns the value of a damped spring joint parameter. See [enum "
#~ "DampedSpringParam] for a list of available parameters."
#~ msgstr ""
#~ "返回阻尼弹簧关节参数的值。参见[enum DampedSpringParam]获取可用参数的列表。"

#~ msgid "Creates an [Area3D]."
#~ msgstr "创建一个[Area3D]区域。"

#~ msgid "Returns the [PhysicsDirectBodyState3D] of the body."
#~ msgstr "返回物体的[PhysicDirectBodyState3D]。"

#~ msgid ""
#~ "Destroys any of the objects created by PhysicsServer3D. If the [RID] "
#~ "passed is not one of the objects that can be created by PhysicsServer3D, "
#~ "an error will be sent to the console."
#~ msgstr ""
#~ "销毁PhysicsServer3D创建的任何对象。如果传递的[RID]不是PhysicsServer3D可以"
#~ "创建的对象之一,则会向控制台发送错误。"

#~ msgid ""
#~ "Returns the state of a space, a [PhysicsDirectSpaceState3D]. This object "
#~ "can be used to make collision/intersection queries."
#~ msgstr ""
#~ "返回空间的状态,即[PhysicDirectSpaceState3D]。此对象可用于进行碰撞/相交查"
#~ "询。"

#~ msgid "The [Shape3D] is a [WorldMarginShape3D]."
#~ msgstr "[Shape3D]是一个[WorldMarginShape3D]。"

#~ msgid ""
#~ "The physics layer(s) the query will take into account (as a bitmask)."
#~ msgstr "查询将考虑的物理层(作为位掩码)。"

#~ msgid ""
#~ "The [Shape2D] that will be used for collision/intersection queries. This "
#~ "stores the actual reference which avoids the shape to be released while "
#~ "being used for queries, so always prefer using this over [member "
#~ "shape_rid]."
#~ msgstr ""
#~ "将用于碰撞/相交查询的[Shape2D]。这将存储实际引用,从而避免在用于查询时释放"
#~ "形状,因此与[member shape_rid]相比,总是更喜欢使用该引用。"

#~ msgid ""
#~ "The queried shape's [RID] that will be used for collision/intersection "
#~ "queries. Use this over [member shape] if you want to optimize for "
#~ "performance using the Servers API:\n"
#~ "[codeblock]\n"
#~ "var shape_rid = PhysicsServer2D.circle_shape_create()\n"
#~ "var radius = 64\n"
#~ "PhysicsServer2D.shape_set_data(shape_rid, radius)\n"
#~ "\n"
#~ "var params = PhysicsShapeQueryParameters2D.new()\n"
#~ "params.shape_rid = shape_rid\n"
#~ "\n"
#~ "# Execute physics queries here...\n"
#~ "\n"
#~ "# Release the shape when done with physics queries.\n"
#~ "PhysicsServer2D.free_rid(shape_rid)\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "将用于碰撞/相交查询的查询形状的[RID]。如果要使用服务器应用编程接口优化性"
#~ "能,请在[member shape]上使用此选项:\n"
#~ "[codeblock]\n"
#~ "var shape_rid = PhysicsServer2D.circle_shape_create()\n"
#~ "var radius = 64\n"
#~ "PhysicsServer2D.shape_set_data(shape_rid, radius)\n"
#~ "\n"
#~ "var params = PhysicsShapeQueryParameters2D.new()\n"
#~ "params.shape_rid = shape_rid\n"
#~ "\n"
#~ "# Execute physics queries here...\n"
#~ "\n"
#~ "# Release the shape when done with physics queries.\n"
#~ "PhysicsServer2D.free_rid(shape_rid)\n"
#~ "[/codeblock]"

#~ msgid "If [code]true[/code], the query will take [Area3D]s into account."
#~ msgstr "如果[code]true[/code],查询将考虑[Area3D]。"

#~ msgid ""
#~ "If [code]true[/code], the query will take [PhysicsBody3D]s into account."
#~ msgstr "如果[code]true[/code],查询将考虑[PhysicsBody3D]。"

#~ msgid ""
#~ "The [Shape3D] that will be used for collision/intersection queries. This "
#~ "stores the actual reference which avoids the shape to be released while "
#~ "being used for queries, so always prefer using this over [member "
#~ "shape_rid]."
#~ msgstr ""
#~ "将用于碰撞/相交查询的[Shape3D]。这将存储实际引用,从而避免在用于查询时释放"
#~ "形状,因此与[member shape_rid]相比,总是更喜欢使用该引用。"

#~ msgid ""
#~ "The queried shape's [RID] that will be used for collision/intersection "
#~ "queries. Use this over [member shape] if you want to optimize for "
#~ "performance using the Servers API:\n"
#~ "[codeblock]\n"
#~ "var shape_rid = PhysicsServer3D.shape_create(PhysicsServer3D."
#~ "SHAPE_SPHERE)\n"
#~ "var radius = 2.0\n"
#~ "PhysicsServer3D.shape_set_data(shape_rid, radius)\n"
#~ "\n"
#~ "var params = PhysicsShapeQueryParameters3D.new()\n"
#~ "params.shape_rid = shape_rid\n"
#~ "\n"
#~ "# Execute physics queries here...\n"
#~ "\n"
#~ "# Release the shape when done with physics queries.\n"
#~ "PhysicsServer3D.free_rid(shape_rid)\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "将用于碰撞/相交查询的查询形状的[RID]。如果要使用服务器应用编程接口优化性"
#~ "能,请在[member shape]上使用此选项:\n"
#~ "[codeblock]\n"
#~ "var shape_rid = PhysicsServer3D.shape_create(PhysicsServer3D."
#~ "SHAPE_SPHERE)\n"
#~ "var radius = 2.0\n"
#~ "PhysicsServer3D.shape_set_data(shape_rid, radius)\n"
#~ "\n"
#~ "var params = PhysicsShapeQueryParameters3D.new()\n"
#~ "params.shape_rid = shape_rid\n"
#~ "\n"
#~ "# Execute physics queries here...\n"
#~ "\n"
#~ "# Release the shape when done with physics queries.\n"
#~ "PhysicsServer3D.free_rid(shape_rid)\n"
#~ "[/codeblock]"

#~ msgid "Result of a 2D shape query in [PhysicsServer2D]."
#~ msgstr "[PhysicsServer2D]中2D形状查询的结果。"

#~ msgid ""
#~ "The result of a 2D shape query in [PhysicsServer2D]. See also "
#~ "[PhysicsShapeQueryParameters2D]."
#~ msgstr ""
#~ "[PhysicsServer2D]中2D形状查询的结果。另请参见"
#~ "[PhysicsShapeQueryParameters2D]。"

#~ msgid "Returns the number of objects that intersected with the shape."
#~ msgstr "返回与形状相交的对象数。"

#~ msgid ""
#~ "Returns the [Object] that intersected with the shape at index [code]idx[/"
#~ "code]."
#~ msgstr "返回在索引[code]idx[/code]处与形状相交的[Object]。"

#~ msgid ""
#~ "Returns the instance ID of the [Object] that intersected with the shape "
#~ "at index [code]idx[/code]."
#~ msgstr "返回在索引[code]idx[/code]处与形状相交的[Object]的实例ID。"

#~ msgid ""
#~ "Returns the child index of the object's [Shape2D] that intersected with "
#~ "the shape at index [code]idx[/code]."
#~ msgstr "返回在索引[code]idx[/code]处与形状相交的对象的[Shape2D]的子索引。"

#~ msgid ""
#~ "Returns the [RID] of the object that intersected with the shape at index "
#~ "[code]idx[/code]."
#~ msgstr "返回在索引 [code]idx[/code]处与形状相交的对象的[RID]。"

#~ msgid "Result of a 3D shape query in [PhysicsServer3D]."
#~ msgstr "在[PhysicsServer3D]中查询3D形状的结果。"

#~ msgid ""
#~ "The result of a 3D shape query in [PhysicsServer3D]. See also "
#~ "[PhysicsShapeQueryParameters3D]."
#~ msgstr ""
#~ "在[PhysicsServer3D]中查询3D形状的结果。参见"
#~ "[PhysicsShapeQueryParameters3D]。"

#~ msgid ""
#~ "Returns the child index of the object's [Shape3D] that intersected with "
#~ "the shape at index [code]idx[/code]."
#~ msgstr ""
#~ "返回对象的[Shape3D]的子索引,该子索引与形状相交于索引[code]idx[/code]。"

#~ msgid ""
#~ "The normal map gives depth to the Polygon2D.\n"
#~ "[b]Note:[/b] Godot expects the normal map to use X+, Y-, and Z+ "
#~ "coordinates. See [url=http://wiki.polycount.com/wiki/"
#~ "Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] "
#~ "for a comparison of normal map coordinates expected by popular engines."
#~ msgstr ""
#~ "法线贴图为Polygon2D提供深度。\n"
#~ "[b]注意:[/b] Godot期望法线映射使用X+, Y-和Z+坐标。请参阅[url=http://wiki."
#~ "polycount.com/wiki/"
#~ "Normal_Map_Technical_Details#Common_Swizzle_Coordinates]这一页[/url],以获"
#~ "得流行引擎期望的标准地图坐标的比较。"

#~ msgid ""
#~ "Overrides the [AABB] with one defined by user for use with frustum "
#~ "culling. Especially useful to avoid unnexpected culling when  using a "
#~ "shader to offset vertices."
#~ msgstr ""
#~ "用用户定义的用于平截头体剔除的覆盖[AABB]。在使用着色器偏移顶点时,避免不必"
#~ "要的剔除特别有用。"

#~ msgid ""
#~ "Color of the ground at the bottom. Blends with [member "
#~ "ground_horizon_color]."
#~ msgstr "底部地面的颜色。与 [member ground_horizon_color]混合。"

#~ msgid ""
#~ "Color of the ground at the horizon. Blends with [member "
#~ "ground_bottom_color]."
#~ msgstr "地平线处地面的颜色。与 [member ground_bottom_color]混合。"

#~ msgid "Color of the sky at the horizon. Blends with [member sky_top_color]."
#~ msgstr "地平线上天空的颜色。与[member sky_top_color]混合。"

#~ msgid "Color of the sky at the top. Blends with [member sky_horizon_color]."
#~ msgstr "顶部天空的颜色。与[member sky_horizon_color]混合。"

#~ msgid ""
#~ "Converts a localized path ([code]res://[/code]) to a full native OS path."
#~ msgstr "将本地化路径([code]res://[/code])转换为完整的本机操作系统路径。"

#~ msgid "Convert a path to a localized path ([code]res://[/code] path)."
#~ msgstr "将一个路径转换为一个本地化的路径([code]res://[/code] path)。"

#~ msgid "Saves the configuration to the [code]project.godot[/code] file."
#~ msgstr ""
#~ "Returns the initial value of the specified property. If the attribute "
#~ "does not exist, [code]null[/code] is returned."

#~ msgid ""
#~ "The project's name. It is used both by the Project Manager and by "
#~ "exporters. The project name can be translated by translating its value in "
#~ "localization files."
#~ msgstr ""
#~ "项目名称。项目管理器和导出都会使用它。可以通过在本地化文件中转换项目名称的"
#~ "值来转换项目名称。"

#~ msgid ""
#~ "If [code]true[/code], disables printing to standard error in an exported "
#~ "build."
#~ msgstr "如果[code]true[/code],则在导出的生成中禁用按标准错误打印。"

#~ msgid ""
#~ "If [code]true[/code], disables printing to standard output in an exported "
#~ "build."
#~ msgstr "如果[code]true[/code],则在导出的生成中禁用打印到标准输出。"

#~ msgid "Default orientation on mobile devices."
#~ msgstr "移动设备上的默认方向。"

#~ msgid "Force the window to be always on top."
#~ msgstr "强制窗口始终位于顶部。"

#~ msgid "Force the window to be borderless."
#~ msgstr "强制窗口无边框。"

#~ msgid "Sets the window to full screen when it starts."
#~ msgstr "将窗口设置为全屏时,它开始。"

#~ msgid ""
#~ "Maximum amount of messages in the debugger queue. Over this value, "
#~ "content is dropped. This helps to limit the debugger memory usage."
#~ msgstr ""
#~ "调试器队列中的最大信息量。超过这个值,内容会被抛弃。这有助于限制调试器的内"
#~ "存使用。"

#~ msgid "Cell size used for the broad-phase 2D hash grid algorithm."
#~ msgstr "用于broad-phase 2D哈希网格算法的单元尺寸。"

#~ msgid "The default angular damp in 2D."
#~ msgstr "2D中默认的角阻尼。"

#~ msgid "The default linear damp in 2D."
#~ msgstr "2D中默认的线性阻尼。"

#~ msgid "The default angular damp in 3D."
#~ msgstr "3D中默认的角阻尼。"

#~ msgid "The default linear damp in 3D."
#~ msgstr "3D中默认的线性阻尼。"

#~ msgid ""
#~ "Fix to improve physics jitter, specially on monitors where refresh rate "
#~ "is different than the physics FPS.\n"
#~ "[b]Note:[/b] This property is only read when the project starts. To "
#~ "change the physics FPS at runtime, set [member Engine.physics_jitter_fix] "
#~ "instead."
#~ msgstr ""
#~ "修复了改善物理抖动的问题,特别是在刷新率与物理FPS不同的显示器上。\n"
#~ "[b]注意:[/b] 这个属性只在项目启动时读取。要在运行时改变物理FPS,请设置"
#~ "[member Engine.physics_jitter_fix]来代替。"

#~ msgid ""
#~ "Max amount of elements renderable in a frame. If more than this are "
#~ "visible per frame, they will be dropped. Keep in mind elements refer to "
#~ "mesh surfaces and not meshes themselves."
#~ msgstr ""
#~ "一帧中可渲染的元素的最大数量。如果每一帧可见的元素超过这个数量,它们将被删"
#~ "除。请记住,元素指的是网格表面而不是网格本身。"

#~ msgid ""
#~ "If [code]true[/code], forces snapping of polygons to pixels in 2D "
#~ "rendering. May help in some pixel art styles."
#~ msgstr ""
#~ "如果[code]true[/code],在2D渲染中强制将多边形捕捉为像素。可能对某些像素艺"
#~ "术风格有帮助。"

#~ msgid ""
#~ "Sets the quality of the depth of field effect. Higher quality takes more "
#~ "samples, which is slower but looks smoother."
#~ msgstr ""
#~ "设定景深效果的质量。更高的质量需要更多的样本,这样会比较慢,但看起来更平"
#~ "滑。"

#~ msgid ""
#~ "Sets the depth of field shape. Can be Box, Hexagon, or Circle. Box is the "
#~ "fastest. Circle is the most realistic, but also the most expensive to "
#~ "compute."
#~ msgstr ""
#~ "设置景深形状。可以是方形、六边形或圆形。箱形是最快的。圆是最真实的,但也是"
#~ "最昂贵的计算方式。"

#~ msgid ""
#~ "If [code]true[/code], jitters DOF samples to make effect slightly "
#~ "blurrier and hide lines created from low sample rates. This can result in "
#~ "a slightly grainy appearance when used with a low number of samples."
#~ msgstr ""
#~ "如果[code]true[/code],抖动DOF样本来产生略微模糊的效果,并隐藏低采样率产生"
#~ "的线条。当使用低样本数时,这可能会导致轻微的颗粒状外观。"

#~ msgid ""
#~ "Quality setting for shadows cast by [DirectionalLight3D]s. Higher quality "
#~ "settings use more samples when reading from shadow maps and are thus "
#~ "slower. Low quality settings may result in shadows looking grainy."
#~ msgstr ""
#~ "[DirectionalLight3D]投射的阴影的质量。较高的质量在读取阴影贴图时将使用更多"
#~ "的样本,因此会比较慢。低质量可能会导致阴影看起来有颗粒感。"

#~ msgid ""
#~ "Lower-end override for [member rendering/quality/directional_shadow/"
#~ "soft_shadow_quality] on mobile devices, due to performance concerns or "
#~ "driver support."
#~ msgstr ""
#~ "由于性能问题或驱动支持问题,将在移动设备上对[member rendering/quality/"
#~ "directional_shadow/soft_shadow_quality]以低质量数值覆盖。"

#~ msgid ""
#~ "If [code]true[/code], take additional samples when rendering objects "
#~ "affected by a [GIProbe] to reduce artifacts from only sampling in one "
#~ "direction."
#~ msgstr ""
#~ "如果 [code]true[/code],则在渲染受 [GIProbe] 影响的对象时采取额外的采样,"
#~ "以减少仅在一个方向采样的伪影。"

#~ msgid ""
#~ "Sets the number of cone samples taken when rendering objects affected by "
#~ "[GIProbe]s."
#~ msgstr "设置渲染受[GIProbe]影响的物体时采取的锥形样本数量。"

#~ msgid ""
#~ "Sets how the glow effect is upscaled before being copied onto the screen. "
#~ "Linear is faster, but looks blocky. Bicubic is slower but looks smooth."
#~ msgstr ""
#~ "设定发光效果在复制到屏幕上之前的放大比例。线性的速度比较快,但看起来有方块"
#~ "质感。双三次插值的速度较慢,但看起来很平滑。"

#~ msgid ""
#~ "Lower-end override for [member rendering/quality/glow/upscale_mode] on "
#~ "mobile devices, due to performance concerns or driver support."
#~ msgstr ""
#~ "由于性能和驱动支持的问题,在移动设备上会对[member rendering/quality/glow/"
#~ "upscale_mode]以低配数值覆盖。"

#~ msgid ""
#~ "Number of cubemaps to store in the reflection atlas. The number of "
#~ "[ReflectionProbe]s in a scene will be limited by this amount. A higher "
#~ "number requires more VRAM."
#~ msgstr ""
#~ "存储在反射图集中的立方体地图的数量。场景中的[ReflectionProbe]的数量将受到"
#~ "这个数量的限制。更多的数量需要更多的VRAM。"

#~ msgid ""
#~ "Size of cubemap faces for [ReflectionProbe]s. A higher number requires "
#~ "more VRAM and may make reflection probe updating slower."
#~ msgstr ""
#~ "[ReflectionProbe] 的立方体贴图面的大小。更高的数字需要更多的 VRAM,并且可"
#~ "能会使反射探测器更新速度变慢。"

#~ msgid ""
#~ "Lower-end override for [member rendering/quality/reflection_atlas/"
#~ "reflection_size] on mobile devices, due to performance concerns or driver "
#~ "support."
#~ msgstr ""
#~ "由于性能问题或驱动支持,将在移动设备上对[member rendering/quality/"
#~ "reflection_atlas/reflection_size]以低性能数值覆盖。"

#~ msgid ""
#~ "Use a higher quality variant of the fast filtering algorithm. "
#~ "Significantly slower than using default quality, but results in smoother "
#~ "reflections. Should only be used when the scene is especially detailed."
#~ msgstr ""
#~ "使用快速过滤算法的更高质量的版本。比使用默认质量要慢得多,但会产生更平滑的"
#~ "反射。只应在场景特别精细时使用。"

#~ msgid ""
#~ "Sets the number of samples to take when using importance sampling for "
#~ "[Sky]s and [ReflectionProbe]s. A higher value will result in smoother, "
#~ "higher quality reflections, but increases time to calculate radiance "
#~ "maps. In general, fewer samples are needed for simpler, low dynamic range "
#~ "environments while more samples are needed for HDR environments and "
#~ "environments with a high level of detail."
#~ msgstr ""
#~ "设置对 [Sky] 和 [ReflectionProbe] 使用重要性采样时的采样数。较高的值将会有"
#~ "更平滑、更高质量的反射,但会增加计算辐射贴图的时间。一般来说,更简单、低动"
#~ "态范围的环境需要更少的样本,而 HDR 环境和具有高细节水平的环境需要更多的样"
#~ "本。"

#~ msgid ""
#~ "Limits the number of layers to use in radiance maps when using importance "
#~ "sampling. A lower number will be slightly faster and take up less VRAM."
#~ msgstr ""
#~ "在使用重要性采样时,限制在辐射图(radiance maps)中使用的层数。一个较低的数"
#~ "字会稍微快一些,并且占用较少的VRAM。"

#~ msgid ""
#~ "Sets the screen-space antialiasing mode for the default screen "
#~ "[Viewport]. Screen-space antialiasing works by selectively blurring edges "
#~ "in a post-process shader. It differs from MSAA which takes multiple "
#~ "coverage samples while rendering objects. Screen-space AA methods are "
#~ "typically faster than MSAA and will smooth out specular aliasing, but "
#~ "tend to make scenes appear blurry.\n"
#~ "Another way to combat specular aliasing is to enable [member rendering/"
#~ "quality/screen_filters/screen_space_roughness_limiter_enabled]."
#~ msgstr ""
#~ "为默认屏幕[Viewport]设置屏幕空间抗锯齿模式。屏幕空间抗锯齿通过在后处理着色"
#~ "器中选择性地模糊边缘来工作。它与MSAA不同,MSAA在渲染物体时需要多个覆盖样"
#~ "本。屏幕空间抗锯齿方法通常比MSAA更快,并能平滑镜面混叠,但容易使场景显得模"
#~ "糊。\n"
#~ "另一种对抗镜面混叠的方法是启用[member rendering/quality/screen_filters/"
#~ "screen_space_roughness_limiter_enabled]。"

#~ msgid ""
#~ "Sets the quality for rough screen-space reflections. Turning off will "
#~ "make all screen space reflections sharp, while higher values make rough "
#~ "reflections look better."
#~ msgstr ""
#~ "设置粗糙的屏幕空间反射的质量。关掉会使所有屏幕空间的反射变得尖锐,而更高的"
#~ "数值会使粗糙的反射看起来更好。"

#~ msgid ""
#~ "Quality setting for shadows cast by [OmniLight3D]s and [SpotLight3D]s. "
#~ "Higher quality settings use more samples when reading from shadow maps "
#~ "and are thus slower. Low quality settings may result in shadows looking "
#~ "grainy."
#~ msgstr ""
#~ "由[OmniLight3D]和[SpotLight3D]投射的阴影的质量。较高的质量在读取阴影贴图时"
#~ "使用更多的样本,因此会比较慢。低质量可能会导致阴影看起来有颗粒感。"

#~ msgid ""
#~ "Lower-end override for [member rendering/quality/shadows/"
#~ "soft_shadow_quality] on mobile devices, due to performance concerns or "
#~ "driver support."
#~ msgstr ""
#~ "由于性能或驱动支持问题,会对移动设备上的[member rendering/quality/shadows/"
#~ "soft_shadow_quality]以低配数值覆盖。"

#~ msgid ""
#~ "If [code]true[/code], screen-space ambient occlusion will be rendered at "
#~ "half size and then upscaled before being added to the scene. This is "
#~ "significantly faster but may miss small details."
#~ msgstr ""
#~ "如果[code]true[/code],屏幕空间的环境遮挡将以一半的尺寸渲染,然后在添加到"
#~ "场景中之前进行放大。这将大大加快速度,但可能会错过小的细节。"

#~ msgid ""
#~ "Sets the quality of the screen-space ambient occlusion effect. Higher "
#~ "values take more samples and so will result in better quality, at the "
#~ "cost of performance."
#~ msgstr ""
#~ "设置屏幕空间环境遮挡效果的质量。更高的值需要更多的样本,因此会产生更好的质"
#~ "量,但会降低性能。"

#~ 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."
#~ msgstr ""
#~ "缩放应用洞穴散射效果的深度。一个高的值可能会让光线散射到网格的某个部分或另"
#~ "一个在屏幕空间上很近但深度很大的网格。"

#~ msgid ""
#~ "Sets the quality of the subsurface scattering effect. Higher values are "
#~ "slower but look nicer."
#~ msgstr "设置洞穴散射效果的质量。更高的值会更慢,但看起来更漂亮。"

#~ msgid ""
#~ "Scales the distance over which samples are taken for subsurface "
#~ "scattering effect. Changing this does not impact performance, but higher "
#~ "values will result in significant artifacts as the samples will become "
#~ "obviously spread out. A lower value results in a smaller spread of "
#~ "scattered light."
#~ msgstr ""
#~ "缩放取样的距离,以获得次表层散射效应。改变这个值不会影响性能,但更高的值会"
#~ "导致明显的伪影,因为样本会变得明显的散开。一个较低的值会有较小的散射光扩"
#~ "散。"

#~ msgid ""
#~ "Sets the maximum number of samples to take when using anisotropic "
#~ "filtering on textures (as a power of two). A higher sample count will "
#~ "result in sharper textures at oblique angles, but is more expensive to "
#~ "compute. A value of [code]0[/code] forcibly disables anisotropic "
#~ "filtering, even on materials where it is enabled."
#~ msgstr ""
#~ "设置在纹理上使用各向异性过滤时的最大采样数(2的n次幂)。更高的采样数会使斜"
#~ "角的纹理更清晰,但计算成本更高。数值为[code]0[/code]会强制禁用各向异性过"
#~ "滤,即使是在启用了该功能的材质上。"

#~ msgid ""
#~ "If [code]true[/code], the texture importer will import VRAM-compressed "
#~ "textures using the Ericsson Texture Compression algorithm. This algorithm "
#~ "doesn't support alpha channels in textures."
#~ msgstr ""
#~ "如果[code]true[/code],纹理导入器将使用Ericsson Texture Compression算法导"
#~ "入VRAM压缩的纹理。这种算法不支持纹理中的alpha通道。"

#~ msgid ""
#~ "If [code]true[/code], the texture importer will import VRAM-compressed "
#~ "textures using the Ericsson Texture Compression 2 algorithm. This texture "
#~ "compression algorithm is only supported when using the Vulkan renderer."
#~ msgstr ""
#~ "如果[code]true[/code],纹理导入器将使用Ericsson Texture Compression 2算法"
#~ "导入VRAM压缩的纹理。这种纹理压缩算法只有在使用Vulkan渲染器时才被支持。"

#~ msgid ""
#~ "If [code]true[/code], the texture importer will import VRAM-compressed "
#~ "textures using the PowerVR Texture Compression algorithm. This texture "
#~ "compression algorithm is only supported on iOS."
#~ msgstr ""
#~ "如果[code]true[/code],纹理导入器将使用PowerVR纹理压缩算法导入VRAM压缩的纹"
#~ "理。这种纹理压缩算法只在iOS上支持。"

#~ msgid ""
#~ "The seed used by the random number generator. A given seed will give a "
#~ "reproducible sequence of pseudo-random numbers.\n"
#~ "[b]Note:[/b] The RNG does not have an avalanche effect, and can output "
#~ "similar random streams given similar seeds. Consider using a hash "
#~ "function to improve your seed quality if they're sourced externally."
#~ msgstr ""
#~ "随机数发生器使用的种子。一个给定的种子将给出一个可重复的伪随机数序列。\n"
#~ "[b]注意:[/b] 随机数发生器(RNG)没有雪崩效应,给定类似的种子可以输出类似的"
#~ "随机流。如果种子来自外部,可以考虑使用哈希函数来提高种子的质量。"

#~ msgid ""
#~ "Returns the collision point at which the ray intersects the closest "
#~ "object.\n"
#~ "[b]Note:[/b] this point is in the [b]global[/b] coordinate system."
#~ msgstr ""
#~ "返回射线与最近的物体相交的碰撞点。\n"
#~ "[b]注意:[/b]这个点是在[b]全局[/b]坐标系中。"

#~ msgid ""
#~ "The ray's collision mask. Only objects in at least one collision layer "
#~ "enabled in the mask will be detected."
#~ msgstr ""
#~ "射线的碰撞蒙版。只有在蒙版中启用了至少一个碰撞层中的物体才会被检测到。"

#~ msgid "If [code]true[/code], collision with [Area3D]s will be reported."
#~ msgstr "如果 [code]true[/code],将报告与 [Area3D] 的碰撞。"

#~ msgid ""
#~ "If [code]true[/code], collision with [PhysicsBody3D]s will be reported."
#~ msgstr "如果 [code]true[/code],将报告与 [PhysicsBody3D] 的碰撞。"

#~ msgid "2D axis-aligned bounding box using floating point coordinates."
#~ msgstr "使用浮点坐标的 2D 轴对齐边界框。"

#~ msgid "Constructs a [Rect2] from a [Rect2i]."
#~ msgstr "从 [Rect2i] 构建 [Rect2] 。"

#~ msgid "2D axis-aligned bounding box using integer coordinates."
#~ msgstr "使用整数坐标的2D轴对齐边界框。"

#~ msgid ""
#~ "[Rect2i] consists of a position, a size, and several utility functions. "
#~ "It is typically used for fast overlap tests.\n"
#~ "It uses integer coordinates."
#~ msgstr ""
#~ "[Rect2i] 由一个位置、一个大小和几个实用函数组成。它通常用于快速重叠测"
#~ "试。\n"
#~ "它使用整数坐标。"

#~ msgid "Constructs a [Rect2i] by position and size."
#~ msgstr "通过位置和大小构造[Rect2i]。"

#~ msgid "Constructs a [Rect2i] by x, y, width, and height."
#~ msgstr "通过x, y,宽度和高度构造一个[Rect2i]。"

#~ msgid ""
#~ "Constructs a new [Rect2i] from [Rect2]. The floating point coordinates "
#~ "will be truncated."
#~ msgstr "从 [Rect2] 构造一个新的 [Rect2i]。浮点坐标将被截断。"

#~ msgid ""
#~ "Returns a [Rect2i] with equivalent position and area, modified so that "
#~ "the top-left corner is the origin and [code]width[/code] and "
#~ "[code]height[/code] are positive."
#~ msgstr ""
#~ "返回具有同样位置和面积的 [Rect2i],修改为左上角为原点,[code]width[/code] "
#~ "和 [code]height[/code] 为正值。"

#~ msgid "Returns the intersection of this [Rect2i] and b."
#~ msgstr "返回这个[Rect2i]和b的交集。"

#~ msgid ""
#~ "Returns [code]true[/code] if this [Rect2i] completely encloses another "
#~ "one."
#~ msgstr "如果[Rect2i]完全包含另一个,则返回[code]true[/code]。"

#~ msgid "Returns this [Rect2i] expanded to include a given point."
#~ msgstr "返回扩展到包含给定点的[Rect2i]。"

#~ msgid "Returns the area of the [Rect2i]."
#~ msgstr "返回[Rect2i]的面积。"

#~ msgid ""
#~ "Returns a copy of the [Rect2i] grown a given amount of units towards all "
#~ "the sides."
#~ msgstr "返回 [Rect2i] 向所有方向增长给定数量单位的副本。"

#~ msgid ""
#~ "Returns a copy of the [Rect2i] grown a given amount of units towards each "
#~ "direction individually."
#~ msgstr "返回一个[Rect2i]向每个方向分别增长给定数量的单位的副本。"

#~ msgid ""
#~ "Returns a copy of the [Rect2i] grown a given amount of units towards the "
#~ "[enum Margin] direction."
#~ msgstr "返回[Rect2i]向[enum Margin]方向增长给定数量单位的副本。"

#~ msgid "Returns [code]true[/code] if the [Rect2i] is flat or empty."
#~ msgstr "如果[Rect2i]为flat或空,则返回[code]true[/code]。"

#~ msgid "Returns [code]true[/code] if the [Rect2i] contains a point."
#~ msgstr "如果 [Rect2i] 包含点,则返回 [code]true[/code]。"

#~ msgid ""
#~ "Returns [code]true[/code] if the [Rect2i] overlaps with [code]b[/code] (i."
#~ "e. they have at least one point in common).\n"
#~ "If [code]include_borders[/code] is [code]true[/code], they will also be "
#~ "considered overlapping if their borders touch, even without intersection."
#~ msgstr ""
#~ "如果 [Rect2i] 与 [code]b[/code] 重叠(即它们至少有一个共同点),则返回 "
#~ "[code]true[/code]。\n"
#~ "如果 [code]include_borders[/code] 是 [code]true[/code],那么如果它们的边界"
#~ "接触,即使没有交叉,它们也会被视为重叠。"

#~ msgid ""
#~ "Returns a larger [Rect2i] that contains this [Rect2i] and [code]b[/code]."
#~ msgstr "返回一个更大的 [Rect2i],其中包含这个 [Rect2i] 和 [code]b[/code]。"

#~ msgid "If [code]true[/code], reflections will ignore sky contribution."
#~ msgstr "如果[code]true[/code],反射将忽略天空的影响。"

#~ msgid ""
#~ "Update the probe once on the next frame. The corresponding radiance map "
#~ "will be generated over the following six frames. This is slower to update "
#~ "than [constant UPDATE_ALWAYS] but can result in higher quality "
#~ "reflections."
#~ msgstr ""
#~ "在下一帧中更新探测一次。接下来的六帧将生成相应的亮度图。这比[constant "
#~ "update ALWAYS]更新速度慢,但可以产生更高质量的反射。"

#~ msgid ""
#~ "[RemoteTransform3D] caches the remote node. It may not notice if the "
#~ "remote node disappears; [method force_update_cache] forces it to update "
#~ "the cache again."
#~ msgstr ""
#~ "[RemoteTransform3D] 缓存了远程节点。如果远程节点消失了,它可能不会注意到;"
#~ "[method force_update_cache] 强制它再次更新缓存。"

#~ msgid ""
#~ "The [NodePath] to the remote node, relative to the RemoteTransform3D's "
#~ "position in the scene."
#~ msgstr "到远程节点的[NodePath],相对于远程Transform3D在场景中的位置。"

#~ msgid ""
#~ "Sets the material that the sky uses to render the background and "
#~ "reflection maps."
#~ msgstr "设置天空用于渲染背景和反射图的材质。"

#~ msgid "Shader is a sky shader."
#~ msgstr "着色器是一个天空着色器。"

#~ msgid ""
#~ "The size of the light when using spot light or omni light. The angular "
#~ "size of the light when using directional light."
#~ msgstr "使用聚光灯或泛光灯时的灯光大小。使用定向光时光的角度大小。"

#~ msgid ""
#~ "Proportion of shadow max distance where the shadow will start to fade out."
#~ msgstr "阴影开始淡出的最大距离的比例。"

#~ msgid ""
#~ "Blurs the edges of the shadow. Can be used to hide pixel artifacts in low "
#~ "resolution shadow maps. A high value can make shadows appear grainy and "
#~ "can cause other unwanted artifacts. Try to keep as near default as "
#~ "possible."
#~ msgstr ""
#~ "模糊阴影的边缘。可以用来隐藏低分辨率阴影图中的像素伪影。一个高的值会使阴影"
#~ "看起来有颗粒感,并可能导致其他不需要的伪影。尽量保持接近默认值。"

#~ msgid "Multisample antialiasing uses 2 samples per pixel."
#~ msgstr "多重采样抗锯齿每像素使用 2 个采样。"

#~ msgid "Multisample antialiasing uses 4 samples per pixel."
#~ msgstr "多重采样抗锯齿每像素使用 4 个采样。"

#~ msgid "Multisample antialiasing uses 8 samples per pixel."
#~ msgstr "多重采样抗锯齿每像素使用 8 个采样。"

#~ msgid "Multisample antialiasing uses 16 samples per pixel."
#~ msgstr "多重采样抗锯齿每像素使用 16 个采样。"

#~ msgid "Objects are displayed with only light information."
#~ msgstr "对象的显示只有光的信息。"

#~ msgid ""
#~ "Objects are displayed semi-transparent with additive blending so you can "
#~ "see where they are drawing over top of one another. A higher overdraw "
#~ "means you are wasting performance on drawing pixels that are being hidden "
#~ "behind others."
#~ msgstr ""
#~ "对象以半透明的方式显示,并进行加法混合,所以你可以看到它们在哪里互相绘制。"
#~ "较高的过度绘制意味着你在绘制隐藏在其他像素后面的像素时浪费了性能。"

#~ msgid ""
#~ "Normal buffer is drawn instead of regular scene so you can see the per-"
#~ "pixel normals that will be used by post-processing effects."
#~ msgstr ""
#~ "绘制法线缓冲区而不是常规场景,因此您可以看到后期处理效果将使用的逐像素法"
#~ "线。"

#~ msgid "Objects are displayed with only the albedo value from [GIProbe]s."
#~ msgstr "显示物体时,只显示来自[GIProbe]的反照率值。"

#~ msgid "Objects are displayed with only the lighting value from [GIProbe]s."
#~ msgstr "在显示物体时,只显示[GIProbe]的照明值。"

#~ msgid "Objects are displayed with only the emission color from [GIProbe]s."
#~ msgstr "在显示物体时,只显示[GIProbe]的发射颜色。"

#~ msgid ""
#~ "Draws the shadow atlas that stores shadows from [OmniLight3D]s and "
#~ "[SpotLight3D]s in the upper left quadrant of the [Viewport]."
#~ msgstr ""
#~ "绘制阴影图集,将[OmniLight3D]和[SpotLight3D]的阴影储存在[Viewport]的左上象"
#~ "限。"

#~ msgid ""
#~ "Draws the shadow atlas that stores shadows from [DirectionalLight3D]s in "
#~ "the upper left quadrant of the [Viewport]."
#~ msgstr ""
#~ "绘制阴影图集,储存来自[Viewport]左上象限的[DirectionalLight3D]的阴影。"

#~ 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 mode to work, you must have [member Environment.ssao_enabled] set "
#~ "in your [WorldEnvironment]."
#~ msgstr ""
#~ "绘制屏幕空间环境光遮挡纹理而不是场景,以便您可以清楚地看到它是如何影响对象"
#~ "的。为了使这种显示模式起作用,您必须在 [WorldEnvironment] 中设置 [member "
#~ "Environment.ssao_enabled]。"

#~ msgid ""
#~ "Colors each PSSM split for the [DirectionalLight3D]s in the scene a "
#~ "different color so you can see where the splits are. In order they will "
#~ "be colored red, green, blue, yellow."
#~ msgstr ""
#~ "为场景中的[DirectionalLight3D]的每个PSSM分片涂上不同的颜色,这样你就可以看"
#~ "到分片的位置。按照顺序,它们将被染成红色、绿色、蓝色和黄色。"

#~ msgid ""
#~ "Uses high quality importance sampling to process the radiance map. In "
#~ "general, this results in much higher quality than [constant Sky."
#~ "PROCESS_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/quality/"
#~ "reflections/ggx_samples]."
#~ msgstr ""
#~ "使用高质量的重要性采样来处理辐射图。一般来说,这会产生比 [constant Sky."
#~ "PROCESS_MODE_REALTIME] 高得多的质量,但需要更长的时间来生成。如果您计划在"
#~ "运行时更改天空,则不应使用此方法。如果您发现反射不够模糊并且显示出闪光或萤"
#~ "火虫,请尝试增加 [member ProjectSettings.rendering/quality/reflections/"
#~ "ggx_samples]。"

#~ msgid ""
#~ "Uses the fast filtering algorithm to process the radiance map. In general "
#~ "this results in lower quality, but substantially faster run times.\n"
#~ "[b]Note:[/b] The fast filtering algorithm is limited to 256x256 cubemaps, "
#~ "so [member Sky.radiance_size] must be set to [constant Sky."
#~ "RADIANCE_SIZE_256]."
#~ msgstr ""
#~ "使用快速滤波算法来处理辐射图。一般来说,这将导致较低的质量,但运行时间大大"
#~ "加快。\n"
#~ "[b]注意:[/b]快速滤波算法仅限于256x256的立方体贴图,所以[成员Sky."
#~ "radiance_size]必须设置为[constant Sky.RADIANCE_SIZE_256]。"

#~ msgid "High quality screen space ambient occlusion."
#~ msgstr "高质量的屏幕空间环境遮挡。"

#~ msgid ""
#~ "Lowest quality DOF blur. This is the fastest setting, but you may be able "
#~ "to see filtering artifacts."
#~ msgstr "最低质量的DOF模糊。这是最快的设置,但你可能会看到过滤的伪影。"

#~ msgid "Low quality DOF blur."
#~ msgstr "低质量的DOF模糊。"

#~ msgid "Medium quality DOF blur."
#~ msgstr "中等质量的DOF模糊。"

#~ msgid ""
#~ "Highest quality DOF blur. Results in the smoothest looking blur by taking "
#~ "the most samples, but is also significantly slower."
#~ msgstr ""
#~ "最高质量的DOF模糊。通过采取最多样本,实现最平滑的模糊效果,但也明显较慢。"

#~ msgid ""
#~ "Calculate the DOF blur using a box filter. The fastest option, but "
#~ "results in obvious lines in blur pattern."
#~ msgstr ""
#~ "使用盒式滤波器计算DOF模糊度。这是最快的选择,但会导致模糊模式中出现明显的"
#~ "线条。"

#~ msgid "Calculates DOF blur using a hexagon shaped filter."
#~ msgstr "使用六边形过滤器计算DOF模糊度。"

#~ msgid ""
#~ "Calculates DOF blur using a circle shaped filter. Best quality and most "
#~ "realistic, but slowest. Use only for areas where a lot of performance can "
#~ "be dedicated to post-processing (e.g. cutscenes)."
#~ msgstr ""
#~ "使用圆型过滤器计算DOF模糊度。质量最好,最逼真,但速度最慢。只用于可将大量"
#~ "性能用于后期处理的领域(如切景)。"

#~ msgid "The instance is a decal."
#~ msgstr "该实例是一个贴花。"

#~ msgid "Allows the instance to be used with dynamic global illumination."
#~ msgstr "允许实例与动态全局照明一起使用。"

#~ msgid "Uses the default filter mode for this [Viewport]."
#~ msgstr "使用此[Viewport]的默认过滤模式。"

#~ msgid ""
#~ "The texture filter blends between the nearest 4 pixels and between the "
#~ "nearest 2 mipmaps."
#~ msgstr "纹理过滤器在最近的4个像素之间和最近的2个mipmaps之间进行混合。"

#~ msgid "Max value for [enum CanvasItemTextureFilter] enum."
#~ msgstr "[enum CanvasItemTextureFilter] 枚举的最大值。"

#~ msgid "Uses the default repeat mode for this [Viewport]."
#~ msgstr "使用此[Viewport]的默认重复模式。"

#~ msgid ""
#~ "Disables textures repeating. Instead, when reading UVs outside the 0-1 "
#~ "range, the value will be clamped to the edge of the texture, resulting in "
#~ "a stretched out look at the borders of the texture."
#~ msgstr ""
#~ "禁用纹理的重复。当读取0-1范围以外的UV时,数值会被夹在纹理的边缘,导致纹理"
#~ "的边界看起来很拉长。"

#~ msgid ""
#~ "Flip the texture when repeating so that the edge lines up instead of "
#~ "abruptly changing."
#~ msgstr "在重复时翻转纹理,使其边缘对齐,而不是突然变化。"

#~ msgid "Max value for [enum CanvasItemTextureRepeat] enum."
#~ msgstr "[enum CanvasItemTextureRepeat] 枚举的最大值。"

#~ msgid "Max value of the [enum CanvasLightShadowFilter] enum."
#~ msgstr "[enum CanvasLightShadowFilter] 枚举的最大值。"

#~ msgid "The name of the resource. This is an optional identifier."
#~ msgstr "资源的名称。这是一个可选的标识符。"

#~ msgid ""
#~ "Returns the resource loaded by [method load_threaded_request].\n"
#~ "If this is called before the loading thread is done (i.e. [method "
#~ "load_threaded_get_status] is not [constant THREAD_LOAD_LOADED]), the "
#~ "calling thread will be blocked until the resource has finished loading."
#~ msgstr ""
#~ "返回由[method load_threaded_request]加载的资源。\n"
#~ "如果在加载线程完成之前调用它(即 [method load_threaded_get_status] 不是 "
#~ "[constant THREAD_LOAD_LOADED]),调用线程将被阻塞,直到资源完成加载。"

#~ msgid ""
#~ "Returns the status of a threaded loading operation started with [method "
#~ "load_threaded_request] for the resource at [code]path[/code]. See [enum "
#~ "ThreadLoadStatus] for possible return values.\n"
#~ "An array variable can optionally be passed via [code]progress[/code], and "
#~ "will return a one-element array containing the percentage of completion "
#~ "of the threaded loading."
#~ msgstr ""
#~ "返回在[code]path[/code]处的资源用[method load_threaded_request]开始的线程"
#~ "的加载操作的状态。有关可能的返回值,请参阅 [enum ThreadLoadStatus]。\n"
#~ "可以选择通过 [code]progress[/code] 传递数组变量,并将返回一个包含线程加载"
#~ "完成百分比的单元素数组。"

#~ msgid ""
#~ "Loads the resource using threads. If [code]use_sub_threads[/code] is "
#~ "[code]true[/code], multiple threads will be used to load the resource, "
#~ "which makes loading faster, but may affect the main thread (and thus "
#~ "cause game slowdowns)."
#~ msgstr ""
#~ "使用线程加载资源。如果[code]use_sub_threads[/code]是[code]true[/code],将"
#~ "使用多个线程来加载资源,这使得加载速度更快,但可能影响主线程(从而导致游戏"
#~ "减速)。"

#~ msgid ""
#~ "The resource is invalid, or has not been loaded with [method "
#~ "load_threaded_request]."
#~ msgstr "该资源是无效的,或者没有用[method load_threaded_request]加载。"

#~ msgid "The resource is still being loaded."
#~ msgstr "资源仍在加载中。"

#~ msgid "Some error occurred during loading and it failed."
#~ msgstr "在加载过程中发生了一些错误,所以失败了。"

#~ msgid ""
#~ "The resource was loaded successfully and can be accessed via [method "
#~ "load_threaded_get]."
#~ msgstr "资源加载成功,可以通过[method load_threaded_get]访问。"

#~ msgid ""
#~ "Rich text can contain custom text, fonts, images and some basic "
#~ "formatting. The label manages these as an internal tag stack. It also "
#~ "adapts itself to given width/heights.\n"
#~ "[b]Note:[/b] Assignments to [member bbcode_text] clear the tag stack and "
#~ "reconstruct it from the property's contents. Any edits made to [member "
#~ "bbcode_text] will erase previous edits made from other manual sources "
#~ "such as [method append_bbcode] and the [code]push_*[/code] / [method pop] "
#~ "methods."
#~ msgstr ""
#~ "富文本可以包含自定义文本、字体、图像和一些基本的格式化。标签作为一个内部标"
#~ "签堆栈来管理这些内容。它也会根据给定的宽度/高度进行自我调整。\n"
#~ "[b]注意:[/b] 对[member bbcode_text]的赋值会清除标签堆栈,并从属性的内容中"
#~ "重建它。对[member bbcode_text]所做的任何编辑都会擦除之前从其他手动来源所做"
#~ "的编辑,如[method append_bbcode]和[code]push_*[/code]/[method pop]方法。"

#~ msgid ""
#~ "Parses [code]bbcode[/code] and adds tags to the tag stack as needed. "
#~ "Returns the result of the parsing, [constant OK] if successful."
#~ msgstr ""
#~ "解析[code]bbcode[/code],并根据需要向标签栈添加标签。返回解析的结果,如果"
#~ "成功,则返回[constant OK]。"

#~ msgid ""
#~ "The restricted number of characters to display in the label. If [code]-1[/"
#~ "code], all characters will be displayed."
#~ msgstr "要在标签中显示的受限字符数。如果[code]-1[/code],将显示所有字符。"

#~ msgid ""
#~ "If [code]true[/code], the body can enter sleep mode when there is no "
#~ "movement. See [member sleeping]."
#~ msgstr ""
#~ "如果[code]true[/code],物体可以在没有运动的情况下进入睡眠模式。见[member "
#~ "sleeping]。"

#~ msgid ""
#~ "Emitted when a body enters into contact with this one. Requires [member "
#~ "contact_monitor] to be set to [code]true[/code] and [member "
#~ "contacts_reported] to be set high enough to detect all the collisions."
#~ msgstr ""
#~ "当一个物体与这个物体接触时发出。需要将[member contact_monitor]设置为"
#~ "[code]true[/code],并将[member contacts_reported]设置得足够高以检测所有的"
#~ "碰撞。"

#~ msgid ""
#~ "Emitted when a body exits contact with this one. Requires [member "
#~ "contact_monitor] to be set to [code]true[/code] and [member "
#~ "contacts_reported] to be set high enough to detect all the collisions."
#~ msgstr ""
#~ "当一个物体与这个物体不再接触时发出。需要将[member contact_monitor]设置为"
#~ "[code]true[/code],并将[member contacts_reported]设置得足够高以检测所有的"
#~ "碰撞。"

#~ msgid ""
#~ "Emitted when a body enters into contact with this one. Reports colliding "
#~ "shape information. See [CollisionObject2D] for shape index information. "
#~ "Requires [member contact_monitor] to be set to [code]true[/code] and "
#~ "[member contacts_reported] to be set high enough to detect all the "
#~ "collisions."
#~ msgstr ""
#~ "当一个物体与这个物体接触时发出。报告碰撞的形状信息。参见"
#~ "[CollisionObject2D]获取形状索引信息。需要将[member contact_monitor]设置为"
#~ "[code]true[/code],并且将[member contacts_reported]设置得足够高,以检测所"
#~ "有的碰撞。"

#~ msgid ""
#~ "Emitted when a body shape exits contact with this one. Reports colliding "
#~ "shape information. See [CollisionObject2D] for shape index information. "
#~ "Requires [member contact_monitor] to be set to [code]true[/code] and "
#~ "[member contacts_reported] to be set high enough to detect all the "
#~ "collisions."
#~ msgstr ""
#~ "当一个物体形状与这个物体形状不再接触时发出。报告碰撞的形状信息。参见"
#~ "[CollisionObject2D]获取形状索引信息。需要将[member contact_monitor]设置为"
#~ "[code]true[/code],并且将[member contacts_reported]设置得足够高以检测所有"
#~ "的碰撞。"

#~ msgid "Damps RigidBody3D's rotational forces."
#~ msgstr "RigidBody3D 的旋转阻尼 。"

#~ msgid ""
#~ "Emitted when a body shape exits contact with this one. Requires [member "
#~ "contact_monitor] to be set to [code]true[/code] and [member "
#~ "contacts_reported] to be set high enough to detect all the collisions."
#~ msgstr ""
#~ "当一个物体形状退出与这个物体形状的接触时发出。需要将[member "
#~ "contact_monitor]设置为[code]true[/code],并将[member contacts_reported]设"
#~ "置得足够高以检测所有的碰撞。"

#~ msgid ""
#~ "Emitted when a body shape exits contact with this one. Requires [member "
#~ "contact_monitor] to be set to [code]true[/code] and [member "
#~ "contacts_reported] to be set high enough to detect all the collisions.\n"
#~ "This signal not only receives the body that stopped colliding with this "
#~ "one, but also its [RID] ([code]body_id[/code]), the shape index from the "
#~ "colliding body ([code]body_shape[/code]), and the shape index from this "
#~ "body ([code]local_shape[/code]) the other body stopped colliding with."
#~ msgstr ""
#~ "当一个物体形状不再与这个物体形状的接触时发出。需要将[member "
#~ "contact_monitor]设置为[code]true[/code],并将[member contacts_reported]设"
#~ "置得足够高,以检测所有碰撞。\n"
#~ "这个信号不仅可以接收到与这个物体停止碰撞的身体,还可以接收到它的[RID]"
#~ "([code]body_id[/code])、碰撞物体的形状索引([code]body_shape[/code]),"
#~ "以及其他物体停止碰撞的这个物体的形状索引([code]local_shape[/code])。"

#~ msgid "Calls [code]method[/code] on each member of the given group."
#~ msgstr "对给定组的每个成员调用[code]method[/code]。"

#~ msgid ""
#~ "Calls [code]method[/code] on each member of the given group, respecting "
#~ "the given [enum GroupCallFlags]."
#~ msgstr ""
#~ "对给定组的每个成员调用[code]method[/code],遵从给定的[enum "
#~ "GroupCallFlags]。"

#~ msgid "Lowers the [Semaphore], allowing one more thread in."
#~ msgstr "降低 [Semaphore],允许多线程。"

#~ msgid ""
#~ "Like [method wait], but won't block, so if the value is zero, fails "
#~ "immediately and returns [constant ERR_BUSY]. If non-zero, it returns "
#~ "[constant OK] to report success."
#~ msgstr ""
#~ "类似于[method wait],但不会阻塞,所以如果值为零,则立即失败并返回"
#~ "[constant ERR_BUSY]。如果非零,则返回 [constant OK] 以报告成功。"

#~ msgid ""
#~ "Waits for the [Semaphore], if its value is zero, blocks until non-zero."
#~ msgstr "等待 [Semaphore],如果它的值为零,则阻塞直到非零。"

#~ msgid ""
#~ "Mode used for drawing skies. Only works with shaders attached to [Sky] "
#~ "objects."
#~ msgstr "用于绘制天空的模式。只适用于连接到[Sky]对象的着色器。"

#~ msgid "Class representing a signal defined in an object."
#~ msgstr "表示对象中定义的信号的类。"

#~ msgid ""
#~ "Connects this signal to the specified [Callable], optionally providing "
#~ "binds and connection flags."
#~ msgstr "将此信号连接到指定的 [Callable],可选择提供绑定和连接标志。"

#~ msgid "Disconnects this signal from the specified [Callable]."
#~ msgstr "将此信号与指定的 [Callable] 断开。"

#~ msgid "Emits this signal to all connected objects."
#~ msgstr "向所有连接的对象发出这个信号。"

#~ msgid "Returns the list of [Callable]s connected to this signal."
#~ msgstr "返回连接到此信号的 [Callable] 列表。"

#~ msgid "Returns the object emitting this signal."
#~ msgstr "返回发出此信号的对象。"

#~ msgid ""
#~ "Returns the ID of the object emitting this signal (see [method Object."
#~ "get_instance_id])."
#~ msgstr "返回发出此信号的对象的ID(见[method Object.get_instance_id])。"

#~ msgid ""
#~ "Returns [code]true[/code] if the specified [Callable] is connected to "
#~ "this signal."
#~ msgstr "如果指定的 [Callable] 连接到此信号,则返回 [code]true[/code]。"

#~ msgid ""
#~ "Takes the given bone pose/transform and converts it to a world transform, "
#~ "relative to the [Skeleton3D] node.\n"
#~ "This is useful for using the bone transform in calculations with "
#~ "transforms from [Node3D]-based nodes."
#~ msgstr ""
#~ "获取给定的骨骼姿势/变换并将其转换为相对于 [Skeleton3D] 节点的世界变换。\n"
#~ "这对于在计算基于[Node3D]的节点的变换时使用骨骼变换是有用的。"

#~ msgid "Removes the global pose override on all bones in the skeleton."
#~ msgstr "移除骨架中所有骨骼的全局姿势覆盖。"

#~ msgid ""
#~ "Returns whether the bone rest for the bone at [code]bone_idx[/code] is "
#~ "disabled."
#~ msgstr "返回[code]bone_idx[/code]处的骨骼的休息状态是否被禁用。"

#~ msgid "Returns all bones in the skeleton to their rest poses."
#~ msgstr "将骨架中的所有骨骼恢复到休息姿势。"

#~ msgid ""
#~ "Adds a collision exception to the physical bone.\n"
#~ "Works just like the [RigidBody3D] node."
#~ msgstr ""
#~ "向物理骨骼添加碰撞异常。\n"
#~ "就像 [RigidBody3D] 节点一样工作。"

#~ msgid ""
#~ "Removes a collision exception to the physical bone.\n"
#~ "Works just like the [RigidBody3D] node."
#~ msgstr ""
#~ "移除物理骨骼的碰撞异常。\n"
#~ "就像 [RigidBody3D] 节点一样工作。"

#~ msgid ""
#~ "Tells the [PhysicalBone3D] nodes in the Skeleton to start simulating and "
#~ "reacting to the physics world.\n"
#~ "Optionally, a list of bone names can be passed-in, allowing only the "
#~ "passed-in bones to be simulated."
#~ msgstr ""
#~ "告诉骨架中的 [PhysicalBone3D] 节点开始模拟物理世界并做出反应。\n"
#~ "另外,可以传入骨骼名称列表,只允许模拟传入的骨骼。"

#~ msgid "Tells the [PhysicalBone3D] nodes in the Skeleton to stop simulating."
#~ msgstr "告诉骨架中的 [PhysicalBone3D] 节点停止模拟。"

#~ msgid "Binds the given Skin to the Skeleton."
#~ msgstr "将给定的皮肤绑定到骨架。"

#~ msgid ""
#~ "Sets the custom pose transform, [code]custom_pose[/code], for the bone at "
#~ "[code]bone_idx[/code]. This pose is an addition to the bone rest pose.\n"
#~ "[b]Note[/b]: The pose transform needs to be in bone space. Use [method "
#~ "world_transform_to_bone_transform] to convert a world transform, like one "
#~ "you can get from a [Node3D], to bone space."
#~ msgstr ""
#~ "为 [code]bone_idx[/code] 处的骨骼设置自定义姿势变换 [code]custom_pose[/"
#~ "code]。这个姿势是骨骼休息姿势的补充。\n"
#~ "[b]注意[/b]:姿势变换需要处于骨骼空间。使用 [method "
#~ "world_transform_to_bone_transform] 将世界变换(比如您从 [Node3D] 获得的变"
#~ "换)转换为骨骼空间。"

#~ msgid ""
#~ "Disables the rest pose for the bone at [code]bone_idx[/code] if "
#~ "[code]true[/code], enables the bone rest if [code]false[/code]."
#~ msgstr ""
#~ "如果 [code]true[/code],则禁用 [code]bone_idx[/code] 处骨骼的静止姿势,如"
#~ "果 [code]false[/code],则启用骨骼静止。"

#~ msgid ""
#~ "Sets the global pose transform, [code]pose[/code], for the bone at "
#~ "[code]bone_idx[/code].\n"
#~ "[code]amount[/code] is the interpolation strength that will be used when "
#~ "applying the pose, and [code]persistent[/code] determines if the applied "
#~ "pose will remain.\n"
#~ "[b]Note[/b]: The pose transform needs to be in bone space. Use [method "
#~ "world_transform_to_bone_transform] to convert a world transform, like one "
#~ "you can get from a [Node3D], to bone space."
#~ msgstr ""
#~ "为 [code]bone_idx[/code] 处的骨骼设置全局姿势变换 [code]pose[/code]。\n"
#~ "[code]amount[/code] 是应用姿势时将使用的插值强度,[code]persistent[/code] "
#~ "决定是否保留应用的姿势。\n"
#~ "[b]注意[/b]:姿势变换需要处于骨骼空间。使用 [method "
#~ "world_transform_to_bone_transform] 将世界变换(比如您从 [Node3D] 获得的变"
#~ "换)转换为骨骼空间。"

#~ msgid ""
#~ "Sets the pose transform for bone [code]bone_idx[/code].\n"
#~ "[b]Note[/b]: The pose transform needs to be in bone space. Use [method "
#~ "world_transform_to_bone_transform] to convert a world transform, like one "
#~ "you can get from a [Node3D], to bone space."
#~ msgstr ""
#~ "设置骨骼[code]bone_idx[/code]的姿势变换。\n"
#~ "[b]注意[/b]:姿势变换需要处于骨骼空间。使用 [method "
#~ "world_transform_to_bone_transform] 将世界变换(比如您从 [Node3D] 获得的变"
#~ "换)转换为骨骼空间。"

#~ msgid ""
#~ "Unparents the bone at [code]bone_idx[/code] and sets its rest position to "
#~ "that of it's parent prior to being reset."
#~ msgstr ""
#~ "取消在 [code]bone_idx[/code] 处骨骼的父级,并在重置之前将其静止位置设置为"
#~ "其父级的位置。"

#~ msgid ""
#~ "Takes the given world transform, relative to the [Skeleton3D], and "
#~ "converts it to a bone pose/transform.\n"
#~ "This is useful for using setting bone poses using transforms from "
#~ "[Node3D]-based nodes."
#~ msgstr ""
#~ "获取相对于 [Skeleton3D] 的给定世界变换,并将其转换为骨骼姿势/变换。\n"
#~ "这对于使用来自基于 [Node3D] 的节点的变换来设置骨骼姿势很有用。"

#~ msgid "Background that uses a [Material] to draw a sky."
#~ msgstr "使用[Material]绘制天空的背景。"

#~ msgid ""
#~ "The [Sky] class uses a [Material] to draw the background and update the "
#~ "reflection/radiance cubemaps."
#~ msgstr "[Sky] 类使用 [Material] 来绘制背景并更新反射/辐照立方体贴图。"

#~ msgid ""
#~ "Sets the method for generating the radiance map from the sky. The "
#~ "radiance map is a cubemap with increasingly blurry versions of the sky "
#~ "corresponding to different levels of roughness. Radiance maps can be "
#~ "expensive to calculate. See [enum ProcessMode] for options."
#~ msgstr ""
#~ "设置从天空生成辐照度贴图的方法。辐照度贴图是一个立方体贴图,随着不同粗糙度"
#~ "的增加,天空越来越模糊。辐照度贴图的计算成本可能很高。有关选项,请参阅 "
#~ "[enum ProcessMode]。"

#~ msgid ""
#~ "[Material] used to draw the background. Can be [PanoramaSkyMaterial], "
#~ "[ProceduralSkyMaterial], [PhysicalSkyMaterial], or even a "
#~ "[ShaderMaterial] if you want to use your own custom shader."
#~ msgstr ""
#~ "用来绘制背景的[Material]。可以是[PanoramaSkyMaterial]、"
#~ "[ProceduralSkyMaterial]、[PhysicalSkyMaterial],或者如果你想使用自己的自定"
#~ "义着色器,甚至可以是[ShaderMaterial],。"

#~ msgid "Radiance texture size is 1024×1024 pixels."
#~ msgstr "辐照度纹理大小为 1024×1024 像素。"

#~ msgid "Radiance texture size is 2048×2048 pixels."
#~ msgstr "辐照度纹理尺寸为2048×2048像素。"

#~ 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 PROCESS_MODE_REALTIME]. If your shader uses any "
#~ "of the [code]LIGHT_*[/code] variables or any custom uniforms, this uses "
#~ "[constant PROCESS_MODE_INCREMENTAL]. Otherwise, this defaults to "
#~ "[constant PROCESS_MODE_QUALITY]."
#~ msgstr ""
#~ "根据你的天空着色器自动选择合适的处理模式。如果你的着色器使用[code]TIME[/"
#~ "code]或[code]POSITION[/code],这将使用[constant PROCESS_MODE_REALTIME]。如"
#~ "果你的着色器使用了任何[code]LIGHT_*[/code]变量或任何自定义的uniform,这将"
#~ "使用[constant PROCESS_MODE_INCREMENTAL]。否则,默认为[constant "
#~ "PROCESS_MODE_QUALITY]。"

#~ msgid ""
#~ "Uses high quality importance sampling to process the radiance map. In "
#~ "general, this results in much higher quality than [constant "
#~ "PROCESS_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/quality/"
#~ "reflections/ggx_samples]."
#~ msgstr ""
#~ "使用高质量的重要性采样来处理辐照度图。一般来说,这会产生比 [constant "
#~ "PROCESS_MODE_REALTIME] 高得多的质量,但需要更长的时间来生成。如果您计划在"
#~ "运行时更改天空,则不应使用此选项。如果您发现反射不够模糊并且显示出闪光,请"
#~ "尝试增加 [member ProjectSettings.rendering/quality/reflections/"
#~ "ggx_samples]。"

#~ msgid ""
#~ "Uses the same high quality importance sampling to process the radiance "
#~ "map as [constant PROCESS_MODE_QUALITY], but updates over several frames. "
#~ "The number of frames is determined by [member ProjectSettings.rendering/"
#~ "quality/reflections/roughness_layers]. Use this when you need highest "
#~ "quality radiance maps, but have a sky that updates slowly."
#~ msgstr ""
#~ "使用与 [constant PROCESS_MODE_QUALITY] 相同的高质量重要性采样来处理辐射"
#~ "图,但会在几帧内更新。帧数由[member ProjectSettings.rendering/quality/"
#~ "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/quality/reflections/"
#~ "fast_filter_high_quality].\n"
#~ "[b]Note:[/b] The fast filtering algorithm is limited to 256x256 cubemaps, "
#~ "so [member radiance_size] must be set to [constant RADIANCE_SIZE_256]."
#~ msgstr ""
#~ "使用快速过滤算法处理辐照度图。一般来说,这会导致质量较低,但运行时间明显加"
#~ "快。如果您需要更好的质量,但仍需要每帧更新天空,请考虑开启 [member "
#~ "ProjectSettings.rendering/quality/reflections/"
#~ "fast_filter_high_quality]。\n"
#~ "[b]注意:[/b]快速过滤算法限制为256x256立方体贴图,所以[member "
#~ "radiance_size]必须设置为[constant RADIANCE_SIZE_256]。"

#~ msgid "The physics layers this SoftBody3D scans for collisions."
#~ msgstr "此 SoftBody3D 扫描碰撞的物理层。"

#~ msgid ""
#~ "A Spotlight is a type of [Light3D] node that emits lights in a specific "
#~ "direction, in the shape of a cone. The light is attenuated through the "
#~ "distance. This attenuation can be configured by changing the energy, "
#~ "radius and attenuation parameters of [Light3D]."
#~ msgstr ""
#~ "聚光灯是一种 [Light3D] 节点,它在特定方向上以圆锥形状发射光。光线在远处衰"
#~ "减。这种衰减可以通过改变 [Light3D] 的能量、半径和衰减参数来配置。"

#~ msgid "The layers against which the collision check shall be done."
#~ msgstr "将对其进行碰撞检查的层。"

#~ msgid "Strength of the specular light effect of this [Sprite2D]."
#~ msgstr "此 [Sprite2D] 的镜面光效果强度。"

#~ msgid "The specular map is used for more control on the shininess effect."
#~ msgstr "用于对光泽效果进行更多控制的镜面反射贴图。"

#~ msgid ""
#~ "A node that displays a 2D texture in a 3D environment. The texture "
#~ "displayed can be a region from a larger atlas texture, or a frame from a "
#~ "sprite sheet animation.\n"
#~ "[b]Note:[/b] There are [url=https://github.com/godotengine/godot/"
#~ "issues/20855]known performance issues[/url] when using [Sprite3D]. "
#~ "Consider using a [MeshInstance3D] with a [QuadMesh] as the mesh instead. "
#~ "You can still have billboarding by enabling billboard properties in the "
#~ "QuadMesh's [StandardMaterial3D]."
#~ msgstr ""
#~ "在 3D 环境中显示 2D 纹理的节点。显示的纹理可以是来自较大图集纹理的区域,也"
#~ "可以是来自精灵表动画的帧。\n"
#~ "[b]注意:[/b]使用[Sprite3D]时存在[url=https://github.com/godotengine/"
#~ "godot/issues/20855]已知性能问题[/url]。考虑使用带有 [QuadMesh] 的 "
#~ "[MeshInstance3D] 作为网格。您仍然可以通过在 QuadMesh 的 "
#~ "[StandardMaterial3D] 中启用告示牌属性来显示告示牌。"

#~ msgid ""
#~ "Sprite frame library for [AnimatedSprite2D]. Contains frames and "
#~ "animation data for playback."
#~ msgstr "[AnimatedSprite2D] 的精灵帧库。包含用于播放的帧和动画数据。"

#~ msgid "If [code]true[/code], the given animation will loop."
#~ msgstr "如果 [code]true[/code],给定的动画将循环播放。"

#~ msgid ""
#~ "Disables Nagle's algorithm to improve latency for small packets.\n"
#~ "[b]Note:[/b] For applications that send large packets or need to transfer "
#~ "a lot of data, this can decrease the total available bandwidth."
#~ msgstr ""
#~ "禁用Nagle算法,以改善小数据包的延时。\n"
#~ "[b]注意:[/b] 对于发送大数据包或需要传输大量数据的应用,这可能会减少总的可"
#~ "用带宽。"

#~ msgid "Constructs a new String from the given [Vector2i]."
#~ msgstr "从给定的[Vector2i]构造一个新的字符串。"

#~ msgid "Constructs a new String from the given [Rect2i]."
#~ msgstr "从给定的 [Rect2i] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [Vector3i]."
#~ msgstr "从给定的 [Vector3i] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [StringName]."
#~ msgstr "从给定的 [StringName] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [Callable]."
#~ msgstr "从给定的 [Callable] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [Signal]."
#~ msgstr "从给定的 [Signal] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [PackedInt32Array]."
#~ msgstr "从给定的 [PackedInt32Array] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [PackedInt64Array]."
#~ msgstr "从给定的 [PackedInt64Array] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [PackedFloat32Array]."
#~ msgstr "从给定的 [PackedFloat32Array] 构造一个新字符串。"

#~ msgid "Constructs a new String from the given [PackedFloat64Array]."
#~ msgstr "从给定的 [PackedFloat64Array] 构造一个新字符串。"

#~ msgid ""
#~ "Performs a case-sensitive comparison to another string. Returns [code]-1[/"
#~ "code] if less than, [code]+1[/code] if greater than, or [code]0[/code] if "
#~ "equal."
#~ msgstr ""
#~ "对另一个字符串执行区分大小写的比较。如果小于则返回 [code]-1[/code],如果大"
#~ "于则返回 [code]+1[/code],如果相等则返回 [code]0[/code]。"

#~ msgid ""
#~ "Returns the index of the [b]first[/b] case-insensitive occurrence of the "
#~ "specified string in this instance, or [code]-1[/code]. Optionally, the "
#~ "starting search index can be specified, continuing to the end of the "
#~ "string."
#~ msgstr ""
#~ "返回此实例中指定字符串的 [b]first[/b] 出现的索引(不区分大小写),或 "
#~ "[code]-1[/code]。可以指定起始搜索索引,一直到字符串的结尾。"

#~ msgid "If the string is a valid file path, returns the extension."
#~ msgstr "字符串为有效文件路径时,返回扩展名。"

#~ msgid ""
#~ "Returns [code]true[/code] if this string contains a valid IP address."
#~ msgstr "该字符串包含有效 IP 地址时,返回 [code]true[/code]。"

#~ msgid ""
#~ "Return a [String] which is the concatenation of the [code]parts[/code]. "
#~ "The separator between elements is the string providing this method.\n"
#~ "Example:\n"
#~ "[codeblock]\n"
#~ "print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "返回一个 [String],它是 [code] parts [/code] 的串联。调用此方法的字符串是"
#~ "元素之间的分隔符。\n"
#~ "例子:\n"
#~ "[codeblock]\n"
#~ "print(\", \".join([\"One\", \"Two\", \"Three\", \"Four\"]))\n"
#~ "[/codeblock]"

#~ msgid "Returns a copy of the string with characters removed from the left."
#~ msgstr "返回从左边删除字符的字符串的副本。"

#~ msgid ""
#~ "Performs a case-insensitive comparison to another string. Returns "
#~ "[code]-1[/code] if less than, [code]+1[/code] if greater than, or "
#~ "[code]0[/code] if equal."
#~ msgstr ""
#~ "对另一个字符串执行不区分大小写的比较。如果小于,则返回 [code]-1[/code],如"
#~ "果大于则返回 [code]+1[/code],如果相等则返回 [code]0[/code]。"

#~ msgid ""
#~ "Returns the index of the [b]last[/b] case-sensitive occurrence of the "
#~ "specified string in this instance, or [code]-1[/code]. Optionally, the "
#~ "starting search index can be specified, continuing to the beginning of "
#~ "the string."
#~ msgstr ""
#~ "返回此实例中指定字符串的 [b]last[/b] 出现的索引(区分大小写),或 [code]-1[/"
#~ "code]。可以指定起始搜索索引,一直到字符串的开头。"

#~ msgid ""
#~ "Returns the index of the [b]last[/b] case-insensitive occurrence of the "
#~ "specified string in this instance, or [code]-1[/code]. Optionally, the "
#~ "starting search index can be specified, continuing to the beginning of "
#~ "the string."
#~ msgstr ""
#~ "返回此实例中指定字符串的 [b]last[/b] 出现的索引(不区分大小写),或 "
#~ "[code]-1[/code]。可以指定起始搜索索引,一直到字符串的开头。"

#~ msgid "Returns a copy of the string with characters removed from the right."
#~ msgstr "从右侧删除字符,返回字符串的副本。"

#~ msgid "An optimized string type for unique names."
#~ msgstr "用于唯一名称的优化字符串类型。"

#~ msgid ""
#~ "[StringName]s are immutable strings designed for general-purpose "
#~ "represention of unique names. [StringName] ensures that only one instance "
#~ "of a given name exists (so two [StringName]s with the same value are the "
#~ "same object). Comparing them is much faster than with regular [String]s, "
#~ "because only the pointers are compared, not the whole strings."
#~ msgstr ""
#~ "[StringName] 是不可变的字符串,设计用于唯一名称的通用表示。 [StringName] "
#~ "确保给定名称仅存在一个实例(因此具有相同值的两个 [StringName] 是同一个对"
#~ "象)。比较它们比使用常规 [String] 快得多,因为只比较指针,而不是整个字符"
#~ "串。"

#~ msgid "Creates a new [StringName] from the given [String]."
#~ msgstr "从给定的 [String] 创建一个新的 [StringName]。"

#~ msgid "The width and height of the sub-viewport."
#~ msgstr "子视口的宽度和高度。"

#~ msgid ""
#~ "The 2D size override of the sub-viewport. If either the width or height "
#~ "is [code]0[/code], the override is disabled."
#~ msgstr ""
#~ "子视口的2D尺寸覆盖。如果宽度或高度为[code]0[/code],则该覆盖被禁用。"

#~ msgid "Update the render target only when the its parent is visible."
#~ msgstr "仅当其父级可见时才更新渲染目标。"

#~ msgid "Specifies a [Color] for the next vertex to use."
#~ msgstr "为下一个要使用的顶点指定 [Color]。"

#~ msgid "Specifies a normal for the next vertex to use."
#~ msgstr "指定下一个要使用的顶点的法线。"

#~ msgid "Specifies a tangent for the next vertex to use."
#~ msgstr "指定下一个顶点使用的切线。"

#~ msgid "Specifies a set of UV coordinates to use for the next vertex."
#~ msgstr "指定一组用于下一个顶点的 UV 坐标。"

#~ msgid ""
#~ "Specifies an optional second set of UV coordinates to use for the next "
#~ "vertex."
#~ msgstr "指定用于下一个顶点的可选的第二组 UV 坐标。"

#~ msgid ""
#~ "Specifies weight values for next vertex to use. [code]weights[/code] must "
#~ "contain 4 values."
#~ msgstr ""
#~ "指定要使用的下一个顶点的权重值。 [code]weights[/code] 必须包含 4 个值。"

#~ msgid ""
#~ "Generates normals from vertices so you do not have to do it manually. If "
#~ "[code]flip[/code] is [code]true[/code], the resulting normals will be "
#~ "inverted.\n"
#~ "Requires the primitive type to be set to [constant Mesh."
#~ "PRIMITIVE_TRIANGLES]."
#~ msgstr ""
#~ "从顶点生成法线,这样你就不必手动操作了。如果[code]flip[/code]是"
#~ "[code]true[/code],生成的法线会被反转。\n"
#~ "需要将基元类型设置为[constant Mesh.PRIMITIVE_TRIANGLES]。"

#~ msgid ""
#~ "Sets the active tab's [code]visible[/code] property to the value "
#~ "[code]true[/code]. Sets all other children's to [code]false[/code].\n"
#~ "Ignores non-[Control] children.\n"
#~ "Individual tabs are always visible unless you use [method "
#~ "set_tab_disabled] and [method set_tab_title] to hide it.\n"
#~ "To hide only a tab's content, nest the content inside a child [Control], "
#~ "so it receives the [TabContainer]'s visibility setting instead."
#~ msgstr ""
#~ "将活动选项卡的 [code]visible[/code] 属性设置为值 [code]true[/code]。将所有"
#~ "其他子项的设置为 [code]false[/code]。\n"
#~ "忽略非 [Control] 子项。\n"
#~ "除非您使用 [method set_tab_disabled] 和 [method set_tab_title] 将其隐藏,"
#~ "否则单个选项卡始终可见。\n"
#~ "要仅隐藏选项卡的内容,请将内容嵌套在子 [Control] 中,以便它接收 "
#~ "[TabContainer] 的可见性设置。"

#~ msgid ""
#~ "If [code]disabled[/code] is [code]false[/code], hides the tab at index "
#~ "[code]tab_idx[/code].\n"
#~ "[b]Note:[/b] Its title text will remain, unless also removed with [method "
#~ "set_tab_title]."
#~ msgstr ""
#~ "如果 [code]disabled[/code] 是 [code]false[/code],隐藏索引 [code]tab_idx[/"
#~ "code] 处的选项卡。\n"
#~ "[b]注意:[/b] 其标题文本将保留,除非也用 [method set_tab_title] 删除。"

#~ msgid "Space between tab's name and its icon."
#~ msgstr "选项卡名称与其图标之间的空间。"

#~ msgid ""
#~ "If [code]disabled[/code] is [code]false[/code], hides the tab at index "
#~ "[code]tab_idx[/code].\n"
#~ "[b]Note:[/b] Its title text will remain unless it is also removed with "
#~ "[method set_tab_title]."
#~ msgstr ""
#~ "如果 [code]disabled[/code] 是 [code]false[/code],隐藏索引 [code]tab_idx[/"
#~ "code] 处的选项卡。\n"
#~ "[b]注意:[/b]它的标题文本将保留,除非它也被[method set_tab_title]删除。"

#~ msgid ""
#~ "Draws the texture using a [CanvasItem] with the [RenderingServer] API."
#~ msgstr "使用 [RenderingServer] API 的 [CanvasItem] 绘制纹理。"

#~ msgid ""
#~ "Draws a part of the texture using a [CanvasItem] with the "
#~ "[RenderingServer] API."
#~ msgstr "使用[RenderingServer]API的[CanvasItem]来绘制纹理的一部分。"

#~ msgid "The theme's default font."
#~ msgstr "该主题的默认字体。"

#~ msgid ""
#~ "Joins the [Thread] and waits for it to finish. Returns what the method "
#~ "called returned."
#~ msgstr "加入[Thread]线程并等待其完成。返回被调用方法的返回值。"

#~ msgid ""
#~ "Node for 2D tile-based maps. Tilemaps use a [TileSet] which contain a "
#~ "list of tiles (textures plus optional collision, navigation, and/or "
#~ "occluder shapes) which are used to create grid-based maps."
#~ msgstr ""
#~ "二维图块地图的节点。图块地图使用[TileSet]图块集,其中包含图块列表(纹理添"
#~ "加可选的碰撞、导航或遮挡器形状),用来创建基于网格的地图。"

#~ msgid ""
#~ "Returns the global position corresponding to the given tilemap (grid-"
#~ "based) coordinates.\n"
#~ "Optionally, the tilemap's half offset can be ignored."
#~ msgstr ""
#~ "返回与指定的基于网格的图块地图位置相对应的全局坐标。\n"
#~ "可以选择忽略图块地图的半偏移。"

#~ msgid ""
#~ "Returns the tilemap (grid-based) coordinates corresponding to the given "
#~ "local position."
#~ msgstr "返回与指定的本地坐标相对应的,基于网格的图块地图的坐标。"

#~ msgid "The collision layer(s) for all colliders in the TileMap."
#~ msgstr "图块地图中所有碰撞器的碰撞层。"

#~ msgid "The collision mask(s) for all colliders in the TileMap."
#~ msgstr "图块地图中所有碰撞器的碰撞遮罩。"

#~ msgid ""
#~ "Button for touch screen devices. You can set it to be visible on all "
#~ "screens, or only on touch devices."
#~ msgstr ""
#~ "触摸屏设备的按钮。你可以把它设置为在所有屏幕上可见,或只在触摸设备上可见。"

#~ msgid "Returns the current locale of the game."
#~ msgstr "返回游戏的当前地域。"

#~ msgid "Sets the locale of the game."
#~ msgstr "设置游戏的地域。"

#~ msgid ""
#~ "Returns the column for the currently edited item. This is only available "
#~ "for custom cell mode."
#~ msgstr "返回当前编辑的项目的列。这仅适用于自定义单元格模式。"

#~ msgid "Cell can be checked."
#~ msgstr "单元可选。"

#~ msgid ""
#~ "Provides UPNP functionality to discover [UPNPDevice]s on the local "
#~ "network and execute commands on them, like managing port mappings (port "
#~ "forwarding) and querying the local and remote network IP address. Note "
#~ "that methods on this class are synchronous and block the calling thread.\n"
#~ "To forward a specific port:\n"
#~ "[codeblock]\n"
#~ "const PORT = 7777\n"
#~ "var upnp = UPNP.new()\n"
#~ "upnp.discover(2000, 2, \"InternetGatewayDevice\")\n"
#~ "upnp.add_port_mapping(port)\n"
#~ "[/codeblock]\n"
#~ "To close a specific port (e.g. after you have finished using it):\n"
#~ "[codeblock]\n"
#~ "upnp.delete_port_mapping(port)\n"
#~ "[/codeblock]"
#~ msgstr ""
#~ "提供UPNP功能来发现本地网络上的[UPNPDevice],并对它们执行命令,如管理端口映"
#~ "射(端口转发)和查询本地和远程网络IP地址。注意,这个类的方法是同步的,会阻"
#~ "塞调用线程。\n"
#~ "要转发一个特定的端口:\n"
#~ "[codeblock]\n"
#~ "const PORT = 7777\n"
#~ "var upnp = UPNP.new()\n"
#~ "upnp.discover(2000, 2, \"InternetGatewayDevice\")\n"
#~ "upnp.add_port_mapping(port)\n"
#~ "[/codeblock]\n"
#~ "要关闭一个特定的端口,例如,在你使用完它之后:\n"
#~ "[codeblock]\n"
#~ "upnp.delete_port_mapping(port)\n"
#~ "[/codeblock]"

#~ msgid "Vector used for 2D math using floating point coordinates."
#~ msgstr "用于使用浮点坐标的二维数学的向量。"

#~ msgid "Constructs a new [Vector2] from [Vector2i]."
#~ msgstr "从[Vector2i]构造一个新的[Vector2]。"

#~ msgid ""
#~ "Returns this vector's angle with respect to the X axis, or [code](1, 0)[/"
#~ "code] vector, in radians.\n"
#~ "Equivalent to the result of [method @GDScript.atan2] when called with the "
#~ "vector's [member y] and [member x] as parameters: [code]atan2(y, x)[/"
#~ "code]."
#~ msgstr ""
#~ "返回此向量相对于X轴的角度,或[code](1, 0)[/code]向量,单位为弧度。\n"
#~ "相当于以向量的[member y]和[member x]为参数调用[method @GDScript.atan2]时的"
#~ "结果:[code]atan2(y, x)[/code]。"

#~ msgid "Returns the angle to the given vector, in radians."
#~ msgstr "返回与给定向量的角度,单位为弧度。"

#~ msgid ""
#~ "Returns the angle between the line connecting the two points and the X "
#~ "axis, in radians."
#~ msgstr "返回连接两点的直线与X轴的角度,单位为弧度。"

#~ msgid ""
#~ "2-element structure that can be used to represent positions in 2D space "
#~ "or any other pair of numeric values.\n"
#~ "It uses integer coordinates and is therefore preferable to [Vector2] when "
#~ "exact precision is required.\n"
#~ "[b]Note:[/b] In a boolean context, a Vector2i will evaluate to "
#~ "[code]false[/code] if it's equal to [code]Vector2i(0, 0)[/code]. "
#~ "Otherwise, a Vector2i will always evaluate to [code]true[/code]."
#~ msgstr ""
#~ "2元素结构,可用于表示二维空间中的位置或一对数字值。\n"
#~ "它使用整数坐标,因此当需要精确的精度时,它比[Vector2]更好。\n"
#~ "[b]注意:[/b]在一个布尔环境中,如果一个Vector2i等于[code]Vector2i(0, 0)[/"
#~ "code],它将计算为[code]false[/code]。否则,一个Vector2i总是计算为"
#~ "[code]true[/code]。"

#~ msgid ""
#~ "Constructs a new [Vector2i] from the given [code]x[/code] and [code]y[/"
#~ "code]."
#~ msgstr "从给定的[code]x[/code]和[code]y[/code]构建一个新的[Vector2i]。"

#~ msgid ""
#~ "Constructs a new [Vector2i] from [Vector2]. The floating point "
#~ "coordinates will be truncated."
#~ msgstr "从[Vector2]构造一个新的[Vector2i]。浮点坐标将被截断。"

#~ msgid "Returns the ratio of [member x] to [member y]."
#~ msgstr "返回[member x]与[member y]的比例。"

#~ msgid ""
#~ "Returns the vector with each component set to one or negative one, "
#~ "depending on the signs of the components."
#~ msgstr "返回每个分量设置为1或负1的向量,这取决于分量的符号。"

#~ msgid "Vector used for 3D math using floating point coordinates."
#~ msgstr "用于使用浮点坐标的3D数学的向量。"

#~ msgid "Constructs a new [Vector3] from [Vector3i]."
#~ msgstr "从[Vector3i]构造一个新的[Vector3]。"

#~ msgid ""
#~ "3-element structure that can be used to represent positions in 3D space "
#~ "or any other pair of numeric values.\n"
#~ "It uses integer coordinates and is therefore preferable to [Vector3] when "
#~ "exact precision is required.\n"
#~ "[b]Note:[/b] In a boolean context, a Vector3i will evaluate to "
#~ "[code]false[/code] if it's equal to [code]Vector3i(0, 0, 0)[/code]. "
#~ "Otherwise, a Vector3i will always evaluate to [code]true[/code]."
#~ msgstr ""
#~ "3元素结构,可用于表示三维空间中的坐标或一对数字值。\n"
#~ "使用整数坐标,因此当需要精确的精度时,它比[Vector3]更好。\n"
#~ "[b]注意:[/b]在一个布尔环境中,如果一个Vector3i等于[code]Vector3i(0, 0, 0)"
#~ "[/code],它将计算为[code]false[/code]。否则,一个Vector3i将总是计算为"
#~ "[code]true[/code]。"

#~ msgid "Returns a [Vector3i] with the given components."
#~ msgstr "返回具有给定分量的[Vector3i]。"

#~ msgid ""
#~ "Constructs a new [Vector3i] from [Vector3]. The floating point "
#~ "coordinates will be truncated."
#~ msgstr "从[Vector3]构造新的[Vector3i]。浮点坐标将被截断。"

#~ msgid "Enumerated value for the Z axis."
#~ msgstr "Z轴的枚举值。"

#~ msgid "The current position of the stream, in seconds."
#~ msgstr "流的当前位置,以秒为单位。"

#~ msgid ""
#~ "[VideoStream] resource handling the [url=https://www.theora.org/]Ogg "
#~ "Theora[/url] video format with [code].ogv[/code] extension."
#~ msgstr ""
#~ "[VideoStream]资源处理[url=https://www.theora.org/]Ogg Theora[/url]视频格"
#~ "式,扩展名为[code].ogv[/code]。"

#~ msgid ""
#~ "[VideoStream] resource handling the [url=https://www.webmproject."
#~ "org/]WebM[/url] video format with [code].webm[/code] extension."
#~ msgstr ""
#~ "[VideoStream]资源处理[url=https://www.webmproject.org/]WebM[/url]视频格"
#~ "式,扩展名为[code].webm[/code]。"

#~ msgid ""
#~ "Sets the default filter mode used by [CanvasItem]s in this Viewport. See "
#~ "[enum DefaultCanvasItemTextureFilter] for options."
#~ msgstr ""
#~ "设置此视窗的[CanvasItem]所使用的默认过滤模式。选项参阅[enum "
#~ "DefaultCanvasItemTextureFilter]。"

#~ msgid ""
#~ "Sets the default repeat mode used by [CanvasItem]s in this Viewport. See "
#~ "[enum DefaultCanvasItemTextureRepeat] for options."
#~ msgstr ""
#~ "设置此视窗中的[CanvasItem]所使用的默认重复模式。选项参阅[enum "
#~ "DefaultCanvasItemTextureRepeat]。"

#~ msgid ""
#~ "Sets the screen-space antialiasing method used. Screen-space antialiasing "
#~ "works by selectively blurring edges in a post-process shader. It differs "
#~ "from MSAA which takes multiple coverage samples while rendering objects. "
#~ "Screen-space AA methods are typically faster than MSAA and will smooth "
#~ "out specular aliasing, but tend to make scenes appear blurry."
#~ msgstr ""
#~ "设置使用的屏幕空间抗锯齿方法。屏幕空间抗锯齿的作用是在后处理着色器中选择性"
#~ "地模糊边缘。它与MSAA不同,MSAA在渲染物体时需要多个覆盖样本。屏幕空间抗锯齿"
#~ "方法通常比MSAA更快,并且会消除镜面反射锯齿,但是容易使场景显得模糊。"

#~ msgid "Represents the size of the [enum MSAA] enum."
#~ msgstr "表示 [enum MSAA] 枚举的大小。"

#~ msgid "Do not perform any antialiasing in the full screen post-process."
#~ msgstr "在全屏后期处理中不要进行任何抗锯齿处理。"

#~ msgid "Represents the size of the [enum ScreenSpaceAA] enum."
#~ msgstr "表示[enum ScreenSpaceAA]枚举的大小。"

#~ 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 mode to work, you must have [member Environment.ssao_enabled] set "
#~ "in your [WorldEnvironment]."
#~ msgstr ""
#~ "绘制屏幕空间的环境遮挡纹理而不是场景,这样你就可以清楚地看到它是如何影响物"
#~ "体的。为了使这种显示模式发挥作用,你必须在[WorldEnvironment]中设置[member "
#~ "Environment.ssao_enabled]。"

#~ msgid ""
#~ "Colors each PSSM split for the [DirectionalLight3D]s in the scene a "
#~ "different color so you can see where the splits are. In order, they will "
#~ "be colored red, green, blue, and yellow."
#~ msgstr ""
#~ "为场景中的[DirectionalLight3D]的每个PSSM分片涂上不同的颜色,这样你就可以看"
#~ "到分片的位置。按照顺序,它们将被染成红色、绿色、蓝色和黄色。"

#~ msgid ""
#~ "Draws the decal atlas used by [Decal]s and light projector textures in "
#~ "the upper left quadrant of the [Viewport]."
#~ msgstr "在[Viewport]的左上角绘制[Decal]和灯光投影器纹理所使用的贴花图集。"

#~ msgid "Max value for [enum DefaultCanvasItemTextureFilter] enum."
#~ msgstr "[enum DefaultCanvasItemTextureFilter]枚举的最大值。"

#~ msgid "Max value for [enum DefaultCanvasItemTextureRepeat] enum."
#~ msgstr "[enum DefaultCanvasItemTextureRepeat]枚举的最大值。"

#~ msgid "If [code]true[/code], [RigidBody3D] nodes will be paused."
#~ msgstr "如果[code]true[/code],[RigidBody3D]节点将被暂停。"

#~ msgid "This enabler will freeze [RigidBody3D] nodes."
#~ msgstr "此启用程序将冻结[RigidBody3D]节点。"

#~ msgid "Emitted when the VisibilityNotifier3D enters the screen."
#~ msgstr "当VisibilityNotifier3D进入屏幕时触发。"

#~ msgid "Emitted when the VisibilityNotifier3D exits the screen."
#~ msgstr "当VisibilityNotifier3D退出屏幕时触发。"

#~ msgid "Return the specified output's name."
#~ msgstr "返回指定输出的名称。"

#~ msgid ""
#~ "Return the specified output's type. See the [enum Variant.Type] values."
#~ msgstr "返回指定输出的类型。参阅[enum Variant.Type]值。"

#~ msgid "Integer scalar. Translated to [code]int[/code] type in shader code."
#~ msgstr "整数标量。在着色器代码中转换为 [code]int[/code] 类型。"

#~ msgid "A default value to be assigned within the shader."
#~ msgstr "在着色器中分配的默认值。"

#~ msgid "Enables usage of the [member default_value]."
#~ msgstr "启用[member default_value]的使用。"

#~ msgid "An integer scalar."
#~ msgstr "整数标量。"

#~ msgid ""
#~ "Override this method to enable high-end mark in the Visual Shader "
#~ "Editor's members dialog.\n"
#~ "Defining this method is [b]optional[/b]. If not overridden, it's false."
#~ msgstr ""
#~ "重写此方法以在可视化着色器编辑器的成员对话框中启用\"高端\"标记。\n"
#~ "定义这个方法是[b]可选的[/b]。如果没有被重写,它就是false。"

#~ msgid ""
#~ "A scalar floating-point constant to be used within the visual shader "
#~ "graph."
#~ msgstr "标量的浮点常量,用于可视化着色器图中。"

#~ msgid "Translated to [code]float[/code] in the shader language."
#~ msgstr "在着色器语言中被转换成[code]float[/code]。"

#~ msgid "A floating-point constant which represents a state of this node."
#~ msgstr "浮点常量,表示这个节点的状态。"

#~ msgid ""
#~ "A scalar floating-point function to be used within the visual shader "
#~ "graph."
#~ msgstr "标量浮点函数,在可视化着色器图中使用。"

#~ msgid ""
#~ "Accept a floating-point scalar ([code]x[/code]) to the input port and "
#~ "transform it according to [member function]."
#~ msgstr ""
#~ "接受一个浮点标量([code]x[/code])到输入端口,并根据 [member function]进行"
#~ "变换。"

#~ msgid ""
#~ "A function to be applied to the scalar. See [enum Function] for options."
#~ msgstr "应用于标量的函数。参阅[enum Function]的选项。"

#~ msgid ""
#~ "Returns the sine of the parameter. Translates to [code]sin(x)[/code] in "
#~ "the Godot Shader Language."
#~ msgstr "返回参数的正弦值。在Godot着色器语言中转换为[code]sin(x)[/code]。"

#~ msgid ""
#~ "Returns the cosine of the parameter. Translates to [code]cos(x)[/code] in "
#~ "the Godot Shader Language."
#~ msgstr "返回参数的余弦值。在Godot着色器语言中转换为[code]cos(x)[/code]。"

#~ msgid ""
#~ "Returns the tangent of the parameter. Translates to [code]tan(x)[/code] "
#~ "in the Godot Shader Language."
#~ msgstr "返回参数的正切值。在Godot着色器语言中翻译为[code]tan(x)[/code]。"

#~ msgid ""
#~ "Returns the arc-sine of the parameter. Translates to [code]asin(x)[/code] "
#~ "in the Godot Shader Language."
#~ msgstr "返回参数的反正弦。在Godot着色器语言中转换为[code]asin(x)[/code]。"

#~ msgid ""
#~ "Returns the arc-cosine of the parameter. Translates to [code]acos(x)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数的反余弦值。在 Godot 着色器语言中转换为 [code]acos(x)[/code]。"

#~ msgid ""
#~ "Returns the arc-tangent of the parameter. Translates to [code]atan(x)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr "返回参数的正切值。在Godot着色器语言中转换为[code]atan(x)[/code]。"

#~ msgid ""
#~ "Returns the hyperbolic sine of the parameter. Translates to [code]sinh(x)"
#~ "[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数的双曲正弦值。在Godot着色器语言中转换为[code]sinh(x)[/code]。"

#~ msgid ""
#~ "Returns the hyperbolic cosine of the parameter. Translates to "
#~ "[code]cosh(x)[/code] in the Godot Shader Language."
#~ msgstr "返回参数的双曲余弦。在Godot着色器语言中转换为[code]cosh(x)[/code]。"

#~ msgid ""
#~ "Returns the hyperbolic tangent of the parameter. Translates to "
#~ "[code]tanh(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数的双曲正切值。在Godot着色器语言中转换为[code]tanh(x)[/code]。"

#~ msgid ""
#~ "Returns the natural logarithm of the parameter. Translates to [code]log(x)"
#~ "[/code] in the Godot Shader Language."
#~ msgstr "返回参数的自然对数。在Godot着色器语言中转换为[code]log(x)[/code]。"

#~ msgid ""
#~ "Returns the natural exponentiation of the parameter. Translates to "
#~ "[code]exp(x)[/code] in the Godot Shader Language."
#~ msgstr "返回参数的自然指数。在Godot着色器语言中转换为[code]exp(x)[/code]。"

#~ msgid ""
#~ "Returns the square root of the parameter. Translates to [code]sqrt(x)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr "返回参数的平方根。在Godot着色器语言中转换为[code]sqrt(x)[/code]。"

#~ msgid ""
#~ "Returns the absolute value of the parameter. Translates to [code]abs(x)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr "返回参数的绝对值。在Godot着色器语言中转换为[code]abs(x)[/code]。"

#~ msgid ""
#~ "Extracts the sign of the parameter. Translates to [code]sign(x)[/code] in "
#~ "the Godot Shader Language."
#~ msgstr "提取参数的符号。在Godot着色器语言中转换为[code]sign(x)[/code]。"

#~ msgid ""
#~ "Finds the nearest integer less than or equal to the parameter. Translates "
#~ "to [code]floor(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "找出小于或等于参数最近的整数。在Godot着色器语言中转换为[code]floor(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Finds the nearest integer to the parameter. Translates to [code]round(x)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr ""
#~ "找到与参数最接近的整数。在Godot着色器语言中转换成[code]round(x)[/code]。"

#~ msgid ""
#~ "Finds the nearest integer that is greater than or equal to the parameter. "
#~ "Translates to [code]ceil(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "找出大于或等于参数最近的整数。在Godot着色器语言中转换为[code]ceil(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Computes the fractional part of the argument. Translates to [code]fract(x)"
#~ "[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "计算参数的小数部分。在Godot着色器语言中转换为[code]fract(x)[/code]。"

#~ msgid ""
#~ "Clamps the value between [code]0.0[/code] and [code]1.0[/code] using "
#~ "[code]min(max(x, 0.0), 1.0)[/code]."
#~ msgstr ""
#~ "使用[code]min(max(x, 0.0), 1.0)[/code]限制[code]0.0[/code]和[code]1.0[/"
#~ "code]之间的值。"

#~ msgid "Negates the [code]x[/code] using [code]-(x)[/code]."
#~ msgstr "用[code]-(x)[/code]来否定[code]x[/code]。"

#~ msgid ""
#~ "Returns the arc-hyperbolic-cosine of the parameter. Translates to "
#~ "[code]acosh(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数的反双曲余弦。在 Godot 着色器语言中转换为 [code]acosh(x)[/code]。"

#~ msgid ""
#~ "Returns the arc-hyperbolic-sine of the parameter. Translates to "
#~ "[code]asinh(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数的反双曲正弦值。在 Godot 着色器语言中转换为 [code]asinh(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Returns the arc-hyperbolic-tangent of the parameter. Translates to "
#~ "[code]atanh(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数的弧双曲正切值。在 Godot 着色器语言中转换为 [code]atanh(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Convert a quantity in radians to degrees. Translates to [code]degrees(x)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr ""
#~ "将以弧度为单位的量转换为度。在 Godot 着色器语言中转换为 [code]degrees(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Returns 2 raised by the power of the parameter. Translates to "
#~ "[code]exp2(x)[/code] in the Godot Shader Language."
#~ msgstr "返回参数的2次幂。在 Godot 着色器语言中转换为 [code]exp2(x)[/code]。"

#~ msgid ""
#~ "Returns the inverse of the square root of the parameter. Translates to "
#~ "[code]inversesqrt(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数平方根的倒数。在 Godot 着色器语言中转换为 [code]inversesqrt(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Returns the base 2 logarithm of the parameter. Translates to [code]log2(x)"
#~ "[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数以 2 为底的对数。在 Godot 着色器语言中转换为 [code]log2(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Convert a quantity in degrees to radians. Translates to [code]radians(x)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr ""
#~ "将度数转换为弧度。在 Godot 着色器语言中转换为 [code]radians(x)[/code]。"

#~ msgid ""
#~ "Finds reciprocal value of dividing 1 by [code]x[/code] (i.e. [code]1 / x[/"
#~ "code])."
#~ msgstr "找到1除以[code]x[/code]的倒数,即[code]1/x[/code]。"

#~ msgid ""
#~ "Finds the nearest even integer to the parameter. Translates to "
#~ "[code]roundEven(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "查找最接近参数的偶数整数。在 Godot 着色器语言中转换为 [code]roundEven(x)[/"
#~ "code]。"

#~ msgid ""
#~ "Returns a value equal to the nearest integer to [code]x[/code] whose "
#~ "absolute value is not larger than the absolute value of [code]x[/code]. "
#~ "Translates to [code]trunc(x)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回与 [code]x[/code] 最接近的整数的值,其绝对值不大于 [code]x[/code] 的绝"
#~ "对值。在 Godot 着色器语言中转换为 [code]trunc(x)[/code]。"

#~ msgid "Subtracts scalar [code]x[/code] from 1 (i.e. [code]1 - x[/code])."
#~ msgstr "从 1 中减去标量 [code]x[/code],即 [code]1 - x[/code]。"

#~ msgid ""
#~ "A floating-point scalar operator to be used within the visual shader "
#~ "graph."
#~ msgstr "在可视化着色器图中使用的浮点标量运算符。"

#~ msgid ""
#~ "Applies [member operator] to two floating-point inputs: [code]a[/code] "
#~ "and [code]b[/code]."
#~ msgstr ""
#~ "将 [member operator] 应用于两个浮点输入。[code]a[/code]和[code]b[/code]。"

#~ msgid "Sums two numbers using [code]a + b[/code]."
#~ msgstr "用[code]a+b[/code]对两个数字求和。"

#~ msgid "Subtracts two numbers using [code]a - b[/code]."
#~ msgstr "用[code]a-b[/code]两个数字相减。"

#~ msgid "Multiplies two numbers using [code]a * b[/code]."
#~ msgstr "使用[code]a * b[/code]将两个数字相乘。"

#~ msgid "Divides two numbers using [code]a / b[/code]."
#~ msgstr "用[code]a/b[/code]对两个数字相除。"

#~ msgid ""
#~ "Calculates the remainder of two numbers. Translates to [code]mod(a, b)[/"
#~ "code] in the Godot Shader Language."
#~ msgstr ""
#~ "计算两个数的余数。在 Godot 着色器语言中转换为 [code]mod(a, b)[/code]。"

#~ msgid ""
#~ "Raises the [code]a[/code] to the power of [code]b[/code]. Translates to "
#~ "[code]pow(a, b)[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "将 [code]a[/code] 提高到 [code]b[/code] 的幂。在 Godot 着色器语言中转换为 "
#~ "[code]pow(a, b)[/code]。"

#~ msgid ""
#~ "Returns the greater of two numbers. Translates to [code]max(a, b)[/code] "
#~ "in the Godot Shader Language."
#~ msgstr ""
#~ "返回两个数字中的较大者。在 Godot 着色器语言中转换为 [code]max(a, b)[/"
#~ "code]。"

#~ msgid ""
#~ "Returns the lesser of two numbers. Translates to [code]min(a, b)[/code] "
#~ "in the Godot Shader Language."
#~ msgstr ""
#~ "返回两个数字中的较小者。在 Godot 着色器语言中转换为 [code]min(a, b)[/"
#~ "code]。"

#~ msgid ""
#~ "Returns the arc-tangent of the parameters. Translates to [code]atan(a, b)"
#~ "[/code] in the Godot Shader Language."
#~ msgstr ""
#~ "返回参数的反正切。在 Godot 着色器语言中转换为 [code]atan(a, b)[/code]。"

#~ msgid ""
#~ "Generates a step function by comparing [code]b[/code](x) to [code]a[/code]"
#~ "(edge). Returns 0.0 if [code]x[/code] is smaller than [code]edge[/code] "
#~ "and otherwise 1.0. Translates to [code]step(a, b)[/code] in the Godot "
#~ "Shader Language."
#~ msgstr ""
#~ "通过比较 [code]b[/code](x) 和 [code]a[/code](edge) 生成阶梯函数。如果 "
#~ "[code]x[/code] 小于 [code]edge[/code],则返回 0.0,否则返回 1.0。在 Godot "
#~ "着色器语言中转换为 [code]step(a, b)[/code]。"

#~ msgid "A scalar float uniform to be used within the visual shader graph."
#~ msgstr "在可视着色器图中使用的标量浮点uniform。"

#~ msgid "Translated to [code]uniform float[/code] in the shader language."
#~ msgstr "在着色器语言中转换为 [code]uniform float[/code]。"

#~ msgid ""
#~ "A hint applied to the uniform, which controls the values it can take when "
#~ "set through the inspector."
#~ msgstr "应用于uniform的提示,控制它在通过检查器设置时可以采取的数值。"

#~ msgid ""
#~ "Minimum value for range hints. Used if [member hint] is set to [constant "
#~ "HINT_RANGE] or [constant HINT_RANGE_STEP]."
#~ msgstr ""
#~ "范围提示的最小值。如果 [member hint] 被设置为[constant HINT_RANGE]或"
#~ "[constant HINT_RANGE_STEP]时使用。"

#~ msgid ""
#~ "Maximum value for range hints. Used if [member hint] is set to [constant "
#~ "HINT_RANGE] or [constant HINT_RANGE_STEP]."
#~ msgstr ""
#~ "范围提示的最大值。如果 [member hint] 被设置为[constant HINT_RANGE]或"
#~ "[constant HINT_RANGE_STEP]时使用。"

#~ msgid ""
#~ "Step (increment) value for the range hint with step. Used if [member "
#~ "hint] is set to [constant HINT_RANGE_STEP]."
#~ msgstr ""
#~ "带步数的范围提示的步数值(增量)。如果 [member hint] 被设置为[constant "
#~ "HINT_RANGE_STEP],则使用。"

#~ msgid "No hint used."
#~ msgstr "未使用提示。"

#~ msgid ""
#~ "A range hint for scalar value, which limits possible input values between "
#~ "[member min] and [member max]. Translated to [code]hint_range(min, max)[/"
#~ "code] in shader code."
#~ msgstr ""
#~ "标量值的范围提示,它将可能的输入值限制在[member min]和[member max]之间。在"
#~ "着色器代码中被转换成[code]hint_range(min, max)[/code]。"

#~ msgid ""
#~ "A range hint for scalar value with step, which limits possible input "
#~ "values between [member min] and [member max], with a step (increment) of "
#~ "[member step]). Translated to [code]hint_range(min, max, step)[/code] in "
#~ "shader code."
#~ msgstr ""
#~ "一个带步长的标量值范围提示,它将可能的输入值限制在[member min]和[member "
#~ "max]之间,增量步长为[member step]。在着色器代码中被转换成"
#~ "[code]hint_range(min, max, step)[/code]。"

#~ msgid ""
#~ "Compares two floating-point numbers in order to return a required vector "
#~ "within the visual shader graph."
#~ msgstr "对两个浮点数进行比较,以便返回可视化着色器图中所需要的向量。"

#~ msgid ""
#~ "First two ports are scalar floatin-point numbers to compare, third is "
#~ "tolerance comparison amount and last three ports represents a vectors "
#~ "returned if [code]a == b[/code], [code]a > b[/code] and [code]a < b[/"
#~ "code] respectively."
#~ msgstr ""
#~ "前两个端口是要比较的标量浮点数,第三个端口是公差比较量,最后三个端口分别代"
#~ "表在[code]a == b[/code],[code]a > b[/code]和[code]a < b[/code]时返回的向"
#~ "量。"

#~ msgid ""
#~ "Represents the input shader parameter within the visual shader graph."
#~ msgstr "代表可视化着色器图中的输入着色器参数。"

#~ msgid ""
#~ "Returns a translated name of the current constant in the Godot Shader "
#~ "Language. eg. [code]\"ALBEDO\"[/code] if the [member input_name] equal to "
#~ "[code]\"albedo\"[/code]."
#~ msgstr ""
#~ "如果[member input_name]等于[code]\"albedo\"[/code],则返回当前常量在Godot "
#~ "着色器语言中的转换名称,例如:[code]\"ALBEDO\"[/code]。"

#~ msgid "Emitted when input is changed via [member input_name]."
#~ msgstr "当通过[member input_name]更改输入时触发。"

#~ msgid "A scalar integer constant to be used within the visual shader graph."
#~ msgstr "标量的整数常量,在可视化着色器图中使用。"

#~ msgid "Translated to [code]int[/code] in the shader language."
#~ msgstr "在着色器语言中被转换成[code]int[/code]。"

#~ msgid "An integer constant which represents a state of this node."
#~ msgstr "表示该节点状态的整数常量。"

#~ msgid "A scalar integer function to be used within the visual shader graph."
#~ msgstr "标量整数函数,在可视化着色器图中使用。"

#~ msgid ""
#~ "Accept an integer scalar ([code]x[/code]) to the input port and transform "
#~ "it according to [member function]."
#~ msgstr ""
#~ "接受一个整数标量([code]x[/code])到输入端口,并根据 [member function]进行"
#~ "转换。"

#~ msgid ""
#~ "Constrains a parameter between [code]min[/code] and [code]max[/code]. "
#~ "Translates to [code]clamp(x, min, max)[/code] in the Godot Shader "
#~ "Language."
#~ msgstr ""
#~ "限制参数在[code]min[/code]和[code]max[/code]之间。在Godot着色器语言中转换"
#~ "成[code]camp(x, min, max)[/code]。"

#~ msgid ""
#~ "An integer scalar operator to be used within the visual shader graph."
#~ msgstr "整数标量运算符,在可视化着色器图中使用。"

#~ msgid ""
#~ "Applies [member operator] to two integer inputs: [code]a[/code] and "
#~ "[code]b[/code]."
#~ msgstr ""
#~ "将 [member operator] 应用于两个整数输入: [code]a[/code]和[code]b[/code]。"

#~ msgid "Calculates the remainder of two numbers using [code]a % b[/code]."
#~ msgstr "用[code]a % b[/code]计算两个数字的剩余部分。"

#~ msgid ""
#~ "Returns the lesser of two numbers. Translates to [code]max(a, b)[/code] "
#~ "in the Godot Shader Language."
#~ msgstr ""
#~ "返回两个数字中的较小一个。在Godot着色器语言中转换为[code]min(a, b)[/"
#~ "code]。"

#~ msgid "A scalar integer uniform to be used within the visual shader graph."
#~ msgstr "标量的整数uniform,在可视化着色器图中使用。"

#~ msgid "Translated to [code]uniform int[/code] in the shader language."
#~ msgstr "在着色器语言中被转换成[code]uniform int[/code]。"

#~ msgid ""
#~ "Performs a fused multiply-add operation within the visual shader graph."
#~ msgstr "在可视化着色器图中执行融合的倍增操作。"

#~ msgid "Uses three operands to compute [code](a * b + c)[/code] expression."
#~ msgstr "使用三个操作数来计算[code](a * b + c)[/code]表达式。"

#~ msgid "A type of operands and returned value."
#~ msgstr "操作数和返回值的类型。"

#~ msgid "A scalar type."
#~ msgstr "标量类型。"

#~ msgid "A vector type."
#~ msgstr "向量类型。"

#~ msgid ""
#~ "A base node for nodes which samples 3D textures in the visual shader "
#~ "graph."
#~ msgstr "可视化着色器图中对3D纹理进行采样的节点的基础节点。"

#~ msgid "A virtual class, use the descendants instead."
#~ msgstr "虚拟类,请用子类代替。"

#~ msgid "An input source type."
#~ msgstr "输入源类型。"

#~ msgid ""
#~ "Creates internal uniform and provides a way to assign it within node."
#~ msgstr "创建内部uniform,并提供一种在节点内分配的方法。"

#~ msgid "Use the uniform texture from sampler port."
#~ msgstr "使用采样端口的uniform纹理。"

#~ msgid ""
#~ "A 2D texture uniform array to be used within the visual shader graph."
#~ msgstr "在可视化着色器图中使用的2D纹理uniform数组。"

#~ msgid ""
#~ "Translated to [code]uniform sampler2DArray[/code] in the shader language."
#~ msgstr "在着色器语言中被转换成[code]uniform sampler2DArray[/code]。"

#~ msgid ""
#~ "A source texture array. Used if [member VisualShaderNodeSample3D.source] "
#~ "is set to [constant VisualShaderNodeSample3D.SOURCE_TEXTURE]."
#~ msgstr ""
#~ "源纹理数组。如果[member VisualShaderNodeSample3D.source]被设置为[member "
#~ "VisualShaderNodeSample3D.SOURCE_TEXTURE],就会使用。"

#~ msgid ""
#~ "Vertical slider. See [Slider]. This one goes from bottom (min) to top "
#~ "(max)."
#~ msgstr "垂直滑块。参阅[Slider]。这个从底部(最小)到顶部(最大)。"

#~ msgid ""
#~ "Direct access to the world's physics 2D space state. Used for querying "
#~ "current and potential collisions. Must only be accessed from the main "
#~ "thread within [code]_physics_process(delta)[/code]."
#~ msgstr ""
#~ "直接访问世界的物理2D空间状态。用于查询当前和潜在的碰撞。只能从"
#~ "[code]_physics_process(delta)[/code]中的主线程访问。"